最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

化学反応器プラントの内部モデル コントローラーの設計

この例では、制御システム デザイナーを使用して直列化学反応器に対して IMC 構造内に補償器を設計する方法について説明します。プロセス制御アプリケーションでは、モデルベースの制御システムを使用して設定値追従し、負荷外乱を抑制することがよくあります。

プラント モデル

この例のプラントは 2 つのよく混合されたタンクで構成される化学反応器システムです。

反応器では一定温度が保持されており、各反応器内の反応は成分 A について 1 次です。

システムには物質収支が適用され、システムに対して動的なモデルが生成されます。タンク内の水位はオーバーフロー ノズルによって一定に保たれているため、水位制御は行われません。

このプラントの詳細は、Example 3.3 in Chapter 3 of "Process Control: Design Processes and Control Systems for Dynamic Performance" by Thomas E. Marlin を参照してください。

次の微分方程式は成分の収支を記述します。

定常状態では、

その物質収支は次になります。

ここで、、および は定常値です。

次の設計仕様と反応器のパラメーターを置換します。

結果として 2 つの反応器内に次の定常状態濃度値が得られます。

ここで、

この例では、2 番目の反応器 からの排出反応物濃度が、供給濃度 に外乱がある場合でも維持されるようにコントローラーを設計します。操作変数は、最初の反応器に入る反応物のモル流量 F です。

線形プラント モデル

この制御設計例では、プラント モデルは次のようになります。

外乱モデルは次のようになります。

この化学プロセスは、次のブロック線図を使用して表すことができます。

ここで、

ブロック線図に基づき、次のようなプラント モデルと外乱モデルを取得します。

コマンド ラインでプラント モデルを作成します。

s = tf('s');
G1 = (13.3259*s+3.2239)/(8.2677*s+1)^2;
G2 = G1;
Gd = 0.4480/(8.2677*s+1)^2;

G1 はコントローラーの評価で使用される実際のプラントです。G2 は実際のプラントの近似で、IMC 構造内の予測モデルとして使用されます。G2 = G1 は、モデルの不一致が存在していないことを意味します。Gd は外乱モデルです。

制御システム デザイナーでの IMC 構造の定義

制御システム デザイナーを開きます。

controlSystemDesigner

IMC 制御アーキテクチャを選択します。制御システム デザイナーで、[アーキテクチャの編集] をクリックします。[アーキテクチャの編集] ダイアログ ボックスで、[Configuration 5] を選択します。

システム データを読み込みます。G1G2Gd について、モデルの [値] を指定します。

補償器の調整

G1 の開ループ ステップ応答をプロットします。

step(G1)

プロットを右クリックし、[特性]、[立ち上がり時間] のサブメニューを選択します。青色の立ち上がり時間マーカーをクリックします。

立ち上がり時間は約 25 秒です。IMC 補償器を調整して、閉ループ応答時間を速くします。

IMC 補償器を調整するには、制御システム デザイナーで [調整法] をクリックし、[内部モデル コントロール (IMC) の調整] を選択します。

[主要な閉ループの時定数]2 を選択し、[望ましいコントローラー次数]2 を選択します。

閉ループ ステップ応答を表示するには、制御システム デザイナーで [IOTransfer_r2y:step] プロット タブをダブルクリックします。

モデルが不一致の場合の性能の制御

コントローラーの設計においては、G1 が G2 と等しくなると仮定しました。実際には、これらは異なることが多く、設定値に追従して外乱を抑制するにはコントローラーが十分にロバストである必要があります。

G1 と G2 の間にモデルの不一致を発生させ、設定点の変化と負荷外乱の両方が存在する状態で、MATLAB コマンド ラインで制御性能を調べます。

IMC 補償器を MATLAB ワークスペースにエクスポートします。[エクスポート] をクリックします。[モデルのエクスポート] ダイアログ ボックスで、補償器モデル C を選択します。

[エクスポート] をクリックします。

IMC 構造を、フィードフォワード パス内のコントローラーと単位フィードバックを備えた古典フィードバック制御構造に変換します。

C = zpk([-0.121 -0.121],[-0.242, -0.466],2.39);
C_new = feedback(C,G2,+1)
C_new =
 
                2.39 (s+0.121)^4
  ---------------------------------------------
  (s-0.0001594) (s+0.121) (s+0.1213) (s+0.2419)
 
Continuous-time zero/pole/gain model.

次のプラント モデルを定義します。

  • モデルの不一致なし:

G1p = (13.3259*s+3.2239)/(8.2677*s+1)^2;
  • G1 の時定数を 5% 変更:

G1t = (13.3259*s+3.2239)/(8.7*s+1)^2;
  • G1 のゲインを 3 倍に増加:

G1g = 3*(13.3259*s+3.2239)/(8.2677*s+1)^2;

設定点の追従性能を評価します。

step(feedback(G1p*C_new,1),feedback(G1t*C_new,1),feedback(G1g*C_new,1))
legend('No Model Mismatch','Mismatch in Time Constant','Mismatch in Gain')

外乱の抑制性能を評価します。

step(Gd*feedback(1,G1p*C_new),Gd*feedback(1,G1t*C_new),Gd*feedback(1,G1g*C_new))
legend('No Model Mismatch','Mismatch in Time Constant','Mismatch in Gain')

コントローラーがプラント パラメーターの不確かさに対して比較的ロバストになっています。

参考

関連するトピック