图形界面设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6 图形界面设计
所谓图形用户界面GUI,简单地说,是指包括了各种图形控制对象,如图形窗口,菜单,对话框以及文本框等内容的界面。利用这些用户界面,用户可以和计算机之间进行信息交流。用户可以通过某种方式来选择或者激活这些图形对象,运行一些特性的M文件,利用MATLAB提供的图形用户界面设计向导,用户可以非常方便快捷地设计一个图形用户界面,就好像在windows的画图工具中进行绘图一样。利用该向导,极大地方便了用户,让用户能够在很短的时间内完成一个非常复杂的图形界面外观设计。一旦用户完成了该图形界面的外观设计,确定了所有按钮以及图形的位置,那么就可以利用MATLAB的回调程序编辑器来编写MATLAB的源程序代码,从而可使该图形界面能够完成特定的任务[12]。
MATLAB7.5提供了非常强大的编写图形用户界面的功能,它为图形界面的设计提供了新方法。比如提供了更完善的标准联机帮助系统的设计方法以及提供的标准对话框可以直接调用。该版本改进用户图形界面开发程序Guide,使得该软件完全是可视的,在风格上与Microcoft Windows 的作图软件窗口极其相似。可以非常快捷、非常方便的设计出友好的界面。这是FORTRAN语言和C语言所不能比拟的(虽然C语言(c++builder)也能设计出友好的界面,但仍较MATLAB复杂得多)。本文就是利用MATLAB7.5设计出图形用户界面,通过函数的调用来实现该软件的功能。
6.1 步骤
(1)点击桌面上的MATLAB7.5图标打开MATLAB,点击工具栏内的GUI图标就可进入到GUI的开发环境下。
(2)把一个Axes控件、九个Edit Text控件和十一个Static Text、四个Push Button控件拖到控件布局编辑区并布局好。
(3)按照设计需要依次选中各控件,单击属性查看器按钮打开其属性列表。在String、Call back、Tag属性栏中依次输入所需要的字符串。
(4)根据需要为回调函数编写M文件(即为本次设计的主程序和子程序)。
(5)点击GUI工具栏中的“保存”按钮保存设计的GUI,单击工具栏M-file 按钮,我们可以看到M-file文件生成。再单击激活窗口按钮▲,就可以运行我们编写的程序了。这时桌面上就会弹出如图6-1所示的界面。
图6-1 PID控制器参数优化界面
说明:
二维坐标图用于显示所寻优的系统在寻优前后动态性能的对比。
输入数据框1中,t为系统周期,numdk为G(s)函数的分子项,denda为G(s)函数分母项的第一个乘式项,dendb为G(s)函数分母项的第二个乘式项。
保存按钮,用于把输入框输入的数据以字符形式保存到预定的mat文件中,需要用时再从该文件中载入。依靠pid_build_save函数实现其功能。
从上面可以看出,实现寻优功能的是内部程序,界面只是起联系用户和内部程序的作用,为用户提供简便的操作。
输入数据框2用于输入寻优的必要数据,其中n为寻优参数个数,x0为寻优参数初值,l为寻优步长,u为扩张因子,v为收缩因子,e为寻优允许误差,k1为用户设定的寻优次数。
运行状态框,当程序运行时显示“正在运行”,当程序运行完毕时显示“运行完毕”。
输出结果包括仿真次数、Kp、Ti、Td、完成拍数和超调量。只有在运行完毕时才显示。
载入按钮,功能是把输入框的数据载入到程序中,其功能的实现是依靠调用pid_load函数实现的。
执行按钮,运行寻优程序,实现本软件的所有计算功能,是本软件的核心部分,依靠调用pid_count2函数程序实现其功能。
关闭按钮,是用来关闭程序,依靠调用pid_close函数实现其功能。
6.2 利用属性编辑器来添加属性内容
(1)编辑文本框[12]
把属性“String”设置为空。此外,打开属性编辑器,把标签属性“Tag”设置为“pid_edit”。“Call back”设置为“pid_edit”,这表明用户在输入数据时,就执行回调函数pid_edit。实际上可以为回调函数pid_edit编写一个M文件,打开文件编辑器,在编辑框中输入如下命令:
%input data
function pid_edit
ct=get ( findobj (gcbf ,'tag', 'pid_edit' ), 'string' );
%获得当前图形窗口的标签为“pid_edit”的句柄对象。
%findobj: 寻找具有指定属性的对象图表。
%gcbf:返回包含回叫对象的句柄。Matlab help里的解释:Get handle of figure containing object whose callback is executing.
save indata ct;
%把获得的变量ct保存在indata.mat文件中。
(2)下载按钮
把属性“String”设置为“下载”。此外,打开属性编辑器,把标签属性“Tag”设置为“pid_load”。“Call back”设置为“pid_load”,这表明用户在输入数据时,就执行回调函数pid_load。实际上可以为回调函数pid_load编写一个名为“pid_load.m”M文件,打开文件编辑器,在编辑框中输入如下命令:
%get the user's data
function pid_load
ct=get ( findobj (gcbf ,'tag', 'pid_load' ), 'string' );
%获得当前图形窗口的标签为“pid_load”的句柄对象。
%findobj: 寻找具有指定属性的对象图表。
%gcbf: 返回包含回叫对象的句柄。Matlab help里的解释:Get handle of figure