基于MATLAB GUI的离散控制系统设计_第1页
基于MATLAB GUI的离散控制系统设计_第2页
基于MATLAB GUI的离散控制系统设计_第3页
基于MATLAB GUI的离散控制系统设计_第4页
基于MATLAB GUI的离散控制系统设计_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE摘要MATLAB语言是一种十分有效的工具,能容易地解决在系统仿真及控制系统计算机辅助设计领域的教学与研究中遇到的问题。MATLABGUI是MATLAB的人机交互界面。由于GUI本身提供了windows基本控件的支持,并且具有良好的事件驱动机制,同时提供了MATLAB数学库的接口,所以GUI对于控制系统仿真的平台设计显得十分合适。本文所做的研究主要是基于MATLABGUI平台,结合离散控制系统基础理论和MATLAB控制系统工具箱,实现了用于离散控制系统计算机辅助分析与设计的软件。本软件主要功能:实现传递函数模型输入、控制系统稳定性分析,绘制系统Nyquist图、Bode图、根轨迹图以及零极点分布图。它可以将使用者从繁琐的底层编程中解放出来,把有限的宝贵时间更多地花在解决科学问题上。在继续完善的基础上能够用于本科自动控制原理教程的教学实验和一般的科学研究。关键词:离散控制系统;MATLABGUI;计算机辅助设计AbstractMATLABlanguageisaveryeffectivetool,andcanbeeasilyresolvedinthesystemsimulationandcontrolsystemofteachinginthefieldofcomputer-aideddesignandresearchproblems.TheMATLABGUIistheinteractiveinterface.AstheGUIitselfprovidesthebasiccontrolwindowssupport,andhasagoodmechanismforevent-driven,whileprovidingtheMATLABMathLibraryinterface,theGUIforcontrolsystemsimulationplatformforthedesignofitissuitable.ResearchdoneinthisarticleismainlybasedonMATLABGUIplatform,thebasisofcombinationofdiscretecontrolsystemtheoryandMATLABControlSystemToolbox,therealizationofdiscretecontrolsystemsforcomputer-aidedanalysisanddesignsoftware.Themainfunctionsofthesoftware:therealizationoftransferfunctionmodelinput,themodelfittedforthecontrolsystemstabilityanalysis,、renderingthesystemNyquistdiagram、Bodeplots、rootlocusandPole-zerodistribution.Itcouldbethebottomoftheuserfromtediousprogrammingliberatethelimitedspendmorevaluabletimetosolvescientificproblems.Whilecontinuingtoimprovebasedontheprincipleofautomaticcontrolcanbeusedforundergraduateteachingcourseexperimentsandscientificresearchingeneral.Keywords:DiscreteControlSystem;MATLABGUI;Computer-assistantdesign目录TOC\o"1-2"\h\z\u第1章概述 11.1论文选题背景和意义 11.2计算机辅助分析与设计在控制系统仿真中的发展现状 11.3本论文主要内容 3第2章控制系统与MATLAB语言 42.1控制系统理论基础 42.2MATLAB语言与控制系统工具箱 52.3本章小结 9第3章MATLABGUI简介及应用 103.1MATLABGUI 103.2软件设计步骤 113.3本章小结 22第4章仿真系统测试与演示 234.1离散控制系统的稳定性判断 234.2离散控制系统Bode图 244.3离散控制系统Nyquist曲线 264.4离散控制系统Nichols图 284.5离散控制系统根轨迹 294.6离散控制系统阶跃响应 314.7离散控制系统脉冲响应 334.8本章小结 35结论 36参考文献 37致谢 38东北石油大学本科生毕业设计(论文)PAGE36第1章概述1.1论文选题背景和意义自动控制原理是自动控制专业和自动化专业的主要课程之一,是研究自动控制技术的基础理论课,是必修的专业基础课程。自动控制原理能使学生掌握自动控制系统的基本理论、基本概念、分析和设计方法,为更深入地学习现代控制策略和研究各种自动控制系统打下理论基础[1]。在自动控制领域里的科学研究和工程应用中有大量繁琐的计算与仿真曲线绘制任务,给控制系统的分析和设计带来了巨大的工作量,为了解决海量计算的问题,各种控制系统设计与仿真的软件层出不穷,技术人员凭借这些产品强大的计算和绘图功能,使系统分析和设计的效率得以大大提高。然而在众多控制系统设计与仿真软件中,MATLAB以其强大的计算功能、丰富方便的图形功能、模块化的计算方法,以及动态系统仿真工具Simulink;脱颖而出成为控制系统设计和仿真领域中的佼佼者,同时也成为了当今最流行的科学工程语言。40~50年代在导弹上应用了采样控制系统,与它相应的是在40年代末产生的离散系统理论。60年代以来在飞行器控制中计算机控制系统的应用日益普遍。计算机控制(数字控制)是离散控制的一种。离散系统理论在现代飞行器控制中得到了广泛的应用。研究离散系统GUI设计能极大的节省用于计算和仿真曲线绘制的时间和工作量,并且能减少人工画图中存在的失误。工作人员能凭借这些精确的图形是离散系统分析和设计的效率得以大大提高[2]。1.2计算机辅助分析与设计在控制系统仿真中的发展现状控制理论是一门发展极为迅速的学科[3]。在近一个世纪的发展过程中,其“经典控制理论”与“现代控制理论”的体系己基本完善,近三十年来的“先进控制理论”,如“大系统理论”、各类“智能控制”等,亦取得了蓬勃的发展和可喜的进展。今天的控制理论及其应用技术己不再仅是自动化学科的重要基础,而已成为机电工程、航空航天等现代工程技术中不可缺少的一部分,并在经济学、生物学、医学等领域中获得越来越广泛的应用。伴随着控制理论向深度和广度发展的是大量控制方法和设计算法的产生,而现代计算机及计算技术的发展则使得这些设计过程可通过CAD程序来实现。这样一种发展不仅使设计者解脱了繁琐的甚至是人工无法实现的手工计算困境,而且使一般设计人员(特别使非控制类专业人员)不必精通某些细小定理的复杂数学证明,或对一些实际中不易发生的特殊情况进行详尽的考察而应用各种控制理论进行控制系统的设计,从而极大地增加了控制理论的实用价值和实际应用,同时也促进了控制理论的发展。我国较有影响的控制系统仿真与CAD成果[4]是中科院系统科学研究所主持的国家自然科学基金重大科研项目开发的CADCSC软件和清华大学孙增沂、袁曾任教授的著作和程序等。1988年中科院沈阳自动化所马纪虎研究员主持开发的CSMP-C仿真语言,是国内有代表意义的仿真语言。早在1973年,美国学者Melsa教授和Jones博士出版了一本专著[5],书中给出了一套控制系统计算机辅助分析与设计的程序,包括求系统的根轨迹、频域响应、时间响应、以及各种控制系统设计的子程序。这一时期出现的软件还有瑞典Lund工学院CACSD软件INTRAC、日本的古田胜久教授主持开发的DPACS-F软件、英国Manchester理工大学的控制系统计算机辅助设计软件包、英国剑桥大学推出的线性系统分析与设计软件CLADP等等。此外,在控制系统的计算机辅助分析与设计研究进展中还出现了一些专门的仿真语言,如比较流行的仿真语言有ACSL,CSMP,TSIM,ESL等。这种仿真语言要求用户依照它所提供的语句和大量的模型模块编写一个描述系统的程序,然后才可以对控制系统进行仿真。近十年来,随着MATLAB语言和Simulink仿真环境在控制系统研究与教学中日益广泛的应用,在系统仿真、自动控制等领域,国外很多高校在教学与研究中都将MATLAB/Simulink语言作为首选的计算机工具,我国的科学工作者和教育工作者也逐渐意识到MATLAB语言的重要性,并且在很多搞笑的本科自动控制原理实验教学中得到应用[6]。MATLAB是MathWorks公司于1982年推出的一套高性能的数值计算和可视化软件。它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便、界面友好的用户环境。它还包括了ToolBox(工具箱)[7]的各类问题的求解工具,可用来求解特定学科的问题。MATLAB所具备的强有力的计算功能和图形表现,以及各种工具箱提供的丰富的专用函数,为设计研究人员避免重复繁琐的计算和编程,更快、更好、更准确地进行控制系统分析和设计提供了极大的帮助。Mathworks公司于2010年3月发布了MATLAB的新版本MATLAB2010a。新版本针对编程环境、代码效率、数据可视化、数学计算、文件等方面进行了升级,同时包含了功能强大的控制产品集以支持控制系统设计过程的每一个环节,借助于使用MATLAB中与控制相关的工具箱能够实现许多前沿的控制设计方法;此外,与MATLAB2010a同时发布的Simulink可以辅助技术人员更方便地建立控制系统模型,并通过仿真不断优化设计。本次设计使用的就是MATLAB2010a。1.3本论文主要内容本论文的主要研究工作是通过利用MATLABGUI[8]界面,为本科自动控制理论教学的课程实验提供一个离散控制系统分析与设计的仿真软件。此软件主要功能有:在已知离散控制系统传递函数的情况下对离散控制系统稳定性分析,绘制系统Nyquist图、Bode图、Nichols图、根轨迹图、阶跃响应、脉冲响应。因此,首先本论文根据自动控制原理的本科教学要求对离散控制系统基础理论和MATLAB软件作以介绍;其次,详细介绍MATLABGUI相关知识;最后举例介绍该离散控制系统仿真软件的设计与实现过程。第2章控制系统与MATLAB语言2.1控制系统理论基础控制系统理论的基础知识—自动控制原理,是自动化学科的重要理论基础,是专门研究有关自动控制系统中基本概念、基本原理和基本方法的一门课程,是高等学校自动化类专业的一门核心基础理论课程。学好自动控制理论对掌握自动化技术有着重要的作用。《自动控制原理》[9]是自动控制技术的基础理论,主要分“古典控制理论”和“现代控制理论”两大部分。古典控制理论以传递函数为基础研究单输入单输出一类定常控制系统的分析与设计问题,现代控制理论是六十年代在古典控制理论基础上随着科学技术发展和工程实践需要而迅速发展起来的,它以状态空间法为基础,研究多输入多输出、时变、非线性、高精度、高效能等控制系统的分析与设计问题。2.1.1离散系统理论当系统各个物理量随时间变化的规律不能用连续函数描述时,而只在离散的瞬间给出数值,这种系统称为离散系统。全部或一些组成部分的变量具有离散信号形式的系统。在时间的离散时刻上取值的变量称为离散信号,通常是时间间隔相等的脉冲序列或数字序列,例如按一定的采样时刻进入计算机的信号。除含有采样数据信号的离散系统外,在现实世界中还有天然的离散系统,例如在人口系统中对人口的增长和迁徙过程只能用离散数字加以描述。在现代工业控制系统中广泛采用数字化技术,或在设计中通过数学处理把连续系统化为离散系统,其目的是为了获得良好的控制性能或简化设计过程。离散控制系统视控制信号类型(采样脉冲序列或数字序列)的不同可分为采样控制系统和数字控制系统。离散系统的运动需用差分方程描述。对于参数不随时间变化的离散系统可利用Z变换分析。当系统中同时也存在连续信号时(例如采样系统),也可将离散信号看成脉冲函数序列,从而能采用连续系统分析中的拉普拉斯变换对系统进行统一处理。40~50年代在导弹上应用了采样控制系统,与它相应的是在40年代末产生的离散系统理论。60年代以来在飞行器控制中计算机控制系统的应用日益普遍。计算机控制(数字控制)是离散控制的一种。离散系统理论在现代飞行器控制中得到了广泛的应用。60年代“阿波罗”号飞船的登月舱就采用了数字式自动驾驶仪。2.1.220世纪50年代,经典控制理论形成体系[10]。经典控制理论的数学基础是拉普拉斯变换,系统的基本数学模型是传递函数,主要的分析和综合方法有Bode图法、根轨迹法、劳斯(Routh)判据、奈奎斯特(Nquist)稳定判据、PID控制等。经典控制系统理论虽然至今仍广泛应用在许多工程技术领域中,但也存在着明显的局限性,主要表现在:主要用于单输入单输出线性时不变系统而难以有效地处理多输入多输出系统;只采用外部描述方法讨论控制系统的输入输出关系,而难以揭示系统内部的特性;控制系统设计方法基本上是一种试凑法而不能提供最优控制的方法和手段等等。在20世纪50年代核反应堆控制研究、尤其是航天控制研究的推动下,控制理论在1960年前后开始了从经典阶段到现代阶段的过渡,其中的重要标志是卡尔曼(R.E.Kalman)系统地把状态空间法引入到系统与控制理论中。现代控制理论以状态空间模型为基础,研究系统内部的结构,提出可控性、可观测性概念及分析方法,也提出了一系列设计方法,如LQR(LinearQuadraticRegulator)和LQG(LinearQuadraticGaussian)最优控制方法、Kalman滤波器方法、极点配置方法、基于状态观测器的反馈控制方法等。现代控制理论克服了经典控制的许多局限性,它能够解决某些非线性和时变系统的控制问题,适用于多输入多输出反馈控制系统,可以实现最优控制规律。此外,现代控制理论不仅能够研究确定性的系统,而且可以研究随机的过程,即包含了随机控制系统的分析和设计方法。2.1.3离散研究离散控制系统分析与设计的基础知识,包括离散控制系统的稳定性、稳态特性和动态特性,以及离散控制系统的校正与计算机辅助分析。主要内容:离散控制系统的数学模型、控制系统的时域分析、根轨迹分析、频域分析等。2.2MATLAB语言与控制系统工具箱MATLAB是由MathMorks公司于1984年推出的一套数值计算软件自推出之后,该公司不断接收和吸取各学科领域权威人士为之编写的函数和程序,并将它们转换为MATLAB的工具箱[11]。这样,使MATLAB得到不断的发展和扩充,可以实现数值分析、优化、统计、偏微分方程数值解、自动控制、信号处理、图像处理等若干个领域的计算和图形显示功能。它将不同数学分支的算法以函数的形式分类成库,使用时直接调用这些函数并赋予实际参数就可以解决问题,快速而且准确。2.2.1MATLAB软件介绍MATLAB的名字由Matrix和Laboratory两词的前三个字母组合而成,始创者是时任美国新墨西哥大学计算机科学系主任的CleveMoler教授。于1984年由MathWokrs公司推出(DOS版)。1993年推出MATLAB4.0(windows版)。1997年MATLAB5.0版问世。1999年春已到了5.3版。今天MATLAB己成为国际上最优秀的科技应用软件之一,其强大的科学计算与可视化功能、简单易用的开放式可推展环境以及多达三十余个面向不同领域而扩展的工具箱(Tool-Box)的支持,使得MATLAB在许多学科领域成为科学计算、计算机辅助设计与分析的基础工具和首选平台。MATLAB主要由MATLAB主程序、Simulink动态系统仿真和MATLAB工具箱三大部分组成[12]。其中MATLAB主程序包括MATLAB语言、工作环境、句柄图形、数学函数库和应用程序接口五个部分;Simulink是用于动态系统仿真的交互式系统,允许用户在屏幕上绘制框图来模拟一个系统,并能动态地控制该系统,目前的Simulink可以处理线性、非线性、连续、离散、多变量及多系统;工具箱实际就是用MATLAB的基本语句编写的各种子程序集和函数库,用于解决某一方面的特定问题或实现某一类的新算法,它是开放性的,可以应用也可以根据自己的需要进行扩展。MATLAB工具箱大体可分为功能性的工具箱和学科性的工具箱两类。功能性的工具箱主要用于扩展MATLAB的符号计算功能、图形建模功能、文字处理功能和与硬件的实时交互过程,如符号计算工具箱等:学科性的工具箱则有较强的专业性,用于解决特定的问题,如信号处理工具箱和通信工具箱。2.2.2MATLAB的组成MATLAB主程序是一种以数组和矩阵为元素的工程计算语言。MATLAB语言MATLAB编程语言是一种面向科学与工程计算的高级语言允许按照数学习惯的方式编写程序由于它符合人们思维方式的编写模式使得该语言比Basci、Fortran、C、Pascal等高级语言更容易学习和应用MATLAB语言以矢量和矩阵为基本的数据单元包含流程控制语句顺序选择循环条件转移和暂停等大量的运算符丰富的函数多种数据结构输入输出以及面向对象编程这些既可以满足简单问题的求解也适合于开发复杂的大型程序MATLAB不仅仅是一套打好包的函数库同时也是一种高级的面向对象的编程语言使用MATLAB能够卓有成效地开发自己的程序MATLAB自身的许多函数实际上也包括所有的工具箱函数都是用M文件实现的。MATLAB2010a工作环境MATLAB工作环境[13]包括变量查看器、当前路径选择菜单、命令历史记录窗口、当前工作空间窗口、命令控制窗口、图形处理窗口、程序编辑器、模型编辑器、GUI编辑器和MATLAB附带的大量M文件。MATLAB绘图功能MATLAB句柄图形控制系统是MATLAB数据可视化的核心部分。它既包含对二维和三维数据的可视化、图形处理、动画制作等高层次的绘图命令,也包含可以修改图形局部及编制完整图形界面的低层次绘图命令。这些功能可使用户创建富有表现力的彩色图形,可视化工具包括曲面宣染、线框图、伪彩图、光源、三维等位线图、图像显示、动画、体积可视化等同时MATLAB还提供了句柄图形机制,使用该机制可对图形进行灵活的控制。使用GUIDE工具可以方便地使用句柄图形创建自己的GUI界面。MATLAB数学函数库MATALB拥有500多种数学、统计及工程函数,可使用户立刻实现所需的强大的数学计算功能[14]。这些函数是由各领域的专家学者开发的数值计算程序,使用了安全、成熟、可靠的算法,从而保证了最大的运算速度和可靠的结果。MATLAB内置的强大数学函数库既包含了最基本的数学运算函数,如求和正弦、余弦等函数,也包含了丰富的复杂函数,如矩阵特征值矩阵求逆傅里叶变换等函数。MATLABMATLAB应用程序接口是通过MATLAB的API库完成的,MATLAB通过对API库函数的调用可以与其他应用程序交换数据。同样,用户也可在其他语言中通过该接口函数库调用MATLAB的程序。MATLAB应用程序接口中的内容包括实时动态连接外部C或Fortran应用函数,独立C或Fortran程序中调用MATLAB函数输入输出各种MATLAB及其他标准格式的数据文件,创建图文并貌的技术文档,包括MATLAB图形、命令,并可通过word输出。2.2.3MATLAB的主要特点MATLAB的主要特点[15]如下。1、简单易学:MATLAB是一门编程语言,其语法规则与一般的结构化高级编程语言如C语言等大同小异,而且使用更方便,具有一般语言基础的用户很快就可以掌握。2、代码短小高效:由于MATLAB已经将数学问题的具体算法编成了现成的函数,用户只要熟悉算法的特点、适用场合、函数的调用格式和参数意义等,通过调用函数很快就可以解决问题,二不必花大量的时间纠缠于具体算法的实现。3、计算功能非常强大:该软件具有强大的矩阵计算功能,利用一般的符号和函数就可以对矩阵进行加、减、乘、除运算以及转置和求逆等运算,而且可以处理稀疏矩阵等特殊的矩阵,非常适合于有限元等大型数值运算的编程。此外,该软件现有的数十个工具箱,可以解决应用中的很多数学问题。4、强大的图形绘制和处理功能:该软件可以绘制常见的二维三维图形,如线形图,条形图,饼图,散点图,直方图,误差条图,玫瑰花图,极坐标图等。利用有关函数,可以对三维图形进行颜色光照材质纹理和透明性设置并进行交互处理。科学计算要设计到大量数据的处理,利用图形展示数据场的特征,能显著提高数据处理的效率,提高对数据反馈信息的处理速度和能力。MATLAB提供了丰富的科学计算可视化功能,利用它可以绘制二维三维矢量图、等值线图、三维表面图、曲面图、二维三维流线图、三维流锥、流沙图、流带图、流管图、卷曲图和剖面图等,还可以进行动画制作。基于MATLAB句柄图形对象,结合绘图工具函数,可以根据需要用MATLAB绘制自己的图形。5、可扩展性能:可扩展性能视该软件的一大优点,用户可以自己编写M文件,组成自己的工具箱,方便的解决本领域内常见的计算问题。此外,利用MATLAB编译器可以生成独立的可执行程序,从而可以隐藏算法并避免依赖MATLAB。MATLAB支持DDE、OLE、ActiveX自动化和COM组建等机制,可以与同样支持该技术的应用程序接口。利用最近推出的COM生成器和Excel生成器,可以利用给定的M文件和MEX文件创建COM组建和Excel插件,从而能够实现与VB、VC等程序的无缝集成。利用Web服务器,可以实现MATLAB于网络的接口。采用互操作技术,可以实现MATLAB与.NET程序的接口。利用端口API函数,可以实现MATLAB与硬件的接口。2.2.4面向控制工程应用一直是MATLAB的主要功能之一,早期的版本就提供了控制系统设计工具箱。20世纪90年代初的3.5版推出RobustToolBox,4.0版推出基于模块图的控制系统仿真软件Simulink。到目前为止,MATLAB中包含的控制工程类工具箱己超过十个。MATLAB所具备的强有力的计算功能和图形表现,以及各种工具箱提供的丰富的专用函数,为设计研究人员避免重复繁琐的计算和编程,更快、更好;更准确地进行控制系统分析和设计提供了极大的帮助。控制系统工具箱主要函数[16]如下。1、线性定常系统(LTI)数学模型生成函数tf():创建传递函数模型;ss():创建状态方程模型;zpk():创建零一极点模型;dss():创建离散状态方程模型;get():获取模型参数信息;set():设置模型参数。2、数学模型转换函数c2d():连续系统转换成离散系统;d2c():离散系统转换成连续系统;d2d():离散系统重新采样。3、时间响应函数impulse():计算并绘制冲击响应;step():计算并绘制阶跃响应。4、频率响应函数bode():计算并绘制波特响应;nichols():计算奈克尔斯图;nyquist():计算奈奎斯特图;pzmap():绘制零极点图。5、控制系统分析与设计图形用户接口ltiview:打开定常线性系统(LTI)响应分析窗口;sisotool:打开单输入单输出系统(SISO)设计图形用户接口。6、模型转换函数tf2zp():传递函数模型转换为零极点模型;tf2ss():传递函数模型转换为状态方程模型;ss2tf():状态方程模型转换为传递函数模型;ss2zp():状态方程模型转换为零极点模型。7、其他函数str2num():将输入字符串转换为数值;get(handles.edit,'string'):读取MATLABGUI控件参数。2.3本章小结本章介绍了基于MATLAB/GUI的离散控制系统设计的基础知识,其中包括离散控制系统的知识和MATLAB/GUI的知识。通过本章的介绍可以对离散控制系统和MATLAB/GUI设计有一个初步的认识。第3章MATLABGUI简介及应用3.1MATLABGUI用户界面(或接口)[17]是指:人与机器(或程序)之间交互作用的工具和方法。如键盘、鼠标、跟踪球、话筒都可成为与计算机交换信息的接口。图形用户界面(GraphicalUserInterfaces,GUI)[18]则是由窗口、光标、按键、菜单、文字说明等对象(Objects)构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。假如读者所从事的数据分析、解方程、计算结果可视工作比较单一,那么一般不会考虑GUI的制作。但是如果读者想向别人提供应用程序,想进行某种技术、方法的演示,想制作一个供反复使用且操作简单的专用工具,那么图形用户界面也许是最好的选择之一。MATLAB为表现其基本功能而设计的演示程序demo是使用图形界面的最好范例。MATLAB的用户,在指令窗中运行demo打开那图形界面后,只要用鼠标进行选择和点击,就可浏览那丰富多彩的内容。用户图形界面(GUI)是程序的图形化界面。一个好的GUI能够使程序更加容易的使用。它提供用户一个常见的界面,还提供一些控件,例如,按钮,列表框,滑块,菜单等。用户图形界面应当是易理解且操作是可以预告的,所以当用户进行某一项操作,它知道如何去做。例如,当鼠标在一个按钮上发生了单击事件,用户图形界面初始化它的操作,并在按钮的标签上对这个操作进行描述。创建MATLAB用户图形界面必须由三个基本元素:组件在MATLABGUI中的每一个项目(按钮,标签,编辑框等)都是一个图形化组件。组件可分为三类:图形化控件(按钮,编辑框,列表,滚动条等),静态元素(窗口和文本字符串),菜单和坐标系。图形化控件和静态元素由函数uicontrol创建,菜单由函数uimenu和uicontextmenu创建,坐标系经常用于显示图形化数据,由函数axes创建.图象窗口(Figure)。GUI的每一个组件都必须安排图象窗口中。以前,我们在画数据图象时,图象窗口会被自动创建。但我们还可以用函数figure来创建空图象窗口,空图象窗口经常用于放置各种类型的组件。最后,如果用户用鼠标单击或用键盘键入一些信息,那么程序就要有相应的动作。鼠标单击或键入信息是一个事件,如果MATLAB程序运行相应的函数,那么MATLAB函数肯定会有所反应。例如,如果用户单击一按钮,这个事件必然导致相应的matlab语句执行,这些相应的语句被称为回应,只要执行GUI的单个图形组件,必须有一个回应。3.2软件设计步骤3.2.1建立主界面运行MATLAB2010a,点击File下的New中的GUI创建新的GUI界面[19],命名为DSS。点击其中的“TXT”按钮,创建5个静态文本框。在其中分别写入“欢迎使用本仿真环境进行控制系统的仿真”,“您可以”,“1、选择“离散系统”进入相应的仿真环境”,“2、选择“帮助”查看具体使用方法”,“3、选择“文件”-“退出”,退出仿真环境”。如图3-1所示。图3-1建立主界面点击Tools,选择MenuEditor创建下拉菜单。如图3-2所示。图3-2建立下拉菜单3.2.2绘制Bode图界面创建新的GUI界面,命名为bode,在其中加入若干静态文本框,动态文本框,PushBotton,坐标轴(属性为log)。如图3-3所示。“OK”按钮的作用是在输入分子分母及采样时间后确认开始仿真。在“OK”下编写程序如下:a=str2num(get(findobj(gcbf,'Tag','edit1'),'string'));b=str2num(get(findobj(gcbf,'Tag','edit2'),'string'));c=str2num(get(findobj(gcbf,'Tag','edit4'),'string'));dbode(a,b,c);“Load”按钮的作用是在加载仿真程序中实例,这样在仿真演示的时候会更加方便。在“Load”下编写程序如下:a=9;b=[2,3,5];dbode(a,b,0.1);“Gridon”按钮的作用是在坐标轴中加载网格。其程序如下:gridon;“Gridoff”按钮的作用是在坐标轴中取消网格。其程序如下:gridoff;“Exit”按钮的作用是退出仿真。其程序如下:close(gcf);图3-3建立绘制Bode图界面3.2.3绘制Nyquist曲线创建新的GUI界面,命名为Nyquist,在其中加入若干静态文本框,动态文本框,PushBotton,坐标轴(属性为linear)。如图3-4所示。“OK”按钮的作用是在输入分子分母及采样时间后确认开始仿真。在“OK”下编写程序如下:a=str2num(get(findobj(gcbf,'Tag','edit1'),'string'));b=str2num(get(findobj(gcbf,'Tag','edit2'),'string'));T=1;[c,d]=c2dm(a,b,T,'Zoh');nyquist(c,d);“Load”按钮的作用是在加载仿真程序中实例,这样在仿真演示的时候会更加方便。在“Load”下编写程序如下:a=9;b=[2,3,5];T=1;[c,d]=c2dm(a,b,T,'Zoh');nyquist(c,d);“Gridon”按钮的作用是在坐标轴中加载网格。其程序如下:gridon;“Gridoff”按钮的作用是在坐标轴中取消网格。其程序如下:gridoff;“Exit”按钮的作用是退出仿真。其程序如下:close(gcf);图3-4建立绘制Nyquist曲线3.2.4绘制Nichols曲线创建新的GUI界面,命名为Nichols,在其中加入若干静态文本框,动态文本框,PushBotton,坐标轴(属性为linear)。如图3-5所示。“OK”按钮的作用是在输入分子分母及采样时间后确认开始仿真。在“OK”下编写程序如下:a=str2num(get(findobj(gcbf,'Tag','edit1'),'string'));b=str2num(get(findobj(gcbf,'Tag','edit2'),'string'));T=1;[c,d]=c2dm(a,b,T,'Zoh');nichols(c,d);“Load”按钮的作用是在加载仿真程序中实例,这样在仿真演示的时候会更加方便。在“Load”下编写程序如下:a=9;b=[2,3,5];T=1;[c,d]=c2dm(a,b,T,'Zoh');nichols(c,d);“Gridon”按钮的作用是在坐标轴中加载网格。其程序如下:gridon;“Gridoff”按钮的作用是在坐标轴中取消网格。其程序如下:gridoff;“Exit”按钮的作用是退出仿真。其程序如下:close(gcf);图3-5建立绘制Nichols曲线3.2.5绘制根轨迹创建新的GUI界面,命名为rootlocus,在其中加入若干静态文本框,动态文本框,PushBotton,坐标轴(属性为linear)。如图3-6所示。“OK”按钮的作用是在输入分子分母及采样时间后确认开始仿真。在“OK”下编写程序如下:a=str2num(get(findobj(gcbf,'Tag','edit1'),'string'));b=str2num(get(findobj(gcbf,'Tag','edit2'),'string'));T=1;[c,d]=c2dm(a,b,T,'Zoh');rootlocus(c,d);“Load”按钮的作用是在加载仿真程序中实例,这样在仿真演示的时候会更加方便。在“Load”下编写程序如下:a=9;b=[2,3,5];T=1;[c,d]=c2dm(a,b,T,'Zoh');rootlocus(c,d);图3-6建立绘制根轨迹“Gridon”按钮的作用是在坐标轴中加载网格。其程序如下:gridon;“Gridoff”按钮的作用是在坐标轴中取消网格。其程序如下:gridoff;“Exit”按钮的作用是退出仿真。其程序如下:close(gcf);3.2.6离散系统稳定性判断创建新的GUI界面,命名为stability,在其中加入若干静态文本框,动态文本框,PushBotton,坐标轴(属性为linear)。如图3-7所示。“OK”按钮的作用是在输入分子分母及采样时间后确认开始仿真。在“OK”下编写程序如下:a=str2num(get(findobj(gcbf,'Tag','edit1'),'string'));b=str2num(get(findobj(gcbf,'Tag','edit2'),'string'));p=roots(b);%求系统极点q=roots(a); %求系统零点p=p'; %将极点列向量转置为行向量q=q'; %将零点列向量转置为行向量x=max(abs([pq1])); %确定纵坐标范围x=x+0.1;y=x; %确定横坐标范围%clf;holdon;axis([-xx-yy]); %确定坐标轴显示范围w=0:pi/300:2*pi;t=exp(i*w);plot(t); %画单位园axis('square');plot([-xx],[00]); %画横坐标轴plot([00],[-yy]); %画纵坐标轴%text(0.1,x,'jIm[z]');%text(y,1/10,'Re[z]');plot(real(p),imag(p),'x'); %画极点plot(real(q),imag(q),'o'); %画零点%title('pole-zerodiagramfordiscretesystem'); %标注标题holdoff;“Load”按钮的作用是在加载仿真程序中实例,这样在仿真演示的时候会更加方便。在“Load”下编写程序如下:a=9;b=[2,3,5];p=roots(b);%求系统极点q=roots(a); %求系统零点p=p'; %将极点列向量转置为行向量q=q'; %将零点列向量转置为行向量x=max(abs([pq1])); %确定纵坐标范围x=x+0.1;y=x; %确定横坐标范围%clf;holdon;axis([-xx-yy]); %确定坐标轴显示范围w=0:pi/300:2*pi;t=exp(i*w);plot(t); %画单位园axis('square');plot([-xx],[00]); %画横坐标轴plot([00],[-yy]); %画纵坐标轴%text(0.1,x,'jIm[z]');%text(y,1/10,'Re[z]');plot(real(p),imag(p),'x'); %画极点plot(real(q),imag(q),'o'); %画零点%title('pole-zerodiagramfordiscretesystem'); %标注标题holdoff;“Gridon”按钮的作用是在坐标轴中加载网格。其程序如下:gridon;“Gridoff”按钮的作用是在坐标轴中取消网格。其程序如下:gridoff;“Exit”按钮的作用是退出仿真。其程序如下:close(gcf);图3-7离散系统稳定性判断3.2.7阶跃响应创建新的GUI界面,命名为step,在其中加入若干静态文本框,动态文本框,PushBotton,坐标轴(属性为linear)。如图3-8所示。“OK”按钮的作用是在输入分子分母及采样时间后确认开始仿真。在“OK”下编写程序如下:a=str2num(get(findobj(gcbf,'Tag','edit1'),'string'));b=str2num(get(findobj(gcbf,'Tag','edit2'),'string'));T=1;[c,d]=c2dm(a,b,T,'Zoh');dstep(c,d);“Load”按钮的作用是在加载仿真程序中实例,这样在仿真演示的时候会更加方便。在“Load”下编写程序如下:a=9;b=[2,3,5];T=1;[c,d]=c2dm(a,b,T,'Zoh');dstep(c,d);“Gridon”按钮的作用是在坐标轴中加载网格。其程序如下:gridon;“Gridoff”按钮的作用是在坐标轴中取消网格。其程序如下:gridoff;“Exit”按钮的作用是退出仿真。其程序如下:close(gcf);图3-8建立阶跃响应3.2.8脉冲响应创建新的GUI界面,命名为impulse,在其中加入若干静态文本框,动态文本框,PushBotton,坐标轴(属性为linear)。如图3-9所示。“OK”按钮的作用是在输入分子分母及采样时间后确认开始仿真。在“OK”下编写程序如下:a=str2num(get(findobj(gcbf,'Tag','edit1'),'string'));b=str2num(get(findobj(gcbf,'Tag','edit2'),'string'));T=1;[c,d]=c2dm(a,b,T,'Zoh');dimpulse(c,d);“Load”按钮的作用是在加载仿真程序中实例,这样在仿真演示的时候会更加方便。在“Load”下编写程序如下:a=9;b=[2,3,5];T=1;[c,d]=c2dm(a,b,T,'Zoh');dimpulse(c,d);“Gridon”按钮的作用是在坐标轴中加载网格。其程序如下:gridon;“Gridoff”按钮的作用是在坐标轴中取消网格。其程序如下:gridoff;“Exit”按钮的作用是退出仿真。其程序如下:close(gcf);图3-9建立脉冲响应3.3本章小结本章介绍了基于MATLAB/GUI的离散控制系统设计的原理和设计过程,其中包括界面设计和程序设计。程序设计是本次设计的核心部分,本章着重介绍了本次设计的程序,并给出了每部分的完整的程序。第4章仿真系统测试与演示4.1离散控制系统的稳定性判断4.1.1MATLAB下稳定性的直接求解在系统特性研究中,系统的稳定性是最重要指标,如果系统稳定,则可以进一步分析系统的其他性能,如果系统不稳定,系统则不能直接应用。由控制理论可知,以状态方程模型表示的系统,它的状态矩阵A的特征根和以传递函数模型表示的系统的极点是一致,只有他们的值都为负数时系统才会稳定。因此,直接而简便的方法就是求出系统的极点,则系统的稳定性就可以立即得到。在MATLAB控制系统工具箱中,eig(G)函数可以求取一个连续线性定常系统极点,其中系统模型G可以为传递函数、状态方程或零极点模型表示。另外,用图形的方式绘制出系统所有特征根或极点在s复平面上的位置,所以判定连续系统是否稳定只需看一下系统所有特征根或极点是否均位于虚轴左侧即可。4.1.2软件实现方法及举例打开软件,选择离散系统下离散系统稳定性判断,进入界面,如图4-1所示。图4-1离散系统稳定性判断界面在可编辑文本框内输入分子、分母,点击“OK”按钮,可得零极点分布图,如图4-2所示。根据零极点分布,从而判断离散系统是否稳定。图4-2零极点分布图4.2离散控制系统Bode图4.2.1Bode图在研究控制系统的频率响应时,由于信号的频率范围很宽(从几赫到几百兆赫以上),放大电路的放大倍数也很大(可达百万倍),为压缩坐标,扩大视野,在画频率特性曲线时,频率坐标采用对数刻度,而幅值(以dB为单位)或相角采用线性刻度。在这种半对数坐标中画出的幅频特性和相频曲线称为对数频率特性或波特图。在MATLAB中用bode()函数来实现波特图绘制。4.2.2软件实现方法及举例打开软件,选择离散系统下绘制Bode图,进入界面,如图4-3所示。图4-3绘制Bode图界面在可编辑文本框内输入分子、分母,点击“OK”按钮,可得Bode图,如图4-4所示。图4-4离散控制系统Bode图4.3离散控制系统Nyquist曲线4.3.1Nyquist稳定判据奈奎斯特稳定判据的基本形式表明,如果系统开环传递函数G(s)在s复数平面的虚轴上既无极点又无零点,那么闭环控制系统的特征方程在右半s平面上根的个数Z=P-2N。所谓特征方程是传递函数分母多项式为零的代数方程,P是开环传递函数在右半s平面上的极点数,N是当角频率由0变化到∞时G(s)的轨迹沿逆时针方向围绕实轴上点(-1,j0)的次数。奈奎斯特稳定判据还指出:Z=0时,闭环控制系统稳定;Z≠0时,闭环控制系统不稳定。奈奎斯特稳定判据推广形式:当开环传递函数G(s)在s复数平面的虚轴上存在极点或零点时,必须采用判据的推广形式才能对闭环系统稳定性作出正确的判断。在推广形式判据中,开环频率响应G(s)的奈奎斯特图不是按连续地由0变到∞来得到的,变化路径如图4-5所示,称为推广的奈奎斯特路径。在这个路径中,当遇到位于虚轴上G(s)的极点(图中用×表示)时,要用半径很小的半圆从右侧绕过。只要按这条路径来作出G(s)从0变化到∞时的奈奎斯特图,则Z=P-2N和关于稳定性的结论仍然成立。MATLAB中用nyquist()绘制系统Nyquist图。图4-5变化路径解释说明图4.3.2软件实现方法及举例打开软件,选择离散系统下绘制Nyquist图,进入界面,如图4-6所示。图4-6绘制Nyquist曲线界面在可编辑文本框内输入分子、分母,点击“OK”按钮,可得Nyquist图,如图4-7所示。图4-7离散控制系统Nyquist曲线4.4离散控制系统Nichols图4.4.1Nichols图Nichols图[20](对数幅相图)是描述系统频率特性的一种图示方法。该图纵坐标表示频率特性的对数幅值,以分贝为单位;横坐标表示频率特性的相位角。对数幅相特性图以频率ω作为参变量,用一条曲线完整地表示了系统的频率特性。Nichols图的幅值和相角组成直角坐标。Nichols图多用于控制系统的校正。Nichols图很容易由Bode图上的幅频曲线和相频曲线合合成而得到。对数幅相特性图有以下特点:1、由于系统增益的改变不影响相频特性,故系统增益改变时,对数幅相特性图只是简单地向上平移(增益增大)或向下平移(增益减小),而曲线形状保持不变;2、G(ω)和1/G(jω)的对数幅相特性图相对原点中心对称,即幅值和相位均相差一个符号;3、利用对数相幅特性图,很容易由开环频率特性求闭环频率特性,可方便地用于确定闭环系统的稳定性及解决系统的综合校正问题。4.4.2软件实现方法及举例打开软件,选择离散系统下绘制Nichols图,进入界面,如图4-8所示。图4-8绘制Nichols图界面在可编辑文本框内输入分子、分母,点击“OK”按钮,可得Nichols图,如图4-9所示。图4-9离散控制系统Nichols图4.5离散控制系统根轨迹4.5.1根轨迹根轨迹的绘制:在控制系统的分析和综合中,往往只需要知道根轨迹的粗略形状。由相角条件和幅值条件所导出的8条规则,为粗略地绘制出根轨迹图提供方便的途径。根轨迹的分支数等于开环传递函数极点的个数。根轨迹的始点(相应于K=0)为开环传递函数的极点,根轨迹的终点(相应于K=∞)为开环传递函数的有穷零点或无穷远零点。根轨迹形状对称于坐标系的横轴(实轴)。实轴上的根轨迹按下述方法确定:将开环传递函数的位于实轴上的极点和零点由右至左顺序编号,由奇数点至偶数点间的线段为根轨迹。实轴上两个开环极点或两个开环零点间的根轨迹段上,至少存在一个分离点或会合点,根轨迹将在这些点产生分岔。在无穷远处根轨迹的走向可通过画出其渐近线来决定。渐近线的条数等于开环传递函数的极点数与零点数之差。根轨迹沿始点的走向由出射角决定,根轨迹到达终点的走向由入射角决定。根轨迹与虚轴(纵轴)的交点对分析系统的稳定性很重要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论