画nyquis图的一个小编程技巧

开环传递函数G(s)=(10*K)/(s*(s+5)*(0.1*s+1)),当k分别为1 7.5  20时,画出对应的nyquist图

代码如下:

%plot nyquist of the control system open-loop transfer function G(s)=(10*K)/(s*(s+5)*(0.1*s+1));
K=[1 7.5 20];
den=conv([1 0],conv([1 5],[0.1 1]));
num=[0 0 0];
Re=zeros(89,3);
Im=zeros(89,3);
for i=1:3
    num(i)=10*K(i);
    [Re(:,i),Im(:,i)]=nyquist(num(i),den);
end
%plot(Re(:,1),Im(:,1),'r-', Re(:,2),Im(:,2),'g-', Re(:,3),Im(:,3),'b.');
%可以直接做图
plot(Re,Im);
%legend('k=1','k=7.5','k=20');
%指定图例的位置
legend({'k=1','k=7.5','k=20'},'Location','southwest');
v=[-20 1 -20 20];
axis(v);

可以先计算一个结果,根据结果创建一个合适的矩阵,将循环所有结果存进矩阵中,便于后期的画图和使用

posted @ 2024-07-28 11:42  叕叒双又  阅读(62)  评论(0)    收藏  举报