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

2 次查看(过去 30 天)
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.

回答(1 个)

Birdman
Birdman 2018-4-14
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 个评论
Birdman
Birdman 2018-4-14
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 2018-4-14
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

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Classical Control Design 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by