MATLABGUI

2024-08-15

MATLABGUI(共4篇)

MATLABGUI 篇1

0 引言

图形用户界面是由窗口、光标、按键、菜单、文字说明等对象(Object)构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,可以使计算机产生某种动作或变化,比如实现计算、绘图等。

MATLAB图形用户界面是有别于VC界面和 Java界面的一种新型界面开发方式。对于熟悉MATLAB而不想编写大量VC代码的科研人员来件,MATLAB/GUI无疑是一个最佳选择,它既能嵌入已有的仿真程序,又能把仿真的图形化结果以人机交会的动态方式呈现给作者或客户,从而给人以深刻的影响。使用者不需要知道代码的具体内容,只要了解操作步骤即可很方便地操作界面。

1 MATLAB/GUI简介

1.1 概述

在MATLAB7.0中,图形用户界面是一种包含多种图形对象的界面,典型的图形界面包括图形显示区域,功能按钮空间以及用户自定义的功能菜单等。为了让界面实现各种功能,需要对各个图形对象进行布局和编程。这样,当用户激活对应的GUI对象时,就能执行相应的代码。最后,必须保存和发布自己创建的GUI,使得用户可以应用GUI对象。

在MATLAB中,所有对象都可以使用M文件进行编写。GUI也是一种MATLAB对象,因此,可以使用M文件来创建GUI。使用M文件创建GUI的方法也是最基础的。除了使用M文件来创建GUI对象之外,MATLAB还为用户开发图形界面提供了一个方便高效的集成开发环境GUIDE来制作GUI。在使用GUIDE创建GUI时,可以将设计好的GUI界面保存为一个FIG资源文件,同时自动生成对应的M文件。该M文件包含了GUI初始化代码和组建界面布局的控制代码。

1.2 设计原则

简单说来,一个好的界面应遵循以下3个原则:简单性、一致性及习常性。

① 简单性:

设计界面时,应力求简洁、直接、清晰地体现出界面的功能和特征;

② 一致性:

所谓一致性有2层含义。一是,作者自己开发的界面风格要尽量一致;二是,新设计的界面与其他已有的界面风格不要截然向反;

③ 习常性:

设计新界面时,应尽量使用人们所熟悉的标志和符号。

1.3 MATLAB/GUI的一般制作步骤

界面制作包括界面设计和程序实现。具体制作步骤如下:① 分析主要功能,明确设计任务;② 绘出界面草图,从使用者的角度来审查;③ 按草图上机制作(静态)界面,并检查;④ 编写界面动态功能的程序,检查功能;⑤ 以上只是一般原则。在设计中,步骤之间往往交叉反复执行;⑥ 设计和实现过程往往不是一步到位的。

2 界面构成:菜单和控件

界面菜单包括图形窗的标准菜单,自定义的用户菜单,现场菜单。

PC平台上,缺省情况下产生的MATLAB图形窗总有一个顶层菜单条(Top-level menu)。它包含5个标准菜单项:文件、编辑、工具、窗口和帮助。可以使用uimenu指令创建自定义用户菜单。现场菜单总是和某个(些)图形对象相联系,并通过鼠标右键激活,方便用户的交互性操作。

除菜单外,控件是另一种实现用户与计算机交互的主要途径。表1列出10种控件特征及功能表。

3 测向数据后处理软件界面

3.1 界面介绍

作者使用MATLAB/GUI开发了测向数据后处理GUI界面,图1是界面布局示意图。软件命名为WurenJi.m,对应的图形文件WurenJi.fig。

该GUI界面由基本菜单区、绘图区和功能选择区3部分组成。

基本菜单栏由5项组成,包括图像缩放,由相关表生成相位文件,更新相位文件,由相位文件生成相关表,以及帮助等。

绘图模式选择部分如图2所示。包括选择按频率绘图还是按方位绘图,频段选择,以及左右半圈的选择。

功能按钮区域如图3所示。包括7个功能按钮:清空图像,显示文件,上一文件,下一文件,剔除野值,保存和退出。

绘图区域包括4幅MATLAB绘图的标准坐标系,分别用来绘制4路相位差数据。MATLAB为图形对象提供了十分丰富的绘图命令,可以绘制出各种很精彩的二维和三维图形,这也是MATLAB极具吸引力的一个原因。图4给出坐标系1的一次绘图结果。

