Main Content

TuningGoal.Overshoot クラス

パッケージ: TuningGoal

制御システムの調整のためのオーバーシュートの制約

説明

TuningGoal.Overshoot を使用して、制御システムの指定した入力から指定した出力へのステップ応答でオーバーシュートを制限します。この調整目標は、制御システムを systunelooptune などの調整コマンドで調整するために使用します。

構築

Req = TuningGoal.Overshoot(inputname,outputname,maxpercent) は指定した信号位置の間のステップ応答でオーバーシュートを制限する調整目標を作成します。スカラー maxpercent は最大オーバーシュートをパーセンテージで指定します。

調整に TuningGoal.Overshoot を使用する場合、ソフトウェアは 2 次システムの特性を想定し、オーバーシュートの制約をピーク ゲインの制約にマッピングします。したがって、このマッピングは高次のシステムのみを近似します。さらに、この調整目標ではオーバーシュートを 5% 未満に確実に削減できません。

入力引数

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 ブロックに関連付けられた暗黙的な出力になります。

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

maxpercent

最大オーバーシュート率。スカラー値として指定します。たとえば、次のコードは 'r' から 'y' へのステップ応答で最大 5% のオーバーシュートを指定します。

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

TuningGoal.OverShoot ではオーバーシュートを 5% 未満に確実に削減できません。

プロパティ

MaxOvershoot

最大オーバーシュート率。スカラー値として指定します。たとえば、5 のスカラー値はオーバーシュートが 5% を超えられないことを意味します。MaxOvershoot プロパティの初期値は、調整目標を作成する際に入力引数 maxpercent によって設定されます。

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' という信号へのステップ応答のオーバーシュートを 10% に制限する調整目標を作成します。

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

オーバーシュート調整目標が、2 次モデルの特性を想定し、ピーク システム ゲインの制約として評価されます (アルゴリズムを参照)。調整目標の可視化に、ターゲットのピーク ゲインを超えた影付きの領域が表示されます。

viewGoal(Req)

Figure contains an axes object. The axes object is empty. This object represents Max.

調整されたシステムで調整目標を可視化する場合、プロットには対応するシステム応答が含まれます。

プロパティを設定することで、調整目標のその他の特性を設定します。たとえば、調整するモデル配列内の 2 番目のモデルにのみ調整目標が適用されるように設定します。さらに、OuterLoop という制御システムの解析ポイントにおいてループが開いた状態で評価されるように設定します。

Req.Models = 2;
Req.Openings = 'OuterLoop';

ヒント

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

アルゴリズム

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

TuningGoal.Overshoot では、f(x) は目標の相対的な達成または違反を反映します。f(x) = 1 からのパーセント偏差は、指定したオーバーシュートのターゲットからのパーセント偏差にほぼ一致します。たとえば、f(x) = 1.2 は実際のオーバーシュートがターゲットを約 20% 超えていることを意味し、f(x) = 0.8 は実際のオーバーシュートがターゲットを約 20% 下回っていることを意味します。

TuningGoal.Overshoot では、2 次モデルの特性に基づいて、オーバーシュートの代わりに T を使用します。ここで、T は調整目標によって制約を受ける閉ループ伝達関数です。オーバーシュートは 5% (T = 1) から 100% (T) の範囲で調整されます。TuningGoal.Overshoot にはオーバーシュートを強制的に 5% 未満にする効果はありません。

バージョン履歴

R2016a で導入

すべて展開する

R2016a での動作変更