Main Content

TuningGoal.StepTracking クラス

パッケージ: TuningGoal

制御システムの調整のためのステップ応答の要件

説明

TuningGoal.StepTracking を使用して、制御システムの指定した入力から指定した出力へのターゲット ステップ応答を指定します。この調整目標は、systune または looptune などの制御システム調整コマンドで使用します。

構築

Req = TuningGoal.StepTracking(inputname,outputname,refsys) は、指定した信号箇所の間のステップ応答を安定基準システム refsys のステップ応答と一致させる調整目標を作成します。この制約は、調整された応答とターゲット応答の相対誤差が調整目標の RelGap プロパティ (プロパティを参照) で指定した許容誤差に収まる場合に満たされます。inputname および outputname では制御システムの SISO 応答または MIMO 応答を記述できます。MIMO 応答の場合、入力数は出力数と等しくなければなりません。

Req = TuningGoal.StepTracking(inputname,outputname,tau) は、目的のステップ応答を時定数 tau をもつ 1 次応答として指定します。

Req.ReferenceModel=1/taus+1/tau.

Req = TuningGoal.StepTracking(inputname,outputname,tau,overshoot) は、目的のステップ応答を固有周期 tau、固有振動数 1/tau、およびオーバーシュートの割合 overshoot をもつ 2 次応答として指定します。

Req.ReferenceModel=(1/tau)2s2+2(zeta/tau)s+(1/tau)2.

減衰は zeta = cos(atan2(pi,-log(overshoot/100))) で求められます。

入力引数

inputname

調整目標の入力信号。文字ベクトル、または多入力調整目標の場合は文字ベクトルの cell 配列として指定します。

  • 調整目標を使用して制御システムの Simulink® モデルを調整する場合、inputname に次を含めることが可能。

    • 任意のモデル入力。

    • モデルでマークされた任意の線形解析ポイント。

    • Simulink モデルに関連付けられた slTuner (Simulink Control Design) インターフェイス内の任意の線形解析ポイント。addPoint (Simulink Control Design) を使用して解析ポイントを slTuner インターフェイスに追加します。getPoints (Simulink Control Design) を使用してモデルへの slTuner インターフェイスで使用できる解析ポイントのリストを取得します。

    たとえば、slTuner インターフェイスに解析ポイント u1u2 が含まれているとします。調整目標を作成するときに、'u1' を使用してそのポイントを入力信号として指定します。{'u1','u2'} を使用して 2 チャネル入力を指定します。

  • 調整目標を使用して制御システムの一般化状態空間 (genss) モデルを調整する場合、inputname に次を含めることが可能。

    • genss モデルの任意の入力

    • 制御システム モデル内の任意の AnalysisPoint の位置

    たとえば、制御システム モデル T を調整する場合、inputnameT.InputName の任意の入力名とすることができます。また、TAP_u という名前の位置をもつ AnalysisPoint ブロックが含まれる場合、inputname'AP_u' を含めることができます。getPoints を使用して genss モデルで使用できる解析ポイントのリストを取得します。

    inputname が一般化モデルの AnalysisPoint の位置の場合、調整目標の入力信号は AnalysisPoint ブロックに関連付けられた暗黙的な入力になります。

制御システム モデル内の解析ポイントの詳細については、制御システムの解析と設計における対象信号のマークを参照してください。

outputname

調整目標の出力信号。文字ベクトル、または多出力調整目標の場合は文字ベクトルの cell 配列として指定します。

  • 調整目標を使用して制御システムの Simulink モデルを調整する場合、outputname に次を含めることが可能。

    • 任意のモデル出力。

    • モデルでマークされた任意の線形解析ポイント。

    • Simulink モデルに関連付けられた slTuner (Simulink Control Design) インターフェイス内の任意の線形解析ポイント。addPoint (Simulink Control Design) を使用して解析ポイントを slTuner インターフェイスに追加します。getPoints (Simulink Control Design) を使用してモデルへの slTuner インターフェイスで使用できる解析ポイントのリストを取得します。

    たとえば、slTuner インターフェイスに解析ポイント y1y2 が含まれているとします。調整目標を作成するときに、'y1' を使用してそのポイントを出力信号として指定します。{'y1','y2'} を使用して 2 チャネル出力を指定します。

  • 調整目標を使用して制御システムの一般化状態空間 (genss) モデルを調整する場合、outputname に次を含めることが可能。

    • genss モデルの任意の出力

    • 制御システム モデル内の任意の AnalysisPoint の位置

    たとえば、制御システム モデル T を調整する場合、outputnameT.OutputName の任意の出力名とすることができます。また、TAP_u という名前の位置をもつ AnalysisPoint ブロックが含まれる場合、outputname'AP_u' を含めることができます。getPoints を使用して genss モデルで使用できる解析ポイントのリストを取得します。

    outputname が一般化モデルの AnalysisPoint の位置の場合、調整目標の出力信号は AnalysisPoint ブロックに関連付けられた暗黙的な出力になります。

