modsep
(非推奨) 領域ベースのモード分解
modsep は推奨されません。代わりに modalsep を使用してください。 (R2023b 以降)
構文
[H,H0] = modsep(G,N,REGIONFCN)
MODSEP(G,N,REGIONFCN,PARAM1,...)
説明
[H,H0] = modsep(G,N,REGIONFCN) は LTI モデル G を、複素平面の重ならない領域 Rj に極をもつ n 個の単純なモデル Hj の和に分解します。
G は、ss、tf、または zpk で作成されるどの LTI モデルにもなり得ます。また、N は、分解に使用される領域の数です。modsep はサブモデル Hj を LTI 配列 H にまとめ、静的ゲイン H0 を個々に返します。サブモデル Hj(s) を取り出すには H(:,:,j) を使用してください。
興味のある領域を指定するには、関数を下記の形式で使用します。
IR = REGIONFCN(p)
この関数は、領域インデックス IR を 1 と N の間で極 p に与えます。この関数をその名前または関数ハンドルで指定し、追加の入力引数を渡すために構文 MODSEP(G,N,REGIONFCN,PARAM1,...) を使用します。
IR = REGIONFCN(p,PARAM1,...)
例
H1 と H2 が単位円板の内と外にそれぞれ極をもつ場合に G を G(z) = H0 + H1(z) + H2(z) に分解するには、以下を使用します。
[H,H0] = modsep(G,2,@udsep)
ここで関数 udsep は次のように定義されます。
function r = udsep(p) if abs(p)<1, r = 1; % assign r=1 to poles inside unit disk else r = 2; % assign r=2 to poles outside unit disk end
LTI 配列 H から H1(z) と H2(z) を展開するには、以下を使用します。
H1 = H(:,:,1); H2 = H(:,:,2);