1、 目 录1 概述11.1 本文研究的目的以及意义11.2 已了解的本课题国内外研究现状11.3 本课题研究内容32 控制系统与MATLAB语言32.1 控制系统理论基础32.1.1 控制系统的古典理论与现代理论32.1.2 控制系统理论的基本内容42.2MATLAB语言与控制系统工具箱42.2.1MATLAB软件介绍52.2.2控制系统工具箱介绍73 MATLAB简介及应用93.1 MATLAB GUI93.2 图形用户界面设计工具的启动103.2.1图形用户界面设计工具的启动方式103.2.2 菜单方式103.2.3 图形用户界面设计窗口133.3 图形用户界面开发环境(GUIDE)143.
2、4 控件对象及属性163.5 菜单设计183.5.1 建立用户菜单183.5.2 菜单对象常用属性183.5.3 快捷菜单183.5.4 对话框设计193.5.5 公共对话框193.6 GUI程序设计194 GUI控制系统界面204.1 GUI控制系统界面设计204.1.1 具体设计步骤204.2 具体实现过程234.2.1 运行效果234.2.2 实现代码24参考文献25附录26谢 辞29摘要:MATLAB语言是一种十分有效的工具,能容易地解决在系统仿真及控制系统设计领域的教学与研究中遇到的问题,它可以将使用者从频繁的底层编程中解放出来,把有限的宝贵时间更多地华仔解决科学问题上。MATLAB
3、A GUI是MATLAB人际交互界面。由于GUI本身提供了windows基本控件的支持,并且具有良好的时间驱动机制,同时提供了MATLAB数学库的接口,所以GUI对于控制系统仿真的平台设计显得十分合适。GUI对于每个用户窗口生成.fig和.m文件。前者负责界面的设计信息,后者负责后台代码的设计。本文界面设计主要基于MATLAB GUI平台,结合控制系统基础理论和MATLAB控制系统工具箱,实现了用于控制系统界面的设计。主要包括:进行常规控制环节(比如PID)的图形界面设计,能够在已知传输函数的情况下,输出常用响应曲线。关键词:控制系统;MATLAB GUI;计算机设计Control syste
4、m based on MATLAB GUI interface designAbstract: MATLAB 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
5、 the limted spend more valuable time to solve scientific problems. The MATLAB GUI is the interative 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
6、 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 ba
7、sis of combination of control syetem theory and MATLAB Control System Toolbox,the realization of control systems for computer-aided analysis and design software.Mainly includes:routine control links,such as PID,graphical interface design,can in the known transfer function of the case,the output resp
8、nonse curve is commonly used.Key words: Control System;MATLAB GUI;Computer designIV1 概述1.1 本文研究的目的以及意义自动控制原理是自动控制专业和自动化专业的主要课程之一3,是研究自动控制技术的基础理论课,是必修的专业基础课程。自动控制原理能是学生掌握自动控制系统的基本理论、基本概念、分析和设计方法,为更深入地学习现代控制策略和研究各种自动控制系统打下理论基础1。在自动控制领域里的科学研究和工程应用中有大量繁琐的计算与仿真曲线绘制任务,给控制系统的分析和设计带来了巨大的工作量,为了解决海量计算的问题,各种控制
9、系统设计与仿真软件层出不穷,技术人员凭借这些产品强大的计算和绘图功能,使系统分析和设计的效率得以大大的提高。然而在众多控制系统设计与仿真软件中,MATLAB以其强大的计算功能、丰富方便点的功能、模块化的计算方法,以及动态系统仿真工具Simulink;脱颖而出成为控制系统设计和仿真领域中的佼佼者,同时也成为了当今最流行的科学工程语言。然而MTALAB自身所存在的某些缺点限制了它的应用范围。一、MATLAB以解释方式执行效率很低,这在处理图像时特别明显;二、MATLAB程序不能脱离其环境运行,因此用户可任意进行修改,但有时为维护代码的完整性和安全性,并不希望用户了解或更改核心程序;四、其界面编写功
10、能也过于简单,以致不能满足用户的高级需求。但是在本文软件设计开发主要应用于自动控制原理教学实验,并不需要复杂的图像处理和对代码完整性及安全性的苛刻保护,所以运用MATLAB GUI能较为简单得对软件进行设计开发2。1.2 已了解的本课题国内外研究现状控制理论是一门发展极为迅速的学科。在近一个世纪的发展过程中,其“经典控制理论”与“现代控制理论”的体系已基本完善,近三十年来的“先进控制理论”,如“大系统理论”、各类“智能控制”等,亦取得了蓬勃的发展和可喜的进展。今天的控制理论及其大量控制方法应用技术已不再仅是自动化学科的重要基础,而已成为机电工程、航空航天等现代工程技术中不可缺少的一部分,并在经
11、济学、生物学、医学等领域中获得越来越广泛的应用。伴随着控制理论向深度和广度发展的是控制方法和设计算法产生,而现代计算机及计算机技术的发展则使得这些设计过程可通过CAD程序来实现。这样一种发展不仅使设计者解脱了繁琐的甚至是人工无法实现的手工困境,而且是一般设计人员(特别是非控制类专业人员)不必精通某些细小定理的复杂数学证明,或对一些实际中不易发生的特殊情况进行详尽的考察而应用各种控制理论进行控制系统的设计,从而极大地增加了控制理论的实用价值和实际应用,同时也促进了控制理论的发展。早在1973年,美国学者Melsa教授和Jones博士出版了一本专著4,书中给出了一套控制系统计算机辅助分析与设计的程
12、序,包括求系统的根轨迹、频域响应、时间响应、以及各种控制系统设计的子程序。这一时期出现的软件还有瑞典Lund工学院CACSD软件INTRAC、日本的古田胜久教授主持开发的DPACS-F软件、;英国Manchester理工大学的控制系统计算机辅助设计软件包、英国剑桥大学推出的线性系统分析与设计软件CLADP等等。此外,在控制系统的计算机辅助分析与设计研究进展中还出现了一些专门的仿真语言,如比较流行的仿真语言有ACSL,CSMP,TSIM,ESL等。这种仿真语言要求用户依照它所提供的语句和大量的模型模块编写一个描述系统的程序,然后才可以对控制进行仿真。我国较有影响的控制系统仿真与CAD成果5是中科
13、院系统科学研究所主持的国家自然科学基金重大科研项目开发的CADCSC软件和清华大学孙曾沂、袁曾任教授的著作和程序等。年中科院沈阳自动化所马继虎研究院主持开发的CSMP-C仿真语言,是国内有代表意义的仿真语言。近十年来,随着MATLAB语言和Simulink仿真环境在控制系统研究中日益广泛的应用,在系统仿真、自动控制等领域,国外很多高校在研究中都将MATLABA/Simulink语言作为首选的计算机工具,我国的科学工作者也逐渐意识到MATLAB语言的重要性。MATLAB是Mathworks公司于年推出的一套高性能的数值计算和可视化软件。它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个
14、方便、界面友好的用户环境。它还包括了ToolBox7的各类问题的求解工具可用来求解特定学科的问题。MATLAB所具备的强有力的计算功能和图形表现,以及各种工具箱提供的丰富的专用函数,为设计研究人员避免重复繁琐的计算和编程,更快、更好、更准确地进行控制系统分析和设计提供了极大地帮助。Mathworks公司于年月发布了MATLAB的版本MATLAB。该版本针对编程环境、代码效率、数据可视化、数学计算、文件等方面进行了升级,同时包含了功能强大的控制产品集以支持控制系统设计过程的每一个环节,借助于使用MATLAB中与控制相关的工具箱能够实现许多前言的控制设计方法;此外与MATLAB同时发布的Simul
15、ink.可以辅助技术人员更方便地建立控制系统模型,并通过仿真不断优化设计。1.3 本课题研究内容本文主要研究及工作通过利用MATLAB GUI8界面,进行常规控制环节(比如PID)的图形界面设计,能够在已知传输函数的情况下,输出常用响应曲线。因此,首先本论文将根据自动控制原理的本科学习要求对控制系统基础理论和MATLAB软件作以介绍;其次MATLAB GUI是这个界面设计的基础,本文将详细介绍,最后将举例介绍其设计与实现的过程。2 控制系统与MATLAB语言2.1 控制系统理论基础控制系统的理论基础-自动控制原理9,是自动化学科的重要理论基础,是专门研究有关自动控制系统中基本概念、基本原理和基
16、本方法的一门课程,是高等学校自动化类专业的一门核心基础理论课程。学好自动控制理论对掌握自动化技术有着重要的作用。自动控制原理是自动控制技术的基础理论,主要分“古典控制理论”和“现代控制理论”两部分。古典控制理论以传递函数为基础研究单输入单输出一类定常控制系统的分析设计问题,现代控制理论是六十年代在古典控制理论基础上伴随着科学技术发展和工程实践需要而迅速发展起来的,它以状态空间法为基础,研究多输入多输出、时变、非线性、高精度、高效能等控制系统的分析与设计问题。2.1.1 控制系统的古典理论与现代理论世纪年代,经典控制理论形成体系10。经典控制理论的数学基础是拉普拉斯变换,系统的基本数学模型是传递
17、函数,主要的分析和综合方法有Bode图法、根轨迹法、劳斯判据、奈奎斯特稳定判据、PID控制等。经典控制系统虽然至今仍广泛应用在许多工程技术领域中,但也存在着明显的局限性,主要表现在:主要用于单输入单输出线性时不变系统而难以有效地处理多输入多输出系统;只采用外部描述方法讨论控制系统的输入输出关系,而难以揭示系统内部的特性,控制系统设计方法基本上是一种试凑法而不能提供最优控制的方法和手段等等。在世纪年代核反应堆控制研究、尤其是航天控制研究的推动下,控制理论在年前后开始了从经典阶段到现代阶段的过度,其中的重要标志是卡尔曼系统地把状态空间法引入到系统与控制理论中。现代控制理论以状态空间为基础,研究系统
18、内部的结构,提出可控性、可观测性概念及分析方法,也提出了一系列设计方法、如LQR(Linear Quadratic Regulator)和LQG(Linear Quadratic Gaussian)最优控制方法、Kalman滤波器方法、极点配置方法、基于状态观测器的反馈控制方法等。现代控制理论克服了经典控制的许多局限性,它能够解决某些非线性和时变系统的控制问题,适用于多输入多输出反馈控制系统,可以实现最优控制规律。此外,现代控制理论不仅能够研究确定性的系统,而且可以研究随机的过程,即包含了随机控制系统的分析和设计方法。2.1.2 控制系统理论的基本内容研究控制系统的分析与设计的基础知识,包括控
19、制系统的稳定性、稳定特性和动态特性,以及控制系统的校正与界面设计。主要内容:控制系统的数学模型、控制系统的时域分析、根轨迹分析、频域分析、控制系统的校正、非线性系统的近似分析、现代控制理论基础、采样控制系统的分析与设计、控制系统的计算机辅助分析与设计等。2.2 MATLAB语言与控制系统工具箱MATLAB是由MathWorks公司于年推出的一套数值计算软件。自推出之后,该公司不断接收和吸取个学科领域权威人士为之编写的函数和程序,并将它们转换成MATLAB的工具箱。这样,使MATLAB得到不断的发展和扩充,可以实现数值分析、优化、统计、偏微分方程数值解、自动控制、信号处理、图像处理等若干个领域的
20、计算和图形显示功能。它将不同数学分支的算法以函数的形式分类成库,使用时直接调用这些函数并赋予实际参数就可以解决问题,快速而且准确。2.2.1 MATLAB软件介绍MATLAB的名字由Matrix和Laboratory两词的前三个字母组合而成,创始者是时任美国新墨西哥大学计算机科学系主任的CleveMoler教授。于年由MathWorks公司推出。今天MATLAB已成为国际上最优秀的科技应用软件之一,其强大的科学计算可视化功能、简单易用的开放式可推展环境以及多达三十余个面向不同领域而扩展的工具箱的支持,使得MATLAB在许多学科领域成为科学计算、计算机辅助设计与分析的基础工具和首选平台。MATL
21、AB主要由MATLAB主程序、Simulink动态系统仿真和MATLAB工具箱三大部分组成。其中MATLAB主程序包括MATLAB语言、工作环境、句柄图形、数学函数库和应用程序接口五个部分;Simulink是用于动态控制系统仿真的交互式系统,允许用户在屏幕上绘制框图来模拟一个系统,并能动态地控制该系统,目前的Simulink可以处理线性、非线性、连续、离散、多变量及多系统;工具箱实际就是用MATLAB的基本语句编写的各种子程序集和函数库,用于解决某一方面的特定问题或实现某一类的新算法,它是开放性的,可以应用也可以根据自己的需要进行扩展。MATLAB工具箱大体可分为功能性的工具箱和科学性的工具箱
22、两类。功能性的工具箱主要用于扩展MATLAB的符号计算功能、图形建模功能、文字处理功能和硬件的时实交互过程,如符号计算工具箱等;学科性的工具箱则有较强的专业性,用于解决特定的问题,如信号处理工具箱和通信工具箱。MATLAB的主要特点13:(1)简单易学:MATALB是一门编程语言,其语法规则与一般的结构化高级编程语言如C语言等大同小异,而且使用更方便,具有一般语言基础的用户很快就可以掌握。(2)代码短小高效:由于MATLAB已经将数学问题的具体算法编成了现成的函数,用户只要熟悉算法的特点、适用场合、函数的调用格式和参数意义等,通过调用函数很快就可以解决问题,二不必花大量时间纠缠于具体算法的实现
23、。(3)计算功能非常强大:该软件具有强大的矩阵计算功能,利用一般的符号和函数就可以对矩阵进行加、减、乘、除运算以及转置和求逆等运算,而且可以处理稀疏矩阵等特殊的矩阵,非常适合于有限元等大型数值运算的编程。此外,此软件现有的数十个工具箱,可以解决应用中的很多数学问题。(4)强大的图形绘制和处理功能:该软件可以绘制常见的二维三维图形,如线形图,饼图,散点图,直方图,误差条图,玫瑰花图,极坐标图等。利用有关函数,可以对三维图形进行颜色光照材质文理和透明性设置并进行交互处理。科学计算要涉及到大量的数据处理,利用图形展示数据场得特征,能显著提高数据处理的效率,提高对数据反馈信息的处理速度和能力。MATL
24、AB提供了吩咐的科学极端可视化功能,利用它可以绘制二维三维矢量图、等值线图、三维表面图、曲面图、二维三维流线图、三维流锥、流沙图、流带图、流管图、卷曲图和剖面图等,还可以进行动画制作。基于MATLAB句柄图形对象,结合绘图工具函数,可以根据需要用MATLAB绘制自己的图形。(5)可扩展功能:可扩展性能是该软件的一大优点,用户可以自己编写M文件,组成自己的工具箱,方便的解决本领域内常见的计算问题。此外,利用MATLAB编译器可以生成独立的可执行程序,从而可以隐藏算法并避免依赖MATLAB。MATLAB支持DDE、OLE、Activex自动化和COM组件等机制,可以与同样支持该技术的应用程序接口。
25、利用COM生成器和Excel生成器,可以理由给定的M文件盒MEX文件创建COM组件和Excel插件,从而能够实现与VB、VC等程序的无缝集成。利用Web服务器,可以实现MATLAB与网络的接口。采用互操作技术,可以实现MATLAB与NET程序的接口。利用端口API函数,可以实现MATLAB与硬件的接口。MATLAB编程语言是一种面向科学与工程计算的高级语言允许按照数学习惯的方式编写程序。由于它符合人们思维方式的编写模式使得该语言比Basic、C等高级语言更容易学习和应用MATLAB语言以矢量矩阵为基本的数据单元包含流程控制语句顺序选择循环条件转移和暂停等大量的运算符丰富的函数多种数据结构输入输
26、出以及面向对象编程这些既可以满足简单问题的求解,也适合于开发复杂的大型程序。MATLAB不仅仅是一套打包好的函数库,同时也是一种高级的面向对象的编程语言。使用MATLAB能够卓有成效地开发自己的程序。MATLAB自身的许多函数实际上也包括所有的工具箱函数都是用M文件实现的。MATLABA工作环境包括变量查看器、当前路径选择菜单、命令历史记录窗口、当前工作窗口、命令控制窗口、图形处理窗口、程序编辑器、模型编辑器、GUI编辑器和MATLAB附带的大量M文件。MATLAB句柄图形控制系统是MATLAB数据可视化的核心部分。它既包含对二维和三维数据的可视化、图形处理、动画制作等高层系的绘图命令,也包含
27、可以修改图形局部及编制完整图形界面的低层次绘图命令。这些功能可使用户创建富有表现力的彩色图形,可视化工具包括曲面渲染、线框图、伪彩图、光源、三维等位线图、图像显示、动画、体积可视化等。同时MATLAB还提供句柄图形机制,使用该机制可对图形进行灵活的控制。使用GUIDE工具可以方便地使用句柄图形创建自己的GUI界面。MATLAB拥有多种数学、统计及工程函数15,可使用户立刻实现所需的强大的数学计算功能。这些函数式由各领域的专家学者开发的数值计算程序,使用了安全、成熟、可靠的算法,从而保证了最大的运算速度和可靠的结果。MATLAB内置的强大数学函数库既然、包含了最基本的数学运算函数,如求正弦、余弦
28、等函数,也包含了丰富的复杂函数,如矩阵特征值,矩阵求逆,傅里叶变换等函数。MATLAB应用程序接口是通过MATLAB的API库完成的,MATLAB通过对API库函数的调用可以与其他应用程序交换数据2.2.2 控制系统工具箱介绍面向控制工程应用一直是MATLAB的主要功能之一,早期的版本就提供。同样,用户也可在其他语言中通过该接口函数库调用MATLAB的程序。MATLAB应用程序接口中的内容包括实时动态链接外部C或Fortran应用函数,独立C或Fortran程序中调用MATLAB函数输入各种MATLAB及其他标准格式的数据文件,创建图文并貌的技术文档,包括MATLAB图形、命令,并可通过wor
29、d输出。了控制系统设计工具箱。世纪年代初的.版推出RobustToolBox.版推出基于模块图的控制系统仿真软件Simulink。到目前为止,MATLAB中包含的控制工程类工具箱已超过十个。MATLAB所具备的强有力的计算功能和图形表现,以及各种工具箱提供的丰富的专用函数,为设计研究人员避免重复繁琐的计算和编程。控制系统工具箱主要函数16一、线性定常系统(LTI)数学模型生成函数tf():创建传递函数模型;ss():创建状态方程模型;zpk():创建零极点模型;dss():创建离散状态方程模型;get():获取模型参数信息;set():设置模型参数。二、数学模型转换函数cd():连续系统转换成
30、离散系统;dc():离散系统转换成连续系统;dd():离散系统重新采样。三、时间响应函数impulse():计算并绘制冲击响应;step():计算并绘制阶跃响应。四、频率响应函数bode():计算并绘制伯德响应;nichols():计算耐克尔斯图;nyquist():计算奈奎斯特图;pzmap():绘制零极点图。五、控制系统分析与设计图形用户接口ltiview:打开定常系统响应分析窗口。、;sisotool:打开单输入单输出系统设计图形用户接口。六、模型转换函数tfzp():传递函数模型转换为零极点模型;tfss():传递函数模型转换为状态方程模型;sstf():状态方程模型转换为传递函数模型
31、;sszp():状态方程模型转换为零极点模型。七、其他函数strnum():将输入字符串转换为数值;get(handles.edit,string):读取MATLAB GUI控件参数。3 MATLAB简介及应用3.1 MATLAB GUI用户界面(或接口)是指:人与机器(或程序)之间交互作用的工具盒方法。如键盘、鼠标、跟踪球、话筒都可成为与计算机交换信息的接口。图形用户界面(Graphical User Interfaces,GUI)则是由窗口、光标、按键、菜单、文字说明等对象构成的一个用户界面。用户通过一定的方法选择、激活这些图形对象,是计算机产生某种动作或变化,比如实现计算、绘图等。假如读
32、者所从事的数据分析、解方程、计算结果可视工作比较单一,那么一般不会考虑GUI的制作。但是如果读者想向别人提供应用程序,想进行某种技术、方法演示,想制作一个供反复使用且操作简单的专用工具,那么图形用户界面也许是最好的选择之一。MATLAB为表现其基本功能而设计的演示程序demo是使用图形界面的最好范例。MATLAB的用户,在指令窗口中运行demo打开图形界面后,只要用鼠标进行选择和点击,就可浏览丰富多彩的内容。用户图形界面(GUI)是程序的图形化界面。一个好的GUI能够是程序更加容易使用。它提供用户一个常见的界面,还提供一些控件,例如,按钮,列表框,滑块,菜单等。用户图形界面应当是易理解且操作是
33、可以预告的,所以当用户进行某一项操作,它知道如何去做。例如,当鼠标在一个按钮上发生了单击事件,用户图形界面初始化它的操作,并在按钮的标签上对这个操作进行描述。创建MATLAB用户图形界面必须由三个基本元素:组件在MATLAB GUI中的每个项目都是一个图形化组件。组件可以分为三类:图形化控件(按钮,编辑框,列表,滚动条等),静态元素(窗口和文本字符串),菜单和坐标系。图形化控件和静态元素由函数uicontrol创建,菜单由函数uimenu和uicontextmenu创建,坐标系经常用于显示图形化数据,由函数axes创建。GUI的每一个组件都必须安排图像窗口中。以前,我们在画数据图像时,图像窗口
34、会被自动创建。但我们还可以用函数figure来创建空图像窗口,空图像窗口经常用于放置各种类型的组件。最后,如果用户用鼠标单击或用键盘键入一些信息,那么程序就要有相应的动作。鼠标单击或键入信息是一个时间,如果MATLAB程序运行相应的函数,那么MATLAB函数肯定会有所反应。例如,如果用户单击一按钮,这个时间必然导致相应的matlab语句执行,这些相应的语句被称为回应,只要执行GUI的单个图形组件,必须有一个回应。3.2 图形用户界面设计工具的启动3.2.1图形用户界面设计工具的启动方式.命令方式图形用户界面GUI设计工具的启动命令为guide,格式为:(1)guide功能:启动GUI设计工具,
35、并建立名字为untitled.fig的图形用户界面。(2)guide filename功能:启动GUI设计工具,并建立名字为untitled.fig的图形用户界面3.2.2 菜单方式 在Matlab的主窗口中,选择File菜单中的New菜单项,再选择其中的GUI命令(如图),就会显示GUI的设计模板。图1 GUIMatlab为GUI设计一共准备了4种模板(如图2-5),分别是:(1)Blank GUI(Default)(空白模板,默认);(2)GUI with Uicontrols(带控件对象的GUI模板); (3)GUI with Axes and Menu(带坐标轴与菜单的GUI模板);(
36、4)Modal Question Dialog(带模式问题对话框的GUI模板)。当用户选择不同的模板时,在GUI设计模板界面的右边就会显示出与该模板对应的GUI图形。 图2 Blank GUI(Default)图3 GUI with Uicontrols图4 GUI with Axes and Menu图5 Modal Question Dialog3.2.3 图形用户界面设计窗口在GUI设计模板中选中一个模板,然后单击OK按钮,就会显示GUI设计窗口。选择不同的GUI设计模式时,在GUI设计窗口中显示的结果是不一样的。图形用户界面GUI设计窗口由菜单栏、工具栏、控件工具栏以及图形对象设计区等
37、个功能区组成。GUI设计窗口(如图7)的菜单栏有File、Edit、View、Layout、Tools和Help 6个菜单项,使用其中的命令可以完成图形用户界面的设计操作。编辑工具在菜单栏的下方,提供了常用的工具;设计工具区位于窗口的左半部分,提供了设计GUI过程中所用的用户控件;空间模板区是网格形式的用户设计GUI的空白区域。在GUI设计窗口创建图形对象后,通过双击该对象,就会显示该对象的属性编辑器。图7 GUI设计窗口3.3 图形用户界面开发环境(GUIDE)Matlab提供了一套可视化的创建图形窗口的工具,使用图形用户界面开发环境可方便地创建GUI应用程序,它可以根据用户设计的GUI布局
38、,自动生成M文件的框架,用户使用这一框架编制自己的应用程序。Matlab提供了一套可视化的创建图形用户接口(GUI)的工具,包括:(1)布局编辑器(Layout Edtor)在图形窗口中创建及布置图形对象。布局编辑器是可以启动用户界面的控制面板,上述工具都必须从布局编辑器中访问,用guide命令可以启动,或在启动平台窗口中选择GUIDE来启动布局编辑器;用于从控件选择板上选择控件对象并放置到布局区去,布局区被激活后就成为图形窗口。 在命令窗口输入GUIDE命令或点击工具栏中的guide图标都可以打开空白的布局编辑器,在命令窗口输入GUIDE filename 可打开一个已存在的名为filena
39、me图形用户界面。将控件对象放置到布局区:用鼠标选择并放置控件到布局区内;移动控件到适当的位置;改变控件的大小;选中多个对象的方法。激活图形窗口运行GUI程序:在命令窗口直接键入文件名或用openfig, open或hgload命令运行GUI程序。布局编辑器参数设置:选File菜单下的Preferences菜单项打开参数设置窗口,点击树状目录中的GUIDE,即可以设置布局编辑器的参数。布局编辑器的弹出菜单:在任一控件上按下鼠标右键,会弹出一个菜单,通过该菜单可以完成布局编辑器的大部分操作。(2)几何排列工具(Alignment Tool)调整各对象相互之间的几何关系和位置; (3)属性查看器(
40、Property Inspector)查询并设置属性值; 利用对象属性查看器,可以查看每个对象的属性值,也可以修改、设置对象的属性值。 打开属性查看器(Opening Property Inspector)对象属性查看器的打开方式有四种:从GUI设计窗口工具栏上选择Property Inspector命令按钮; 选择View菜单下的Property Inspector菜单项;在命令窗口中输入inspect;在控件对象上单击鼠标右键,选择弹出菜单的 Property Inspector菜单项。 使用属性查看器(Using Property Inspector)布置控件;定义文本框的属性;定义坐标
41、轴的属性;定义按钮的属性;定义复选框。(4)对象浏览器(Object Browser)用于获得当前Matlab图形用户界面程序中的全部对象信息,对象的类型,同时显示控件的名称和标识,在控件上双击鼠标可以打开该控件的属性编辑器;(5)菜单编辑器(Menu Editor)创建、设计、修改下拉式菜单和快捷菜单;利用菜单编辑器,可以创建、设置、修改下拉式菜单和快捷菜单。选择 Tools 菜单下的 Menu Editor子菜单,即可打开菜单编辑器。菜单也可以通过编程实现,方法为从GUI设计窗口的工具栏上选择Menu Editor命令按钮,打开菜单编辑程序。菜单编辑器包括菜单的设计和编辑,菜单编辑器有八个
42、快捷键,可以利用它们任意添加或删除菜单,可以设置菜单项的属性,包括名称(Label)、标识(Tag)、选择是否显示分隔线(Separator above this item)、是否在菜单前加上选中标记(Item is checked)、调用函数(Callback)。(6)Tab顺序编辑器(Tab Order Editor)用于设置当用户按下键盘上的Tab键时,对象被选中的先后顺序。利用Tab顺序编辑器(Tab Order Editor),可以设置用户按键盘上的Tab键时,对象被选中的先后顺序。GUI的布局代码存储在 FIG文件中,同时还产生一个M文件用于存储调用函数,在M文件中不再包含GUI的
43、布局代码,在开发应用程序时代码量大大减少。3.4 控件对象及属性1. GUI控件对象类型控件对象是事件响应的图形界面对象。当某一事件发生时,应用程序会做出响应并执行某些预定的功能子程序(Callback)。2. 控件对象的描述 Matlab中的控件大致可分为两种,一种为动作控件,鼠标点击这些控件时会产生相应的响应。一种为静态控件,是一种不产生响应的控件,如文本框等。 按钮(Push Buttons):执行某种预定的功能或操作;开关按钮(Toggle Button):产生一个动作并指示一个二进制状态(开或关),当鼠点击它时按钮将下陷,并执行回调函数)中指定的内容,再次点击,按钮复原,并再次执行c
44、allback 中的内容 单选框(Radio Button):单个的单选框用来在两种状态之间切换,多个单选框组成一个单选框组时,用户只能在一组状态中选择单一的状态,或称为单选项; 复选框(Check Boxes):单个的复选框用来在两种状态之间切换,多个复选框组成一个复选框组时,可使用户在一组状态中作组合式的选择,或称为多选项; 文本编辑器(Editable Texts):用来使用键盘输入字符串 的值,可以对编辑框中的内容进行编辑、删除和替换等操作; 静态文本框(Static Texts):仅用于显示单行的说明文字; 滚动条(Slider): 可输入指定范围的数量值; 边框(Frames):在
45、图形窗口圈出一块区域; 列表框(List Boxes):在其中定义一系列可供选择的字符串; 弹出式菜单(Popup Menus): 让用户从一列菜单项中选择一项作为参数输入;此外还有坐标轴(Axes), 用于显示图形和图象。3. 控件对象的属性(Attributes of controller object)用户可以在创建控件对象时,设定其属性值,未指定时将使用系统缺省值。两大类控件对象属性:第一类是所有控件对象都具有的公共属性,第二类是控件对象作为图形对象所具有的属性。 控件对象的公共属性:Children,Parent,Tag,Type ,UserDate,Visible 控件对象的基本控
46、制属性:BackgroundColor,Callback,Enable,Extend,ForegroundColor,Max/Min,String,Style,Units,Value 控件对象的修饰控制属性:FontAngle,FontName,FontSize,FontUnits,FontWeight,HorizontalAligment 控件对象的辅助属性:ListboxTop,SliderStep,Selected,SlectionHoghlight Callback管理属性:BusyAction,ButtDownFun,Creatfun,DeletFun,HandleVisibilit
47、y,Interruptible4. 控件对象的建立在对话框上有各种各样的控件,利用这些控件可以实现有关控制。 Matlab提供了用于建立控件对象的函数uicontrol,其调用格式为:对象句柄=uicontrol(图形窗口句柄,属性名1,属性值1,属性名2,属性值2,)其中各个属性名及可取的值和后面将介绍的uimenu函数相似,但也不尽相同。3.5 菜单设计3.5.1 建立用户菜单建立自定义的用户菜单的函数为uimenu,格式为:Hm=uimenu(Hp,属性名,属性值,属性名,属性值,)功能:创建句柄值为Hm的自定义的用户菜单。其中Hp为其父对象的句柄,属性名和属性值构成属性二元对,定义用户菜单的属性。 3.5.2 菜单对象常用属性菜单对象除具有Children(子对象),Parent(父对象),Tag(标签),Type(类型),UserData(用户数据),Enable(使能)和 Visible(可见性)等公共属性,还有一些常用的特殊属性,如回调(callback)属性和菜单名(lab