首 页       用户登录  |  用户注册
设为首页
加入收藏
联系我们
按字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
按声母检索 A B C D E F G H J K L M N O P Q R S T W X Y Z 数字 符号
您的位置: 5VAR论文频道论文中心理工论文电子通信
   LabVIEW与MATLAB混合编程      ★★★ 【字体: 】  
LabVIEW与MATLAB混合编程
收集整理:佚名    来源:本站整理  时间:2009-01-11 00:04:08   点击数:[]    

[本篇论文由上帝论文网为您收集整理,上帝论文网http://paper.5var.com将为您整理更多优秀的免费论文,谢谢您的支持]
  摘要:结合实例详细介绍了LabVIEW通过ActvieX自动化技术与MATLAB进行混合编程,达到了利用MATLAB优化算法库的目的。将LabVIEW与MATLAB有机结合,是一条开发智能虚拟仪器的有效途径。

    关键词:LabVIEW语言 MATLAB ActiveX自动化 虚拟仪器

LabVIEW建立在易于使用的图形数据流编程语言——G语言上,大大简化了过程控制和测试软件的开发。MATLAB以其强大的科学计算功能、大量稳定可靠的算法库,已在为数学计算工具方面事实上的标准。但才者各有欠缺,利用混合编程可以相互补充。

MATLAB是MathWorks公司开发的“演算纸”式的程序设计语言。它提供了强大的矩阵运算和图形处理功能,编程效率高,几乎在所有的工程计算领域都提供了准确、高效的工具箱。但MATLAB也有不足之处,例如界面开发能力较差,并且数据输入、网络通信、硬件控制等方面都比较繁琐。

美国NI公司推出的LabVIEW语言是一种非常优秀的面向对象的图形化编程语言。LabVIEW是实验室虚拟仪器集成环境(Laboratory Virtual Instrument Engineering Workbench)的简称,是一个开放型的开发环境,使用图标代替文本代码创建应用程序,拥有大量与其它应用程序通信的VI库。例如LabVIEW使用自动化ActiveX、DDE和SQL,可与其它Windows应用程序集成;使用DataSocket技术、Web Server、TCP/IP和UDP网络Vis,与远程应用程序通信。在对硬件的支持方面,LabVIEW集成了与GPIB、VXI、PXI、RS-232/485、PLC和插入式数字采集设备等进行数据通信的全部功能。在LabVIEW下开发的程序称为虚拟仪器VI(Virtual Instrument),因为其外形和操作可以模拟实际的仪器。在对各种算法的支持方面,LabVIEW的工具箱非常有限,这就限制了大型应用程序的快速开发。

鉴于LabVIEW和MATLAB的优点,本文介绍了通过ActiveX技术,在LabVIEW(Ver6.1)中调用和操作MATLAB(Ver6.5)的方法,实现LabVIEW和MATLAB的混合编程,充分发挥两者的优势。

图1

1 基本原理

ActiveX自动化是基于组件对象模型COM(Component Object Model)的技术,允许应用程序或组件控制另一个应用程序或组件的运行,它包括自动化服务器和自动化控制器。MATLAB支持ActiveX自动化技术。通过使用MATLAB自动化服务器功能,可以在其它应用程序中执行MATLAB命令,并与MATLAB的工作空间进行数据交换。因此可以借助这一特性,把LabVIEW与MATLAB结合,充分利用MATLAB提供的大量高效可靠的算法和LabVIEW的图形化编程能力,混合开发出功能强大的应用软件。

2 应用举例

在混合编程中,通常用LabVIEW设计用户图形界面,负责数据采集和网络通信;MATLAB在后台提供大型算法供LabVIEW调用。

2.1 方法一:使用MATLAB Script节点

为了简化调用过程,LabVIEW提供了MATLAB Script节点。LabVIEW使用ActiveX技术执行该节点,启动一个MATLAB进程。这样用户就可以很方便地在自己的LabVIEW应用程序中使用MATLAB,包括执行MATLAB命令、使用功能丰富的各种工具箱,如神经网络工具箱(Neural Network Toolbox)、优化工具箱(Optimization Toolbox)。值得注意的是:LabVIEWgn MATLAB之间的数据通信仅支持Real、RealVector、RealMatrix、Complex、VectorComplex、Matrix六种格式的数据,且必须根据具体情况进行选择。

当开发涉及工业控制的应用程序时,常常由于控制参数的非线性变化,而无法建立合适的模型。由于此类问题,神经网络提供了一条有效的解决途径。

LabVIEW开发环境下新建一个三层BP神经网络的VI程序,程序框图见图1。网络结构部分主要设置隐层(Hidelay)神经元的个数、传递函数(Transfer Function)以及网络训练算法(Algorithm)。经过样本数据(Training Data)训练过的网络,即可进行仿真测试了。MATLAB脚本程序可以在MATLAB环境下调试,再使用MATLAB Script节点导入MATLAB脚本;也可以直接在MATLAB Script节点中编写。位于Function>>Mathematics>>Formula模板中的MATLAB Script节点可以导入MATLAB脚本。图1中的脚本程序使用CASE语句进行传递函数和训练算法的选择。MATLAB Script节点中神经网络的输入层和隐层之间的权值矩阵inweight应指定为RealMatrix,在LabVIEW中对应的数据类型是二维实数据组Net.I-Weight。各变量数据类型见表1。

表1 MATLAB Script节点输入、输出变量的数据类型

变量名LabVIEW数据类型MATLAB数据类型
size of algorithmDouble floating point numericReal
t outweight hideb outb result1D array double floating numericReal Vector
p data inweightMultidimensional array double floating point numericReal Matrix

在此程序中,得到的BP网络各层的权值矩 阵、阈值向量和传递函数三类参非常有用的,它们决定了神经网络的结构与特性。因此当神经网络训练好后,可以直接使用这些参数处理新的数据,得到预测值,而不必重新调用MATLAB。这样程序的运行效率会更高。另一方面,将调试好的神经网络VI创建成一个子VI,作为模块保存,当需要更新网络时,可以随时调用。

虽然通过MATLAB Script节点进行通信比较易于实现

[1] [2]  下一页


Tags:


文章转载请注明来源于:5VAR论文频道 http://paper.5var.com。本站内容整理自互联网,如有问题或合作请Email至:support@5var.com
或联系QQ37750965
提供人:佚名
  • 上一篇文章:基于TLC4502和MAX111的数据采集系统自校准技术

  • 下一篇文章:利用ADuC834构成二次仪表系统
  • 返回上一页】【打 印】【关闭窗口
    中查找“LabVIEW与MATLAB混合编程”更多相关内容 5VAR论文频道
    中查找“LabVIEW与MATLAB混合编程”更多相关内容 5VAR论文频道
    最新热点 最新推荐 相关新闻
  • ››嵌入式系统的通信规约管理平台设计...
  • ››一种基于七号信令的局间话单采集系...
  • ››对于变频器的制动技术分析
  • ››电子文件管理元数据宏观结构多维分...
  • ››浅论卫星电视接收机的常见故障的检...
  • ››信息时代网络用户信息检索焦虑的心...
  • ››论GIS在高校房产管理中的实际应用
  • ››关于电力通信发展战略的思考 金李莎...
  • ››2G、3G切换精细化优化分析思路探讨...
  • ››光纤自动化生产的需求与时机
  • ››LabVIEW与MATLAB混合编程
  •   文章-网友评论:(评论内容只代表网友观点,与本站立场无关!)
    关于本站 - 网站帮助 - 广告合作 - 下载声明 - 网站地图
    Copyright © 2006-2033 5Var.Com. All Rights Reserved .