北理工:自动控制实验实验报告汇总(共33页).doc
精选优质文档-倾情为你奉上控制理论基础实验班级:学号:姓名:付予实验时间:周五下午7、8节指导教师:范哲意实验一:控制系统的模型建立一、实验目的1. 掌握利用MATLAB 建立控制系统模型的方法。2. 掌握系统的各种模型表述及相互之间的转换关系。3. 学习和掌握系统模型连接的等效变换。二、实验原理1系统模型的MATLAB描述1)传递函数(TF)模型2)零极点增益(ZPK)模型3)状态空间(SS)模型4)三种模型之间的转换2. 系统模型的连接在实际应用中,整个控制系统是由多个单一的模型组合而成,基本的组合方式有串联连接、并联连接和反馈连接。三、实验内容1. 已知控制系统的传递函数如下试用MATLAB 建立系统的传递函数模型、零极点增益模型及系统的状态空间方程模型,并绘制系统零极点图。实验代码:专心-专注-专业>> num=2,18,40;>> den=1,5,8,6;>> gtf=tf(num,den)>> gzpk=zpk(gtf)>> gss=ss(gtf)>> pzmap(gzpk)>> grid on实验结果:传递函数模型:gtf = 2 s2 + 18 s + 40 - s3 + 5 s2 + 8 s + 6零极点增益模型:gzpk = 2 (s+5) (s+4) - (s+3) (s2 + 2s + 2)状态空间方程模型:gss = a = x1 x2 x3 x1 -5 -2 -1.5 x2 4 0 0 x3 0 1 0 b = u1 x1 4 x2 0 x3 0 c = x1 x2 x3 y1 0.5 1.125 2.5 d = u1 y1 0 零极点图形:2.已知控制系统的状态空间方程如下试用MATLAB 建立系统的传递函数模型、零极点增益模型及系统的状态空间方程模型,并绘制系统零极点图。实验代码:>> A=0 1 0 0;0 0 1 0;0 0 0 1;-1 -2 -3 -4;>> B=0;0;0;1;>> C=10 2 0 0;>> D=0>> Gss=ss(A,B,C,D)>> Gtf=tf(Gss)>> Gzpk=zpk(Gss)>> pzmap(Gzpk)>> grid on实验结果:系统状态空间方程:a = x1 x2 x3 x4 x1 0 1 0 0 x2 0 0 1 0 x3 0 0 0 1 x4 -1 -2 -3 -4 b = u1 x1 0 x2 0 x3 0 x4 1 c = x1 x2 x3 x4 y1 10 2 0 0 d = u1 y1 0 传递函数模型: 2 s + 10-s4 + 4 s3 + 3 s2 + 2 s + 1 零极点增益模型:Zero/pole/gain: 2 (s+5)-(s+3.234) (s+0.6724) (s2 + 0.0936s + 0.4599) 零极点图:3.已知三个系统的传递函数分别为试用MATLAB 求上述三个系统串联后的总传递函数。实验代码:>> num1=2,6,5;>> den1=1,4,5,2;>> num2=1,4,1;>> den2=1,9,8,0;>> z=-3,-7;>> p=-1,-4,-6;>> k=5;>> g1=tf(num1,den1);>> g2=tf(num2,den2);>> g3=zpk(z,p,k);>> g=g1*g2*g3实验结果:总传递函数:g= 10 s6 + 170 s5 + 1065 s4 + 3150 s3 + 4580 s2 + 2980 s + 525-s9 + 24 s8 + 226 s7 + 1084 s6 + 2905 s5 + 4516 s4 + 4044 s3 + 1936 s2 + 384 s4.已知如图E2-1 所示的系统框图试用MATLAB 求该系统的闭环传递函数。编写程序代码:>> num1=1;>> den1=1,1;>> num2=1;>> den2=0.5,1;>> num3=3;>> den3=1,0;>> num4=1;>> den4=0.5,1;>> g1=tf(num1,den1);>> g2=tf(num2,den2);>> g3=tf(num3,den3);>> g4=tf(num4,den4);>> g=feedback(g1+g2)*g3,g4)实验结果: 2.25 s2 + 7.5 s + 6-0.25 s4 + 1.25 s3 + 2 s2 + 5.5 s + 65.已知如图E2-2 所示的系统框图试用MATLAB 求该系统的闭环传递函数。实验代码:>> num1=10;>> den1=1,1;>> num2=2;>> den2=1,1,0;>> num3=1,3;>> den3=1,2;>> num4=5,0;>> den4=1,6,8;>> g1=tf(num1,den1);>> g2=tf(num2,den2);>> g3=tf(num3,den3);>> g4=tf(num4,den4);>> t1=feedback(g2,g3,1);>> t=feedback(g1*t1,g4)实验结果:t = 20 s3 + 160 s2 + 400 s + 320 - s6 + 10 s5 + 35 s4 + 44 s3 + 82 s2 + 116 s 484、 实验总结及感想1. 掌握用三种传函模型来表示一个G(s),分别为:传递函数(TF)模型、零极点增益(ZPK)模型、状态空间(SS)模型,以及三种模型之间的相互转化。2. 三种模型应以传函形式选择最优模型。实验 2 控制系统的暂态特性分析一、 实验目的1. 学习和掌握利用MATLAB 进行系统时域响应求解和仿真的方法。2. 考察二阶系统的时间响应,研究二阶系统参数对系统暂态特性的影响。二、实验原理1. 系统的暂态性能指标控制系统的暂态性能指标常以一组时域量值的形式给出,这些指标通常由系统的单位阶跃响应定义出来,这些指标分别为:(1)延迟时间:响应曲线首次到达稳态值的50%所需的时间。(2)上升时间:响应曲线从稳态值的10%上升到90%所需要的时间长,对于欠阻尼系统,通常指响应曲线首次到达稳态值所需的时间。(3)峰值时间 :响应曲线第一次到达最大值的时间。(4)调整时间:响应曲线开始进入并保持在允许的误差(±2%或±5%)范围内所需要的时间。(5)超调量:响应曲线的最大值和稳态值之差,通常用百分比表示其中y(t)为响应曲线。在MATLAB 中求取单位阶跃响应的函数为step,其使用方法如下step(sys) 在默认的时间范围内绘出系统响应的时域波形step(sys,T) 绘出系统在0 T 范围内响应的时域波形step(sys,ts:tp:te) 绘出系统在ts te 范围内,以tp 为时间间隔取样的响应波形y,t = step() 该调用格式不绘出响应波形,而是返回响应的数值向量及其对应的时间向量。系统的暂态性能指标可以根据上述定义,在响应曲线上用鼠标读取关键点或通过搜索曲线对应的数值向量中关键点来确定。2.LTI View工具在MATLAB 中提供了线性是不变系统仿真的工具LTI Viewer,可以方便地观察系统的响应曲线和性能指标。在命令窗口中键入ltiview 即可启动LTI Viewer。这里简要介绍LTIViewer 工具(如图2-1 所示)的使用方法。图2-1 LTI Viewer工具运行界面1)【File】菜单Import 选项:可以从Workspace 或MAT 文件中导入系统模型。Export 选项:将当前窗口中的对象模型保存到Workspace 或文件中。Toolbox preferences 选项:属性设置功能,可以设置控制系统中得各种属性值。Page Setup 选项:页面设置功能,可以对打印输出和显示页面进行设置。2)【Edit】菜单Plot Configuration 选项:对显示窗口及显示内容进行配置。Line Style 选项:线型设置功能,可以对输出响应曲线的线型进行设置。Viewer Preferences 选项:对当前窗口的坐标、颜色、字体、响应曲线的特性参数等属性进行设置。3)右键菜单在运行界面上点击鼠标右键,将会弹出一个弹出式菜单,菜单上个选项的功能分别为:Plot Types:选择绘制的系统曲线类型,可选的类型有单位阶跃响应、单位冲击响应、波特图、奈奎斯特图、零极点图等。System:选择需要仿真的系统。Characteristic:系统的性能指标选项。Grid:显示和关闭网格。Normalize:正常显示模式。Full View:满界面显示模式。Properties:性能编辑器选项,可以设置画面的标题、坐标标志、坐标范围、线型、颜色、性能指标等。三、实验内容1. 已知单位负反馈系统前向通道的传递函数为试用MATLAB 绘制系统的单位阶跃响应曲线。实验代码及结果如下:mum=1 2 0mum = 1 2 0 den=1 2 80; G1=tf(mum,den) Transfer function: s2 + 2 s-s2 + 2 s + 80 step(G1,10) step(G1,8)实验图形:分析:系统单位阶跃响应是跟据系统闭环传递函数绘制的,因此要根据开环传递函数(前向通路)及反馈类型找到系统闭环传递函数,再绘制阶跃响应曲线。由响应曲线可以看出,二阶单位负反馈系统单位阶跃响应的稳态值为1,系统震荡逐渐衰减。2. 已知二阶系统(1)= 0.6,= 5,试用MATLAB 绘制系统单位阶跃响应曲线,并求取系统的暂态性能指标。v=5; e=0.6; t=0:0.1:10; num=v2; den=1,2*e*v,v2; G=tf(num,den); step(G,8)图像如下:Tp=0.785s=9.48%Td=0.272sTr=0.554sTs=1.19s(2) =1 , 从0 变化到2,求此系统的单位阶跃响应。实验代码:w=1; s=0,0.1,0.2,0.5,1.0,1.5,2.0; t=0:0.1:15; num=w2; hold on for i=1:length(s)den=1,2*s(i)*w,w2sys=tf(num,den);step(sys,t) endhold offgrid ongtext('s=0');gtext('s=0.1');gtext('s=0.2');gtext('s=0.5');gtext('s=1.0'); gtext('s=1.5');gtext('s=2.0');实验图形:分析:从上图可知,随着从0增加到2,频响逐步减弱,在=0时候,是无阻尼振荡,表现为等幅振荡,不稳定;随着增大,进入欠阻尼状态,振荡减小。=1的时候为临界阻尼振荡,>1的时候是过阻尼状态,可以看到,此时已经没有振荡产生。再观察过渡时间ts,可以发现在0.4<<0.8的时候,ts很短,同时振荡也不严重,满足稳定性,所以我们在控制工程中一般希望二阶系统工作在这个区间内。(3) = 0.5, 从0 变化到1(0),求此系统的单位阶跃响应。实验代码:w=0.1,0.25,0.5,0.75,1.0; t=0:0.1:40; hold on for i=1:length(w) num=w(i)2den=1,2*s*w(i),w(i)2sys=tf(num,den);step(sys,t)endhold offgrid ongtext('w=0.1');gtext('w=0.25');gtext('w=0.5');gtext('w=0.75');gtext('w=1.0')实验结果:4.观察上述实验结果,分析这两个特征参数对系统暂态特性的影响。答:根据上述实验数据可以看出,阻尼比的增大使得上升时间tr峰值时间tp逐渐增加,超调量降低,峰值降低,震荡逐渐减小。调整时间ts减小,即进入稳态的时间变短。表明阻尼比的增大使得系统的快速性和稳定性都有所增强。的增大使得调整时间ts,上升时间tr,峰值时间tp都减小,而超调量,峰值等指标不变,表明的增大使得系统的快速性增强,但并没有增强系统的稳定性。四、实验总结与感想 1.通过MATLAB可以很直观对系统动态指标进行分析,十分方便。2.更加深入的理解五个动态指标,以及阻尼比和对这5个指标的影响。3.深化系统的开环、闭环区别。实验3 根轨迹分析一、实验目的1. 学习和掌握利用MATLAB 绘制根轨迹图的方法。2. 学习和掌握利用系统根轨迹图分析系统的性能。二、实验原理1. 根轨迹分析的MATLAB实现根轨迹是指系统某一参数变化时,闭环特征根在s平面上运动的轨迹。在MATLAB中,提供了用于根轨迹分析的专门函数。1)rlocus函数2)rlocfind函数3)sgrid函数2. Rltool工具三、实验内容1. 已知系统开环传递函数为(1) 使用MATLAB 绘制系统的根轨迹图。实验代码:den=-1,-3,-12 num=-5; h=1; G=zpk(num,den,h); sys=feedback(G,1); rlocus(sys)实验结果:(2) 计算两条分支进入右半平面和两条分支复数极点出发在实轴相交处的K 值。实验结果:由图可知:k=2.38p1=-2.12p2=-11.8(3)以区间-20,-1之间的值替代零点的位置,重新绘制根轨迹图,观察其对根轨迹图的影响。实验代码: a=-40:1:-5; h=1; hold on; for i=1:length(a);num=-5;den=-1,3,a(i);G=zpk(num,den,h);sys=feedback(G,1);rlocus(sys)end实验结果:结果分析:随着极点的变化,根轨迹的形状一直在改变,但是一直是始于开环极点,终于开环零点或无穷远处,并且开环极点数目不变,根轨迹的分指数也不变。2. 已知系统开环传递函数为(1) 使用MATLAB 绘制系统的根轨迹图。实验代码: num=-8; den=0,-2,-4+4*j,-4-4*j; h=1; G=zpk(num,den,h); sys=feedback(G,1); rlocus(sys)实验结果:(2) 计算两条分支进入右半平面和两条分支复数极点出发在实轴相交处的K 值。实验结果:由图可知:k1=52k2=2.07x103(3) 以区间-20,-1之间的值替代零点的位置,重新绘制根轨迹图,观察其对根轨迹图的影响。实验代码: a=-20:5:-1; h=1 hold on; for i=1:length(a)num=a(i);den=0,-2,-4+4*j,-4-4*j;G=zpk(num,den,h);sys=feedback(G,1);rlocus(sys);end实验结果:(3) 已知单位负反馈系统的开环传递函数为(1) 使用MATLAB 绘制系统的根轨迹图。实验代码: num=1; den=1 4 5 0;G=tf(num,den); sys=feedback(G,1);rlocus(sys)实验结果:(2) 分析使系统稳定的K值范围和使系统无超调的K值范围,并通过观察系统的单位阶跃响应曲线加以验证。实验代码:den=1 4 5 0; a=20:10:100; hold on;for i=1:length(a);num1=a(i);G1=tf(num1,den);sys1=feedback(G1,1);step(sys1)end b=1:2:20; hold on; for i=1:length(b)num=b(i);G2=tf(num,den);sys2=feedback(G2,1);step(sys2)end c=0.1:0.1:1; hold on; for i=1:length(c);num3=c(i);G3=tf(num3,den);sys3=feedback(G3,1);step(sys3)end实验结果:K>19,系统不稳定K>1,系统有超调K<1,系统无超调四、实验感想:1.本次实验可以通过两种方法完成,一种是利用MATLAB函数对所要求的指标进行设置并求取,另一种是可以通过Rltool工具进行直接调整求取。Rtool工具可以直接设置零极点,并且可以通过抓取点确定需要的指标,这些都大大的减小了编写代码的麻烦过程。2.本次实验研究了根轨迹的绘制方法,可以看到对根轨迹的主要影响就是开环系统的零极点,零极点的不同改变根轨迹的特性,并可以通过根轨迹判断稳定的临界值,在设计中很意义。实验四:系统的频率特性分析一、实验目的1.学习和掌握利用MATLAB绘制系统Nyquist图和Bode图的方法。2.学习和掌握利用系统的频率特性分析系统的性能。二、实验原理系统的频率特性是一种图解方法,分析运用系统的开环频率特性曲线,分析闭环系统的性能,如系统的稳态性能、暂态性能常用的频率特性曲线有Nyquist图和Bode图。在MATLAB中,提供了绘制Nyquist图和Bode图的专门函数。margin函数可以用于从频率响应数据中计算出幅度裕度、相位裕度及其对应的角频率。三、实验内容1. 已知系统开环传递函数为绘制系统的Nyquist 图,并讨论其稳定性。实验代码: p=-1,-2,-5; z=;k=1000; g=zpk(z,p,k)实验结果:结果分析:系统逆时针包围(-1,j0)0圈,顺时针包围2圈,而开环无正实部极点即P=0,所以不满足稳定判据,闭环不稳定。2. 已知系统的开环传递函数为(1) 绘制系统的零极点图,根据零极点分布判断系统的稳定性。实验代码:num=25/16,5/4,1;den=1;g1=tf(num,den);z=;p=0,0,-0.3,-15,-40;k=10;g2=zpk(z,p,k)*180;g=g2*g1;pzmap(g)grid onbode(g)margin(g)实验结果:结果分析:可以看到系统有一对虚轴上的极点,所以处于临界稳定状态。(2) 绘制系统Bode 图,求出幅度裕度和相位裕度,判断闭环系统的稳定性。实验结果:由图可知:相位裕度60.7幅值裕度为:-18.4dB,3. 已知系统的开环传递函数为分别判断当开环放大系数K=5和K=20时闭环系统的稳定性,并求出幅度裕度和相位裕度。实验代码:z=;p=0,-1,-10;k=5; %第二次时改为20g=zpk(z,p,k);bode(g);margin(g);实验结果:K=5:由图可知:相位裕度:13.6度幅值裕度:6.85db闭环稳定K=20:相位裕度:-9.66度幅值裕度:-5.19db闭环不稳定四、实验总结与感想1. 实际中闭环函数往往不好求得,但是只要通过系统的开环传递函数的耐奎斯特图和波特图就通过开环函数的特性便可以简便地判定闭环稳定性。2.临界考试,在复习理论知识的同时,这四次实验让我对课本知识有了更立体的了解,加深了一些概念,并且对MATLAB的使用有了一定精进,其中最大的收获就是学会使用“HELP”来向软件寻求帮助,很好很强大。3.最后感谢范老师的教导,祝范老师天天开心。