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 visualizzazione (ultimi 30 giorni)
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.

Risposta accettata

MathWorks Support Team
MathWorks Support Team il 27 Giu 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);

Più risposte (0)

Categorie

Scopri di più su Dynamic System Models in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by