ドキュメンテーション

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

balred

モデル次数の低次元化

構文

rsys = balred(sys,ORDERS)
rsys = balred(sys,ORDERS,BALDATA)
rsys = balred(___,opts)

説明

rsys = balred(sys,ORDERS) は、LTI モデル sys の低次元化された近似 rsys を計算します。rsys に対する目的の次数 (状態数) は、ORDERS で指定されます。ORDERS を整数のベクトルに指定することで、複数の次元をまとめて試すことができます。この場合、rsys は低次元化モデルのベクトルです。関数 balred は、陰解法的な平衡化手法を使用して、低次元化された近似 rsys を計算します。ハンケル特異値をプロットして適切な近似次数を取り出すには、関数 hsvd を使用してください。ハンケル特異値が比較的小さい状態は、安全に破棄されます。

sys が不安定な極をもつ場合、最初に関数 stabsep で安定部と不安定部に分解され、安定部だけが近似されます。balredOptions を使用して、安定/不安定な分解に対する追加オプションを指定します。

System Identification Toolbox™ ソフトウェアがインストールされている場合、sys として指定できるのは同定された状態空間モデル (idss) のみです。低次元化されたモデルも、idss モデルです。

rsys = balred(sys,ORDERS,BALDATA) は、hsvd により返される平衡化データを使用します。hsvdrsys の計算に必要な作業の大半を行うので、hsvdbalred を結合して使用すると、この構文は効率がさらに向上します。

rsys = balred(___,opts) は、balredOptions を使用して指定したオプションを使用してモデルの低次元化を計算します。オプションには、安定/不安定分解を計算するためのオフセットおよび許容誤差オプションが含まれます。このオプションを使用すると、排除する低エネルギー状態の識別を特定の時間および周波数範囲に制限することもできます。詳細については、balredOptions を参照してください。

    メモ:   近似モデルの次数は、常に不安定な極の数以上、元のモデルの最小次数以下になります (EPS レベルの相対しきい値を使用する非ゼロのハンケル特異値の数 NNZ)。

すべて折りたたむ

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

$$G\left( s \right) = \frac{{\left( {s + 0.5} \right)\left( {s + 1.1}
\right)\left( {s + 2.9} \right)}}{{\left( {s + {{10}^{ - 6}}}
\right)\left( {s + 1} \right)\left( {s + 2} \right)\left( {s + 3}
\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 次の近似であっても関心領域においては非常に良好です。

関連する例

参考文献

[1] Varga, A., "Balancing-Free Square-Root Algorithm for Computing Singular Perturbation Approximations," Proc. of 30th IEEE CDC, Brighton, UK (1991), pp. 1062-1065.

R2006a より前に導入

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