Discover MakerZone

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

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

Performing a model order reduction including initial conditions

Asked by Richard on 19 Sep 2011

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)

2 Comments

Richard on 18 Jul 2012

To answer my own question:

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

Richard: Thanks for coming back to the forum with your answer. Could you perhaps post this as an answer instead of as a comment. Feel free to accept your own answer.

Richard

1 Answer

Answer by Richard on 26 Feb 2013
Accepted answer

To answer my own question:

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

0 Comments

Richard

Contact us