MATLAB和LabVIEW混合编程及在控制系统中的应用
- 格式:pdf
- 大小:492.88 KB
- 文档页数:4
2009年10月第37卷第10期机床与液压
MACHINETOOL&HYDRAULICSOct12009Vol137No110
DOI:10.3969/j1issn11001-3881120091101066
收稿日期:2008-10-22基金项目:国家自然科学基金资助项目(50875001)作者简介:胡佑兰(1986—),女,湖北松滋人,硕士研究生,主要研究方向为机电控制。E-mail:wonderfulhyl@yahoo1com1cn。MATLAB和LabVIEW混合编程及在控制系统中的应用
胡佑兰,彭天好,朱刘英
(安徽理工大学机械工程学院,安徽淮南232001)
摘要:概述了MATLAB和LabVIEW两种编程语言的特点和四种混合编程的实现方法,结合典型控制系统实例,重点研究了使用MATLABScript节点进行混合编程的技术特点和设计方法,并与单独使用一种软件编程进行了对比分析。结果表明,MATLAB和LabVIEW混合编程综合了两者的特点和优势,在工程控制系统中具有广泛的应用前景。关键词:MATLAB;LabVIEW;混合编程;控制系统中图分类号:TP271;TP311 文献标识码:A 文章编号:1001-3881(2009)10-209-4
MixedProgrammingwithMATLAB&LabVIEWandItsApplicationinControlSystem
HUYoulan,PENGTianhao,ZHULiuying(SchoolofMechanicalEngineering,AnhuiUniversityofScienceandTechnology,HuainanAnhui232001,China)
Abstract:ThefeaturesofbothLabVIEW&MATLABprogramminglanguagesandfourmethodstoachievemixedprogrammingweresummarized.ThetechnicalcharacteristicsanddesignmethodsofusingMATLABscriptnodewerediscussedcombinedwithatyp2icalexampleofcontrolsystem,andthencomparedwiththeprogramsusingMATLABorLabVIEWalone.TheresultsshowthatMAT2LABandLabVIEWmixedprogrammingmakesfulluseoftheadvantagesofbothsoftwares,andthismethodhasagoodprospectofap2plicationsincontrolsystem.Keywords:MATLAB;LabVIEW;Mixedprogramming;Controlsystem
0 引言
对于任何一个控制系统,在系统设计和构成之
前,必须对系统进行分析、综合和预测研究,从而得
出系统的性能评价指标,如控制精度、响应速度和系
统稳定性等。控制系统仿真,就是以控制系统的模型
为基础,主要用数学模型代替实际的控制系统,以计
算机为工具,对控制系统进行实验研究,为控制系统
的分析、计算、研究、综合设计等提供快速、经济、
科学及有效的手段。在工程控制领域中,LabVIEW和MATLAB是倍受程序开发人员青睐的两种编程语
言。作者分析了LabVIEW与MATLAB混合编程及在
控制系统中的应用,通过两者的接口,将LabVIEW采集的数据或者前面板中用户自定义的初始值送到
MATLAB中进行相应的运算处理,最后再送达Lab2
VIEW进行输出或显示。LabVIEW与MATLAB混合编程,能充分发挥两者的优势,开发功能强大的智能化
虚拟仪器,在工程测试与控制应用中具有非常实用的
价值。
1 MATLAB和LabVIEW软件简介
MATLAB(MatrixLaboratory即“矩阵实验室”)
程序设计语言是美国Mathworks公司20世纪80年代中期推出的一套高性能的数值计算和可视化软件,它
集数值运算、矩阵运算信号处理和图形显示为一身,构成了一个方便的用户环境。MATLAB的控制工具
箱,已覆盖了控制系统的各个领域,每个工具箱都是
当今世界上控制领域里最顶尖、最优秀的计算与仿真
软件。MATLAB具有很强的语言扩充能力、强大的数
值运算和图形绘制功能、功能齐备的自动控制软件工
具包,可进行数学计算、数据与数字信号处理、自动
控制模拟、动态分析、2D/3D的绘图功能等[1]。
LabVIEW(LaboratoryVirtualInstrumentEngineer2
ingWorkbench即“实验室虚拟仪器集成环境”)是美
国NI公司推出的一种虚拟仪器软件开发平台,采用
编译型图形化编程语言—G语言,用户设计好程序框
架后,如同画流程图一般,只需将系统提供的各种图
形化功能模块连接起来,就可得到所需的应用软
件[2]。它除了具备常规函数功能外,内部还集成了大
量的生成图形界面的模板,如各种表头、旋钮、开
关、LED指示灯、图表等,以及对RS232、GPIB、
VXI、数据采集板卡和网络等多种硬件的设备驱动功
能,并免费提供数十家世界知名仪器厂商的几百种源
码级仪器驱动,
大大方便和简化了用户的设计开发工作[3]。可以通过配套的数据采集卡与实际系统连接来实现数据的实时采集、实时显示。LabVIEW以“软
件就是仪器”的思想,使得过去繁复的软件开发变得简单、方便,现在LabVIEW已经成功应用到虚拟
仪器设计与开发、数据采集与处理、自动测量与测试
等众多领域。
2 MATLAB和LabVIEW混合编程的方法实现
LabVIEW能够方便地编写友好的用户界面,对各个输入输出参数进行即时设置和调试,程序运行结
果直观,但它在数值处理、分析和算法工具等方面的效率不高。因此对于虚拟仪器中需要进行大型数据运
算处理的复杂应用,LabVIEW还是显得有些力不从
心。而MATLAB具有强大的数值运算功能、丰富的工具箱,但由于其不能直接实时操作和控制,能与之
图1 混合编程的参数调用直接通讯的硬件设备不多。所以将两者联合起
来,利用MATLAB与Lab2
VIEW各自的优势,进行混合编程可以达到很好的
效果。混合编程的参数调用过程如图1所示。
MATLAB与LabVIEW的混合编程一般有四种方法:ActiveX自动化技术、动态链接库(DLL)技术、动态数据交换(DDE)技术和MATLABScript节点方
法。下面概述这四种实现方法,并着重分析MATLAB
Script节点方法在混合编程中的实现过程。
ActiveX是由Microsoft公司开发的用于Internet的一种对象链接与嵌入技术,ActiveX的基础是组件对象模型COM。COM是跨越语言的操作系统级标准,它定义了对象之间的存取方法,不同的应用程序可以
各自开发出一系列公共对象,它们具有开放的属性和方法。互相调用时只需要载入对象所在的EXE或
DLL文件。LabVIEW和MATLAB都支持ActiveX的自动化技术。通过使用MATLAB自动化服务器功能,
LabVIEW将数据传入MATLAB工作空间,执行MAT2
LAB命令,再将结果输出,从而实现了LabVIEW与
MATLAB的混合编程。动态链接库(DLL)是基于Windows程序设计
的一个重要组成部分。DLL是一个位于应用程序外部的过程库,它可以从应用程序中调用,DLL是可
共享的,它的代码执行速度很快。因此可以通过
DLL实现LabVIEW与MATLAB之间的数据传输和函数调用。利用MATLAB和VC++生成相应的可以
被LabVIEW调用的DLL来提供它们之间的基本支撑环境。
动态数据交换(DDE)是Windows应用程序之间通讯的协议。利用DDE,客户程序和服务程序之间可以相互发送或接收命令及数据。在LabVIEW函数模板的userLibraries中的DDEVI可以将LabVIEW程序设置为DDE服务器程序或者DDE客户程序[4]。
从而实现对MATLAB程序数据的创建或者调用。
这些方法通过LabVIEW强大的外部接口调用
MATLAB工具箱,实现了对MATLAB的自动化控制,运行速度快,与MATLAB的兼容性好,但是过程相
对繁琐。常用的混合编程方法是使用MATLAB语言节点,即MATLABScript节点,它实际上是通过ActiveX控
件与MATLABServer进行通信的。这种方法容易实现,打开脚本的速度快,能够满足多输入多输出,一
次处理的信息量大,可以事先将MATLAB程序调试好,比较容易掌握,但是这种方法不能控制MATLAB服务器,当节点中的脚本执行完毕后,MATLAB也不
能自动关闭。所以这种方法虽然快捷方便,但不利于较大应用程序开发。然而这是NI公司提供的一种相
对容易的方式,也是LabVIEW开发组推荐使用的方
式。
在LabVIEW中调用MATLAB时必须注意以下几
点:(1)LabVIEW使用ActiveX技术来实现MATLAB脚本节点,因此MATLAB脚本节点只能用于Windows平台上;(2)MATLABScript节点方式要求计算机上必须安装MATLAB510及以上版本,因为执行脚本节点时要调用MATLAB脚本服务器;(3)LabVIEW和MATLAB是两种不同的编程语言,有各自的数据类型定义,结合应用时需注意
MATLAB脚本节点内外数据类型的匹配,否则Lab2
VIEW运行时将产生错误或错误的信息。下面给出在MATLAB615和LabVIEW815环境下
应用MATLABScript节点来实现MATLAB与Lab2
VIEW混合编程的具体步骤。第1步:运行LabVIEW815,单击“新建”区域
的VI,进入空白VI,进行程序设计。第2步:LabVIEW的每个程序就是一个VI,包
括前面板、框图程序和图标/连接端口三部分。可以
通过菜单栏的“窗口”菜单来切换显示前面板和框
图程序。在框图程序窗口菜单栏“查看”中单击
“函数选板”,MATLABScript节点位于:函数选板→数学→脚本与公式→脚本节点→MATLABScript节
点,如图2所示。MATLABScript节点可以实现多输
入多输出,在节点上单击,然后在出现的弹出式列表中选择“添加输入”或“添加输出”,可以根据程序
的需要来添加输入输出节点,实现多输入多输出。其节点形式如图3所示。・012・机床与液压第37卷