3.2 功能说明

主要包括4种功能:数据显示,野值剔除,数据更新以及文件转换。

数据显示:依据是保存相位差数据的文本文件。主要作用是打开已有的相关表中的频率文件,或者是打开生成的或测量得到的相位文件。

野值剔除:仅针对频率文件实现野值剔除功能和替换功能,在相位显示模式下野值剔除按钮不可用。观察相位差随方位的变化可以发现,频率文件基本呈现出一条连续光滑的曲线,但是在个别点出现跳变。为使这种跳变不影响后续的处理,就通过多项式拟合的方法来剔除野值。

数据更新:为了保持原始相关表数据的完整性,采用高阶多项式拟合的方法来更新数据。

文件转换:在实际测向时,得到的往往是相位数据,需要转换成相关表数据,而相关表数据为了便于处理,需要转换成相位数据。在工程实践中相关表数据和相位文件的相互转换是使用最多的一项功能。

4 GUI界面在工程中的应用情况

该界面主要针对某测向接收机完成数据处理功能。由于外场试验环境的复杂多变,测向数据的获得要考虑到发射天线、功放、接收天线等各种因素的影响,为了不影响外场数据的获取,相位差数据的测量往往是根据实际测量环境做出相应的安排,因此得到的数据是大量的零碎文件,而该界面的运行确实节省了不少处理时间。

该数据后处理软件已经成功应用于某试验基地的外场试验中。通过地面测试和2次飞行得到了可以高效使用的相关表数据。为课题的最终获胜起到了一定的作用。目前该软件界面已经成功应用在后续的某测向课题中,可操作性和有效性在外场试验得到进一步的验证。

图5给出另外一个关于雷达信号分选算法的GUI界面。图5中左侧放置一坐标系,右侧是PRI类型选择和算法选择功能模块,整个布局合理,结构紧凑。该界面充分发挥了GUI的图形化效果,将各种算法的结果绘制成不同的图形,从而给用户一种简单明了的感觉。

5 GUI和VC界面的比较

在VC和Java界面开发平台普遍使用的大环境下,MATLAB/GUI正以其独特的优势赢得许多科技工作者的厚爱。要承认的是,MATLAB/GUI在鼠标交互和动态显示方面要弱于VC界面,但是信号处理功能的优越性是VC界面无法替代的,尤其是在做数据处理工作时,一条简单的MATLAB语句可能要耗费VC开发人员一个小时的工作量,有大量数据需要处理时,借助于MATLAB强大的矩阵运算功能,能在短时间内实现数据的整理和重建,大型矩阵运算更是VC难以应付的。

GUI界面在外观上还有一个亮点,那就是图形效果。GUI可以内嵌MATLAB支持的所有图形处理函数,包括二维绘图和三维绘图函数。像网格、等高线、图像填充等效果都可以用一条语句来执行。而且MATLAB还支持对图形的现场处理,也就是当图形绘制好后,可以根据需要调用内部现场菜单来编辑图形。值得一提的是,在鼠标交互、动态绘图、外部接口上,GUI要弱于VC界面。

6 结束语

通过MATLAB/GUI开发工具的使用,MATLAB仿真结果以明了生动的形式跃然于纸上,给作者或客户一个美观形象的影响,以一种新的面孔向客户展示静态或动态的仿真结果,能够进一步提高客户对算法或数据处理效果的认识。对于某些频繁使用的数据处理工作,GUI界面无疑是一种高效的替代工具。无论是演示验证还是外场实时的数据处理,MATLAB/GUI都会发挥令人满意的效果。

参考文献

[1]陈杰.MATLAB宝典[M].北京:电子工业出版社,2007:667-816.

[2]张志勇.精通MATLAB6.5版[M].北京:北京航空航天大学出版社,2003:468-502.

[3]DABOCZI T.Howto test graphical user interfaces[J].IEEE Instrumentation&Measurement Magazine,2003(9):27-33.

[4]张彩娟.STK及其在卫星系统仿真中的应用[J].无线电通信技术,2007,33(4):45-46.

