Documentation

This is machine translation

Translated by Microsoft
Mouse over text to see original. Click the button below to return to the English verison of the page.

minreal

Minimal realization or pole-zero cancelation

Syntax

sysr = minreal(sys)
sysr = minreal(sys,tol)
[sysr,u] = minreal(sys,tol)
... = minreal(sys,tol,false)
... = minreal(sys,[],false)

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)

... = minreal(sys,tol,false) and ... = minreal(sys,[],false) disable the verbose output of the function. By default, minreal displays a message indicating the number of states removed from a state-space model sys.

Examples

The commands

g = zpk([],1,1);
h = tf([2 1],[1 0]);
cloop = inv(1+g*h) * g

produce the nonminimal zero-pole-gain model cloop.

cloop =
 
        s (s-1)
  -------------------
  (s-1) (s^2 + s + 1)
 
Continuous-time zero/pole/gain model.

To cancel the pole-zero pair at s = 1, type

cloopmin = minreal(cloop)

This command produces the following result.

cloopmin =
 
        s
  -------------
  (s^2 + s + 1)
 
Continuous-time zero/pole/gain model.

Related Examples

More About

collapse all

Algorithms

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.

Introduced before R2006a

Was this topic helpful?