zpkdata

[ z , p , k ] = zpkdata( sys ) returns the zeros z , poles p , and gain(s) k of the zero-pole-gain model sys .

[ z , p , k , Ts ] = zpkdata( sys ) also returns the sample time Ts .

[ z , p , k , Ts , covz , covp , covk ] = zpkdata( sys ) also returns the covariances of the zeros, poles and gain of the identified model sys .

[ z , p , k ] = zpkdata( sys , 'v' ) returns the zeros and poles directly as column vectors for SISO zero-pole-gain models.

Examples

Example 1

Given a zero-pole-gain model with two outputs and one input

H = zpk(,<[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

you can extract the zero/pole/gain data embedded in H with

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

To access the zeros and poles of the second output channel of H , get the content of the second cell in z and p by typing

ans = -0.5000
ans = 0.1000+ 1.0000i 0.1000- 1.0000i

Example 2

Extract the ZPK matrices and their standard deviations for a 2-input, 1 output identified transfer function.

load iddata7 

transfer function model

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

an equivalent process model

sys2 = procest(z7, 'P2UZ', 'P2UZ'>, 'InputDelay',[1 0]); [z1, p1, k1, ~, dz1, dp1, dk1] = zpkdata(sys1); [z2, p2, k2, ~, dz2, dp2, dk2] = zpkdata(sys2);

Use iopzplot to visualize the pole-zero locations and their covariances

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

Input Arguments

sys — Zero-pole-gain model
zpk model object

Zero-pole-gain model, specified as a zpk model object.

Output Arguments

z — Zeros
cell array (default) | column vector

Zeros of the zero-pole-gain model, returned as a cell array with as many rows as outputs and as many columns as inputs. The (i,j) entry z is the (column) vector of zeros of the transfer function from input j to output i .

p — Poles
cell array (default) | column vector

Poles of the zero-pole-gain model, returned as a cell array with as many rows as outputs and as many columns as inputs. The (i,j) entry p is the (column) vector of zeros of the transfer function from input j to output i .

k — Gain
matrix

Gain of the zero-pole-gain model, returned as a matrix with as many rows as outputs and as many columns as inputs such that k(i,j) is the gain of the transfer function from input j to output i . If sys is a transfer function or state-space model, it is first converted to zero-pole-gain form using zpk .

Ts — Sample time
scalar

Sample time, specified as a scalar.

covz — Covariance of zeros
cell array

Covariance of zeros, returned as a cell array such that covz contains the covariance information about the zeros in the vector z . covz is a 3-D array of dimension 2-by-2-by-Nz, where Nz is the length of z , so that the (1,1) element is the variance of the real part, the (2,2) element is the variance of the imaginary part, and the (1,2) and (2,1) elements contain the covariance between the real and imaginary parts.

covp — Covariance of poles
cell array

Covariance of poles, returned as a cell array such that covp contains the covariance information about the poles in the vector p . covp is a 3-D array of dimension 2-by-2-by-Np, where Np is the length of p , so that the (1,1) element is the variance of the real part, the (2,2) element is the variance of the imaginary part, and the (1,2) and (2,1) elements contain the covariance between the real and imaginary parts.

covk — Covariance of gain
cell array

Covariance of zeros, returned as a cell array such that covk contains the covariance information about the zeros in the vector k . covk is a 3-D array of dimension 2-by-2-by-Nk, where Nk is the length of k , so that the (1,1) element is the variance of the real part, the (2,2) element is the variance of the imaginary part, and the (1,2) and (2,1) elements contain the covariance between the real and imaginary parts.

Version History

Introduced before R2006a