Main Content

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

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 (Control System Toolbox) を使用してください。ハンケル特異値が比較的小さい状態は、安全に破棄されます。

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

このコマンドには Control System Toolbox™ のライセンスが必要です。sys として指定できるのは同定された状態空間モデル (idss) のみです。低次元化されたモデルも、idss モデルです。

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

rsys = balred(___,opts) は、balredOptions (Control System Toolbox) を使用して指定したオプションを使用してモデルの低次元化を計算します。オプションには、安定/不安定分解を計算するためのオフセットおよび許容誤差オプションが含まれます。特定の時間間隔または周波数範囲を強調するためのオプションもあります。詳細については、balredOptions (Control System Toolbox) を参照してください。

メモ

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

すべて折りたたむ

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

G(s)=(s+0.5)(s+1.1)(s+2.9)(s+10-6)(s+1)(s+2)(s+3).

モデルを作成します。

sys = zpk([-.5 -1.1 -2.9],[-1e-6 -2 -1 -3],1);

安定/不安定分解の安定項から、s=10-6 にある極を排除します。これを行うには、balredOptionsOffset オプションを、排除する極より大きい値に設定します。

opt = balredOptions('Offset',.001,'StateElimMethod','Truncate');

2 次近似を計算します。

rsys = balred(sys,2,opt);

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

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

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

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

load('highOrderModel.mat','G')
bodeplot(G)

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

bopt = balredOptions('StateElimMethod','Truncate','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 次の近似であっても関心領域においては非常に良好です。

代替機能

アプリ

Model Reducer (Control System Toolbox)

ライブ エディター タスク

モデル次数の低次元化 (Control System Toolbox)

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

すべて展開する

R2017b での動作変更

参考文献

[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 より前に導入