Main Content

minreal

Minimal realization or pole-zero cancellation

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 unobservablestate in state-space models, or cancels pole-zero pairs in transfer functions or zero-pole-gain models. The outputsysrhas minimal order and the same response characteristics as the original modelsys.

sysr = minreal(sys,tol)specifies the tolerance used for state elimination or pole-zero cancellation. The default value istol = sqrt(eps)and increasing this tolerance forces additional cancellations.

[sysr,u] = minreal(sys,tol)returns, for state-space modelsys, an orthogonal matrixUsuch 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,minrealdisplays a message indicating the number of states removed from a state-space modelsys.

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

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

To cancel the pole-zero pair ats= 1, type

cloopmin = minreal(cloop)

This command produces the following result.

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

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.

Alternative Functionality

应用程序

减速器模型

Live Editor Task

Reduce Model Order

Version History

Introduced before R2006a