Main Content

TuningGoal.Passivity クラス

パッケージ: TuningGoal

制御システムの調整の受動性制約

説明

すべての I/O 軌跡 (u(t),y(t)) が次を満たす場合、システムは "受動的" です。

0Ty(t)Tu(t)dt>0,

すべての T > 0 について上記が成り立つとします。同様に、周波数応答が正の実数の場合、つまりすべての ω > 0 について次が成り立つ場合、システムは受動的です。

G(jω)+G(jω)H>0

TuningGoal.Passivity は、systune などの制御システム調整コマンドの使用時に、指定した入力と出力の間の応答の受動性を適用するために使用します。また、TuningGoal.Passivity は、受動性の特定の超過または不足を適用するために使用することもできます (getPassiveIndex を参照)。

構築

Req = TuningGoal.Passivity(inputname,outputname) は、指定した入力から指定した出力への応答の受動性を適用する際の調整目標を作成します。

Req = TuningGoal.Passivity(inputname,outputname,nu,rho) は、以下を適用する際の調整目標を作成します。

0Ty(t)Tu(t)dt>ν0Tu(t)Tu(t)dt+ρ0Ty(t)Ty(t)dt,

すべての T > 0 について上記が成り立つとします。この調整目標は、nu > 0 または rho > 0 の場合に入力または出力の受動性の超過を適用します。また、この調整目標は nu < 0 の場合に入力の受動性の不足を許容します。これらのインデックスの詳細については、getPassiveIndex を参照してください。

入力引数

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

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

nu

inputname にリストされた入力のターゲット受動性。スカラー値として指定します。入力受動性インデックスは、以下の場合の ν の最大値として定義されます。

0Ty(t)Tu(t)dt>ν0Tu(t)Tu(t)dt,

すべての T > 0 について上記が成り立つとします。同様に、nu は以下の場合の ν の最大値です。

G(jω)+G(jω)H>2νI

TuningGoal.Passivity の目標でターゲット nu を設定すると、調整ソフトウェアは以下を実行します。

  • nu > 0 の場合に、指定の応答が必ず入力で厳密に受動的となるようにする。nu のゲインは、受動性の必要な超過を設定します。

  • nu < 0 の場合に、応答が入力で厳密に受動的でないことを許容する。nu のゲインは、受動性の許容される不足を設定します。

既定値: 0

rho

outputname にリストされた出力のターゲット受動性。スカラー値として指定します。出力受動性インデックスは、以下の場合の ρ の最大値として定義されます。

0Ty(t)Tu(t)dt>ρ0Ty(t)Ty(t)dt,

すべての T > 0 について上記が成り立つとします。

TuningGoal.Passivity の目標でターゲット rho を設定すると、調整ソフトウェアは以下を実行します。

  • rho > 0 の場合に、指定の応答が必ず出力で厳密に受動的となるようにする。rho のゲインは、受動性の必要な超過を設定します。

  • rho < 0 の場合に、応答が出力で厳密に受動的でないことを許容する。rho のゲインは、受動性の許容される不足を設定します。

既定値: 0

プロパティ

IPX

入力のターゲット受動性。スカラー値として格納されます。この値は、inputname にリストされた入力の必要な受動性を指定します。このプロパティの初期値は、TuningGoal.Passivity の目標を作成するときに、入力引数 nu によって設定されます。

既定値: 0

OPX

出力のターゲット受動性。スカラー値として格納されます。この値は、outputname にリストされた出力の必要な受動性を指定します。このプロパティの初期値は、TuningGoal.Passivity の目標を作成するときに、入力引数 rho によって設定されます。

既定値: 0

Focus

調整目標が適用される周波数帯域。[min,max] 形式の行ベクトルとして指定します。

Focus プロパティを設定して、調整目標が特定の周波数帯域に適用されるように制限します。この値は、調整している制御システム モデルの周波数の単位で表します (rad/TimeUnit)。たとえば、Req は 1 ~ 100 rad/s の間にのみ適用する調整目標であるとします。この帯域に対する調整目標を制限するには、次のコマンドを使用します。

Req.Focus = [1,100];

既定値: 連続時間の場合は [0,Inf]、離散時間の場合は [0,pi/Ts]。ここで Ts はモデルのサンプル時間です。

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 (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';

既定値: []

すべて折りたたむ

制御システムで入力または解析ポイント 'u' から出力または解析ポイント 'y' への応答の受動性を確保する要件を作成します。

TG = TuningGoal.Passivity('u','y');

viewGoalを使用して調整目標を可視化します。

viewGoal(TG)

Figure contains an axes object. The axes object is empty. This object represents Normalized bound.

すべての周波数において相対受動性インデックス R が 1 より小さい場合、要件は満たされます。影付きの部分は、要件に違反している範囲を表します。この要件を使って制御システム CL を調整する場合、指定した入力と出力の RviewGoal(TG,CL) によってこのプロット上に表示されるため、受動性の要件に違反している周波数範囲を特定できます。

入力 'u' から出力 'y' への応答が入力で厳密に受動的になるようにし、受動性の超過を 2 に設定する要件を作成します。

TGi = TuningGoal.Passivity('u','y',2,0);

要件が 0 ~ 10 rad/s の周波数範囲内にのみ適用されるように制限します。

TGi.Focus = [0 10];

ヒント

  • viewGoal を使用してこの調整目標を可視化します。nu = 0 および rho = 0 の受動性を適用する場合、viewGoal は相対受動性インデックスを周波数の関数としてプロットします (passiveplot を参照)。これらは (IG(jω))(IG(jω))1 の特異値です。すべての周波数において最大特異値が 1 より小さい場合、(Openings で指定されたとおりにループを開いた状態で評価される) inputname から outputname への伝達関数 G は受動的です。

    非ゼロの nu または rho の場合、viewGoalアルゴリズムで説明されている相対的なインデックスをプロットします。

  • この調整目標は、伝達関数 G + I に暗黙的な最小位相制約を課します。G + I の伝達零点は、この調整目標の "安定ダイナミクス" です。systuneOptionsMinDecay および MaxRadius オプションは、これらの暗黙的に制約されたダイナミクスの範囲を制御します。最適化で既定の範囲が満たされない場合や、既定の範囲が他の要件と競合する場合は、systuneOptions を使用してこれらの既定値を変更します。

アルゴリズム

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

TuningGoal.Passivity 目標の場合、inputname から outputname への閉ループ伝達関数 G(s,x) の f(x) は次のようになります。

f(x)=R1+R/Rmax,Rmax=106.

R は、次で表されるセクターの相対的なセクター インデックス [G(s,x);I] です (getSectorIndex を参照)。

Q=(2ρII2ν),

ρ と ν には OPX プロパティと IPX プロパティの値をそれぞれ使用します。