1、自动控制控制系统时域呼应的仿真及分析2014-2015 学年第 1 学期 院 别: 控制工程学院 课程名称: 自动控制原理 实验名称: 控制系统时域响应的仿真及分析 实验教室: 指导教师: 郭德全 小组成员(姓名,学号): 实验日期: 2014 年 10 月 11 日 评 分:一、实验目的:1、学习并掌握利用MATLAB编程平台进行控制系统传递函数仿真的方法。2、通过仿真实验研究并总结MATLAB的一些基本操作。 3、练习课本书上第二章与第三章中的计算机仿真部分。二、实验任务及要求: 实验任务:熟悉一些MATLAB在控制系统中的基本运用。测试以下内容:1. 例2.15 传递函数,利用MATLA
2、B,计算G(s)的零点和极点、H(s)的特征方程以及商G(s)/H(s),在复平面上得到G(s)/H(s)的零-极点图。2. 例2.16 串联联接的框图,熟悉series,parallel,feedback等函数3. 例2.19 多回路化简, 例2.20 电力牵引电机控制。4. 例4.2 速度控制系统,5. 例4.3 隧道钻机根据实验结果,总结各自的响应规律。实验要求:以上仿真及图形绘制全部采用MATLAB平台编程完成。 三、涉及实验的相关情况介绍(包含实验软件、实验设备、实验方案设计等情况): 本次试验采用matlab软件仿真,所有试验均为书面例子,即验证性试验。熟悉matlab的各个命令,
3、学会利用matlab计算机辅助设备仿真。 四、实验结果(含实验仿真程序、仿真曲线、数据记录表格及实验规律分析与总结等,可附页):(实验一)例2.15G(s)的零点和极点: H(s)的特征方程: z = num/den = 0 + 0.4082i s2 + 3 s + 2 0 - 0.4082i - s3 + 3 s2 + 4 s + 12 G(s)/H(s)的商: num/den = 6 s5 + 18 s4 + 25 s3 + 75 s2 + 4 s + 12 - s5 + 6 s4 + 14 s3 + 16 s2 + 9 s + 2 复平面上G(s)/H(s)的零-极点图:代码如下:num
4、g=6 0 1;deng=1 3 3 1;z=roots(numg)n1=1 1;n2=1 2;d1=1 2*i;d2=1 -2*i;d3=1 3;numh=conv(n1,n2);denh=conv(d1,conv(d2,d3);printsys(numh,denh)num=conv(numg,denh);den=conv(deng,numh);printsys(num,den)pzmap(num,den)title(Pole-Zero Map)(实验二)例2.16简化框图串联:(series) 简化框图并联:(parallel)num/den = num/den = s + 1 500 s
5、3 + 500 s2 + s + 2 - - 500 s3 + 1000 s2 500 s3 + 1000 s2 简化框图计算闭环传递函数一(cloop): 简化框图计算闭环传递函数二:(feedback)num/den = num/den = s + 1 s + 2 - - 500 s3 + 1000 s2 + s + 1 500 s3 + 1000 s2 + s + 1代码如下:numg=1;deng=500 0 0;numh=1 1;denh=1 2;num,den=series(numg,deng,numh,denh);printsys(num,den) nump,denp=paral
6、lel(numg,deng,numh,denh);printsys(nump,denp) numc,denc=cloop(num,den,-1);printsys(numc,denc) numf,denf=feedback(numg,deng,numh,denh,-1);printsys(numf,denf)(实验三)例2.19多回路闭环传递函数化简:num/den = s5 + 4 s4 + 6 s3 + 6 s2 + 5 s + 2 - 12 s6 + 205 s5 + 1066 s4 + 2517 s3 + 3128 s2 + 2196 s + 712代码如下:n1=1;d1=1 10;
7、n2=1;d2=1 1;n3=1 0 1;d3=1 4 4;n4=1 1;d4=1 6;nh1=1 1;dh1=1 2;nh2=2;dh2=1;nh3=1;dh3=1;ng1=conv(nh2,d4);dg1=conv(dh2,n4);ng2,dg2=series(n3,d3,n4,d4);ng3,dg3=feedback(ng2,dg2,nh1,dh1,+1);ng4,dg4=series(n2,d2,ng3,dg3);ng5,dg5=feedback(ng4,dg4,ng1,dg1);ng6,dg6=series(n1,d1,ng5,dg5);num,den=cloop(ng6,dg6,-
8、1);printsys(num,den)零极点对消:(minreal)num/den = 0.083333 s4 + 0.25 s3 + 0.25 s2 + 0.25 s + 0.16667 - s5 + 16.0833 s4 + 72.75 s3 + 137 s2 + 123.6667 s + 59.3333代码如下:deng=12 205 1066 2517 3128 2196 712;num,den=minreal(numg,deng);1 pole-zero(s) cancelledprintsys(num,den)(实验三)例2.20电力牵引电机控制传递函数化简:num/den =
9、5400 - 20.5 s + 5421.5系统阶跃step响应:代码如下:n1=10;d1=1 1;n2=1;d2=20.5;n3=540;d3=1;n4=0.1;d4=1;num1,den1=series(n1,d1,n2,d2);num2,den2=feedback(num1,den1,n4,d4,-1);printsys(num2,den2) num3,den3=series(n3,d3,num2,den2);num,den=cloop(num3,den3,-1);printsys(num,den) num=5400;den=2 2.5 5402;t=0:0.005:3;y,x,t=s
10、tep(num,den,t);plot(t,y),gridxlabel(Timesec)ylabel(Wheel velocity)(实验四)例4.2 速度控制系统速度控制系统传递函数:(开环) 系统稳态误差Yo:(开环)num/den = ans = -1 -0.6666 - 2 s + 1.5开环系统在输入Va(s)=0,对阶跃干扰的响应曲线:在输入为零的(即预期输出响应为零)的情况下,干扰响应的终值就是系统的稳态误差。代码如下:Ra=1;Km=10;J=2;b=0.5;Kb=0.1;num1=1;den1=J,b;num2=Km*Kb/Ra;den2=1;num,den=feedback
11、(num1,den1,num2,den2);%num=-num;printsys(num,den) %yo,x,t=step(num,den);plot(t,yo),gridxlabel(timesec),ylabel(speed)title(Open-loop Disturbance Step Response)%yo(length(t)速度控制系统传递函数:(闭环) 速度控制系统稳态误差Yc之比:(闭环)num/den = ans = -1 -0.0018 - 2 s + 541.5 闭环系统对阶跃干扰的响应曲线:由上图分析可知,引入负反馈已明显减小了干扰对输出的影响。这说明闭环反馈系统具
12、有噪声抑制特性。代码如下:Ra=1;Km=10;J=2;b=0.5;Kb=0.1;Ka=54;Kt=1;num1=1;den1=J,b;num2=Ka*Kt;den2=1;num3=Kb;den3=1;num4=Km/Ra;den4=1;num5,den5=parallel(num2,den2,num3,den3);num6,den6=series(num5,den5,num4,den4);num,den=feedback(num1,den1,num6,den6);%num=-num;printsys(num,den) %yc,x,t=step(num,den);plot(t,yc),grid
13、xlabel(timesec),ylabel(speedrad/sec)title(Close-loop Disturbance Step Response)%yc(length(t)(实验五)例4.3 英吉利海峡海底隧道钻机 系统的传递函数:(增益K=100) 系统的传递函数:(增益K=20)num/den = num/den = 11 s + 100 11 s + 20 - - s2 + 12 s + 100 s2 + 12 s + 20增益K对瞬态响应的影响:(阶跃输入)由图可看出,在相同条件下,随着K值的减小,超调量也将减小,而调节时间将增大。代码如下:numg=1;deng=1 1
14、0;K1=100;K2=20;num1=11 K1;num2=11 K2;den=0 1;%n1,d1=series(num1,den,numg,deng);n2,d2=series(num2,den,numg,deng);n3,d3=cloop(n1,d1);n4,d4=cloop(n2,d2);%t=0:0.01:2.0;y1,x,t=step(n3,d3,t);y2,x,t=step(n4,d4,t);subplot(211),plot(t,y1),title(Step Response for K=100)xlabel(timesec),ylabel(y(t),gridsubplot(
15、212),plot(t,y2),title(Step Response for K=20)xlabel(timesec),ylabel(y(t),grid增益K对瞬态响应的影响:(阶跃干扰)增加K值将减小单位阶跃干扰的稳态响应Y(t)的幅值。代码如下:numg=1;deng=1 1 0;K1=100;K2=20;num1=11 K1;num2=11 K2;den=0 1;%n1,d1=feedback(numg,deng,num1,den);n2,d2=feedback(numg,deng,num2,den);%t=0:0.01:2.5;y1,x,t=step(n1,d1,t);y2,x,t=
16、step(n2,d2,t);subplot(211),plot(t,y1),title(Disturbance Response for K=100)xlabel(timesec),ylabel(y(t),gridsubplot(212),plot(t,y2),title(Disturbance Response for K=20)xlabel(timesec),ylabel(y(t),grid系统灵敏度与增益K:num/den =s ( s + 1 )-s ( s + 12 ) + K对象变化时系统的灵敏度:由上面实验可知,减小K值可以减小超调量,增加K值可以更好地抑制噪声。系统灵敏度和近似
17、灵敏度相差不大。但超出一定量后,近似灵敏度将不再适用。代码如下:K=20;num=1 1 0;den=1 12 K;w=logspace(-1,3,200);s=w*i;n=s.2+s;d=s.2+12*s+K;S=n./d;n2=s;d2=K;S2=n2./d2;%subplot(211);plot(real(S),imag(S)title(System Sensitivity to Plant Variations)text(Interpreter,latex,String,. $S(s)=fracs(s+1)s2+12s+K$,Position,.2 .4,FontSize,12) xl
18、abel(Real(S),ylabel(imag(S),gridsubplot(212),loglog(w,abs(S),w,abs(S2)text(Interpreter,latex,String,. $S(s)approx fracsK$,Position,102 50,FontSize,12) xlabel(wrad/sec),ylabel(Abs(S),grid五、实验总结:(含建议、收获等)本次试验让我进一步学习到matlab的相关知识,掌握了一些matlab的基本用法,比如series,parallel,cloop,feedback,minreal,frac.approx等命令的用法,学会了利用计算机仿真来进行自动控制实验的对比。只有试验过,才会体会到matlab数学、设计、仿真、编程等功能的强大。通过它我开始了解到自动控制这门课程的趣味所在。虽然在学习过程中我遇到了很多的不懂,比如在仿真过程中,很多命令不会用,也不知道正确的书写格式,导致仿真瘫痪。但是不断的钻研和请教让我发现,原来自动控制也可以不用想象中的那么无聊乏味,也让我认识到matlab也不是想象中那么神秘。我相信在以后的学习中它会帮助我建立起对自动控制的喜爱。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1