《matlab最少拍有波纹控制器控制系统建模、分析、设计和仿真(共18页).doc》由会员分享,可在线阅读,更多相关《matlab最少拍有波纹控制器控制系统建模、分析、设计和仿真(共18页).doc(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上北京理工大学珠海学院课程设计任务书2010 2011 学年 第 2学期学生姓名: 专业班级: 08自动化1班 指导教师: 钟秋海 工作部门: 信息学院 一、课程设计题目控制系统建模、分析、设计和仿真本课程设计共列出10个同等难度的设计题目,编号为:0号题、1号题、2号题、3号题、4号题、5号题、6号题、7号题、8号题、9号题。学生必须选择与学号尾数相同的题目完成课程设计。例如,学号为8xxxxxxxxx2的学生必须选做2号题。二、课程设计内容(一)控制系统建模、分析、设计和仿真课题设计内容Dy(z)G(s)R(z)Y(z)+_U(z)E(z)最少拍有波纹控制系统Dw(
2、z)G(s)R(z)Y(z)+_U(z)E(z)最少拍无波纹控制系统2号题 控制系统建模、分析、设计和仿真设连续被控对象的实测传递函数为:用零阶保持器离散化,采样周期取0.1秒,分别设计一单位加速度信号输入时的最少拍有波纹控制器Dy(z)和一单位速度信号输入时的最少拍无波纹控制器Dw(z)。具体要求见(二)。(二)控制系统建模、分析、设计和仿真课题设计要求及评分标准【共100分】1、求被控对象传递函数G(s)的MATLAB描述。(2分)2、求被控对象脉冲传递函数G(z)。(4分)3、转换G(z)为零极点增益模型并按z-1形式排列。(2分)4、确定误差脉冲传递函数Ge(z)形式,满足单位加速度信
3、号输入时闭环稳态误差为零和实际闭环系统稳定的要求。(6分)5、确定闭环脉冲传递函数Gc(z)形式,满足控制器Dy(z)可实现、最少拍和实际闭环系统稳定的要求。(8分)6、根据4、5、列写方程组,求解Gc(z)和Ge(z)中的待定系数并最终求解Gc(z)和Ge(z) 。(12分)7、求针对单位加速度信号输入的最少拍有波纹控制器Dy(z)并说明Dy(z)的可实现性。(3分)8、用程序仿真方法分析加速度信号输入时闭环系统动态性能和稳态性能。(7分)9、用图形仿真方法(Simulink)分析单位加速度信号输入时闭环系统动态性能和稳态性能。(8分)10、确定误差脉冲传递函数Ge(z)形式,满足单位速度信
4、号输入时闭环稳态误差为零和实际闭环系统稳定的要求。(6分)11、确定闭环脉冲传递函数Gc(z)形式,满足控制器Dw(z)可实现、无波纹、最少拍和实际闭环系统稳定的要求。(8分)12、根据10、11、列写方程组,求解Gc(z)和Ge(z)中的待定系数并最终求解Gc(z)和Ge(z) 。(12分)13、求针对单位速度信号输入的最少拍无波纹控制器Dw(z)并说明Dw(z)的可实现性。(3分)14、用程序仿真方法分析单位速度信号输入时闭环系统动态性能和稳态性能。(7分)15、用图形仿真方法(Simulink)分析单位速度信号输入时闭环系统动态性能和稳态性能。(8分)16、根据8、9、14、15、的分析
5、,说明有波纹和无波纹的差别和物理意义。(4分)三、进度安排6月13至6月14: 下达课程设计任务书;复习控制理论和计算机仿真知识,收集资料、熟悉仿真工具;确定设计方案和步骤。6月14至6月16: 编程练习,程序设计;仿真调试,图形仿真参数整定;总结整理设计、仿真结果,撰写课程设计说明书。6月16至6月17: 完成程序仿真调试和图形仿真调试;完成课程设计说明书;课程设计答辩总结。四、基本要求1学生应按照课程设计任务书的要求独立分析、解决问题,按计划完成课程设计任务;2不得抄袭或找人代做,否则按考试作弊处理;3. 学生在完成课程设计时须提交不少于3000字课程设计说明书;说明书结构为:(1)封面,
6、(2)任务书,(3)摘要,(4)关键词,(5)目录,(6)正文,(7)参考文献; 教研室主任签名: 年 月 日摘要 本次课程的目的是让自动化的同学们学习并熟悉使用计算机软件Matlab6.5(部分同学是7.0的版本)去建模、分析、设计和仿真一个控制系统。控制系统中有的需要使用零阶保持器去将连续输入函数离散化,有的则要求使用一阶保持器,从而设计一单位加速度信号输入时的最少拍有波纹控制器Dy(z)和一单位速度信号输入时的最少拍无波纹控制器Dw(z)。在这个研究过程当中,同学们要先重温自动控制理论和计算机仿真两门关键学科,才能在使用matlab时减少许多不解与疑问。设计过程当中,需要将G(S)进去Z
7、变换,按要求实现Z-1形式的展开,以及设定能满足于最少拍数字无波纹(有波纹)控制器的Ge(Z)和Gc(Z),列出方程组,解出待定系数,再求得所需的数字控制器。得出的误差脉冲传递函数和闭环脉冲传递函数在后边工作中还需要进去多次调整,从而获得最佳表达形式。最后分别使用程序仿真方法和simulink去分析系统在加速度和速度两种输入信号下的动态性能和稳态特性,比较有波纹和无波纹的差别并理解物理意义。在输出的波形,理解曲线进入稳定所需的时间,即最小周期,一般是小于等于3T。程序仿真中注意对hold on和hold off两个指令的使用,否则对同时展示多个参数曲线有所影响。Simulink中选择正确适当的
8、程序框图拖入到新建的模型文件,执行对各部件的编辑,纠正程序框图中存在的错误,输出系统所求波形。关键词:仿真 建模 离散化 零阶保持器 波纹 最小拍 Z变换 待定系数 模型目录一、设计任务书-1二、摘要-4三、关键词-4四、关于Matlab与控制系统1.该仿真软件的特点-62.零阶保持器-63.最小拍数字控制器-6五、最小拍系统设计1.单位加速度输入有波纹-62.单位速度输入无波纹-7六、题目详解及程序指令-8七、原程序指令的运行结果-14八、课程设计的体会和发生的问题-16九、参考文献-17MATLAB7.0软件的特点:1) 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来
9、2) 具有完备的图形处理功能,实现计算结果和编程的可视化3) 友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握4) 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具零阶保持器:zero-order holder(ZOH),它的作用是在信号传递过程中,把第nT时刻的采样信号值一直保持到第(n+1)T时刻的前一瞬时,把第(n+1)T时刻的采样值一直保持到(n+2)T时刻,依次类推,从而把一个脉冲序列变成一个连续的阶梯信号。因为在每一个采样区间内连续的阶梯信号的值均为常值,亦即其一阶导数为零,故称为零阶保持器。最少拍数字控制器:最少拍,即让
10、控制器的输出在最少的周期内达到稳定。数字控制器,的一类,的核心部分,与系统中部分的元件、设备相连,该系统中的其他部分可能是数字的也可能是的。数字控制器通常是利用编程,如本次课程设计中使用的Matlab7.0,从而完成特定的控制。最小拍系统设计1.单位加速度有波纹M文件指令:num=668*conv(1 2,1 6);den=conv(1 0 0,conv(1 1,conv(1 5,1 8);gs=tf(num,den) %求得GSgz=c2d(gs,0.1,zoh) %用零阶保持器离散化,求得GZa b k=zpkdata(gz) %零极点增益模型gz=zpk(a,b,k,0.1,variab
11、le,z-1) %按Z-1展开syms z a0 a1 a2 b0gz=0.*z-1*(1+3.252*z-1)*(1-0.8187*z-1)*(1-0.5488*z-1)*(1+0.2281*z-1)/(1-z-1)2/(1-0.9048*z-1)/(1-0.6065*z-1)/(1-0.4493*z-1)Gcz=z-1*(1+3.252*z-1)*(a0+a1*z-1+a2*z-2)Gez=(1-z-1)3*(1+b0*z-1) %初步定出GezGcz形式f1=subs(Gcz,z,1)-1f2=subs(diff(Gcz,1),z,1)f3=subs(diff(Gcz,2),z,1)a0
12、j a1j a2j=solve(f1,f2,f3)A=double(a0j a1j a2j)f4=subs(Gez,z,-3.252)-1b0j=solve(f4)B=double(b0j) %解出待定系数Gez=subs(Gez,b0,B)Gcz=subs(Gcz,a0 a1 a2,A) %求得Gez和GczGuz=Gcz/gzDyz=Gcz/gz/Gez %求得DyzN,D=numden(simplify(Gcz);numc=sym2poly(N)denc=sym2poly(D)N,D=numden(simplify(Guz);numu=sym2poly(N)denu=sym2poly(D
13、)t=0:0.1:1u=t.*t/2hold ondlsim(numc,denc,u)dlsim(numu,denu,u)hold offN,D=numden(simplify(Dyz);numdy=sym2poly(N)dendy=sym2poly(D)2.单位加速度有波纹M文件指令:syms c0 c1 c2 c3 c4 d0 d1Gezw=(1-z-1)2*(c0+c1*z-1+c2*z-2+c3*z-3+c4*z-4) %初定Gezw和GczwGczw=z-1*(1+3.252*z-1)*(1-0.8187*z-1)*(1-0.6065*z-1)*(1-0.4493*z-1)*(d0+
14、d1*z-1)f6=subs(Gczw,z,1)-1f7=subs(diff(Gczw,1),z,1) d0j d1j=solve(f6,f7)Gczw=subs(Gczw,d0,d1,d0j,d1j) %求得Gczwf8=subs(Gezw,z,2)+subs(Gczw,z,2)-1f9=subs(Gezw,z,-3.773)-1f10=subs(Gezw,z,0.6703)-1f11=subs(Gezw,z,0.5488)-1f12=subs(Gezw,z,0.3679)-1c0j,c1j,c2j,c3j,c4j=solve(f8,f9,f10,f11,f12)Gezw=subs(Gezw
15、,c0,c1,c2,c3,c4,c0j,c1j,c2j,c3j,c4j) %求得Gezwgz=0.*z-1*(1+3.252*z-1)*(1-0.8187*z-1)*(1-0.5488*z-1)*(1+0.2281*z-1)/(1-z-1)2/(1-0.9048*z-1)/(1-0.6065*z-1)/(1-0.4493*z-1)Guzw=Gczw/gzDwz=Gczw/Gezw/gz %求得DwzN,D=numden(simplify(Gcz);numc=sym2poly(N)denc=sym2poly(D)N,D=numden(simplify(Guz);numu=sym2poly(N)d
16、enu=sym2poly(D)t=0:0.1:2u=thold ondlsim(numc,denc,u)dlsim(numu,denu,u)hold offN,D=numden(simplify(Dwz);numdw=sym2poly(N)dendw=sym2poly(D)题目详细解答如下:1、求被控对象传递函数G(s)的MATLAB描述。(2分)num=668*conv(1 2,1 6);den=conv(1 0 0,conv(1 1,conv(1 5,1 8);gs=tf(num,den)2、求被控对象脉冲传递函数G(z)。(4分)gz=c2d(gs,0.1,zoh)3、转换G(z)为零极
17、点增益模型并按z-1形式排列。(2分)a b k=zpkdata(gz) gz=zpk(a,b,k,0.1,variable,z-1)4、确定误差脉冲传递函数Ge(z)形式,满足单位加速度信号输入时闭环稳态误差为零和实际闭环系统稳定的要求。(6分)syms z a0 a1 a2 b0gz=0.*z-1*(1+3.252*z-1)*(1-0.8187*z-1)*(1-0.5488*z-1)*(1+0.2281*z-1)/(1-z-1)2/(1-0.9048*z-1)/(1-0.6065*z-1)/(1-0.4493*z-1)Gez=(1-z-1)3*(1+b0*z-1)5、确定闭环脉冲传递函数G
18、c(z)形式,满足控制器Dy(z)可实现、最少拍和实际闭环系统稳定的要求。(8分)Gcz=z-1*(1+3.252*z-1)*(a0+a1*z-1+a2*z-2)6、根据4、5、列写方程组,求解Gc(z)和Ge(z)中的待定系数并最终求解Gc(z)和Ge(z) 。(12分)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)A=double(a0j a1j a2j)f4=subs(Gez,z,-3.252)-1b0j=solve(f4)B=double(b0j)
19、 Gez=subs(Gez,b0,B)Gcz=subs(Gcz,a0 a1 a2,A)7、求针对单位加速度信号输入的最少拍有波纹控制器Dy(z)并说明Dy(z)的可实现性。(3分)Guz=Gcz/gzDyz=Gcz/gz/Gez8、用程序仿真方法分析加速度信号输入时闭环系统动态性能和稳态性能。(7分)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.1:1u=t.*t/2hold ondlsim(numc,
20、denc,u)dlsim(numu,denu,u)hold off图为程序仿真下有波纹控制器的波形9、用图形仿真方法(Simulink)分析单位加速度信号输入时闭环系统动态性能和稳态性能。(8分)N,D=numden(simplify(Dyz);numdy=sym2poly(N)dendy=sym2poly(D)结构图如下:图为以上程序框图在simulink仿真下的波形:10、确定误差脉冲传递函数Ge(z)形式,满足单位速度信号输入时闭环稳态误差为零和实际闭环系统稳定的要求。(6分)syms c0 c1 c2 c3 c4 d0 d1Gezw=(1-z-1)2*(c0+c1*z-1+c2*z-2
21、+c3*z-3+c4*z-4)11、确定闭环脉冲传递函数Gc(z)形式,满足控制器Dw(z)可实现、无波纹、最少拍和实际闭环系统稳定的要求。(8分)Gczw=z-1*(1+3.252*z-1)*(1-0.8187*z-1)*(1-0.6065*z-1)*(1-0.4493*z-1)*(d0+d1*z-1)12、根据10、11、列写方程组,求解Gc(z)和Ge(z)中的待定系数并最终求解Gc(z)和Ge(z) 。(12分)f6=subs(Gczw,z,1)-1f7=subs(diff(Gczw,1),z,1) d0j d1j=solve(f6,f7)Gczw=subs(Gczw,d0,d1,d0
22、j,d1j) f8=subs(Gezw,z,2)+subs(Gczw,z,2)-1f9=subs(Gezw,z,-3.773)-1f10=subs(Gezw,z,0.6703)-1f11=subs(Gezw,z,0.5488)-1f12=subs(Gezw,z,0.3679)-1c0j,c1j,c2j,c3j,c4j=solve(f8,f9,f10,f11,f12)Gezw=subs(Gezw,c0,c1,c2,c3,c4,c0j,c1j,c2j,c3j,c4j)13、求针对单位速度信号输入的最少拍无波纹控制器Dw(z)并说明Dw(z)的可实现性。(3分)gz=0.*z-1*(1+3.252*
23、z-1)*(1-0.8187*z-1)*(1-0.5488*z-1)*(1+0.2281*z-1)/(1-z-1)2/(1-0.9048*z-1)/(1-0.6065*z-1)/(1-0.4493*z-1)Guzw=Gczw/gzDwz=Gczw/Gezw/gz14、用程序仿真方法分析单位速度信号输入时闭环系统动态性能和稳态性能。(7分)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.1:2u=thold
24、 ondlsim(numc,denc,u)dlsim(numu,denu,u)hold off图为程序仿真下无波纹控制器的波形15、用图形仿真方法(Simulink)分析单位速度信号输入时闭环系统动态性能和稳态性能。(8分)N,D=numden(simplify(Dwz);numdw=sym2poly(N)dendw=sym2poly(D)结构图如下:图为以上程序框图在simulink仿真下的波形16、根据8、9、14、15、的分析,说明有波纹和无波纹的差别和物理意义。(4分)有波纹和无波纹的差别在于有波纹控制器经过一定的采样周期之后,其输入跟踪输出,但其数字控制器的曲线会出现小的波动,该波动
25、为波纹,而无波纹数字控制器D(z)的输出曲线经过一定采样周期之后会为一常数,不会产生波纹。最少拍控制系统的系统结构简单,设计完成后容易在计算机上实现。但它对系统的适应性差,只能保证在采样点上的输出可以跟踪输入,有可能在采样点之间呈现波纹,会引起系统的振荡。产生波纹的原因是U(z)不能在优先个采样周期内变为0,即u(KT)不等于零,使系统的输出y(t)产生波动。实现最少拍无波纹的控制,必须要系统在典型信号的作用下,经有限个采样周期后,系统的稳态误差保持恒值或为0,系统的数字控制器D(z)的输出u(KT)也必须保持为0。原程序指令运行结果Transfer function: 668 s2 + 53
26、44 s + 8016-s5 + 14 s4 + 53 s3 + 40 s2Transfer function:0.09676 z4 + 0.2044 z3 - 0.3452 z2 + 0.05314 z + 0.03225-z5 - 3.961 z4 + 6.149 z3 - 4.663 z2 + 1.721 z - 0.2466Sampling time: 0.1a =4x1 doubleb =5x1 doublek =0.0968Zero/pole/gain:0. z-1 (1+3.252z-1) (1-0.8187z-1) (1-0.5488z-1) (1+0.2281z-1)- (1
27、-z-1)2 (1-0.9048z-1) (1-0.6065z-1) (1-0.4493z-1)Sampling time: 0.1gz=27793/z*(1+813/250/z)*(1-8187/10000/z)*(1-343/625/z)*(1+2281/10000/z)/(1-1/z)2/(1-1131/1250/z)/(1-1213/2000/z)/(1-4493/10000/z)Gcz =1/z*(1+813/250/z)*(a0+a1/z+a2/z2)Gez =(1-1/z)3*(1+b0/z)f1 =1063/250*a0+1063/250*a1+1063/250*a2-1f2
28、=-938/125*a0-2939/250*a1-2001/125*a2f3 =2689/125*a0+5628/125*a1+1926/25*a2a0j =/a1j =-/a2j =/A = 1.2029 -1.5203 0.5526f4 =/-0/1*b0b0j =/B = 1.7971Gez =(1-1/z)3*(1+75687/70496/z)Gcz=1/z*(1+813/250/z)*(35801/70496-48851/70496/z+14199/40992/z2)Dyz=/27793*(35801/70496-48851/70496/z+14199/40992/z2)/(1-81
29、87/10000/z)/(1-343/625/z)/(1+2281/10000/z)/(1-1/z)*(1-1131/1250/z)*(1-1213/2000/z)*(1-4493/10000/z)/(1+75687/70496/z)numc =1.0e+018 *2.7086 5.3850 -9.8886 4.0468denc =1.0e+018 *2.2518 0 0 0 0numu =1.0e+028 *0.5417 -2.8302 6.2917 -7.7217 5.6551 -2.4723 0.5971 -0.0614denu =1.0e+026 *4.3575 -4.9650 0.5
30、986 0.4466 0 0 0 0numdy =1.0e+044 *0.2440 -0.7867 1.0162 -0.6585 0.2136 -0.0276dendy =1.0e+042 *1.9625 -0.6717 -5.0396 4.4345 -0.3242 -0.3614Gezw =(1-1/z)2*(c0+c1/z+c2/z2+c3/z3+c4/z4)Gczw=1/z*(1+813/250/z)*(1-8187/10000/z)*(1-1213/2000/z)*(1-4493/10000/z)*(d0+d1/z)f6 =71/000*d0+71/000*d1-1f7 =79/000
31、*d0+57/00*d1d0j =-/2841d1j =/2841f8=1/4*c0+1/8*c1+1/16*c2+1/32*c3+1/64*c4-26289/1312f9=/*c0-/*c1+000/9841*c2-/*c3+/*c4-1f10=/*c0+0/7*c1+00000/83681*c2+/*c3+00/9*c4-1f11=79524/*c0+/*c1+/*c2+500/43*c3+/10449*c4-1f12=/*c0+0/*c1+00000/1681*c2+/*c3+00/*c4-1c0j=72291/0416c1j=/1664c2j=-/22944c3j=/1376c4j=-
32、131/824numc = 1.0e+018 *2.7086 5.3850 -9.8886 4.0468denc =1.0e+018 *2.2518 0 0 0 0numu =1.0e+028 *0.5417 -2.8302 6.2917 -7.7217 5.6551 -2.4723 0.5971 -0.0614denu =1.0e+026 *4.3575 -4.9650 0.5986 0.4466 0 0 0 0numdw =1.0e+095 *-0.5687 2.4226 -4.1635 3.7060 -1.8072 0.4589 -0.0475dendw =1.0e+094 *0.327
33、3 0.6583 -1.6801 1.0274 -0.1459 -0.0513 0.0130我的体会:设计最小拍数字控制系统是之前的计算机控制系统中学习过的知识,我基本能够熟练地掌握,但由于我之前从未学习过matlab软件,一开始连matlab的基本的功能和函数都根本不清楚,要用matlab设计控制系统并进行仿真,对我是一个非常大的挑战。但我相信,只要认真查阅相关书籍学习,虚心向老师和同学请教,一定能很快地学会使用matlab软件的基本功能。我借来一本MATLAB仿真技术,从最基础的了解菜单界面窗口、建立M文件学起,到学习用它解方程,表达控制系统的传递函数,再到使用一些常用的函数命令,比如离散
34、化、建立零极点增益模型等。一步一步地亲身实践尝试,慢慢就掌握了这些基本的软件操作能力。在这一基础上,我总于可以用matlab软件设计最小拍控制系统。通过利用matlab待定系数,到实现程序仿真,到最后形象的Simulink图形仿真,我意识到matlab软件的强大,它可以大大方便我们自动化专业的学生在控制系统设计中的计算和设计。此外课程设计使我基本掌握了一个很有用的软件Matlab,也使我更加意识到学习知识要有信心,从基础打起,一点一点不断累积和实践尝试。多和同学探讨在学习中遇到的错误和经验,也能很好提高学习效率,少犯错误。这是一次很有意义的实践,我会把收获用在以后的学习中,不断努力学习新的知识
35、!发生的问题及解决方法:1、系统传递函数的表达式不知道用什么命令表达。解决方法:翻阅资料,掌握了常用的几种表达方法。2、在待定Gcz和Gez的参数时,列出的方程有错误而导致无解。解决方法:利用matlab的错误提示功能,能方便地找到错误并改正。3、程序仿真时,图像曲线只看到整体曲线,局部的微小区间部分不够清晰、具体。解决方法:改变设定中终点步,可改变整体的曲线分辨率。如将t=0:0.1:10改为t=0:0.1:1,输入u=t,则局部部分非常具体清晰。 4、在图形仿真时,D(Y)或D(W)的参数不知道如何设定。解决方法:翻阅资料,用 simplify()化简,用numden()函数和sym2poly()函数提取系数,可方便地设定D(Y)或D(W)的参数.。5、图形仿真时,响应曲线出现震荡。解决方法:经过细心检查,发现是太粗心设置了错误的传递函数参数导致,重新修正后系统响应曲线满足要求。参考文献【1】魏克新编 MATLAB语言与自动控制系统设计 机械工业出版社 2004 年【2】周品编 MATLAB数学建模与仿真 国防工业出版社 2009年专心-专注-专业