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 visualización (últimos 30 días)
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.

Respuesta aceptada

MathWorks Support Team
MathWorks Support Team el 27 de Jun. de 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);

Más respuestas (0)

Categorías

Más información sobre Dynamic System Models en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by