1

我有这 3 个由 figure 函数生成的图和 1 个由 rlocus 生成的图,我想要做的是把这 4 个图放在同一个窗口中,就像 subplot 函数一样。我尝试使用它,但它没有用,而且由于默认属性,我更喜欢使用图形函数而不是绘图函数,所以现在我正在寻找一些替代方案。提前致谢。

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])
4

1 回答 1

1

我不确定您喜欢图形功能而不是绘图功能是什么意思。我的理解是情节使用活动或引用的数字。如果你想在一个窗口中有多个图表,这就是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])
于 2013-02-13T00:09:33.663 回答