Eliminate states from state-space models
rsys = modred(sys,elim)
rsys = modred(sys,elim,'method')
reduces the order of a continuous or discrete state-space model rsys
= modred(sys
,elim)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
.
With the matched DC gain method, A22 must be invertible in continuous time, and I – A22 must be invertible in discrete time.
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