自动控制原理课程设计报告.docx
《自动控制原理课程设计报告.docx》由会员分享,可在线阅读,更多相关《自动控制原理课程设计报告.docx(32页珍藏版)》请在冰豆网上搜索。
![自动控制原理课程设计报告.docx](https://file1.bdocx.com/fileroot1/2023-2/2/832686d4-6a5a-43e2-a5a3-af0d14eea7f6/832686d4-6a5a-43e2-a5a3-af0d14eea7f61.gif)
自动控制原理课程设计报告
《自动控制原理》
课程设计报告
课题名称
Matlab软件应用
学院
自动控制与机械工程学院
专业
电气工程及其自动化专业
班级
2009级电气XX班
姓名
XXX
学号
XXXXXXXXX
时间
XXXX年XX月XX日
自动控制原理课程设计报告
摘要
MATLAB作为自动控制原理课程学习的主要工具之一在国内外被广泛使用。
该文根据自动控制原理课程学生学习的特点,探讨了构建基于MATLAB的实时控制实验系统平台,以及该平台在自动控制原理课程实验教学中的使用。
关键词 自动控制原理实验MATLAB;SIMULINK
Abstract:
MATLABisthemostlyusedtoolinthecourseofcontroltheory.Thepaperbaseonlearningspecialtyaboutcontroltheory,ithasestablishedenvironmentforexperimentsystemwithrealtimecontrolling.Thepaperintroducetousingabouttheenvironment.
Keywords:
automationcontroltheoryexperimentMATLABSIMULINK
目录
一、实验目的3
二、实验原理3
<一>、MATLAB简介3
<二>、MATLAB桌面系统4
<三>、MATLAB命令窗口4
<四>、MATLAB基本操作命令5
1、简单矩阵的输入5
2、复数矩阵输入5
3、MATLAB语句和变量5
4、语句以“%”开始和以分号“;”结束的特殊效用6
5、获取工作空间信息6
6、常数与算术运算符6
7、选择输出格式6
8、MATLAB图形窗口7
9、剪切板的使用7
10、MATLAB编程指南7
三、MATLAB语言的特点及其主要功能8
<一>、MATLAB语言的特点8
<二>、MATLAB语言的主要功能8
1)数值计算功能8
2)符号计算功能8
3)数据分析功能8
4)动态仿真功能9
5)程序接口功能9
6)文字处理功能9
四、具体题目分析说明10
五、课程设计体会27
六、参考文献28
一、实验目的
1、了解matlab软件的基本特点和功能,熟悉其界面、菜单和工具条;掌握线性系统模型的计算机表示方法、变换以及模型间的相互转换。
了解控制系统工具箱的组成、特点及应用;掌握求线性定常连续系统输出响应的方法,运用连续系统时域响应函数(impulse,step,lsim),得到系统的时域响应曲线。
2、掌握使用MATLAB软件作出系统根轨迹;利用根轨迹图对控制系统进行分析;掌握使用MATLAB软件作出开环系统的波特图,奈奎斯特图;观察控制系统的观察开环频率特性,对控制系统的开环频率特性进行分析;
3、掌握MATLAB软件中simulink工具箱的使用;熟悉simulink中的功能模块,学会使用simulink对系统进行建模;掌握simulink的仿真方法。
4、通过这样一个典型的自动控制原理仿真实验我们可以解决如下几个问题:
如何来对伺服系统建模;掌握几种不同的控制器参数调节方法;根据期望性能指标设计相应的控制器,并进行仿真研究;将控制器用于实时控制,并通过实验结果分析其性能。
二、实验原理
<一>、MATLAB简介
MATLAB是Mathworks公司开发的一种集数值计算、符号计算和图形可视化三大基本功能于一体的功能强大、操作简单的优秀工程计算应用软件。
MATLAB不仅可以处理代数问题和数值分析问题,而且还具有强大的图形处理及仿真模拟等功能。
从而能够很好的帮助工程师及科学家解决实际的技术问题。
MATLAB的含义是矩阵实验室(MatrixLaboratory),最初主要用于方便矩阵的存取,其基本元素是无需定义维数的矩阵。
经过十几年的扩充和完善,现已发展成为包含大量实用工具箱(Toolbox)的综合应用软件,不仅成为线性代数课程的标准工具,而且适合具有不同专业研究方向及工程应用需求的用户使用。
MATLAB最重要的特点是易于扩展。
它允许用户自行建立完成指定功能的扩展MATLAB函数(称为M文件),从而构成适合于其它领域的工具箱,大大扩展了MATLAB的应用范围。
目前,MATLAB已成为国际控制界最流行的软件,控制界很多学者将自己擅长的CAD方法用MATLAB加以实现,出现了大量的MATLAB配套工具箱,如控制系统工具箱(controlsystemstoolbox),系统识别工具箱(systemidentificationtoolbox),鲁棒控制工具箱(robustcontroltoolbox),信号处理工具箱(signalprocessingtoolbox)以及仿真环境SIMULINK等。
<二>、MATLAB桌面系统
MATLAB的桌面系统由桌面平台以及桌面组件共同构成,如图1。
桌面平台是各桌面组件的展示平台,它提供了一系列的菜单操作以及工具栏操作,而不同功能的桌面组件构成了整个MATLAB操作平台。
其组件主要包含如下8个组件部分:
①命令窗口(CommandWindow)②历史命令窗口(CommandHistory)③组件平台(LaunchPad)④路径浏览器(CurrentDirectoryBrowser)⑤帮助浏览器(HelpBrowser)⑥工作空间浏览器(WorkspaceBrowser)⑦数组编辑器(ArrayEditor)⑧M文件编辑调试器(Editor-Debugger)。
用户可以在View菜单下选择打开或关闭某个窗口。
图1 MATLAB桌面平台
<三>、MATLAB命令窗口
MATLAB可以认为是一种解释性语言。
在MATLAB命令窗口中,标志>>为命令提示符,在命令提示符后面键入一个MATLAB命令时,MATLAB会立即对其进行处理,并显示处理结果。
这种方式简单易用,但在编程过程中要修改整个程序比较困难,并且用户编写的程序不容易保存。
如果想把所有的程序输入完再运行调试,可以用鼠标点击快捷
或File|New|M-file菜单,在弹出的编程窗口中逐行输入命令,输入完毕后点击Debug|Run(或F5)运行整个程序。
运行过程中的错误信息和运行结果显示在命令窗口中。
整个程序的源代码可以保存为扩展名为“.m”的M文件。
<四>、MATLAB基本操作命令
这里简单介绍一些基本知识和操作命令。
1、简单矩阵的输入
MATLAB是一种专门为矩阵运算设计的语言,所以在MATLAB中处理的所有变量都是矩阵。
这就是说,MATLAB只有一种数据形式,那就是矩阵,或者数的矩形阵列。
标量可看作为1×1的矩阵,向量可看作为n×1或1×n的矩阵。
这就是说,MATLAB语言对矩阵的维数及类型没有限制,即用户无需定义变量的类型和维数,MATLAB会自动获取所需的存储空间。
输入矩阵最便捷的方式为直接输入矩阵的元素,其定义如下:
元素之间用空格或逗号间隔;
用中括号([])把所有元素括起来;
用分号(;)指定行结束。
MATLAB的矩阵输入方式很灵活,大矩阵可以分成n行输入,用回车符代替分号或用续行符号(…)将元素续写到下一行。
以上三种输入方式结果是相同的。
一般若长语句超出一行,则换行前使用续行符号(…)。
在MATLAB中,矩阵元素不限于常量,可以采用任意形式的表达式。
同时,除了直接输入方式之外,还可以采用其它方式输入矩阵,如:
利用内部语句或函数产生矩阵;
利用M文件产生矩阵;
利用外部数据文件装入到指定矩阵。
2、复数矩阵输入
MATLAB允许在计算或函数中使用复数。
输入复数矩阵有两种方法:
(1)a=[12;34]+i*[56;78]
(2)a=[1+5i2+6i;3+7i4+8i]
注意,当矩阵的元素为复数时,在复数实部与虚部之间不允许使用空格符。
如1+5i将被认为是1和5i两个数。
另外,MATLAB表示复数时,复数单位也可以用j。
3、MATLAB语句和变量
MATLAB是一种描述性语言。
它对输入的表达式边解释边执行,就象BASIC语言中直接执行语句一样。
MATLAB语句的常用格式为:
变量=表达式[;]
或简化为:
表达式[;]
表达式可以由操作符、特殊符号、函数、变量名等组成。
表达式的结果为一矩阵,它赋给左边的变量,同时显示在屏幕上。
如果省略变量名和“=”号,则MATLAB自动产生一个名为ans的变量来表示结果。
MATAB允许在函数调用时同时返回多个变量,而一个函数又可以由多种格式进行调用,语句的典型格式可表示为:
[返回变量列表]=fun-name(输入变量列表)
4、语句以“%”开始和以分号“;”结束的特殊效用
在MATLAB中以“%”开始的程序行,表示注解和说明。
符号“%”类似于C++中的“//”。
这些注解和说明是不执行的。
这就是说,在MATLAB程序行中,出现“%”以后的一切内容都是可以忽略的。
分号用来取消打印,如果语句最后一个符号是分号,则打印被取消,但是命令仍在执行,而结果不再在命令窗口或其它窗口中显示。
这一点在M文件中大量采用,以抑制不必要的信息显示。
5、获取工作空间信息
MATLAB开辟有一个工作空间,用于存储已经产生的变量。
变量一旦被定义,MATLAB系统会自动将其保存在工作空间里。
在退出程序之前,这些变量将被保留在存储器中。
为了得到工作空间中的变量清单,可以在命令提示符>>后输入who或 whos命令,当前存放在工作空间的所有变量便会显示在屏幕上。
命令clear能从工作空间中清除所有非永久性变量。
如果只需要从工作空间中清除某个特定变量,比如“x”,则应输入命令clearx。
6、常数与算术运算符
MATLAB采用人们习惯使用的十进制数。
MATLAB提供了常用的算术运算符:
+,-,
,∕(﹨),^(幂指数)。
应该注意:
(∕)右除法和(﹨)左除法这两种符号对数值操作时,其结果相同,其斜线下为分母,如1∕4与4﹨1,其结果均为0.25,但对矩阵操作时,左、右除法是有区别的。
7、选择输出格式
输出格式是指数据显示的格式,MATLAB提供format命令可以控制结果矩阵的显示,而不影响结果矩阵的计算和存储。
所有计算都是以双精度方式完成的。
如果矩阵的所有元素都是整数,则矩阵以不带小数点的格式显示。
如果矩阵中至少有一个元素不是整数,则有多种输出格式。
常见格式有以下四种:
① formatshort(短格式,也是系统默认格式)
② formatshort e(短格式科学表示)
③ formatlong(长格式)
④ formatlonge(长格式科学表示)
8、MATLAB图形窗口
当调用了一个产生图形的函数时,MATLAB会自动建立一个图形窗口。
这个窗口还可分裂成多个窗口,并可在它们之间选择,这样在一个屏上可显示多个图形。
图形窗口中的图形可通过打印机打印出来。
若想将图形导出并保存,可用鼠标点击菜单File|Export,导出格式可选emp、bmp、jpg等。
命令窗口的内容也可由打印机打印出来:
如果事先选择了一些内容,则可打印出所选择的内容;如果没有选择内容,则可打印出整个工作空间的内容。
9、剪切板的使用
利用Windows的剪切板可在MATLAB与其它应用程序之间交换信息。
要将MATLAB的图形移到其它应用程序,首先按Alt-PrintScreen键,将图形复制到剪切板中,然后激活其它应用程序,选择edit(编辑)中的paste(粘贴),就可以在应用程序中得到MATLAB中的图形。
当然还可以借助于copytoBitmap 或copytoMetafile 选项来传递图形信息。
要将其它应用程序中的数据传递到MATLAB,应先将数据放入剪切板,然后在MATLAB中定义一个变量来接收。
10、MATLAB编程指南
MATLAB的编程效率比BASIC、C、FORTRAN和PASCAL等语言要高,且易于维护。
在编写小规模的程序时,可直接在命令提示符>>后面逐行输入,逐行执行。
M文件是用MATLAB语言编写的可在MATLAB环境中运行的磁盘文件。
它为脚本文件(ScriptFile)和函数文件(FunctionFile),这两种文件的扩展名都是.m。
脚本文件是将一组相关命令编辑在一个文件中,也称命令文件。
脚本文件的语句可以访问MATLAB工作空间中的所有数据,运行过程中产生的所有变量都是全局变量。
在每一个M文件的开头,建立详细的注释是非常有用的。
由于MATLAB提供了大量的命令和函数,想记住所有函数及调用方法一般不太可能,通过联机帮助命令help可容易地对想查询的各个函数的有关信息进行查询。
该命令使用格式为:
help 命令或函数名
注意:
若用户把文件存放在自己的工作目录上,在运行之前应该使该目录处在MATLAB的搜索路径上。
当调用时,只需输入文件名,MATLAB就会自动按顺序执行文件中的命令。
三、MATLAB语言的特点及其主要功能
<一>、MATLAB语言的特点
1、友好的工作平台和编程环境
2、简单易用的程序语言
3、强大的科学计算及数据处理能力
4、出色的图形处理功能
5、应用广泛的模块集和工具箱
6、实用的程序接口和发布平台
7、模块化的设计和系统级的仿真
<二>、MATLAB语言的主要功能
MATLAB之所以成为世界顶尖的科学计算与数学应用软件,是因为它随着版本的升级与不断完善而具有愈来愈强大的功能。
1)数值计算功能
MATLAB出色的数值计算功能是使之优于其他数学应用软件的决定性因素之一,尤其是当今流行的MALAB7.0,其数值计算功能可谓十分完善了。
2)符号计算功能
科学计算有数值计算与符号计算之分,仅有优异的数值计算功能并不能满足解决科学计算时的全部需要。
在数学科学、应用科学和工程计算领域,常常会遇到符号计算问题。
1993年,MathWorks公司从加拿大Waterloo大学购买了Maple的使用权,并以Maple的“内核”作为符号计算功能的“引擎”,依靠Maple已有的库函数,开发出了在MATLAB环境下实现符号计算功能的系统组件。
3)数据分析功能
MATLAB不但在科学计算方面具有强大的功能,而且在数值计算结果的分析和数据可视化方面也有着其他同类软件难以匹敌的优势。
在科学计算和工程应用中,技术人员经常会遇到大量的原始数据和数值计算结果需要进行分析,而对数据的分析并非易事。
MATLAB能将这些数据以图形的方式显示出来,不仅使数据间的关系清晰明了,而且对于揭示其内在本质往往有着非常重要的作用。
4)动态仿真功能
MATLAB提供了一个模拟动态系统的交互式程序SIMULINK,允许用户在屏幕上绘制框图来模拟一个系统,并能动态地控制该系统。
SIMULINK采用鼠标驱动方式,能处理线性、非线性、连续、离散等多种系统。
SIMULINK还为用户提供了两个应用程序扩展集:
SimulinkExtensions和Blocksets。
其中SimulinkExtensions是支持在SIMULINK环境下进行系统开发的一些可选择的工具类应用程序,包括SimulinkAccelerator、Real2TimeWorkshop以及Stateflow;而Blocksets则是针对DSP(数字信号处理)、Communications(通信)、NonlinearControlDesign(非线性控制设计)、FixedPoint(不动点)等几个特殊应用领域设计的SIMULINK程序的集合。
5)程序接口功能
MATLAB提供了方便的应用程序接口(API),用户可以在MATLAB环境下直接调用已经编译过的C和Fortran子程序,可以在MATLAB和其他应用程序之间建立客户机ö服务器关系。
同样,在C和Fortran程序中,也可以调用MATLAB的函数或命令,使得这些语言可以充分用MATLAB强大矩阵运算功能和方便的绘图功能。
6)文字处理功能
MATLABNotebook能成功地将MATLAB与文字处理系统MicrosoftWord集成一个整体,为用户进行字处理、科学计算、工程设计等营造了一个完美统一的工作环境。
用户不仅可以利用Word强大的文字编辑处理功能,极其方便地创建MATLAB的系统手册、技术报告、命令序列、函数程序、注释文档以及与MATLAB有关的教科书等6种文档,而且还能从Word访问MATLAB的数值计算和可视化结果,直接利用Word对由MATLAB所生成的图形图像进行移动、缩放、剪裁、编辑等加工处理。
四、具体题目分析说明
1.用matlab语言编制程序,实现以下系统:
1)
2)
实现1)的程序如下:
clear
num=[524018];
den=[14622];
tf(num,den)
结果如下:
Transferfunction:
5s^3+24s^2+18
-----------------------------
s^4+4s^3+6s^2+2s+2
实现2的程序如下:
clear
num=4*conv([12],conv([166],[166]));
den=conv(conv([10],conv(conv([11],[11]),[11])),[1325]);
G=tf(num,den);
Gs=zpk(G)
结果如下:
Zero/pole/gain:
4(s+4.732)^2(s+2)(s+1.268)^2
--------------------------------------------
s(s+2.904)(s+1)^3(s^2+0.09584s+1.722)
2.两环节G1、G2串联,求等效的整体传递函数G(s)
程序如下:
clear
G1=tf(2,[13]);
G2=tf(7,[121]);
Gs=series(G1,G2)
结果如下:
Transferfunction:
14
---------------------
s^3+5s^2+7s+3
3.两环节G1、G2并联,求等效的整体传递函数G(s)
程序如下:
clear
G1=tf(2,[13]);
G2=tf(7,[121]);
Gs=parallel(G1,G2)
结果如下:
Transferfunction:
2s^2+11s+23
---------------------
s^3+5s^2+7s+3
4.已知系统结构如图,求闭环传递函数。
其中的两环节G1、G2分别为
程序如下:
clear
g1=tf([3100],[1281]);
g2=tf(2,[25]);
sys=feedback(g1,g2,-1)
sys=feedback(g1,g2,1)
结果如下:
Transferfunction:
6s^2+215s+500
---------------------------
2s^3+9s^2+178s+605
Transferfunction:
6s^2+215s+500
---------------------------
2s^3+9s^2+166s+205
5.已知某闭环系统的传递函数为
,求其单位阶跃响应曲线,单位脉冲响应曲线。
单位阶跃响应程序如下:
clear
sys=tf([1025],[0.161.961025]);
step(sys)
结果如下:
图2单位阶跃响应曲线图
单位脉冲响应程序如下:
clear
sys=tf([1025],[0.161.961025]);
impulse(sys)
结果如下:
图3单位脉冲响应曲线图
6.典型二阶系统的传递函数为,为自然频,为阻尼比,试绘出当
=0.5,
分别取-2、0、2、4、6、8、10时该系统的单位阶跃响应曲线;分析阻尼比分别为–0.5、–1时系统的稳定性。
当%ζ=0.5时则实现
为0、2、4、6、8、10的程序为:
w=0:
2:
10;
kosai=0.5;
figure
(1)
holdon
forWn=w
num=Wn^2;
den=[1,2*kosai*Wn,Wn^2];
step(num,den);
end
holdoff
gridon;
title('单位阶跃响应')
xlabel('时间')
ylabel('振幅')
实现后的曲线图像为:
图4当%ζ=0.5时则实现
为0、2、4、6、8、10的曲线图
当%ζ=-0.5时则实现
为0、2、4、6、8、10的程序为:
w=0:
2:
10;
kosai=-0.5;
figure
(1)
holdon
forWn=w
num=Wn^2;
den=[1,2*kosai*Wn,Wn^2];
step(num,den);
end
holdoff
gridon;
title('单位阶跃响应')
xlabel('时间')
ylabel('振幅')
当%ζ=-0.5时则实现
为0、2、4、6、8、10的曲线为:
图5当%ζ=-0.5时的曲线图
当%ζ=-0.5时则实现
为0、2、4、6、8、10的程序为:
w=0:
2:
10;
kosai=-1;
figure
(1)
holdon
forWn=w
num=Wn^2;
den=[1,2*kosai*Wn,Wn^2];
step(num,den);
end
holdoff
gridon;
title('单位阶跃响应')
xlabel('时间')
ylabel('振幅')
当%ζ=-1时则实现
为0、2、4、6、8、10的结果曲线为:
图6当%ζ=-1时的曲线图
有当ζ=-0.5、ζ=-1时与ζ=0.5比较输出结果得:
前两者的结果是发散的,而后者结果是收敛的。
7.设有一高阶系统开环传递函数为
,试绘制该系统的零极点图和闭环根轨迹图。
零、极点程序如下:
clear
num=[0.016,0.218,1.436,9.359];
den=[0.06,0.268,0.635,6.271];
sys=tf(num,den);
figure
(1);
pzmap(sys)
结果如下:
图7系统的零极点图
跟轨迹程序如下:
clear
num=[0.016,0.2