制御システム モデル内の解析ポイントの詳細については、制御システムの解析と設計における対象信号のマークを参照してください。

refsys

ターゲット ステップ応答の基準システム。tf モデル、zpk モデル、ss モデルなどの動的システム モデルとして指定します。refsys は安定していなければならず、また DC ゲインが 1 (定常偏差がゼロ) でなければなりません。

refsys は連続または離散のどちらにすることもできます。離散の場合、refsys には z = 0 の極として扱われるむだ時間を含めることができます。

正方であり、その DC 特異値 (sigma) が 1 の場合、refsys は MIMO にすることができます。refsys が MIMO モデルの場合、その入力数と出力数は inputnameoutputname の次元に一致しなければなりません。

最良の結果を得るには、refsys に非最小位相零点 (アンダーシュート) などの固有のシステム特性を含めることも必要です。

tau

ターゲット ステップ応答の時定数または固有周期。正のスカラーとして指定します。

構文 Req = TuningGoal.StepTracking(inputname,outputname,tau) を使用して 1 次ターゲット応答を指定する場合、tau は応答の減衰の時定数です。この場合、ターゲットは以下で求められるシステムのステップ応答です。

Req.ReferenceModel=1/taus+1/tau.

構文 Req = TuningGoal.StepTracking(inputname,outputname,tau,overshoot) を使用して 2 次ターゲット応答を指定する場合、tau は応答の固有振動数の逆数です。この場合、ターゲットは以下で求められるシステムのステップ応答です。

Req.ReferenceModel=(1/tau)2s2+2(zeta/tau)s+(1/tau)2.

システムの減衰は zeta = cos(atan2(pi,-log(overshoot/100))) で求められます。

overshoot

ターゲット ステップ応答のオーバーシュートの割合。(0,100) の範囲のスカラー値として指定します。

プロパティ

ReferenceModel

ターゲット ステップ応答の基準システム。SISO または MIMO 状態空間 (ss) モデルとして指定します。調整目標を使用して制御システムを調整する場合、inputname から outputname へのステップ応答は、RelGap プロパティで指定された許容誤差の範囲内でこのターゲット応答に一致するように調整されます。

refsys 入力引数を使用して調整目標を作成する場合、ReferenceModel の値は ss(refsys) です。

tau 入力引数を使用するか、tau 入力引数と overshoot 入力引数を使用する場合、ReferenceModel は対応する 1 次伝達関数または 2 次伝達関数の状態空間表現です。

ReferenceModel は安定していなければならず、また DC ゲインが 1 (定常偏差がゼロ) でなければなりません。最良の結果を得るには、ReferenceModel に非最小位相零点 (アンダーシュート) などの固有のシステム特性を含めることも必要です。

RelGap

最大相対一致誤差。正のスカラー値として指定します。このプロパティは、マッチングの許容誤差を、ターゲットと実際のステップ応答の間の最大の相対ギャップとして指定します。相対ギャップは次のように定義されます。

gap=y(t)yref(t)21yref(t)2.

y(t) – yref(t) は応答の不一致であり、1 – yref(t) はターゲット モデルのステップ追従誤差です。2 は信号エネルギー (2 ノルム) を表します。

RelGap の値を増やすと、マッチングの許容誤差は緩くなります。

既定値: 0.1

InputScaling

基準信号のスケーリング。正の実数値のベクトルとして指定します。

MIMO 追従要件で、単位の選択によって異なるチャネルの応答に小さい信号と大きい信号が混合される結果となる場合、このプロパティを使用して各エントリの相対的な振幅をベクトル値のステップ入力で指定します。この情報は、追従誤差の参照によって伝達関数の非対角項をスケーリングするために使用されます。このスケーリングは、それぞれの基準信号の振幅に比例して相互干渉が測定されるようにします。

