1《控制系统仿真与CAD》实验指导书适用自动化、测控、电气、电控荷专业电气自动化系自动化教研室2011年2月2实验1:M函数的编写1.实验目的掌握在Matlab环境下编写并运行M函数的操作方法。2.实验内容对给定的二阶欠阻尼传递函数,编制一个函数程序,计算阶跃响应的特征参数:超调量б%、峰值时间Tp、上升时间Tr、过渡过程时间Ts(2%)。b=7500;a=[1,34.5,7500];3.实验步骤(1)开机后在Windows状态下,启动Matlab7.1环境;(2)MATLAB的Editor/Debugger窗口来编辑程序;(3)输入下列源程序:%mp:超调量,Tp:峰值时间,Tr:上升时间,Ts:调节时间function[mp,Tp,Tr,Ts]=exp1(num,den)t=0:0.005:1;y=step(num,den,t);plot(t,y);%求mp与TpN=length(t);yss=y(N);%yss:稳态值[ymax,i]=max(y);mp=(ymax-yss)*100/yss;Tp=t(i);%求Tryr1=0.1*yss;yr2=0.9*yss;i=1;whiley(i)yr1i=i+1;endt1=t(i);whiley(i)yr2i=i+1;endt2=t(i);Tr=t2-t1;%求Ts:调节时间symbol=0;%symbol:超标标志fori=1:1:Nforj=1:1:N-iif(abs(y(i+j)-yss)/yss0.02)symbol=1;end3endifsymbol==1symbol=0;elsebreak;endendTs=t(i);i=N;whileabs(y(i)-yss)/yss=0.02i=i-1;endTs=t(i);(4)把源程序以文件形式保存到MATLAB的Work子目录下;(5)调用编写的函数程序,运行源程序;(6)打印源程序清单,并将二阶欠阻尼系统性能指标的结果保存。实验2:运用SIMULINK对系统仿真1.实验目的掌握运用SIMULINK能力。2.实验内容如下图所示,生成系统结构图后,改变输入信号电平从1~6,其系统饱和环节的上下限为-1~1,将对这6种情况分别进行仿真并计算其超调量,将其绘制在同一张图中进行比较。在系统仿真的程序中,使用for循环命令。时间轴t=0:0.1:10。输入为Inport模块,输出分别到工作空间、示波器和Output模块中。饱和系统结构框图其中:51010)(,1)(2sssKssG3.实验步骤(1)开机后在Windows状态下,启动Matlab7.1环境;(2)打开SIMULINK,搭建系统结构框图,并保存为example.mdl;(3)MATLAB的Editor/Debugger窗口来编辑M文件,运用sim命令,对模型进行外部的仿真;(4)输入下列源程序:4t=[0:0.1:10]';mp=zeros(6,1);fori=1:6ut=[t,i*ones(size(t))];[tsim,x,ysim]=sim('example',10,[],ut);plot(tsim,ysim);grid,holdon,n=length(ysim);yss=ysim(n);mp(i)=(max(ysim)-yss)/yss*100;endholdoff,(5)把源程序以文件形式保存到MATLAB的Work子目录下;(6)运行源程序;(7)打印源程序清单,并保存图形。实验3:控制系统的时域和频域分析1.实验目的掌握绘制系统根轨迹图,对系统时域和频域的分析。2.实验内容对一个单位负反馈系统,绘制其Bode图和Nyquist图;绘制系统根轨迹图,判断开环增益K如何变化时,系统稳定,并分别绘制K变化系统阶跃响应;分析系统对斜坡响应的稳态误差。5.1,)2)(1(1)(kssssG3.实验步骤(1)开机后在Windows状态下,启动Matlab7.1环境;(2)MATLAB的Editor/Debugger窗口来编辑M文件;(3)输入下列源程序:%绘制Bode图K=1.5;numo=1;deno=[1320];figure(1);bode(K*numo,deno);grid;KG(s)+-r5%绘制奈奎斯特图figure(2);nyquist(K*numo,deno);%使用根轨迹法对于不同增益K的变化,分析系统稳定性和系统的阶跃响应figure(3);rlocus(numo,deno);K1=rlocfind(numo,deno)[cpole,Krange]=rlocus(numo,deno,[0:0.1:10]');[Krange,cpole]range_k=[0.2,3,6,8];t=[0:0.1:20]';y=zeros(length(t),4);fori=1:4[numc_i,denc_i]=cloop(range_k(i)*numo,deno);y(:,i)=step(numc_i,denc_i,t);endfigure(4);subplot(211);plot(t,y(:,1:2));grid;subplot(212);plot(t,y(:,3:4));grid;gtext('K=0.2'),gtext('K=3'),gtext('K=6'),gtext('K=8'),%系统对斜坡响应的稳态误差[numc,denc]=cloop(K*numo,deno);yramp=lsim(numc,denc,t,t);ess=t-yramp;figure(5);subplot(211);plot(t,t,t,yramp);grid;subplot(212);plot(t,ess);grid;(4)把源程序以文件形式保存到MATLAB的Work子目录下;(5)运行源程序;(6)打印源程序清单,并绘制图形。实验4:控制系统模型转换及稳定性判定1.实验目的掌握在Matlab环境下控制系统模型之间的转换及系统稳定性的判定。2.实验内容给定一个四阶系统的状态方程模型,要求判断系统的稳定性及系统是否为最小相位系统。61212126300478507216125617xxuyxu3.实验步骤(1)开机后在Windows状态下,启动Matlab7.1环境;(2)MATLAB的Editor/Debugger窗口来编辑M文件;(3)输入下列源程序:%系统描述A=[12-12;2630;47-8-5;7216];B=[-1001]';C=[-2561];D=7;%求系统的零极点[z,p]=ss2zp(A,B,C,D)%检验极点的实部;求取极点实部大于零的个数ii=find(real(p)0);n1=length(ii);%检验零点的实部;求取零点实部大于零的个数jj=find(real(z)0);n2=length(jj);%判断系统是否稳定if(n10)disp('Thesystemisunstable.')disp('Theunstablepolesare:')disp(p(ii))elsedisp('Thesystemisstable.')end%判断系统是否为最小相位系统if(n20)disp('Thesystemisanonminimalphaseone.')elsedisp('Thesyetemisaminimalphaseone.')end%绘制零极点图pzmap(p,z);(4)把源程序以文件形式保存到MATLAB的Work子目录下;(5)运行源程序;(6)打印源程序清单,并绘制给定的四阶系统模型的零极点图形。