設定値追従と外乱の抑制のいずれかを優先するための PID コントローラーの調整 (コマンド ライン)
この例では、コマンド ラインの PID 調整オプションを使用して設定値追従のオーバーシュートを小さくしたり、プラント入力における外乱の抑制を改善する方法を示します。例では pidtune
コマンドを使用して、PI 制御システムと PID 制御システムにおいて設定値追従と外乱の抑制の間にある、性能のトレードオフについて説明します。
次の図の制御システムについて考えます。
設定点の追従は r の信号に対する y での応答です。入力外乱の抑制は d の信号の y における抑制です。
プラントのモデルを作成します。この例では次のようになります。
G = tf(0.3,[1 0.1 0]);
このプラントの PI コントローラーを、0.03 rad/s の帯域幅を使用して設計します。
wc = 0.03;
[C1,info] = pidtune(G,'PI',wc);
制御システムのステップ設定値追従とステップ外乱の抑制について、既定のコントローラーを使用して調べます。d から y への外乱応答は、feedback(G,C1)
による閉ループの応答と等しくなります。
T1 = feedback(G*C1,1); GS1 = feedback(G,C1); subplot(2,1,1); stepplot(T1) title('Reference Tracking') subplot(2,1,2); stepplot(GS1) title('Disturbance Rejection')
既定では、帯域幅に応じて、設定値追従と外乱の抑制との間でバランスを取るよう pidtune
によりコントローラーが調整されます。この場合、コントローラーにより、設定値追従応答でいくらかのオーバーシュートが発生します。コントローラーはまた、最初のピークの後、設定値追従よりいくらか長い整定時間で入力外乱を抑制します。
アプリケーションによっては、設定値追従と外乱の抑制とのバランスを変え、一方を他方より優先させることが望ましい場合があります。PI コントローラーについては、調整されたシステムの位相余裕を変更することでこのバランスを変更できます。pidtune
によって返される既定のコントローラーによって、60° の位相余裕が生じます。
info.PhaseMargin
ans = 60.0000
同じ帯域幅で位相余裕が 45° のコントローラーと 70° のコントローラーを設計し、結果として得られる設定値追従と外乱の抑制を比較します。
opts2 = pidtuneOptions('PhaseMargin',45); C2 = pidtune(G,'PI',wc,opts2); T2 = feedback(G*C2,1); GS2 = feedback(G,C2); opts3 = pidtuneOptions('PhaseMargin',70); C3 = pidtune(G,'PI',wc,opts3); T3 = feedback(G*C3,1); GS3 = feedback(G,C3); subplot(2,1,1); stepplot(T1,T2,T3) legend('PM = 60','PM = 45','PM = 70') title('Reference Tracking') subplot(2,1,2); stepplot(GS1,GS2,GS3) title('Disturbance Rejection')
位相余裕を 45° に下げると、外乱の抑制が加速しますが、設定値追従応答でのオーバーシュートも大きくなります。位相余裕を 70° に上げるとオーバーシュートは完全になくなりますが、その結果、外乱の抑制が極度に遅くなります。アプリケーションに適するよう設定値追従と外乱の抑制とのバランスが取れた値が見つかるまで、さまざまな位相余裕の値を試行できます。このバランスでの位相余裕の効果は、プラント モデルによって異なります。プラント モデルによっては、この例で示したほど効果が大きくない場合があります。
制御システムの帯域幅と位相余裕の両方を固定する場合でも、pidtune
の DesignFocus
オプションを使用して設定値追従と外乱の抑制間のバランスを変えることができます。DesignFocus
を 'disturbance-rejection'
と 'reference-tracking'
のいずれかに設定し、どちらか一方を優先するようコントローラーを調整できます。
DesignFocus
オプションは、制御システムに調整可能なパラメーターが多くあるほど効果を発揮します。したがって、PI コントローラーで使用しても大きな効果は得られません。その効果を確認するには、PIDF コントローラーを、同じ帯域幅と既定の位相余裕 (60°) に対しそれぞれの DesignFocus
値を使用して設計します。結果を比較します。
opts4 = pidtuneOptions('DesignFocus','balanced'); % default focus C4 = pidtune(G,'PIDF',wc,opts4); T4 = feedback(G*C4,1); GS4 = feedback(G,C4); opts5 = pidtuneOptions('DesignFocus','disturbance-rejection'); C5 = pidtune(G,'PIDF',wc,opts5); T5 = feedback(G*C5,1); GS5 = feedback(G,C5); opts6 = pidtuneOptions('DesignFocus','reference-tracking'); C6 = pidtune(G,'PIDF',wc,opts6); T6 = feedback(G*C6,1); GS6 = feedback(G,C6); subplot(2,1,1); stepplot(T4,T5,T6) legend('Balanced','Rejection','Tracking') title('Reference Tracking') subplot(2,1,2); stepplot(GS4,GS5,GS6) title('Disturbance Rejection')
DesignFocus
オプションを使用して、調整された制御システムで設定値追従と外乱の抑制のいずれかを優先させる場合でも、位相余裕を調整することで、性能についてのこれら 2 つの測定間のバランスをさらに微調整できます。DesignFocus
と PhaseMargin
を併用すると、設計要件に最適の性能バランスが実現されます。
システム性能に対するいずれのオプションの効果も、プラントの特性に強く左右されます。プラントによっては、PhaseMargin
オプションや DesignFocus
オプションを変更しても、ほとんどあるいはまったく効果がない場合もあります。