MATLABGUI 篇2

线性代数MATLAB GUI自主学习能力

一、前言

作为理工科各专业的一门本科基础课程,《线性代数与解析几何》课程的基本方法理论是学生进行后续专业研究所必备的。由于此课程中概念、结论较为抽象、复杂,传统的课堂教学对其的讲解必然是有限且不充分的,因此学生需要在课余时间借助其他教学资源进行必要的自主学习。

二、课程对学生自主学习能力的要求

1.《线性代数与解析几何》课程的教学特点及存在的问题

通常情况下,《线性代数与解析几何》课程是在本科一年级开设。在教学过程中,学校对此课程多采用大班授课形式。授课教师可以结合多媒体课件进行理论教学,以生动的方式来讲解抽象的理论知识;基于Matlab软件进行实验教学,充分发挥Matlab的优势来展示相关理论知识的实践性,着力加深学生对包括行列式、空间解析几何、线性方程组等理論内容的理解。

但是,很多学生在学习此课程的过程中仍存在困难。一是对于空间解析几何这一章中的许多问题,学生需要借助形象具体的图形来解决。尽管在课堂上,教师可以对典型的空间几何图形进行描述,但并不是所有的问题都能在课堂上得到解决。那么,学生在课堂之外独立解决其他空间几何问题时,就不免会对一些几何图形的形成产生困惑,而这会阻碍其对问题的进一步解决。二是现有的授课过程还很难体现课程内容的实践意义。在目前的授课过程中,教师的大部分时间都在讲授教学大纲所规定的教学内容,没有较多时间将课程内容拓展到相关的实际工程问题上。三是许多学生觉得此课程的理论知识较多,使其学习感到吃力。

这些问题都是教师在教学过程中需要注意,并应着力解决的。对此,一些研究者也提出了相应的解决方法,其中以增强学生的自主学习能力为主。

2.课程需要学生进行自主学习

所谓的自主学习,是在20世纪70年代由美国等国家提出。相比于传统的课堂学习方式,自主学习方式强调学习者是学习过程的主体,是学习者发挥自主性和创造性的一种学习方式。有效的自主学习,不仅可以让学习者体会学习中的乐趣,而且可以提高学习效率。

对于《线性代数与解析几何》课程,有效的自主学习过程可以帮助学生解决学习中的困难。这是因为,学生之所以觉得此课程中的定理引理较多,主要是源于其对理论知识理解得不够深入透彻,忽视了各知识点间的内在联系,未能建立起完善的知识体系。尽管一定学时的实验教学,可以缓解学生在形象思维与课程理论知识间存在的差异,也可以让学生对课程内容的实用性有一些了解,但是,鉴于学时方面的限制,课堂讲解必然是不充分的,学生仍需要在课余时间借助其他教学资源进行自主学习。

事实上,实现有效地自主学习《线性代数与解析几何》课程并不容易。目前,虽有一些学者对此进行了研究,但多数研究成果仅是从学习流程角度进行讨论。但是,要实现真正高效的自主学习,还应从调动学生的学习兴趣入手,这也与其他学科课程是一致的。对于理工科学生而言,只有让其真正认识到所学理论知识是有应用价值的,让其在解决问题时体会到学习的乐趣和成就感,才能调动其学习兴趣,从而使其实现真正的“自主”学习。对此,许多研究者认为MALAB GUI不失为一种有效的工具。

三、MATLAB GUI课件对学生自主学习能力的帮助增强作用

GUI是基于MATLAB软件的一种图形用户界面(Graphical User Interfaces),由窗口、按键、光标、菜单、文字说明等多个对象构成的。用户可以通过一定的方法(如鼠标)选择、激活图形对象,从而使计算机产生某些动作或是变化(如实现绘图等)。基于MATLAB软件,GUI不仅可以实现科学计算和图形处理等功能,也可以将复杂程序形成可视化人机交互界面,从而被国内外许多院校接受并作为数学等学科的辅助教学工具。

