Documentation

ss2zp

Convert state-space filter parameters to zero-pole-gain form

Description

example

[z,p,k] = ss2zp(A,B,C,D)converts a state-space representation

x ˙ = A x + B u y = C x + D u

of a given continuous-time or discrete-time system to an equivalent zero-pole-gain representation

H ( s ) = Z ( s ) P ( s ) = k ( s z 1 ) ( s z 2 ) ( s z n ) ( s p 1 ) ( s p 2 ) ( s p n )

whose zeros, poles, and gains represent the transfer function in factored form.

[z,p,k] = ss2zp(A,B,C,D,)indicates that the system has multiple inputs and that theth input has been excited by a unit impulse.

Examples

collapse all

Consider a discrete-time system defined by the transfer function

H ( z ) = 2 + 3 z - 1 1 + 0 . 4 z - 1 + z - 2 .

Determine its zeros, poles, and gain directly from the transfer function. Pad the numerator with zeros so it has the same length as the denominator.

b = [2 3 0]; a = [1 0.4 1]; [z,p,k] = tf2zp(b,a)
z =2×10 -1.5000
p =2×1 complex-0.2000 + 0.9798i -0.2000 - 0.9798i
k = 2

Express the system in state-space form and determine the zeros, poles, and gain usingss2zp.

[A,B,C,D] = tf2ss(b,a); [z,p,k] = ss2zp(A,B,C,D,1)
z =2×10 -1.5000
p =2×1 complex-0.2000 + 0.9798i -0.2000 - 0.9798i
k = 2

Input Arguments

collapse all

State matrix. If the system hasrinputs andqoutputs and is described bynstate variables, thenAisn-by-n.

Data Types:single|double

Input-to-state matrix. If the system hasrinputs andqoutputs and is described bynstate variables, thenBisn-by-r.

Data Types:single|double

Input-to-state matrix. If the system hasrinputs andqoutputs and is described bynstate variables, thenCisq-by-n.

Data Types:single|double

Feedthrough matrix. If the system hasrinputs andqoutputs and is described bynstate variables, thenDisq-by-r.

Data Types:single|double

Input index, specified as an integer scalar. If the system hasrinputs, usess2zpwith a trailing argument= 1, …,rto compute the response to a unit impulse applied to theth input. Specifying this argument causesss2zpto use theth columns ofBandD.

Data Types:single|double

Output Arguments

collapse all

Zeros of the system, returned as a matrix.zcontains the numerator zeros in its columns.zhas as many columns as there are outputs (rows inC).

Poles of the system, returned as a column vector.pcontains the pole locations of the denominator coefficients of the transfer function.

Gains of the system, returned as a column vector.kcontains the gains for each numerator transfer function.

Algorithms

ss2zpfinds the poles from the eigenvalues of theAarray. The zeros are the finite solutions to a generalized eigenvalue problem:

z = eig([A B;C D],diag([ones(1,n) 0]);

In many situations, this algorithm produces spurious large, but finite, zeros.ss2zpinterprets these large zeros as infinite.

ss2zpfinds the gains by solving for the first nonzero Markov parameters.

References

[1] Laub, A. J., and B. C. Moore. "Calculation of Transmission Zeros Using QZ Techniques."Automatica. Vol. 14, 1978, p. 557.

Introduced before R2006a