ドキュメンテーション

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

balredOptions

モデル低次元化のためのオプション セットを作成する

構文

opts = balredOptions
opts = balredOptions('OptionName', OptionValue)

説明

opts = balredOptions は、balred コマンドのための既定のオプション セットを返します。

opts = balredOptions('OptionName', OptionValue) は、1 つ以上のコンマ区切りの名前/値ペアを受け取ります。OptionName は単一引用符で囲みます。

入力引数

名前/値のペアの引数

'FreqIntervals'

周波数を制限したハンケル特異値を計算するための周波数範囲。2 つの列をもつ行列として指定します。各行は周波数範囲 [fmin fmax] を指定します。ここで、fmin および fmax は非負の周波数であり、モデルの周波数単位で表されます。切り捨てる低エネルギー状態を特定する場合、ソフトウェアはこれらの周波数範囲のみでのシステム動作に対する状態の寄与を計算します。以下に例を示します。

  • モデルの周波数単位を rad/s と仮定して、計算の範囲を 3 ~ 15 rad/s に制限するには、FreqIntervals[3 15] に設定します。

  • 計算を 2 つの周波数範囲 (3 ~ 15 rad/s と 40 ~ 60 rad/s) に制限するには、[3 15; 40 60] を使用します。

  • カットオフ周波数 fcut より低いすべての周波数を指定するには、[0 fcut] を使用します。

  • カットオフを超えるすべての周波数を指定するには、連続時間では [fcut Inf]、離散時間では [fcut pi/Ts] を使用します。ここで、Ts はモデルのサンプル時間を表します。

既定値 [] では周波数制限が適用されません。この既定値は、連続時間の [0 Inf] または離散時間の [0 pi/Ts] と等価です。ただし、[] 以外の TimeIntervals 値を指定する場合、この制限によって FreqIntervals = [] が上書きされます。TimeIntervals 値と FreqIntervals 値の両方を指定する場合、計算ではこれらの間隔の和集合が使用されます。

周波数範囲において 0 が除外される場合、balred は、StateElimMethod = 'MatchDC' であっても元のモデルと低次元化されたモデルの DC ゲインを一致させようとすることはありません。他の方法では 0 が除外されてしまう周波数範囲で DC の一致を強制するには、周波数範囲 [0 fLo] を含めます。ここで、fLo は対象の周波数範囲と比較して小さい周波数です。

周波数範囲と時間間隔の両方に DC が含まれる場合、引き続き StateElimMethod = 'Truncate' を設定して、他の周波数および時間での一致を改善することができます。

既定値: []

'TimeIntervals'

時間を制限したハンケル特異値を計算するための時間間隔。2 つの列をもつ行列として指定します。各行は時間間隔 [tmin tmax] を指定します。ここで、tmin および tmax は非負の時間であり、モデルの時間単位で表されます。切り捨てる低エネルギー状態を特定する場合、ソフトウェアはこれらの時間間隔にあるシステムのインパルス応答に対する状態の寄与のみを計算します。以下に例を示します。

  • モデルの時間単位を秒と仮定して、計算の範囲を 3 ~ 15 秒に制限するには、TimeIntervals[3 15] に設定します。

  • 計算を 2 つの時間間隔 (3 ~ 15 秒と 40 ~ 60 秒) に制限するには、[3 15; 40 60] を使用します。

  • ゼロから最大でカットオフ時間 tcut までのすべての時間を指定するには、[0 tcut] を使用します。カットオフ後のすべての時間を指定するには、[tcut Inf] を使用します。

既定値 [] では時間制限が適用されません。この既定値は [0 Inf] と等価です。ただし、[] 以外の FreqIntervals 値を指定する場合、この制限によって Timeintervals = [] が上書きされます。TimeIntervals 値と FreqIntervals 値の両方を指定する場合、計算ではこれらの間隔の和集合が使用されます。

時間間隔において Inf が除外される場合、balred は、StateElimMethod = 'MatchDC' であっても元のモデルと低次元化されたモデルの DC ゲインを一致させようとすることはありません。他の方法では Inf が除外されてしまう時間間隔で DC の一致を強制するには、時間間隔 [tHi Inf] を含めます。ここで、tHi は対象の時間間隔と比較して長い時間です。

