计算机仿真课程设计报告.docx
《计算机仿真课程设计报告.docx》由会员分享,可在线阅读,更多相关《计算机仿真课程设计报告.docx(17页珍藏版)》请在冰豆网上搜索。
计算机仿真课程设计报告
北京理工大学珠海学院
课程设计任务书
2010~2011学年第2学期
学生姓名:
林泽佳专业班级:
08自动化1班
指导教师:
钟秋海工作部门:
信息学院
一、课程设计题目
《控制系统建模、分析、设计和仿真》
本课程设计共列出10个同等难度的设计题目,编号为:
[0号题]、[1号题]、[2号题]、[3号题]、[4号题]、[5号题]、[6号题]、[7号题]、[8号题]、[9号题]。
学生必须选择与学号尾数相同的题目完成课程设计。
例如,学号为8xxxxxxxxx2的学生必须选做[2号题]。
二、课程设计内容
(一)《控制系统建模、分析、设计和仿真》课题设计内容
Dw(z)
G(s)
R(z)
Y(z)
+
_
U(z)
E(z)
最少拍无波纹控制系统
[2号题]控制系统建模、分析、设计和仿真
设连续被控对象的实测传递函数为:
用零阶保持器离散化,采样周期取秒,分别设计一单位加速度信号输入时的最少拍有波纹控制器Dy(z)和一单位速度信号输入时的最少拍无波纹控制器Dw(z)。
具体要求见
(二)。
(二)《控制系统建模、分析、设计和仿真》课题设计要求及评分标准【共100分】
1、求被控对象传递函数G(s)的MATLAB描述。
(2分)
2、求被控对象脉冲传递函数G(z)。
(4分)
3、转换G(z)为零极点增益模型并按z-1形式排列。
(2分)
4、确定误差脉冲传递函数Ge(z)形式,满足单位加速度信号输入时闭环稳态误差为零和实际闭环系统稳定的要求。
(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)形式,满足单位速度信号输入时闭环稳态误差为零和实际闭环系统稳定的要求。
(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、的分析,说明有波纹和无波纹的差别和物理意义。
(4分)
三、进度安排
6月13至6月14:
下达课程设计任务书;复习控制理论和计算机仿真知识,收集资料、熟悉仿真工具;确定设计方案和步骤。
6月14至6月16:
编程练习,程序设计;仿真调试,图形仿真参数整定;总结整理设计、仿真结果,撰写课程设计说明书。
6月16至6月17:
完成程序仿真调试和图形仿真调试;完成课程设计说明书;课程设计答辩总结。
四、基本要求
1.学生应按照课程设计任务书的要求独立分析、解决问题,按计划完成课程设计任务;
2.不得抄袭或找人代做,否则按考试作弊处理;
3.学生在完成课程设计时须提交不少于3000字课程设计说明书;说明书结构为:
(1)封面,
(2)任务书,(3)摘要,(4)关键词,(5)目录,(6)正文,(7)参考文献;
教研室主任签名:
年月日
摘要
本课程设计报告主要阐述了使用Matlab软件建模、分析、设计和仿真最少拍控制系统的过程。
先由给定的连续被控对象传递函数G(s),求出被控对象脉冲传递函数G(z);再根据典型输入信号类型和G(z)的零极点、Gc(z)和Ge(z)阶数相同,定出闭环脉冲传递函数Gc(z)和误差脉冲传递函数Ge(z)。
然后分别求出满足闭环系统稳定且稳态误差为零的单位加速度输入最少拍有波纹控制器Dy(z)和单位速度输入最少拍无波纹控制器Dw(z)。
再使用程序仿真方法和图形仿真方法(Simulink)仿真设计好的控制系统在给定输入信号下的动态性能和稳态特性,验证设计是否满足要求。
关键词:
Matlab、控制系统、最少拍、波纹、仿真
一、课程设计任务书………………………………………………1
二、摘要…………………………………………………………………4
三、关键词………………………………………………………………4
四、课程设计内容…………………………………………………6
1、Matlab简介……………………………………………………6
2、最少拍系统设计……………………………………………6
①单位加速度输入有波纹……………………………………6
②单位速度输入无波纹………………………………………9
3、设计的步骤和结果…………………………………………12
五、课程设计的体会和遇到的问题………………………17
六、参考文献………………………………………………………18
课程设计内容
1、Matlab简介
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
2、最少拍控制系统设计
①单位加速度输入有波纹
M文件代码:
z=[-2,-6];p=[0,0,-1,-5,-8];k=668;
Gs=zpk(z,p,k)%求被控对象传递函数G(s)的MATLAB描述
T=;
Gz=c2d(Gs,T)
Gz=c2d(Gs,T,'zoh')%用零阶保持器离散化,求被控对象脉冲传递函数G(z)
[z,p,k]=zpkdata(Gz);%求出G(z)的极点,零点及增益
Gz=zpk(z,p,k,,'variable','z^-1')%转换Gz为零极点增益模型按z-1形式排列
symsza0a1a2b0b1%配置参数
Gz=*z^-1*(1+*z^-1)**z^-1)**z^-1)*(1+*z^-1)/(1-z^-1)^2/*z^-1)/*z^-1)/*z^-1)
Gcz=z^-1*(1+*z^-1)*(a0+a1*z^-1+a2*z^-2);
%设置闭环脉冲传递函数Gc(z),满足Dy(z)可实现、最少拍和稳定的要求
f1=subs(Gcz,z,1)-1;%.列方程求解a0a1a2,定Gcz
f2=subs(diff(Gcz,1),z,1);
f3=subs(diff(Gcz,2),z,1);
[a0j,a1j,a2j]=solve(f1,f2,f3);
Gcz=subs(Gcz,[a0a1a2],[a0ja1ja2j]);
Gez=(1-z^-1)^3*(b0+b1*z^-1);%设置Ge(z)
f4=1-subs(Gez,z,;%6.方程求解b0,b1定Gez
f5=1-subs(Gez,z,Inf);
[b0jb1j]=solve(f4,f5);
Gez=subs(Gez,[b0b1],[b0jb1j]);
Guz=Gcz/Gz;
Dyz=Gcz/Gz/Gez;%求单位加速度输入最少拍有波纹控制器Dy(z)
[Nc,Dc]=numden(simplify(Gcz));%化简Gcz并取系数用于程序仿真
numc=sym2poly(Nc);
denc=sym2poly(Dc);
[Nu,Du]=numden(simplify(Guz));%化简Guz并取系数用于程序仿真
numu=sym2poly(Nu);
denu=sym2poly(Du);
t=0:
:
1;
u=t.*t/2;%单位加速度输入
holdon
dlsim(numc,denc,u);
dlsim(numu,denu,u);
holdoff
[N,D]=numden(simplify(Dyz))%提取Dyz的系数,以此在图形仿真中设置Dyz
numdy=sym2poly(N)
dendy=sym2poly(D)
有波纹最少拍程序仿真截图:
有波纹最少拍图形仿真截图:
闭环系统输出Y(z)图形仿真结果
控制器输出U(z)图形仿真图
②单位速度输入无波纹:
M文件代码:
z=[-2,-6];p=[0,0,-1,-5,-8];k=668;
Gs=zpk(z,p,k)%求被控对象传递函数G(s)的MATLAB描述
T=
Gz=c2d(Gs,T)
Gz=c2d(Gs,T,'zoh')%用零阶保持器离散化,求被控对象脉冲传递函数Gz
[z,p,k]=zpkdata(Gz);%求出其极点,零点及增益
Gz=zpk(z,p,k,,'variable','z^-1')%转换Gz为零极点增益模型按z-1形式排列
symszr0r1c0c1c2c3c4%配置系数
Gz=*z^-1*(1+*z^-1)**z^-1)**z^-1)*(1+*z^-1)/(1-z^-1)^2/*z^-1)/*z^-1)/*z^-1)
Gcz=z^-1*(1+*z^-1)**z^-1)**z^-1)*(1+*z^-1)*(r0+r1*z^-1)%设置Gc(z)满足控制器Dy(z)可实现、最少拍稳定的要求。
f1=subs(Gcz,z,1)-1;%列方程求解Gc
f2=subs(diff(Gcz,1),z,1);
[r0j,r1j]=solve(f1,f2);
Gcz=subs(Gcz,[r0r1],[r0jr1j])
Gez=(1-z^-1)^2*(c0+c1*z^-1+c2*z^-2+c3*z^-3+c4*z^-4)%设置Ge(z)
f3=limit(Gez,z,inf)-1;%列方程求解Gez
f4=subs(Gez,z,-1;
f5=subs(Gez,z,-1;
f6=subs(Gez,z,-1;
f7=subs(Gez,z,-1;
[c0j,c1j,c2j,c3j,c4j]=solve(f3,f4,f5,f6,f7)
Gez=subs(Gez,[c0c1c2c3c4],[c0jc1jc2jc3jc4j])
Guz=Gcz/Gz
Dwz=Gcz/Gz/Gez
[N,D]=numden(simplify(Gcz));
numc=sym2poly(N)
denc=sym2poly(D)
[N,D]=numden(simplify(Guz));
numu=sym2poly(N)
denu=sym2poly(D)
t=0:
:
10
u=t%单位速度输入
holdon
dlsim(numc,denc,u)%.程序仿真
dlsim(numu,denu,u)
holdoff
[N,D]=numden(simplify(Dwz));%提取Dyz的系数,图形仿真中设置Dwz.
numdy=sym2poly(N)
dendy=sym2poly(D)
无波纹最少拍程序仿真图:
无波纹最少拍图形仿真图:
无波纹最少拍闭环系统输出Y(z)图形仿真结果
无波纹最少拍闭环系统数字控制器输出U(z)图形仿真结果
3、设计的步骤和结果
1.求被控对象传递函数G(s)的MATLAB描述。
(2分)
程序:
z=[-2,-6];p=[0,0,-1,-5,-8];k=668;
Gs=zpk(z,p,k)
结果:
Zero/pole/gain:
668(s+2)(s+6)
-------------------------
s^2(s+1)(s+5)(s+8)
2.求被控对象脉冲传递函数G(z)。
(4分)
程序:
T=;
Gz=c2d(Gs,T)
Gz=c2d(Gs,T,'zoh')
结果:
Zero/pole/gain:
(z+(z+
----------------------------------------------------------
(z-1)^2
3.转换G(z)为零极点增益模型并按z-1形式排列。
(2分)
程序:
[z,p,k]=zpkdata(Gz);
Gz=zpk(z,p,k,,'variable','z^-1')
结果:
Zero/pole/gain:
z^-1(1+^-1)^-1)^-1)(1+^-1)
------------------------------------------------------------------------
(1-z^-1)^2^-1)^-1)^-1)
4.确定误差脉冲传递函数Ge(z)形式,满足单位加速度信号输入时闭环稳态误差为零和实际闭环系统稳定的要求。
(6分)
Ge(z)形式:
Gez=(1-z^-1)^2*(c0+c1*z^-1+c2*z^-2+c3*z^-3+c4*z^-4)
5.确定闭环脉冲传递函数Gc(z)形式,满足控制器Dy(z)可实现、最少拍和实际闭环系统稳定的要求。
(8分)
Gc(z)形式:
Gcz=z^-1*(1+*z^-1)**z^-1)**z^-1)*(1+*z^-1)*(r0+r1*z^-1)
6.根据4、5、列写方程组,求解Gc(z)和Ge(z)中的待定系数并最终求解Gc(z)和Ge(z)。
(12分)
程序:
symsza0a1a2b0b1
Gz=*z^-1*(1+*z^-1)**z^-1)**z^-1)*(1+*z^-1)/(1-z^-1)^2/*z^-1)/*z^-1)/*z^-1)
Gcz=z^-1*(1+*z^-1)*(a0+a1*z^-1+a2*z^-2);
f1=subs(Gcz,z,1)-1;f2=subs(diff(Gcz,1),z,1);
f3=subs(diff(Gcz,2),z,1);
[a0j,a1j,a2j]=solve(f1,f2,f3);
Gcz=subs(Gcz,[a0a1a2],[a0ja1ja2j]);
Gez=(1-z^-1)^3*(b0+b1*z^-1);
f4=1-subs(Gez,z,;
f5=1-subs(Gez,z,Inf);
[b0jb1j]=solve(f4,f5);
Gez=subs(Gez,[b0b1],[b0jb1j]);
结果:
a0j=00/47
a1j=-00/47
a2j=0/47
Gcz=1/z*(1+813/250/z)*(00程序仿真方法分析加速度信号输入时闭环系统动态性能和稳态性能。
(7分)
程序:
[Nc,Dc]=numden(simplify(Gcz));
numc=sym2poly(Nc);
denc=sym2poly(Dc);
[Nu,Du]=numden(simplify(Guz));
numu=sym2poly(Nu);
denu=sym2poly(Du);
t=0:
:
1;
u=t.*t/2;
holdon
dlsim(numc,denc,u);
dlsim(numu,denu,u);
holdoff
结果:
见有波纹最少拍程序仿真图
9用图形仿真方法(Simulink)分析单位加速度信号输入时闭环系统动态性能和稳态性能。
(8分)
显示参数代码:
[N,D]=numden(simplify(Dyz))
numdy=sym2poly(N)
dendy=sym2poly(D)
结构图:
结果:
见有波纹最少拍图形仿真图
10确定误差脉冲传递函数Ge(z)形式,满足单位速度信号输入时闭环稳态误差为零和实际闭环系统稳定的要求。
(6分)
选定Ge(z)形式:
Gez=(1-z^-1)^2*(c0+c1*z^-1+c2*z^-2+c3*z^-3+c4*z^-4)
11、确定闭环脉冲传递函数Gc(z)形式,满足控制器Dw(z)可实现、无波纹、最少拍和实际闭环系统稳定的要求。
(8分)
选定Gc的形式:
Gcz=z^-1*(1+*z^-1)**z^-1)**z^-1)*(1+*z^-1)*(r0+r1*z^-1)
12、根据10、11、列写方程组,求解Gc(z)和Ge(z)中的待定系数并最终求解Gc(z)和Ge(z)。
(12分)
程序:
symszr0r1c0c1c2c3c4
Gz=*z^-1*(1+*z^-1)**z^-1)**z^-1)*(1+*z^-1)/(1-z^-1)^2/*z^-1)/*z^-1)/*z^-1)
Gcz=z^-1*(1+*z^-1)**z^-1)**z^-1)*(1+*z^-1)*(r0+r1*z^-1)
f1=subs(Gcz,z,1)-1;
f2=subs(diff(Gcz,1),z,1);
[r0j,r1j]=solve(f1,f2)
Gcz=subs(Gcz,[r0r1],[r0jr1j])
Gez=(1-z^-1)^2*(c0+c1*z^-1+c2*z^-2+c3*z^-3+c4*z^-4);
f3=limit(Gez,z,inf)-1;
f4=subs(Gez,z,-1;
f5=subs(Gez,z,-1;
f6=subs(Gez,z,-1;
f7=subs(Gez,z,-1;
[c0j,c1j,c2j,c3j,c4j]=solve(f3,f4,f5,f6,f7)
Gez=subs(Gez,[c0c1c2c3c4],[c0jc1jc2jc3jc4j])
结果:
r0j=-00000/16001
r1j=083535/16001
Gcz=1/z*(1+813/250/z)*(1-8187/10000/z)*(1-343/625/z)*(1+2281/10000/z)*(-00000/16001+083535/16001/z)
c0j=1
c1j=32002/16001
c2j=003/16001
c3j=-50039/4
c4j=-45/92
Gez=(1-1/z)^2*(1+32002/16001/z+003/16001/z^2-50039/4/z^3-45/92/z^4)
13、求针对单位速度信号输入的最少拍无波纹控制器Dw(z)并说明Dw(z)的可实现性。
(3分)
程序:
Guz=Gcz/Gz
Dwz=Gcz/Gz/Gez
结果:
Dwz=0/*(-00000/16001+083535/16001/z)*(1-1131/1250/z)*(1-1213/2000/z)*(1-4493/10000/z)/(1+32002/16001/z+003/16001/z^2-50039/4/z^3-45/92/z^4),可实现。
14、用程序仿真方法分析单位速度信号输入时闭环系统动态性能和稳态性能。
(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:
:
10
u=t
holdon
dlsim(numc,denc,u)
dlsim(numu,denu,u)
holdoff
结果:
见无波纹最少拍程序仿真图
15、用图形仿真方法(Simulink)分析单位速度信号输入时闭环系统动态性能和稳态性能。
(8分)
显示设置参数代码:
[N,D]=numden(simplify(Dwz));
numdy=sym2poly(N)
dendy=sym2poly(D)
结构图:
结果:
见无波纹最少拍图形仿真图
16、根据8、9、14、15、的分析,说明有波纹和无波纹的差别和物理意义。
(4分)
答:
最少拍控制系统的系统结构简单,设计完成后容易在计算机上实现。
但它对系统的适应性差,只能保证在采样点上的输出可以跟踪输入,有可能在采样点之间呈现波纹,会引起系统的振荡。
产生波纹的原因是U(z)不能在有限个采样周期内变为0,即u(KT)不等于零,使系统的输出y(t)产生波动。
实现最少拍无波纹的控制,必须要系统在典型信号的作用下,经有限个采样周期后,系统的稳态误差保持恒值或为0,系统的数字控制器D(z)的输出u(KT)也必须保持恒值或为0。
有波纹和无波纹的差别在于有波纹控制器经过一定的采样周期之后,其输入跟踪输出,但其数字控制器输出的曲线会出现小的波动,该波动为波纹,而无波纹数字控制器D(z)的输出曲线经过一定采样周期之后会为一常数,不会产生波纹。
五、课程设计的体会和遇到的问题:
体会:
设计最小拍数字控制系统是之前的《计算机控制系统》中学习过的知识,我基本能够熟练地掌握,但由于我之前从未学习过matlab软件,一开始连matlab的基本的功能和函数都根本不清楚,要用matlab设计控制系统并进行仿真,对我是一个非常大的挑战。
但我相信,只要认真查阅相关书籍学习,虚心向老师和同学请教,一定能很快地学会使用matlab软件的基本功能。
我借来一本《MATLAB仿真技术》,从最基础的了解菜单界面窗口、建立M文件学起,到学习用它解方程,表达控制系统的传递函数,再到使用一些常用的函数命令,比如离散化、建立零极点增益模型等。
一步一步地亲身实践尝试,慢慢就掌握了这些基本的软件操作能力。
在这一基础上,我总于可以用matlab软件设计最小拍控制系统。
通过利用matlab待定系数,到实现程序仿真,到最后形象的Simulink图形仿真,我意识到matlab软件的强大,它可以大大方便我们自动化专业的学生在控制系统设计中的计算和设计。
课程设计使我基本掌握了一个很有用的软件Matlab,也使我更加意识到学习知识要有信心,从基础打起,一点一点不断累积和实践尝试。
多和同学探讨在学习中遇到的错误和经验,也能很好提高学习效率,少犯错误。
这是一次很有意义的实践,我会把收获用在以后的学习中,不断努力学习新的知识!
遇到的问题及解决方法:
1、系统传递函数的表达式不知道用什么命令表达。
解决方法:
翻阅资料,掌握了常用的几种表达方法。
2、在待定Gcz和Gez的参数时,列出的方程有错误而导致无解。
解决方法:
利用matlab的错误提示功能,能方便地找到错误并改正。
3、程序仿真时,图像曲线只看到整体曲线,局部微小区间部分不够清晰、具体。
解决方法:
改变设定中终点步,可改变整体的曲线分辨率。
如将t=0:
:
10改为t=0:
:
1,输入u=t,则局部部分非常具体清晰。
4、在图形仿真时,D(Y)或D(W)的参数不知道如何设定。
解决方法:
翻阅资料,用simplify(