Why does relative error model reduction using the BSTSCHMR and BSTSCHML functions in the Robust Control Toolbox 2.0.10 (R14) produce wrong results?

1 view (last 30 days)
I am using the Robust Control Toolbox to reduce my system model using BST relative error model reduction. However, I find that the resulting reduced order system found with the BSTSCHMR exhibit significant errors when compared with the original system.

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 27 Jun 2009
This phenomenon is a result of ill-conditioned system which causes numerical inaccuracies in the model reduction algorithm.
This is often a result of a nearly singular D matrix. In this case, adjustments to this D matrix may result in a better solution. However, this may distort the systems high frequency dynamics. This procedure is shown in the following code (variables "sys" and num_reduced_states must be defined in the workspace):
% With a system with a nearly singular D matrix
% Assume sys.d = 1e-5
sys1 = sys;
sys1.d = 1e-2; %this will disregard the higher frequency dynamics
[sysr1,aug,hsv] = bstschml(sys1,1,num_reduced_states);
sysr1a = sysr1;
sysr1a.d = sys.d; % put D back to original value
% Now compare the frequency response
bode(sys, sysr1, sysr1a);
As an alternative, if you have the Mu-Analysis and Synthesis Toolbox, you can first try rebalancing the system using the SRELBAL function before performing this model reduction. This would be done as follows:
[a,b,c,d] = ssdata(sys);
sysmat = pck(a,b,c,d);
[sysmatrb,sigrel] = srelbal(sysmat);
[a2,b2,c2,d2] = unpck(sysmatrb);
sys2 = ss(a2,b2,c2,d2);
[sysr2,aug,hsv] = bstschml(sys,1,num_reduced_states);
% Now compare the frequency response
bode(sys,sysr2);

More Answers (0)

Categories

Find more on Dynamic System Models in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!