在《线性代数与解析几何》课程中,无论是应用空间几何图形的解析几何内容,还是基于矩阵理论的方程组、向量空间内容,都是可以设计出相关的MATLAB GUI课件。具体的,在图1的MATLAB GUI界面中,平面的参数是可以自行编辑输入的。通过这种自主输入曲面参数的方式,学生可以更为深刻地体会参数变化对曲面位置及形状的影响,从而有助于其以空间图形的角度理解问题。

总体上,对于《线性代数与解析几何》课程而言,MATLAB GUI课件的优势主要表现在以下几个方面:

(1)可以在较短时间内进行复杂运算,并且有强大的交互式功能。一方面,MATLAB GUI是基于MATLAB软件进行编写的,在MATLAB软件可实现的运算都可在MATLAB GUI中实现。即使是一些复杂的运算问题,也可以用MATLAB GUI以可视化的形式展示在学生面前。另一方面,MATLAB GUI具有强大的交互式功能。

(2)可以更好地展示理论知识的实践价值。该课程有着深厚的工程实践背景,这是大学安排学生学习此课程的主要原因之一。MATLAB GUI课件以其设计简洁、操作简便的界面,将这些工程实践问题生动地展示在学生面前,这种可视化交互式形式避免了枯燥的文字叙述,有助于加深学生对知识的理解、增强理论知识的应用价值。

四、结论

《线性代数与解析几何》课程在高校基础教学中发挥着重要的作用。在学习此课程的过程中,对于抽象的数学知识,学生难免会感到难于理解并可能产生厌学的情绪。而我们的教学实践表明,利用MATLAB GUI设计应用案例问题,通过演示应用案例的解决过程,可以让学生进一步理解相应的理论知识,提高其学习兴趣,从而使其更加积极主动地进行自主学习。

参考文献:

[1]周宇剑.基于思维能力培养的大学数学自主学习研究[J].科技信息,2013,(11):59.

[2]单正垛.刍议大学数学教学中如何加强学生自主学习能力的培养[J].中国校外教育,2008,(1):42.

[3]郭凤云.浅谈如何指导学生开展线性代数的自主学习[J].科教文汇,2010,(10):104-105.

MATLABGUI 篇3

关键词:Matlab GUI,雷达调试,窗口软件,数据分析

雷达总站调试涉及雷达各个分机, 是一个复杂的过程。调试工作者需在总站调试中及时发现问题、解决问题, 并能通过总站调试提高雷达工作的可靠性, 进一步降低雷达发生问题的概率。要完成以上任务, 除需具备丰富的调试经验外, 高效的调试和分析手段必不可少。

结合调试实际发现, 利用VB、VC、Fortran等语言作为调试手段对于大多数工作者而言难度较大, 要求具备专业的编程知识和调试技术, 难以满足调试的时效性需要。另外, 这些语言在作为分析手段处理矩阵数据及实现绘图功能时繁琐复杂, 且在编写雷达数据分析处理程序上费时费力。

Matlab作为功能强大的计算工具, 其编程简单、具有丰富的信号处理工具和实用绘图功能, 自带的GUI模块可方便地设计出Windows风格的图形用户界面, 因而适用于在雷达总站调试过程中实现数据分析、显示、控制等融为一体的软件设计, 并能有效解决上述问题[1]。本文借助Matlab GUI编程, 将雷达调试中的各个调试环节集成于窗口软件中, 简化了雷达测试数据输入输出及分析处理的各个环节。

1 软件需求

通过分析雷达总站调试过程发现: (1) 中心控制单元通常会根据调试需要使雷达分机处于某些特定状态, 以便排查问题。此时, 中心控制软件就需根据不同的测试需求来进行编写, 而这种具有随机性、多样性的测试需求仅依靠一般软件需求分析难以预见, 因此中心控制软件的开发要满足高时效性要求。

(2) 中心控制软件需实时掌握雷达工作过程中的一些状态参数, 如板卡温度、风机转速等, 以提高雷达工作的安全性和可靠性。因此就面临解决这些不同接口、更新率以及不同格式数据的汇总及显示问题。

(3) 通过分析分机提交给中心控制单元的报告数据, 如伺服系统角度输出报告、信号处理单元一次点迹报告等, 能对故障位置的定位及原因的排查起到理想的效果。而这些数据的分析软件功能各异, 对数据分析结果的可视化要求高。

