MATLAB_GUI程序设计ppt课件

上传人:钟*** 文档编号:5843062 上传时间:2020-02-09 格式:PPT 页数:44 大小:1.04MB
返回 下载 相关 举报
MATLAB_GUI程序设计ppt课件_第1页
第1页 / 共44页
MATLAB_GUI程序设计ppt课件_第2页
第2页 / 共44页
MATLAB_GUI程序设计ppt课件_第3页
第3页 / 共44页
点击查看更多>>
资源描述
MATLAB与控制系统仿真实践 第6章MATLABGUI程序设计初步 1 引言 MATLAB的GUI程序设计可以用两种方式实现 一种是借助GUI开发工具GUIDE 一种是利用m文件代码构建界面 采用GUIDE进行设计的方法所见即所得 直观方便 很容易上手 本章主要介绍利用GUIDE方法进行设计的步骤 有兴趣的用户可以进一步了解学习全部利用m文件代码构建界面及执行程序的方法 2 本章主要内容 6 1GUI设计工具Guide简介6 1 1GUIDE的启动6 1 2GUI界面的创建6 2GUI程序设计示例6 2 1 HelloWorld 程序的设计6 2 2一个实用的GUI设计示例 控制系统典型环节的演示程序 3 6 1GUI设计工具Guide简介 4 MATLAB提供了用户图形界面开发程序GUIDE 支持可视化编辑 它是一种基于事件或者说是事件驱动的程序 eventdriven 类似于方便易用的VisualBasic MATLAB与控制系统仿真实践 5 6 1 1GUIDE的启动 可以如下不同方式启动GUIDE 1 在命令窗口提示符下输入guide 2 在工具栏选打开 3 在Start菜单中选MATLAB GUIDE GUIBuilder 4 MATLABFile菜单中选New GUI 6 6 1 1GUIDE的启动 以上面任一种方式打开GUIDE后 即下图的启动界面 GUIDE启动界面 7 6 1 2GUI界面的创建 用户创建新的GUI 也可打开已有的GUI 创建界面时还可在模板基础上进行 在选择GUI模板时 启动界面右侧提供了预览 以 GUIwithaxesandmenu 模板创建的GUI初始界面 8 6 2GUI程序设计示例 9 概述 本节通过2个示例 演示MATLAB的GUI程序设计 一个是 HelloWorld 程序 作为初步了解 一个用来演示控制系统传递函数典型环节的响应曲线 具有一定实用性 10 6 2 1 HelloWorld 程序的设计 下面以一个类似于学习其它程序设计的第一个程序 HelloWorld 为例 讲解GUIDE的有关知识 程序的目标是当按下按钮时 由文本控件显示 HelloWorld 11 显示控件名称的设置界面 对界面左侧的控件如果不够熟悉的话 可以通过File Preferences选项 选中 Shownamesincomponentpalette 12 GUI设计界面在显示控制图标的同时 还显示控件名称 GUI设计界面 13 6 2 1 HelloWorld 程序的设计 1 HelloWorld 程序界面设计2 HelloWorld 程序的设计3 程序测试运行 14 6 2 1 HelloWorld 程序的设计 1 HelloWorld 程序界面设计 GUI设计中的界面设计部分比较容易 在窗口上添加一个按钮控件 PushButton 和一个文本控件 StaticText 可以双击控件调出属性编辑器进行其属性的设置 15 本例中 设按钮控件的 String 属性为 问候 Tag 属性为 helloBt 见右图 按钮属性设置 16 设置文本控件的 String 属性为空 表示初始状态下不显示任何信息 Tag 属性为 helloStr 为显示清楚 设其 FontSize 属性为 28 见右图 文本控件属性设置 17 6 2 1 HelloWorld 程序的设计 1 HelloWorld 程序界面设计 需要注意的是 Tag 属性设置要唯一 因为 Tag 属性是唯一标识控件的 至此 我们的界面设计工作完成 在保存时 会生成2个文件 一个是helloworld fig 一个是helloworld m 18 6 2 1 HelloWorld 程序的设计 1 HelloWorld 程序界面设计 此外可通过Tools MenuEditor进行类似于Windows程序的菜单设计 编辑窗口见左图 效果见右图 菜单设计的编辑窗口 菜单效果图 19 6 2 1 HelloWorld 程序的设计 2 HelloWorld 程序的设计 按照要求 我们可以给按钮添加动作 即给它编写一个回调函数 Callback 右键单击按钮 选择ViewCallbacks Callback自动打开helloworld m文件并指向该回调函数 根据需要为其添加语句 程序将句柄集handles的helloStr 即文本控件 String 属性设置为 HelloWorld 即完成了设计要求 20 6 2 1 HelloWorld 程序的设计 2 HelloWorld 程序的设计 下面这段程序的意思是当点击按钮时 即由程序设置文本控件的 String 属性值为 HelloWorld functionhelloBt Callback hObject eventdata handles set handles helloStr String HelloWorld 21 6 2 1 HelloWorld 程序的设计 2 HelloWorld 程序的设计 注意回调函数的概念 它指的是在对象的某一个事件发生时 MATLAB内部机制允许自动调用的函数 其几个参数的意思分别为hObject表示当前窗口的句柄 eventdata表示事件代码 为保留handles是该窗口中的所有句柄的集合 回调函数有的是针对窗口而言的 有的是对具体控件而言的 学会回调函数的编写有助于高效编写MATLABGUI程序 22 6 2 1 HelloWorld 程序的设计 3 程序测试运行 在程序编辑窗口运行测试 或在命令窗口键入程序名称 helloworld 即可运行 如下图 helloworld程序运行界面 23 6 2 1 HelloWorld 程序的设计 3 程序测试运行 注意 当不小心将helloworld fig关掉后 再次编辑需要重新打开 其方法可以通过File New GUI OpenExistingGUI来打开 如按照一般理解选择File Open项的话 只能打开其运行窗口而不可编辑 24 6 2 2一个实用的GUI设计示例 控制系统典型环节的演示程序 1 程序功能描述2 程序界面设计3 程序代码设计4 程序测试运行 25 6 2 2一个实用的GUI设计示例 控制系统典型环节的演示程序 1 程序功能描述进行控制系统典型环节的演示 包括了典型环节运行效果的演示与代码的展示 也可以在代码区输入绘制曲线语句并通过点击定制曲线按钮绘制曲线 26 6 2 2一个实用的GUI设计示例 控制系统典型环节的演示程序 2 程序界面设计根据程序功能要求 添加不同控件 并设置控件各自的属性 1 Axes控件作用为显示图形 典型环节的阶跃响应曲线及定制曲线都在此处进行显示 Tag 属性设为myAxes 2 Panel控件用来盛放其它控件 这里盛放的是代码区 Tag 属性设为uipanel Title 属性设为空 27 6 2 2一个实用的GUI设计示例 控制系统典型环节的演示程序 3 EditText控件用于输入和显示文本 此处作为代码区 主要作用为展示典型环节的代码 输入用户定制的曲线代码 Tag 属性设为 strCode String 属性设为 Pleaseinputcommandforexample x 0 0 1 4 pi y sin x 这为用户定制曲线提供了一个例程 28 6 2 2一个实用的GUI设计示例 控制系统典型环节的演示程序 4 StaticText控件作为标识 提示位于其下方的ListBox控件选项是进行典型环节的演示的 Tag 属性设为txtDemo String 属性设为典型环节演示 5 ListBox控件类似于一组复选框 用户可以从中选择不同选项 Tag 属性设为 lstBox String 属性设为 比例环节惯性环节比例微分环节比例积分环节 表示此列表共有4项内容即4个典型环节可选 29 6 2 2一个实用的GUI设计示例 控制系统典型环节的演示程序 6 PushButton控件表现为一个按钮 本例中使用了两个此控件 一个用于定制曲线的绘制 用户在代码区输入绘制曲线语句后 点击此按钮进行曲线的绘制 Tag 属性设为btnDraw String 属性设为定制曲线 TooltipString 属性设为在代码区中输入曲线参数 绘制任意曲线 这样当用户将光标置于按钮之上时 会有相应的提示信息 一个用于关闭运行窗口 Tag 属性设为btnClose String 属性设为关闭 TooltipString 属性设为关闭窗口 30 6 2 2一个实用的GUI设计示例 控制系统典型环节的演示程序 设定完成的界面草图如右图 程序界面设计草图 31 6 2 2一个实用的GUI设计示例 控制系统典型环节的演示程序 至此 本例所需的控件已设置完毕 在最初按照草图添加部署了所有的控件后 往往不会排列得很整齐 此时可根据需要进行控件的排列 32 6 2 2一个实用的GUI设计示例 控制系统典型环节的演示程序 如在本例中 要将位于窗口右侧的4个控件竖排整齐 则可在窗口选Tool AlignObjects弹出的窗口中进行选择 如图 界面控件布局设置 33 6 2 2一个实用的GUI设计示例 控制系统典型环节的演示程序 3 程序代码设计根据要求 在选择典型环节时需要设置回调函数 此外 对两个按钮控件也要设置回调函数 回调函数的生成在前一个例子已讲过 这里不重复 这里只给出相应的代码段供参考 34 6 2 2一个实用的GUI设计示例 控制系统典型环节的演示程序 1 定制曲线按钮的回调函数functionbtnDraw Callback hObject eventdata handles trystr char get handles strCode String 将在代码区输入的代码转换成数组str0 forii 1 size str 1 对str的每行操作str0 str0 deblank str ii 将str第ii行去掉空格后作为向量str0的一个元素endeval str0 执行代码axes handles myAxes 将myAxes设为当前坐标系plot x y 绘制曲线catcherrordlg 请重新检查输入数据 如有数据错误 捕获并给出提示end 35 6 2 2一个实用的GUI设计示例 控制系统典型环节的演示程序 2 典型环节列表框的回调函数functionlstBox Callback hObject eventdata handles v get handles lstBox value 取出所选项的值 对不同选项 进行对应环节曲线的绘制和代码的展示switchvcase1 比例环节str1 nump 3 denp 1 绘制比例环节曲线的代码str2 t 0 0 1 10 str3 y t x step nump denp t 将代码作为数组赋值给代码区的String属性 即展示代码set handles strCode String char str1 str2 str3 将所选环节名称显示在panel控件上set handles uipanel Title 比例环节 case2 惯性环节str1 numg 1 deng 0 21 str2 t 0 0 1 10 str3 y t x step numg deng t set handles strCode String char str1 str2 str3 set handles uipanel Title 惯性环节 36 6 2 2一个实用的GUI设计示例 控制系统典型环节的演示程序 case3 比例微分str1 K 2 T 0 1 N 5 numpd K TK denpd T N1 str2 t 0 0 1 10 str3 y t x step numpd denpd t set handles strCode String char str1 str2 str3 set handles uipanel Title 比例微分环节 case4 比例积分str1 K 4 T 0 2 numpi K TK denpi T0 str2 t 0 0 1 10 str3 y t x step numpi denpi t set handles strCode String char str1 str2 str3 set handles uipanel Title 比例积分环节 end axes handles myAxes 将myAxes设为当前坐标系btnDraw Callback hObject eventdata handles 调用定制曲线按钮的回调函数进行曲线绘制 37 6 2 2一个实用的GUI设计示例 控制系统典型环节的演示程序 3 关闭窗口按钮的回调函数functionbtnClose Callback hObject eventdata handles close gcf 关闭当前图形窗口 38 6 2 2一个实用的GUI设计示例 控制系统典型环节的演示程序 4 程序测试运行 运行程序后 出现如图所示程序首界面 39 6 2 2一个实用的GUI设计示例 控制系统典型环节的演示程序 1 输入绘制曲线的代码 如 x 0 0 1 4 pi y cos x 点击定制曲线按钮后 出现如图运行结果 40 6 2 2一个实用的GUI设计示例 控制系统典型环节的演示程序 比例环节演示结果如图所示 a 41 6 2 2一个实用的GUI设计示例 控制系统典型环节的演示程序 b 惯性环节演示结果如图所示 42 6 2 2一个实用的GUI设计示例 控制系统典型环节的演示程序 c 比例微分环节演示结果如图所示 43 6 2 2一个实用的GUI设计示例 控制系统典型环节的演示程序 d 比例积分环节演示结果如图所示 44
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


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

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


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