This is machine translation

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

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.


Eliminate states from state-space models


rsys = modred(sys,elim)
rsys = modred(sys,elim,'method')


rsys = modred(sys,elim) reduces the order of a continuous or discrete state-space model sys by eliminating the states found in the vector elim. The full state vector X is partitioned as X = [X1;X2] where X1 is the reduced state vector and X2 is discarded.

elim can be a vector of indices or a logical vector commensurate with X where true values mark states to be discarded. This function is usually used in conjunction with balreal. Use balreal to first isolate states with negligible contribution to the I/O response. If sys has been balanced with balreal and the vector g of Hankel singular values has M small entries, you can use modred to eliminate the corresponding M states. For example:

[sys,g] = balreal(sys)  % Compute balanced realization
elim = (g<1e-8)         % Small entries of g are negligible states
rsys = modred(sys,elim) % Remove negligible states

rsys = modred(sys,elim,'method') also specifies the state elimination method. Choices for 'method' include

  • 'MatchDC' (default): Enforce matching DC gains. The state-space matrices are recomputed as described in Algorithms.

  • 'Truncate': Simply delete X2.

The 'Truncate' option tends to produces a better approximation in the frequency domain, but the DC gains are not guaranteed to match.

If the state-space model sys has been balanced with balreal and the grammians have m small diagonal entries, you can reduce the model order by eliminating the last m states with modred.


collapse all

Consider the following continuous fourth-order model.

$$h(s) = \frac{{{s^3} + 11{s^2} + 36s + 26}}{{{s^4} + 14.6{s^3} +&#xA;74.96{s^2} + 153.7s + 99.65}}.$$

To reduce its order, first compute a balanced state-space realization with balreal.

h = tf([1 11 36 26],[1 14.6 74.96 153.7 99.65]);
[hb,g] = balreal(h);

Examine the gramians.

ans =

    0.1394    0.0095    0.0006    0.0000

The last three diagonal entries of the balanced gramians are relatively small. Eliminate these three least-contributing states with modred, using both matched-DC-gain and direct-deletion methods.

hmdc = modred(hb,2:4,'MatchDC');
hdel = modred(hb,2:4,'Truncate');

Both hmdc and hdel are first-order models. Compare their Bode responses against that of the original model.


The reduced-order model hdel is clearly a better frequency-domain approximation of h. Now compare the step responses.


While hdel accurately reflects the transient behavior, only hmdc gives the true steady-state response.


With the matched DC gain method, A22 must be invertible in continuous time, and IA22 must be invertible in discrete time.

More About

collapse all


The algorithm for the matched DC gain method is as follows. For continuous-time models


the state vector is partitioned into x1, to be kept, and x2, to be eliminated.


Next, the derivative of x2 is set to zero and the resulting equation is solved for x1. The reduced-order model is given by


The discrete-time case is treated similarly by setting


See Also


Introduced before R2006a

Was this topic helpful?