Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

ss2zp

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

Syntax

[z,p,k] = ss2zp(A,B,C,D,i)

Description

ss2zp converts a state-space representation of a given system to an equivalent zero-pole-gain representation. The zeros, poles, and gains of state-space systems represent the transfer function in factored form.

[z,p,k] = ss2zp(A,B,C,D,i) calculates the transfer function in factored form

H(s)Z(s)P(s)k(sz1)(sz2)(szn)(sp1)(sp2)(spn)

of the continuous-time system

x˙=Ax+Buy=Cx+Du

from the ith input (using the ith columns of B and D). The column vector p contains the pole locations of the denominator coefficients of the transfer function. The matrix z contains the numerator zeros in its columns, with as many columns as there are outputs y (rows in C). The column vector k contains the gains for each numerator transfer function.

ss2zp also works for discrete time systems. The input state-space system must be real.

The ss2zp function is part of the standard MATLAB® language.

Examples

collapse all

Consider a discrete-time system defined by the transfer function

$$ H(z) = \frac{2+3z^{-1}}{1+0.4z^{-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 =

         0
   -1.5000


p =

  -0.2000 + 0.9798i
  -0.2000 - 0.9798i


k =

     2

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

[A,B,C,D] = tf2ss(b,a);
[z,p,k] = ss2zp(A,B,C,D,1)
z =

         0
   -1.5000


p =

  -0.2000 + 0.9798i
  -0.2000 - 0.9798i


k =

     2

More About

collapse all

Algorithms

ss2zp finds the poles from the eigenvalues of the A array. 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. ss2zp interprets these large zeros as infinite.

ss2zp finds 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.

See Also

| | | | |

Introduced before R2006a

Was this topic helpful?