このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
looptuneSetup
looptune
の調整設定を systune
の調整設定に変換
説明
[
は、T0
,SoftReqs
,HardReqs
,sysopt
] = looptuneSetup(looptuneInputs
)looptune
の調整設定を、systune
の同等の調整設定に変換します。引数 looptuneInputs
は、調整設定を指定する looptune
の一連の入力引数です。たとえば、以下のようになります。
[T0,SoftReqs,HardReqs,sysopt] = looptuneSetup(G0,C0,wc,Req1,Req2,loopopt)
looptune(G0,C0,wc,Req1,Req2,loopopt)
と systune(T0,SoftReqs,HardReqs,sysopt)
が同じ結果を生成するように一連の引数を生成します。これに加え、このコマンドを使用すると systune
が looptune
に関して提供する柔軟性を利用できるようになります。たとえば、looptune
では MIMO フィードバック ループのすべてのチャネルを同じターゲットの帯域幅に調整する必要があります。systune
に変換すると、制御システムで各ループに別の交差周波数およびループ整形を指定できます。また、looptune
はすべての調整要件を柔軟な要件として扱い、それらを最適化するものの、あらゆる制約を厳密に満たす必要はないものとして扱います。systune
に変換すると、一部の調整要件は厳密な制約として強制的に適用し、それ以外は柔軟な要件として処理できます。
また、このコマンドを使用して、looptune
によって使用された調整要件を調査することもできます。
メモ
slTuner
インターフェイスを通して Simulink® モデルを調整する場合、slTuner
には looptuneSetup
(Simulink Control Design) を使用します。
例
looptune 問題の systune 問題への変換
looptune
の一連の入力を、systune
の同等の一連の入力に変換します。
数値プラント モデル G0
および調整可能なコントローラー モデル C0
があるとします。また、looptune
を使用して G0
および C0
間のフィードバック ループを wc = [wmin,wmax]
の帯域幅内に調整しているとします。これらの変数を、systune
を使用して詳細な調整ができる形式に変換します。
[T0,SoftReqs,HardReqs,sysopt] = looptuneSetup(C0,G0,wc);
このコマンドは、同等の systune
コマンド systune(CL0,SoftReqs,HardReqs,sysopt)
の閉ループ システムおよび調整要件を返します。配列 SoftReqs
および HardReqs
には、looptune
で暗黙的に課せられた調整要件が含まれます。これらの要件により、looptune
のターゲットの帯域幅および既定の安定余裕が適用されます。
looptune
でシステムを調整する際に追加の調整要件を使用している場合、それらを looptuneSetup
の入力リストに追加します。たとえば、TuningGoal.Tracking
要件 Req1
および TuningGoal.Rejection
要件 Req2
を使用したとします。また、looptuneOptions
を使用して looptune
のアルゴリズム オプションを設定したとします。これらの要件およびオプションを同等の systune
コマンドに組み込みます。
[T0,SoftReqs,HardReqs,sysopt] = looptuneSetup(C0,G0,wc,Req1,Req2,loopopt);
その結果の引数により、systune
の同等の調整の問題を作成できます。特に、[~,C] = looptune(C0,G0,wc,Req1,Req2,loopopt)
は次のコマンドと同じ結果となります。
T = systune(T0,SoftReqs,HardReqs,sysopt); C = setBlockValue(C0,T);
systune で調整するための蒸留塔の問題の変換
looptune
での調整用に次の制御システムを設定します。その後、その設定を systune
問題に変換し、その結果を調べます。これらの結果は、looptune
が調整する制御システム モデルの構造を反映します。結果には、looptune
での調整時に暗黙的に適用される調整要件も反映されます。
この例では、2 行 2 列のプラント G
は以下によって表されます。
固定構造コントローラー C
には 3 つの成分が含まれています。それは、2 行 2 列分離行列 D
と 2 つの PI コントローラー PI_L
および PI_V
です。信号 r
、y
および e
は次元 2 のベクトル値の信号です。
プラントを表す数値モデルとコントローラーを表す調整可能なモデルを作成します。図のようにすべての入力と出力に名前を付けて、プラントとコントローラーを制御信号と測定信号によって相互接続する方法が looptune
および looptuneSetup
で認識されるようにします。
s = tf('s'); G = 1/(75*s+1)*[87.8 -86.4; 108.2 -109.6]; G.InputName = {'qL','qV'}; G.OutputName = {'y'}; D = tunableGain('Decoupler',eye(2)); D.InputName = 'e'; D.OutputName = {'pL','pV'}; PI_L = tunablePID('PI_L','pi'); PI_L.InputName = 'pL'; PI_L.OutputName = 'qL'; PI_V = tunablePID('PI_V','pi'); PI_V.InputName = 'pV'; PI_V.OutputName = 'qV'; sum1 = sumblk('e = r - y',2); C0 = connect(PI_L,PI_V,D,sum1,{'r','y'},{'qL','qV'});
これでこのシステムは、指定した調整目標を使用して looptune
で調整できるようになりました。たとえば、ターゲットの帯域幅の範囲を指定します。応答時間が 15 秒のシステムの両方のチャネルおよび外乱の抑制の要件で設定値追従を課す調整要件を作成します。
wc = [0.1,0.5]; TR = TuningGoal.Tracking('r','y',15,0.001,1); DR = TuningGoal.Rejection({'qL','qV'},1/s); DR.Focus = [0 0.1]; [G,C,gam,info] = looptune(G,C0,wc,TR,DR);
Final: Peak gain = 1, Iterations = 42 Achieved target gain value TargetGain=1.
looptune
により、システムはこれらの要件に正常に調整されます。ただし、systune
に切り替えると、さらに柔軟な方法で問題を構成することができます。たとえば、両方のチャネルを wc
内のループ帯域幅に調整する代わりに、ループごとに異なる交差周波数を指定できます。また、TR
と DR
の調整要件を厳密な制約として適用し、他の要件を柔軟な要件として追加することもできます。
looptune
入力引数を systune
の一連の入力引数に変換します。
[T0,SoftReqs,HardReqs,sysopt] = looptuneSetup(G,C0,wc,TR,DR);
このコマンドは、looptune
での調整と同等の結果を得るために systune
に提供できる、一連の引数を返します。つまり、次のコマンドは前の looptune
コマンドと同等です。
[T,fsoft,ghard,info] = systune(T0,SoftReqs,HardReqs,sysopt);
Final: Peak gain = 1, Iterations = 42 Achieved target gain value TargetGain=1.
looptuneSetup
によって返される引数を調べます。
T0
T0 = 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. Type "ss(T0)" to see the current value, "get(T0)" to see all properties, and "T0.Blocks" to interact with the blocks.
次の図に示すように、プラントとコントローラーを制御信号および測定信号で接続して、2 チャネルの AnalysisPoint
ブロックをそれぞれの接続位置に挿入することで、ソフトウェアは systune
用に閉ループ制御システムを構成します。
looptune
でこの例の制御システムを調整する場合、すべての要件は柔軟な要件として扱われます。そのため、HardReqs
は空になります。SoftReqs
は、TuningGoal
要件の配列です。これらの要件は、全体として looptune
コマンドの帯域幅および余裕を適用し、さらに指定した追加の要件も適用します。
SoftReqs
SoftReqs=5×1 object
5x1 heterogeneous SystemLevel (LoopShape, Tracking, Rejection, ...) array with properties:
Models
Openings
Name
SoftReqs
の最初のエントリを調べます。
SoftReqs(1)
ans = LoopShape with properties: LoopGain: [1x1 zpk] CrossTol: 0.3495 Focus: [0 Inf] Stabilize: 1 LoopScaling: 'on' Location: {2x1 cell} Models: NaN Openings: {0x1 cell} Name: 'Open loop CG'
looptuneSetup
は、ターゲット交差周波数の範囲 wc
を TuningGoal.LoopShape
要件として表します。この要件により、開ループ ゲインのプロファイルは、wc
で決定される交差周波数および交差に対する許容誤差 (CrossTol
) をもつ、LoopGain
プロパティに保存されたループ整形に制限されます。このループ整形を調べます。
viewGoal(SoftReqs(1))
ターゲット交差は、wc
で指定された 0.1 ~ 0.5 rad/s の交差をもつ積分ゲイン プロファイルとして表されます。別のループ整形を指定する場合は、この TuningGoal.LoopShape
要件を変更してから systune
に渡すことができます。
looptune
でも、looptuneOptions
を使用して変更できる既定の安定余裕に調整を行います。systune
では、安定余裕は TuningGoal.Margins
要件を使用して指定します。ここで、looptuneSetup
では、looptune
の既定の安全余裕が柔軟な TuningGoal.Margins
要件として表されています。たとえば、SoftReqs
の 4 番目のエントリを調べます。
SoftReqs(4)
ans = Margins with properties: GainMargin: 7.6000 PhaseMargin: 45 ScalingOrder: 0 Focus: [0 Inf] Location: {2x1 cell} Models: NaN Openings: {0x1 cell} Name: 'Margins at plant inputs'
SoftReqs
の最後のエントリは、プラント出力で余裕を制約している TuningGoal.Margins
要件と似ています。looptune
は、これらの余裕を柔軟な要件として適用します。これらを厳密な制約に変換する場合は、入力ベクトル SoftReqs
ではなく、入力ベクトル HardReqs
で systune
にそれらを渡します。
入力引数
出力引数
T0
— 閉ループ制御システム モデル
一般化状態空間モデル
systune
を使用した調整のための閉ループ制御システム モデル。一般化状態空間 genss
モデルとして返されます。T0
を計算するために、プラント G0
およびコントローラー C0
は次の図のフィードバック構成で結合されます。
C0
および G0
の間の接続は、2 つのモデルの InputName
プロパティと OutputName
プロパティを使用して信号を一致させることで決定されます。一般的に、ブロック線図内の信号線は、ベクトル値の信号を表します。ブロック線図内で X によって表される AnalysisPoint
ブロックはコントローラーとプラントの間に挿入されています。これにより、プラント入力またはプラント出力で挿入または測定される信号に対する開ループおよび閉ループの要件の定義が可能です。たとえば、帯域幅 wc
は、プラント入力で測定される開ループ信号に対して目的の交差を適用する TuningGoal.LoopShape
要件に変換されます。
systune
を使用した調整のための閉ループ制御システム モデルの構造の詳細については、systune
リファレンス ページを参照してください。
SoftReqs
— 柔軟な調整要件
TuningGoal
要件オブジェクトのベクトル
systune
による調整時の柔軟な調整要件。TuningGoal
要件オブジェクトのベクトルとして指定します。
looptune
は、その暗黙的な調整要件のほとんどを柔軟な調整要件で表します。たとえば、指定されたターゲット ループの帯域幅を、ターゲット周波数での積分ゲイン プロファイルおよび交差を指定した TuningGoal.LoopShape
要件で表します。また、looptune
は指定したすべての明示的な要件 (Req1,...ReqN
) を柔軟な要件として処理します。SoftReqs
には、これらすべての調整要件が含まれます。
HardReqs
— 厳密な調整要件
TuningGoal
要件オブジェクトのベクトル
systune
による調整時の厳密な調整要件 (制約)。TuningGoal
要件オブジェクトのベクトルとして指定します。
looptune
は、ほとんどの調整要件を柔軟な要件として処理するため、通常、HardReqs
は空です。ただし、looptuneOptions
セット loopopt
の既定の MaxFrequency
オプションを変更する場合、この要件は厳密な TuningGoal.Poles
制約として示されます。
代替方法
slTuner
インターフェイスを使用して Simulink を調整する場合、slTuner
の looptuneSetup
(Simulink Control Design) を使用して looptune
問題を systune
に変換します。
バージョン履歴
R2013b で導入
参考
looptune
| systune
| looptuneOptions
| systuneOptions
| genss
| slTuner
(Simulink Control Design) | looptuneSetup (for slTuner)
(Simulink Control Design)
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)