Main Content

Simulink モデルに対する slTuner インターフェイスの作成と設定

この例では、Simulink® モデルに対する slTuner インターフェイスを作成して設定する方法を説明します。slTuner インターフェイスでは、調整可能として指定されたモデル内のブロックがパラメーター化され、systune を使用してそれらを調整できるようになります。また、slTuner インターフェイスでは Simulink モデルの線形化が生成されるため、線形化されたシステム応答を抽出して、調整された制御システムの解析と検証を行うこともできます。

この例では、回転翼航空機のマルチループ コントローラーである Simulink モデル rct_helico を調整するための slTuner インターフェイスを作成して設定します。モデルを開きます。

open_system('rct_helico');

制御システムは 2 つのフィードバック ループで構成されています。内側のループ (静的出力フィードバック) によって、安定増大とデカップリングを行います。外側のループ (PI コントローラー) によって、設定点の追従性能を達成します。

このモデルを調整し、次の制御目的を達成するとします。

  • 設定点での thetaphir の変化を定常偏差ゼロ、指定した立ち上がり時間、最小限のオーバーシュート、最小限の相互干渉で追従。

  • 制御帯域幅を制限することで、考慮されていない高周波のローター ダイナミクスと測定ノイズに対処。

  • 強力な多変数ゲイン余裕と位相余裕 (プラントの入出力におけるゲイン/位相の同時変化に対するロバスト性) を提供。

systune コマンドを使うと、これらの設計要件を満たすようにコントローラー ブロック SOF および PI コントローラーを同時に調整することができます。slTuner インターフェイスがこの調整タスクを設定します。

slTuner インターフェイスを作成します。

ST0 = slTuner('rct_helico',{'PI1','PI2','PI3','SOF'});

このコマンドによって slTuner インターフェイスが初期化され、3 つの PI コントローラーおよび SOF ブロックが調整可能に指定されます。調整可能な各ブロックは、そのタイプに応じて自動的にパラメーター化され、Simulink モデル内の値で初期化されます。

slTuner インターフェイスを設定するには、設計要件に関連する任意の信号箇所を解析ポイントとして指定します。まず、追従要件に対して、出力と基準入力を追加します。

addPoint(ST0,{'theta-ref','theta','phi-ref','phi','r-ref','r'});

追従要件を取得する TuningGoal.Tracking オブジェクトを作成する場合、このオブジェクトは同じ信号を参照します。

slTuner インターフェイスを安定余裕要件用に設定します。安定余裕が測定されるプラントの入出力 (制御信号と測定信号) を解析ポイントとして指定します。

addPoint(ST0,{'u','y'});

slTuner インターフェイス構成の概要をコマンド ウィンドウに表示します。

ST0
 
slTuner tuning interface for "rct_helico":

4 Tuned blocks: (Read-only TunedBlocks property) 
--------------------------
Block 1: rct_helico/PI1
Block 2: rct_helico/PI2
Block 3: rct_helico/PI3
Block 4: rct_helico/SOF
 
8 Analysis points: 
--------------------------
Point 1: 'Output Port 1' of rct_helico/theta-ref
Point 2: Signal "theta", located at 'Output Port 1' of rct_helico/Demux1
Point 3: 'Output Port 1' of rct_helico/phi-ref
Point 4: Signal "phi", located at 'Output Port 2' of rct_helico/Demux1
Point 5: 'Output Port 1' of rct_helico/r-ref
Point 6: Signal "r", located at 'Output Port 3' of rct_helico/Demux1
Point 7: Signal "u", located at 'Output Port 1' of rct_helico/Mux3
Point 8: Signal "y", located at 'Output Port 1' of rct_helico/Helicopter
 
No permanent openings. Use the addOpening command to add new permanent openings.
Properties with dot notation get/set access:
      Parameters         : [] 
      OperatingPoints    : [] (model initial condition will be used.)
      BlockSubstitutions : []
      Options            : [1x1 linearize.SlTunerOptions]
      Ts                 : 0

コマンド ウィンドウで、強調表示されている信号のいずれかをクリックすると、その信号の Simulink モデル内での位置が表示されます。

設計要件を指定する他に、解析ポイントを使用してシステム応答を抽出することもできます。たとえば、基準信号と 'theta''phi'、および 'r' の間のステップ応答を抽出し、プロットします。

T0 = getIOTransfer(ST0,{'theta-ref','phi-ref','r-ref'},{'theta','phi','r'});
stepplot(T0,1)

このモデルはまだ調整されていないため、相互干渉を含むすべてのステップ応答が不安定です。

モデルの調整後も同様に、指定の解析ポイントを使用してシステム応答を抽出し、調整されたシステムを検証することができます。設計要件の指定には不要な位置でのシステム応答を調べる場合は、それらの位置も slTuner インターフェイスに追加します。たとえば、ブロック roll-off 2 の出力で測定された感度関数をプロットします。

addPoint(ST0,'dc')
dcS0 = getSensitivity(ST0,'dc');
bodeplot(dcS0)

slTuner インターフェイスで、調整可能なブロックのパラメーター化を変更するとします。たとえば、モデルの調整後に、PI コントローラーから PID コントローラーへの変更によって結果が改善されるかどうかをテストするとします。3 つの PI コントローラーのパラメーター化を PID コントローラーに変更します。

PID0 = pid(0,0.001,0.001,.01);  % initial value for PID controllers
PID1 = tunablePID('C1',PID0);
PID2 = tunablePID('C2',PID0);
PID3 = tunablePID('C3',PID0);

setBlockParam(ST0,'PI1',PID1,'PI2',PID2,'PI3',PID3);

Simulink モデルに対する slTuner インターフェイスを設定したら、調整目標を作成し、systune または looptune を使用してモデルを調整することができます。

参考

(Simulink Control Design) | (Simulink Control Design) | (Simulink Control Design) | (Simulink Control Design) | (Simulink Control Design) | (Simulink Control Design)

関連するトピック