Why does the index based connection for a MIMO system with a unity feedback loop differ in response with a signal name based system when using the function "connect"?

2 visualizaciones (últimos 30 días)
I am trying to create an equivalent feedback loop using index based connections for the MIMO system "T" designed with named connections in this example:
My script for the corresponding index based system is as follows:
%% With connection indices
blksys = append(C,G);
connections = [1 -3;2 -4;3 1;4 2];
T_conn = connect(blksys,connections,[1 2],[3 4]);
bode(T_conn,'g--')
However, the bode plot of the system T_conn differs from that of the system T (in red) at very low frequencies. Is this the right way to model index based interconnections and if so, why is the response different?

Respuesta aceptada

MathWorks Support Team
MathWorks Support Team el 31 de Mzo. de 2024 a las 0:00
Editada: MathWorks Support Team el 13 de Oct. de 2021
Inspection reveals that the only difference between T and T_conn is the state ordering. This can be traced back to:
blksys = append(C,G);
This puts the states of G last whereas they appears first in the system T. To eliminate the discrepancy, you make the following alterations to the connection index based system:
blksys = append(G,C);
connections = [1 3;2 4;3 -1;4 -2];
T_conn = connect(blksys,connections,[3 4],[1 2]);
While this produces the same response at lower frequencies, T_conn is no worse than T. To see a difference, we are observing the behavior at extremely low frequencies, but it turns out that both Tand T_conn have no accuracy at all at such frequencies, as evidenced by the following in say, the frequency band [1e-20 1e5]:
prescale(T)
This is due to the pole/zero cancellation at s=0 in G*C and the closed-loop system: You could try "minreal(T)" to get rid of this cancellation. Such cancellations give rise to a  0/0 expression near the zero frequency, which is extremely sensitive to rounding errors.
To summarize, there is nothing wrong with T_conn as computed, as the observed discrepancy is just a manifestation of the fundamental limit of accuracy for any finite-precision computation. You can safely proceed with the T_conn formula in the script.

Más respuestas (0)

Categorías

Más información sobre Get Started with Control System Toolbox en Help Center y File Exchange.

Productos


Versión

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by