このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
looptune
固定構造フィードバック ループの調整
構文
[G,C,gam] = looptune(G0,C0,wc)
[G,C,gam] = looptune(G0,C0,wc,Req1,...,ReqN)
[G,C,gam] = looptune(...,options)
[G,C,gam,info] = looptune(...)
説明
[
は次のフィードバック ループを調整します。G
,C
,gam
] = looptune(G0
,C0
,wc
)
次の既定の要件を満たすように調整します。
帯域幅 — 各ループが周波数範囲
wc
に収まるゲイン交差周波数性能 —
wc
より低い周波数における積分動作ロバスト性 —
wc
を超える周波数における適切な安定余裕とゲインのロールオフ
調整可能な genss
モデル C0
は、コントローラーの構造体、パラメーターおよび初期値を指定します。モデル G0
はプラントを指定します。G0
は数値 LTI モデルにするか、調整可能な genss
モデル (プラントとコントローラーを同時調整する場合) にすることができます。センサー信号 y
(測定) とアクチュエータ信号 u
(制御) は、プラントとコントローラーの境界を定義します。
メモ
looptune
で Simulink® モデルを調整する場合は、slTuner
(Simulink Control Design) を使用して Simulink モデルに対するインターフェイスを作成します。その後、slTuner
の looptune
(Simulink Control Design) を使って制御システムを調整できるようになります (Simulink Control Design™ が必要)。
[
は、1 つ以上の調整目標オブジェクト G
,C
,gam
] = looptune(G0
,C0
,wc
,Req1,...,ReqN
)Req1,...,ReqN
によって指定された追加の設計要件を満たすようフィードバック ループを調整します。明示的なターゲット交差周波数および既定の性能とロバスト性の要件ではなく、Req1,...,ReqN
によって指定されたこの要件を使用する場合は、wc
を省略します。
[
は、さらに、ターゲット ゲイン余裕、ターゲット位相余裕、調整アルゴリズムの計算オプションなどのオプションを指定します。G
,C
,gam
] = looptune(...,options
)
[
は、調整結果に関する追加情報を含む構造体 G
,C
,gam
,info
] = looptune(...)info
を返します。loopview
コマンドで info
を使用して調整制約を可視化し、調整された設計を検証します。
入力引数
|
調整する制御システム内のプラントを表す数値 LTI モデルまたは調整可能な プラントは、出力がセンサー信号 (測定) であり、入力がアクチュエータ信号 (制御) である制御システムの一部です。個々の数値コンポーネントまたは調整可能なコンポーネントから |
|
コントローラーを表す一般化 LTI モデル。 コントローラーは、センサー信号 (測定) を入力として受け取り、アクチュエータ信号 (制御) を出力として生成する制御システムの一部です。制御設計ブロックと一般化 LTI モデルを使用して、コントローラーの調整可能なコンポーネントを表現します。個々の数値コンポーネントまたは調整可能なコンポーネントから |
|
ターゲット交差領域 スカラー |
|
設計要件を指定する |
|
|
出力引数
|
調整プラント。
| ||||||
|
調整コントローラー。 | ||||||
|
調整のすべての制約条件に対する充足度を示すパラメーター。値が 最良の結果を得るには、 | ||||||
|
調整結果を検証するためのデータ。構造体として返されます。
|
例
次の図の制御システムを調整して、0.1 ~ 1 rad/min の交差を実現します。
2 行 2 列プラント G
は次のように表されます。
固定構造コントローラー C
には 3 つの成分が含まれています。それは、2 行 2 列分離行列 D
と 2 つの PI コントローラー PI_L
および PI_V
です。信号 r
、y
および e
は次元 2 のベクトル値の信号です。
プラントを表す数値モデルとコントローラーを表す調整可能なモデルを作成します。図のようにすべての入力と出力に名前を付けて、プラントとコントローラーを制御信号と測定信号によって相互接続する方法が looptune
で認識されるようにします。
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'}); wc = [0.1,1]; [G,C,gam,info] = looptune(G,C0,wc);
C
は調整コントローラーで、この場合は C0
と同じタイプのブロックをもつ genss
モデルです。
loopview
を使用して調整結果を調べることができます。
アルゴリズム
looptune
は、ターゲット帯域幅、性能要件、追加の設計要件を H∞ 最適化問題として表現する重み関数に自動変換します。変換後、looptune
は systune
を使用して、H∞ ノルムが最小となるように調整可能なパラメーターを最適化します。最適化アルゴリズムの詳細については、[1]を参照してください。
looptune
は、[2]のアルゴリズムと SLICOT ライブラリの構造維持固有値ソルバーを使用して、H∞ ノルムを計算します。SLICOT ライブラリの詳細については、http://slicot.org を参照してください。
代替方法
looptune
で Simulink モデルを調整する場合は、slTuner
(Simulink Control Design) と looptune
(Simulink Control Design) を参照してください (Simulink Control Design が必要)。
参考文献
[1] P. Apkarian and D. Noll, "Nonsmooth H-infinity Synthesis." IEEE Transactions on Automatic Control, Vol. 51, Number 1, 2006, pp. 71–86.
[2] Bruinsma, N.A., and M. Steinbuch. "A Fast Algorithm to Compute the H∞ Norm of a Transfer Function Matrix." Systems & Control Letters, 14, no.4 (April 1990): 287–93.
拡張機能
バージョン履歴
R2016a で導入参考
TuningGoal.Tracking
| slTuner
(Simulink Control Design) | systune
| looptune (for slTuner)
(Simulink Control Design) | TuningGoal.Gain
| TuningGoal.LoopShape
| hinfstruct
(Robust Control Toolbox) | looptuneOptions
| loopview
| diskmargin
(Robust Control Toolbox) | genss
| connect