このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
打ち切りによる低次元モデル近似と DC 一致によるものとの比較
この例では、2 つの方法で低次の近似を計算する方法を示し、結果を比較します。平衡化打ち切り方法によって低次の近似を計算する場合、次のいずれかを行います。
システム動作への寄与が最も小さい状態を破棄し、残りの状態がシステムの DC ゲインを保持するように変更する。
低エネルギーの状態を破棄し、残りの状態を変更しない。
どちらの方法を使用するかは、アプリケーションにとってどちらのダイナミクスが最も重要かによって異なります。一般に、DC ゲインを保持すると、高周波数のダイナミクスで精度が低下します。逆に、状態を切り捨てると、高速過渡状態での精度が向上しますが、低周波数での精度が低下します。
この例では、getrom
コマンドの状態消去方法である "Truncate"
および "MatchDC"
を比較します。次に示すように、[平衡化打ち切り] タブの [DC ゲインの保持] チェック ボックスを使用して、Model Reducer アプリで状態消去方法を同様に制御できます。
以下のシステムを考えます。
このシステムの r から y への閉ループ モデルを作成します。
G = zpk([0 -2],[-1 -3],1); C = tf(2,[1 1e-2]); T = feedback(G*C,1)
T = 2 s (s+2) -------------------------------- (s+0.004277) (s+1.588) (s+4.418) Continuous-time zero/pole/gain model.
T
は s = 0 付近で極-零点がほぼ相殺される 3 次システムです。このため、近似による低次元化にふさわしい候補となります。
T
に対する 2 つの 2 次近似を計算します。1 つは DC ゲインを保持する近似で、もう 1 つは他の状態を変更せずに、エネルギーが最も低い状態を打ち切る近似です。getrom
の Method
入力引数を使用して、近似方法 "MatchDC"
および "Truncate"
をそれぞれ指定します。
R = reducespec(T,"balanced"); Tmatch = getrom(R,Order=2,Method="MatchDC"); Ttrunc = getrom(R,Order=2,Method="Truncate");
近似モデルの周波数応答を比較します。
bodeplot(T,Tmatch,Ttrunc) legend('Original','DC Match','Truncate')
打ち切られたモデル Ttrunc
は、高周波数では元のモデルとよく一致しますが、低周波数ではかなり乖離します。逆に Tmatch
は予想どおり低周波数でうまく一致しますが、高周波数での精度が犠牲になります。
また、異なる状態での時間領域応答を調べることによって、2 つの方法の違いを比べることもできます。長時間区域で 3 つの全モデルのステップ応答を調べることによって、遅いダイナミクスを比較します。
stepplot(T,Tmatch,'r--',Ttrunc,1500) legend('Original','DC Match','Truncate')
予想したとおり、長時間のスケールでは、DC が一致する近似の Tmatch
は元のモデルに非常に似た応答をします。
ステップ応答の高速過渡状態を比較します。
stepplot(T,Tmatch,'r',Ttrunc,'g--',0.5) legend('Original','DC Match','Truncate')
短時間のスケールでは、打ち切られた近似の Ttrunc
の方が、元のモデルとよりよく一致します。どちらの近似方法を使用するかは、アプリケーションにとってどちらの状態が最も重要かを考慮して決定してください。