Main Content

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) が同じ結果を生成するように一連の引数を生成します。

これに加え、このコマンドを使用すると systunelooptune に関して提供する柔軟性を利用できるようになります。たとえば、looptune では MIMO フィードバック ループのすべてのチャネルを同じターゲットの帯域幅に調整する必要があります。systune に変換すると、制御システムで各ループに別の交差周波数およびループ整形を指定できます。また、looptune はすべての調整要件を柔軟な要件として扱い、それらを最適化するものの、あらゆる制約を厳密に満たす必要はないものとして扱います。systune に変換すると、一部の調整要件は厳密な制約として強制的に適用し、それ以外は柔軟な要件として処理できます。

また、このコマンドを使用して、looptune によって使用された調整要件を調査することもできます。

メモ

slTuner インターフェイスを通して Simulink® モデルを調整する場合、slTuner には looptuneSetup (Simulink Control Design) を使用します。

すべて折りたたむ

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);

looptune での調整用に次の制御システムを設定します。その後、その設定を systune 問題に変換し、その結果を調べます。これらの結果は、looptune が調整する制御システム モデルの構造を反映します。結果には、looptune での調整時に暗黙的に適用される調整要件も反映されます。

この例では、2 行 2 列のプラント G は以下によって表されます。

G(s)=175s+1[87.8-86.4108.2-109.6].

固定構造コントローラー C には 3 つの成分が含まれています。それは、2 行 2 列分離行列 D と 2 つの PI コントローラー PI_L および PI_V です。信号 ry および 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 内のループ帯域幅に調整する代わりに、ループごとに異なる交差周波数を指定できます。また、TRDR の調整要件を厳密な制約として適用し、他の要件を柔軟な要件として追加することもできます。

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
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 and "T0.Blocks" to interact with the blocks.

次の図に示すように、プラントとコントローラーを制御信号および測定信号で接続して、2 チャネルの AnalysisPoint ブロックをそれぞれの接続位置に挿入することで、ソフトウェアは systune 用に閉ループ制御システムを構成します。

looptune でこの例の制御システムを調整する場合、すべての要件は柔軟な要件として扱われます。そのため、HardReqs は空になります。SoftReqs は、TuningGoal 要件の配列です。これらの要件は、全体として looptune コマンドの帯域幅および余裕を適用し、さらに指定した追加の要件も適用します。

SoftReqs
SoftReqs=5×1 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 は、ターゲット交差周波数の範囲 wcTuningGoal.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 ではなく、入力ベクトル HardReqssystune にそれらを渡します。

入力引数

すべて折りたたむ

looptune へのプラント入力、コントローラー入力および要件入力。有効な looptune 入力シーケンスとして指定します。有効な looptune の入力引数列の詳細については、looptune のリファレンス ページを参照してください。

出力引数

すべて折りたたむ

systune を使用した調整のための閉ループ制御システム モデル。一般化状態空間 genss モデルとして返されます。T0 を計算するために、プラント G0 およびコントローラー C0 は次の図のフィードバック構成で結合されます。

C0 および G0 の間の接続は、2 つのモデルの InputName プロパティと OutputName プロパティを使用して信号を一致させることで決定されます。一般的に、ブロック線図内の信号線は、ベクトル値の信号を表します。ブロック線図内で X によって表される AnalysisPoint ブロックはコントローラーとプラントの間に挿入されています。これにより、プラント入力またはプラント出力で挿入または測定される信号に対する開ループおよび閉ループの要件の定義が可能です。たとえば、帯域幅 wc は、プラント入力で測定される開ループ信号に対して目的の交差を適用する TuningGoal.LoopShape 要件に変換されます。

systune を使用した調整のための閉ループ制御システム モデルの構造の詳細については、systune リファレンス ページを参照してください。

systune による調整時の柔軟な調整要件。TuningGoal 要件オブジェクトのベクトルとして指定します。

looptune は、その暗黙的な調整要件のほとんどを柔軟な調整要件で表します。たとえば、指定されたターゲット ループの帯域幅を、ターゲット周波数での積分ゲイン プロファイルおよび交差を指定した TuningGoal.LoopShape 要件で表します。また、looptune は指定したすべての明示的な要件 (Req1,...ReqN) を柔軟な要件として処理します。SoftReqs には、これらすべての調整要件が含まれます。

systune による調整時の厳密な調整要件 (制約)。TuningGoal 要件オブジェクトのベクトルとして指定します。

looptune は、ほとんどの調整要件を柔軟な要件として処理するため、通常、HardReqs は空です。ただし、looptuneOptions セット loopopt の既定の MaxFrequency オプションを変更する場合、この要件は厳密な TuningGoal.Poles 制約として示されます。

systune 調整用のアルゴリズム オプション。systuneOptions オプション セットとして指定します。

looptuneOptions セット loopopt のオプションの一部は、HardReqs または SoftReqs で返される厳密な要件または柔軟な要件として表されます。その他のオプションは、systtuneOptions セットのオプションに対応します。

代替方法

slTuner インターフェイスを使用して Simulink を調整する場合、slTunerlooptuneSetup (Simulink Control Design) を使用して looptune 問題を systune に変換します。

バージョン履歴

R2013b で導入

参考

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