1、控制系统建模分析设计和仿真控制系统建模、分析、设计和仿真第5组自动化专业学生 韩小康指导老师 周景雷摘要 本次课程实践为设计两个控制器分别为最小拍无波纹和最小拍有波纹控制器。通过这次实践可以进一步对所学的计算机控制技术有进一步的了解,并对Matlab软件的操作有一定程度的熟悉,为以后的工作或研究作基础。MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。关键字:Matlab;计算机控制系统;建模;仿真Co
2、ntrol system modeling, analysis, design and simulation of group 5Student majoring in HanXiaokangTutor ZhouJingleiAbstract:The course practice to design two controllers respectively minimum corrugated controller without ripples and minimum pat. Through this practice can be further learned to have fur
3、ther understanding of computer control technology, and a certain degree of familiar to the operation of the Matlab software, the foundation for later work or study. MATLAB is short for Matrix lab (Matrix Laboratory), is produced by the American MathWorks company business mathematics software, used f
4、or algorithm development, data visualization, data analysis and numerical calculation of senior technical computing language and interactive environment, mainly including two most of MATLAB and Simulink.Key words: Matlab; The computer control system; Modeling; The simulation1 课程设计的性质、目的 本课程设计是信息学院自动
5、化专业开设的计算机仿真专业选修课的实践课。通过本课程的学习实践,要求学生掌握有关控制系统计算机仿真的基本概念、工具、原理、方法和步骤,培养和增强学生运用计算机仿真课程中所学知识,以MATLAB为工具对控制系统进行分析、设计和仿真的技能,加深理解所学知识,牢固掌握所学知识,提高运用所学知识解决实际问题的能力。2 MATLAB软件介绍1、基本功能MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有
6、效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FOR
7、TRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C+,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。2、基本应用MATLAB 产品族可以用来进行以下各种工作: (1)数值分析 (2)数值和符号计算 (3)工程与科学绘图 (4)控制系统的设计与仿真 (5)数字图像处理技术 (6)数字信号处理技术 (7)通讯系统设计与仿真 (8)财务与金融工
8、程 (9)管理与调度优化计算(运筹学) MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用MATLAB 函数集)扩展了MATLAB 环境,以解决这些应用领域内特定类型的问题。3 课程设计的内容1、求被控对象传递函数G(s)的MATLAB描述。输入:num=conv(968,conv(1 2,1 9);den=conv(1 0 0,conv(1 1,conv(1 4,1 8);T=0.05;sys=tf(num,den)显示结果:Transfer function: 968 s2 + 106
9、48 s + 17424-s5 + 13 s4 + 44 s3 + 32 s22、求被控对象脉冲传递函数G(z)。输入:Gz=c2d(Gs,0.02,zoh)显示结果:ransfer function:0.001132 z4 + 0.00226 z3 - 0.006126 z2 + 0.001831 z + 0.0009176- z5 - 4.735 z4 + 8.961 z3 - 8.473 z2 + 4.003 z - 0.7558 Sampling time: 0.023、转换G(z)为零极点增益模型并按z-1形式排列。输入:z,p,k=zpkdata(Gz)Gz=zpk(z,p,k,T
10、,variable,z-1)显示结果:z = 4x1 doublep = 5x1 doublek =0.0011 Zero/pole/gain:0.001132 z-1 (1+3.605z-1) (1-0.9802z-1) (1-0.8869z-1) (1+0.2586z-1)- (1-z-1)2 (1-0.9608z-1) (1-0.9048z-1) (1-0.8694z-1) Sampling time: 0.024、确定误差脉冲传递函数Ge(z)形式,满足单位加速度信号输入时闭环稳态误差为零和实际闭环系统稳定的要求。syms z a0 a1 a2 b0 b1Gez= (1-z-1)3*(
11、b0+b1*z-1)5、确定闭环脉冲传递函数Gc(z)形式,满足控制器Dy(z)可实现、最少拍和实际闭环系统稳定的要求。输入:Gcz=z-1*(1+3.605*z-1)*(a0+a1*z-1+a2*z-2)结果:Gcz =1/z*(1+721/200/z)*(a0+a1/z+a2/z2)6、根据4、5、列写方程组,求解Gc(z)和Ge(z)中的待定系数并最终求解Gc(z)和Ge(z) 。7、求针对单位加速度信号输入的最少拍有波纹控制器Dy(z)并说明Dy(z)的可实现性。8、用程序仿真方法分析加速度信号输入时闭环系统动态性能和稳态性能。输入:f1=subs(Gez,z,1)f2=subs(di
12、ff(Gez,1),z,1)f3=subs(diff(Gez,2),z,1) b0j,b1j=solve(f1,f2,f3)Gcz=z-1*(1+3.605*z-1)*(a0+a1*z-1+a2*z-2)f1=subs(Gcz,z,1)-1f2=subs(diff(Gcz,1),z,1)f3=subs(diff(Gcz,2),z,1)a0j,a1j,a2j=solve(f1,f2,f3)结果:f1 =921/200*a0+921/200*a1+921/200*a2-1f2 =-821/100*a0-2563/200*a1-871/50*a2f3 =2363/100*a0+2463/50*a1+
13、841/10*a2a0j =878529200/781229961a1j =-1115305600/781229961a2j =406424600/781229961Gcz=1/z*(1+721/200/z)*(878529200/781229961-1115305600/781229961/z+406424600/781229961/z2)Gez =(1-1/z)3*(1-b0/z)f4 = 0f5 =-406424600/374805361-156245992200/270234665281*b0b0j =-1465160683/781229961所以:Gez =(1-1/z)3*(1+1
14、465160683/781229961/z)Gcz=1/z*(1+721/200/z)*(878529200/781229961-1115305600/781229961/z+406424600/781229961/z2)Dyz=4611686018427387904/5220428572859803*(878529200/781229961-1115305600/781229961/z+406424600/781229961/z2)/(1-4901/5000/z)/(1-8869/10000/z)/(1+1293/5000/z)/(1-1/z)*(1-1201/1250/z)*(1-1131
15、/1250/z)*(1-4347/5000/z)/(1+1465160683/781229961/z)9、用图形仿真方法(Simulink)分析单位加速度信号输入时闭环系统动态性能和稳态性能。输入:N,D=numden(simplify(Gcz);numc=sym2poly(N)denc=sym2poly(D)N,D=numden(simplify(Guz);numu=sym2poly(N)denu=sym2poly(D)t=0:0.02:1u=t.*t/2hold ondlsim(numc,denc,u)dlsim(numu,denu,u)hold offN,D=numden(simplif
16、y(Dyz);numdy=sym2poly(N)dendy=sym2poly(D)有波纹最小拍程序仿真截图:有波纹最小拍图形仿真截图:闭环系统输出Gcz图形仿真结果:控制器输出U(z)图形仿真图:10、确定误差脉冲传递函数Ge(z)形式,满足单位速度信号输入时闭环稳态误差为零和实际闭环系统稳定的要求。Gez =(1-1/z)2*(e0+e1/z+e2/z2+e3/z3+e4/z4)11、确定闭环脉冲传递函数Gc(z)形式,满足控制器Dw(z)可实现、无波纹、最少拍和实际闭环系统稳定的要求。Gez=(1-z-1)2*(b0+b1*z-1+b2*z-2+b3*z-3+b4*z-4)12、根据10、
17、11、列写方程组,求解Gc(z)和Ge(z)中的待定系数并最终求解Gc(z)和Ge(z) 。输入:syms z a0 a1 b0 b1 b2 b3 b4Gez=(1-z-1)2*(b0+b1*z-1+b2*z-2+b3*z-3+b4*z-4)f1=subs(Gcz,z,1)-1f2=subs(diff(Gcz,1),z,1)a0j a1j=solve(f1,f2)A=double(a0j a1j)Gcz=subs(Gcz,a0 a1,A)Gez=(1-z-1)2*(b0+b1*z-1+b2*z-2+b3*z-3+b4*z-4)f3=subs(Gez,z,inf)-1f4=subs(Gez,z,
18、-3.427)-1f5=subs(Gez,z,0.9512)-1f6=subs(Gez,z,0.7408)-1f7=subs(Gez,z,-0.245)-1b0j b1j b2j b3j b4j=solve(f3,f4,f5,f6,f7)B=double(b0j b1j b2j b3j b4j)Gez=subs(Gez,b0 b1 b2 b3 b4,B)结果:Gez=(1-1/z)2*(1+4607117145708427/1099511627776/z+857326361880357/68719476736/z2-5728981633685343/549755813888/z3-760137
19、0565683995/2199023255552/z4)Gcz=5220428572859803/4611686018427387904/z*(1+721/200/z)*(1-4901/5000/z)*(1-8869/10000/z)*(1+1293/5000/z)/(1-1/z)2/(1-1201/1250/z)/(1-1131/1250/z)/(1-4347/5000/z)13、求针对单位速度信号输入的最少拍无波纹控制器Dw(z)并说明Dw(z)的可实现性。Gz=0.016808*z-1*(1+3.427*z-1)*(1-0.9512*z-1)*(1-0.7408*z-1)*(1+0.24
20、5*z-1)/(1-z-1)2/(1-0.9048*z-1)/(1-0.7788*z-1)/(1-0.7047*z-1)Guz=Gcz/GzDwz=Gcz/Gz/GezGcz=4844576162357971/288230376151711744/z*(1+3427/1000/z)*(1-1189/1250/z)*(1-463/625/z)*(1+49/200/z)*(-4545899597750647/274877906944+1195119780778763/68719476736/z)Gez=(1-1/z)2*(1+615657890023047/2199023255552/z+1796
21、608902133647/2199023255552/z2-71813391245365/137438953472/z3-6084857878461669/35184372088832/z4)Dwz=(-4545899597750647/274877906944+1195119780778763/68719476736/z)*(1-1131/1250/z)*(1-1947/2500/z)*(1-7047/10000/z)/(1+615657890023047/2199023255552/z+1796608902133647/2199023255552/z2-71813391245365/137
22、438953472/z3-6084857878461669/35184372088832/z4)14、用程序仿真方法分析单位速度信号输入时闭环系统动态性能和稳态性能。15、用图形仿真方法(Simulink)分析单位速度信号输入时闭环系统动态性能和稳态性能。N,D=numden(simplify(Gcz)numd=sym2poly(N)dend=sym2poly(D)N,D=numden(simplify(Guz)numi=sym2poly(N)deni=sym2poly(D)t=0:0.2:10u=thold ondlsim(numd,dend,u)dlsim(numi,deni,u)hold
23、 offN,D=numden(simplify(Dwz)numt=sym2poly(N)dent=sym2poly(D)无波纹最小拍程序仿真截图:无波纹最小拍图形仿真截图:无波纹最小拍闭环系统输出Gcz图形仿真结果:无波纹最小拍闭环系统数字控制器输出Guz图形仿真结果:16、根据8、9、14、15、的分析,说明有波纹和无波纹的差别和物理意义。有波纹和无波纹的差别在于有波纹控制器经过一定的采样周期之后,其输入跟踪输出,但其数字控制器的曲线会出现小的波动,该波动为波纹,而无波纹数字控制器D(z)的输出曲线经过一定采样周期之后会为一常数,不会产生波纹。五、参考文献1. 肖伟,刘忠.MATLAB程序设计与应用M.清华大学出版社,20052. 周润景.基于MATLAB与fuzzyTECH的模糊与神经网络设计M.电子工业出版社,20103. 陈超.MATLAB应用实例精讲-数学数值计算与统计分析篇M.电子工业出版社,20104. 田敏.案例解说MATLAB典型控制应用M.电子工业出版社,20095. 刘刚.MATLAB数字图像处理M.机械工业出版社,2010