@lti/zero
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
LTI model.
String specifying the type of zeros:
Compute the system zeros. The system zeros include in all cases (square, non-square, degenerate or non-degenerate system) all transmission and decoupling zeros.
Compute invariant zeros. Default selection.
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.
Compute input decoupling zeros. The input decoupling zeros are also known as the uncontrollable eigenvalues of the pair (A,B).
Compute output decoupling zeros. The output decoupling zeros are also known as the unobservable eigenvalues of the pair (A,C).
Outputs
Depending on argument type, z contains the invariant (default), system, transmission, input decoupling or output decoupling zeros of sys as defined in [1].
Gain of SISO system sys. For MIMO
systems, an empty matrix []
is returned.
Struct containing additional information. For details, see the documentation of SLICOT routines AB08ND and AG08BD.
The normal rank of the transfer function matrix (regular state-space models) or of the system pencil (descriptor state-space models).
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).
Right Kronecker (column) indices.
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
uses SLICOT AB08ND and AG08BD,
Copyright (c) 2020, SLICOT, available under the BSD 3-Clause
(License and Disclaimer).
For SISO transfer functions, zero
uses Octave’s roots
.
MIMO transfer functions are converted to
a 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.
Source Code: @lti/zero