Simulink Control Design


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

カスケードのマルチループ/複数補償器のフィードバック設計

この例では、Simulink Control Design を使用して 2 つのカスケード フィードバック ループを調整する方法を説明します。

モデルを開く

機体モデルを開き、少し時間をとってモデルを調べます。

open_system('scdairframectrl');

設計の概要

この例では、加速度コンポーネント (az) が最大立ち上がり時間 0.5 秒の基準信号を追跡するように、2 つのカスケード フィードバック ループを設計するプロセスを紹介します。この例のフィードバック ループ構造では、内側のフィードバック ループとして本体比 (q) を、外側のフィードバック信号として加速度 (az) を、それぞれ使用します。

調整されるフィードバック コントローラーは、以下の 2 つです。

  • scdairframectrl/q Control - Discrete-Time Integrator と Gain ブロック q Gain が、この内側ループを安定化させます。

open_system('scdairframectrl/q Control')

  • scdairframectrl/az Control - Discrete-Time Integrator、Discrete Transfer Function および Gain ブロック az Gain が、外側ループを安定化させます。

open_system('scdairframectrl/az Control')

マルチループ設計におけるループの分離

カスケード フィードバック システムの一般的な設計手順では、最初に内側ループを設計し、次に外側ループを設計します。Simulink 補償器設計作業では、両方のループを同時に設計することが可能です。既定では、マルチループのフィードバック システムを設計する際にループ間の結合の影響が考慮されます。しかし、2 つのフィードバック ループを同時に設計する場合は、内側のループを調整するときに外側のループの影響を除去しなければなりません。この例では、外側のループ (az) の影響を除去したうえで、内側のフィードバック ループ (q) を設計しなければなりません。この例では、Simulink 補償器設計作業でフィードバック ループを分離する方法を示します。

SISO 設計作業の作成

この例では、Simulink 補償器設計作業を使用して、フィードバック システムで補償器を調整する SISO 設計作業を作成します。SISO 設計作業を作成するには、次の 2 つの方法があります。

  • モデルの左下隅のサブシステムをダブルクリックして、事前に構成されている Simulink Control Design 作業を起動する。

  • 以下の手順に従って、SISO 設計作業を作成する。

新規設計の開始

手順 1 モデル scdairframectrl.mdl の新しい Simulink 補償器設計作業を開始します。開始するには、Simulink モデルから [解析]、[制御設計]、[制御システム デザイナー] を選択します。

手順 2 調整する以下のブロックを選択します。

  • scdairframectrl/q Control/q Gain

  • scdairframectrl/az Control/az Gain

  • scdairframectrl/az Control/az DTF

手順 3 以下の閉ループ信号を選択します。

  • 入力:scdairframectrl/Step az - 出力端子 1

  • 出力:scdairframectrl/Airframe Model - 出力端子 1

手順 4 [ブロックの調整...] ボタンをクリックして、設計のコンフィギュレーション ウィザードを起動します。

Simulink 制御設計が、開ループ設計に対する 3 つの潜在的フィードバック ループを自動的に認識します。

  • 出力端子 1 (scdairframectrl/az Control/az DTF) の開ループ

  • 出力端子 1 (scdairframectrl/az Control/az Gain) の開ループ

  • 出力端子 1 (scdairframectrl/q Control/q Gain) の開ループ

ウィザードの手順 1 で、調整するループを選択します。

  • プロット 1: 調整するループ - 出力端子 1 (scdairframectrl/az Control/az DTF) の開ループ、プロット タイプ - 開ループ ボード線図

  • プロット 2: 調整するループ - 出力端子 1 (scdairframectrl/q Control/q Gain) の開ループ、プロット タイプ - 開ループ ボード線図

ウィザードの手順 2 で、プロット 1 に対するステップ応答を選択し、Closed Loop from scdairframectrl/Step az to scdairframe/Airframe Model (pt 1) をこのプロットに追加して、フィードバック システムの閉ループ応答を表示します。

ウィザードが完了すると、SISO 設計作業ノードが作成されます。この作業ノードを使用して、設計を完成させます。

外側のフィードバック ループの影響の除去

SISO 設計作業は、複数のフィードバック ループを同時に設計できる状態にあります。ボード線図エディター (以下のイメージを参照) で、左側のプロット (外側のフィードバック ループ az) をクリックし、フィードバック ループのゲインを上げます。右側のプロットの応答が変化することに注意してください。変化の原因は、フィードバック ループ間の結合です。しかし、より体系的な方法は、まず、外側のループが開いている状態で内側のフィードバック ループ q を設計するというものです。

内側のループを設計する際に外側のループ (az) の影響を除去するには、以下の手順に従います。

手順 1 SISO 設計作業ノードから [アーキテクチャ] パネルを選択し、[ループの設定...] ボタンをクリックします。

手順 2 [開ループの設定] ダイアログで Open Loop at outport 1 of scdairframe/q Control/q Gain の [開ループの構成] を選択します。これにより、モデル内でフィードバック ループを開くための可能な位置のリストが表示されます。ループ間の現在の結合を確認するには、[フィードバック ループを強調] ボタンをクリックします。これにより、現在のフィードバック ループ内のブロックが強調表示されます。

フィードバック ループを開くには、リストからブロック出力を選択します。この例では、外側の加速度ループの影響をなくすために、scdairframe/az Control/az DTF を選択します。

[フィードバック ループを強調] ボタンをクリックします。これにより、内側のフィードバック ループのみが強調表示され、外側のループは強調表示されません。

手順 3 グラフィカル エディターに戻り、外側の加速度ループのゲインを変更します。内側のフィードバック ループの応答は変化しません。

これで、外側のループの影響がない、内側のループの設計を完了できます。また、内側のループの影響を考慮しながら同時に、外側のループを設計することもできます。

設計の完了

SISO 設計作業には、制御システムを調整する 4 つの方法が含まれています。

  • [補償器エディター] パネルを使用して、各補償器のパラメーターを手動で調整する。「補償器エディターでの Simulink ブロックの調整」の例を参照してください。

  • [グラフィカルな調整] パネルで設計プロットを設定し、根軌跡、開/閉ループ ボード線図、およびニコルス線図を使用して補償器の極、零点、およびゲインを設計する。

  • [自動調整] パネルの [最適化ベースの調整] オプションを使用して (Simulink Design Optimization が必要)、時間領域と周波数領域の両方の設計要件に基づき補償器を調整する。「Airframe Controller Tuning」の例を参照してください。

  • [自動調整] パネルの [PID 調整][IMC 調整] および [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 ブロック パラメーターの更新] ボタンをクリックすると、この設計を非線形モデルに対してテストできます。これにより、パラメーターが Simulink モデルに書き込まれます。

bdclose('scdairframectrl')