たとえば、Req が調整目標であり、信号 {'y1','y2'} が基準信号 {'r1','r2'} に追従することを要求していると仮定します。さらに、出力は相互干渉 10% 未満で基準信号に追従する必要があると仮定します。r1r2 が同程度の振幅の場合、r1 から y2r2y1 へのゲインは 0.1 未満に維持すれば十分です。しかし、r1r2 よりも 100 倍大きい場合、r1 による y2 の変動を確実に r2 ターゲットの 10% 未満にするためには、r1 から y2 へのゲインは 0.001 未満でなければなりません。この結果を確実に得るためには、InputScaling プロパティを次のように設定します。

Req.InputScaling = [100,1];

これにより、1 番目の基準信号は 2 番目の基準信号より 100 倍大きいことを考慮に入れるようにソフトウェアに指示します。

既定値の [] は、スケーリングしないことを意味します。

既定値: []

Input

入力信号名。調整目標によって制約される伝達関数の入力を識別する文字ベクトルの cell 配列として指定します。Input プロパティの初期値は、調整目標を作成する際に入力引数 inputname によって設定されます。

Output

出力信号名。調整目標によって制約される伝達関数の出力を識別する文字ベクトルの cell 配列として指定します。Output プロパティの初期値は、調整目標を作成する際に入力引数 outputname によって設定されます。

Models

調整目標を適用するモデル。インデックスのベクトルとして指定します。

制御システム モデルの配列を systune によって調整し、配列内の一部のモデルに調整目標を適用する場合に、Models プロパティを使用します。たとえば、systune に渡されるモデル配列の中の 2 番目、3 番目、4 番目のモデルに調整目標 Req を適用する必要があると仮定します。この調整目標の適用を制限するには、次のコマンドを使用します。

Req.Models = 2:4;

Models = NaN の場合、調整目標はすべてのモデルに適用されます。

既定値: NaN

Openings

調整目標を評価するときに開くフィードバック ループ。ループ開始点の位置を特定する文字ベクトルの cell 配列として指定します。調整目標は、特定した位置でフィードバック ループを開くことにより作成される開ループの構成に対して評価されます。

調整目標を使用して制御システムの Simulink モデルを調整する場合、Openings にはモデルでマークされた任意の線形解析ポイントまたは Simulink モデルに関連付けられている slTuner (Simulink Control Design) インターフェイスの任意の線形解析ポイントを含めることができます。addPoint (Simulink Control Design) を使用して解析ポイントとループ開始点を slTuner インターフェイスに追加します。getPoints (Simulink Control Design) を使用してモデルへの slTuner インターフェイスで使用できる解析ポイントのリストを取得します。

調整目標を使用して制御システムの一般化状態空間 (genss) モデルを調整する場合、Openings に制御システム モデルの任意の AnalysisPoint の位置を含めることができます。getPoints を使用して genss モデルで使用できる解析ポイントのリストを取得します。

たとえば、Openings = {'u1','u2'} の場合、解析ポイント u1u2 でループが開いている状態で調整目標が評価されます。

既定値: {}

Name

調整目標の名前。文字ベクトルとして指定します。

たとえば、Req が調整目標の場合は次のようになります。

Req.Name = 'LoopReq';

既定値: []

指定された許容誤差を含むステップ応答要件

'r' という名前の信号から 'y' という名前の信号へのステップ応答の要件を作成します。伝達関数 H = 10/(s+10) と一致するようにステップ応答を制約しますが、ターゲットと調整された応答の間に 20% の相対的変動を許容します。

H = tf(10,[1 10]);
Req = TuningGoal.StepResp('r','y',H);

既定では、この要件はターゲットと調整された応答の間に 0.1 の相対ギャップを許容します。相対ギャップを 20% に変更するには、要件の RelGap プロパティを設定します。

Req.RelGap = 0.2;

要件を調べます。

viewGoal(Req);

Figure contains an axes object. The axes object contains an object of type line. This object represents Desired.

破線はこの要件によって指定されたターゲット ステップ応答を示します。この要件を使用して、'r' および 'y' という名前の有効な入力場所と出力場所を含む制御システム モデル T を調整できます。その場合、ターゲットの応答と比較するために、'r' から 'y' への得られたステップ応答を、コマンド viewGoal(Req,T) によってプロットします。

既知の時定数をもつ 1 次のステップ応答

時定数が 5 秒の 1 次のステップ応答を指定する要件を作成します。'r' という名前の信号から 'y' という名前の信号へのステップ応答の要件を作成します。

Req = TuningGoal.StepResp('r','y',5);

この要件を使って制御システム モデル T を調整する場合、時定数 5 は、制御システムの一般的な単位で表現されているものと想定されます。たとえば、Tgenss モデルでプロパティ T.TimeUnit'seconds' の場合、この要件は 'T' の入力 'r' から出力 'y' への応答について、5 秒のターゲット時定数を指定します。

