looptune
での調整用に次の制御システムを設定します。その後、その設定を systune
問題に変換し、その結果を調べます。これらの結果は、looptune
が調整する制御システム モデルの構造を反映します。結果には、looptune
での調整時に暗黙的に適用される調整要件も反映されます。
この例では、2 行 2 列のプラント G
は以下によって表されます。
固定構造コントローラー C
には 3 つの成分が含まれています。それは、2 行 2 列分離行列 D
と 2 つの PI コントローラー PI_L
および PI_V
です。信号 r
、y
および e
は次元 2 のベクトル値の信号です。
プラントを表す数値モデルとコントローラーを表す調整可能なモデルを作成します。図のようにすべての入力と出力に名前を付けて、プラントとコントローラーを制御信号と測定信号によって相互接続する方法が looptune
および looptuneSetup
で認識されるようにします。
これでこのシステムは、指定した調整目標を使用して looptune
で調整できるようになりました。たとえば、ターゲットの帯域幅の範囲を指定します。応答時間が 15 秒のシステムの両方のチャネルおよび外乱の抑制の要件で設定値追従を課す調整要件を作成します。
Final: Peak gain = 1, Iterations = 42
Achieved target gain value TargetGain=1.
looptune
により、システムはこれらの要件に正常に調整されます。ただし、systune
に切り替えると、さらに柔軟な方法で問題を構成することができます。たとえば、両方のチャネルを wc
内のループ帯域幅に調整する代わりに、ループごとに異なる交差周波数を指定できます。また、TR
と DR
の調整要件を厳密な制約として適用し、他の要件を柔軟な要件として追加することもできます。
looptune
入力引数を systune
の一連の入力引数に変換します。
このコマンドは、looptune
での調整と同等の結果を得るために systune
に提供できる、一連の引数を返します。つまり、次のコマンドは前の looptune
コマンドと同等です。
Final: Peak gain = 1, Iterations = 42
Achieved target gain value TargetGain=1.
looptuneSetup
によって返される引数を調べます。
Generalized continuous-time state-space model with 0 outputs, 2 inputs, 4 states, and the following blocks:
APU_: Analysis point, 2 channels, 1 occurrences.
APY_: Analysis point, 2 channels, 1 occurrences.
Decoupler: Tunable 2x2 gain, 1 occurrences.
PI_L: Tunable PID controller, 1 occurrences.
PI_V: Tunable PID controller, 1 occurrences.
Model Properties
Type "ss(T0)" to see the current value and "T0.Blocks" to interact with the blocks.
次の図に示すように、プラントとコントローラーを制御信号および測定信号で接続して、2 チャネルの AnalysisPoint
ブロックをそれぞれの接続位置に挿入することで、ソフトウェアは systune
用に閉ループ制御システムを構成します。
looptune
でこの例の制御システムを調整する場合、すべての要件は柔軟な要件として扱われます。そのため、HardReqs
は空になります。SoftReqs
は、TuningGoal
要件の配列です。これらの要件は、全体として looptune
コマンドの帯域幅および余裕を適用し、さらに指定した追加の要件も適用します。
SoftReqs=5×1 heterogeneous SystemLevel (LoopShape, Tracking, Rejection, ...) array with properties:
Models
Openings
Name
SoftReqs
の最初のエントリを調べます。
ans =
LoopShape with properties:
LoopGain: [1×1 zpk]
CrossTol: 0.3495
Focus: [0 Inf]
Stabilize: 1
LoopScaling: 'on'
Location: {2×1 cell}
Models: NaN
Openings: {0×1 cell}
Name: 'Open loop CG'
looptuneSetup
は、ターゲット交差周波数の範囲 wc
を TuningGoal.LoopShape
要件として表します。この要件により、開ループ ゲインのプロファイルは、wc
で決定される交差周波数および交差に対する許容誤差 (CrossTol
) をもつ、LoopGain
プロパティに保存されたループ整形に制限されます。このループ整形を調べます。
ターゲット交差は、wc
で指定された 0.1 ~ 0.5 rad/s の交差をもつ積分ゲイン プロファイルとして表されます。別のループ整形を指定する場合は、この TuningGoal.LoopShape
要件を変更してから systune
に渡すことができます。
looptune
でも、looptuneOptions
を使用して変更できる既定の安定余裕に調整を行います。systune
では、安定余裕は TuningGoal.Margins
要件を使用して指定します。ここで、looptuneSetup
では、looptune
の既定の安全余裕が柔軟な TuningGoal.Margins
要件として表されています。たとえば、SoftReqs
の 4 番目のエントリを調べます。
ans =
Margins with properties:
GainMargin: 7.6000
PhaseMargin: 45
ScalingOrder: 0
Focus: [0 Inf]
Location: {2×1 cell}
Models: NaN
Openings: {0×1 cell}
Name: 'Margins at plant inputs'
SoftReqs
の最後のエントリは、プラント出力で余裕を制約している TuningGoal.Margins
要件と似ています。looptune
は、これらの余裕を柔軟な要件として適用します。これらを厳密な制約に変換する場合は、入力ベクトル SoftReqs
ではなく、入力ベクトル HardReqs
で systune
にそれらを渡します。