Accelerating the pace of engineering and science

# Documentation Center

• Trial Software

# 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

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 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

expand all

### Transmission Zeros of MIMO Transfer Function

Find the invariant zeros of a MIMO transfer function and confirm that they coincide with the transmission zeros.

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

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 =

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.

### Unobservable and Uncontrollable Modes of MIMO Model

Identify the unobservable and uncontrollable modes of a MIMO model using the state-space matrix syntax of tzero.

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.

Scale the state-space matrices of gasf.

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

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

Use tzero to identify the uncontrollable states of gasf.

` uncon = tzero(A,B,[],[])`
```uncon =

-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 =

Empty matrix: 0-by-1
```

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.

## Alternatives

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

expand all

### Invariant zeros

For a MIMO state-space model

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

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

### Transmission zeros

For a MIMO state-space model

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 Unobservable and Uncontrollable Modes of MIMO Model for an example.

### Algorithms

tzero is based on SLICOT routines AB08ND, AG08BD, and AB8NXZ. 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.