(4) 运用雷达的数据存储与回放技术能有效检验信号处理算法, 并对事故现场进行事后处理, 这是查找事故原因的重要手段[2]。分析处理这些存储在高速数据记录设备中的大批量数据时, 需完成大量的矩阵运算、信号处理及数据处理工作, 且同样对数据分析结果的可视化要求高。

分析得到雷达总站调试中4个方面的软件功能需求, 即对雷达的控制功能、对雷达工作状态的监控功能、对分机数据信息的分析功能以及对雷达存储数据, 即回波数据的分析功能。

2 软件原理

本文所实现的基于以上功能的软件, 其结构可分为主界面环境和配合环境。如图1所示。

主界面环境是基于Matlab GUI的人机交互窗口程序, 用于在雷达总站调试中实现调试指令下发、状态信息汇总、采样数据分析及显示。用按钮、列表、编辑框及其回调函数实现对雷达分机控制信息的生成;用文本框显示系统状态信息;采用设备访问函数fopen、fwrite、fread等实现对UDP、TCP及一般数据文件的输入输出访问;用figure、plot等绘图函数、fft、conv等信号处理函数及其他数据分析函数实现对数据的分析、汇总与曲线输出等。

配合环境是一个基于Vx Works操作系统编制的应用程序, 其可监听并接收TCP命令、解析并调度至雷达各个分机进行执行;能读取系统的状态数据, 并按照协议生成UDP状态数据包;对于更新率较高的数据, 如伺服角度数据、按照CPI回报的中频数字化基带数据等, 均采用先写入内存, 再通过TSFS (Target Server File System) 接口在主界面环境的计算机上直接生成文件, 便于Matlab提取汇总、分析、显示;而对于存储在高速数据记录设备中的数据, 根据设备文件系统的不同, 将进行相应的文件操作。

3 软件实现

3.1 编程要点

Matlab GUI界面由前台界面和后台回调函数两部分组成, 其对应.fig文件与.m文件。前台界面包含GUI面板及相应控件、菜单的设计。后台包含实现前台界面功能的回调函数[3]。

设计前台界面有全命令行的M文件编程和使用GUIDE (Graphical User Interface Development Environment) 开发环境辅助设计两种方式, 本文使用后一种。

GUI界面的设计主要包括面板的布局设计和交互组件的属性设置。在Matlab主界面下, 选择File菜单New子菜单的GUI命令, 打开一个Guide快捷启动对话框, 选择Creat New GUI中的Blank GUI即可开始GUI面板的布局设计[4]。

如图2所示, GUI设计界面包括顶部的菜单栏、工具栏左侧边栏的组件面板和中心的GUI界面设计区域。在进行GUI设计时, 首先将所需的组件鼠标拖拽到GUI界面设计区域中去, 再通过属性和对齐编辑器对各控件设置相关属性及界面布置, 以完善界面功能。

3.2 回调函数的编写

编写某控件的回调函数时, 首先右键单击该控件, 在弹出菜单中点击View Callbacks, 然后从子菜单中选择激活该回调函数的方式, 如单击Callback子菜单会激活系统自动生成的h Name_Callback (h Object, eventdata, handles) 函数, 其中h Name是该控件的标签 (Tag) 属性值, h Object为其句柄。用户在该函数下完成操作此控件时所对应功能的编写。

另外, 本文软件实现的编程要点有: (1) TCP、UDP的访问。所有设备初始化后均可按照一般文件的方式使用, 其操作简单、使用方便。 (2) 参数获取与状态显示。用get函数获取句柄对象的属性, 以达到将工作参数发送给各分机的目的。语法如下:get (H, ‘Property Name’, …) ;用set函数对已获取句柄对象的属性进行修改, 以达到显示系统状态的目的。语法如下:set (H, ‘Property Name’, value, …) 。

3.3 工程实现

实现的雷达总站调试软件界面简洁, 控件组织逻辑合理, 软件操作贴近用户思维习惯, 且使用方便。软件界面如图3所示。

雷达控制功能:主要采用“应用”按钮 (pushbutton) 和包含用户参数的文本框 (edit) 控件[5,6,7]。当按下“应用”按钮后, 回调函数会调用get函数从各交互组件中获取用户参数, 并进行参数合法性检查, 最后按照通信协议格式使用TCP协议打包发送给下一级。

状态监控功能:主要采用“监控开始”按钮和用于显示状态参数的静态文本 (text) 控件。当按下“监控开始”按钮后, 回调函数会定时读取状态信息, 并调用set函数将其显示在界面上。

报告分析功能:主要采用“伺服记录”等多种功能按钮, 配合各种绘图工具来实现。当按下相应控件, 回调函数会读取数据并完成绘图输出。

回波分析功能:主要采用“文件获取”按钮和包含用户设置的文本框控件, 配合各种信号处理和绘图工具来实现。当按下“文件获取”按钮后, 回调函数会首先完成数据同步, 然后按照存储格式读取回波数据并完成相应的信号处理及绘图输出。与此同时, 使用set函数将已获取的数据状态信息显示在界面上。另外, 界面结合get函数获取的用户参数设置实现数据定位功能。

4 工程应用

实践证明, 将该软件应用到雷达总站调试中, 能为分析问题和系统改进提供强有力的支持, 并大幅提高了雷达总站调试的效率和质量。

通过对伺服系统定时提交的角度信息报告进行分析, 确认伺服状态。图4为报告分析功能区的“伺服报告”按钮分析结果, 其中, 通过分析第一幅图发现伺服异常, 经确认, 伺服通信出现故障。第二幅图为整改后伺服正常工作在俯仰±10°间扇扫, 扫描速率为20°/s时的角度信息输出[8,9,10]。

通过在雷达系统中构建射频闭环测试系统, 确认T/R组件接收状态。图5为报告分析功能区的“组件检查”按钮分析结果。现对一半组件进行检查, 通过分析第一幅图发现有两个 (每个3路) 组件未接收到能量, 经确认, 其中一个组件的供电线异常, 一个组件与波控机的通信线异常, 第二幅图为整改后组件正常时的接收幅度情况。

通过分析高速数据记录设备存储的采样数据, 确认中频数字化基带数据状态。图6为回波分析功能区的“文件获取”按钮分析结果。现将雷达发射漏脉冲按照方位向依次排开, 通过分析第一幅图发现相位不一致, 发射波形出现不相参情况。经确认, 信号处理单元的中频数字化功能出现异常, 第二幅图为整改后功能正常时的结果输出。

5 结束语

基于Matlab GUI面向对象的编程较为简单, 结合Matlab自身处理和绘图功能, 可快速开发出操作简单、界面友好、功能全面的雷达总站调试界面。调试界面可集成绝大部分总站调试功能, 从而为分析问题和系统改进提供强有力的支持。经实践证明, 基于Matlab GUI[6,7,8]该种高效的编程方式和调试手段, 能大幅提高雷达总站调试的效率及质量。

参考文献

[1]戴巧娜.基于Matlab的LFM信号脉冲压缩及模块化实现[J].火控雷达, 2008, 37 (4) :102-104.

[2]刘魁, 颜学龙, 何国华, 等.雷达数据采集回放系统的设计与实现[J].自动化与仪表, 2010 (8) :47-49.

[3]邱金蕙, 王矞辉, 李振全.基于Matlab/GUI的新型界面开发方式[J].河北工业科技, 2008 (25) :233-235.

[4]王正林, 刘明.精通Matlab:升级版[M].北京:电子工业出版社, 2011.

[5]李念念, 张红梅.基于Matlab GUI的信号与系统分析软件开发[J].工业控制计算机, 2011 (24) :19-21.

[6]张妮, 孙超.用数学软件可视化演示信号系统经典定理[J].电子科技, 2010, 23 (12) :118-119.

[7]宗节保, 段柳云, 王莹, 等.基于Matlab GUI软件制作方法的研究与实现[J].电子设计工程, 2010, 18 (7) :54-56.

[8]杜世民, 杨润萍.基于Matlab GUI的“信号与系统”教学仿真平台开发[J].实验技术与管理, 2012, 29 (3) :87-90.

[9]肖开健, 井纬, 肖战牛, 等.基于DDS的单脉冲体制雷达目标模拟的实现[J].电子科技, 2011, 24 (11) :13-15.

MATLABGUI 篇4

关键词:电力电子技术,GUI,教学平台

电力电子技术是电气工程及其自动化等专业的重要专业基础课,也是实用性、工程性和综合性很强的课程。课程内容以电力电子器件和四大类变流电路为主线,通过分析各类电力电子器件的通断情况来理解整流、逆变、斩波、调压等典型电路的工作原理,从而得出电路在不同负载作用下各点的电流、电压波形。因此,本课程涉及电力电子技术各种装置的分析与大量的计算、电能变换的波形分析、测量与绘制等,这些工作特别适合应用Matlab来完成[1]。

Matlab是当今科研领域最常用的应用软件之一,是一种简易的、可扩展的系统开发环境和平台。Matlab在提供强大计算功能的同时,还大力发展了图形用户界面(GUI)功能。利用Matlab提供的GUI设计工具或编写程序,可以设计出美观、方便的菜单化和控件式的人机交互界面。我们采用Matlab图形用户界面开发环境GUIDE设计开发了一套应用于电力电子技术辅助教学的仿真软件。

1 仿真平台的设计

仿真平台分为两大模块:电力电子器件模块和电力电子电路模块,电力电子器件模块分设具体元器件,电力电子电路模块分四大变流电路,各变流电路又分设具体的变流电路。仿真平台的总体框架如图1所示,软件相应的流程图如图2所示。通过主界面的选项框或者菜单可进入电力电子器件界面来观察元器件的特性以及参数设置,进入电力电子电路界面可设置电路相关参数进行虚拟实验,得出仿真波形和实验结论,加深对变流电路工作原理的理解。

2 仿真平台的实现

2.1 主界面

2.1.1 主界面功能简介

主界面如图3所示,主要由GUIDE工具箱中的菜单、按钮、坐标轴、静态文本框、菜单栏和组合框等控件实现。

菜单栏包括“实验平台”“快捷查询”两项,每项主菜单下设子菜单,方便仿真平台各界面之间的相互转换以及与Matlab软件中Simulink工具箱的链接。

选择组合框中的“电力电子器件”或“电力电子电路”,界面的右侧和下方会出现器件或电路的模型框图和简介,可通过主界面了解这两大模块的概况。单击“进入电力电子器件界面”或“进入电力电子电路界面”按钮可进入相应的界面。

2.1.2 主界面功能的实现

对控件的属性进行设置,包括控件的背景色、前景色、Tag值、String值、Value值等。属性设置完成后,需要编写相应控件的程序代码来实现其功能。

(1)电力电子器件和电力电子电路介绍的转变。此功能主要是通过对一个组合框内2个单选按钮的选择来实现的。主要代码如下:

由get(h Object,'tag')语句判断用户选择了哪个按钮,通过switch…case…end语句使坐标轴的图像发生相应的改变,“imread”函数用于读取图像,显示图像用“image”函数,set语句组使静态文本框内的模型简介内容发生改变。

(2)进入电力电子器件界面和电力电子电路界面。进入电力电子器件界面和电力电子电路界面的代码类似,都是通过关闭主界面close(fi gure(mainplat)),再打开相应的界面fi gure()实现的。

2.2 电力电子器件界面

电力电子器件界面如图4所示,选择列表框内的电力电子器件模型,“模型及特性展示区”和“实物展示区”会显示所选择的器件的特性和实物图片,“模型简介区”同时对此器件的功能、特性进行文字介绍。利用val=get(handles.listbox1,'value')语句,可获得列表框中电力电子器件所对应的“value”值,再通过switch…case函数选择相应的语句实现相应的功能。例如:单击电力场效应管MOSFET,此时“value”值为4,程序会执行case 4后面的代码,通过axes()语句在特定的坐标轴上显示相应的图片。

“返回主界面”“退出系统”和“器件参数设置”3个按钮实现相应的功能。

2.3 电力电子电路界面

2.3.1 电力电子电路界面简介

用户单击主界面上的“进入电力电子电路界面”,便可进入主界面(如图5所示),用户在此可选择想要仿真的电路模型。例如当选择直流—直流变流电路中的降压斩波电路,单击“进入”按钮时,会跳转至降压斩波电路界面(如图6所示)。此电路界面可划分为4个区域,左上方为“电路原理区”,左下方为“电路参数设置区”,中间为“仿真结果显示区”,右侧为“功能按钮区”。

2.3.2电力电子电路界面功能实现

为了保持软件界面的统一性,各电路仿真界面风格基本一致,以降压斩波电路界面为例说明界面主要功能的实现。

(1)电路原理区。电路原理区显示所选择电路的原理图,方便用户理解此电路的工作原理和构成。主要由“imread”和“image”函数读取和显示坐标轴上的电路原理图片实现此功能。

(2)电路参数设置区。由电力电子电路界面转至降压斩波电路界面,此时参数设置区有默认的最佳参数设置,点击“仿真”按钮,参数就会传递到降压斩波电路mdl模型中,在后台开始仿真,仿真波形和计算结果显示在仿真结果区。若改变参数,仿真结果也会发生相应的变化。

电阻、电源电压、电感、反电动势值的传递:用“get”函数读取电阻值、电源电压值、电感值、反电动势值文本框中的数值,“set_param”函数将读取的数值写入相应的mdl模型中。

仿真时间的设置通过滑动条或编辑文本框来实现。滑动条主要用于为程序提供数值,这个数值被限制在一定的范围内,用户可以通过鼠标或键盘移动滑动条滑块的位置来改变滑动条提供的数值。编辑文本框支持用户通过键盘输入数值,用于为程序运行提供输入参数。

滑动条的回调函数代码为:s e t(h a n d l e s.edit2,'String',get(handles.Sli,'Value'))。此代码可以把滑动条上滑块的位置转换为数值显示在文本框中。

编辑文本框的回调函数先用if语句判断输入到文本框的数据是否在滑动条的范围内,如果不在此范围内,输入无效;如果合理,将文本框中的数值传递到滑动条上,即Old T=get(handles.Sli,'Value');set(h Object,'String',Old T)。从而实现了滑动条和文本框的数据传递。再将仿真时间写入仿真模型中,需编写如下语句:tendvalue=get(handles.edit2,'String');从而修改了模型中的仿真时间。

考虑到脉冲发生器需要设置的参数不止一个,故采用调用模块封装界面的方法来实现,利用“open_system”语句打开模块参数设置界面。

(3)仿真结果显示区。设置电路中各参数之后,单击“仿真”按钮,仿真波形就会显示在指定的数轴上,计算结果显示在动态文本框中。其程序调用的过程为:GUI界面参数通过函数set_param传递到降压斩波电路mdl模型中,模型在后台进行仿真后的结果用函数evalin存入Matlab的workspace中,再利用plot(tout,yout)命令画出图形,显示在GUI界面上。

(4)功能按钮区。“返回上一界面”“返回主界面”“其他波形”以及“仿真结论”按钮的功能主要由figure函数打开相应的界面来实现的。直接调用questdlg对话框实现“退出程序”按钮功能,这些功能按钮都是Push Button控件。

3 结束语

应用Matlab图形用户界面的开发环境GUIDE设计开发出一套电力电子技术辅助教学软件,该软件平台集原理说明、参数设置、模型查看、仿真操作、波形显示等为一体,界面友好、功能完善。使用此软件既可使学生易于理解和掌握电力电子技术的理论知识和分析方法,也为学生进行开发性、设计性实验提供有力支撑。教学实践证明,所开发的电力电子技术辅助教学软件极大地提升了教学质量,有助于培养学生的动手实践能力以及分析问题和解决问题的能力。

参考文献

[1]王兆安,刘进军.电力电子技术:第5版[M].北京:机械工业出版社,2009.

[2]陈垚光,毛涛涛,王正林,等.精通MATLAB GUI设计:第1版[M].北京:电子工业出版社,2008.

[3]李京秀,陈白生.基于Matlab图形用户界面GUI的电路仿真实验的制作[J].电气电子教学学报,2004,26(4):99-101.

[4]金波.基于Matlab的“信号与系统”实验演示系统[J].实验技术与管理,2010,27(12):104-107.

上一篇:观赏凤梨下一篇:存货管理新经济供应链

本站热搜

    相关推荐