十二控制系统的仿真模拟——matlab.docVIP

  • 1
  • 0
  • 约2.91千字
  • 约 7页
  • 2018-03-08 发布于天津
  • 举报
实验十二 控制系统的仿真模拟——MATLAB 在控制系统仿真中的应用(一) 实验内容: 建立仿真模拟如下: function kongzhi numg=1;deng=[1 1 2 23]; numf=1;denf=1; [num,den]=feedback(numg,deng,numf,deng,-1); %反馈连接 syst=tf(num,den); %生成传递函数的有理分式模型 sysz=zpk(syst); %生成传递函数零极点模型 [z p k]=tf2zp(num,den); %求出零极点和K syss=ss(sysz) %状态方程 Zero=roots(syst.num{1}); %求零点 Pole=roots(syst.den{1}); %求几点 求时域响应: function SecOderStepResponse num=[16]; zeta=[0 0.7 1 2]; t=0:0.1:10; y=zeros(length(t),4); %建立100*4的零矩阵 for i=1:4 den=[1 8*zeta(i) 16] sys=tf(num,den) y(:,i)=step(sys,t); end; plot(t,y(:,1),r,t,y(:,2),b,t,y(:,3),g,t,y(:,4),y); grid xlabel(time(s)) ylabel(step response) legend(zeta=0,zeta=0.7,zeta=1,zeta=2) 运行结果: 3. function gengui d1=[0.05 1]; d2=[0.05 0.2 1]; den1=conv(d1,d2); den=[den1 0]; num=[1]; rlocus(num,den) rlocfind(num,den) Select a point in the graphics window selected_point =-15.3673 + 0.1242i ans =34.6659 实验心得与收获: 1.对使用MATLAB对控制系统仿真的基本方法有一定的了解,对初次接触的函数和未知的函数会使用“帮助”去了解此函数的用法及功能。 2.懂得用那些函数去建立仿真模型,并求其时域响应和作出根轨迹图。 实验十三 频域分析——MATLAB 在控制系统仿真中应用(二) 超前校正 %没有校正时原系统的BODE图 function NonLeadCom n=[10]; d=[1 1 0]; bode(n,d),[h,r,wg,wc]=margin(n,d) %h为幅值裕度,r为相角裕度,wg为幅值交界频率,wc为截止频率 %有校正网络时BODE图 function LeaderCom n=[4.56 10]; d=conv([0.114 1],[1 1 0]); bode(n,d) bode(n,d),[h,r,wg,wc]=margin(n,d) %sys=tf(n,d);ltiview 求时域指标: %校正前后的阶跃响应曲线 function InTime n=[10]; d=conv([1],[1 1 0]); [n1,d1]=cloop(n,d); [y,x,t]=step(n1,d1); subplot(1,2,1) plot(t,y,t,1.05,t,1,t,0.95) title(校正前) n2=[4.56 10]; d2=conv([0.114 1], [1 1 0]); [n3,d3]=cloop(n2,d2); [y,x,t]=step(n3,d3); sys=tf(n3,d3); subplot(1,2,2) %step(n3,d3) plot(t,y,t,1.05,t,1,t,1,t,0.95) title(校正后) %[t,y]=ginput %rlocfind(x,y) 3. function XingCan1 num=input(请输入开环传递函数分子:\n); den=input(请输入开环传递函数的分母:\n); fprintf(你输入的开环传递函数为:\n); sysk=tf(num,den) ld=length(den); ln=length(num); for a=1:ld %保护开环的分母? denk(a)=den(a); end for k=0.1:0.1:1000 %计算K值 for i=0:ln-1 den(ld-i)=den(ld-i)+k*num(ln-i); end p=real(roots(den)); i

文档评论(0)

1亿VIP精品文档

相关文档