GUI设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

系统建模与仿真项目驱动设计报告学院:电气工程与自动化学院专业班级:自动化131班学号:2420132905学生姓名:吴亚敏指导老师:杨国亮时间:2015年6月12日摘要本文将MATLAB软件引入《计算机仿真技术与CAD——基于MATLAB的控制系统》课程的期末考核中,通过MATLAB软件提供的控制系统工具箱,可以对线性系统进行模型建立、时域分析、频域分析和根轨迹分析;同时该软件也可以对离散系统时间响应进行分析。通过这次项目的锻炼,基于MATLAB的自动控制原理虚拟实验仿真平台的建立和应用,丰富了自动控制类课程实验教学的形式和内容,培养了我们的兴趣,提高了我们实践能力。关键词:MATLAB;自动控制;仿真目录第一章概述......................................11.1设计目的....................................11.2设计要求....................................11.3设计内容安排................................1第二章MATLAB简介...............................22.1MATLAB的功能特点............................22.2MATLAB的基本操作............................22.3MATLAB的图形用户界面........................3第三章自控仿真系统设计过程......................53.1图形用户界面的设计...........................53.2欧拉法的MATLAB实现..........................63.3梯形法的MATLAB实现..........................63.4四阶龙格-库塔法的MATLAB实现.................73.5零阶保持器的MATLAB实现......................73.6双线性变换法的MATLAB实现....................83.7PID控制器的MATLAB实现.......................8第四章附加功能的设计过程........................94.1密码锁的设计................................94.2计算器的设计...............................104.3音乐播放器的设计............................11致谢...........................................12参考文献.........................................13江西理工大学2013级自动化专业项目驱动设计报告1第一章概述1.1设计目的(1)熟悉MATLAB的常用交互界面与常用指令及其调用格式;(2)掌握MATLAB的基本语法以及M文件的建立与基本操作;(3)掌握MATLAB建立自动控制系统数学模型的方法;(4)掌握MATLAB绘制系统根轨迹,伯德图,奈氏图的方法;(5)学会利用系统根轨迹,伯德图,奈氏图分析系统性能的方法;(6)掌握MATLAB设计图形用户界面的方法和流程。1.2设计要求设计控制系统仿真演示系统的要求如下:(1)能够以零极点、传递函数、状态空间表达式三种模式输入系统参数;(2)能够用欧拉法、梯形法、龙格-库塔法、零阶保持器、双线性变换法绘制系统的响应曲线,同时能用PID控制器改善系统的性能;(3)能够绘制系统的根轨迹,伯德图,奈氏图,以便用户分析系统的各项性能;(4)各项功能够相互配合,正常工作;(5)可适当发挥,添加额外的功能。1.3设计内容安排本篇设计报告主要分为四章:第一章为概述,主要说明设计目的和设计方案;第二章为MATlAB简介,主要介绍MATlAB的功能特点和操作方法;第三章为自控仿真系统的设计过程,主要展示多种系统仿真方法的MATLAB实现过程;第四章为附加功能的设计过程,简要给出了密码锁、计算器和音乐播放器的MATLAB实现过程。江西理工大学2013级自动化专业项目驱动设计报告2第二章MATLAB简介2.1MATLAB的功能特点MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。2.2MATLAB的基本操作以MATLABR2014a中文版为例,其他版本稍有不同。在默认情况下,MATLAB的操作界面包含命令行窗口(CommandWindow)和当前工作目录(CurrentDirectory)窗口以及工作区(Workspace)三个最常见的界面。同时,在三大窗口上方,分布有三个功能区,分别是‘主页’,‘绘图’和‘应用程序’。分别点击三个功能区,可以看到诸多功能的快捷方式。安装后首次启动MATLAB所得到的操作界面如图2-1所示,这是系统默认的、未曾被用户依据自身需要和喜好设置过的界面。为了方便用户,MATLAB提供了丰富的库函数,库函数是根据系统已经编制好了的,提供用户直接使用的函数。用户可直接在命令行窗口或者脚本编辑窗口中调用这些函数。江西理工大学2013级自动化专业项目驱动设计报告3图2-12.3MATLAB的图形用户界面作为强大的科学计算软件,MATLAB也提供了图形用户界面(GraphicalUserInterface,简称GUI)的设计和开发功能。MATLAB中的基本图形用户界面对象分为3类:用户界面控件对象(uicontrol)、下拉式菜单(uimenu)和内容式菜单对象(uicontexmenu)。其中,uicontrol()函数能建立按钮、列表框、编辑框等图形用户界面对象;uimenu()函数能建立下拉式菜单和子菜单等图形界面对象;uicontexmenu()函数能建立内容式菜单用户界面对象。;利用上述函数,通过命令行方式,进行精心的组织,就可以设计出一个界面良好、操作简单、功能强大的图像用户界面。图2-2江西理工大学2013级自动化专业项目驱动设计报告4另外,为了能像VisualBasic,VisualC++等程序设计软件一样简单、方便地进行GUI的设计与开发,MATLAB提供了一套方便、实用的GUI设计工具。GUI设计工具比较直观,适宜进行被设计界面上各控件的几何安排。但从总体来讲,GUI设计工具远不如直接使用指令编程灵活。对象设计编辑器界面如图2-2所示。用鼠标拖拉对象设计区左边的工具按钮到对象设计区,便可以生成对应的图形控件对象。创建对象后,利用鼠标右键可显示所选对象的一个弹出式菜单,可以从中选择一个子菜单项进行相应的设计。通过双击该对象,也会显示该对象的属性编辑器,并对其属性值进行设置。为了图形用户界面的美观,常常需要对控件对象进行几何移动。例如,控件上下左右精确地移动,控件之间上下间距、左右间距的控制,控件的上对齐、下对齐、左对齐、右对齐。这是就需要使用对象对齐窗口,如图2-3所示。图2-3江西理工大学2013级自动化专业项目驱动设计报告5第三章自控仿真系统设计过程3.1图形用户界面的设计首先,在对象编辑器界面,用鼠标在对象设计区左边拖拉需要的工具按钮到对象设计区,按照设计方案总共需要22个控件:其中轴(axes)7个,弹出式菜单(popmenu)1个,按钮(pushbutton)14个。然后双击需要修改属性的控件,会弹出一个属性编辑器:先修改popmenu1的‘String’值,以如下格式键入:请选择输入形式!零极点传递函数状态空间表达式再修改pushbutton的‘String’值为相应按钮名称。图3-1然后,为了界面的易于辨识,将所有控件的‘FontSize’属性,即字体大小修改为合适的值。另外,为了使界面的逻辑关系更为清晰,将所有控件的‘BackgroundColor’属性,即背景颜色做出调整,赋予控件合适的颜色。最后,为了界面的美观,对控件的几何位置进行调整,即对控件进行上下间距、左右间距调整,以及进行上对齐、下对齐、左对齐、右对齐等一系列操作。至此,自控系统仿真演示系统的图形用户界面已经全部完成,如图3-1所示。接下来,就是根据要实现的各项功能的数学原理编写程序。江西理工大学2013级自动化专业项目驱动设计报告63.2欧拉法的MATLAB实现欧拉法又称折线或矩形法,是最简单也是最早的一种数值方法。{𝑑𝑥(𝑡)𝑑𝑡𝑑𝑡=𝑓(𝑡,𝑥(𝑡))𝑥(𝑡0)=𝑥0(3-1)将式(3-1)中的微分方程两边进行积分,得∫𝑑𝑥(𝑡)𝑑𝑡𝑑𝑡=𝑡𝑘+1𝑡𝑘∫𝑓(𝑡,𝑥(𝑡))𝑑𝑡𝑡𝑘+1𝑡𝑘即𝑥(𝑡𝑘+1)=𝑥(𝑡𝑘)+∫𝑓(𝑡,𝑥(𝑡))𝑑𝑡𝑡𝑘+1𝑡𝑘(3-2)通常假设离散点𝑡0,𝑡1,…,𝑡𝑛是等距离的,即𝑡𝑘+1−𝑡𝑘=ℎ,称h为计算步长或步距。当𝑡𝑡0时,𝑥(𝑡)是未知的,因此式(3-2)右端的积分是求不出的。为了解决这个问题,把积分间隔取得足够小,使得在𝑡𝑘与𝑡𝑘+1之间的法𝑓(t,x(t))可以看作常数𝑓(𝑡𝑘,𝑥(𝑡𝑘))。这样便得到用矩形积分的近似公式𝑥(𝑡𝑘+1)≈𝑥(𝑡𝑘)+𝑓(𝑡𝑘,𝑥(𝑡𝑘))ℎ或简化为𝑥𝑘+1≈𝑥𝑘+𝑓(𝑡𝑘,𝑥𝑘)ℎ这就是欧拉公式。欧拉法的计算虽然比较简单,但精度较低。根据欧拉法的原理,可用MATLAB编程实现。程序代码请参见文件“CAD_GUI.m”。3.3梯形法的MATLAB实现欧拉公式中的积分是用矩形面积𝑓(𝑡𝑘,𝑥𝑘)ℎ来近似的,而梯形法是用梯形面积ℎ2[𝑓(𝑡𝑘,𝑥𝑘)+𝑓(𝑡𝑘+1,𝑥𝑘+1)]来近似的。于是可以得到梯形法的计算公式𝑥𝑘+1≈𝑥𝑘+ℎ2[𝑓(𝑡𝑘,𝑥𝑘)+𝑓(𝑡𝑘+1,𝑥𝑘+1)]由于上式右边包含未知量𝑥𝑘+1,所以每一步都必须通过迭代来求解。每一步迭代的初值𝑥𝑘+1(0)通常采用欧拉公式来计算。因此,梯形法的每一步迭代公式为{𝑥𝑘+1(0)≈𝑥𝑘+ℎ𝑓(𝑡𝑘,𝑥𝑘)𝑥𝑘+1(𝑅+1)𝑥𝑘+ℎ2[𝑓(𝑡𝑘,𝑥𝑘)+𝑓(𝑡𝑘+1,𝑥𝑘+1(𝑅))]式中,迭代次数R=0,1,2,…根据梯形法的原理,可用MATLA

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功