minreal
最小実現または極-零点相殺
構文
sysr = minreal(sys)
sysr = minreal(sys,tol)
[sysr,u] = minreal(sys,tol)
... = minreal(sys,tol,false)
... = minreal(sys,[],false)
説明
sysr = minreal(sys)
は、状態空間モデルで非可制御あるいは不可観測な状態を削除したり、伝達関数または零点-極-ゲイン モデルの極-零点のペアを相殺したりします。出力 sysr
は最小次数で元のモデル sys
と同じ応答特性があります。
sysr = minreal(sys,tol)
は、状態消去または極-零点相殺で使用される許容誤差を指定します。既定値は、 tol = sqrt(eps)
で、この許容誤差を大きくすることにより、さらに他の相殺が実行されます。
[sysr,u] = minreal(sys,tol)
は状態空間モデル sys
に対して、(U*A*U',U*B,C*U')
が (A
、B
、C
) のカルマン分解となる直交行列 U
を返します。
... = minreal(sys,tol,false)
と ... = minreal(sys,[],false)
は、関数の詳細出力を無効にします。既定では、minreal
には、状態空間モデル sys
から削除された状態数を示すメッセージが表示されます。
例
コマンド
g = zpk([],1,1); h = tf([2 1],[1 0]); cloop = inv(1+g*h) * g
は非最小の零点-極/ゲイン モデル cloop
を作成します。
cloop = s (s-1) ------------------- (s-1) (s^2 + s + 1) Continuous-time zero/pole/gain model.
s = 1 で極-零点のペアを相殺するには、次のように入力します。
cloopmin = minreal(cloop)
このコマンドにより以下の結果が出力されます。
cloopmin = s ------------- (s^2 + s + 1) Continuous-time zero/pole/gain model.
アルゴリズム
極-零点相殺は極および零点を直接検索し、許容誤差内に一致がないかどうかを探します。伝達関数は最初に零点-極-ゲインの形式に変換されます。
バージョン履歴
R2006a より前に導入