计算机仿真课程设计
北京理工大学珠海学院
《计算机仿真》课程设计说明书
题目: 控制系统建模、分析、设计和仿真
学 院: 信息学院
专业班级: 自动化1班
学 号: [1**********]2
学生姓名: 王道雨
指导教师: 钟秋海
2011年 6 月 9 日
北京理工大学珠海学院
课程设计任务书
2011 ~2012 学年 第 2学期
学生姓名: 王道雨 专业班级: 自动化1班 指导教师: 钟秋海 工作部门: 信息学院
一、课程设计题目
《控制系统建模、分析、设计和仿真》
本课程设计共列出10个同等难度的设计题目,编号为:[0号题]、[1号题]、[2号题]、[3号题]、
[4号题]、[5号题]、[6号题]、[7号题]、[8号题]、[9号题]。
学生必须选择与学号尾数相同的题目完成课程设计。例如,学号为09xxxxxxxx2的学生必须选做
[2号题]。
二、课程设计内容
(一)《控制系统建模、分析、设计和仿真》课题设计内容
最少拍有波纹控制系统
[0号题] 控制系统建模、分析、设计和仿真
设连续被控对象的实测传递函数为:
G(s)=888(s+2)(s+5)s5+11s4+31s3+21s2
用零阶保持器离散化,采样周期取0.1秒,分别设计一单位加速度信号输入时的最少拍有波纹控制器Dy(z)和一单位速度信号输入时的最少拍无波纹控制器Dw(z)。具体要求见(二)。
[1号题] 控制系统建模、分析、设计和仿真
设连续被控对象的实测传递函数为:
1000(s2+9s+14)G(s)=5s+17s4+87s3+135s2
用零阶保持器离散化,采样周期取0.1秒,分别设计一单位加速度信号输入时的最少拍有波纹控制器Dy(z)和一单位速度信号输入时的最少拍无波纹控制器Dw(z)。具体要求见(二)。
[2号题] 控制系统建模、分析、设计和仿真
设连续被控对象的实测传递函数为:
G(s)=668 (s+2) (s+6)s2 (s+1) (s+5) (s+8)
用零阶保持器离散化,采样周期取0.2秒,分别设计一单位加速度信号输入时的最少拍有波纹控制器Dy(z)和一单位速度信号输入时的最少拍无波纹控制器Dw(z)。具体要求见(二)。
[3号题] 控制系统建模、分析、设计和仿真
设连续被控对象的实测传递函数为:
G(s)=789(s+3)(s+5)
s5+14s4+56s3+64s2
用零阶保持器离散化,采样周期取0.2秒,分别设计一单位加速度信号输入时的最少拍有波纹控制器Dy(z)和一单位速度信号输入时的最少拍无波纹控制器Dw(z)。具体要求见(二)。
[4号题] 控制系统建模、分析、设计和仿真
设连续被控对象的实测传递函数为:
868(s2+10s+16)
用零阶保持器离散化,采样周期取0.05秒,分别设计一单位加速度信号输入时的最少拍有波纹控制器Dy(z)和一单位速度信号输入时的最少拍无波纹控制器Dw(z)。具体要求见(二)。
[5号题] 控制系统建模、分析、设计和仿真
设连续被控对象的实测传递函数为:
G(s)=968 (s+2) (s+9)s2 (s+1) (s+4) (s+8)
用零阶保持器离散化,采样周期取0.05秒,分别设计一单位加速度信号输入时的最少拍有波纹 控制器Dy(z)和一单位速度信号输入时的最少拍无波纹控制器Dw(z)。具体要求见(二)。
[6号题] 控制系统建模、分析、设计和仿真
设连续被控对象的实测传递函数为:
G(s)=999(s+2)(s+5)s5+13s4+39s3+27s2
用零阶保持器离散化,采样周期取0.01秒,分别设计一单位加速度信号输入时的最少拍有波纹 控制器Dy(z)和一单位速度信号输入时的最少拍无波纹控制器Dw(z)。具体要求见(二)。
[7号题] 控制系统建模、分析、设计和仿真
设连续被控对象的实测传递函数为:
1818(s2+6s+8)G(s)=5s+15s4+62s3+48s2
用零阶保持器离散化,采样周期取0.01秒,分别设计一单位加速度信号输入时的最少拍有波纹 控制器Dy(z)和一单位速度信号输入时的最少拍无波纹控制器Dw(z)。具体要求见(二)。
[8号题] 控制系统建模、分析、设计和仿真
设连续被控对象的实测传递函数为:
G(s)=879(s+1)(s+6)
s2(s+2)(s+5)(s+7)
用零阶保持器离散化,采样周期取0.02秒,分别设计一单位加速度信号输入时的最少拍有波纹 控制器Dy(z)和一单位速度信号输入时的最少拍无波纹控制器Dw(z)。具体要求见(二)。
[9号题] 控制系统建模、分析、设计和仿真
设连续被控对象的实测传递函数为:
999s2+8991s+17982G(s)=5s+14s4+56s3+64s2
用零阶保持器离散化,采样周期取0.02秒,分别设计一单位加速度信号输入时的最少拍有波纹 控制器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月2日: 下达课程设计任务书;复习控制理论和计算机仿真知识,收集资料、熟悉仿真工具;确定
设计方案和步骤。
6月3日: 编程练习,程序设计;仿真调试,图形仿真参数整定;总结整理设计、仿真结果,撰写课
程设计说明书。
6月9日至6月10日: 完成程序仿真调试和图形仿真调试;完成课程设计说明书;课程设计答辩总结。
四、基本要求
1.学生应按照课程设计任务书的要求独立分析、解决问题,按计划完成课程设计任务;
2.不得抄袭或找人代做,否则按考试作弊处理;
3. 学生在完成课程设计时须提交不少于3000字课程设计说明书;说明书结构为:
(1)封面,(2)任务书,(3)摘要,(4)关键词,(5)目录,(6)正文,(7)参考文献;
教研室主任签名:
年 月 日
摘要
本次课程实践为设计两个控制器分别为最小拍无波纹和最小拍有波纹控制器。通过这次实践可以进一步对所学的《计算机控制技术》有进一步的了解,并对Matlab软件的操作有一定程度的熟悉,为以后的工作或研究作基础。 Matlab最初主要用于矩阵数值的计算,随着它的版本功能来越来强大,应用范围内也越来越广阔。如今,Matlab已经发展成为国际上非常好的生产潜力这与工程计算机语言之一,它使用方便、输入快捷、运算高效、内容丰富,是高等院校理工科学和科研中必不可少的工具之一,掌握Matlab已经成为相关专业课大学生,研究生和教师的必备技能。
Matlab在我国的应用已有十多年的历史上,而自动控制器则是其最重要的应用领域之一,,自动控制系统的建模、分析、设计及应用等都离不开Matlab 4.0开始,就一直将应用教学和科研工作中。对于自动化专业的本科生来说,Matlab是一种必须掌握的现代计算工工具。
关键词: MALAB 仿真
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
目录
一. 封面……………………………………………………………..1
二. 课程设计任务书………………………………………………..2
三. 摘要……………………………………………………………..7
四. 目录…………………………………………………………......9
五. 课程设计的目的………………………………………………..10
六. 课程设计用的仪器与器件……………………………………..10
七. 课程设计的具体内容…………………………………………..10
八. 心得体会………………………………………………………..28
九. 参考文献………………………………………………………..29
十. 附录(程序)…………………………………………………..30
五.课程设计的目的
(1)学习并掌握MATLAB软件的程序编写与调试,以及计算机仿真技术的应用。
(2)运用MATLAB 软件处理和仿真,分析所建立的控制系统模型的可行性。
(3)学会运用Simulink对动态系统进行建模、仿真和分析。
六.课程设计用的仪器与器件
硬件: PC计算机
软件: MATLAB7.0
七.课程设计的具体内容
[2号题] 控制系统建模、分析、设计和仿真
设连续被控对象的实测传递函数为:
G(s) 668 (s+2) (s+6)s2 (s+1) (s+5) (s+8)
用零阶保持器离散化,采样周期取0.2秒,分别设计一单位加速度信号输入时的最少拍有波纹控制器Dy(z)和一单位速度信号输入时的最少拍无波纹控制器Dw(z)。具体要求见(二)。
1、求被控对象传递函数G(s)的MATLAB描述。
>> 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)。
>> Gz=c2d(Gs,0.2,'zoh') Zero/pole/gain:
0.68436 (z+2.904) (z-0.6703) (z-0.3011) (z+0.1908)
--------------------------------------------------
(z-1)^2 (z-0.8187) (z-0.3679) (z-0.2019)
Sampling time: 0.2
3、转换G(z)为零极点增益模型并按z-1形式排列。
>> [a,b,c]=zpkdata(Gz)
a = [4x1 double]
b = [5x1 double]
c = 0.6844
>> Gz=zpk(a,b,c,0.2,'variable','z^-1')
Zero/pole/gain:
0.68436 z^-1 (1+2.904z^-1) (1-0.6703z^-1) (1-0.3011z^-1) (1+0.1908z^-1)
-----------------------------------------------------------------------
(1-z^-1)^2 (1-0.8187z^-1) (1-0.3679z^-1) (1-0.2019z^-1)
Sampling time: 0.2
4、确定误差脉冲传递函数Ge(z)形式,满足单位加速度信号输入时闭环稳态误差为零和实际闭
环系统稳定的要求。
>> syms z b0 b1 a0 a1 a2 a3
>> Gez=(1-z^-1)^3*(1+b0*z^-1)
Gez =
(1-1/z)^3*(1+b0/z)
5、确定闭环脉冲传递函数Gc(z)形式,满足控制器Dy(z)可实现、最少拍和实际闭环系统稳定
的要求。
>> Gcz=z^-1*(1+2.904*z^-1)*(a0+a1*z^-1+a2*z^-2)
Gcz =
1/z*(1+363/125/z)*(a0+a1/z+a2/z^2)
6、根据4、5、列写方程组,求解Gc(z)和Ge(z)中的待定系数并最终求解Gc(z)和Ge(z) 。
>> f1=subs(Gcz,z,1)-1
f1 =
488/125*a0+488/125*a1+488/125*a2-1
>> f2=subs(diff(Gcz,1),z,1)
f2 =
-851/125*a0-1339/125*a1-1827/125*a2
>> f3=subs(diff(Gcz,2),z,1)
f3 =
2428/125*a0+5106/125*a1+1752/25*a2
>> [a0j a1j a2j]=solve(f1,f2,f3)
a0j =
150061125/116214272
a1j =
-94337625/58107136
a2j =
68382125/116214272
>> A=double([a0j a1j a2j])
A =
1.2912 -1.6235 0.5884
>> Gcz=subs(Gcz,[a0 a1 a2],A)
Gcz =
1/z*(1+363/125/z)*([**************]9/[**************]6-[**************]1/[1**********]
70496/z+[**************]3/[**************]2/z^2)
>> Gez=(1-z^-1)^3*(1+b0*z^-1)
Gez =
(1-1/z)^3*(1+b0/z)
>> f4=subs(Gez,z,-2.904)-1
f4 =
68382125/47832147-[1**********]/[1**********]*b0
>> boj=solve(f4)
boj =
198581691/116214272
>> B=double(boj)
B =1.7088
>> Gez=subs(Gez,[1 b0],[1 boj])
Gez =
(1-1/z)^3*(1+198581691/116214272/z)
7、求针对单位加速度信号输入的最少拍有波纹控制器Dy(z)并说明Dy(z)的可实现性。
>>
Gz=0.68436*z^-1*(1+2.904*z^-1)*(1-0.6703*z^-1)*(1-0.3011*z^-1)*(1+0.1908*z^-1)/(1-z^-
1)^2/(1-0.8187*z^-1)/(1-0.3679*z^-1)/(1-0.2019*z^-1)
Gz =
17109/25000/z*(1+363/125/z)*(1-6703/10000/z)*(1-3011/10000/z)*(1+477/2500/z)/(1-1
/z)^2/(1-8187/10000/z)/(1-3679/10000/z)/(1-2019/10000/z)
>> Dyz=Gcz/Gez/Gz
Dyz =
25000/17109*([**************]9/[**************]6-[**************]1/[**************]6/z+[**************]3/[**************]2/z^2)/(1-1/z)/(1+198581691/116214272/z)/(1-6703/10000/z)/(1-3011/10000/z)/(1+477/2500/z)*(1-8187/10000/z)*(1-3679/10000/z)*(1-2019/10000/z)
8、用程序仿真方法分析加速度信号输入时闭环系统动态性能和稳态性能。
>> [N,D]=numden(simplify(Gcz));
>> numc=sym2poly(N)
numc =
1.0e+018 *
1.4538 2.3940 -4.6458 1.9239
>> denc=sym2poly(D)
denc =
1.0e+018 *
1.1259 0 0 0 0
>> t=0:0.2:10
t =
Columns 1 through 14
0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.4000 1.6000
1.8000 2.0000 2.2000 2.4000 2.6000
Columns 15 through 28
2.8000 3.0000 3.2000 3.4000 3.6000 3.8000 4.0000 4.2000
4.4000 4.6000 4.8000 5.0000 5.2000 5.4000
Columns 29 through 42
5.6000 5.8000 6.0000 6.2000 6.4000 6.6000 6.8000 7.0000
7.2000 7.4000 7.6000 7.8000 8.0000 8.2000
Columns 43 through 51
8.4000 8.6000 8.8000 9.0000 9.2000 9.4000 9.6000 9.8000 10.0000
>> u=0.5*(t.^2)
u =
Columns 1 through 14
0 0.0200 0.0800 0.1800 0.3200 0.5000 0.7200 0.9800
1.2800 1.6200 2.0000 2.4200 2.8800 3.3800
Columns 15 through 28
3.9200 4.5000 5.1200 5.7800 6.4800 7.2200 8.0000 8.8200
9.6800 10.5800 11.5200 12.5000 13.5200 14.5800
Columns 29 through 42
15.6800 16.8200 18.0000 19.2200 20.4800 21.7800 23.1200 24.5000 25.9200 27.3800 28.8800 30.4200 32.0000 33.6200
Columns 43 through 51
35.2800 36.9800 38.7200 40.5000 42.3200 44.1800 46.0800 48.0200 50.0000
>> dlsim(numc,denc,u)
9、用图形仿真方法(Simulink)分析单位加速度信号输入时闭环系统动态性能和稳态性能。 >> numdy=sym2poly(N)
numdy =
1.0e+037 * 0.8250 -2.1827 2.2623 -1.1331 0.2664 -0.0229
>> dendy=sym2poly(D)
dendy =1.0e+036 *
4.3723 -0.3141 -9.8182 6.0515 -0.0038 -0.2877
10、确定误差脉冲传递函数Ge(z)形式,满足单位速度信号输入时闭环稳态误差为零和实际闭环系统稳定的要求。
>> syms z b1 b2 b3 b4 b5 a3 a4 a5
>> Gezw=(1-z^-1)^2*(b1+b2*z^-1+b3*z^-2+b4*z^-3+b5*z^-4)
Gezw =
(1-1/z)^2*(b1+b2/z+b3/z^2+b4/z^3+b5/z^4)
11、确定闭环脉冲传递函数Gc(z)形式,满足控制器Dw(z)可实现、无波纹、最少拍和实际闭环系统稳定的要求。
>>
Gczw=z^-1*(1+2.904*z^-1)*(1-0.6703*z^-1)*(1-0.3011*z^-1)*(1+0.1908*z^-1)*(a3+a4*z^-1) Gczw =
1/z*(1+363/125/z)*(1-6703/10000/z)*(1-3011/10000/z)*(1+477/2500/z)*(a3+a4/z)
12、根据10、11、列写方程组,求解Gc(z)和Ge(z)中的待定系数并最终求解Gc(z)和Ge(z) 。
>> f5=subs(Gczw,z,1)-1
f5 =
[1**********]01/[1**********]00*a3+[1**********]01/[1**********]00*a4-1
>> f6=subs(diff(Gczw,1),z,1)
f6 =
[1**********]17/[1**********]00*a3-[1**********]223/[1**********]000*a4
>> [a3j a4j]=solve(f5,f6)
a3j =
[***********]8750000/[***********]59529201
a4j =
[***********]1250000/[***********]59529201
>> A=double([a3j a4j])
A =
0.4109 0.5226
>> Gczw=subs(Gczw,[a3 a4],A)
Gczw =
1/z*(1+363/125/z)*(1-6703/10000/z)*(1-3011/10000/z)*(1+477/2500/z)*([**************]/[**************]8+[**************]9/[**************]6/z)
>> f7=limit(Gezw,z,inf)-1
f7 =
b1-1
>> f8=subs(Gezw,z,-2.904)-1
f8 =
238144/131769*b1-29768000/47832147*b2+3721000000/[1**********]*b3-[1**********]0/[1**********]43*b4+[1**********]000/[**************]9*b5-1
>> f9=subs(Gezw,z,0.6703)-1
f9 =
10870209/44930209*b1+[1**********]0/[1**********]7*b2+[**************]0/[**************]1*b3+[***********]00/[***********]43*b4+[***********]000000/[***********]19329*b5-1
>> f10=subs(Gezw,z,0.3011)-1
f10 =
48846121/9066121*b1+[1**********]0/[1**********]*b2+[**************]0/[1**********]641*b3+[***********]00/[***********]*b4+[***********]000000/[***********]561*b5-1
>> f11=subs(Gezw,z,-0.1908)-1
f11 =
8862529/227529*b1-[1**********]/108531333*b2+[1**********]000/[1**********]*b3-[***********]/[1**********]157*b4+[***********]000/[**************]89*b5-1
>> [b1j,b2j,b3j,b4j,b5j]=solve(f7,f8,f9,f10,f11)
b1j =1
b2j =
[***********]50308402/[***********]59529201
b3j =
[***********]9641979/[***********]9932743
b4j =
-[***********]11371837/[***********]17489072
b5j =
-[***********]4420395/[***********]956652096
>> B=double([b1j,b2j,b3j,b4j,b5j])
B =
1.0000 1.5891 0.7830 -0.2080 -0.0584
>> Gezw=subs(Gezw,[b1 b2 b3 b4 b5],B)
Gezw =
(1-1/z)^2*(1+[**************]9/[**************]8/z+[**************]1/[**************]6
/z^2-[**************]7/[**************]68/z^3-[**************]3/[**************]68/z^4)
13、求针对单位速度信号输入的最少拍无波纹控制器Dw(z)并说明Dw(z)的可实现性。
>>Gz=0.68436*z^-1*(1+2.904*z^-1)*(1-0.6703*z^-1)*(1-0.3011*z^-1)*(1+0.1908*z^-1)/(1-z^-1)^2/(1-0.8187*z^-1)/(1-0.3679*z^-1)/(1-0.2019*z^-1)
Gz =
17109/25000/z*(1+363/125/z)*(1-6703/10000/z)*(1-3011/10000/z)*(1+477/2500/z)/(1-1/z)^2/(1-8187/10000/z)/(1-3679/10000/z)/(1-2019/10000/z)
>> Dwz=Gczw/Gezw/Gz
Dwz =
25000/17109*([**************]/[**************]8+[**************]9/[**************]6/z)/(1+[**************]9/[**************]8/z+[**************]1/[**************]6/z^2-[**************]7/[**************]68/z^3-[**************]3/[**************]68/z^4)*(1-8187/10000/z)*(1-3679/10000/z)*(1-2019/10000/z)
14、用程序仿真方法分析单位速度信号输入时闭环系统动态性能和稳态性能。
>> [N,D]=numden(simplify(Gczw));
>> numc=sym2poly(N)
numc =1.0e+029 *
0.5783 1.9635 0.2602 -1.6051 0.1282 0.0822
>> denc=sym2poly(D)
denc =
1.0e+029 *
1.4074 0 0 0 0 0 0
>> t=0:0.2:2
t =
0 0.2000 0.4000 0.6000 0.8000 1.0000
>> u=t
u =
0 0.2000 0.4000 0.6000 0.8000 1.0000
>> dlsim(numc,denc,u)
>> numdw=sym2poly(N)
numdw =
1e+027 *
1.8507 -0.2162 -2.2670 1.1602 -0.1431
>.0> dendw=sym2poly(D)
dendw =
1.0e+027 *
3.0821 4.8976 2.4133 -0.6410 -0.1801
16、根据8、9、14、15、的分析,说明有波纹和无波纹的差别和物理意义。
有波纹和无波纹的差别在于有波纹控制器经过一定的采样周期之后,其输入跟踪输出,但其数字控制器的曲线会出现小的波动,该波动为波纹,而无波纹数字控制器 D(z)的输出曲线经过一定采样周期之后会为一常数,不会产生波纹。最少拍控制系统的系统结构简单,设计完成后容易在计算机上实现。但它对系统的适应性差,只能保证在采样点上的输出可以跟踪输入,有可能在采样点之间呈现波纹,会引起系统的振荡。产生波纹的原因是U(z)不能在优先个采样周期内变为0,即u(KT)不等于零,使系统的输出 y(t)产生波动。实现最少拍无波纹的控制,必须要系统在典型信号的作用下,经有限个采样周期后,系统的稳态误差保持恒值或为0,系统的数字控制器 D(z)的输出 u(KT)也必须保持为0。
心得体会
短短两个周末的实习就这样结束了。从这次实习中,我认识到了亲身实践是我们大学生活很有用也很充实的一步,通过实习能学到在课堂上学不到的很多东西。在课堂上我们仅仅知道该怎么去做,但没有亲自实践,只能是靠想象,所以有很多东西都难以理解。我发现很多知识都是以前在课本上学过的,当时印象并不怎么深刻,但是,一经实习,似乎都能很容易理解其原理,并能对其有更深的记忆。
总体来说,这次实习我受益匪浅。在摸索该如何运用MATLAB仿真课程实现所需功能的过程中,培养了我的逻辑思维能力,增加了实际编程的能力。在让我体会到了分析与设计系统的艰辛的同时,更让我体会到成功的喜悦和快乐。总之,这次实验我收获颇多。实践是获得知识的一种最好的手段!
在这里,我非常地感谢老师的指导,没有您的指导,我们的实习也不会进行的如此顺利;也得感谢我的同学们,感谢他们给予我的帮助,才使得我们的实习很好的完成;同时也得感谢学校、学院给我们提供这么好的实验环境。
我忠心的感谢范杰老师,请允许我由衷的送上一句,老师,您辛苦了!
参考文献:
《MATLAB 7.0从入门到精通》(修订版)刘保柱 人民邮电
《MATLAB基础及应用》 于润伟 机械工业
《MATLAB在自动控制中的应用》 吴晓燕 西安电子科技大
附录:(程序)
>> z=[-2 -6];p=[0 0 -1 -5 -8];k=668;
>> Gs=zpk(z,p,k)
>> Gz=c2d(Gs,0.2,'zoh')
>> [a,b,c]=zpkdata(Gz)
>> Gz=zpk(a,b,c,0.2,'variable','z^-1')
>> syms z b0 b1 a0 a1 a2 a3
>> Gez=(1-z^-1)^3*(1+b0*z^-1)
>> Gcz=z^-1*(1+2.904*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,-2.904)-1
>> boj=solve(f4)
>> B=double(boj)
>> Gez=subs(Gez,[1 b0],[1 boj])
>>
Gz=0.68436*z^-1*(1+2.904*z^-1)*(1-0.6703*z^-1)*(1-0.3011*z^-1)*(1+0.1908*z^-1)/(1-z^-
1)^2/(1-0.8187*z^-1)/(1-0.3679*z^-1)/(1-0.2019*z^-1)
>> Dyz=Gcz/Gez/Gz
>> [N,D]=numden(simplify(Gcz));
>> numc=sym2poly(N)
>> denc=sym2poly(D)
>> t=0:0.2:10
>> u=0.5*(t.^2)
>> dlsim(numc,denc,u)
>> numdy=sym2poly(N)
>> dendy=sym2poly(D)
>> syms z b1 b2 b3 b4 b5 a3 a4 a5
>> Gezw=(1-z^-1)^2*(b1+b2*z^-1+b3*z^-2+b4*z^-3+b5*z^-4)
>>
Gczw=z^-1*(1+2.904*z^-1)*(1-0.6703*z^-1)*(1-0.3011*z^-1)*(1+0.1908*z^-1)*(a3+a4*z^-1) >> f5=subs(Gczw,z,1)-1
>> f6=subs(diff(Gczw,1),z,1)
>> [a3j a4j]=solve(f5,f6)
>> A=double([a3j a4j])
>> f7=limit(Gezw,z,inf)-1
>> f8=subs(Gezw,z,-2.904)-1
>> f9=subs(Gezw,z,0.6703)-1
>> f10=subs(Gezw,z,0.3011)-1
>> f11=subs(Gezw,z,-0.1908)-1
>> [b1j,b2j,b3j,b4j,b5j]=solve(f7,f8,f9,f10,f11)
>> B=double([b1j,b2j,b3j,b4j,b5j])
>> Gezw=subs(Gezw,[b1 b2 b3 b4 b5],B)
>>
Gz=0.68436*z^-1*(1+2.904*z^-1)*(1-0.6703*z^-1)*(1-0.3011*z^-1)*(1+0.1908*z^-1)/(1-z^-1)^2/(1-0.8187*z^-1)/(1-0.3679*z^-1)/(1-0.2019*z^-1)
>> Dwz=Gczw/Gezw/Gz
>> [N,D]=numden(simplify(Gczw));
>> numc=sym2poly(N)
>> denc=sym2poly(D)
>> t=0:0.2:2
>> u=t
>> dlsim(numc,denc,u)
>> [N,D]=numden(simplify(Dwz)); >> numdw=sym2poly(N)
>> dendw=sym2poly(D)