由图形创建的图只在一个窗口中起作用

时间:2013-02-12 23:06:43

标签: matlab

我使用图形函数生成的这3个图和rlocus的1个图,我想要做的是将这4个图放在同一个窗口中,就像子图函数那样。我试图使用它,但它不起作用,我更喜欢使用数字函数而不是绘图功能,因为默认属性,所以现在我正在寻找一些替代品。提前谢谢。

num1=1;
den1=[1,3,3,1];
G=tf(num1,den1);
for Kp=[0.1:0.1:1]
    G_c=feedback(Kp*G,1);
    step(G_c);
    hold on
end
figure

Kp=1; 
s=tf('s');
for Ti=[0.7:0.1:1.5]
    Gc=Kp*(1+1/Ti/s); 
    G_c=feedback(G*Gc,1); 
    step(G_c); 
    hold on
end
figure

Ti=1; 
s=tf('s');
for Td=[0.1:0.2:2]
    Gc=Kp*(1+1/Ti/s+Td*s); 
    G_c=feedback(G*Gc,1); 
    step(G_c); 
    hold on
end
figure
rlocus(G,[0,15])

1 个答案:

答案 0 :(得分:1)

我不确定你的意思是你喜欢数字函数来绘制函数。我的理解是情节使用活动或引用的数字。如果你想在一个窗口中有多个图形,这就是subplot所做的。

这不是你想要的: Graphs displayed with subplot

使用子图:

subplot(2,2,1)
num1=1;
den1=[1,3,3,1];
G=tf(num1,den1);
for Kp=[0.1:0.1:1]
    G_c=feedback(Kp*G,1);
    step(G_c);
    hold on
end

subplot(2,2,2)
Kp=1; 
s=tf('s');
for Ti=[0.7:0.1:1.5]
    Gc=Kp*(1+1/Ti/s); 
    G_c=feedback(G*Gc,1); 
    step(G_c); 
    hold on
end

subplot(2,2,3)
Ti=1; 
s=tf('s');
for Td=[0.1:0.2:2]
    Gc=Kp*(1+1/Ti/s+Td*s); 
    G_c=feedback(G*Gc,1); 
    step(G_c); 
    hold on
end

subplot(2,2,4)
rlocus(G,[0,15])