基于MATLABGUI的信号与系统分析软件开发-_第1页
基于MATLABGUI的信号与系统分析软件开发-_第2页
基于MATLABGUI的信号与系统分析软件开发-_第3页
基于MATLABGUI的信号与系统分析软件开发-_第4页
基于MATLABGUI的信号与系统分析软件开发-_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、工业控制计算机2011年第24卷第3期摘要借助MATLAB的信号处理工具和GUI图形用户界面功能设计并开发了一款信号与系统分析软件。软件平台包括了连续信号与系统的时域分析方法和变换域分析方法,以及离散时间信号与系统的时域分析方法和Z域分析方法等信号与系统中的主要内容。该软件可以帮助学生完成复杂的数学运算,使得复杂抽象的理论变得简单直观。关键词:信号与系统,分析,MATLAB,图形用户界面(GUIAbstractA set of software for signals and systems analysis is designed through the use of signal proc

2、essing tool and graphi-cal user interface in MATLAB.This software includes the main contents of signals and systems analysis,such as time do-main analysis and transform domain analysis for continuous signals and systems,time domain analysis and Z-domain anal-ysis for discrete time signals and system

3、s,etc.The software can help the student complete complex calculation in mathe-matics,and make the complex and abstract theory simple and direct.Keywords:signals and systems,analysis,MATLAB,Graphical User Interface(GUI本文利用MATLAB的GUI工具箱开发设计出了一款信号与系统分析软件,该软件可以作为辅助教学工具以提高教学效率,帮助学生更好地理解课程中的重难点,提高学生的综合能力。

4、1软件的总体设计信号与系统分析软件平台基于MATLAB GUI进行设计,主要是为了依托MATLAB环境提供的基本科学计算,减少开发周期,更为重要的是MATLAB开发环境提供了创建用户界面的捷径(GUIDE,有Windows基本控件的支持,并且有良好事件的驱动机制,同时提供MATLAB数学库的接口,还可以方便地创建各种图形句柄对象,实现仿真平台的用户界面。GUIDE可以根据用户GUI的版面设计过程直接自动生成M文件框架,这样就简化了GUI应用程序的创建工作,用户可以直接使用这个框架来编写自己的函数代码。本软件的模块结构如图1所示,界面布局设计采用自顶向下的设计方法,即先设计主界面,再设计各个子界

5、面。界面的模块主要是根据信号与系统分析的内容结构来进行划分,各模块所包含的主要内容虽不能涵盖每个知识点,但是包含了其中的大部分重难点,并且在人机界面中进行了可视化实现。2软件包的GUI界面设计各界面的设计主要采用了静态文本框、列表框、可编辑文本框、触控按钮、面板和坐标轴等控件来实现一些功能。各个控件的功能通过编写其相应的回调函数来实现。2.1软件主界面主界面是软件开始运行时的主要界面,也是进入信号与系统分析的各个子界面的接口,主要分为信号分析和系统分析两部分内容,如图2所示。以信号分析的列表框为例,双击列表中的任意一项即可跳转到相应的子界面中,其callback函数为: function li

6、stbox1_Callback(hObject,eventdata,handlesif isequal(get(gcf,'SelectionType','open'%判断是否为双击str=get(hObject,'string'n=get(hObject,'value'close(gcf%关闭当前图形窗口switch ncase1figure(lxxhsy%打开连续信号时域分析界面case5figure(lsxhzy%打开离散信号Z域分析界面endend2.2软件子界面信号与系统在各子模块中的内容和分析过程虽有不同,但其设计思想基

7、本类似,下面以连续信号的时域分析为例进行介绍。信号的时域特性指的是信号在时域中的波形以及信号的时域运算和变换等。如图3所示界面,主要包括两部分:一部分为一些基本信号,如正弦信号、阶跃信号、斜坡信号、抽样信号等等,通过双击列表框中的各个条目,相应的波形会在可视的图形窗口中画出;另一部分是信号的常用变换,变换中需要设置的一些参数可以在相应的变换按钮旁边的edit文本框中设置,程序中为其设置了默认参数,当这些参数为空或进行变换的信号为空时系统会弹出错误对话框。基于MATLAB GUI的信号与系统分析软件开发李念念张红梅(武汉大学动力与机械学院自动化系,湖北武汉430072Software Desig

8、n for Signals and Systems Analysis Based on MATLAB 图1软件模块结构19基于MATLAB GUI 的信号与系统分析软件开发 图3连续信号的时域特性图4所示界面中,主要是信号的时域运算,其中最重要的内容就是信号的卷积运算,它可用来求解连续系统的零状态响应。卷积的回调函数如下:function juanji_Callback(hObject,eventdata,handlesval1=get(handles.f1,'string'val2=get(handles.f2,'string'val3=get(handles

9、.t1,'string'val4=get(handles.t2,'string'if isempty(val1|isempty(val2|isempty(val3|isempty(val4errordlg('请检查f1、f2及对应的t1、t2输入是否有空值!'elset1=str2num(val3;t2=str2num(val4;y1=eval(val1;y2=eval(val2;T=t1(2-t1(1;y=T觹conv(y1,y2;t0=t1(1+t2(1;tw=t0+T觹0:length(y1+length(y2-2;plot(tw,ytit

10、le('f1与f2的卷积'在图4界面的右下角设有一些功能按钮,界面说明按钮主要用于向用户介绍该界面能够实现的功能,以及使用过程中需要注意的地方等;清除按钮用于清除当前图形显示窗口中所显示的图形,以免在图形切换显示时互相穿插混淆;保存按钮用于将当前运算所显示的结果单独保存,以便用户在不同条件下对照比较;返回按钮则用来返回软件的主界面,从而将各个模块有机地连成一个整体。3实现中的关键点3.1GUI 数据机制GUI 的数据采用3种机制,即GUI 数据、Application 数据和UserData 属性。1GUI 数据,主要用于GUI 界面内部的数据传递。handles 是整个GUI

11、 界面的代号,可以通过它获取某个界面的所有信息。handles 结构体主要有两个用途:访问GUI 数据。由于handles 结构体作为输入参数传递进了每个回调函数中,而handles 结构体包含了GUI 对象的Tag 值和句柄的信息,所以每个回调函数都可通过handles 获取或修改任何GUI 对象的数据。在回调函数之间共享数据。在GUI 中,要使一个变量成为全局变量,一个有效的办法就是将其存在handles 结构体中。2Application 数据和UserData 属性,一般用于GUI 界面之间的数据传递。Application 数据保存在GUI 对象的一个未公开属性内,即Applicat

12、ionData 属性,通常选择figure 对象作为Application 数据的保存对象。UserData 为GUI 对象公开的属性,用于存储用户定义的数据,可以为任何数据类型。3.2edit 控件中的输入处理1在GUI 中的edit 控件中输入时,默认的数据类型是string 类型,有时需利用str2double(,str2num(,str2mat(等函数将输入转换为所需数据类型。以信号时域变换中时移系数的输入为例,程序部分代码如下:str=get(hObject,'string'%获取属性值val=str2double(str;%数据类型转换if isnan(val%判断

13、输入是否为数字errordlg ('You must input a number ','Wrong Input','modal'%modal 为生成窗口类型end2当需要对表达式作加减乘除等运算时,需要用eval(函数先执行表达式得到相应的值再进行相应运算。3如果功能函数是符号函数,可直接利用函数名对string 值进行操作,例如求信号的微分时的代码:str=get(handles.edit1,'string'd=diff(str,'t'%求微分ezplot(d%作图3.3图形的保存与显示在进行信号与系统分析时,

14、有时候需要将结果保存,通过copyobj 函数将axes 对象复制到一个新的figure 中,然后在新的figure 里面用saveas 函数将图像保存。部分代码如下:filename pathname=uiputfile (邀'觹.jpg''觹.bmp''觹.觹'妖,'untitled.jpg'%设置储存路径和文件名newfig=figure('visible','off'newaxes=copyobj(handles.axes1,newfig;set(newaxes,'unit'

15、,'default','position','default'%改变图象的大小if觸isequal(filename pathname,00%判断图象是否存图2软件主界面图4连续信号的时域运算20工业控制计算机2011年第24卷第3期(上接第18页4进行侦听:使用listen(侦听端口,看看是否有客户端来连接。1创建新的字节流套接字:使用socket(函数;2注册网络异步事件:使用WSAAsyncSelect(函数来设置异步事件通知模型,以便当网络事件(连接服务器成功、对方发来数据、本方可发送、对方关闭连接产生时,通知二级系统应用程序;3连接服务

16、器:使用connect(函数来连接指定IP地址、端口的服务器。当网络事件发生时,网络异步事件处理函数将被调用,二级系统可在函数中根据需要处理这些网络事件。如网络事件为“套接字接受”,则使用accept(函数来接受连接。需要关注的是:accept(函数返回值为一新的套接字,可用来在服务端和对方客户端之间的收发信息,而原来套接字仍然可以接收其他客户端的连接要求。如网络事件为“对方发来数据”,则使用recv(函数来接收电文,并根据电文类型作相应的处理。如网络事件为“本方可发送”,则通知发送线程使用send(函数来发送电文队列中的电文。如网络事件为“对方关闭连接”,则使用close(函数来关闭与对方的

17、连接。5结束语综上所述,二级系统的通讯主要有三种方式:1OPC通讯方式。这是二级系统与一级系统通讯通常采用的方式;2Socket通讯方式。这是二级系统与其它系统通讯经常采用的方式;3数据库通讯方式。这是二级系统与其它系统通讯可以采用的方式。适合系统实时性要求不高的场合。本文针对前两种通讯方式的设计与实现作了描述,由于篇幅的关系,未作更详细的说明。本文虽然以钢铁企业二级系统为例,但通讯的设计和实现方法可以应用到不同领域的计算机系统。参考文献1张俊彪,王鸿辉,何长安.基于OPC Server的PC与S7-300/400的通信J.电力自动化设备,2007,27(4:83-862史丽萍,赵朝阳,胡泳军

18、.基于PLC和OPC技术的信息集成的研究和应用J.继电器,2006,34(8:67-69,833周家骐.基于Winsock的网络应用程序设计J.可编程控制器与工厂自动化(PLC FA,2007,2007(9:64-66,484雒海东.基于TCP/TP协议下的网络通信的应用开发J.青海电力,2007,26(3:60-635任德祥.钢铁工业自动化技术的应用与发展J.电气时代,2006,2006(10:52-56储成功filefullname=pathname filename;saveas(gca,filefullname,'jpg'%保存图像endclose(newfig;%关闭

19、新fig在离散信号的时域分析界面中需要显示一幅图片,该图片在界面生成时已经存在。故需要在该界面的OpeningFcn函数中加入以下代码:I=imread('xinhaotu.bmp','bmp'%读取图片axes(handles.axes3%选择图片显示区域的句柄image(I;%显示图片axis off%去掉坐标轴的轴线3.4转变成独立运行的exe文件想要将建成的GUI界面转变成exe文件,从而脱离MAT-LAB环境独立运行,可以借助MATLAB中的mcc编译功能来实现。首先要安装和配置好Matlab Compiler,在确定安装好Matlab Compile

20、r后,还需要对Compiler进行适当配置,在MATLAB命令窗口输入:>>mbuild-setup然后根据提示执行相应的操作,选择MATLAB自带的编译器LCC。将M文件编译为独立可执行文件的语法是:>>mcc-m fun1.m fun2.m其中fun1是最后的可执行文件名称。也可通过采用命令开关-o指定编译最终目标文件的名称。编译成功后,在原路径下会生成相应的exe文件,点击可直接运行。若要在没有安装MATLAB的计算机上执行编译后的程序还需进行以下设置。首先,要将MATLABR2010btoolboxcom-pilerdeploywin32中的MCRinstaller

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论