How to graph the closed-loop response of MIMO Control System?

5 visualizaciones (últimos 30 días)
Mr. NailGuy
Mr. NailGuy el 14 de Abr. de 2018
Comentada: Mr. NailGuy el 14 de Abr. de 2018
Hi everyone,
I have MIMO transfer function matrix G and controller K given
G = [10.014/(1+15.021*s) -0.5/(1+10.014*s); 0.5/(1+5.007*s) 5.007/(1+20.028*s)]
K= k*eye(2)
How would I plot the step response and bode plot of the closed loop system with a unity feedback gain as attached in the picture? I used the code below but I have doubts if this is as straight forward as this.
CL = feedback(G*K,eye(2))
step(CL)
bode(CL)
Would be very glad to hear your response on this.

Respuestas (1)

Birdman
Birdman el 14 de Abr. de 2018
Actually what you did to obtain closed loop forms is wrong. I suggest you to obtain them in a for loop separately as follows:
s=tf('s');
k=1;
G = [10.014/(1+15.021*s) -0.5/(1+10.014*s); 0.5/(1+5.007*s) 5.007/(1+20.028*s)];
for i=1:size(G,1)
for j=1:size(G,2)
CL(i,j)=feedback(G(i,j)*k,1);
end
end
figure(1);
step(CL);
figure(2);
bode(CL);
This gives the correct closed loop forms and plots the correct step responses and Bode plots.
  7 comentarios
Birdman
Birdman el 14 de Abr. de 2018
If you explicitly provide gains for the systems, then you need to define k as a matrix as well, as follows:
k=[1 -1;1 1];
and also a change in for loop,
CL(i,j)=feedback(G(i,j)*k(i,j),1);
with this, you will provide negative feedback for your unstable plant. Hope this answers your question.
Mr. NailGuy
Mr. NailGuy el 14 de Abr. de 2018
Hi Birdman, my gain K is equals to k*eye(2) where k is a scalar (1,5,10,etc.) So the gain K is always a diagonal matrix. Thanks

Iniciar sesión para comentar.

Categorías

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

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by