ドキュメンテーション

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

自動 PID 調整およびグラフィカルなボード設計法を使用した補償器の設計

この例では、自動 PID 調整を使用して Simulink® モデルの補償器を設計する方法を説明します。

システム モデル

この例では watertank_comp_design Simulink モデルを使用します。モデルを開くには、MATLAB® コマンド ラインで次を入力します。

watertank_comp_design

このモデルでは、単一ループのフィードバック システムに Water-Tank System プラント モデルと PID コントローラーが含まれています。

貯水タンクのモデルを表示するには、Water-Tank System ブロックをダブルクリックします。

このモデルは次のような貯水タンク システムを表しています。

ここで、

  • H はタンクの水の高さです。

  • Vol はタンクの水の体積です。

  • V はポンプに印加された電圧です。

  • A はタンクの水の断面積です。

  • b はタンクに流れる流量に関連した定数です。

  • a はタンクから流れる流量に関連した定数です。

水が上部からタンクに流れ込む速度は、ポンプに印加された電圧に比例します。水がタンクの底にある開口部を通り抜ける速度は、タンク内の水位の平方根に比例します。水流レートにある平方根は、非線形プラントとなります。これらの水流レートに基づいて、タンク内の水量の変化率は次のようになります。

ddtVol=AdHdt=bVaH

設計要件

閉ループ ステップ応答について次の設計要件が満たされるように PID コントローラーを調整します。

  • オーバーシュートが 5% 未満

  • 立ち上がり時間が 5 秒未満

制御システム デザイナーを開く

制御システム デザイナーを開くには、Simulink モデル ウィンドウで、[解析][制御設計][制御システム デザイナー] を選択します。

制御システム デザイナーが開き、[アーキテクチャの編集] ダイアログ ボックスが自動的に表示されます。

調整するブロックの指定

調整する補償器を指定するには、[アーキテクチャの編集] ダイアログ ボックスで [ブロックの追加] をクリックします。

[調整ブロックを選択] ダイアログ ボックスで、左側のペインにある Controller サブシステムをクリックし、[調整] 列で PID Controller のボックスをオンにします。

[OK] をクリックします。

[アーキテクチャの編集] ダイアログ ボックスで、選択したコントローラー ブロックが、アプリによって [ブロック] タブにある調整ブロックのリストに追加されます。また、[信号] タブでも、PID Controller ブロックの出力が、アプリによって解析ポイントの [位置] のリストに追加されます。

制御システム デザイナーが開くと、Simulink モデルで以前に定義された解析ポイントがすべて [位置] リストに追加されます。watertank_comp_design にはそのような信号が 2 つあります。

  • Desired Water Level ブロックの出力 — 閉ループ ステップ応答の基準信号

  • Water-Tank System ブロックの出力 — 閉ループ ステップ応答の出力信号

Simulink モデルを線形化して制御アーキテクチャを設定するには、[OK] をクリックします。

既定では、制御システム デザイナーはプラント モデルをモデルの初期条件で線形化します。

アプリによって PID コントローラーが [データ ブラウザー][コントローラーと固定ブロック] エリアに追加されます。また、アプリによって PID Controller ブロックの出力での開ループ伝達関数が計算され、その応答が [データ ブラウザー] に追加されます。

閉ループ ステップ応答のプロット

コントローラー設計を解析するには、システムの閉ループ伝達関数を作成して、そのステップ応答をプロットします。

[Control System] タブで [新規プロット] をクリックし、[新規ステップ] を選択します。

[プロットする新規 Step] ダイアログ ボックスで、[プロットする応答の選択] ドロップダウン リストから [新規の入出力伝達の応答] を選択します。

入力信号を追加するには、[入力信号の指定] エリアで [+] をクリックします。ドロップダウン リストで Desired Water Level ブロックの出力を選択します。

出力信号を追加するには、[出力信号の指定] エリアで [+] をクリックします。ドロップダウン リストで Water-Tank System ブロックの出力を選択します。

閉ループ伝達関数を作成してステップ応答をプロットするには、[プロット] をクリックします。

応答プロットに最大オーバーシュートを表示するには、プロット領域を右クリックし、[特性][ピーク応答] を選択します。

