最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

TuningGoal.StepRejection クラス

パッケージ: TuningGoal

制御システムの調整のためのステップ外乱の抑制の要件

説明

TuningGoal.StepRejection を使用して、制御システム内の指定した位置で加えられたステップ外乱が指定の出力位置の信号に与える影響を指定します。この調整目標は、systune または looptune などの制御システム調整コマンドで使用します。

目的の応答をピーク値、整定時間および減衰比という時間領域で指定できます。あるいは、DC ゲインをもつ安定基準モデルとして応答を指定することもできます。この場合の調整目標は、外乱を基準モデルと同等かそれ以上に抑制することです。

外乱の抑制を周波数領域の抑制プロファイルで指定するには、TuningGoal.Rejection を使用します。

構築

Req = TuningGoal.StepRejection(inputname,outputname,refsys) は、位置 inputname で加えられたステップ外乱が outputname での応答に与える影響を制約する調整目標を作成します。調整目標として、外乱は基準システムと同等かそれ以上に抑制されなければなりません。inputname および outputname では制御システムの SISO 応答または MIMO 応答を記述できます。MIMO 応答の場合、入力数は出力数と等しくなければなりません。

Req = TuningGoal.StepRejection(inputname,outputname,peak,tSettle) は、振動のない応答をピーク値および整定時間で指定します。

Req = TuningGoal.StepRejection(inputname,outputname,peak,tSettle,zeta) は、減衰比が zeta 以上の減衰振動を許容します。

入力引数

inputname

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

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

    • 任意のモデル入力。

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

    • Simulink モデルに関連付けられた slTuner インターフェイス内の任意の線形解析ポイント。addPoint を使用して解析ポイントを slTuner インターフェイスに追加します。getPoints を使用してモデルへの 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 インターフェイス内の任意の線形解析ポイント。addPoint を使用して解析ポイントを slTuner インターフェイスに追加します。getPoints を使用してモデルへの 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 モデルなどの SISO 動的システム モデルとして指定します。refsys は安定しており、プロパーでなければならず、また DC ゲインがゼロでなければなりません。この制限により、定常外乱の完全な抑制が確保されます。

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

最良の結果を得るには、基準モデルのゲインがピークに達する周波数で、refsys と外乱から出力への開ループ応答が同様のゲインをもたなければなりません。getPeakGain を使用すると、ピーク ゲインとピーク周波数をチェックできます。以下に例を示します。

[gmax,fmax] = getPeakGain(refsys);

getIOTransfer を使用して、調整しているシステムから対応する開ループ応答を抽出します。

peak

外乱に対するターゲット応答のピークの絶対値。スカラー値として指定します。

tSettle

外乱に対する応答のターゲット整定時間。調整している制御システムの時間単位での正のスカラー値として指定します。

zeta

外乱に対する応答の振動の最小 damping 比。0 ~ 1 の値として指定します。

既定値: 1

プロパティ

ReferenceModel

ステップ外乱に対するターゲット応答の基準システム。SISO (zpk) モデルとして指定します。このモデルのステップ応答は、outputname で指定した出力信号が inputname におけるステップ外乱にどのように応答するかを指定します。

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

peaktSample および zeta 入力引数を使用する場合、ReferenceModel は指定した特性のステップ応答をもつ 1 次伝達関数または 2 次伝達関数の zpk 表現です。

InputScaling

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

単位の選択によって小さい信号と大きい信号が混在することになる場合、このプロパティを使用して、ベクトル値の入力信号内の各エントリの相対振幅を指定します。この情報は、調整目標を評価するときに、Input から Output への閉ループ伝達関数をスケーリングするために使用されます。

T(s) が Input から Output への閉ループ伝達関数であると仮定します。調整目標は、スケーリングされた伝達関数 Do–1T(s)Di に対して評価されます。対角行列 Do および Di にはそれぞれ OutputScaling および InputScaling の対角値があります。

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

既定値: []

OutputScaling

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

単位の選択によって小さい信号と大きい信号が混在することになる場合、このプロパティを使用して、ベクトル値の出力信号内の各エントリの相対振幅を指定します。この情報は、調整目標を評価するときに、Input から Output への閉ループ伝達関数をスケーリングするために使用されます。

