摘要MATLAB语言是一种十分有效的工具,能容易地解决在系统仿真及控制系统计算机辅助设计领域的教学与研究中遇到的问题,它可以将使用者从繁琐的底层编程中解放出来,把有限的宝贵时间更多地花在解决科学问题上。MATLABGUI是MATLAB的人机交互界面。由于GUI本身提供了windows基本控件的支持,并且具有良好的事件驱动机制,同时提供了MATLAB数学库的接口,所以GUI对于控制系统仿真的平台设计显得十分合适。GUI对于每个用户窗口生成.fig和.m文件。前者负责界面的设计信息,后者负责后台代码的设计。本文所做的研究主要是基于MATLABGUI平台,结合控制系统基础理论和MATLAB控制系统工具箱,实现了用于控制系统计算机辅助分析与设计的软件。本软件主要功能:实现传递函数模型输入、状态方程模型输入、模型装换、控制系统稳定性分析、系统可观性可控性判断,绘制系统奈奎斯特图、波特图、根轨迹图以及零极点分布图。在继续完善的基础上能够用于本科自动控制原理教程的教学实验和一般的科学研究。关键词:控制系统;MATLABGUI;计算机辅助设计AbstractMATLABlanguageisaveryeffectivetool,andcanbeeasilyresolvedinthesystemsimulationandcontrolsystemofteachinginthefieldofcomputer-aideddesignandresearchproblems,itcouldbethebottomoftheuserfromtediousprogrammingliberatethelimitedspendmorevaluabletimetosolvescientificproblems.TheMATLABGUIistheinteractiveinterface.AstheGUIitselfprovidesthebasiccontrolwindowssupport,andhasagoodmechanismforevent-driven,whileprovidingtheMATLABMathLibraryinterface,theGUIforcontrolsystemsimulationplatformforthedesignofitissuitable.GUIwindowgeneratedforeachuser.Figand.Mfile.Theformerisresponsibleforthedesignoftheinterfaceinformation,whichisresponsibleforthedesignofthebackgroundcode.ResearchdoneinthisarticleismainlybasedonMATLABGUIplatform,thebasisofcombinationofcontrolsystemtheoryandMATLABControlSystemToolbox,therealizationofcontrolsystemsforcomputer-aidedanalysisanddesignsoftware.Themainfunctionsofthesoftware:therealizationoftransferfunctionmodelinput,thestateequationmodelinput,themodelfittedforthecontrolsystemstabilityanalysis,systemobservabilitycontrollabilityjudgments、renderingthesystemNyquistdiagram、Bodeplots、rootlocusandPole-zerodistribution.Whilecontinuingtoimprovebasedontheprincipleofautomaticcontrolcanbeusedforundergraduateteachingcourseexperimentsandscientificresearchingeneral.Keywords:ControlSystem;MATLABGUI;Computer-assistantdesign目录第1章概述..........................................................11.1论文选题背景和意义........................................11.2计算机辅助分析与设计在控制系统仿真中的发展现状............11.3本文主要内容..............................................3第2章控制系统与MATLAB语言.........................................42.1控制系统理论基础..........................................42.2MATLAB语言与控制系统工具箱...............................5第3章MATLABGUI简介及应用.........................................93.1MATLABGUI................................................93.2软件设计步骤.............................................10第4章仿真系统测试与演示...........................................164.1控制系统的模型输入.......................................164.2控制系统的稳定性分析.....................................194.3控制系统可控可观性分析...................................204.4控制系统频率响应.........................................234.5控制系统时域响应.........................................274.6控制系统根轨迹绘制.......................................28结论................................................................31参考文献............................................................32致谢...............................................................331第1章概述1.1论文选题背景和意义自动控制原理是自动控制专业和自动化专业的主要课程之一,是研究自动控制技术的基础理论课,是必修的专业基础课程。自动控制原理能使学生掌握自动控制系统的基本理论、基本概念、分析和设计方法,为更深入地学习现代控制策略和研究各种自动控制系统打下理论基础[1]。在自动控制领域里的科学研究和工程应用中有大量繁琐的计算与仿真曲线绘制任务,给控制系统的分析和设计带来了巨大的工作量,为了解决海量计算的问题,各种控制系统设计与仿真的软件层出不穷,技术人员凭借这些产品强大的计算和绘图功能,使系统分析和设计的效率得以大大提高。然而在众多控制系统设计与仿真软件中,MATLAB以其强大的计算功能、丰富方便的图形功能、模块化的计算方法,以及动态系统仿真工具Simulink;脱颖而出成为控制系统设计和仿真领域中的佼佼者,同时也成为了当今最流行的科学工程语言。然而MATLAB自身所存在的某些缺点限制了它的应用范围件。一、MATLAB以解释方式执行效率很低,这在处理图像是特别明显;二、MATLAB程序不能脱离其环境运行,因此它不能被用于开发商用软件;三、MATLAB的程序是后缀为m的脚本文件它对用户完全透明,因此用户可任意进行修改,但有时为维护代码的完整性和安全性,并不希望用户了解或更改核心程序;四、其界面编写功能也过于简单,以致不能满足用户的高级需求。但是在本文软件设计开发主要应用于自动控制原理教学实验,并不需要复杂的图像处理和对代码完整性及安全性的苛刻保护,所以运用MATLABGUI能较为简单得对软件进行设计开发[2]。1.2计算机辅助分析与设计在控制系统仿真中的发展现状控制理论是一门发展极为迅速的学科[3]。在近一个世纪的发展过程中,其“经典控制理论”与“现代控制理论”的体系己基本完善,近三十年来的“先进控制理论”,如“大系统理论”、各类“智能控制”等,亦取得了蓬勃的发展和可喜的进展。今天的控制理论及其应用技术己不再仅是自动化学科的重要基础,而已成为机电工程、航空航天等现代工程技术中不可缺少的一部分,并在经济学、生物学、医学等领域中获得越来越广泛的应用。伴随着控制理论向深度和广度发展的2是大量控制方法和设计算法的产生,而现代计算机及计算技术的发展则使得这些设计过程可通过CAD程序来实现。这样一种发展不仅使设计者解脱了繁琐的甚至是人工无法实现的手工计算困境,而且使一般设计人员(特别使非控制类专业人员)不必精通某些细小定理的复杂数学证明,或对一些实际中不易发生的特殊情况进行详尽的考察而应用各种控制理论进行控制系统的设计,从而极大地增加了控制理论的实用价值和实际应用,同时也促进了控制理论的发展。早在1973年,美国学者Melsa教授和Jones博士出版了一本专著[4],书中给出了一套控制系统计算机辅助分析与设计的程序,包括求系统的根轨迹、频域响应、时间响应、以及各种控制系统设计的子程序。这一时期出现的软件还有瑞典Lund工学院CACSD软件INTRAC、日本的古田胜久教授主持开发的DPACS-F软件、英国Manchester理工大学的控制系统计算机辅助设计软件包、英国剑桥大学推出的线性系统分析与设计软件CLADP等等。此外,在控制系统的计算机辅助分析与设计研究进展中还出现了一些专门的仿真语言,如比较流行的仿真语言有ACSL,CSMP,TSIM,ESL等。这种仿真语言要求用户依照它所提供的语句和大量的模型模块编写一个描述系统的程序,然后才可以对控制系统进行仿真。我国较有影响的控制系统仿真与CAD成果[5]是中科院系统科学研究所主持的国家自然科学基金重大科研项目开发的CADCSC软件和清华大学孙增沂、袁曾任教授的著作和程序等。1988年中科院沈阳自动化所马纪虎研究员主持开发的CSMP-C仿真语言,是国内有代表意义的仿真语言。近十年来,随着MATLAB语言和Simulink仿真环境在控制系统研究与教学中日益广泛的应用,在系统仿真、自动控制等领域,国外很多高校在教学与研究中都将MATLAB/Simulink语言作为首选的计算机工具,我国的科学工作者和教育工作者也逐渐意识到MATLAB语言的重要性,并且在很多搞笑的本科自动控制原理实验教学中得到应用[6]。MATLAB是MathWorks公司于1982年推出的一套高性能的数值计算和可视化软件。它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便、界面友好的用户环境。它还包括了ToolBox(工具箱)[7]的各类问题的求解工具,可用来求解特定学科的问题。MATLAB所具备的强有力的计算功能和图形表现,以及各种工具箱提供的丰富的专用函数,为设计研究人员避免重复繁琐的计算和编程,更快、更好、更准确地进行控制系统分析和设计提供了极大的帮助。Mathworks公司于2004年7月发布了MATLAB的最新版本MATLAB7。新版本针对编程环境、代码效率、数据可视化、数学计算、文件等方面进行了升级,同时包含了