重み付け受動性目標
目的
制御システム調整器で調整するときに周波数重み付け伝達関数の受動性を適用します。
説明
重み付け受動性目標は H(s) = WL(s)T(s)WR(s) の受動性を適用します。ここで T(s) は指定した入力から出力への伝達関数です。WL(s) と WR(s) は特定の周波数帯域を強調するために使われる周波数重み付けです。すべての I/O 軌跡 (u(t),y(t)) が次を満たす場合、システムは "受動的" です。
すべての T > 0 について上記が成り立つとします。重み付け受動性目標は次が適用される制約を作成します。
重み付け伝達関数 H(s) の軌跡、すべての T > 0 について上記が成り立つとします。全体の受動性条件を適用するには、最小入力受動性インデックス (ν) と最小出力受動性インデックス (ρ) をゼロにセットします。重み付け伝達関数の入力または出力に受動性の超過を適用するには、ν または ρ を正の値に設定します。受動性の不足を許容するには、ν または ρ を負の値に設定します。これらのインデックスの詳細については、getPassiveIndex
を参照してください。
制御システム調整器のプロットの影付き領域は、調整目標が満たされない周波数領域を表しています。プロットにはアルゴリズムで説明されているインデックスの値が示されます。
作成
制御システム調整器の [調整] タブで、[新規目標] 、 [重み付け受動性目標] を選択します。
コマンド ラインにおける同等の操作
コマンド ラインで制御システムを調整する場合、TuningGoal.WeightedPassivity
を使用してステップ応答目標を指定します。
I/O 伝達選択
ダイアログ ボックスのこのセクションを使用して、調整目標が制約する伝達関数の入力と出力を指定します。また、調整目標を評価するためにループを開く位置を指定します。
入力信号の指定
調整目標によって制約される伝達関数への入力として、モデル内の信号の位置を 1 つ以上選択します。SISO 応答を制約するには、単一値の入力信号を選択します。たとえば、
'u'
という名前の位置から'y'
という名前の位置にゲインを制約するには、 [信号をリストに追加] をクリックして'u'
を選択します。MIMO 応答の受動性を制約するには、複数の信号またはベクトル値の信号を選択します。出力信号の指定
調整目標によって制約される伝達関数の出力として、モデル内の信号の位置を 1 つ以上選択します。SISO 応答を制約するには、単一値の出力信号を選択します。たとえば、
'u'
という名前の位置から'y'
という名前の位置にゲインを制約するには、 [信号をリストに追加] をクリックして'y'
を選択します。MIMO 応答の受動性を制約するには、複数の信号またはベクトル値の信号を選択します。次の開ループの入力/出力ゲインの計算
この調整目標を評価するために、フィードバック ループを開くモデル内の信号の位置を 1 つ以上選択します。調整目標は、特定した位置でフィードバック ループを開くことにより作成される開ループの構成に対して評価されます。たとえば、
'x'
という名前の位置が開始点の調整目標を評価するには、 [信号をリストに追加] をクリックして、'x'
を選択します。
ヒント
Simulink® モデル内で選択された任意の信号を強調表示するには、 をクリックします。入力リストまたは出力リストから信号を削除するには、 をクリックします。複数の信号を選択した場合、 および を使用してそれらの信号を並べ替えることができます。調整目標のために信号の位置を指定する方法の詳細については、対話型調整の目標の指定を参照してください。
重み
[左の重み WL] と [右の重み WR] テキスト ボックスを使用して、調整目標の周波数重み付け関数を指定します。これは H(s) = WL(s)T(s)WR(s) となり、ここで T(s) は、指定した入力から出力への伝達関数です。
WL は H(s) の出力チャネルの重みを提供し、WR は入力チャネルの重みを提供します。スカラー値の重みまたは周波数依存の重みを指定できます。周波数依存の重みを指定するには、振幅が目標の重み付け関数を表す数値 LTI モデルを使用します。たとえば、tf(1,[1 0.01])
と入力して 0.01 rad/s より上でロールオフする低周波数で高い重みを指定します。
調整目標が MIMO 伝達関数を制約する場合、スカラーまたは SISO 重み付け関数は自動的に任意の入出力次元へと拡張されます。行列または MIMO 重み付け関数を指定して、チャネルごとに異なる重み付けを指定できます。次元 H(s) は WL と WR の次元に相当しなければなりません。たとえば、制約された伝達関数に 2 つの入力がある場合、diag([1 10])
を WR として指定できます。
離散時間で調整を行う場合、調整に使用するのと同じサンプリング時間をもつ離散時間モデルとして重み付け関数を指定できます。重み付け関数を連続時間で指定すると、調整ソフトウェアはこれを離散化します。重み付け関数を離散時間で指定すると、ナイキスト周波数付近で重み付け関数をより詳細に制御できます。
オプション
ダイアログ ボックスのこのセクションを使用して、ステップ応答目標の追加の特性を指定します。
最小入力受動性インデックス
テキスト ボックスに ν のターゲット値を入力します。指定した入力の受動性の超過を適用するには、ν > 0 を設定します。受動性の不足を許容するには、ν < 0 を設定します。既定では、受動性目標によって ν = 0 (入力で受動的であり、受動性の超過を必要としない) が適用されます。
最小出力受動性インデックス
テキスト ボックスに ρ のターゲット値を入力します。指定した出力の受動性の超過を適用するには、ρ > 0 を設定します。受動性の不足を許容するには、ρ < 0 を設定します。既定では、受動性目標によって ρ = 0 (出力で受動的であり、受動性の超過を必要としない) が適用されます。
周波数範囲の目標を適用
調整目標の適用を特定の周波数帯域に制限します。周波数帯域をモデルの周波数単位で表した形式
[min,max]
の行ベクトルとして指定します。たとえば、1 ~ 100 rad/s のみに適用される調整目標を作成する場合は、[1,100]
と入力します。既定では、調整目標は連続時間の場合はすべての周波数、離散時間の場合はナイキスト周波数以下の周波数に適用されます。目標を適用
たとえば、Simulink モデルを異なる操作点またはブロックパラメーター値で線形化することによって得られるモデルの配列などの複数のモデルを同時に調整している場合、このオプションを使用します。既定では、アクティブな調整目標がすべてのモデルに適用されます。調整要件を配列内の一部のモデルに適用するには、[モデルのみ] を選択します。次に目標を適用するモデルの配列インデックスを入力します。たとえば、モデル配列の中の 2 番目、3 番目、4 番目のモデルに調整目標を適用する必要があると仮定します。要件の適用を制限するには、[モデルのみ] テキスト ボックスに
2:4
と入力します。複数モデルの調整の詳細については、Robust Tuning Approaches (Robust Control Toolbox)を参照してください。
アルゴリズム
制御システムを調整するときに、各調整目標は正規化されたスカラー値 f(x) に変換されます。ここで x は、制御システムの自由 (調整可能な) パラメーターのベクトルです。その後、ソフトウェアはパラメーター値を調整して f(x) を最小化するか、調整目標が厳密な制約値の場合、f(x) が 1 より小さくなるようにします。
[重み付け受動性目標] では、指定した入力から指定した出力への閉ループ伝達関数 T(s,x) および重み付け伝達関数 H(s,x) = WL(s)T(s,x)WR(s) の場合、f(x) は次のようになります。
R は、次で表されるセクターの相対的なセクター インデックス [H(s,x); I] です (getSectorIndex
を参照)。
ここで、ρ はダイアログ ボックスで指定する最小出力受動性インデックスで、ν は最小入力受動性インデックスです。Rmax は 106 で固定され、R が非常に大きくなることで発生する数値誤差を回避するために含まれます。
この調整目標は、重み付け伝達関数 H + I に暗黙的な最小位相制約を課します。H + I の伝達零点は、この調整目標の "安定ダイナミクス" です。[最小 decay 率] と [最大固有振動数] の調整オプションは、これらの暗黙的に制約されるダイナミクスの下限と上限を制御します。最適化が既定の制限を満たしていない場合、または既定の制限が他の要件と競合している場合、[調整] タブで [調整オプション] を使用して既定の設定を変更します。