Main Content

inv

動的システム モデルを反転

構文

inv
inv(sys,'min')

説明

inv は入力/出力関係

y=G(s)u

を反転して、伝達行列 H(s)=G(s)1 をもつモデルを生成します。

u=H(s)y

この演算は、反転可能な直達行列 D をもつ正方のシステム (入力と出力が同じ数をもつ) でのみ定義されます。inv は連続時間システムと離散時間システムの両方を扱います。

inv(sys,'min')sys を反転して余分な状態を削除し、sys または A のそれぞれと同じ数の状態をもつモデルを取得します。ssgenss および uss モデルの場合、既定では陰的な形式で逆モデルが返されます。スパース モデルではこのオプションは無視されます。通常、スパース性が破棄されるためです。isproper または ss(sys,'explicit') を使用して、必要に応じて陽的なモデルを抽出します。

次について考えます。

H(s)=[11s+101]

MATLAB® プロンプトで次のように入力します。

H = [1 tf(1,[1 1]);0 1]
Hi = inv(H)

このようにして反転します。このコマンドでは、以下の結果が出力されます。

Transfer function from input 1 to output...
 #1:  1
 
 #2:  0
 
Transfer function from input 2 to output...
       -1
 #1:  -----
      s + 1
 
 #2:  1

ここで

H * Hi

は単位伝達関数であることを確認できます (静的ゲイン I)。

制限

inv を使用して、次のようなフィードバック接続をモデル化しないでください。

対応する閉ループ伝達関数 (I+GH)1G を次のように評価することは妥当であるように見えますが、

inv(1+g*h) * g

これは通常、非最小の閉ループ モデルにつながります。以下に例を示します。

g = zpk([],1,1)
h = tf([2 1],[1 0])
cloop = inv(1+g*h) * g

は、s = 1 の極-零点相殺が安定しない 3 次閉ループ モデルをもたらします。

cloop

Zero/pole/gain:
      s (s-1)
-------------------
(s-1) (s^2 + s + 1)

feedback を使用してそのような落とし穴を回避してください。

cloop = feedback(g,h)

Zero/pole/gain:
      s
-------------
(s^2 + s + 1)

バージョン履歴

R2006a より前に導入