## Documentation Center |

Model order reduction

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

` rsys = modred(sys,elim)`
reduces the order of a continuous or discrete state-space model

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

Consider the continuous fourth-order model

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.

g'

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 *h*(*s*).

bodeplot(h,'-',hmdc,'x',hdel,'*')

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

stepplot(h,'-',hmdc,'-.',hdel,'--')

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

With the matched DC gain method, *A*_{22} must
be invertible in continuous time, and *I* – *A*_{22} must
be invertible in discrete time.

Was this topic helpful?