指定した時定数は基準の状態空間モデルに変換されて、要件の ReferenceModel プロパティに保存されます。

refsys = tf(Req.ReferenceModel)
refsys =
 
    0.2
  -------
  s + 0.2
 
Continuous-time transfer function.

予想されたとおり、refsys は 1 次モデルです。

要件を調べます。viewGoal コマンドはターゲット応答を表示します。これは基準モデルのステップ応答です。

viewGoal(Req);

Figure contains an axes object. The axes object contains an object of type line. This object represents Desired.

破線はこの要件 (5 秒の時定数をもつ 1 次の応答) によって指定されたターゲット ステップ応答を示します。

既知の固有周期とオーバーシュートをもつ 2 次のステップ応答

5 秒の固有周期と 10% のオーバーシュートをもつ 2 次のステップ応答を指定する要件を作成します。'r' という名前の信号から 'y' という名前の信号へのステップ応答の要件を作成します。

Req = TuningGoal.StepResp('r','y',5,10);

この要件を使って制御システム モデル T を調整する場合、固有周期 5 は制御システムの一般的な単位で表現されているものと想定されます。たとえば、Tgenss モデルでプロパティ T.TimeUnit'seconds' の場合、この要件は、'T' の入力 'r' から出力 'y' への応答について、5 秒のターゲット固有周期を指定します。

指定した応答のパラメーターは基準の状態空間モデルに変換されて、要件の ReferenceModel プロパティに保存されます。

refsys = tf(Req.ReferenceModel)
refsys =
 
          0.04
  ---------------------
  s^2 + 0.2365 s + 0.04
 
Continuous-time transfer function.

予想されたとおり、refsys は 2 次モデルです。

要件を調べます。viewGoal コマンドはターゲット応答を表示します。これは基準モデルのステップ応答です。

viewGoal(Req);

Figure contains an axes object. The axes object contains an object of type line. This object represents Desired.

破線はこの要件 (10% のオーバーシュートと 5 秒の固有周期をもつ 2 次の応答) によって指定されたターゲット ステップ応答を示します。

限定的なモデルの適用と追加のループ開始点を含む追従目標

時定数が 5 秒の 1 次のステップ応答を指定する調整目標を作成します。調整目標の適用についてさらに詳しく設定するために、Models プロパティと Openings プロパティを設定します。

Req = TuningGoal.StepTracking('r','y',5);
Req.Models = [2 3];
Req.Openings = 'OuterLoop'

入力 'r'、出力 'y' および解析ポイントの位置 'OuterLoop' をもつ制御システムを調整する場合、Reqlooptune または systune への入力に使用できます。Openings プロパティを設定すると、'r' から 'y' へのステップ応答は 'OuterLoop' で開始されるループによって測定されます。制御システム モデルの配列を調整する場合、Models プロパティを設定すると調整目標の適用が制限されます。この例では、配列の 2 番目と 3 番目のモデルにのみ調整目標が適用されます。

ヒント

  • この調整目標は、Openings で特定されたポイントでループが開いた状態で評価される、Input から Output への閉ループ伝達関数に暗黙的な安定性の制約を課します。この暗黙的な制約に影響を受けるダイナミクスは、この調整目標の "安定ダイナミクス" です。systuneOptionsMinDecay および MaxRadius オプションは、これらの暗黙的に制約されたダイナミクスの範囲を制御します。最適化で既定の範囲が満たされない場合や、既定の範囲が他の要件と競合する場合は、systuneOptions を使用してこれらの既定値を変更します。

アルゴリズム

TuningGoal を使用して制御システムを調整するときに、調整目標は正規化されたスカラー値 f(x) に変換されます。ここで x は、制御システムの自由 (調整可能な) パラメーターのベクトルです。その後、ソフトウェアはパラメーター値を調整して f(x) を最小化するか、調整目標が厳密な制約値の場合、f(x) が 1 より小さくなるようにします。

TuningGoal.StepTracking の場合、f(x) は次のようになります。

f(x)=1s(T(s,x)Tref(s))2RelGap1s(Tref(s)I)2.

T(s,x) はパラメーター値 x をもつ Input から Output への閉ループ伝達関数で、Tref(s) は ReferenceModel プロパティで指定された参照モデルです。2 は、H2 ノルムを表します (norm を参照)。

バージョン履歴

R2016a で導入

すべて展開する