Control System Toolbox Function Reference | ![]() ![]() |
Minimal realization or pole-zero cancellation
Syntax
sysr = minreal(sys) sysr = minreal(sys,tol) [sysr,u] = minreal(sys,tol)
Description
sysr = minreal(sys)
eliminates uncontrollable or unobservable state in state-space models, or cancels pole-zero pairs in transfer functions or zero-pole-gain models. The output sysr
has minimal order and the same response characteristics as the original model sys
.
sysr = minreal(sys,tol)
specifies the tolerance used for state elimination or pole-zero cancellation. The default value is tol = sqrt(eps)
and increasing this tolerance forces additional cancellations.
[sysr,u] = minreal(sys,tol)
returns, for state-space model sys
, an orthogonal matrix U such that (U*A*U',U*B,C*U')
is a Kalman decomposition of (A
,B
,C
)
Example
g = zpk([],1,1) h = tf([2 1],[1 0]) cloop = inv(1+g*h) * g
produce the nonminimal zero-pole-gain model by typing cloop
.
Zero/pole/gain: s (s-1) ------------------- (s-1) (s^2 + s + 1)
To cancel the pole-zero pair at , type
cloop = minreal(cloop)
Zero/pole/gain: s ------------- (s^2 + s + 1)
Algorithm
Pole-zero cancellation is a straightforward search through the poles and zeros looking for matches that are within tolerance. Transfer functions are first converted to zero-pole-gain form.
See Also
balreal
Grammian-based input/output balancing
modred
Model order reduction
sminreal
Structured model reduction
![]() | margin | modred | ![]() |