Documentation |
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 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, A_{22} must be invertible in continuous time, and I – A_{22} must be invertible in discrete time.