(Sci&Tech) 2005年7月 JournalofShandongUniversityofTechnologyJul.2005
文章编号:1672-6197(2005)04-0092-04
LabVIEW中MATLAB的调用
徐 明1,于业明2
(1.胜利石油管理局直属机关党委山东东营257062;2.烟台中世天然气公司,山东烟台264000)
摘 要:在LabVIEW中通过MATLABScript节点调用MATLAB,可以补充LabVIEW的开发功能.结合多功能绘图、调用MATLAB小波包工具箱中的WDEN()函数对含白噪声的正弦信号进行消噪处理的实例介绍了在LabVIEW中调用MATLAB的实现过程.关键词:LabVIEW;MATLABScript中图分类号:TP31文献标识码:A
UsingMATLABinLabVIEW
XUMing1,YUYe2ming2
(1.CentralPartyCommitteeofShengeiOilFieldAdministrationBureaucracy,Dongying257062,China;
2.yantaiZhongshiNaturalgascorporation,Yantai264000,China)
Abstract:IfwemakeLabVIEWcombinedwithMATLABbyuseofMATLABScriptmode,thedesigncapabilityofdevelopingwillbeimprovedgreatly.ThispaperintroducestheprocessofhowtouseMATLABinLabVIEWwithtwoexamples,suchascomplexplotanddenoisethesinesig2nalmixedwithwhitenoisebyusingWDEN()functioninWaveletToolboxofMATLAB.Keywords:LabVIEW;MATLABScript
1 LabVIEW与MATLAB简介
1.1 LabVIEW
LabVIEW(LaboratoryVirtualInstrumentEngineeringWorkbench,实验室虚拟仪器工程平台)是由美国NI公司(NationalInstruments,国家仪器公司)创立的一个功能强大而又灵活的仪器和分析软件
应用开发工具,在实验测量、工业自动化和数据分析领域有着重要作用.它是直观的前面板与流程图式的编程方法的结合,是构建虚拟仪器的理想工具.LabVIEW具有以下特点[1]:
1)图形化的仪器编程环境:它使用“所见即所得”的可视化技术建立人机界面,针对测试、测量以及
收稿日期:20050219
作者简介:徐 明(1971),男,政工师
第4期 徐 明:LabVIEW中MATLAB的调用93
过程控制等领域.LabVIEW提供了面板上所必需的许多显示和控制对象,如旋钮、表头、图表等.用户还可以方便地将现有控制对象改成适合自己需要的控制对象.
2)内置的程序编译器:LabVIEW采用编译方式运行32位应用程序,解决了其他按解释方式工作的图形编程平台速度慢的问题,其速度大体相当于编译C的速度[2].
3)灵活的程序调试手段:用户可以在源代码中设置断点,单步执行源代码,在源代码的数据流上设置探针,在程序运行中观察数据流的变化.
4)功能强大的函数库:LabVIEW提供了大量现成函数供用户直接调用,从底层VXI、GPIB、串口及数据采集板的控制子程序到大量的仪器驱动程序,从基本的功能函数到高级分析库、涵盖了仪器设计中几乎所需要的函数.
5)支持多种系统平台:LabVIEW支持多种系统平台,在WindowsNT/95/3.1、PowerMacintosh、HP、SUNSPARC等系统平台上,NI公司都提供了相应版本的软件,并且平台之间开发的应用程序可直接进行移值.
6)开放式的开发平台:LabVIEW提供了DLL接口和CIN接口,使用户在LabVIEW平台上能调用其他软件平台编译的模块,提供对OLE的支持.
7)网络功能:LabVIEW支持TCP/IP、DDE、IAC等功能.1.2 MATLAB
MATLAB(MATrixLABoratory,矩阵实验室)是由美国MathWorks公司开发的一种功能强、效率高、简单易学的数学软件.覆盖面包括控制、通讯、金融、图像处理、建筑、生物学等几乎所有的行业与科学领域.所用到的技术除了经典的一些算法(如傅里叶变换等),还包括目前时兴的神经网络、小波分析、模糊系统、混沌理论等.此外,MATLAB语言是基于矩阵运算的语言,其函数库包含了比较齐全的矩阵生成与运算的函数,因此编程简单.它一重要特点是拥有众多的专用工具箱,如控制系统、模糊逻辑、神经网络、信号与系统、小波分析等.这些工具箱由各个领域的专家设计,功能强大,使用方便,能大大简化求解的问题,它在科技应用软件中备受瞩目.因为它有可靠的数值计算和符号计算功能、强大的绘图功能、简单易学的语言体系以及为数众多的应用工具箱,因此把LabVIEW软件平台与MATLAB相结合使用,无疑将使虚拟仪器的数据处理功能更加强大.
2 MATLAB调用的实现
2.1 调用过程的实现
LabVIEW使用ActiveX技术来实现MATLAB脚本节点.ActiveX是由Microsoft公司定义的用于Internet的一种对象链接与嵌入技术,它满足了网络上不同应用程序间交换信息的需求.
LabVIEW中提供了各种与其它应用程序进行相互调用的方法,如ActiveX,DDE等事实上的标准
接口方式.虽然可以通过这些方式实现在LabVIEW中调用MATLAB,但是过程相对繁琐.NI公司为此提供了一种相对容易的方式,即MATLABScript节点方式.通过这种方式,用户可以在LabVIEW中使用MATLAB强大的数值运算功能.这种方式是LabVIEW开发组推荐使用的方式.
MATLABScript节点使得用户及可以将MATLAB程序导入到流程图中,又可以在流程图中根据MATLAB程序的语法编辑MATLAB程序.选择该节点的操作为:Functions>>Mathematics>>For2mulaPalette,即从框图窗口Function选项板的Mathematics/Formula子选项板上访问MATLAB脚本节点,在将该节点添加到流程图中后,选择对应的脚本服务器.此处选择MATLABScript.从选择菜单中可以看出与其有关的菜单项.通过这些菜单可以将MATLAB程序导入到该节点并且可以给节点增加输入输出变量.添加节点后就可以按照MATLAB的语法要求在节点中编写MATLAB程序,完成后通过单击Export将程序保存到选定的目录中.如果实现已经将MATLAB程序编好,则可以直接将起导入到节点中,可以通过单击Import完成导入.还可以对节点增加输入、输出变量,这些变量在程序运行时,
94山东理工大学学报(自然科学版)2005年
起到在LabVIEW和MATLAB间传递参数的作用.MATLAB脚本节点与与它外部LabVIEW框图程序靠脚本节点的输入输出来连接.可以在脚本节点的快捷菜单中选择AddInput/AddOutput添加输入输出.2.2 注意事项
在LabVIEW中调用MATLAB时有几点必须注意[3]:
1)LabVIEW使用ActiveX技术来实现MATLAB脚本节点,因此MATLAB脚本节点只能用于Windows平台上.
2)MATLABScript节点方式要求计算机上必须安装MATLAB5.0及以上版本,因为执行脚本节点时要调用MATLAB脚本服务器.
3)因为LabVIEW和MATLAB是两种不同的编程语言,有各自的数据类型定义,所以结合应用时必须注意MATLAB脚本节点内外数据类型的匹配,否则LabVIEW运行时将产生错误或错误的信息.可以为解脚本点的输入输出端子从其快捷菜单上ChooseDataType中选择合适的数据类型[4].
3 MATLAB调用举例3.1 多功能绘图
在LabVIEW的Controls选项板的子Graph选项板下面有几个图形函数.常用的只有三个,它们可以显示均匀采样波形(WaveformChart、WaveformGraph)和多值函数曲线(XYGraph).LabVIEW也可以绘制三维复杂的图形,但过程就要复杂些,且图形显示也不是很好看.MATLAB强大的绘图功能可以给LabVIEW图形显示方面很好的支持和补充.MATLAB不仅提供了通用的绘图功能,而且还提供了特殊的绘图方法.在MATLAB只需调用一个函数就可以轻松绘出漂亮的二维、三维曲线和复杂的空间曲面,还可以方便的实现窗口分割以及同窗口多条曲线的绘制.一个在LabVIEW中调用MATLAB完成漂亮绘图的示例如图1所示.
图1在Lab2VIEW中调用MATLAB绘制的图形
如图1(b)所示,框力中MATLABScript中添加的代码为:1)极坐标曲线如(图1(b)-1所示):x=0:0.013pi:43pi;y=sin(x/2)+x;subplot(2,2,1);polar(x,y,π-π);
第4期 徐 明:LabVIEW中MATLAB的调用95
title(πPOLARπ,πFontSizeπ,12,πFontWeightπ,πboldπ,πFontNameπ,π隶书π);2)柱状图(图1(b)-2所示):
x=1:10;y=rand(10,1);
subplot(2,2,2);
bar(x,y);title(πBARπ,πFontSizeπ,12,πFontWeightπ,πboldπ,πFontNameπ,π隶书π);axis([0,11,0,1]);3)螺旋线(图1(b)-3所示):
x=0:pi/50:103pi;y=sin(x);z=cos(x);
subplot(2,2,3);
plot3(x,y,z);title(πHElIXπ,πFontSizeπ,12,πFontWeightπ,πboldπ,πFontNameπ,π隶书π);4)空间曲面(图1(b)-4所示):subplot(2,2,4);peaks(50);
title(πPEAKSπ,πFontSizeπ,12,πFontWeightπ,πboldπ,πFontNameπ,π隶书π);3.2 小波消噪
小波变换在信号消噪中的思想与傅里叶变换滤波的思想相似,只不过傅里叶变换的数字滤波是等步长频谱滤波,而小波变换消噪则是二等分频谱滤波,只有进行小波包分解才能实现等步长频谱滤波.MAT2LAB小波包工具箱(WaveletToolbox)提供了许多小波分析功能函数,包括消波分析中的通用函数、小波函数、一维小波变换、二维小波变换、小波包算法以及在信号和图像的消噪与压缩、树操作应用函数、数据I/O函数等.下面是一个调用MATLAB小波包工具箱(WaveletToolbox)中的WDEN()函数对含白噪声的正弦信号进行消噪处理的例子.
MATLABScript小波包工具箱中添加的代码:xd=wden(xx,πheursureπ,πsπ,πoneπ,x,πsym8π);效果如图2所示.
从图2中可以发现通过调用MATLAB工具箱中小波消噪函数对含白噪声的正弦信号进行处理后,可以恢复正弦信号.
4 结束语
通过以上两个具体的例子,可以了解到在LabVIEW中调用MATLAB的实现原理和实现过程.由于MATLAB具有强大的数
值分析和处理能力,还拥有众多的专业工具箱,因此在LabVIEW中调用MATLAB来解决问题的发展空间很大.参考文献:
[1]刘卫国、陈昭平.MATLAB程序设计与应用[M].北京:高等教育出版社.2002.[2]刘君华.基于LabVIEW的虚拟仪器设计与应用[M].北京:高等教育出版社.2002.[3]石博强.LabVIEW6.1编程技术实用教程[M].北京:中国铁道出版社,2002.
图2 小波消噪前后效果图
[4](美)RobertH.BishopLabVIEW6.1实用教程[M].乔瑞萍译.北京:电子工业出版社,2002.
因篇幅问题不能全部显示,请点此查看更多更全内容