周波数範囲と時間間隔の両方に DC が含まれる場合、引き続き StateElimMethod = 'Truncate' を設定して、他の周波数および時間での一致を改善することができます。

既定値: []

'StateElimMethod'

状態消去方法。弱結合状態 (最小のハンケル特異値をもつ状態) を消去する方法を指定します。以下のいずれかの値として指定。

'MatchDC'指定された状態を破棄し、残りの状態が DC ゲインを保持するように変更します。
'Truncate'指定された状態を破棄し、残りの状態を変更しません。この方法は、周波数領域では近似精度が向上する傾向がありますが、DC ゲインが一致することは保証されません。

既定値: 'MatchDC'

'AbsTol, RelTol'

安定/不安定分解の絶対および相対の許容誤差。正のスカラー値。不安定な極をもつ入力モデル G の場合、balred はまず安定/不安定分解 G → GS + GU を計算して安定ダイナミクスを抽出します。AbsTol および RelTol 許容誤差はこの分解の精度の制御に使用します。具体的には、G および GS + GU の周波数応答の差が AbsTol + RelTol*abs(G) を超えないようにします。これらの許容誤差を増やすことは、精度を犠牲にして、近傍の安定モードと不安定モードを分離する場合には役立ちます。詳細は、stabsep を参照してください。

既定値: AbsTol = 0; RelTol = 1e-8

'Offset'

安定/不安定境界のオフセット。正のスカラー値。安定/不安定分解では、安定項は次の条件を満たす極のみを含みます。

  • Re(s) < -Offset * max(1,|Im(s)|) (連続時間)

  • |z| < 1 - Offset (離散時間)

安定境界の近くの極を不安定として扱うには、Offset の値を増加します。

既定値: 1e-8

これらのオプションとその使い方の詳細については、「balred」のリファレンス ページを参照してください。

すべて折りたたむ

次によって与えられるシステムの低次元化近似を計算します。

$$G\left( s \right) = \frac{{\left( {s + 0.5} \right)\left( {s + 1.1}&amp;#xA;\right)\left( {s + 2.9} \right)}}{{\left( {s + {{10}^{ - 6}}}&amp;#xA;\right)\left( {s + 1} \right)\left( {s + 2} \right)\left( {s + 3}&amp;#xA;\right)}}.$$

Offset オプションを使用して、安定/不安定分解の安定項から、 $s = 10^{-6}$ にある極を排除します。

sys = zpk([-.5 -1.1 -2.9],[-1e-6 -2 -1 -3],1);
% Create balredOptions
opt = balredOptions('Offset',.001,'StateElimMethod','Truncate');
% Compute second-order approximation
rsys = balred(sys,2,opt);

元のモデルと低次元化されたモデルの応答を比較します。

bodeplot(sys,rsys,'r--')

特定の周波数範囲内のダイナミクスに焦点を当てて、高次のモデルを低次元化します。

モデルを読み込み、その周波数応答を検証します。

load build G
bodeplot(G)

G は、5.2 rad/s、13.5 rad/s および 24.5 rad/s 周辺の複数の大きなピーク領域と、多くの周波数に散在する小さなピークをもつ 48 次モデルです。アプリケーションに関して、2 番目に大きいピーク (10 ~ 22 rad/s) 付近のダイナミクスにのみ関心があると仮定します。モデルの低次元化において、関心領域に焦点を絞ることで低次元近似との良好な一致を取得します。balredOptionsを使用して balred の周波数範囲を指定します。

bopt = balredOptions('FreqIntervals',[10,22]);
GLim10 = balred(G,10,bopt);
GLim18 = balred(G,18,bopt);

低次元化されたモデルの周波数応答を検証します。また、これらの応答と元の応答との間の差異 (絶対誤差) を確認します。

subplot(2,1,1);
bodemag(G,GLim10,GLim18,logspace(0.5,1.5,100));
title('Bode Magnitude Plot')
legend('Original','Order 10','Order 18');
subplot(2,1,2);
bodemag(G-GLim10,G-GLim18,logspace(0.5,1.5,100));
title('Absolute Error Plot')
legend('Order 10','Order 18');

周波数を制限したエネルギー計算では、10 次の近似であっても関心領域においては非常に良好です。

関連する例

R2010a で導入

この情報は役に立ちましたか?