応答プロットに立ち上がり時間を表示するには、プロット領域を右クリックし、[特性][立ち上がり時間] を選択します。

特性インジケーターにマウスのカーソルを合わせると、その値が表示されます。現在の設計には次の特性があります。

  • 最大オーバーシュートは 47.9%。

  • 立ち上がり時間は 2.13 秒。

この応答はオーバーシュートの設計要件である 5% を満たしていません。

自動 PID 調整を使用した補償器の調整

自動 PID 調整を使用して補償器を調整するには、[調整法] をクリックして [PID 調整] を選択します。

[PID 調整] ダイアログ ボックスの [仕様] セクションで次のオプションを選択します。

  • 調整法ロバスト応答時間

  • コントローラー タイプPI

[補償器の更新] をクリックします。アプリにより新しい補償器の設定で閉ループ応答が更新され、ステップ応答プロットが更新されます。

システムの性能をチェックするには、応答特性マーカーにマウスのカーソルを合わせます。調整された補償器をもつシステムの応答には次の特性があります。

  • 最大オーバーシュートは 13.8%。

  • 立ち上がり時間は 51.2 秒。

この応答は、許可される最大のオーバーシュートである 5% を超えています。立ち上がり時間は要件の 5 秒より大幅に遅くなっています。

ボード線図のグラフィカルな調整を使用した補償器の調整

立ち上がり時間を短くするには、グラフィカルなボード線図調整を使用して、対話形式で補償器のゲインを増加させます。

開ループのボード エディターを開くには、[調整法] をクリックして [ボード エディター] を選択します。

[編集する応答の選択] ダイアログ ボックスでは、PID Controller ブロックの出力で既に開ループ応答が選択されています。この応答のボード エディターを開くには、[プロット] をクリックします。

[ボード エディター][ステップ応答] のプロットを並べて表示するには、[表示] タブで [左/右] をクリックします。

[ボード エディター] プロットで、振幅応答を上方にドラッグして補償器のゲインを大きくします。ゲインを増やして、帯域幅を増やし、応答を高速化します。

ボード応答を上方にドラッグすると、アプリによって補償器とそれに関連する応答プロットが自動的に更新されます。また、プロットを解放すると、ステータス バーの右側に更新されたゲイン値が表示されます。

ステップ応答が設計要件を満たすようになるまで補償器のゲインを増やします。1 つの可能な解として、ゲインを 1.7 に設定します。

このゲイン値での閉ループ応答には次の特性があります。

  • 最大オーバーシュートは 4.74%。

  • 立ち上がり時間は 4.36 秒。

補償器エディターを使用したコントローラーの微調整

補償器のパラメーターを直接調整するには、補償器エディターを使用します。[ボード エディター] でプロット エリアを右クリックし、[補償器の編集] を選択します。

[補償器の編集] ダイアログ ボックスの [パラメーター] タブで、PID コントローラーのゲインを調整します。補償器パラメーターの編集の詳細については、補償器エディターを使用した Simulink ブロックの調整を参照してください。

調整した補償器は設計要件を満たしていますが、整定時間が 30 秒を超えています。整定時間を改善するには、コントローラーの [P] パラメーターと [I] パラメーターを手動で調整します。

たとえば、補償器のパラメーターを次のように設定します。

  • [P] = 4

  • [I] = 0.1

この補償器からは、次の特性をもつ閉ループ応答が得られます。

  • 最大オーバーシュートは 0.206%。

  • 立ち上がり時間は 1.74 秒。

  • 整定時間は約 3 秒。

Simulink での閉ループ システムのシミュレーション

調整されたコントローラー パラメーターをもつ非線形 Simulink モデルをシミュレートして、補償器の設計を検証します。

調整した補償器パラメーターを PID Controller ブロックに書き込むには、制御システム デザイナー[Control System] タブで [ブロックの更新] をクリックします。

Simulink モデル ウィンドウで、シミュレーションを実行します。

閉ループのシミュレーション出力を表示するには、Scope ブロックをダブルクリックします。

非線形システムの閉ループ応答は、立ち上がり時間が 5 秒未満でオーバーシュートも最小となり、設計要件を満たしています。

関連するトピック