Main Content

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

modred

状態空間モデルからの状態の除去

構文

rsys = modred(sys,elim)
rsys = modred(sys,elim,'method')

説明

rsys = modred(sys,elim) は、ベクトル elim で指定された状態を削除することで、連続または離散の状態空間モデル sys の低次元化を行います。完全な状態ベクトル X は、X = [X1;X2] に分割されます。ここで、X1 は低次元化された状態ベクトルで、X2 は破棄されます。

elim は、X に応じたインデックス ベクトル、または論理ベクトルになります。ここで、値 true は、削除される状態を示します。この関数は通常、balreal と一緒に使用されます。最初に balreal を使用して、I/O 応答に対して影響のない寄与を状態から分離します。sysbalreal で平衡化し、ハンケル特異値のベクトル g が M 個の小さい要素をもつ場合、modred を使用して対応する M 個の状態を除くことができます。以下に例を示します。

[sys,g] = balreal(sys)  % Compute balanced realization
elim = (g<1e-8)         % Small entries of g are negligible states
rsys = modred(sys,elim) % Remove negligible states

rsys = modred(sys,elim,'method') は、状態消去方法も指定します。'method' の選択肢は次のとおりです。

  • 'MatchDC' (既定): DC ゲインを一致させます。状態空間行列は、アルゴリズムで説明されているように、再計算されます。

  • 'Truncate': X2 を単に削除します。

'Truncate' オプションは、周波数領域でより良い近似を行う傾向がありますが、DC ゲインが一致することは保証されません。

状態空間モデル sysbalreal で平衡化され、グラミアンが m 個の小さな対角要素をもつ場合、modred を利用して最後の m 個の状態を削除することで、モデルを低次元化することができます。

すべて折りたたむ

次の連続 4 次モデルについて考えます。

h(s)=s3+11s2+36s+26s4+14.6s3+74.96s2+153.7s+99.65.

低次元化するため、最初に balreal で平衡化状態空間実現を計算します。

h = tf([1 11 36 26],[1 14.6 74.96 153.7 99.65]);
[hb,g] = balreal(h);

グラミアンを調べます。

g'
ans = 1×4

    0.1394    0.0095    0.0006    0.0000

平衡化されたグラミアンの最後の 3 つの対角要素は比較的小さくなります。DC ゲイン マッチング法と直接削除法の両方を使用して、貢献度が最も低いこれら 3 つの状態を modred で除去します。

hmdc = modred(hb,2:4,'MatchDC');
hdel = modred(hb,2:4,'Truncate');

hmdchdel はいずれも 1 次モデルです。ボード応答を元のモデルの応答と比較します。

bodeplot(h,'-',hmdc,'x',hdel,'*')

Figure contains 2 axes. Axes 1 contains 3 objects of type line. These objects represent h, hmdc, hdel. Axes 2 contains 3 objects of type line. These objects represent h, hmdc, hdel.

低次元化されたモデル hdel の方が明らかに h の周波数領域近似として適しています。次にステップ応答を比較します。

stepplot(h,'-',hmdc,'-.',hdel,'--')

Figure contains an axes. The axes contains 3 objects of type line. These objects represent h, hmdc, hdel.

hdel は過渡動作を正確に反映しますが、hmdc だけが、定常状態応答と一致します。

アルゴリズム

DC ゲイン マッチング法のアルゴリズムは次のとおりです。次の連続時間モデルの場合、

x˙=Ax+Byy=Cx+Du

状態ベクトルは、状態を残す x1 と、状態を削除する x2 で分割されます。

[x˙1x˙2]=[A11A12A21A22][x1x2]+[B1B2]uy=[C1C2]x+Du

次に、x2 の微係数は 0 に設定され、結果の方程式は x1 に関する式です。低次元化されたモデルは以下によって与えられます。

x˙1=[A11A12A221A21]x1+[B1A12A221B2]uy=[C1C2A221A21]x+[DC2A221B2]u

離散時間は以下を設定することで同様に処理されます。

x2[n+1]=x2[n]

R2006a より前に導入