Control System Toolbox関数リファレンス | ![]() ![]() |
表示
[sysb,T] = ssbal(sys) [sysb,T] = ssbal(sys,condT)
詳細
[sysb,T] = ssbal(sys)
が近似的に行と列のノルムが等しくなるような対角相似変換とスカラ
を計算します。
ssbal
は、行列
をもつ平衡化されたモデルsysb
と状態変換を出力します。ここで、
は新しい状態量です。
[sysb,T] = ssbal(sys,condT)
は、の条件数で、上界
condT
を設定します。悪い条件数を使って、平衡化させることは、予期せぬ丸め誤差を拡大する可能性があるので、
condT
は、最悪の場合の丸めによる増幅率を制御するためのものです。デフォルト値は、condT=Inf
です。
ssbal
は、状態空間モデルsys
が種々の状態数をもつ場合、エラーを出力します。
例題
a = [1 1e4 1e2;0 1e2 1e5;10 1 0]; b = [1;1;1]; c = [0.1 10 1e2]; sys = ss(a,b,c,0)
ssbal(sys)
a =
x1 x2 x3
x1 1 2500 0.39063
x2 0 100 1562.5
x3 2560 64 0
b =
u1
x1 0.125
x2 0.5
x3 32
c =
x1 x2 x3
y1 0.8 20 3.125
d =
u1
y1 0
Continuous-time system.
これより、数値範囲が100分の1に圧縮され、行列と
が、ほぼ等しいノルムをもっていることがわかります。
アルゴリズム
ssbal
は、MATLAB関数balance
を使って、 と
を計算します。
参考
balreal
グラミアンを基にI/Oの平衡化
ss2ss
状態座標変換
![]() | ss2ss | ssdata | ![]() |