Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

zpkdata

零点-極-ゲイン データにアクセスする

構文

[z,p,k] = zpkdata(sys)
[z,p,k,Ts] = zpkdata(sys)
[z,p,k,Ts,covz,covp,covk] = zpkdata(sys)

説明

[z,p,k] = zpkdata(sys) は、零点-極-ゲイン モデル sys の零点 z、極 p、およびゲイン k を返します。出力 zp は、次の特性を備えた cell 配列です。

  • zp は出力と同じ数の行、入力と同じ数の列をもちます。

  • (i,j) エントリの z{i,j}p{i,j} は、入力 j から出力 i への伝達関数の零点と極の (列) ベクトルです。

出力 k は、行数が出力と同じで列数が入力と同じの行列です。そのため、k(i,j) は入力 j から出力 i への伝達関数のゲインとなります。sys が、伝達関数モデルまたは状態空間モデルである場合、zpk を使用して最初に零点-極-ゲイン形式に変換されます。

SISO 零点-極-ゲイン モデルの場合、次の構文

[z,p,k] = zpkdata(sys,'v')

は、zpkdata が零点と極を cell 配列ではなく列ベクトルとして直接返すように強制します (以下の例を参照)。

[z,p,k,Ts] = zpkdata(sys) はサンプル時間 Ts も返します。

[z,p,k,Ts,covz,covp,covk] = zpkdata(sys) は、零点-極-ゲイン モデル sys の零点、極およびゲインの共分散を返します。covz は、covz{ky,ku} にベクトル z{ky,ku} の零点についての共分散情報が含まれる cell 配列です。covz{ky,ku} は 2×2×Nz の 3 次元配列で、Nzz{ky,ku} の長さなので、(1,1) 要素は実数部の分散、(2,2) 要素は虚数部の分散、(1,2)(2,1) 要素には実数部と虚数部の間の共分散が含まれます。covp には同様の関係があり、p.covkk の要素の分散が含まれる行列となります。

sys の残りの LTI プロパティには、get または直接参照でアクセスすることができます。たとえば、次のとおりです。

sys.Ts
sys.inputname

例 1

2 出力と 1 入力をもつ零点-極-ゲイン モデルを考えます。

H = zpk({[0];[-0.5]},{[0.3];[0.1+i 0.1-i]},[1;2],-1)
Zero/pole/gain from input to output...
         z
 #1:  -------
      (z-0.3)
 
           2 (z+0.5)
 #2:  -------------------
      (z^2 - 0.2z + 1.01)
 
Sample time: unspecified

次の構文を使用して、H に組み込まれた零点、極、およびゲインのデータを抽出することができます。

[z,p,k] = zpkdata(H)
z = 
    [      0]
    [-0.5000]
p = 
    [    0.3000]
    [2x1 double]
k =
     1
     2

H の 2 番目の出力チャネルの零点と極にアクセスするには、zp の 2 番目のセルの内容を取得します。

z{2,1}
ans =
   -0.5000
p{2,1}
ans =
   0.1000+ 1.0000i
   0.1000- 1.0000i

例 2

2 入力、1 出力で同定された伝達関数の ZIP 行列と標準偏差を抽出します。

load iddata7

伝達関数モデル

sys1 = tfest(z7, 2, 1, 'InputDelay',[1 0]);

等価なプロセス モデル

sys2 = procest(z7, {'P2UZ', 'P2UZ'}, 'InputDelay',[1 0]);

1, p1, k1, ~, dz1, dp1, dk1] = zpkdata(sys1);
[z2, p2, k2, ~, dz2, dp2, dk2] = zpkdata(sys2);

iopzplot を使用して、極-零点の位置およびその共分散を可視化します。

h = iopzplot(sys1, sys2);
showConfidence(h)

バージョン履歴

R2006a より前に導入

参考

| | |