Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

コマンド ラインでの平衡化打ち切りによるモデルの近似

この例は、MATLAB ® コマンド ラインで balred を使用してモデルの低次元化近似を計算する方法を説明します。

balred は、モデルの動作全体に対するエネルギーの寄与が最も少ない状態を削除します。そのため、balred を使用する場合、最初にモデルの各状態のエネルギー寄与を調べます。モデルの動作全体に大きく寄与する状態の数に基づいて近似次数を選択します。

この例では、高次のモデルを読み込みます。hplant は 23 次の SISO モデルです。

load ltiexamples hplant
order(hplant)
ans = 23

ハンケル特異値 (HSV) プロットを使用して、hplant での状態ごとのエネルギーの相対量を調べます。

hsvplot(hplant)

ハンケル特異値が小さいことは、関連する状態がシステムの動作にほとんど影響しないことを示します。このプロットから、2 つの状態がシステムのエネルギーで最も考慮されていることがわかります。そこで、モデルを 1 次または 2 次に簡略化することにします。

opts = balredOptions('StateElimMethod','Truncate');
hplant1 = balred(hplant,1,opts);
hplant2 = balred(hplant,2,opts);

balred への 2 番目の引数は、hplant1hplant の 1 次近似で、hplant2 が 2 次近似となるようにターゲットの近似次数を指定します。既定では、balred は最も小さいハンケル特異値をもつ状態を破棄し、残りの状態がシステムの DC ゲインを保持するように変更します。StateElimMethod オプションを Truncate に設定すると、balred は残りの状態を変更せずに低エネルギーの状態を破棄します。

低次元化されたモデルで作業をする場合、近似を行うことで、アプリケーションにとって重要な周波数に誤差が導入されることがないように確認することが大切です。したがって、元のシステムと近似したシステムの周波数応答を比較します。MIMO システムの場合、sigmaplot コマンドを使用します。SISO システムの場合、ボード線図を調べます。

bodeplot(hplant,hplant2,hplant1)
legend('Original','2nd order','1st order')

低い周波数では特に、2 次近似 hplant2 が元の 23 次システムと非常によく一致します。1 次システムはあまり一致しません。

一般的に、近似したモデルの次数を減らすと、近似したモデルの周波数応答と元のモデルの周波数応答との間に相違が生じ始めます。重要な帯域での精度が十分に高い近似を選択してください。たとえば制御システムの場合、制御帯域幅内で高い精度を保とうとすることがあります。制御帯域幅を大きく超え、ゲインが迅速にロールオフするような帯域幅での周波数精度は、それほど重要ではないでしょう。

時間領域における近似を確認することもできます。たとえば、元のシステムと低次元化されたシステムのステップ応答を調べます。

stepplot(hplant,hplant2,'r--',hplant1,'g--')
legend('Original','2nd order','1st order','Location','SouthEast')

この結果から、2 次近似が元の 23 次システムにとって適切であることが確認されます。

参考

関数

ライブ エディター タスク

関連するトピック