カスケード マルチループ フィードバック設計
この例では、制御システム デザイナーを使用して Simulink® Control Design™ で 2 つのカスケード フィードバック ループを調整する方法を示します。
この例では、加速度コンポーネント (az
) が最大立ち上がり時間 0.5 秒の基準信号を追跡するように、機体モデルの 2 つのカスケード フィードバック ループのコントローラーを設計します。この例のフィードバック ループ構造では、内側のフィードバック ループとして本体比 (q
) を、外側のフィードバック ループとして加速度 (az
) を使用します。
機体モデルを開きます。
open_system("scdairframectrl")
2 つのフィードバック コントローラーは次のとおりです。
scdairframectrl/q Control
- 離散時間積分器およびゲイン ブロックが内側のループを安定化させます。
open_system("scdairframectrl/q Control")
scdairframectrl/az Control
- 離散時間積分器、離散伝達関数、およびゲイン ブロックが外側のループを安定化させます。
open_system("scdairframectrl/az Control")
マルチループ システムにおけるループの分離
制御システム デザイナーでは、カスケード システムの内側と外側の両方のループを同時に設計することが可能です。既定では、マルチループのフィードバック システムを設計する際はループ間の結合の影響が考慮されます。しかし、2 つのフィードバック ループを同時に設計する場合、フィードバック ループを分離する (つまり内側のループを調整するときに外側のループの影響を取り除く) ことが必要になる場合があります。カスケード フィードバック システムの設計手順としては、この方法が一般的です。
この例では、外側のループ (az
) の影響を取り除いたうえで、内側のフィードバック ループ (q
) を設計します。
制御システム デザイナーの構成
制御システム デザイナーを使用してコントローラーを設計するには、以下を行わなければなりません。
調整するコントローラー ブロックを選択します。
表示する開ループ応答と閉ループ応答を作成します。
この例では、次を実行できます。
モデルの左下隅にあるサブシステムをダブルクリックして、事前に構成されている制御システム デザイナー セッションを起動します。
次の手順に従って制御システム デザイナーを構成します。
制御システム デザイナーを開くには、Simulink モデルの [アプリ] ギャラリーで [制御システム デザイナー] をクリックします。
[アーキテクチャの編集] ダイアログ ボックスの [ブロック] タブで、[ブロックの追加] をクリックします。[調整ブロックを選択] ダイアログ ボックスで、次のブロックを選択して [OK] をクリックします。
scdairframectrl/q Control/q Gain
scdairframectrl/az Control/az Gain
scdairframectrl/az Control/az DTF
[信号] タブで、Simulink モデルで定義されている解析ポイントが [位置] として自動的に追加されます。
入力:
scdairframectrl/Step az
- 出力端子 1出力:
scdairframectrl/Airframe Model
- 出力端子 1
選択したブロックと信号を使用するには、[OK] をクリックします。
制御システム デザイナーのデータ ブラウザーの [応答] セクションには以下の開ループ応答が含まれます。これらは制御システム デザイナーによって自動的に開ループ設計のフィードバック ループ候補として認識されます。
scdairframectrl/az Control/az DTF
の出力端子 1scdairframectrl/az Control/az Gain
の出力端子 1scdairframectrl/q Control/q Gain
の出力端子 1
以下の各応答についてグラフィカルなボード エディターを開きます。制御システム デザイナーで [調整法]、[ボード エディター] を選択します。次に、[編集する応答の選択] ダイアログ ボックスで、[プロットする応答の選択] ドロップダウン リストから対応する開ループ応答を選択し、[プロット] をクリックします。
scdairframectrl/az Control/az DTF
の出力端子 1 の開ループ応答
scdairframectrl/q Control/q Gain
の出力端子 1 の開ループ応答
フィードバック システムの閉ループ応答を表示するには、新規の入出力伝達関数の応答についてステップ プロットを作成します。[新規プロット]、[新規ステップ] を選択します。次に、[新規ステップ] ダイアログ ボックスで、[プロットする応答の選択] ドロップダウン リストから [新規の入出力伝達の応答] を選択します。
入力信号として scdairframectrl/Step az/1
を、出力信号として scdairframectrl/Airframe Model/1
を追加します。
[プロット] をクリックします。
外側のフィードバック ループの影響の排除
外側のループのボード エディター プロット [LoopTransfer_scdairframectrl_az_Control_az_DTF のボード エディター] で、振幅応答を上方にドラッグしてフィードバック ループのゲインを増加させます。内側のループのボード エディター プロット [LoopTransfer_scdairframectrl_q_Control_q_Gain のボード エディター] も変化します。この変化の原因は、フィードバック ループ間の結合です。より体系的な方法としては、まず内側のフィードバック ループを、外側のループが開いている状態で設計します。
内側のループの設計時に外側のループの影響を取り除くには、内側のループの開ループ応答にループ開始点を追加します。
データ ブラウザーの [応答] 領域で、内側のループ応答を右クリックして [選択を開く] を選択します。
[開ループ伝達関数] ダイアログ ボックスで、ループ開始点として scdairframectrl/az Control/az DTF/1
を指定します。[OK] をクリックします。
外側のループのボード エディター プロットで、振幅応答をドラッグしてゲインを増加させます。ループは分離されているので、内側のループのボード エディター プロットは変化しません。
これで、外側のループの影響がない、内側のループの設計を完了できます。また、内側のループの影響を考慮しながら同時に、外側のループを設計することもできます。
補償器の調整
制御システム デザイナーには、制御システムを調整する方法がいくつか含まれています。
補償器エディターを使用して、各補償器のパラメーターを手動で調整する。詳細については、補償器エディターを使用した Simulink ブロックの調整を参照してください。
開/閉ループ ボード線図、根軌跡またはニコルス線図の各エディター プロットを使用して、補償器の極、零点、ゲインをグラフィカルに調整する。[調整法] をクリックし、[グラフィカルな調整] の下でエディターを選択します。
時間領域と周波数領域の両方の設計要件を使用して補償器のパラメーターを最適化する (Simulink Design Optimization™ ソフトウェアが必要)。[調整法] をクリックし、[最適化ベースの調整] を選択します。詳細については、Enforcing Time and Frequency Requirements on a Single-Loop Controller Design (Simulink Design Optimization)を参照してください。
閉ループ時定数などのパラメーターに基づく自動調整を使用して、初期の補償器パラメーターを計算する。[調整法] をクリックし、[PID 調整]、[内部モデル コントロール (IMC) の調整]、[ループ整形] (Robust Control Toolbox™ ソフトウェアが必要)、[LQG 設計] のいずれかを選択します。
設計の完了
以下の補償器パラメーターは設計要件を満たしています。
scdairframectrl/q Control/q Gain
:
K_q = 2.7717622
scdairframectrl/az Control/az Gain
:
K_az = 0.00027507
scdairframectrl/az Control/az DTF
:
Numerator = [100.109745 -99.109745] Denominator = [1 -0.88893]
閉ループ システムの応答は次の図に示すとおりです。
Simulink モデルの更新
補償器のパラメーターを Simulink モデルに書き込むには、[ブロックの更新] をクリックします。その後、非線形モデルで設計をテストできます。