tzero

Invariant zeros of linear system

Description

example

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

example

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

z = tzero(___,tol) specifies the relative tolerance controlling rank decisions for any of the previous syntaxes.

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

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.

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.

Input Arguments

collapse all

MIMO dynamic system, specified as one of the following dynamic system models.

• Continuous-time or discrete-time numeric LTI models, such as tf, zpk, or ss models.

• Generalized or uncertain LTI models such as genss or uss (Robust Control Toolbox) models. (Using uncertain models requires Robust Control Toolbox™ software.)

• Frequency-response data models, such as frd models.

• Identified LTI models, such as idtf (System Identification Toolbox), idss (System Identification Toolbox), or idproc (System Identification Toolbox) models. (Using identified models requires System Identification Toolbox™ software.)

If sys is not a state-space model, then tzero computes tzero(ss(sys)).

State-space matrices describing the following 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. To scale the matrices before using tzero, prescale.

Omit E for an explicit state-space model, where E = I.

Relative tolerance controlling rank decisions, specified as a positive scalar. Increasing tolerance helps detect nonminimal modes and eliminate very large zeros (near infinity). However, increased tolerance might artificially increase the number of transmission zeros.

Output Arguments

collapse all

Column vector containing the invariant zeros of sys or the state-space model described by A,B,C,D,E.

Normal rank of the transfer function of sys or of the transfer function H(s) = D + C(sEA)–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.

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(sEA)–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). For an example, see Identify Unobservable and Uncontrollable Modes of MIMO Model.

Algorithms

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

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.

Version History

Introduced in R2012a