基于MATLAB的虚拟实验系统的设计主界面及部分模块的设计.docx
- 文档编号:26461257
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:55
- 大小:1.54MB
基于MATLAB的虚拟实验系统的设计主界面及部分模块的设计.docx
《基于MATLAB的虚拟实验系统的设计主界面及部分模块的设计.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的虚拟实验系统的设计主界面及部分模块的设计.docx(55页珍藏版)》请在冰豆网上搜索。
基于MATLAB的虚拟实验系统的设计主界面及部分模块的设计
基于MATLAB的虚拟实验系统的设计——主界面及部分模块的设计
摘要
自动控制原理是学习自动控制技术的一门重要的专业基础课程,是控制理论的基础。
而实验课是自动控制原理整个教学过程中不可缺少的重要组成部分。
对于初学自动控制理论课的学生来说.由于时间和专业知识的限制,直接利用MATLAB语言编程进行控制系统分析是极不方便的,需要在MATLAB基础上为用户开发出适用于使用的接口界面。
本文就是介绍了在MATALB软件环境下开发出的自动控制原理实验教学软件。
它利用MATLAB语言的界面设计功能及其提供的控制系统工具箱对自动控制系统进行建模和进行稳定性分析、根轨迹分析、频域分析,并说明了本软件的特点、功能和效果。
结果证明该软件系统可以取代传统模拟实验,它不仅能提高实验教学效率,改善实验效果,而且方便易行,具有推广应用价值。
同时利用该软件可以系统地让学生掌握控制系统设计思想的演化过程以及自动控制学科专业知识,从而提高学生分析和解决实际问题的能力。
关键词:
自动控制原理建模MATLAB虚拟实验系统GUI(图形用户界面)仿真
Abstract
AutomaticControlTheoryisanimportantprofessionalcourseinlearningAutomaticControl.Andit’safoundationofcontroltheory.ExperimentisanindispensablepartinlearningAutomaticControlTheory.ForabeginnerofAutomaticControlSystem,itisdifficulttousetheMATLABprogramminglanguagetoanalysisthecontrolsystem,duetothelimitedtimeandpoorprofessionalknowledge.SoweneedtodevelopaninterfacewhichiseasytousebasedonMATLAB.ThispaperisaboutdevelopinganexperimentalteachingsoftwareofAutomaticControlTheoryinMATLAB.Wemakemodelforautomaticcontrolsystemandanalysisthestability,rootlocusandfrequencydomainbyusingtheinterfacedesignfunctionandautomaticcontroltoolbox.Additionally,weprovidethenoteaboutthefeatures,functionsandeffectsofthesoftware.Ourresultsdemonstratethatthissoftwarecanreplacetraditionalexperiment.Itcouldnotonlyincreasetheteachingefficiencyandimprovetheexperimentteacheffect,butalsothesoftwareisveryconvenient.Andalsothissoftwarecouldmakethestudentstomastertheevolvementprocessofdesignmethodofautomaticcontrolsystemandprofessionalknowledgeofautomaticcontrol.Obviously,itwillimprovethestudent’sabilityofanalysisandsolvingproblems.
Keywords:
AutomaticControlTheoryModelingMATLAB
VirtualExperimentalSystemGUI Simulation
基于MATLAB虚拟实验系统的设计
机械与电气工程系电气工程及其自动化专业
03电气一班后丽萍指导老师***
1绪论
在目前有限的课堂教学和实验学时内,运用一定的仿真软件和计算机技术,使学生掌握专业的基本理论和控制系统的设计思想和方法,培养学生科研能力,是专业教学中值得研究和探讨的课题。
本课题就是利用MATLAB的界面设计功能及其提供的控制系统工具箱可以开出一个用户界面良好的《自动控制原理》虚拟实验系统,以每个实验项目为本系统的各个子系统。
每个子系统的具体任务包括:
界面设计、实验说明(帮助文件)、数学建模、系统性能分析、仿真实验及结果分析、试验报告生成等。
然后利用该套实验系统来对《自动控制原理》课程中的内容进行计算、仿真与研究。
这样用仿真实验手段取代传统模拟实验明显提高实验效率、改善实验效果,同时让学习者能够了解了实验过程中参数如何选择,了解实验参数改变的依据,直观地看出参数变化对系统的影响,大大提高了实验效率,取得了良好的实验效果,既调动了学生的积极性和创造性,又培养了学生分析、设计和调试自动控制系统的能力,对创造更开放和有创意的实验环境是很有帮助,同时学习者不需要MATLAB知识就能方便的操作和应用。
本论文从资料查阅—总体设计-模块设计—撰写论文历时三个月,具体流程如下所示:
Ø资料查阅,熟悉课题
Ø确定系统框架并开始搭建总体框架
Ø对各个实验对象进行数学建模,并用M文件编程实现
Ø编制各个实验环节的详细程序代码
Ø程序总体调试,准备材料
Ø撰写论文,科技翻译
2虚拟实验系统的总体设计
2.1背景知识介绍
2.1.1虚拟实验系统的现状分析
以往人们在分析和设计控制系统是都笔算来解决问题,后来逐渐利用计算机采用Basic、Fortran和C语言完成控制系统的计算机辅助设计(CACSD)。
自从MATLAB与1984年诞生以来,这一切都发生了改变。
我们知道自动控制原理与系统是自动化、机电一体化等专业教学中重要的专业课,特别是在信息时代,自动化技术是一个最为活跃的推动力,特别是控制理论目前已经发展到一个新阶段:
智能控制理论和大系统理论,使得控制理论贯穿与整个社会的各个领域,从自然科学领域到社会科学领域,都可见到控制的踪迹。
但是,由于《自动控制原理》又是一门理论性极强的课程,对学生的数学功底(特别是积分变换理论和矩阵理论)要求很,课程中的很多结论非常抽象。
比如:
稳定性分析、时域频域分析、根轨迹图、波特(Bode)图、乃氏(Nyquist)图、尼氏(Nichols)图等。
而且实验课是《自动控制原理》整个教学过程中不可缺少的重要组成部分,对于初学自动控制理论课的学生来说.由于时间和专业知识的限制,直接利用MATLAB语言编程进行控制系统分析是极不方便的。
现在,借助MATALB强大的科学运算功能、灵活的仿真功能(SIMULINK)、便捷的编程功能和高质量的绘图功能,以及丰富详尽的控制工具箱(TOOLBOX),可以用图形显示和动画显示的方式使教师和学生具体地掌握控制理论中的抽象结论,并可以随意改变系统参数,观察系统的性能指标的变化,从而对控制理论有一个更深刻的理解,并激发学习者的开拓意识和创新精神。
目前高校中现成的基于MATLAB的控制理论课程的教学辅助系统几乎是风毛麟角,即使有,也是功能十分简单的仿真分析系统,没有实现真正意义上的辅助教学。
我们拟开发这样一个辅助教学系统,具有良好的人机交互界面,方便的系统仿真功能,灵活的系统参数设置功能,强大的图形显示输出功能,同时控制算法可以自行编制。
2.1.2MATLAB简介及其在控制系统中的运用
MATLAB语言是当今国际上科学界(尤其是自动控制领域)最具影响力、也是最具有活力的软件。
它起源于矩阵运算,并已经发展成一种高的度集成的计算机语言。
其开发的环境、功能极强的矩阵运算、图形绘制、数据处理、各种工具箱、以及象“草稿纸”一样的工作空间等许多优点,使其提供了强大的科学运算、灵活的程序、高质量的图形可视化与界面设计、便捷的与其它程序和语言接口功能。
作为一个专业的科学计算软件,MATLAB的功能首先在应用,即应用现有函数和工具(箱)解决具体问题。
MATLAB的配套工具箱尤其值得一提,这些工具箱将一流专家学者的理论和经验与MATLAB高技术计算环境的内在效力及灵活性有机地集成为一体。
用户不仅可快速获得特定问题的准确答案,而且能随时对各类计算或测试数据进行可视化处理。
此外,MATLAB还有一个功能强大的、可视化的、交互环境的工具SIMULINK,用于模拟非线性动态系统。
SIMULINK提供了一个用于创建动态系统对角模块的图形用户界面,使用框图式动态系统仿真工具SIMULINK可以方便地建立控制系统原型和控制对象模型,通过仿真不断地优化和改善用户的设计。
无论是离散的、连续的、条件执行的、多采样的或混杂的系统,SIMULINK都是描述动态系统模型的最佳工具
2.2总体设计原理
本虚拟实验系统是在MATLAB6.5版本的语言平台上开发的,在设计中我们采用自上而下的需求分析,首先确定整个系统的总体框架,然后将每个实验项目作为本框架的各个子系统,确定统一的接口。
在代码的实现上,我们采用自下而上的编程思想,分别完成每个子系统,在进行分析和调试后通过确定的接口参数完成整个系统的拼装。
完成后对整个系统进行实验分析、调试和测试。
本软件的功能是根据科研、教学、相关实验和课程设计等的需要,辅助学习者完成控制系统分析与设计过程中所涉及到的各种计算和绘图等,提供一个方便的系统分析和综合的软件操作平台.本软件具有如下的功能:
1)系统输入形式多样化:
输入模型既可以是多项式形式,又可以是零、极点形式,或状态空间表达式的形式,只需通过按钮进行选择。
2)绘图功能:
能准确地绘制出系统的Bode图、Nyquist图、根轨迹图及系统任意输入下的响应曲线。
3)分析功能:
根据各种分析需要求出系统的超调量、调节时间等各种时域性能指标或幅值裕度、相位裕度等频域性能指标。
4)校正器设计:
对需要校正的系统进行串联校正器的计算机辅助设计,并绘制出校正前、后系统的Bode图、单位阶跃响应曲线图,根轨迹图以及阶跃响应曲线图等图形,显示校正前、后系统的时域、频域性能指标,便于设计者进行比较、分析。
5)美观、操作简便:
本文所研制的基于MATLAB的控制系统分析与设计软件包具有Widows程序风格,人观简洁,操作简单,易于应用。
2.3总体设计框图
按照上述设计思想和满足《自动控制原理》的课程教学内容、科研、相关
实验和课程设计等设计出本虚拟实验系统的总体框架(见图2.1)
图2.1虚拟实验系统的总体框架
介绍了系统的总体构架后,下面来具体对各模块设计与实现进行介绍。
由于本课题是由我和陶睿同学共同完成的,在本次设计中陶睿同学主要负责的稳定性分析、频域分析、数字PID控制、实验报告生成。
所以这三部分的具体实现原理及方法,详见陶睿同学的论文,在此不在累述。
我负责系统的主界面设计、数学建模、根轨迹分析部分、实验报告生成及系统的总体调试。
下面我来一一给予介绍。
3系统的部分模块实现与主界面设计
3.1建模模块的实现
3.1.1建模设计思想及目标
研究控制系统我们需要根据其中物理量的变化,把它们彼此之间相互作用的关系和各自的变化规律用数学形式描述出来,此即为建模。
建立描述控制系统运动的数学模型是控制理论的基础。
通常控制系统中建模思想如图2.2所示:
图3.1控制系统的模型
上图是典型的基于偏差控制的反馈控制系统简图,设定值与反馈量的偏差通过控制器作用于被控对象,达到输出量跟随设定值的目的。
建立数学模型就是要找到一种合适的手段,详细描述被控对象的运动规律,从而为控制器和反馈的设计提供可靠的依据。
建模的方法有很多种,其中应用最为广泛的是:
演绎法、归纳法、混合模型三种方法。
本设计中用的是演绎法,即通过定理、定义、公理等已经验证了的理论来推导出数学模型。
首先我们需要对模型进行分析,通过物理规律来建立相应的方程,并对所得方程进行拉普拉斯变换,从而求出传递函数。
其次,用绘制系统方块图的方法来求出传递函数,这包括系统方块图的绘制,方块图的化简以及最后的结果。
再次,用SIMULINK进行仿真,最后,将系统的阶跃响应曲线画出。
我们的主要目标是使学生了解传递函数的求解过程,并能直观地从仿真模型中看到实验结果和判断系统是否稳定。
3.1.2功能介绍及设计步骤
我们的建模主要分为三个主要部分:
(1)机械系统的建模,我们使用的是弹簧小车模型。
(2)电学系统的模型,我们使用的是电阻电容模型。
(3)自动化系统模型,我们使用的是速度控制系统模型。
(1)机械系统模型(弹簧小车模型)
典型的机械系统是由阻尼器α、弹簧k、和质量m或转动惯量J组成。
质量m,转动惯量和弹簧k如同电路系统中的电容和电感一样是贮能元件,而阻图3.2弹簧滑块系统图
尼器α如同电路中的电阻是耗能元件。
弹簧小车模型是机械系统中一个比较典型的系统,在这个模型中,我们以m代表物体的质量,B代表阻尼系数,K代表弹簧的虎克系数。
弹簧系统图如示:
1.弹簧模型的框架设计及实现
根据建模方法和设计目的,我们设计出如下所示的框架图
图3.3弹簧小车模型框架图
根据模型框架,首先新建一个GUI(图形用户界面),将模块涉及到的工具箱中的对象控件拖至主界面,选择的控件在按照统一的格式在界面上布置好,然后运行,得到相应的M文件。
定义变量,在各个pushbutton按钮下添加完成相应功能的代码。
在添加完毕后,运行调试直到成功。
最后得出弹簧小车的界面,见图3.4,在主界面的左上角是用户输入参数框,右上角是模型图,右下角为功能实现按钮,用户可在此处了解描述系统物理规律的微分方程、系统的方块图,并通过其得出与输入参数相对应的传递函数。
图3.4弹簧小车的界面
2.弹簧模型主要按钮程序的流程图:
我们弹簧模型界面上有七个按钮,其中“退出”按钮可以在GUI设计是设定它的属性为close,运行后就可以实现退出功能了,“系统微分方程”、“系统方块图”、“方块图化简”、“实验结果”、“SIMULINK仿真”、“阶跃响应曲线”按钮,都是由调用后台程序,来实现按钮的功能的。
在这就不一一画出每一个按钮后台程序的程序流程图了,以“阶跃响应曲线”按钮后台程序流程图为例(本系统中最难的)。
阶跃响应按钮对应pushbutton6,其程序流程图如图3.5所示:
图3.5pushbutton6下程序流程图
(2)电阻电容模型
电阻电容模型是电学系统模型中最典型的模型,也是我们在《电路》重点介绍的,所以在此就不介绍该模型的结构和组成了。
1.电阻电容模型的框架设计与实现
根据建模方法和设计目的,我们设计出如下所示的框架图
图3.6二阶电路模型框图
根据模型框架,首先新建一个GUI(图形用户界面),将模块涉及到的工具箱中的对象控件拖至主界面,选择的控件在按照统一的格式在界面上布置好,然后运行,得到相应的M文件。
定义变量,在模型中,由用户来输入相应的参数,因此必须定义相应的全局变量,以便接收用户在界面上输入的参数。
在各个pushbutton按钮下添加完成相应功能的代码。
在添加完毕后,运行调试直到成功。
最后得到的界面见图3.7,在主界面的左上角是用户输入参数框,右上角是模型图,右下角为功能实现按钮,用户可在此处了解描述系统物理规律的微分方程、系统的方块图,并通过其得出与输入参数相对应的传递函数。
另外,通过Simulink仿真和系统的阶跃响应图可以直观的看到阶跃输入与输出的关系以及判断系统是否稳定。
图3.7电阻电容模型界面
2.电阻电容模型主要按钮程序的流程图:
同理,在本模型中的按钮与弹簧模型中的七个按钮所要实现的功能相同,其中在本模型中“跃响应曲线”按钮的程序流程图,由所变化。
其流程图见图3.8:
是
否
s=s+r(i)*exp(p(i)*t);
i=1
则s
(1)=k
s
(1)=k
将其表示成num/den的形式
求出输入参数相对应的传递函数
从用户区获得数据
否
是
Plot(t,s)绘制阶跃响应曲线
图3.8二阶电路阶跃响应流程图
(3)自动化系统模型
我们这里讨论的自动化系统是其中的机电系统,而电机是机电系统中应用最广泛的一种旋转设备,其类别很多,在这个模型中,我们用K表示放大器的放大系数,其他属于电机的结构,在这里就不叙述了。
1模块主体框架图设计与实现,
根据建模方法和设计目的,我们设计出如下所示的框架图,见图3.9所示:
图3.9速度控制系统模型主窗口
根据模型框架,首先新建一个GUI(图形用户界面),将模块涉及到的工具箱中的对象控件拖至主界面,选择的控件在按照统一的格式在界面上布置好,然后运行,得到相应的M文件。
定义变量,在模型中,由用户来输入相应的参数,因此必须定义相应的全局变量,以便接收用户在界面上输入的参数。
在各个pushbutton按钮下添加完成相应功能的代码。
在添加完毕后,运行调试直到成功。
最后得速度控制系统模型的窗口如下图3.10所示:
图3.10速度控制系统模型主界面(闭环)
速度控制系统模型界面的左上角是用户输入参数框,在这个参数框中包括
供用户选择的按钮,这是由于该系统既可在开环下运行,又可在闭环下运行。
右
上角是模型图,右下角为功能实现按钮,用户可在此处了解描述系统物理规律的微分方程、系统的方块图,并能得出与输入参数相对应的传递函数。
另外,通过SIMLINK仿真和系统的阶跃响应图(本模型由于未对电动机里的系数进行合理的设值,所以不能确定传递函数的具体形式,从而未画相应的阶跃相应图。
)可以直观的看到阶跃输入与输出的关系以及判断系统是否稳定。
由于此模型既可在开环(图3.11)下运行,又可以在闭环(图3.10)下运行,所以用户在使用时,必须对其进行选择,否则,将会显示“请在参数框中选择参数”的提示语!
见图3.12:
图3.11速度控制系统模型主界面(开环)
图3.12速度控制系统模型主界面(没有选择)
在上述两个模型中,在SIMULINK仿真的模块实现中,我们将与系统方块图中相对应的SIMULINK中的模块组合起来,并以创建子模块的形式将其中的主体模块封装到一个子模块当中,用户可以通过双击子模块的方式来获取内部模块的具体信息。
2.速度控制系统模型的主要按钮程序的流程图:
本模型中因为多了radiobutton按钮,所以pushbutton按钮下的程序实现就有了变化,radiobutton是一个单选按纽,用户可根据实际情况对其进行选择,现将其中一个pushbutton按钮下的流程图展现如下(其他按钮与其相仿):
系统方块图(pushbutton2)(注:
radiobutton1(闭环)与radiobutton2(开环)句柄值不可能同时为1,因为已在程序中设计它们为互斥按钮。
)
图3.13pushbutton按钮下的流程图
3.2根轨迹模块实现及实验报告生成模块的设计
3.2.1根轨迹模块的实现
(1)根轨迹设计原理
根轨迹法是一种求系统闭环极点的图解方法,即根椐系统开环极点和零点,研究系统某一个或某几个参数的变化时,系统闭环极点分布变化的趋势,可用于分析系统,而且是改善系统性能的有效途径。
对于图3.14的闭环系统:
图3.14闭环系统图
其特征方程为:
1+G(s)H(s)=0,对于满足此方程的所有S的值都是闭环的极点,且满足
的指数方程,可将此指数方程变换为:
……….……….……….……….幅值条件
(2l+1)(l=0,1,2…….)………...相角条件
对于满足幅值条件和相角条件的S值,就是给定参数的闭环极点,也即为根轨迹上的点。
对于开环系统中的增益k,当k由0变化到无穷大时,在S平面上满足幅角条件的点所构成的图形就是根轨迹图。
在根轨迹上的每一点对应于一个闭环极点,每一个闭环极点对应一个参数k,并可以利用幅值条件确定该点对应的k值。
设系统的开环传递函数为:
G(s)H(s)=k(s+Z1)...(s+Zm)/(s+P1)...(s+Pn),
由幅值和相角条件得出:
=1
其中,θ角是S平面上任一点到闭环零点与正实轴的夹角;
角是S平面上任意点到闭环零点的夹角。
(2)设计思想及目标
在实际工程中,一个控制系统的被控对象常常是已知的,其性能指标也是预先给定的,要求设计者选择合适的结构和参数,使控制器与被控对象能组成一个其性能指标能满足要求的系统,这类问题是控制系统的综合问题,而系统综合的目的是在原控制系统中引入合适的附加装置,使原有系统的性能缺点得到校正,从而满足工程要求的性能指标。
而引入的附加装置即为校正装置,所以对控制系统进行串连校正实质上是选择合适的校正装置对系统进行校正,使系统的性能附合设计的性能指标用根轨迹法对控制系统进行串连校正,即是根据已选定的串连校正方法,按照一定规律确定出校正装置的参数,进而绘制出校正后系统的根轨迹图,并估计是否满足设计要求。
如果认为可以满足设计要求,再对系统进行分析检验,如果符合了系统规定的性能指标,则设计结束。
如果不符合,通过调整校正装置参数对系统进行再次校正,直到满足规定的性能指标为止。
或者从给定的性能指标出发,并结合系统的限制条件,应用现代控制理论得方法进行系统校正串连校正结构图如图3.15所示:
图3.15串连校正结构图
本模块系统的性能指标是以最大过调量Mp、调整时间Ts和稳态误差系数K的形式给出的,用根轨迹法对系统进行串联校正,首先是使瞬态性能指标满足设计要求,确定出闭环主导极点在S平面上的位置。
在设计系统时,如果未校正系统的开环增益为某一数值时,瞬态性能符合设计要求,则设计校正装置使系统稳态误差满足设计要求;如果未校正系统的开环增益为任何数值时,瞬态性能都不能符合设计要求,则需设计校正装置使系统的瞬态性能满足设计要求并检验系统的稳态性能,或先使系统的稳态性能满足设计要求,设计出校正装置后,再检验闭环主导极点是否满足主导条件。
通过串联校正后,最终使系统的瞬态性能和稳态性能都能满足设计要求。
(3)功能介绍及设计步骤
根据根轨迹模块的设计目标设计出如图所示的总体框图:
图3.16模块设计总体框图
①绘制根轨迹按钮的实现
在MATLAB中,提供了求系统根轨迹的函数rlocus(),其函数命令调用格式为:
rlocus(sys)、rlocus(sys,k)、[r,k]=rlocus(sys)。
rlocus(sys)函数命令用来绘制SIOS的LIT对象的根轨迹图。
给定前向通道传递函数G(s),反馈通道为kH(s)的受控对象(其增益k取值为0~∞)。
利用MATLAB提供的函数rlocus(),可以通过系统的开环传递函数绘制其闭环的根轨迹图。
其基本调用格式为:
R=RLOCUS(SYS,K)
其中SYS是系统的开环传递函数描述,K是系统增益向量,也可以缺省并使
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MATLAB 虚拟 实验 系统 设计 界面 部分 模块