tzero

Invariant zeros of linear system

Syntax

z = tzero(sys)
z = tzero(A,B,C,D,E)
z = tzero(___,tol)
[z,nrank] = tzero(___)

Description

z = tzero(sys) returns the invariant zeros of the multi-input, multi-output (MIMO) dynamic system, sys. If sys is a minimal realization, the invariant zeros coincide with the transmission zeros of sys.

z = tzero(A,B,C,D,E) returns the invariant zeros of the state-space model

$\begin{array}{c}E\frac{dx}{dt}=Ax+Bu\\ y=Cx+Du.\end{array}$

Omit E for an explicit state-space model (E = I).

z = tzero(___,tol) specifies the relative tolerance, tol, controlling rank decisions.

[z,nrank] = tzero(___) also returns the normal rank of the transfer function of sys or of the transfer function H(s) = D + C(sE – A)–1B.

Input Arguments

 sys MIMO dynamic system model. If sys is not a state-space model, then tzero computes tzero(ss(sys)). A,B,C,D,E State-space matrices describing the linear system $\begin{array}{c}E\frac{dx}{dt}=Ax+Bu\\ y=Cx+Du.\end{array}$ tzero does not scale the state-space matrices when you use the syntax z = tzero(A,B,C,D,E). Use prescale if you want to scale the matrices before using tzero. Omit E to use E = I. tol Relative tolerance controlling rank decisions. Increasing tolerance helps detect nonminimal modes and eliminate very large zeros (near infinity). However, increased tolerance might artificially inflate the number of transmission zeros. Default: eps^(3/4)

Output Arguments

 z Column vector containing the invariant zeros of sys or the state-space model described by A,B,C,D,E. nrank Normal rank of the transfer function of sys or of the transfer function H(s) = D + C(sE – A)–1B. The normal rank is the rank for values of s other than the transmission zeros. To obtain a meaningful result for nrank, the matrix s*E-A must be regular (invertible for most values of s). In other words, sys or the system described by A,B,C,D,E must have a finite number of poles.

Examples

collapse all

Create a MIMO transfer function, and locate its invariant zeros.

s = tf('s');
H = [1/(s+1) 1/(s+2);1/(s+3) 2/(s+4)];
z = tzero(H)
z = 2×1 complex

-2.5000 + 1.3229i
-2.5000 - 1.3229i

The output is a column vector listing the locations of the invariant zeros of H. This output shows that H a has complex pair of invariant zeros. Confirm that the invariant zeros coincide with the transmission zeros.

Check whether the first invariant zero is a transmission zero of H.

If z(1) is a transmission zero of H, then H drops rank at s = z(1).

H1 = evalfr(H,z(1));
svd(H1)
ans = 2×1

1.5000
0.0000

H1 is the transfer function, H, evaluated at s = z(1). H1 has a zero singular value, indicating that H drops rank at that value of s. Therefore, z(1) is a transmission zero of H.

A similar analysis shows that z(2) is also a transmission zero.

Obtain a MIMO model.

load ltiexamples gasf
size(gasf)
State-space model with 4 outputs, 6 inputs, and 25 states.

gasf is a MIMO model that might contain uncontrollable or unobservable states.

To identify the unobservable and uncontrollable modes of gasf, you need the state-space matrices A, B, C, and D of the model. tzero does not scale state-space matrices. Therefore, use prescale with ssdata to scale the state-space matrices of gasf.

[A,B,C,D] = ssdata(prescale(gasf));

Identify the uncontrollable states of gasf.

uncon = tzero(A,B,[],[])
uncon = 6×1

-0.0568
-0.0568
-0.0568
-0.0568
-0.0568
-0.0568

When you provide A and B matrices to tzero, but no C and D matrices, the command returns the eigenvalues of the uncontrollable modes of gasf. The output shows that there are six degenerate uncontrollable modes.

Identify the unobservable states of gasf.

unobs = tzero(A,[],C,[])
unobs =

0x1 empty double column vector

When you provide A and C matrices, but no B and D matrices, the command returns the eigenvalues of the unobservable modes. The empty result shows that gasf contains no unobservable states.

More About

collapse all

Invariant zeros

For a MIMO state-space model

$\begin{array}{c}E\frac{dx}{dt}=Ax+Bu\\ y=Cx+Du,\end{array}$

the invariant zeros are the complex values of s for which the rank of the system matrix

$\left[\begin{array}{cc}A-sE& B\\ C& D\end{array}\right]$

drops from its normal value. (For explicit state-space models, E = I).

Transmission zeros

For a MIMO state-space model

$\begin{array}{c}E\frac{dx}{dt}=Ax+Bu\\ y=Cx+Du,\end{array}$

the transmission zeros are the complex values of s for which the rank of the equivalent transfer function H(s) = D + C(sE – A)–1B drops from its normal value. (For explicit state-space models, E = I.)

Transmission zeros are a subset of the invariant zeros. For minimal realizations, the transmission zeros and invariant zeros are identical.

Tips

• You can use the syntax z = tzero(A,B,C,D,E) to find the uncontrollable or unobservable modes of a state-space model. When C and D are empty or zero, tzero returns the uncontrollable modes of (A-sE,B). Similarly, when B and D are empty or zero, tzero returns the unobservable modes of (C,A-sE). See Identify Unobservable and Uncontrollable Modes of MIMO Model for an example.

Algorithms

tzero is based on SLICOT routines AB08ND, AB08NZ, AG08BD, and AG08BZ. tzero implements the algorithms in [1] and [2].

Alternatives

To calculate the zeros and gain of a single-input, single-output (SISO) system, use zero.

References

[1] Emami-Naeini, A. and P. Van Dooren, "Computation of Zeros of Linear Multivariable Systems," Automatica, 18 (1982), pp. 415–430.

[2] Misra, P, P. Van Dooren, and A. Varga, “Computation of Structural Invariants of Generalized State-Space Systems,” Automatica, 30 (1994), pp. 1921-1936.

See Also

Learn how to automatically tune PID controller gains

Download code examples