| 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 | ![]() |