T(s) が Input から Output への閉ループ伝達関数であると仮定します。調整目標は、スケーリングされた伝達関数 Do–1T(s)Di に対して評価されます。対角行列 Do および Di にはそれぞれ OutputScaling および InputScaling の対角値があります。

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

既定値: []

Input

外乱入力位置の名前。文字ベクトルの cell 配列として指定します。このプロパティは、調整目標の作成時、inputname 引数によって初期値が設定されます。

Output

ステップ外乱に対する応答が測定される位置の名前。文字ベクトルの cell 配列として指定します。このプロパティは、調整目標の作成時、outputname 引数によって初期値が設定されます。

Models

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

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

Req.Models = 2:4;

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

既定値: NaN

Openings

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

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

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

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

既定値: {}

Name

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

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

Req.Name = 'LoopReq';

既定値: []

すべて折りたたむ

ステップ外乱応答をピークの時間領域応答、整定時間および振動の減衰で指定する要件を作成します。

たとえば、'd' で加えられた外乱に対する 'y' での応答が絶対値 0.25 を超えないようにし、この応答を 5 秒以内に整定させるとします。これらの仕様を捉え、さらに非振動応答を指定する TuningGoal.StepRejection 要件を作成します。

Req1 = TuningGoal.StepRejection('d','y',0.25,5);

減衰比 zeta の明示的な値を省略することは、zeta = 1 に設定することと同じです。したがって、Req では非振動応答が指定されています。ピーク値と整定時間は、目的の時間領域プロファイルを使用するステップ応答をもつ基準伝達関数に変換されます。この伝達関数は ReqReferenceModel プロパティに格納されます。

Req1.ReferenceModel
ans =
 
   0.92883 s
  -----------
  (s+1.367)^2
 
Continuous-time zero/pole/gain model.

Req を表示してターゲット応答を確認します。

figure()
viewGoal(Req1)

たとえば、減衰比が 0.4 未満の場合はアプリケーションで振動を許容できるとします。この外乱応答を指定する要件を作成します。

Req2 = TuningGoal.StepRejection('d','y',0.25,5,0.4);
figure()
viewGoal(Req2)

ステップ外乱応答を伝達関数として指定する要件を作成します。

たとえば、制御システムの解析ポイント d で加えられ、ポイント 'y' で測定された外乱に対する応答が、少なくとも次の伝達関数と同程度抑制されるようにするとします。

H(s)=ss2+2s+1.

TuningGoal.StepRejection 要件を作成します。

H = tf([1 0],[1 2 1]);
Req = TuningGoal.StepRejection('d','y',H);

要件を表示します。

viewGoal(Req)

viewGoal によって表示されたプロットは、指定した伝達関数のステップ応答を示しています。この応答は、外乱に対するターゲットの時間領域応答です。

ヒント

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

アルゴリズム

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

TuningGoal.StepRejection は、外乱から出力へのゲインが基準モデルのゲインを下回るように維持することを目的としています。調整目標のスカラー値 f(x) は次のようになります。

f(x)=WF(s)Tdy(s,x),

またはその離散時間の等価物です。ここで、Tdy(s,x) は Input から Output への閉ループ伝達関数で、 は、H ノルムを示します (norm を参照)。WF は、調整目標で指定するステップ抑制プロファイルから導出された周波数重み付け関数です。WF1/ReferenceModel のゲインは、ピーク ゲインの 60 dB 以内にあるゲイン値に対してほぼ一致します。数値的な理由から、この範囲の外で勾配が変化する参照モデルを指定しない限り、重み付け関数はこの範囲の外では平坦になります。この調整は、"正則化" と呼ばれます。s = 0 または s = Inf に近い WF の極の場合、systune の最適化問題の数値的な調整が難しくなることがあるため、周波数が極度に低い、あるいは極度に高いダイナミクスで参照モデルを指定することは推奨されません。

WF を取得するには、以下を使用します。

WF = getWeight(Req,Ts)

ここで Req は調整目標、Ts は調整を行うサンプル時間です (連続時間の場合は Ts = 0)。正則化とその効果の詳細については、調整目標の可視化を参照してください。

互換性についての考慮事項

すべて展開する

R2016a での動作変更

R2016a で導入