Performing a model order reduction including initial conditions

on 19 Sep 2011

Richard (view profile)

I've been attempting to reduce the order of a state space model, for example:

sys=ss(A,B,C,D)

sys_reduced=reduce(sys,10)

which works fine, but does anyone know how to calculate the initial conditions for this reduced system (assuming the initial system had initial conditions)

Richard

Richard (view profile)

on 18 Jul 2012

The function [ModelNew,g,T,Ti]=balreal(modelOld) gives a new model which has as many states as the old model BUT they are in decending order of importance. It also gives g which shows how important each state is and T which transforms the old model into the new WHICH CAN ALSO BE USED TO TRANSFORM THE INITIAL CONDITIONS, Ti is the reverse transform

newIntialConditions=T*OldIntialConditions;

modred can then be used to reduce the model order to whatever you want

ReducedModel=modred(BallencedModel,ReduceStatesTo:NumberOfStatesInOldModel);

The initial conditions must of course also be trimmed to the right number of states

http://www.mathworks.co.uk/help/toolbox/control/ref/balreal.html

Kaustubha Govind

on 18 Jul 2012

Products

Richard (view profile)

on 26 Feb 2013

The function [balancedModel,g,T,Ti]=balreal(modelOld) gives a new model which has as many states as the old model BUT they are in decending order of importance. It also gives g which shows how important each state is and T which transforms the old model into the new WHICH CAN ALSO BE USED TO TRANSFORM THE INITIAL CONDITIONS, Ti is the reverse transform

newIntialConditions=T*OldIntialConditions;

modred can then be used to reduce the model order to whatever you want

ReducedModel=modred(ballancedModel,ReduceStatesTo:NumberOfStatesInOldModel);

The initial conditions must of course also be trimmed to the right number of states

http://www.mathworks.co.uk/help/toolbox/control/ref/balreal.html

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi