Main Content

水タンク水位の受動制御

この例では、"制御システム調整器" アプリを使用して、Simulink® でモデル化された非線形プラントのコントローラーを設計する方法を説明します。次のタスクが実行できます。

  • 補償器の調整用のモデルとアプリの設定

  • 受動性ベースの設計を使用した 1 次補償器の調整

  • 閉ループの非線形応答のシミュレーション

制御システムの Simulink モデル

次の図に示されている watertank_comp_design モデルでは、水タンクの水位を制御するフィードバック ループをモデル化しています。Controller ブロックには、調整する 1 次補償器が含まれます。

mdl = 'cst_watertank_comp_design';
open_system(mdl)

Water Tank サブシステムは、水タンクのダイナミクスをモデル化します。水が上部からタンクに流れ込む速度は、ポンプに印加された電圧 (V) に比例します。水がタンク ベースの開口部を通り抜けるレートは、タンク内の水の高さ (H) の平方根に比例します。水流レートに平方根があるため、このプラントは非線形になります。

水流の非線形モデルは、次のようになります。

$$A\dot{x}~=~bu - a\sqrt{x}$$

$$y~=~x$$

ここで

  • $x=H$ はタンクの水の高さ

  • $u$ はポンプに印加された電圧

  • $A$ はタンクの断面積

  • $a$ および $b$ はタンク内への流量とタンク外への流量に関連した定数

このシステムは、以下により、ストレージ関数 $V(x) = \frac{A}{2b}x^2$ では受動的です。

$$\dot{V}(x) - uy ~=~ -\frac{a}{b}x\sqrt{x}~\leq~ 0$$

受動性ベースの制御

受動性定理により、2 つの厳密に受動的なシステム $H_1$ および $H_2$ の負のフィードバック相互接続は常に安定します。

水タンク システムは受動的であるため、プラント モデルが不正確であっても閉ループの安定性が保証されるようコントローラーを厳格に受動的にすることを求めるのは理に適っています。

制御システム調整器を使用した補償器の調整

制御システム調整器アプリを使用して Controller ブロックを調整できます。

手順 1: 制御システム調整器アプリを開きます。Simulink モデル ウィンドウの [アプリ] タブの [アプリ] ギャラリーで [制御システム調整器] をクリックします。

手順 2: [調整] タブの [ブロックの選択] ボタンから調整されたブロック セレクターを起動します。

手順 3: Controller ブロックを選択し、[OK] をクリックします。このブロックは [調整ブロック] リストに表示されます。

手順 4: 調整目標を指定します。次の 2 つの主要な目標があります。

  1. 水位のステップ変化を追従する

  2. コントローラーを受動にする

[新規目標] ドロップダウン リストをクリックし、最初に [受動性] 目標を追加します。

Controller ブロックのみに適用するようこの目標を構成します。これは、入力信号を "Desired Water Level"、出力信号を Controller ブロックの出力、ループ開始点を Controller ブロック出力に設定して行います。また、入力と出力の最小受動性インデックスとして 0.01 を指定し、厳格な受動性を適用します。

次に、[新規目標] ドロップダウン リストから [設定値追従] 目標を追加します。応答時間を 1 秒としてこの目標を構成します。

最後に、[調整] タブの [目標の管理] ボタンをクリックして、受動性目標を厳密な調整制約としてマークします。

手順 5: Controller ブロックを調整する準備が整いました。[調整] ボタンをクリックします。[表示] タブで [左/右] を選択し、調整結果を左右に並べて表示できます。

この調整過程を再現する MATLAB スクリプトを生成して、これらの結果をさらに解析できます。

閉ループのシミュレーション

調整後のコントローラーのボード線図を表示できます。[Control System] タブの [新規プロット] ボタンをクリックします。ドロップダウン リストから [新規ボード] を選択します。

コントローラーの応答は次のように指定できます。

[プロット] ボタンをクリックします。ボード線図は、次の図に表示されます。

調整後のコントローラーで閉ループ非線形応答をシミュレートすることもできます。最初に、[Control System] タブで [ブロックの更新] をクリックして Controller ブロックを更新します。

Simulink モデルで、Scope ブロックをダブルクリックして [スコープ] ウィンドウを開き、モデルをシミュレートします。

調整後の制御システムの非線形応答が [スコープ] ウィンドウに表示されます。このシミュレーションによって、追従性能が満足なものであることがわかります。

参考

関連するトピック