⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 root01.m

📁 控制系统仿真中的根轨迹MATLAB仿真源码
💻 M
字号:
%绘制根轨迹图
lcwin=figure('Position',[120 49 513 491],'Name','根轨迹图','NumberTitle','off',...
      'MenuBar','none');
set(gcf,'Units','normalized','backingstore','off');
axes('position',[0 0 1 1]);
axis off;

dd=text(0.06,0.12,'系统稳定时K的范围');
set(dd,'fontsize',15,'color',[0 0 0],'fontname','宋体');
numedit=uicontrol(lcwin,'style','edit','units','normalized','position',[0.45 0.09 0.2 0.06],...
        'fontsize',17,'back',[1 1 1],'max',10);
dd1=text(0.67,0.12,'到');
set(dd1,'fontsize',15,'color',[0 0 0],'fontname','宋体');
numedit1=uicontrol(lcwin,'style','edit','units','normalized','position',[0.75 0.09 0.2 0.06],...
        'fontsize',17,'back',[1 1 1],'max',10);
dd=text(0.1,0.22,'T=');
set(dd,'fontsize',15,'color',[0 0 0],'fontname','宋体');
tedit=uicontrol(lcwin,'style','edit','units','normalized','position',[0.18 0.18 0.2 0.06],...
        'fontsize',15,'back',[1 1 1],'string',3);

%设置T值变化滑块
tslider=uicontrol(lcwin,'style','slider','units','normalized','position',[0.4 0.19 0.4 0.04],...
        'fontsize',15,'back',[1 1 1],'Min',0,'Max',300,'Value',3,...
        'CallBack',['t=get(tslider,''Value'');','set(tedit,''string'',[num2str(t)]);',...
        'subplot(Axes);',...
        'num=[1,t];','den=[1,3,2,0];','sys=tf(num,den);',...
        'rlocus(sys);','syms(''x'',''w'',''k'',''real'');','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);','set(numedit,''string'',min(k1));','set(numedit1,''string'',max(k1));']);
t=get(tslider,'value');
num=[1,t];
den=[1,3,2,0];


%设置绘图区域
Axes=axes('Position',[.15 .33 .8 .56]);

%绘制根轨迹图
sys=tf(num,den)
rlocus(sys)

%得出系统稳定时K的取值范围
syms('x','w','k','real')
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
ylabel('虚     轴');
xlabel('实     轴');
title('根轨迹图');

%实验分析菜单
h_menu1=uimenu(lcwin,'label','实验分析','call','analyze1')
h_menu2=uimenu(lcwin,'label','退出','call','close')

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -