1
LabVIEW 与 Matlab 接口的方法 陈金平
LabVIEW 与 Matlab 接口的方法
The Method of Interfacing Between LabVIEW and Matlab
0 引言
虚拟仪器技术是计算机技术、现代测控技术和电子
仪器技术相互结合、渗透的产物。在虚拟仪器系统中 ,数
据的分析处理、控制、结果输出和用户界面等功能都由软
件完成 ,硬件仅仅是为了解决信号的输入输出 ,因此 ,软
件是整个仪器系统的核心 ,从某种意义上可以说 :“软件
即仪器”。虚拟仪器系统的软件设计可以采用通用的可
视化编程语言 ,如 Visual C + + 、Visual Basic 、Delphi 等 ,但
更为方便高效的还是专用的虚拟仪器软件开发平台 ,
如美国国家仪器公司 (National Instruments , NI) 的 Lab
VIEW、LabWindows/ CVI ,惠普公司的 VEE 等 ,而其中首
推 NI 公司的图形化编程语言 LabVIEW。
1 LabVIEW 的功能及特点
LabVIEW 是 NI 公司推出的一种虚拟仪器软件开
发平台 ,自 1986 年正式推出 ,经过短短不到 15 年的时
间 ,已经发展到以最新板本 LabVIEW6
1 为核心 ,包括
控制与仿真 、高级数字信号处理 、统计过程控制 、模糊
控制和 PID 控制等众多附加软件包 ,运行于 Windows
NT/ 98 、Linux、Macintosh、Sun 和 HP - UX 等多种平台的
工业标准软件开发环境 。
LabVIEW 在包括航空航天 、通信 、汽车 、半导体和
生物医学等众多领域内得到了广泛的应用 。其最大的
特色是采用编译型图形化编程语言 ———G语言( Graph
Pro gramming) ,即用户设计好程序的大体框架后 ,如同
画流程图一般 ,只需将系统提供的各种图形化功能模
块连接起来 ,就可得到所需的应用软件 。LabVIEW 中
的程序称为 VI (virtual instruments) ,每个 VI 都由前面
板和框图程序以及图标/ 连接端口三部分组成 。
除了具备其它编程语言所提供的常规函数功能
外 ,LabVIEW 内部还集成了大量的生成图形界面的模
板 ,如各种表头 、旋钮 、开关 、LED 指示灯 、图表等 ;丰富
实用的数值分析 、信号处理功能 ,如 FFT 变换 、各种滤
陈金平
(新疆大学 ,乌鲁木齐 830008)
波器 、信号发生器等 ;以及对 RS - 232 、GPIB 、VXI、数据
采集板卡 、网络等多种硬件的设备驱动功能 ,并免费提
供数十家世界知名仪器厂商的几百种源码级仪器驱
动 ,大大方便和简化了用户的设计开发工作 。Lab
VIEW 使得过去繁琐 、枯燥的软件开发变得简单 、方便 ,
尤其适合不熟悉传统文本编程语言(如 C、BASIC 等) 的
工程技术人员 ,被誉为工程师和科学家的语言 。
但是 ,在大型的系统测试和仿真过程中 ,需要软件
进行一些很复杂的数值计算时 ,LabVIEW 的图形化编
程语言就显得力不从心 ,Matlab 是一种常用的高效率
数学运算工具 ,它建立在向量 、数组和复数矩阵的基础
上 ,使用方便 ,将它和 LabVIEW 有机地结合起来会大
大减少编程的工作量 ,提高编程效率 。本文通过求解
一常微分方程初值问题的例子 ,介绍了两种编程语言
的接口方法 。
2 在 LabVIEW 中调用 Matlab 语言的方法
在测试系统设计和软件开发过程中 ,数学分析与
信号处理是两个不可缺少的重要内容 。LabVIEW 将数
据采集和测试分析中常用的数学和信号分析算法程序
集成在一起 ,提供了先进的数学和信号分析环境 ,所有
的数学分析节点都集中在 Mathematics 子模板中 。在此
模板中有一 Matlab Script 节点 ,利用此节点就可以实现
在 LabVIEW 中对 Matlab 语言的调用 。下面通过具体例
子介绍调用方法 。举例如下 :
用 Runge
Kutta 法计算下列微分方程的解 ( 初值问
题) :
y′= - 50 y + 50 x2 + 2 x , 0 ≤ x ≤1
y (0) = 1
2. 1 编制 M 文件
启动 Matlab6
0 ,利用其 M 文件编辑器编写 M 文件
如下 :
function y = ff 2 ( x , y)
y = - 50 ·y + 50 ·x ·x + 2 ·x ;
35
3
3
3
3
3
图 3 前面板
3 结论
在 LabVIEW 环境中调用 Matlab 语言简单可行 ,并
能够扩展 LabVIEW 功能 。该两种语言混合编程 ,一方
面可应用 LabVIEW 强大的 G 语言的编程方法 ,提高开
发数据采集 、工业控制等虚拟系统的效率 ;另一方面可
利用 Matlab 能够进行复杂数值计算的优势大大增强
LabVIEW 功效 ,特别适合大型复杂测控系统的开发 。
以上例子的 VI 程序在 LabVIEW 6
以及中文 Windows 98 环境中运行通过 。
参考文献
1 杨乐平 ,李海涛 ,肖相生. LabVIEW 程序设计与应用[ M] . 北京 :电
1 和 Matlab6
0 语言
子工业出版社 ,2001
2 王沫然. MATLAB6
0 与科学计算 [ M] . 北京 : 电子工业出版社 ,
2001
收稿日期 :2002 - 11 - 30 。
作者陈金平 ,男 ,1965 年生 ,2001 年毕业于东华大学 ,硕士 ,讲师 ;主
要研究领域 :测控技术 、软件工程 ,发表论文 7 篇 。
CZ3000 系列配电器 、隔离器 、
信号转换器系列产品
主要技术性能
20~35V ,d. c. 供电
电源 ,输入 、输出信号之间 1 500V 以上隔离
传输精度高 ,稳定性好 、温漂小
多种故障检测 ,输入 、输出短路保护
DIN35 导轨安装
上海辰竹仪表有限公司
地址 : 上海市漕宝路 103 号 邮编 : 200233
电话 :
http : ∥www. chenzha - inst. com
(021) 64360668 传真 :
(021) 64846984
《自动化仪表》第 25 卷第 3 期 2004 年 3 月
存盘退出 ,文件名为 ff 2
m ;路径为 Matlab 默认路径 (注
意 :若将 M 文件存在其他文件夹中 ,应将该路径添加
到 Matlab 环境中去) 。分别用 ode45 和 ode23 两个函数
求解 ,以比较两个函数求解过程的差异 。
2. 2 LabVIEW 编程
① 启 动 LabVIEW , 在 其 框 图 程 序 中 加 入 Matlab
Script 节点 ,在节点中输入以下内容 : [ x , y ] = ode 45 (′ff
2′,[ a , b] , c) ;
[ x1 , y1 ] = ode23 (′ff 2′,[ a , b] , c) ;
其中 :[ x , y ] , [ x1 , y1 ]分别为 ode 45 和 ode23 两个函数
计算结果 ; a 代表积分下限 ; b 代表积分上限 ; c 代表初
始条件 ,′ff 2′即为 ff 2
m 文件 。
② 在 Matlab Script 节点上增加 3 个输入端口并在
框图程序中增加 3 个数字量控制 : a →积分下限 ; b →
积分上限 ; c →初始条件。输入端口属性均为实数 。同
时增加 4 个输出端口 , x 、y 、x1 、y1 ,输出端口属性均为
实矩阵 ,如图 1 所示 。
图 1 Matlab Script 节点
以上是调用 Matlab 的关键步骤 ,特别是输入和输
出端口的属性一定要设置正确 ,它们由 ode 45 和 ode23
两函数格式中的参数性质所决定 。
③ 利用 LabVIEW 的数组 、For 循环和 XY 波形记
录控件将 ode 45 和 ode23 两函数的计算结果通过 4 个
输出端口显示出来 ,而这正是 LabVIEW 的强项 ,在此
不加详述 。其完整的框图程序如图 2 所示 ,其前面板
如图 3 所示 。
图 2 框图程序
在前面板中输入任意积分上下限和初始条件 ,运
行后均可得到相应的结果 。图 3 是按本文例子中的给
定条件运行的结果 ,从中可以看出两种计算方法的区
别 。
45
PROCESS AUTOMATION INSTRUMENTATION, Vol. 25 , No. 3 ,Mar. , 2004