Main Content

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

balreal

状態空間実現のグラミアンに基づく入出力の平衡化

構文

[sysb,g] = balreal(sys)
[sysb,g,T,Ti] = balreal(sys)
[___] = balreal(sys,opts)

説明

[sysb,g] = balreal(sys) は、LTI モデル sys の安定部について、平衡実現 sysb を計算します。balreal は、連続と離散の両システムをサポートします。sys が状態空間モデルでない場合、関数 ss を使用して最初に状態空間に自動的に変換されます。

安定なシステムの場合、sysb は、可制御グラミアンと可観測グラミアンが等しく、対角行列であり、対角要素がハンケル特異値のベクトル g で構成される等価実現です。g の中の小さな要素は、モデルを簡略化するために取り除くことができる状態を示します (モデル次数を低次元化するためには、関数 modred を使用します)。

sys が不安定な極をもつ場合、その安定部分が分離、平衡化され、不安定部分に追加され、sysb を形成します。不安定モードに対応する g の要素は、Inf に設定されます。

[sysb,g,T,Ti] = balreal(sys) は、平衡化グラミアンの対角部を格納したベクトル g、状態相似変換 xb = Tx (sys から sysb への変換に使用) および逆変換 Ti = T-1 も返します。

システムが適切に正規化された場合、結合グラミアンの対角 g を使用して、モデル次数の低次元化を行うことができます。g は、平衡化されたモデルの個々の状態の可制御性および可観測性の組み合わせを反映しているので、小さな g(i) に関してこれらの状態を削除できます。その一方で、元のシステムの最も重要な入/出力特性を残すことができます。modred を使用して、状態の消去を行います。

[___] = balreal(sys,opts) は、balredOptions を使用して指定したオプションを使用して平衡化実現を計算します。オプションには、安定/不安定分解を計算するためのオフセットおよび許容誤差オプションが含まれます。このオプションを使用すると、グラミアンの計算を特定の時間および周波数範囲に制限することもできます。詳細については、balredOptions を参照してください。

すべて折りたたむ

次のほぼ相殺された極-零点のペアをもつ零点-極-ゲイン モデルを考えます。

sys = zpk([-10 -20.01],[-5 -9.9 -20.1],1)
sys =
 
     (s+10) (s+20.01)
  ----------------------
  (s+5) (s+9.9) (s+20.1)
 
Continuous-time zero/pole/gain model.

平衡化されたグラミアンをもつ状態空間実現は、次のコマンドで取得されます。

[sysb,g] = balreal(sys);

結合グラミアンの対角要素は、次のようになります。

g'
ans = 1×3

    0.1006    0.0001    0.0000

これは、sysb の最後の 2 つの状態と、入力および出力との結合が弱いことを示しています。そのため、これらの状態を次のようにして削除することができます。

sysr = modred(sysb,[2 3],'del');

これにより、元のシステムの次の 1 次近似を取得することができます。

zpk(sysr)
ans =
 
   1.0001
  --------
  (s+4.97)
 
Continuous-time zero/pole/gain model.

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

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

Figure contains 2 axes. Axes 1 contains 2 objects of type line. These objects represent sys, sysr. Axes 2 contains 2 objects of type line. These objects represent sys, sysr.

このプロットは、2 番目と 3 番目の状態を削除してもシステム ダイナミクスにあまり影響がないことを示します。

不安定システムを作成します。

sys = tf(1,[1 0 -1])
sys =
 
     1
  -------
  s^2 - 1
 
Continuous-time transfer function.

balreal を適用して、平衡化されたグラミアン実現を作成します。

[sysbal,g] = balreal(sys)
sysbal =
 
  A = 
       x1  x2
   x1   1   0
   x2   0  -1
 
  B = 
            u1
   x1  -0.7071
   x2  -0.7071
 
  C = 
            x1       x2
   y1  -0.7071   0.7071
 
  D = 
       u1
   y1   0
 
Continuous-time state-space model.
g = 2×1

       Inf
    0.2500

不安定な極が、ベクトル gInf として現れます。

アルゴリズム

以下のモデルを考えます。

x˙=Ax+Buy=Cx+Du

これには、可制御グラミアン Wc と可観測グラミアン Wo があります。状態座標変換 x¯=Tx は、次の等価モデル

x¯˙=TAT1x¯+TBuy=CT1x¯+Du

を生成して、グラミアンを次のものに変換します。

W¯c=TWcTT,W¯o=TTWoT1

関数 balreal は、次のような特定の相似変換 T を計算します。

W¯c=W¯o=diag(g)

アルゴリズムの詳細は、[1]または[2]を参照してください。

balredOptionsTimeIntervals オプションまたは FreqIntervals オプションを使用する場合、balreal は時間または周波数を制限した可制御グラミアンと可観測グラミアンを基に平衡実現を行います。時間および周波数を制限したグラミアンの計算の詳細については、gram および[4]を参照してください。

参考文献

[1] Laub, A.J., M.T. Heath, C.C. Paige, and R.C. Ward, "Computation of System Balancing Transformations and Other Applications of Simultaneous Diagonalization Algorithms," IEEE® Trans. Automatic Control, AC-32 (1987), pp. 115-122.

[2] Moore, B., "Principal Component Analysis in Linear Systems: Controllability, Observability, and Model Reduction," IEEE Transactions on Automatic Control, AC-26 (1981), pp. 17-31.

[3] Laub, A.J., "Computation of Balancing Transformations," Proc. ACC, San Francisco, Vol.1, paper FA8-E, 1980.

[4] Gawronski, W. and J.N. Juang. “Model Reduction in Limited Time and Frequency Intervals.” International Journal of Systems Science. Vol. 21, Number 2, 1990, pp. 349–376.

R2006a より前に導入