Main Content


Structural pole/zero cancellations


msys = sminreal(sys)


msys = sminreal(sys) eliminates the states of the state-space model sys that don't affect the input/output response. All of the states of the resulting state-space model msys are also states of sys and the input/output response of msys is equivalent to that of sys.

sminreal eliminates only structurally non minimal states, i.e., states that can be discarded by looking only at hard zero entries in the A, B, and C matrices. Such structurally nonminimal states arise, for example, when linearizing a Simulink® model that includes some unconnected state-space or transfer function blocks.


Suppose you concatenate two SS models, sys1 and sys2.

sys = [sys1,sys2];

This operation is depicted in the diagram below.

If you extract the subsystem sys1 from sys, with


all of the states of sys, including those of sys2 are retained. To eliminate the unobservable states from sys2, while retaining the states of sys1, type



The model resulting from sminreal(sys) is not necessarily minimal, and may have a higher order than one resulting from minreal(sys). However, sminreal(sys) retains the state structure of sys, while, in general, minreal(sys) does not.

Alternative Functionality

Live Editor Task

Reduce Model Order

Introduced before R2006a