Function File: z = zero (sys)
Function File: z = zero (sys, type)
Function File: [z, k, info] = zero (sys)

Compute zeros and gain of LTI model. By default, zero computes the invariant zeros, also known as Smith zeros. Alternatively, when called with a second input argument, zero can also compute the system zeros, transmission zeros, input decoupling zeros and output decoupling zeros. See paper [1] for an explanation of the various zero flavors as well as for further details.

Inputs

sys

LTI model.

type

String specifying the type of zeros:

’system’, ’s’

Compute the system zeros. The system zeros include in all cases (square, non-square, degenerate or non-degenerate system) all transmission and decoupling zeros.

’invariant’, ’inv’

Compute invariant zeros. Default selection.

’transmission’, ’t’

Compute transmission zeros. Transmission zeros are a subset of the invariant zeros. The transmission zeros are the zeros of the Smith-McMillan form of the transfer function matrix.

’input’, ’inp’, ’id’

Compute input decoupling zeros. The input decoupling zeros are also known as the uncontrollable eigenvalues of the pair (A,B).

’output’, ’o’, ’od’

Compute output decoupling zeros. The output decoupling zeros are also known as the unobservable eigenvalues of the pair (A,C).

Outputs

z

Depending on argument type, z contains the invariant (default), system, transmission, input decoupling or output decoupling zeros of sys as defined in [1].

k

Gain of SISO system sys. For MIMO systems, an empty matrix [] is returned.

info

Struct containing additional information. For details, see the documentation of SLICOT routines AB08ND and AG08BD.

info.rank

The normal rank of the transfer function matrix (regular state-space models) or of the system pencil (descriptor state-space models).

info.infz

Contains information on the infinite elementary divisors as follows: the system has info.infz(i) infinite elementary divisors of degree i, where i=1,2,...,length(info.infz).

info.kronr

Right Kronecker (column) indices.

info.kronl

Left Kronecker (row) indices.

Examples

[z, k, info] = zero (sys)        # invariant zeros
z = zero (sys, 'system')         # system zeros
z = zero (sys, 'invariant')      # invariant zeros
z = zero (sys, 'transmission')   # transmission zeros
z = zero (sys, 'output')         # output decoupling zeros
z = zero (sys, 'input')          # input decoupling zeros

Algorithm
For (descriptor) state-space models, zero relies on SLICOT AB08ND and AG08BD by courtesy of NICONET e.V. For SISO transfer functions, zero uses Octave’s roots. MIMO transfer functions are converted to a minimal state-space representation for the computation of the zeros.

References
[1] MacFarlane, A. and Karcanias, N. Poles and zeros of linear multivariable systems: a survey of the algebraic, geometric and complex-variable theory. Int. J. Control, vol. 24, pp. 33-74, 1976.
[2] Rosenbrock, H.H. Correction to ’The zeros of a system’. Int. J. Control, vol. 20, no. 3, pp. 525-527, 1974.
[3] Svaricek, F. Computation of the structural invariants of linear multivariable systems with an extended version of the program ZEROS. Systems & Control Letters, vol. 6, pp. 261-266, 1985.
[4] Emami-Naeini, A. and Van Dooren, P. Computation of zeros of linear multivariable systems. Automatica, vol. 26, pp. 415-430, 1982.

Package: control