ゲイン スケジュール PID コントローラーの実装
以下の例では、PID コントローラー群を使用して Simulink® モデルにゲイン スケジュール制御を実装する方法を示します。PID コントローラーは、非線形性の高いプラントにおける一連の定常状態の操作点用に調整されています。
この例は、複数操作点用の PID コントローラー群の設計での作業を土台としています。その例においては、連続攪拌タンク反応器 (CSTR) プラント モデルが C
= 2、3、...、8、9 の出力濃度をもつ定常状態の操作点で線形化されています。CSTR プラントの非線形性により、異なる出力濃度では異なる線形化ダイナミクスが生じます。同例では、関数 pidtune
を使用して、各出力濃度に対し別々の PID コントローラーを生成し調整します。
各コントローラーは、その対応する出力濃度周辺では小さい操作範囲で良好に動作すると予想されます。この例では、PID Controller ブロックを使用して、これらのコントローラーすべてをゲイン スケジュール構成で実装する方法を示します。こうした構成では、出力濃度の変化に従って PID ゲインが変化します。この構成により、制御システムの操作範囲内では任意の出力濃度で良好な PID 制御が確保されます。
複数操作点用の PID コントローラー群の設計で生成したコントローラーから開始します。これらのコントローラーがまだ MATLAB® ワークスペースにない場合は、データ ファイル PIDGainSchedExample.mat
から読み込みます。
load PIDGainSchedExample
この操作により、MATLAB ワークスペースに 2 つの変数 Controllers
と C
が置かれます。モデル配列 Controllers
には 8 つのpid
モデルが含まれ、それぞれがベクトル C
にある 1 つの出力濃度に対し調整されています。
これらのコントローラーをゲイン スケジュール構成に実装するには、各出力濃度を PID ゲインの対応するセットと関連付けるルックアップ テーブルを作成します。Simulink モデル PIDGainSchedCSTRExampleModel
にはそうしたルックアップ テーブルが含まれており、CSTR プラントのゲイン スケジュール制御を提示するよう構成されています。このモデルを開きます。
open_system("PIDGainSchedCSTRExampleModel")
このモデルでは、PID Controller ブロックが PID 係数用の外部入力端子をもつよう構成されています。外部入力を使用すると、出力濃度の変化に合わせて係数が変化できるようになります。ブロックを開いて構成を調べます。
[ソース] パラメーターを external
に設定すると、係数用の入力端子が有効になります。
モデルでは、それぞれの PID 係数に1-D Lookup Tableブロックが使用されます。一般にゲイン スケジュール PID 制御では、スケジューリング変数をルックアップ テーブル入力として、対応するコントローラー係数値を出力として使用します。この例では、CSTR プラント出力濃度がルックアップ テーブル入力であり、出力はその濃度に対応する PID 係数です。ルックアップ テーブルがどのように構成されているかを確認するには、P Lookup Table
ブロックを開きます。
[テーブル データ] パラメーターには、各コントローラーの比例的係数の配列 Controllers.Kp
が含まれています。(Controllers
配列における pid
モデルのプロパティの詳細については、pid
を参照してください。)この配列の各エントリは、[ブレークポイント 1] パラメーターに入力されている配列 C
のエントリに対応しています。C
のエントリの範囲内にある濃度値については、P Lookup Table ブロックが線形内挿を実行して比例的係数の値を決定します。積分係数と微分係数のルックアップ テーブルをセットアップするには、I Lookup Table
ブロックと D Lookup Table
ブロックを、Controllers.Ki
と Controllers.Kd
をそれぞれ使用して構成します。この例では、この構成はモデルで既に完了しています。
配列 Controllers
の pid
モデルでは、微分フィルター係数を時定数 Controllers.Tf
として表現しています (詳細については、pid
のリファレンス ページを参照してください)。ただし、PID Controller ブロックでは、微分フィルター係数を定数の逆数 N
として表現しています。したがって、N Lookup Table
ブロックは Controllers.Tf
の各値の逆数を使用するよう構成されなければなりません。N Lookup Table
ブロックを開いて、構成を確認します。
モデルのシミュレーションを実行します。Concentration Setpoint
ブロックは、C
= 2 と C
= 9 の間の操作範囲にわたる設定点のシーケンス (スコープに黄色で表示) でステップ実行されるよう構成されています。シミュレーションでは、ゲイン スケジュール構成により、この範囲全体で設定点の追従 (スコープに青で表示) がうまく達成されていることが示されています。
複数操作点用の PID コントローラー群の設計で示したように、CSTR プラントは C
= 4 と C
= 7 の間の操作範囲では不安定です。ゲイン スケジュール PID コントローラーにより、不安定な領域全体でプラントが安定し、設定点の追従がうまくいっています。非線形プラントに対し制御設計を完全に検証するには、さまざまな設定点のテスト シーケンスを適用して、操作範囲全体にわたってサイズや方向が異なるステップの追従性能をテストします。性能は、配列 Controllers
のすべてのエントリを等しく設定することにより、ゲイン スケジューリングなしでの設計と比較することもできます。
参考
pid
| pidtune
| PID Controller | n-D Lookup Table