📄 root.m
字号:
%绘制根轨迹图
disp('开环传递函数G(s)为:')
printsys(num1,den1,'s');
disp('反馈传递函数H(s)为:')
printsys(num2,den2,'s');
lcwin=figure('Position',[120 49 513 491],'Name','180度根轨迹图','NumberTitle','off',...
'MenuBar','none');
axes('position',[0 0 1 1]);
axis off;
dd=text(0.06,0.14,'系统稳定时K的范围');
set(dd,'fontsize',15,'color',[0 0 0],'fontname','宋体');
numedit=uicontrol(lcwin,'style','edit','units','normalized','position',[0.45 0.1 0.2 0.1],...
'fontsize',17,'back',[1 1 1],'max',10);
dd1=text(0.67,0.14,'到');
set(dd1,'fontsize',15,'color',[0 0 0],'fontname','宋体');
numedit1=uicontrol(lcwin,'style','edit','units','normalized','position',[0.75 0.1 0.2 0.1],...
'fontsize',17,'back',[1 1 1],'max',10);
%设置绘图区域
axes('Position',[.15 .33 .8 .56]);
%绘制根轨迹图
sys1=tf(num1,den1)
sys2=tf(num2,den2)
sys3=series(sys1,sys2)
sys=feedback(sys1,sys2)
n1=num1(1,1)
n2=num2(1,1)
d1=den1(1,1)
d2=den2(1,1)
if n1<0&d1>0&n2>0&d2>0||d1<0&n1>0&n2>0&d2>0||n2<0&n1>0&d1>0&d2>0||d2<0&n1>0&d1>0&n2>0||...
n1>0&d1<0&n2<0&d2<0||d1>0&n1<0&n2<0&d2<0||n2>0&n1<0&d1<0&d2<0||d2>0&n1<0&d1<0&n2<0
msgbox('输入范围出错','警告','warn')
else
rlocus(sys3)
%得出当系统稳定时K的取值范围
syms('x','w','k','real')
num=conv(num1,num2)
den=conv(den1,den2)
n=poly2sym(k*num,x)
d=poly2sym(den,x)
f=n+d
g=w*i
h=compose(f,g)
r=real(h)
l=simplify(imag(h))
[k,w]=solve(r,l)
k1=sym2poly(k)
if min(k1)<0
set(numedit,'string',0)
else
set(numedit,'string',min(k1))
end
if max(k1)<0
set(numedit1,'string',inf)
else
set(numedit1,'string',max(k1))
end
end
ylabel('虚 轴');
xlabel('实 轴');
title('根轨迹图');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -