MatlabGUI

2024-07-15

MatlabGUI(共7篇)

MatlabGUI 篇1

1 引言

Matlab是Math Works公司开发的一款科学计算软件, 不仅具有强大的科学计算功能, 还可以创建图形用户界面GUI (Graphical User Interface) , 实现用户和计算机之间交流的工具。

MATLAB将所有GUl支持的用户控件都集成在这个环境中并提供界面外观、属性和行为响应方式的设置方法, 随着版本的提高, 这种能力还会不断加强。而且, 具有强大的绘图功能, 可以轻松的获得更高质量的曲线图。王战军[1]实现了串口数据的通讯, 并对数据进行了分析处理和图形化显示。

本文首先实现计算机与下位机的串口通讯, 采集下位机的距离和电压值, 储存在EXECL数据表中, 然后调用axes控件, 以距离为X轴, 电压为Y轴, 实现曲线显示。

2 串口数据的接收和存储

本文的应用程序是运用MATLAB的类 (SERIAL) 和M语言开发, 辅以MATLAB的GUIDE工具箱。整个传输的过程首先是初始化, 然后发送连接命令;连接成功后, 由PC机下发上传数据命令。如果没有收到下位机上传的数据, PC机下发继续上传数据命令;收到下位机上传的数据, PC机接收数据包, 并显示“正在传输”。接收完一个数据包后, 继续接收数据校验。校验数据没有问题, 存储数据, 并继续接收数据包, 直到结束。具体的应用软件流程图如图1。

2.1 串口通讯

Matlab提供了对串口进行打开、关闭、以及串口参数设置等操作的一系列函数。利用这些函数可以选择串口号、设置串口通信参数 (波特率、数据位、停止位、校验位等) 、进行中断控制、流控制[2]。

(1) 创建串口对象scom, 打开是“com1”端口。

(2) 打开串口对象scom。

fopen (scom) ;

(3) 设置串口对象scom通信参数

串口通讯参数包括波特率、奇偶校验、数据位、停止位等参数。串口通讯参数设置程序如下:

scom.baudrate=19200;%设置波特率, 缺省19200bit/s

scom.parity=’none’;%无奇偶校验

scom.stopbits=1;%停止位

scom.timeout=0.5;%设置读操作完成时间为1s, 缺省10s

scom.inputbuffersize=256;%输入缓冲区为32b, 缺省值为512b 32*8

scom.Bytes Available Fcn Mode=’byte’;%数据模式, 这里设置为byte

(4) 从串口对象scom读数据。

5) 关闭串口对象scom。

关闭串口scom, 并且释放串口对象占用的存储空间, 具体的程序如下:

fclose (scom) ;%关闭串口scom

delete (scom) ;%释放串口对象占用的内存空间

2.2 数据存储

Matlab软件可以实现对txt文件和Excel文件的输入和输出, 为了能方便、直观的观测数据, 本文把接收到的数据存储在Excel文件中。Matlab提供了对Excel文件操作的一系列函数。本文用于数据存储的函数是xlswrite。

具体的格式:

将矩阵M中的数据写入文件名为filename的Excel文件中, 且由range制定存储的区域, 由sheet指定了所要存储的sheet[3,4]。

本文通过上文方法接收串口的数据, 并存储在a1.xsl的文件中, 其中, 长度存储在sheet1的E2:E21中, 电压存储造sheet1的F2:F21中。具体的代码如下:

xlswrite (‘a1’, a, 1, ’E2:E21’) ;%存储长度

xlswrite (‘a1’, b, 1, ’F2:F21’) ;%存储电压

运行代码, 存储数据在Excel文件, 见表1。

3 曲线显示

利用Matlab GUI强大的绘图功能, 结合Excel软件, 读取Excel文件的数据, 绘制高质量的曲线图, 显示数据变化曲线。Matlab gui中的控件axes使用户的GUI不仅可以显示图片, 设置很多关于外观和行为的参数, 并且, axes还可以当做一块画布, 把我们需要的曲线绘制出来。

本文通过一个点击按钮来绘制数据曲线, 具体的代码在按钮的控件的Callback调函数下。

axes (handles.axes1) ;

xlabel (‘长度 (M) ’)

ylabel (‘电压 (V) ’)

运行代码, 可以得到数据曲线, 如图2.

4 结论

应用MATLAB强大的绘图功能与计算相结合, 很好地接收串口传过来的数据, 结合EXECL并对数据进行存储, 利用AXES控件显示数据曲线, 能够直观有效的观测距离和电压的数据变化曲线, 并且该界面友好, 结构简单, 性能可靠, 易于操作。

摘要:为实现下位机数据的接收和上位机数据曲线显示, 本文应用matlab GUI, 设计串口通讯程序, 并将接收的数据存储在Execl数据表中, 通过调用matlab的Axes控件, 实现了数据的曲线显示。

关键词:matlab GUI,Execl,串口通讯,Axes

参考文献

[1]王战军, 沈明.基于Matlab GUI的串口通信编程实现[J].现代电子技术, 2010, 320 (9) :38-44.

[2]南洋, 周静等.基于MATLAB的GUI的界面设计[J].石油仪器, 2008, 22 (6) :76-78.

[3]赵云鹏.MATLAB串口通信在数据采集中的应用[J].微计算机信息, 2006, 22 (1-1) :111-112.

[4]王国栋, 刘明熠, 杨际青.基于Matlab的磁滞回线实验串口程序设计[J].物理实验, 2004, 24 (3) :25-27.

MatlabGUI 篇2

整流电路是电力电子电路中出现最早的一种,它的作用是将交流电能变为直流电能供给直流用电设备,整流电路的应用十分广泛[1]。在整流电路的设计过程中,需要对设计电路及有关参数选择是否合理、效果好坏进行验证。如果通过实验来验证,需要经过反复多次的元件安装、调试、重新设计等步骤,这样使得设计耗资大,效率低,周期长。现代计算机仿真技术为电力电子电路的设计和分析提供了崭新的方法,可以使复杂的电力电子电路、系统的分析和设计变得更加容易和有效。

Matlab是一种计算机仿真软件,它是以矩阵为基础的交互式程序计算语言。Simulink是基于框图的仿真平台,它挂接在Matlab环境上,以Matlab的强大计算功能为基础,用直观的模块框图进行仿真和计算。其中的电力系统(Power System)工具箱是专用于RLC电路、电力电子电路、电机传动控制系统和电力系统仿真用的模型库[2]。它具有丰富的器件模型和齐全的分析功能,且操作方便。随着对仿真和程序设计通用性及可视化需求的日益增加,Matlab的图形用户界面(GUI)应用也越来越广泛,功能越来越强大。以Matlab 7.1为设计平台,利用Simulink中的Power System工具箱来搭建整流电路仿真模型,并通过Matlab GUI设计整流电路的分析界面。

1 整流电路仿真模型

整流电路又称交-直流变流器,在整流的同时还对直流电压电流进行调整,以符合用电设备的要求。按不同的分类方式,整流电路的种类非常多,其中单相桥式全控整流电路和三相桥式全控整流电路最为典型。以单相桥式全控整流电路为例,说明其仿真模型的建立。

1.1 单相桥式全控整流电路构成

单相桥式全控整流电路(纯电阻负载)如图1所示,电路由交流电源u1、整流变压器T、晶闸管VT1~VT4、负载电阻R以及触发电路组成。在变压器次级电压u2的正半周触发晶闸管VT1和VT3;在u2的负半周触发晶闸管VT2和VT4,则负载上可以得到方向不变的直流电,改变晶闸管的控制角可以调节输出直流电压和电路的大小。

1.2 单相桥式全控整流电路模型建立

根据单相桥式全控整流电路原理图,在Simulink的Power System工具箱里提取交流电源、晶闸管、RLC串联电路、脉冲发生器、变压器、示波器等元器件。在Simulink操作平台上连接这些模块,构成单相桥式全控整流电路模型,如图2所示。

1.3 模型参数设置

双击仿真模型中的各个模块弹出参数设置对话框,就可进行参数设置。在整流电路中,改变晶闸管触发角α,输出直流电压和电流的大小就得到改变。因此触发角α的设置是电路参数中的重要一项。晶闸管的触发采用脉冲触发器(Pulse Generator)产生,脉冲发生器的脉冲周期Td必须和交流电源u2同步,晶闸管的控制角α以脉冲的延迟时间t来表示,t=αTd/360o。其中,Td=1/f,f为交流电源频率。仿真算法选择ODE23TB算法,当电路带阻感性负载时,应保证触发脉冲具有足够的宽度。

2 整流电路GUI界面开发

整流电路仿真模型参数的选择十分关键,它直接影响到仿真结果和仿真质量,从而进一步影响到整流电路的设计。为了满足整流电路更高的性能指标,在仿真过程中,就需要不断地修改和设置参数而花费大量时间。另外,还需要反复地打开示波器察看仿真结果,不仅过程繁琐,且效率很低。因此,本文借助Matlab GUI建立了一个整流电路仿真界面,通过此界面,用户可以很方便地在中文名称环境下来设置参数,选择模型等,仿真结果也会直接在界面上显示出来,不仅方便快捷,且大大提高了仿真效率。

2.1 Matlab GUI的实现方法

Matlab可视化界面的设计方法一般有2种:一是直接通过Matlab的脚本文件来实现GUI;另一种是通过Matlab图形用户界面开发环境GUIDE来实现图形界面。Matlab软件GUIDE为用户提供了一个方便高效的集成环境,所有GUI支持的用户控件都集成在这个环境中,并提供界面外观、属性和行为响应方式的设置方法[3]。一般而言,由于界面中的控件对象属性、行为,既可以在界面中实现,也可以在生成的M文件中用m语言代码在相应的代码段中实现。因此,使用第2种方法实现图形用户界面虽然会给编程人员在修改和重新编辑界面时带来一定的麻烦,但是,其设计过程较为直观、简单,开发周期短。在此,采用第2种方法来实现整流电路的仿真界面。

2.2 仿真界面的开发

整流电路仿真界面由选择界面和主界面两部分组成,选择界面如图3所示。在选择界面中,把整流电路分为单相桥式全控整流电路、三相桥式全控整流电路和带容性负载的三相不可控桥式整流电路3种。每种电路有相应的电路说明,点击“电路说明”会弹出该电路的工作原理、特性等内容,点击每种电路后的“进入”按钮,即可进入相应电路的主界面。为了保持界面风格的一致性,三类整流电路的主界面设计相似,如点击单相桥式全控整流电路的“电路说明”,弹出其电路说明图如图4所示,单击“进入”,弹出其主界面图如图5所示。电路仿真的主界面分为电路原理图显示区、参数设置区、波形显示区、功能按钮区以及相应的菜单区。

2.3 仿真主界面的实现

打开控件的各个属性进行设置,包括控件的背景色、前景色、Tag值、String值、Value值等。编写相应控件的程序代码,以实现相应的功能。

(1)电路原理图的显示。

电路原理图是用一个数轴显示的,程序代码为:

“imread”函数用于读取电路原理图图片,显示图片用“image”函数,代码“axis off”的作用是将数轴的坐标去掉。

(2)模型参数的设置。

参数设置包括负载参数以及仿真时间、电源电压和脉冲发生器的参数设置。设置参数后,点击“仿真”按钮,仿真波形在显示窗口动态显示出来,如同示波器一样。

电阻值的设置先用“get”函数来读取电阻值文本框中的数值,再用“set_param”函数将读取的数值写入Simulink电阻模块中。

仿真时间的设置既可用滑动条又可用编辑文本框。移动滑动条上的滑块位置就可改变滑动条提供的数值,文本框中的参数也会随之改变,反之亦然。文本框和滑动条之间的数据传递用语句:

OldT=get(handles.Sli,′Value′);set(hObject,′String′,OldT)实现

电源电压和脉冲发生器参数的设置采用调用模块封装界面的方法来实现,利用“open system”函数,打开模块参数进行设置。

(3)仿真波形在主界面的显示。

在Simulink模型中,把要显示的波形数据导入workspace当中,再利用plot(tout,yout)命令画出图形,显示在主界面上。为了在界面指定的坐标轴中输出图形,只要在plot命令执行前添加axes(h_axes)代码即可。

(4)辅助功能的实现。

为了优化仿真界面的功能,系统设有一些辅助功能,如栅格开关,显示其他图形、返回和退出等。

“栅格开关”是对显示区域的栅格控制,栅格的开与关分别对应“grid on”的选中与否。相关代码为:

单击“显示其他波形”,即可进入其他波形显示界面,如图6所示。能显示晶闸管的电压、电流波形和触发脉冲的波形,这样既可节省仿真主界面的空间,又可加强仿真界面的层次感。

(5)菜单的实现。

菜单的实现采用的是GUI的uimenu菜单设计,包括“文件”、“负载类型”、“其他三项。其中“文件”和“其他”菜单的下拉菜单的功能是对界面功能的同一表现,“负载类型”的下拉菜单包括电阻负载和阻感负载,界面的关闭和打开分别用到delete和figure函数。即如果选择阻感负载,系统会关闭纯电阻负载变流电路的仿真界面figure(bisheshiyan4),打开阻感负载的仿真界面figure(danxiangzugan)。

由主界面仿真图来看,从对各项参数的设置到仿真运行再到结果显示整个过程操作方便,加上辅助工具的使用,使仿真结果一目了然,对比清晰。如果对仿真结果不满意,可以重新设置参数继续进行仿真。仿真结束后,可以选择“退出”按钮退出当前界面。界面友好,操作简单。

3 结语

MatlabGUI 篇3

说话人识别(Speaker Recognition,SR)是语音识别的一种,是通过话音区分说话人,从而进行身份鉴别与认证的技术。与其他生物认证技术如指纹识别、掌型识别、虹膜识别等相比,具有独特的方便性、经济性和准确性,并逐渐成为人们日常生活和工作中重要且普及的安全验证方式[1]。

Matlab是使用最为广泛的科学计算软件之一,在说话人识别中有着广泛应用。但在实际应用中仍存在如下不足:其语音处理工具箱仅仅提供了基本函数,并未针对一类问题给出一整套设计方案;一般Matlab控制台程序以命令形式调用语音处理工具箱函数,这种形式不像人机交互界面那样直观,也不易数据处理。正因为这些困难与不足,有必要设计基于Matlab GUI的说话人识别测试平台[2]。

1 GUI说话人识别测试平台实现

1.1 系统框架设计

说话人识别系统框图如图1所示,主要由以下模块组成:

(1)预处理模块:完成对语音信号的采样与量化、预加重处理、加窗、端点检测等;

(2)特征提取模块:测试音和训练音都必须经特征提取,提取出表征说话人个性的语音信号特征,以方便后续处理;

(3)参考模板模块:对模型参数进行估计和优化,建立说话人模型;

(4)模式匹配模块:测试音经特征提取,将提取出的特征参数和训练时产生的模型进行匹配,计算匹配距离;

(5)判决模块:根据匹配距离大小,依照某种相似性准则形成判决[3]。

对上面5个模块编写程序,在程序中调用了语音处理工具箱中的enframe,melcepst,melbankm等函数[4]。对所有程序进行优化和整合,设计出说话人识别系统测试平台。

1.2 人机交互界面设计

说话人识别测试平台主界面如图2所示。设置各控件属性,通过回调函数实现系统功能。

1.2.1 控件属性值设置

图2主界面中,包括如下控件类型:Static Text,,,,,Mpanel等。表1为各控件类型的主要属性设置情况[5]。

1.2.2 系统各部分功能的实现

主界面主要包括录音、测试及结果分析3部分。

(1)录音部分:首先设置语音采样点数,然后录音,可通过PLOT按钮观看录制的语音波形,或通过PLAY按钮听录制语音的声音[6],以保证录制语音质量。录音按钮回调函数为:

function pushbutton9_Callback(h Object,eventdata,handles)

(2)测试部分:首先选择人数、发音的字数、帧长、帧移、是否选择有端点检测,然后选择采用的语音特征参数是MFCC或MFCC+ΔMFCC,通过The Path of Train按钮,输入训练语音路径,以输入训练语音,再按TRAIN按钮,当Edit text框中显示training has been completed表明训练已完成。再按The Path Of Test按钮,输入测试语音路径,以输入测试语音,再按TEST按钮以进行测试,其测试结果显示在Edit text框中,最后识别率显示在Identify rate窗口。训练按钮回调函数为:

function train_Callback(h Object,eventdata,handles)3

(3)结果分析部分:对几个影响识别率的因素进行了分析。主要因素有:帧长、人数、字数、MFCC阶数、是否采用端点检测等,其结果和理论结论一致。

2 测试实例

测试实例参数设置及测试结果如图3所示。特征参数采用MFCC+差分MFCC;识别模型为矢量量化模型;测试环境为实验室环境。人数为50人,每个人训练、测试时分别说12个汉字,中文普通话。识别率窗口显示系统识别率为96%,效果较好,表明了该测试平台的有效性。

3 结语

本文所设计的基于Matlab GUI说话人识别测试平台,充分利用Matlab软件中的GUI技术及语音处理工具箱中内置函数,功能完善,包括录音、测试及结果分析部分。该平台提供了良好的人机交互环境,便于用户在各种参数条件下的测试实验,例如用户可方便设置采样点数、人数、字数、及帧长、帧移、MFCC的阶数等测试条件,系统识别率高,为进一步开发说话人识别系统提供一定的仿真环境及参考价值。

参考文献

[1]吴朝晖.说话人识别模型与方法[M].北京:清华大学出版社,2009.

[2]秦辉.基于Matlab GUI的预测控制仿真平台设计[J].系统仿真学报,2006,18(10):2778-2779.

[3]甄斌,吴玺宏,刘志敏.语音识别和说话人识别中各倒谱分量的相对重要性[J].北京大学学报:自然科学版,2001,37(3):371-378.

[4]陈炜杰.噪声环境下的说话人识别技术研究[D].杭州:浙江工业大学,2008.

[5]郑阿奇.Matlab实用教程[M].北京:电子工业出版社,2005.

MatlabGUI 篇4

1 GUIDE的操作界面使用方法及GUI的设计介绍

图形用于界面(GUI)是提供人机交互的工具和方法。GUI是包含图形对象(如窗口、图标、菜单和文本)的用户界面。MATLAB的GUI为开发者提供了一个不脱离MATLAB的开发环境,有助于MATLAB程序的GUI集成。在MATLAB中的GUIDE就是图形用户界面开发环境(Graphical User Interface Development Environment),它向用户提供了一系列的创建用户图形界面的工具。这些工具大大简化了GUI设计和生成的过程。

下面对GUIDE的操作界面及使用方法做一简单介绍。

在命令窗口中直接键入guide,启动GUIDE,利用GUIDE模板创建GUI,或者打开已经存在的GUI,GUIDE把GUI设计的内容保存在两个文件中,它们在第一次保存或运行时生成。一个是FIG文件,扩展名为.Fig,它包含对GUI和GUI组件的完整描述;另外一个是M文件,扩展名为.M,它包含控制GUI的代码和组件的回调事件代码。这两个文件与GUI显示和编程任务相对应。在版面设计器中创建GUI时,内容保存在FIG文件中;对GUI编程时,内容保存在M文件中。用GUIDE版面设计器,根据设计需要:首先拖拽两个图形窗口(Axes),一个作为待处理图片区域,另一个作为已处理图片区域;其次,拖拽五个电子按钮(Radio Button),作为边缘检测操作按钮;第三,拖拽五个按钮(Push Button),作为输入等的按钮;最后,将上面的所有按钮及图形窗口合理的布局,达到美观工整的效果,然后运行一下GUI,系统会自动生成GUI文件[1]。

上面已经规划好了按钮的位置,如果想在点击选取图片按钮时,软件给予响应,需要给按钮输入一定的程序代码。下面以输入按钮的GUI设计为例介绍一下GUI Callback的设计方法,其它的与之类似,就不介绍了。设置代码的方法如下:右键单击选取图片按钮,选择View Callbacks/Callback,系统会自动带设计者进入此按钮的代码输入区域,在下面的空白处输入如下代码[1]:

global im%定义一个全局变量im

[filename,pathname]=...

uigetfile({'*.*';'*.bmp';'*.tif';'*.png'},'select picture');%选择图片路径

str=[pathname filename];%合成路径+文件名

im=imread(str);%读取图片

axes(handles.axes1);%使用第一个axes

imshow(im);%显示图片

运行GUI,将生成图像处理的软件平台,本文设计的GUI如图1所示,该图像处理软件可以实现的功能有:五种常用的边缘检测,图像输入,图像转换(彩色图片灰度化)等。

2 基于MATLAB GUI的图像处理软件边缘检测过程

在图像处理技术中,往往要求对图像描述并对图像进行分析和理解。图像分析和理解,在实际应用时,非常重要。如,对大规模集成电路的自动检测、对医学癌细胞的识别里、在机器人的视觉领域方面等,都是十分重要的。对图像分析和理解而言,基本的就是图像分割和区域描述。本文主要是研究图像分割部分,因为它是图像识别的基础,如图2所示。图像分割就是将图像中有意义的对象与背景分离,并把这些对象按照不同的含义分割出来,即将图像中具有不同含义的对象提取出来。

图像分割可以分为两种:一是基于边界的分割技术;另一是基于区域的分割技术。这里主要涉及的是第一种即边缘检测。边缘检测是一种重要的区域处理方法,边缘是所要提取目标和背景的分界线,提取出边缘才能将目标和背景区分开来。如果一个像素落在边界上,那么它的邻域将成为一个灰度级变化的带。对这种变化最有用的两个特征是灰度的变化率和方向。边缘检测算子可以检查每个像素的邻域并对灰度变化率进行量化,也包括对方向的确定。

图3中显示了图像边缘所对应的一阶、二阶导数曲线,从中可以看到,图像边缘对应一阶导数的极大值点、图像边缘对应二阶导数的过零点。所以,利用求导的方法可以较方便地检测到灰度值的不连续效果[2,3]。边缘的检测可以用微分算子利用卷积来实现。常用的微分算子有梯度算子和拉普拉斯算子等,这些算子可以检测图像的二维边缘,而且可以检测图像的三维边缘。MATLAB工具箱提供的常用的梯度算子有基于一阶导数的边缘的检测算子,如:Sobel算子、Prewitt算子、Roberts算子;有基于二阶导数的边缘的检测算子即拉普拉斯(Laplacian)算子,如:Log算子;另外,Canny算子是基于最优化思想推导出的边缘检测算子[3]。MATLAB工具箱提供的edge()函数可针对以上算子实现检测边缘的功能[2,3]。edge()函数是基于灰度的图像,对于彩色图片应先灰度化,图一中就是先把彩色图片灰度化后的边缘检测效果。边缘检测也可以用MATLAB代码实现。

不同的算子边缘的检测效果不尽相同,各有特点。下面通过MATLAB GUI实现图像处理的边缘检测,从中可以看到实际的效果。

灰度图片边缘检测的实例:首先选择一幅灰度图片,依次选择五种检测按钮,比较各种边缘检测的处理效果,如图4原图及Roberts、Sobel、Prewitt边缘检测效果,图5Log、Canny算子对图片的边缘检测效果。

对边缘检测不管采用那种方法,都有一些基本要求:在检测出图像真实的边缘的同时要避免检测出现虚假的边缘,错误检测率要尽可能低;标记出的边缘位置要和图像上真正边缘的位置尽量接近;图像上本来只有一个边缘点,实际检测可能会出现多个边缘点;克服噪声的影响。

基于一阶导数的边缘的检测算子,在算法实现过程中,通过模板(2×2或3×3)作为核心,与每个像素点做卷积和运算,然后选取合适的阀值以提取边缘[2,3]。Roberts算子对边缘定位精度较高,但容易丢失一部分边缘,同时由于图像没经过平滑处理,因此不具备能抑制噪声能力。该算子对具有陡峭边缘且含噪声少的图像效果较好。Sobel算子和Prewitt算子都是对图像先做加权平滑处理,然后再做微分运算,所不同的是平滑部分的权值有些差异,因此对噪声具有一定的抑制能力,但不能完全排除检测结果中出现的虚假边缘。虽然这两个算子边缘定位效果不错,但检测出的边缘容易出现多像素宽度。拉普拉斯算子是基于二阶导数的边缘的检测算子,其对噪声敏感。Log算子首先用高斯函数对图像作平滑滤波处理,然后才使用拉普拉斯算子检测边缘,因此克服了拉普拉斯算子抗噪声能力比较差的缺点,但是在抑制噪声的同时也可能将原有的比较尖锐的边缘也平滑掉了,造成这些尖锐边缘无法检被测到。Canny算子是基于最优化思想推导出的边缘检测算子,该算子同样采用高斯函数对图像作平滑处理,因此具有较强的抑制噪声能力,同样该算子也会将一些高频边缘平滑掉,造成边缘丢失。通过对比,发现Canny算子对图片的边缘检测效果比较好。

3 结论

MATLAB提供了一个简便的开发环境,提高了开发工作效率。本文介绍了MATLAB的GUI的制作方法,通过这可以了解GUIDE的设计方法及相关图像处理代码的编程,了解GUIDE的功能及使用方法,并为深入研究打下一定的基础。利用Matlab的工具函数和多种算法可以实现对图形图像边缘检测的处理。在对边缘检测中,边缘定位和抑制噪声能力是一对矛盾,有的算法边缘定位能力强,有的抑制噪声能力强。每种算法都有各自的优缺点。一般情况,Canny算子对图片的边缘检测效果比较好。但理论和实际有许多不一致的地方,Canny算子同样采用高斯函数对图像作平滑处理,因此具有较强的抑制噪声能力,同样该算子也会将一些高频边缘平滑掉,造成边缘丢失[2,3]。因此,在实际的边缘检测中,还应采用多种方法,并进行比较,从中选择最好的。关于该图像处理软件还可以根据实际需要,增加其它的图像处理功能。

参考文献

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

[2]徐飞,施晓红.MATLAB应用图象处理[M].西安:西安电子科技大学出版社,2002.

[3]姚敏.数字图像处理[M].北京:机械工业出版社,2006.

MatlabGUI 篇5

1 图形用户界面设计简介

图形用户界面是由窗口、光标、按键、菜单、文字说明等对象(Objects)构成的一个用户界面,用户通过一定的方法(如鼠标或键盘)选择激活这些图形对象,使计算机产生某种动作或变化,如实现计算或绘图等。MATLAB的GUI编程可以用两种方式实现。一是GUI设计工具GUIDE,它的优点是非常容易入手,风格很像VB,相关控件可以随意拖动,GUI设计简单、省时,但GUIDE的一个严重缺点是无法直接创建核心对象;二是利用M函数构建GUI,即M文件界面设计,这种方法需要解决数据传递问题,如何正确实现回调函数中用户菜单或控件的句柄传送是M文件成功创建GUI的关键。事实上,不管采用哪种设计方法,事先都要分析界面所要求实现的主要功能,明确设计任务,并站在使用者的角度审查界面功能及界面的控件布局,然后进行代码编写,对功能进行逐项检查,调整完善界面功能。图形用户界面设计的一个基本原则要求具有简单性,即设计界面时应力求简洁、清晰地体现出界面的功能和特征,为此要尽量使用用户所熟悉的标志和符号,尽量删去可有可无的功能,尽量多采用图形结果,尽量减少窗口数目,力避在不同窗口之间进行来回切换。

2 实例仿真及分析

非线性方程的迭代解法求根是数值分析课程的一个重要内容,初始迭代点及迭代函数的正确选取是求根的关键,为了使学生对迭代法求根有清醒的认识,下面以非线性方程迭代法求根的GUI实现说明MATLAB GUI对数值分析课程的辅助教学功能。

不动点迭代法求根中需要选取迭代公式,确定迭代初始点、精度,不动点迭代法求根的界面如图1。

界面中设置了五个edit控件,分别用于输入方程f(x)、迭代公式、迭代初始点x0、精度tol和最大迭代次数;四个Push Button控件,分别用于绘图、求解、重设参数和退出界面;一个axes控件,用于显示函数f(x)的图像;为体现设计的简洁性,界面中只设置一个Listbox控件,所有的结果都将在Listbox控件中显示,这样设计使界面更加合理化。系统能输入任意的方程,通过huatu_pushbutton3控件得到其图像,很容易判断该方程在零点的大致位置,即迭代初始点x0。输入方程后,单击画图控件,可以得到函数f(x)的图像,并显示在界面中。用编制好的GUI演示求解程f(x)=x3-x-1=0在x0=1.5附近的根x*,并用两种迭代公式求根,迭代公式分别为

选取迭代公式,初始点x0=1.5,精度tol=0.000001,最大迭代次数N=20,左键单击不动点求解控件,得到求根运行界面,如图2。在运行界面中得到运行结果,并且在函数图像中标出了通过运行得到的方程的根。

选取迭代公式x=x3-1,初始点x0=1.5,精度tol=0.000001,最大迭代次数N=50的运行界面,左键单击不动点求解控件,得到如图3的求根界面。图2,图3分别为同一方程取不同迭代函数求根的运行界面,由此可以让学生直观的看出不动点迭代法求根在选取不同迭代函数时,得到的收敛效果不同,直观的体现了迭代函数的重要性。

用Newton法来求方程f(x)=x3-x-1=0在x0=1.5附近的根,精度tol=0.000001,最大迭代次数N=20。编制的GUI演示结果可以让学生感受到Newton法求根的收敛速度比不动点迭代法求根的收敛速度快。

学生通过以上非线性方程求根的GUI,很容易体会到不动点迭代求根选取迭代函数的重要性及不动点迭代与Newton法求方程根的区别。同时设计的GUI具有开放性,可以让学生课后添加控件与代码,实现GUI更多的功能,这样不仅能够提高学生对数值算法的理解,而且极大提高学生学习数值分析课程的兴趣及编程解决实际问题的能力。

3 结束语

将MATLAB GUI与数值分析课程结合起来,教师可以现场演示数值方法,开阔了学生学习数值分析课程的思路。若针对数值分析课程的所有教学重点内容编制一个辅助教学仿真软件,这对于数值分析课程的可视化教学、学生的数值实验更有意义。

参考文献

[1]张志涌.精通MATLAB[M].北京:北京航空航天大学出版社,2000.

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

[3]尚涛,石端伟,安宁,等.工程计算可视化与MATLAB实现[M].武汉:武汉大学出版社,2002.

[4]李庆杨,王能超,易大义.数值分析(第四版)[M].武汉:华中科技大学出版社,2006..

MatlabGUI 篇6

当前阶段, 物品存储区域内的温湿度参数监测受到了越来越多的关注。通过在区域内合理布置多个温湿度传感器, 源数据归总到控制器端。监控平台可以完成实时显示、越限报警、参数配置、趋势分析等操作, 易于构成分布式监测系统, 实现对温湿度值的全天候、不间断实时监测。而且系统结构易于扩展、集成, 能够和异构系统实现互联互通, 为构建高效、实时的综合监测平台奠定技术基础。

二、系统整体方案设计

本设计采用MSP430F149 单片机作为下位机的系统核心, 统一协调和控制所属的传感器群, 完成基础源数据的预处理、滤波操作, 并且实现与上位机的交互;上位机平台上开发监控程序, 主要是通过Matlab GUI设计图形化的监测画面, 包括了通信接口配置、数字化实时显示、历史趋势图形化显示、报表保存、越限报警等功能;而Modbus协议用来实现上位机和下位机之间的配置命令字和过程数据的传输, 从而满足工业现场对于标准化监控系统的需求。

三、上位机监控平台设计

为了提高该系统的人机交互能力以及外部扩展功能, 在系统中开发了监控节点, 作为上位机实现可视化操作。而且, 与下位机的数据通信采用标准的Modbus协议, 易于顺利集成其他类型设备[1]。

1.Matlab GUI概述。为了充分发挥Matlab平台高效的数据分析和运算处理能力, 在其上开发GUI程序, 易于数据归纳处理的实现。利用Matlab GUI可快速开发适合用户使用的监控平台。

2. 监控界面设计。Matlab GUI程序主要通过三个阶段来实现对监测系统的操作。第一阶段是对控制参数进行设置阶段, 第二阶段为下位机数据信号的采集阶段, 第三阶段为指令的执行和曲线绘制阶段。除此之外, GUI还具有相应的文件处理和报警功能。

系统的界面设计应遵循清楚直观, 布局合理, 方便用户操作等原则, GUI界面包括以下四个模块:

参数配置:主要对通信接口参数进行配置, 同时也可对所监测参数的高低限值进行配置;

实时数据显示:可实现对重要参数的实时趋势显示以及动态更新;

历史趋势:可调用历史数据进行趋势分析;

越限报警:通过配置高低限值, 可对异常情形进行报警处理。

3. 例外报告设计。作为现场实际应用中非常重要的一环, 数据采集部分需要具备很好的实时性, 本系统中采用了例外报告的方式节省网络带宽[2]。该方案的总体设计思路为, 只有当采集数据信号出现明显变化时, 才将相关数据传送到上位机平台, 从而可以在保证不丢失有用信息的情况下, 大大减少数据传送量, 避免了网络风暴的产生。

例外报告值由用户根据现场实际需求在上位机平台上设定, 并且传送到下位机中, 这样, 当下位机传送过程数据时, 会将当前值的变化幅度与例外报告值进行比对, 具体执行流程如图所示。

4. 实际运行效果展现。该系统配备一台上位机和一台下位机, 并且连接两个DHT11 传感器的情况下, 实际运行效果如图1 所示。

四、结束语

该系统在实验室阶段的连续拷机测试中表现出了比较令人满意的实时性和可靠性能, 运行稳定, 数据采集精度较高, 监控平台运行功能正常, 曲线和趋势能够反应真实情况, 基本达到预期的设计目标, 有较高的推广价值。后期可以在GUI程序中附加OPC接口, 易于通过通用、标准的协议集成到大系统中去, 在中央控制器的协调下, 实现跨区域、大范围的综合监测。该系统不仅能够有效提升监测技术的基础自动化水平, 而且在数字化监控系统的实施领域具备综合集成的能力, 为构建 (超) 大型监测系统做好了技术储备工作。

摘要:为了确保存储区域内保持合适的参数水平, 设计了基于Modbus协议的温湿度实时监测系统。该系统下位机采用MSP430F149单片机, 协调和控制所属的传感器群。在上位机平台开发监控程序, 通过Matlab GUI设计图形化的监测画面, 借助Modbus协议实现与下位机之间的配置命令字和过程数据的传输, 从而满足工业现场对于标准化监控系统的需求。系统联合运行结果表明, 该系统用于实时监测存储环境内的温湿度参数是可行的和有效的。

关键词:温湿度,Matlab GUI,Modbus协议

参考文献

[1]职燕, 蒋存波, 徐健.Modbus通信协:在现场总线控制系统中的应用[J].兰州大学学报:自然科学版, 2010, 46 (9) :205-208.

MatlabGUI 篇7

“雷达收发原理”是我院雷达类专业的一门核心课程, 该课程包含的知识点繁多、概念与原理较抽象, 如何使学生直观、感性地理解并掌握课程相关知识点的物理概念是本课程教学中亟待解决的核心问题。经过近几年在教学内容、教学方法与效果评价等方面的探索改革, 该课程已逐步形成理实一体交融的教学理念[1]。其中, 基于自研的雷达收发实验箱和实验台开展的硬件实验大大激发了学员的学习兴趣。但是, 针对新体制雷达收发系统中的重要组成部分———阵列天线, 由于受到无法购置实际装备、实验场地等条件的限制, 缺乏有效的教学演示手段。

本文基于MATLAB GUI仿真技术[2]开发了“雷达阵列天线方向特性”仿真平台, 该平台既可以辅助教员理论授课, 也可为学员提供课后实验平台, 提高了理论教学和实践教学的效率, 进一步加强学员对雷达收发系统的感性认识。

二、MATLAB GUI仿真技术

MATLAB是Math Works公司出品的商业数学软件, 具有强大的计算和绘图功能, 特别是采用GUI (Graphical User Interfaces, 图形用户界面) 编程方式, 可以制作能反复使用、操作简单且效果形象的仿真系统。图形用户界面是由窗口、光标、按键、菜单、文字说明等对象 (Objects) 构成的一个用户界面。用户通过一定的方法 (如鼠标或键盘) 选择、激活这些图形对象, 使计算机产生某种动作或变化, 比如实现计算、绘图等。所以, MATLAB GUI仿真技术特别适合课程教学虚拟平台的高效设计与开发。

三、教学仿真平台

仿真平台的目的就是充分利用计算机运算速度快及可视化的特点, 将教学内容中比较抽象、学员难以理解的重、难知识点, 用形象直观的方式展示出来, 辅助课堂教学, 提高授课质量。

1、仿真内容的选取

根据近几年的教学经验及对教学内容的综合分析, 在仿真平台内容的选取上, 主要包括:直线阵与矩形阵两种典型雷达阵列天线的方向特性。围绕以上内容, 展开相应仿真界面的设计开发。

2、Matlab GUI应用开发

“雷达阵列天线方向特性”教学仿真平台采用了用户与程序通过界面进行交互的模式, 根据用户的输入, 及时准确地向用户呈现结果以供学习, 并可重复使用。整个系统由“阵列天线选择”主界面和仿真演示子界面组成。其中, “阵列天线选择”主界面完成雷达阵列天线阵形的选择;仿真演示子界面包含直线阵与矩形阵方向特性分析界面, 如图1所示。整个仿真平台的操作主要通过图形控件完成, 仿真结果能够实时动态地进行显示, 参数对结果的影响一目了然。

为了使整个系统样式规范、操作简便, 仿真系统的界面布局统一设置为:左上侧是阵列天线参数设置区, 同时设置两个按键完成基本的性能参数计算和单次显示功能;左下侧给出程序源代码;右侧为计算结果显示区;右下侧设置重要参数的连续可调滑动条。

四、课程应用探讨

采用“雷达阵列天线方向特性”仿真平台势必对课堂教学和学生自学具有较好的辅助作用。

1) “雷达阵列天线方向特性”仿真系统的开发, 将理论授课和仿真演示结合起来, 有利于学员对知识的理解、消化。

2) 仿真系统开放了相应程序的源代码, 并对其进行难点注释, 鼓励学员利用MATLAB编程, 为自主性实验的展开奠定了基础。

3) 基于MATLAB的仿真系统使用方便、扩展性强, 避免了搭建雷达阵列天线硬件实验系统带来的成本高与场地限制等不足。

五、结语

本文围绕“雷达收发原理”课程的重要知识点———阵列天线, 开发了一套课程仿真平台。该平台的仿真内容设计合理, 操作界面友好, 有利于使抽象的理论知识形象化, 提高课堂教学的质量, 激发学员的学习兴趣。同时也为学生的课后复习和实验提供了良好的平台, 对该课程的教学是一个十分有益的补充。

摘要:为加深学员对雷达收发系统中阵列天线方向特性原理的理解, 利用MATLAB GUI编程方法设计、开发了相应的仿真平台。此平台层次清晰、可以动态仿真雷达阵列天线的方向图。实践表明, 该仿真平台有利于改善课堂教学效果, 激发学员的学习兴趣, 也为学员课后的自学提供了良好的平台。

关键词:MATLAB GUI,雷达阵列天线,仿真平台

参考文献

[1]汪枫, 刘润华, 张荣华.雷达收发原理课程教学改革研究[J].空军预警学院学报, 2013, 05:384-385.

【MatlabGUI】推荐阅读:

上一篇:担保公司会计核算下一篇:中医治疗干眼症

本站热搜

    相关推荐