matlab课程设计.docx
- 文档编号:6337541
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:18
- 大小:238.60KB
matlab课程设计.docx
《matlab课程设计.docx》由会员分享,可在线阅读,更多相关《matlab课程设计.docx(18页珍藏版)》请在冰豆网上搜索。
matlab课程设计
基于MATLAB的直流电机双闭环
调速系统的设计与仿真
班级:
自动化12-1班
姓名:
学号:
指导老师:
前言
MATLAB是一种对技术计算高性能的语言,它集成了计算、可视化和编程于一个易用的环境中。
在此环境下,问题和解答都表达为我们熟悉的数学符号。
典型的应用有:
1.数学和计算;2.算法开发;3.建模、模拟和原形化;4.数据分析、探索和可视化;5.科学与工程制图;6.应用开发,包括图形用户界面的建立。
MATLAB在信号与系统中的应用主要包括符号运算和数值计算仿真分析。
由于信号与系统课程的许多内容都是基于公式演算,而MATLAB借助符号数学工具箱提供的符号运算功能,能基本满足信号与系统课程的需求。
例如解微分方程、傅里叶正反变换、拉普拉斯正反变换和z正反变换等。
MATLAB在信号与系统中的另一主要应用是数值计算与仿真分析,主要包括函数波形绘制、函数运算、冲击响应与阶跃响应仿真分析、信号的时域分析、信号的频谱分析、系统的S域分析和零极点图绘制等内容。
数值计算仿真分析可以帮助学生更深入地理解理论知识,并为将来使用MATLAB进行信号处理领域的各种分析和实际应用打下基础。
此次课程设计主要是为了进一步熟悉对matlab软件的使用,以及学会利用matlab对直流电机双闭环调速系统这种实际问题进行处理,将理论应用于实际,加深对它的理解。
目录
前言
第一章Matlab软件简介
1.1Matlab的产生和历史背景……………………………………………………1
1.2Matlab的语言特点……………………………………………………………2
第二章系统介绍
2.1设计参数要求…………………………………………………………………4
2.2稳态参数计算…………………………………………………………………4
2.3电流环设计……………………………………………………………………5
2.4转速换设计……………………………………………………………………8
第三章仿真调试
3.1仿真结果分析………………………………………………………………11
3.2转速电流双闭环程序流程框图……………………………………………11
3.3Matlab源程序………………………………………………………………12
第四章总结…………………………………………………………………14
参考文献
第一章Matlab软件简介
1.1Matlab的产生和历史背景
在20世纪70年代中期,CleveMoler博士和其同事在美国国家科学基金的资助下开发了调用EISPACK和LINPACK的FORTRAN子程序库。
EISPACK是特征值求解的FORTRAN程序库,LINPACK是解线性方程的程序库。
在当时,这两个程序库代表矩阵运算的最高水平。
到20世纪70年代后期,身为美国NewMexico大学计算机系系主任的CleveMoler,在给学生讲授线性代数课程时,想教学生使用EISPACK和LINPACK程序库,但他发现学生用FORTRAN编写接口程序很费时间,于是他开始自己动手,利用业余时间为学生编写EISPACK和LINPACK的接口程序。
CleveMoler给这个接口程序取名为MATLAB,该名为矩阵(matrix)和实验室(laboratory)两个英文单词的前三个字母的组合。
在以后的数年里,MATLAB在多所大学里作为教学辅助软件使用,并作为面向大众的免费软件广为流传。
在当今30多个数学类科技应用软件中,就软件数学处理的原始内核而言,可分为两大类。
一类是数值计算型软件,如MATLAB、Xmath、Gauss等,这类软件长于数值计算,对处理大批数据效率高;另一类是数学分析型软件,如Mathematica、Maple等,这类软件以符号计算见长,能给出解析解和任意精度解,其缺点是处理大量数据时效率较低。
MathWorks公司顺应多功能需求之潮流,在其卓越数值计算和图示能力的基础上,又率先在专业水平上开拓了其符号计算、文字处理、可视化建模和实时控制能力,开发了适合多学科、多部门要求的新一代科技应用软件MATLAB。
经过多年的国际竞争,MATLAB已经占据了数值型软件市场的主导地位。
在MATLAB进入市场前,国际上的许多应用软件包都是直接以FORTRAN和C语言等编程语言开发的。
这种软件的缺点是使用面窄、接口简陋、程序结构不开放以及没有标准的基库,很难适应各学科的最新发展,因而很难推广。
MATLAB的出现,为各国科学家开发学科软件提供了新的基础。
在MATLAB问世不久的20世纪80年代中期,原先控制领域里的一些软件包纷纷被淘汰或在MATLAB上重建。
时至今日,经过MathWorks公司的不断完善,MATLAB已经发展成为适合多学科、多种工作平台的功能强劲的大型软件。
在国外,MATLAB已经经受了多年考验。
在欧美等高校,MATLAB已经成为线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具;成为攻读学位的大学生、硕士生、博士生必须掌握的基本技能。
在设计研究单位和工业部门,MATLAB被广泛用于科学研究和解决各种具体问题。
1.2Matlab的语言特点
一种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特点。
正如同FORTRAN和C等高级语言使人们摆脱了需要直接对计算机硬件资源进行操作一样,被称作为第四代计算机语言的MATLAB,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。
MATLAB的最突出的特点就是简洁。
MATLAB用更直观的、符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代码。
MATLAB给用户带来的是最直观、最简洁的程序开发环境。
以下简单介绍一下MATLAB的主要特点。
①语言简洁紧凑,使用方便灵活,库函数极其丰富。
MATLAB程序书写形式自由,利用其丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。
由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。
可以说,用MATLAB进行科技开发是站在专家的肩膀上。
具有FORTRAN和C等高级计算机语言知识的读者可能已经注意到,如果用FORTRAN或C语言去编写程序,尤其当涉及矩阵运算和画图时,编程会很麻烦。
例如,如果用户想求解一个线性代数方程,就得编写一个程序块读入数据,然后再使用一种求解线性方程的算法(例如追赶法)编写一个程序块来求解方程,最后再输出计算结果。
在求解过程中,最麻烦的要算第二部分。
解线性方程的麻烦在于要对矩阵的元素作循环,选择稳定的算法以及代码的调试都不容易。
即使有部分源代码,用户也会感到麻烦,且不能保证运算的稳定性。
解线性方程的程序用FORTRAN和C这样的高级语言编写至少需要好几十行。
再如用双步QR方法求解矩阵特征值,如果用FORTRAN编写,至少需要四百多行,调试这种几百行的计算程序可以说很困难。
以下为用MATLAB编写以上两个小程序的具体过程。
用MATLAB求解下列方程,并求矩阵A的特征值。
其中:
解为:
x=A\b;设A的特征值组成的向量为e,e=eig(A)。
可见,MATLAB的程序极其简短。
更为难能可贵的是,MATLAB甚至具有一定的智能水平,比如上面的解方程,MATLAB会根据矩阵的特性选择方程的求解方法,所以用户根本不用怀疑MATLAB的准确性。
②运算符丰富。
由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。
③MATLAB既具有结构化的控制语句(如for循环、while循环、break语句和if语句),又有面向对象编程的特性。
④语法限制不严格,程序设计自由度大。
例如,在MATLAB里,用户无需对矩阵预定义就可使用。
⑤程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。
⑥MATLAB的图形功能强大。
在FORTRAN和C语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。
MATLAB还具有较强的编辑图形界面的能力。
⑦MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。
由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。
⑧功能强劲的工具箱是MATLAB的另一重大特色。
MATLAB包含两个部分:
核心部分和各种可选的工具箱。
核心部分中有数百个核心内部函数。
其工具箱又可分为两类:
功能性工具箱和学科性工具箱。
功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实时交互功能。
功能性工具箱能用于多种学科。
而学科性工具箱是专业性比较强的,如control、toolbox、signalprocessingtoolbox、communicationtoolbox等。
这些工具箱都是由该领域内的学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高、精、尖的研究。
第二章系统介绍
2.1设计参数要求
转速、电流双闭环直流调速系统,采用双极式H桥PWM方式驱动。
电机参数:
额定功率200W;
额定电压48V;
额定电流4A;
额定转速500r/min;
电枢回路总电阻R=8Ω;
允许电流过载倍数λ=2;
电势系数Ce=0.04V·min/r;
电磁时间常数TL=0.008s;
机电时间常数Tm=0.5;
电流反馈滤波时间常数Toi=0.2ms;
转速反馈滤波时间常数Ton=1ms
要求转速调节器和电流调节器的最大输入电压U*nm=U*im=10V;
两调节器的输出限幅电压为10V;
PWM功率变换器的的开关频率f=10kHz;
放大倍数K=4.8;
动态参数设计指标:
稳态无静差;
电流超调量
5%;
空载启动到额定转速时的转速超调量
25%;
过渡过程时间ts=0.5s。
2.2稳态参数计算
根据两调节器都选用PI调节器的结构,稳态时电流和转速偏差均应为零;两调节器的输出限幅值均选择为12V。
电流反馈系数:
转速反馈系数:
2.3电流环设计
(1)确定时间常数
电流滤波时间常数T
=0.2ms,按电流环小时间常数环节的近似处理方法,则
(2)选择电流调节器结构
电流环可按典型Ⅰ型系统进行设计。
电流调节器选用PI调节器,其传递函数为
(3)选择调节器参数
超前时间常数:
=T
=0.008s
电流环超调量为σ
5%,电流环开环增益:
应取
,则
=
=
=1666.67
于是,电流调节器比例系数为
(4)检验近似条件
电流环截止频率
=
=1666.671/s
近似条件1:
现在,
=
=3333.33>
,满足近似条件。
近似条件2:
现在,
=
=47.43<
,满足近似条件。
近似条件3:
现在,
=
=2357.02>
,满足近似条件。
(5)MATLAB仿真
1)电流环给定阶跃响应的MATLAB仿真
未经过小参数环节合并的电流环单位阶跃响应
经过小参数环节合并的电流环单位阶跃响应
2)电流环频率分析的MATLAB仿真
未经过小参数环节合并的电流环频率响应
经过小参数环节合并的电流环频率响应
2.4转速环设计
(1)确定时间常数
电流环的等效时间常数:
2
=0.0006s
转速滤波时间常数:
T
=1ms=0.001,
转速环小时间常数近似处理:
=2
+T
=0.0006+0.001=0.0016s
(2)选择转速调节器结构
由转速稳态无静差要求,转速调节器中必须包含积分环节;又根据动态要求,应该按典型Ⅱ型系统校正转速环,因此转速调节器应该选择PI调节器,其传递函数为
(3)选择调节器参数
按跟随性和抗扰性能均比较好的原则,取h=5,则转速调节器的超前时间常数为
=h·T
=5
0.0016=0.008s
转速环开环增益
=
=468751/
于是,转速调节器比例系数为
=
=58.59
(4)校验近似条件
转速环的开环截止频率为
=
=
·
=46875
0.008=3751/s
近似条件1:
现在,
=
=666.67>
,满足近似条件。
近似条件2:
现在,
=
=430.33>
,满足近似条件。
(5)MATLAB仿真
1)转速环阶跃信号响应分析的MATLAB仿真
未经过小参数环节合并的转速环单位阶跃响应
经过小参数环节合并的电流环单位阶跃响应
2)转速环频率分析的MATLAB仿真
未经过小参数环节合并的转速环频率响应
经过小参数环节合并的转速环频率响应
第三章仿真调试
3.1仿真结果分析
根据设计结果的模拟仿真,可以得到设计的调节系统稳态时转速无误差。
可以看出:
作为内环的调节器,在外环转速的调节过程中,它的作用是使电流紧紧跟随其给定电压(即外环调节器的输出量)变化。
双闭环系统中,由于增设了电流内环,电压波动可以通过电流反馈得到比较及时的调节,不必等它影响到转速以后才能反馈回来,抗扰性能大有改善。
在转速动态过程中,保证获得电机允许的最大电流,从而加快动态过程。
在实际系统中,电网电压的波动和外负载的波动会对系统的超调与稳定有一定的影响,在仿真的时候可以加以考虑,最终可以看出系统对于外界干扰的协调能力很强。
3.2转速电流双闭环程序流程框图
3.3Matlab源程序
>>s1=tf(1.25,[0.00021]);
>>s2=tf(4.8,[0.00011]);
>>s3=tf(0.125,[0.0081]);
>>w=17.78*tf([0.0081],[0.0080]);
>>figure
(1);
>>margin(s1*s2*s3*w);
>>holdon
>>gridon;
>>figure
(2)
>>clos1=s1*s2*s3*w/(1+s1*s2*s3*w);
>>t=0:
0.0001:
0.008;
>>step(clos1,t)
>>gridon;
>>s1=tf(6,[0.00031]);
>>s2=tf(0.125,[0.0081]);
>>w=17.78*tf([0.0081],[0.0080]);
>>figure(3);
>>margin(s1*s2*w);
>>holdon
>>gridon;
>>figure(4);
>>clos1=s1*s2*w/(1+s1*s2*w);
>>t=0:
0.0001:
0.008;
>>step(clos1,t)
>>gridon;
>>s1=tf(1,[0.0011]);
>>s2=tf(0.8,[0.00061]);
>>s3=tf(8,[0.50]);
>>n=1/0.04;
>>s4=tf(0.02,[0.0011]);
>>g=58.59*tf([0.0081],[0.0080]);
>>figure(5);
>>margin(s1*s2*s3*s4*n*g);
>>holdon
>>gridon;
>>figure(6);
>>clos1=s1*s2*s3*s4*n*g/(1+s1*s2*s3*s4*n*g);
>>t=0:
0.001:
0.08;
>>step(clos1,t)
>>gridon;
>>s1=tf(0.016,[0.00161]);
>>s2=tf(8,[0.50]);
>>n=1/0.04;
>>g=58.59*tf([0.0081],[0.0080]);
>>figure(5);
>>margin(s1*s2*n*g);
>>holdon
>>gridon;
>>figure(6);
>>clos1=s1*s2*n*g/(1+s1*s2*n*g);
>>t=0:
0.001:
0.08;
>>step(clos1,t)
>>gridon;
第四章总结
课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握计算机Matlab语言开发技术是十分重要的。
在这短短设计期间我获取了不少新知识也巩固了许多老知识。
实训编程的同时暴露出了许多我自身存在的问题,同时也对自身有了很大的提高,我体会到了老师和同学们的热心帮助,无论面对学习中多大的困难,同学们都会帮助我,老师也会帮助我,大家就像兄弟姐妹一样。
回顾起此次课程设计,至今我仍感慨颇多。
的确,自从拿到题目到完成整个编程,从理论到实践,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,这毕竟独立做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
通过这次课程设计之后,一定把以前所学过的知识重新温故。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的辛勤指导下,终于迎刃而解。
同时,在老师的身上我学得到很多实用的知识,在次我表示感谢!
同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!
参考文献
[1]刘慧颖.MATLABR2007基础教程【M】.北京:
清华大学出版社,2008.
[2]瞿亮主.基于MATLAB的控制系统计算机仿真【M】.北京:
清华大学出版社,北京交通大学出版社,2006.
[3]薛定宇.反馈控制系统设计与分析【M】.北京:
清华大学出版社,2000.
[4]楼天顺,于卫.基于MATLAB的系统分析与设计【M】.西安:
西安电子科技大学出版社,1998.
[5]张晋格.自动控制原理【M】.哈尔滨:
哈尔滨工业大学出版社,2003.
[6]张晓华.控制系统数字仿真与CAD【M】.北京:
机械工业出版社,1999.
课程设计成绩评定
专业
班级
姓名
学号
教研室主任
指导教师
指导教师评语:
签字:
年月日
设计成绩:
签字:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 课程设计