计算机辅助分析与设计在控制系统MATLAB仿真中的发展现状

上传人:1777****777 文档编号:37866191 上传时间:2021-11-04 格式:DOC 页数:38 大小:1,018.50KB
返回 下载 相关 举报
计算机辅助分析与设计在控制系统MATLAB仿真中的发展现状_第1页
第1页 / 共38页
计算机辅助分析与设计在控制系统MATLAB仿真中的发展现状_第2页
第2页 / 共38页
计算机辅助分析与设计在控制系统MATLAB仿真中的发展现状_第3页
第3页 / 共38页
点击查看更多>>
资源描述
大庆石油学院本科生毕业设计(论文)摘 要MATLAB语言是一种十分有效的工具,能容易地解决在系统仿真及控制系统计算机辅助设计领域的教学与研究中遇到的问题,它可以将使用者从繁琐的底层编程中解放出来,把有限的宝贵时间更多地花在解决科学问题上。MATLAB GUI是MATLAB的人机交互界面。由于GUI本身提供了windows基本控件的支持,并且具有良好的事件驱动机制,同时提供了MATLAB数学库的接口,所以GUI对于控制系统仿真的平台设计显得十分合适。GUI对于每个用户窗口生成.fig和.m文件。前者负责界面的设计信息,后者负责后台代码的设计。本文所做的研究主要是基于MATLAB GUI平台,结合控制系统基础理论和MATLAB控制系统工具箱,实现了用于控制系统计算机辅助分析与设计的软件。本软件主要功能:实现传递函数模型输入、状态方程模型输入、模型装换、控制系统稳定性分析、系统可观性可控性判断,绘制系统奈奎斯特图、波特图、根轨迹图以及零极点分布图。在继续完善的基础上能够用于本科自动控制原理教程的教学实验和一般的科学研究。关键词:控制系统;MATLAB GUI;计算机辅助设计AbstractMATLAB language is a very effective tool,and can be easily resolved in the system simulation and control system of teaching in the field of computer-aided design and research problems,it could be the bottom of the user from tedious programming liberate the limited spend more valuable time to solve scientific problems.The MATLAB GUI is the interactive interface.As the GUI itself provides the basic control windows support,and has a good mechanism for event-driven,while providing the MATLAB Math Library interface,the GUI for control system simulation platform for the design of it is suitable. GUI window generated for each user. Fig and.M file. The former is responsible for the design of the interface information,which is responsible for the design of the background code.Research done in this article is mainly based on MATLAB GUI platform,the basis of combination of control system theory and MATLAB Control System Toolbox,the realization of control systems for computer-aided analysis and design software. The main functions of the software: the realization of transfer function model input,the state equation model input,the model fitted for the control system stability analysis,system observability controllability judgments、rendering the system Nyquist diagram、Bode plots、root locus and Pole-zero distribution. While continuing to improve based on the principle of automatic control can be used for undergraduate teaching course experiments and scientific research in general. Key words:Control System;MATLAB GUI; Computer-assistant design 目 录第1章 概述11.1 论文选题背景和意义11.2 计算机辅助分析与设计在控制系统仿真中的发展现状11.3 本文主要内容3第2章 控制系统与MATLAB语言42.1 控制系统理论基础42.2 MATLAB语言与控制系统工具箱5第3章 MATLAB GUI简介及应用93.1 MATLAB GUI93.2 软件设计步骤10第4章 仿真系统测试与演示164.1 控制系统的模型输入164.2 控制系统的稳定性分析194.3 控制系统可控可观性分析204.4 控制系统频率响应234.5 控制系统时域响应274.6 控制系统根轨迹绘制28结论31参考文献32致 谢33III第1章 概述1.1 论文选题背景和意义自动控制原理是自动控制专业和自动化专业的主要课程之一,是研究自动控制技术的基础理论课,是必修的专业基础课程。自动控制原理能使学生掌握自动控制系统的基本理论、基本概念、分析和设计方法,为更深入地学习现代控制策略和研究各种自动控制系统打下理论基础1。在自动控制领域里的科学研究和工程应用中有大量繁琐的计算与仿真曲线绘制任务,给控制系统的分析和设计带来了巨大的工作量,为了解决海量计算的问题,各种控制系统设计与仿真的软件层出不穷,技术人员凭借这些产品强大的计算和绘图功能,使系统分析和设计的效率得以大大提高。然而在众多控制系统设计与仿真软件中,MATLAB以其强大的计算功能、丰富方便的图形功能、模块化的计算方法,以及动态系统仿真工具Simulink;脱颖而出成为控制系统设计和仿真领域中的佼佼者,同时也成为了当今最流行的科学工程语言。然而MATLAB自身所存在的某些缺点限制了它的应用范围件。一、MATLAB以解释方式执行效率很低,这在处理图像是特别明显;二、MATLAB程序不能脱离其环境运行,因此它不能被用于开发商用软件;三、MATLAB的程序是后缀为m的脚本文件它对用户完全透明,因此用户可任意进行修改,但有时为维护代码的完整性和安全性,并不希望用户了解或更改核心程序;四、其界面编写功能也过于简单,以致不能满足用户的高级需求。但是在本文软件设计开发主要应用于自动控制原理教学实验,并不需要复杂的图像处理和对代码完整性及安全性的苛刻保护,所以运用MATLAB GUI能较为简单得对软件进行设计开发2。1.2 计算机辅助分析与设计在控制系统仿真中的发展现状控制理论是一门发展极为迅速的学科3。在近一个世纪的发展过程中,其“经典控制理论”与“现代控制理论”的体系己基本完善,近三十年来的“先进控制理论”,如“大系统理论”、各类“智能控制”等,亦取得了蓬勃的发展和可喜的进展。今天的控制理论及其应用技术己不再仅是自动化学科的重要基础,而已成为机电工程、航空航天等现代工程技术中不可缺少的一部分,并在经济学、生物学、医学等领域中获得越来越广泛的应用。伴随着控制理论向深度和广度发展的是大量控制方法和设计算法的产生,而现代计算机及计算技术的发展则使得这些设计过程可通过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。新版本针对编程环境、代码效率、数据可视化、数学计算、文件等方面进行了升级,同时包含了功能强大的控制产品集以支持控制系统设计过程的每一个环节,借助于使用MATLAB中与控制相关的工具箱能够实现许多前沿的控制设计方法;此外,与MATLAB7同时发布的Simulink6.0可以辅助技术人员更方便地建立控制系统模型,并通过仿真不断优化设计。1.3 本文主要内容本文主要研究及工作是通过利用MATLAB GUI8界面,为本科自动控制理论教学的课程实验提供一个控制系统分析与设计的仿真软件。此软件主要功能:实现传递函数模型输入、状态方程模型输入、模型转换、控制系统稳定性分析、系统可观性可控性判断,绘制系统奈奎斯特图、波特图、根轨迹图。因此,首先本论文将根据自动控制原理的本科教学要求对控制系统基础理论和MATLAB软件作以介绍;其次MATLAB GUI是这个仿真软件开发的基础,本文将详细介绍,最后将举例介绍这个控制系统仿真软件的设计与实现过程。第2章 控制系统与MATLAB语言2.1 控制系统理论基础控制系统理论的基础知识自动控制原理,是自动化学科的重要理论基础,是专门研究有关自动控制系统中基本概念、基本原理和基本方法的一门课程,是高等学校自动化类专业的一门核心基础理论课程。学好自动控制理论对掌握自动化技术有着重要的作用。自动控制原理9是自动控制技术的基础理论,主要分“古典控制理论”和“现代控制理论”两大部分。古典控制理论以传递函数为基础研究单输入单输出一类定常控制系统的分析与设计问题,现代控制理论是六十年代在古典控制理论基础上随着科学技术发展和工程实践需要而迅速发展起来的,它以状态空间法为基础,研究多输入多输出、时变、非线性、高精度、高效能等控制系统的分析与设计问题。2.1.1 控制系统的古典理论与现代理论20世纪50年代,经典控制理论形成体系10。经典控制理论的数学基础是拉普拉斯变换,系统的基本数学模型是传递函数,主要的分析和综合方法有Bode图法、根轨迹法、劳斯(Routh)判据、奈奎斯特(Nquist)稳定判据、PID控制等。经典控制系统理论虽然至今仍广泛应用在许多工程技术领域中,但也存在着明显的局限性,主要表现在:主要用于单输入单输出线性时不变系统而难以有效地处理多输入多输出系统;只采用外部描述方法讨论控制系统的输入输出关系,而难以揭示系统内部的特性;控制系统设计方法基本上是一种试凑法而不能提供最优控制的方法和手段等等。在20世纪50年代核反应堆控制研究、尤其是航天控制研究的推动下,控制理论在1960年前后开始了从经典阶段到现代阶段的过渡,其中的重要标志是卡尔曼(R.E.Kalman)系统地把状态空间法引入到系统与控制理论中。现代控制理论以状态空间模型为基础,研究系统内部的结构,提出可控性、可观测性概念及分析方法,也提出了一系列设计方法,如LQR(Linear Quadratic Regulator)和LQG(Linear Quadratic Gaussian)最优控制方法、Kalman滤波器方法、极点配置方法、基于状态观测器的反馈控制方法等。现代控制理论克服了经典控制的许多局限性,它能够解决某些非线性和时变系统的控制问题,适用于多输入多输出反馈控制系统,可以实现最优控制规律。此外,现代控制理论不仅能够研究确定性的系统,而且可以研究随机的过程,即包含了随机控制系统的分析和设计方法。2.1.2 控制系统理论的基本内容研究控制系统分析与设计的基础知识,包括控制系统的稳定性、稳态特性和动态特性,以及控制系统的校正与计算机辅助分析。主要内容:控制系统的数学模型、控制系统的时域分析、根轨迹分析、频域分析、控制系统的校正、非线性系统的近似分析、现代控制理论基础、采样控制系统的分析与设计、控制系统的计算机辅助分析与设计等。2.2 MATLAB语言与控制系统工具箱MATLAB是由MathMorks公司于1984年推出的一套数值计算软件自推出之后,该公司不断接收和吸取各学科领域权威人士为之编写的函数和程序,并将它们转换为MATLAB的工具箱11。这样,使MATLAB得到不断的发展和扩充,可以实现数值分析、优化、统计、偏微分方程数值解、自动控制、信号处理、图像处理等若干个领域的计算和图形显示功能。它将不同数学分支的算法以函数的形式分类成库,使用时直接调用这些函数并赋予实际参数就可以解决问题,快速而且准确。2.2.1 MATLAB软件介绍MATLAB的名字由Matrix和Laboratory两词的前三个字母组合而成,始创者是时任美国新墨西哥大学计算机科学系主任的CleveMoler教授。于1984年由MathWokrs公司推出(DOS版)。1993年推出MATLAB4.0(windows版)。1997年MATLAB 5.0版问世。1999年春已到了5.3版。今天MATLAB己成为国际上最优秀的科技应用软件之一,其强大的科学计算与可视化功能、简单易用的开放式可推展环境以及多达三十余个面向不同领域而扩展的工具箱(Tool- Box)的支持,使得MATLAB在许多学科领域成为科学计算、计算机辅助设计与分析的基础工具和首选平台。MATLAB主要由MATLAB主程序、Simulink动态系统仿真和MATLAB工具箱三大部分组成12。其中MATLAB主程序包括MATLAB语言、工作环境、句柄图形、数学函数库和应用程序接口五个部分;Simulink是用于动态系统仿真的交互式系统,允许用户在屏幕上绘制框图来模拟一个系统,并能动态地控制该系统,目前的Simulink可以处理线性、非线性、连续、离散、多变量及多系统;工具箱实际就是用MATLAB的基本语句编写的各种子程序集和函数库,用于解决某一方面的特定问题或实现某一类的新算法,它是开放性的,可以应用也可以根据自己的需要进行扩展。MATLAB工具箱大体可分为功能性的工具箱和学科性的工具箱两类。功能性的工具箱主要用于扩展MATLAB的符号计算功能、图形建模功能、文字处理功能和与硬件的实时交互过程,如符号计算工具箱等:学科性的工具箱则有较强的专业性,用于解决特定的问题,如信号处理工具箱和通信工具箱。MATLAB的主要特点13:(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与硬件的接口。MATLAB主程序是一种以数组和矩阵为元素的工程计算语言,主要包括以下几部分:一、 MATLAB语言MATLAB编程语言是一种面向科学与工程计算的高级语言允许按照数学习惯的方式编写程序由于它符合人们思维方式的编写模式使得该语言比Basci、Fortran、C、Pascal等高级语言更容易学习和应用MATLAB语言以矢量和矩阵为基本的数据单元包含流程控制语句顺序选择循环条件转移和暂停等大量的运算符丰富的函数多种数据结构输入输出以及面向对象编程这些既可以满足简单问题的求解也适合于开发复杂的大型程序MATLAB不仅仅是一套打好包的函数库同时也是一种高级的面向对象的编程语言使用MATLAB能够卓有成效地开发自己的程序MATLAB自身的许多函数实际上也包括所有的工具箱函数都是用M文件实现的。二、MATLAB7.0工作环境14MATLAB工作环境包括变量查看器、当前路径选择菜单、命令历史记录窗口、当前工作空间窗口、命令控制窗口、图形处理窗口、程序编辑器、模型编辑器、GUI编辑器和MATLAB附带的大量M文件。三、MATLAB绘图功能MATLAB句柄图形控制系统是MATLAB数据可视化的核心部分。它既包含对二维和三维数据的可视化、图形处理、动画制作等高层次的绘图命令,也包含可以修改图形局部及编制完整图形界面的低层次绘图命令。这些功能可使用户创建富有表现力的彩色图形,可视化工具包括曲面宣染、线框图、伪彩图、光源、三维等位线图、图像显示、动画、体积可视化等同时MATLAB还提供了句柄图形机制,使用该机制可对图形进行灵活的控制。使用GUIDE工具可以方便地使用句柄图形创建自己的GUI界面。四、 MATLAB数学函数库15MATALB拥有500多种数学、统计及工程函数,可使用户立刻实现所需的强大的数学计算功能。这些函数是由各领域的专家学者开发的数值计算程序,使用了安全、成熟、可靠的算法,从而保证了最大的运算速度和可靠的结果。MATLAB内置的强大数学函数库既包含了最基本的数学运算函数,如求和正弦、余弦等函数,也包含了丰富的复杂函数,如矩阵特征值矩阵求逆傅里叶变换等函数。五、MATLAB应用程序接口MATLAB应用程序接口是通过MATLAB的API库完成的,MATLAB通过对API库函数的调用可以与其他应用程序交换数据。同样,用户也可在其他语言中通过该接口函数库调用MATLAB的程序。MATLAB应用程序接口中的内容包括实时动态连接外部C或Fortran应用函数,独立C或Fortran程序中调用MATLAB函数输入输出各种MATLAB及其他标准格式的数据文件,创建图文并貌的技术文档,包括MATLAB图形、命令,并可通过word输出。2.2.2 控制系统工具箱介绍面向控制工程应用一直是MATLAB的主要功能之一,早期的版本就提供了控制系统设计工具箱。20世纪90年代初的3.5版推出RobustToolBox,4.0版推出基于模块图的控制系统仿真软件Simulink。到目前为止,MATLAB中包含的控制工程类工具箱己超过十个。MATLAB所具备的强有力的计算功能和图形表现,以及各种工具箱提供的丰富的专用函数,为设计研究人员避免重复繁琐的计算和编程,更快、更好;更准确地进行控制系统分析和设计提供了极大的帮助。控制系统工具箱主要函数16一、线性定常系统(LTI)数学模型生成函数tf( ):创建传递函数模型;ss( ):创建状态方程模型;zpk ( ):创建零一极点模型;dss( ):创建离散状态方程模型;get( ):获取模型参数信息;set( ):设置模型参数。二、数学模型转换函数 c2d ( ):连续系统转换成离散系统; d2c ( ):离散系统转换成连续系统; d2d ( ):离散系统重新采样。三、时间响应函数impulse ( ):计算并绘制冲击响应; step ( ):计算并绘制阶跃响应。四、频率响应函数bode ( ):计算并绘制波特响应;nichols ( ):计算奈克尔斯图;nyquist ( ):计算奈奎斯特图;pzmap ( ):绘制零极点图。五、控制系统分析与设计图形用户接口ltiview:打开定常线性系统(LTI)响应分析窗口;sisotool:打开单输入单输出系统(SISO)设计图形用户接口。六、模型转换函数tf2zp( ):传递函数模型转换为零极点模型;tf2ss( ):传递函数模型转换为状态方程模型;ss2tf( ):状态方程模型转换为传递函数模型;ss2zp( ):状态方程模型转换为零极点模型。七、其他函数str2num( ):将输入字符串转换为数值;get(handles.edit,string):读取MATLAB GUI控件参数。第3章 MATLAB GUI简介及应用3.1 MATLAB GUI用户界面(或接口)17是指:人与机器(或程序)之间交互作用的工具和方法。如键盘、鼠标、跟踪球、话筒都可成为与计算机交换信息的接口。图形用户界面(Graphical User Interfaces ,GUI)则是由窗口、光标、按键、菜单、文字说明等对象(Objects)构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。假如读者所从事的数据分析、解方程、计算结果可视工作比较单一,那么一般不会考虑GUI 的制作。但是如果读者想向别人提供应用程序,想进行某种技术、方法的演示,想制作一个供反复使用且操作简单的专用工具,那么图形用户界面也许是最好的选择之一。MATLAB 为表现其基本功能而设计的演示程序demo 是使用图形界面的最好范例。MATLAB的用户,在指令窗中运行demo 打开那图形界面后,只要用鼠标进行选择和点击,就可浏览那丰富多彩的内容。用户图形界面(GUI)是程序的图形化界面。一个好的GUI 能够使程序更加容易的使用。它提供用户一个常见的界面,还提供一些控件,例如,按钮,列表框,滑块,菜单等。用户图形界面应当是易理解且操作是可以预告的,所以当用户进行某一项操作,它知道如何去做。例如,当鼠标在一个按钮上发生了单击事件,用户图形界面初始化它的操作,并在按钮的标签上对这个操作进行描述。创建MATLAB用户图形界面必须由三个基本元素:组件在MATLAB GUI 中的每一个项目(按钮,标签,编辑框等)都是一个图形化组件。组件可分为三类:图形化控件(按钮,编辑框,列表,滚动条等),静态元素(窗口和文本字符串),菜单和坐标系。图形化控件和静态元素由函数uicontrol 创建,菜单由函数uimenu 和uicontextmenu 创建,坐标系经常用于显示图形化数据,由函数axes 创建.图象窗口(Figure)。GUI 的每一个组件都必须安排图象窗口中。以前,我们在画数据图象时,图象窗口会被自动创建。但我们还可以用函数figure 来创建空图象窗口,空图象窗口经常用于放置各种类型的组件。最后,如果用户用鼠标单击或用键盘键入一些信息,那么程序就要有相应的动作。鼠标单击或键入信息是一个事件,如果MATLAB 程序运行相应的函数,那么MATLAB函数肯定会有所反应。例如,如果用户单击一按钮,这个事件必然导致相应的matlab语句执行,这些相应的语句被称为回应,只要执行GUI 的单个图形组件,必须有一个回应。3.2 软件设计步骤运行MATLAB7.0,在command window中输入guide在弹出窗口中选择blank gui点OK进入MATLAB GUI 选择界面左上方“OK”也就是push button按钮,并命名为“传递函数模型输入”,此控件乃仿真系统软件设计的关键所在。如下图所示: 图3-1 建立传递函数模型输入控件因本文最先设计的是传递函数模型输入,所以以此为基础来展示软件的设计过程。右击pushbutton控件选择“view callbacks”中的“callback”进入编程界面,如下文字所示:% - Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)在handles下一行编辑所需程序,因传递函数模型需要两个参数输入分别为分子和分母所以在MATLAB GUI界面上需建立两个控件做为参数输入,并用TXT控件给edit控件做标注,如下图所示:图3-2 建立edit控件传递函数模型输入相关程序:num=str2num(get(handles.edit1,string);den=str2num(get(handles.edit2,string);w=logspace(-2,2);H=freqs(num,den,w);x=real(H);y=imag(H);figure(1);plot(x,y);title(system Nyquist Graphics);xlabel(Real Part of G(s);ylable(Image Part of G(s);gird;点运行,出现参数输入界面如下图所示:图3-3 运行push buton输入edit参数在edit text中输入相关参数,比如:分子下输入1,在分母下输入1,5,20点“push button”按钮可得输入系统的频率响应以及奈奎斯特图。一个MATLAB GUI界面可以设置多个push button控件,以传递函数模型为例,添加一个push button,命名为“模型转换”,实现传递函数模型向状态方程和零极点转换,如下图所示:图3-4 增加模型转换控件在模型转换控件下输入以下程序:num=str2num(get(handles.edit1,string);den=str2num(get(handles.edit2,string);z,p,k=tf2zp(num,den);disp(system zero-point is);z disp(system polar-point is);pdisp(system gain is);kA,B,C,D=tf2ss(num,den);disp(system Controller Realization is:);ABCD多个控件并不冲突,各自实现程序的回应。类似可以设计状态方程描述的控制系统,不过在此系统中需要四个参数输入,所以相较传递函数模型多了两个edit控件,同时也利用TXT空间对edit控件进行标注,如下图所示:图3-5 建立矩阵参数edit 同理在“状态方程模型”下编写程序,如下所示:A=str2num(get(handles.edit1,string);B=str2num(get(handles.edit2,string);C=str2num(get(handles.edit3,string);D=str2num(get(handles.edit4,string);num,den=ss2tf(A,B,C,D,1);z,p,k=ss2zp(A,B,C,D,1);disp(System Transfer Function of the first input is:);numdendisp(Its zero-pole form is:);zpk实现输入一状态方程模型控制系统并将之转为传递函数和零极点模型。控制系统仿真软件设计中的其他设计如根轨迹、波特图、奈奎斯特图的绘制,系统稳定性的判断,可控性可观性判断都可以由上述方法实现,这里不便一一举例。第4章 仿真系统测试与演示4.1 控制系统的模型输入连续线性系统一般可以用传递函数表示,也可以用状态方程表示,它们使用的场合不同,前者是经典控制理论常用的模型,后者是“现代控制理论”的基础,但它们是描述同样系统的不同方式。除了这两种描述方法之外,还常用零极点形式来表示连续线性系统模型。MATLAB控制系统工具箱支持的系统模型有状态方程模型(State-space models)、传递函数模型(Transfer functions)、零极点模型(Zero-pole-gain)和频率响应模型(Frequency response dat)。本系统仅针对线性连续系统范围进行研究,主要采用前三种模型来讨论。4.1.1控制系统模型输入一、 系统传递函数模型的表示及MATLAB下的输入方法线性系统的传递函数模型一般用微分方程表示,为了化简微分方程的求解,经过Laplace积分变换后传递函数表示为: (4-1)在MATLAB中传递函数被看作两个多项式的比值。依照MATLAB惯例,将多项式的系数按s的降幂次序排列后表示为一个数值向量,这样用两个向量可以表示传递函数的分子、分母多项式,再利用控制系统工具箱的tf()函数就可以得到系统的传递函数模型。(4-2)二、系统状态方程模型的表示及MATLAB下的输入方法线性系统的状态方程模型一般表示为: (4-3)三、 软件实现及举例首先打开所设计的软件,出现图4-1对话框。点“控制系统模型输入”按钮,进入参数输入界面。将会看到两种输入方式:传递函数模型和状态方程模型。如图4-2所示图 4-1 控制系统模型输入对话框图4-2 两种输入方式在分母框输入:1;分子框输入:1 5 20;点击“传递函数状态方程&零极点”按钮可进行模型转换,转换结果显示如下:system zero-point isz = 0 0 1 0system polar-point isp = 0 0 -1.6180 0.6180system gain isk = 1 1system Controller Realization is:A = - 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0B = 1 0 0 0C = 0 1 -1 0 0 1 0 0D = 0 0同理在另一栏输入矩阵参数,比如说A=-3 -8 -2 -4;1 0 0 0;0 1 0 0;0 0 1 0;B=1;0;0;0;C=0 0 1 1;D=0。点击“状态方程传递函数&零极点”按钮进行模型转换,转换结果如下:System Transfer Function of the first input is:num = 0 0 0.0000 1.0000 1.0000den = 1.0000 3.0000 8.0000 2.0000 4.0000Its zero-pole form is:z = -1p = -1.4737 + 2.2638i -1.4737 - 2.2638i -0.0263 + 0.7399i -0.0263 - 0.7399ik = 14.2 控制系统的稳定性分析4.2.1 控制系统的稳定性一、MATLAB下系统稳定性的直接求解在系统特性研究中,系统的稳定性是最重要指标,如果系统稳定,则可以进一步分析系统的其他性能,如果系统不稳定,系统则不能直接应用。由控制理论可知,以状态方程模型表示的系统,它的状态矩阵A的特征根和以传递函数模型表示的系统的极点是一致,只有他们的值都为负数时系统才会稳定。因此,直接而简便的方法就是求出系统的极点,则系统的稳定性就可以立即得到。在MATLAB控制系统工具箱中,eig(G)函数可以求取一个连续线性定常系统极点,其中系统模型G可以为传递函数、状态方程或零极点模型表示。另外,用图形的方式绘制出系统所有特征根或极点在s复平面上的位置,所以判定连续系统是否稳定只需看一下系统所有特征根或极点是否均位于虚轴左侧即可。二、软件实现方法及举例同样先打开设计的软件,不过这次选择“系统稳定性分析”按钮,进入分析界面如图4-3所示。图4-3 系统稳定性分析界面在弹出的参数输入框中输入4.1.1状态方程参数矩阵,点击“分析”按钮,可在MATLAB中显示出分析的结果,分析结果如下:System is stable System is minimal Phase为了验证结果是否正确,添加“零极点分布”控件来绘出控制系统零极点图,用以对比。点击“零极点分布”按钮,可得图4-4。图4-4 控制系统零极点分布图上图显示极点全在虚轴左侧,系统稳定。4.3 控制系统可控可观性分析4.3.1 控制系统的可控性分析一、 线性系统的可控性线性系统的可控性和可观测性是基于状态方程的控制理论基础,可控性和可观测性的概念是Kalmna于1960年提出的,这些性质为系统的状态反馈设计、观测器的设计等提供了依据。假设系统由状态方程(A,B,C,D)给出,可以构造这个系统的可控性判定矩阵: (4-4)若矩阵Tc是满秩矩阵,则系统称为完全可控的。如果系统不是满秩矩阵,则它的秩为系统的可控状态的个数。在MATLAB下,如果已知系统的可控性判定矩阵Tc,用rxa(Tc)即可求出矩阵的秩。而系统的可控性判定剧中Tc可以通过MATLAB的ctrb( )函数得到,即 (4-5)二、软件实现方法及举例打开所设计软件,选择“可控可观性分析”进入分析界面,如图4-5所示: 图4-5 控制系统可控可观性分析界面在弹出参数输入框中按4.1.1输入状态方程参数矩阵,然后按“系统可控性分析”可得分析结果:System is ControllableSystem First Controllable Canonnical Form is:Ac1 = 0 0 0 -4 1 0 0 -2 0 1 0 -8 0 0 1 -3Bc1 = 1 0 0 0Cc1 = 0 0 1 -2The Transformation Matrix is:Q = 1 -3 1 19 0 1 -3 1 0 0 1 -3 0 0 0 14.3.2 控制系统的可观性测试一、线性系统的可观测性类似于系统的可控性,系统的可观测性就是指系统内部状态是不是可以由系统输出信号重建起来的性质。可观测性判断定矩阵To构造形式: (4-6)利用MATLAB的obsv(A,C)函数可以直接得到To,再通过rank(To)数学函数可以知晓To是否满秩。二、软件实现方法及举例同理进入4.2.2分析界面在参数输入框按4.1.1输入状态方程参数矩阵,然后点击“系统可观性分析”按钮,在MATLAB上显示结果如下:System is Observable.system First Observable Canonnical Form is:Ao1 = 0 1.0000 -0.0000 -0.0000 -0.0000 0 1.0000 -0.0000 0 0 -0.0000 1.0000 -4.0000 -2.0000 -8.0000 -3.0000Bo1 = 0 0 1 -2Co1 = 1 0 0 0The Transformation Matrix is:P =0.5000 -0.2500 1.2500 0.1250 -0.5000 0.2500 -0.2500 -0.1250 0.5000 0.7500 0.2500 0.12500.5000 -0.7500 -0.2500 -0.12504.4 控制系统频率响应4.4.1 控制系统波特图一、 波特图在研究控制系统的频率响应时,由于信号的频率范围很宽(从几赫到几百兆赫以上),放大电路的放大倍数也很大(可达百万倍),为压缩坐标,扩大视野,在画频率特性曲线时,频率坐标采用对数刻度,而幅值(以dB为单位)或相角采用线性刻度。在这种半对数坐标中画出的幅频特性和相频曲线称为对数频率特性或波特图。在MATLAB中用bode( )函数来实现波特图绘制。二、 软件实现及举例打开所设计软件,选择“控制系统频率响应”进入频率响应界面如图4-6所示: 图4-6 控制系统频率响应界面按4.1.1参数矩阵输入,点击“波特图”按钮可得控制系统的波特图如图4-7所示:图 4-7 控制系统波特图4.4.2 控制系统开闭环奈奎斯特图一、奈奎斯特稳定判据奈奎斯特稳定判据的基本形式表明,如果系统开环传递函数G(s)在 s复数平面的虚轴上既无极点又无零点,那么闭环控制系统的特征方程在右半s平面上根的个数ZP-2N。所谓特征方程是传递函数分母多项式为零的代数方程,P是开环传递函数在右半s平面上的极点数,N是当角频率由0变化到时 G(s)的轨迹沿逆时针方向围绕实轴上点(-1,j0)的次数。奈奎斯特稳定判据还指出:Z0时,闭环控制系统稳定;Z0时,闭环控制系统不稳定。奈奎斯特稳定判据推广形式:当开环传递函数 G(s)在s复数平面的虚轴上存在极点或零点时,必须采用判据的推广形式才能对闭环系统稳定性作出正确的判断。在推广形式判据中,开环频率响应G(s)的奈奎斯特图不是按连续地由 0变到来得到的,变化路径如图所示,称为推广的奈奎斯特路径。在这个路径中,当遇到位于虚轴上G(s)的极点(图中用表示)时,要用半径很小的半圆从右侧绕过。只要按这条路径来作出G(s)从0变化到时的奈奎斯特图,则ZP-2N和关于稳定性的结论仍然成立。MATLAB中用nyquist( )绘制系统闭环波特图,用nichols( )绘制系统开环波特图。图4-8 解释说明图二、软件实现和举例同理进入控制系统频率响应界面,按照4.1.1输入状态方程参数剧中,点击“闭环奈奎斯特图”可得系统的闭环奈奎斯特图如图4-9所示: 图4-9 控制系统闭环奈奎斯特图点击“开环奈奎斯特图”可得到控制系统开环奈奎斯特图如图4-10所示图4-10 控制系统开环乃奎斯特图4.5 控制系统时域响应一、控制系统阶跃和脉冲响应当激励为单位阶跃函数时,电路的零状态响应称为单位阶跃响应,简称阶跃响应。阶跃响应g(t)定义为:系统在单位阶跃信号u(t)的激励下产生的零状态响应。脉冲响应 impulse response在一个输入上施加一个脉冲函数引起的时间响应。二、软件实现方法及举例打开所设计软件,选择“控制系统时域响应”进入时域响应界面如图4-11所示图4-11 控制系统时域分析界面在输入框中输入分子:0 0 0 0 200;分母:1 20 140 400 384;接着分别点击“阶跃响应”和“脉冲响应”按钮可得系统阶跃响应图和脉冲响应图如图4-12所示图4-12控制系统阶跃与脉冲响应4.6 控制系统根轨迹绘制一、根轨迹根轨迹的绘制:在控制系统的分析和综合中,往往只需要知道根轨迹的粗略形状。由相角条件和幅值条件所导出的8条规则,为粗略地绘制出根轨迹图提供方便的途径。根轨迹的分支数等于开环传递函数极点的个数。根轨迹的始点(相应于K=0)为开环传递函数的极点,根轨迹的终点(相应于K=)为开环传递函数的有穷零点或无穷远零点。根轨迹形状对称于坐标系的横轴(实轴)。实轴上的根轨迹按下述方法确定:将开环传递函数的位于实轴上的极点和零点由右至左顺序编号,由奇数点至偶数点间的线段为根轨迹。实轴上两个开环极点或两个开环零点间的根轨迹段上,至少存在一个分离点或会合点,根轨迹将在这些点产生分岔。 在无穷远处根轨迹的走向可通过画出其渐近线来决定。渐近线的条数等于开环传递函数的极点数与零点数之差。 根轨迹沿始点的走向由出射角决定,根轨迹到达终点的走向由入射角决定。 根轨迹与虚轴(纵轴)的交点对分析系统的稳定性很重要,其位置和相应的K值可利用代数稳定判据来决定。根轨迹的应用:(1) 用于分析开环增益(或其他参数)值变化对系统行为的影响:在控制系统的极点中,离虚轴最近的一对孤立的共轭复数极点对系统的过渡过程行为具有主要影响,称为主导极点对。在根轨迹上,很容易看出开环增益不同取值时主导极点位置的变化情况,由此可估计出对系统行为的影响。 (2) 用于分析附加环节对控制系统性能的影响:为了某种目的常需要在控制系统中引入附加环节,这就相当于引入新的开环极点和开环零点。通过根轨迹便可估计出引入的附加环节对系统性能的影响。 (3) 用于设计控制系统的校正装置:校正装置是为了改善控制系统性能而引入系统的附加环节,利用根轨迹可确定它的类型和参数设计。二、软件实现及举例打开所设计软件,选择“系统根轨迹图”按钮进入系统根轨迹绘制界面如图4-13所示图4-13 绘制控制系统根轨迹界面在分子中输入1;在分母中输入1 5 20;点击“演示”按钮可得该系统的根轨迹图如图4-14所示图4-14控制系统根轨迹图结论在控制系统的计算机辅助分析与设计领域中,MATLAB软件的应用已经被广泛接受。由于其系统的庞大与编程上的一定难度,对于初学者来说要求具有一定的MATLAB基础知识。而在本科自动控制原理的实验教学中,本科学生对MATLAB了解一般较少。这就减弱了采用MATLAB软件进行实验教学的效果。MATLAB GUI因其可视化操作界面对于控制系统仿真软件的设计和开发是个很不错的选择,简单、易懂、操作简单。特别适用于实验教学等对程序效率要求不苛刻的软件设计。此次设计的控制系统仿真软件能基本实现所要求的功能,如:实现传递函数模型输入、状态方程模
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 任务书类


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!