一. 封面……………………………………………………………..1 二. 目录…………………………………………………………......2 三. 课程设计任务书………………………………………………..3 四. 摘要……………………………………………………………..7 五. 课程设计的目的………………………………………………..9 六. 课程设计用的仪器与器件……………………………………..9 七. 课程设计的具体内容…………………………………………..10 八. 心得体会………………………………………………………..15 九. 参考文献………………………………………………………..15 十. 附录(程序)…………………………………………………..16
1
北京理工大学珠海学院
课程设计任务书
2011 ~2012 学年 第 2学期
学生姓名: 白力洋 专业班级: 自动化4班 指导教师: 齐连众 工作部门: 信息学院 一、课程设计题目
《控制系统建模、分析、设计和仿真》
本课程设计共列出10个同等难度的设计题目,编号为:[0号题]、[1号题]、[2号题]、[3号题]、[4号题]、[5号题]、[6号题]、[7号题]、[8号题]、[9号题]。
学生必须选择与学号尾数相同的题目完成课程设计。例如,学号为8xxxxxxxxx2的学生必须选做[2号题]。
二、课程设计内容
(一)《控制系统建模、分析、设计和仿真》课题设计内容
最少拍有波纹控制系统
R(z) + _ E(z) Dy(z) U(z) G(s) Y(z)
[0号题] 控制系统建模、分析、设计和仿真
设连续被控对象的实测传递函数为:
2
G(s)888(s2)(s5)s511s431s321s2用零阶保持器离散化,采样周期取0.1秒,分别设计一单位加速度信号输入时的最少拍有波纹控制器Dy(z)。具体要求见(二)。
[1号题] 控制系统建模、分析、设计和仿真
设连续被控对象的实测传递函数为:
1000(s29s14)G(s)5s17s487s3135s2用一阶保持器离散化,采样周期取0.1秒,分别设计一单位加速度信号输入时的最少拍有波纹
控制器Dy(z)。具体要求见(二)。
[2号题] 控制系统建模、分析、设计和仿真
设连续被控对象的实测传递函数为:
G(s)668 (s+2) (s+6)s2 (s+1) (s+5) (s+8)用零阶保持器离散化,采样周期取0.2秒,分别设计一单位加速度信号输入时的最少拍有波纹控制器Dy(z)。具体要求见(二)。
[3号题] 控制系统建模、分析、设计和仿真
设连续被控对象的实测传递函数为:
G(s)789(s3)(s5)s514s456s364s2用一阶保持器离散化,采样周期取0.2秒,分别设计一单位加速度信号输入时的最少拍有波纹控制器Dy(z)。具体要求见(二)。
[4号题] 控制系统建模、分析、设计和仿真
设连续被控对象的实测传递函数为:
868(s210s16)G(s)5s9s423s315s2用零阶保持器离散化,采样周期取0.05秒,分别设计一单位加速度信号输入时的最少拍有波
纹控制器Dy(z)。具体要求见(二)。
3
[5号题] 控制系统建模、分析、设计和仿真
设连续被控对象的实测传递函数为:
G(s)968 (s+2) (s+9)s2 (s+1) (s+4) (s+8)用一阶保持器离散化,采样周期取0.05秒,分别设计一单位加速度信号输入时的最少拍有波纹 控制器Dy(z)。具体要求见(二)。
[6号题] 控制系统建模、分析、设计和仿真
设连续被控对象的实测传递函数为:
G(s)999(s2)(s5)s513s439s327s2用零阶保持器离散化,采样周期取0.01秒,分别设计一单位加速度信号输入时的最少拍有波纹 控制器Dy(z)。具体要求见(二)。
[7号题] 控制系统建模、分析、设计和仿真
设连续被控对象的实测传递函数为:
1818(s26s8)G(s)5s15s462s348s2用一阶保持器离散化,采样周期取0.01秒,分别设计一单位加速度信号输入时的最少拍有波纹 控制器Dy(z)。具体要求见(二)。
[8号题] 控制系统建模、分析、设计和仿真
设连续被控对象的实测传递函数为:
G(s)879(s1)(s6)s2(s2)(s5)(s7)用零阶保持器离散化,采样周期取0.02秒,分别设计一单位加速度信号输入时的最少拍有波纹 控制器Dy(z)。具体要求见(二)。
[9号题] 控制系统建模、分析、设计和仿真
设连续被控对象的实测传递函数为:
999s28991s17982G(s)5s14s456s364s2用一阶保持器离散化,采样周期取0.02秒,分别设计一单位加速度信号输入时的最少拍有波纹
4
控制器Dy(z)。具体要求见(二)。
(二)《控制系统建模、分析、设计和仿真》课题设计要求及评分标准【共100分】
1、求被控对象传递函数G(s)的MATLAB描述。(5分) 2、求被控对象脉冲传递函数G(z)。(8分)
3、转换G(z)为零极点增益模型并按z形式排列。(5分)
4、确定误差脉冲传递函数Ge(z)形式,满足单位加速度信号输入时闭环稳态误差为零和实际闭环系统稳 定的要求。(15分)
5、确定闭环脉冲传递函数Gc(z)形式,满足控制器Dy(z)可实现、最少拍和实际闭环系统稳定的要求。 (17分)
6、根据4、5、列写方程组,求解Gc(z)和Ge(z)中的待定系数并最终求解Gc(z)和Ge(z) 。(20分) 7、求针对单位加速度信号输入的最少拍有波纹控制器D(z)并说明D(z)的可实现性。(10分) 8、用图形仿真方法(Simulink)分析单位加速度信号输入时闭环系统动态性能和稳态性能。(20分)
-1
三、进度安排
6月23日: 下达课程设计任务书;复习控制理论和计算机仿真知识,收集资料、熟悉仿真工具;确定
设计方案和步骤。
6月24-26日: 编程练习,程序设计;仿真调试,图形仿真参数整定;总结整理设计、仿真结果,撰
写课程设计说明书。
6月27日: 完成程序仿真调试和图形仿真调试;完成课程设计说明书;课程设计答辩总结。
四、基本要求
1.学生应按照课程设计任务书的要求独立分析、解决问题,按计划完成课程设计任务; 2.不得抄袭或找人代做,否则按考试作弊处理;
3. 学生在完成课程设计时须提交不少于3000字课程设计说明书;说明书结构为:
(1)封面,(2)目录(3)任务书,(4)摘要与关键词(中英对照 ),(5)课程设计的目的 (6)课程设计用的仪器与器件(7)课程设计的内容(8)心得体会(9)参考文献(10)附录
教研室主任签名: 苏 禹
2014年 6月20日
5
摘要
本次课程实践为设计两个控制器分别为最小拍无波纹和最小拍有波纹控制器。通过这次实践可以进一步对所学的《计算机控制技术》有进一步的了解,并对Matlab软件的操作有一定程度的熟悉,为以后的工作或研究作基础。 Matlab最初主要用于矩阵数值的计算,随着它的版本功能来越来强大,应用范围内也越来越广阔。如今,Matlab已经发展成为国际上非常好的生产潜力这与工程计算机语言之一,它使用方便、输入快捷、运算高效、内容丰富,是高等院校理工科学和科研中必不可少的工具之一,掌握Matlab已经成为相关专业课大学生,研究生和教师的必备技能。
Matlab在我国的应用已有十多年的历史上,而自动控制器则是其最重要的应用领域之一,,自动控制系统的建模、分析、设计及应用等都离不开Matlab 4.0开始,就一直将应用教学和科研工作中。对于自动化专业的本科生来说,Matlab是一种必须掌握的现代计算工工具。
关键词: MALAB 仿真
6
Summary
The course of practice for the design of two controllers are the minimum ripple and minimum film shot there is no ripple controller. Through this practice can be further learned the \"computer-controlled technology\" have a better understanding, and the operation of the software matlab have a certain degree of familiarity, for future work or study as a basis.
Matlab was originally mainly used for numerical calculation of the matrix, with its version of the feature to increasingly powerful, increasingly broad range of applications. Today, Matlab has become a very good production potential in the international engineering computer language which one it easy to use, enter the fast, efficient computing, content-rich, scientific and research institutions of higher learning Polytechnic indispensable tool , Matlab has become a master professional courses related to college students, graduate students and teachers the necessary skills.
Matlab application in China for more than ten years of history, while the automatic controller is the most important areas of application, and automatic control systems modeling, analysis, design and application are all inseparable from Matlab 4.0 starting has been the application of teaching and research work. For the automation of the undergraduates, Matlab is a need to master work of modern computing tools.
Keywords: MATLAB simulation
7
五.课程设计的目的
(1)学习并掌握MATLAB软件的程序编写与调试,以及计算机仿真技术的应用。 (2)运用MATLAB 软件处理和仿真,分析所建立的控制系统模型的可行性。 (3)学会运用Simulink对动态系统进行建模、仿真和分析。
六.课程设计用的仪器与器件
硬件: PC计算机
软件: MATLAB7.0
8
七.课程设计的具体内容
1、求被控对象传递函数G(s)的MATLAB描述。
输入:
num=[879 6153 5274]; den=[1 14 59 70 0 0]; T=0.02;
gs=tf(num,den) 输出:
Transfer function:
879 s^2 + 6153 s + 5274 ------------------------------ s^5 + 14 s^4 + 59 s^3 + 70 s^2
2、求被控对象脉冲传递函数G(z)。
输入:
gz=c2d(gs,0.02,'zoh') 输出:
Transfer function:
0.001132 z^4 + 0.00226 z^3 - 0.006126 z^2 + 0.001831 z + 0.0009176 ------------------------------------------------------------------ z^5 - 4.735 z^4 + 8.961 z^3 - 8.473 z^2 + 4.003 z - 0.7558
Sampling time: 0.02
3、转换G(z)为零极点增益模型并按z-1形式排列。
输入:
[z,p,k]=zpkdata(Gz)
Gz=zpk(z,p,k,0.02,'variable','z^-1') 输出:
z =[4x1 double] p =[5x1 double] k = 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.02
9
4、确定误差脉冲传递函数Ge(z)形式,满足单位加速度信号输入时闭环稳态误差为零和实际闭环系统稳定的要求。
输入:
syms z a0 a1 a2 b0
gez=(1-z^-1)^3*(1+b0*z^-1) 输出: gez =
(1-1/z)^3*(b0+b1/z)
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/z^2)
6、根据4、5、列写方程组,求解Gc(z)和Ge(z)中的待定系数并最终求解Gc(z)和Ge(z) 。
A、求Gc(z)
输入:
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) A=double([a0j a1j a2j])
Gcz=subs(Gcz,[a0 a1 a2],A)
输出: f1 =
921/200*a0+921/200*a1+921/200*a2-1 f2 =
-821/100*a0-2563/200*a1-871/50*a2 f3 =
2363/100*a0+2463/50*a1+841/10*a2 a0j =
878529200/781229961 a1j =
-1115305600/781229961 a2j =
406424600/781229961
10
A =
1.1245 -1.4276 0.5202 Gcz =
1/z*(1+721/200/z)*(5064505939697441/4503599627370496-1607365991869655/1125899906842624/z+4685876805777557/9007199254740992/z^2) 求Gez:
输入:
Gez=(1-z^-1)^3*(1+b0*z^-1) f4=subs(Gez,z,-3.605)-1 boj=solve(f4) B=double(boj)
Gez=subs(Gez,[1 b0],[1 boj]) 输出: Gez =
(1-1/z)^3*(1+b0/z)
f4 =
406424600/374805361-156245992200/270234665281*b0 boj =
1465160683/781229961
B =
1.8755
Gez =
(1-1/z)^3*(1+1465160683/781229961/z)
7、求针对单位加速度信号输入的最少拍有波纹控制器Dy(z)并说明Dy(z)的可实现性 输入:
Gz=((0.001132*z^-1)*(1+3.605*z^-1)*(1-0.9802*z^-1)*(1-0.8869*z^-1)*(1+0.2586*z^-1))/((1-z^-1)^2*(1-0.9608*z^-1)*(1-0.9048*z^-1)*(1-0.8694*z^-1)) Dz=Gcz/Gez/Gz 输出:
Dz =
4611686018427387904/5220428572859803*(5064505939697441/4503599627370496-1607365991869655/1125899906842624/z+4685876805777557/9007199254740992/z^2)/(1-1/z)/(1+1465160683/781229961/z)/(1-4901/5000/z)/(1-8869/10000/z)/(1+1293/5000/z)*(1-1201/1250/z)*(1-1131/1250/z)*(1-4347/5000/z)
8、用图形仿真方法(Simulink)分析单位加速度信号输入时闭环系统动态性能和稳态性能。
输入:
[N,D]=numden(simplify(Dz));
11
numD=sym2poly(N) denD=sym2poly(D) 输出: numD = 1.0e+039 *
1.0129 -4.0561 6.5088 -5.2505 2.1392 -0.3541 denD = 1.0e+036 *
1.0196 -0.7474 -2.9539 3.6500 -0.5384 -0.4299
结果如下图所示
12
输入波形:
输出波形
13
七、心得体会(另附)
八、参考文献
1. 肖伟,刘忠.MATLAB程序设计与应用[M].清华大学出版社,2005
2. 周润景.基于MATLAB与fuzzyTECH的模糊与神经网络设计[M].电子工业出版社,2010 3. 陈超.MATLAB应用实例精讲-数学数值计算与统计分析篇[M].电子工业出版社,2010 4. 田敏.案例解说MATLAB典型控制应用[M].电子工业出版社,2009 5. 刘刚.MATLAB数字图像处理[M].机械工业出版社,2010
14
附件: M文件原文
num=[879 6153 5274]; den=[1 14 59 70 0 0]; T=0.02; Gs=tf(num,den) Gz=c2d(Gs,0.02,'zoh') [z,p,k]=zpkdata(Gz)
Gz=zpk(z,p,k,0.02,'variable','z^-1') syms z b0 b1 a0 a1 a2 a3 Gez=(1-z^-1)^3*(1+b0*z^-1)
Gcz=z^-1*(1+3.605*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) A=double([a0j a1j a2j])
Gcz=subs(Gcz,[a0 a1 a2],A) Gez=(1-z^-1)^3*(1+b0*z^-1) f4=subs(Gez,z,-3.605)-1 boj=solve(f4) B=double(boj)
Gez=subs(Gez,[1 b0],[1 boj])
Gz=((0.001132*z^-1)*(1+3.605*z^-1)*(1-0.9802*z^-1)*(1-0.8869*z^-1)*(1+0.2586*z^-1))/((1-z^-1)^2*(1-0.9608*z^-1)*(1-0.9048*z^-1)*(1-0.8694*z^-1)) Dz=Gcz/Gez/Gz
[N,D]=numden(simplify(Dz)); numD=sym2poly(N) denD=sym2poly(D)
15
因篇幅问题不能全部显示,请点此查看更多更全内容