このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
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
を返します。出力 z
と p
は、次の特性を備えた cell 配列です。
z
とp
は出力と同じ数の行、入力と同じ数の列をもちます。(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 次元配列で、Nz
は z{ky,ku}
の長さなので、(1,1)
要素は実数部の分散、(2,2)
要素は虚数部の分散、(1,2)
と (2,1)
要素には実数部と虚数部の間の共分散が含まれます。covp
には同様の関係があり、p.covk
は k
の要素の分散が含まれる行列となります。
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 番目の出力チャネルの零点と極にアクセスするには、z
と p
の 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 より前に導入