LabVIEW与MATLAB的混合编程技术浅析
宋凡峰 吴广祥
【摘 要】matlab是一种高效率的工程计算软件,labview是一种高性能的图形化虚拟仪器编程软件,本文首先分析了几种labview与matlab混合编程技术的优缺点,然后在labview中通过matlab 节点调用matlab,利用matlab图像处理工具箱中的函数进行图像处理。
【关键词】虚拟仪器;labview;matlab
matlab是一款强大的科学计算软件,它集数值分析、矩阵运算、信号处理和图形显示于一体,针对不同领域的应用,具有信号处理、图像处理、神经网络等几十个专用工具箱;matlab缺点在于界面开发能力较差,并且数据输入、网络通信、硬件控制等方面都比较繁琐。
虚拟仪器是是一个按照仪器需求组织的数据采集系统,labview是开发虚拟仪器的、基于图形化编程g语言的高效软件,它图形界面丰富,可以容易地制作各种界面。但在对各种算法的支持方面,labview的工具箱非常有限,这就限制了大型应用程序的快速开发。
如果能把二者的优点想整合,利用混合编程技术在labview中调用和操作matlab,就可以相互补充,充分发挥两者的优势,开发出高效率的虚拟仪器。
一、labview中调用和操作matlab的方法
labview和matlab混合编程的实现主要有以下几种方法。
(一)利用matlab 节点调用matlab算法
在matlab 节点中,用户可以编辑matlab程序,也可以直接调入已经存在的matlab程序,并在labview环境下运行。用户可以很方便地在自己的labview应用程序中使用matlab编写的算法和功能丰富的工具箱。
matlab 节点对输入、输出数据的类型有明确的要求。目前两者之间的数据通信仅支持real、real vector、real matrix、complex、vector complex、matrix六种格式的数据,而且还必须根据具体情况进行选择。
用该方法实现labview与matlab的混合编程简单、实用,其缺点是没有脱离matlab的环境,而只是将它在后台执行,所以这种方法必须在计算机中安装有matlab。
(二)利用com组件调用matlab算法
com技术的核心就是二进制接口规范,此规范独立于编程语言和操作系统。从matlab6.5开始增加matlab com builder功能,它可以帮助用户将用m语言开发的算法自动、快速地转变为独立的com组件对象。通过com组件,可以同其他用户共享已经开发的算法,并且可以免费地随同com应用程序发布matlab算法。
labview在其function》communication》activex模块中提供了一组与组件操作相关的子vi,其中automation open节点打开一个与com对象相连的refnum,然后该refnum 能够被传递给模块中的其他函数节点,从而实现具体的com对象操作,最后close automation节点关闭refnum。
利用com技术,matlab builder for com能够将低速执行的m文件编译成二进制的com组件,嵌入到labview程序中。这种方法对于规模较大,性能、速度、内存管理要求较高的labview应用程序来说,是非常有利的。
(三)利用动态链接库技术
动态链接库(dll)是基于windows程序设计的一个重要的组成部分。在labview下利用dll技术调用matlab,首先是用m文件翻译器matcom将matlab的,源文件翻译为cpp代码,并编译为dll文件;然后用labview提供的调用库函数(call library function,clf)节点,在labview中实现dll函数的调用。
该方法必须安装matcom,但是matcom对class类和图形窗口的支持不够,使得图像处理的一些功能不能使用,无法画出像matlab中那样精细的图像。
比较以上三种方法可知,利用动态链接库的方法不适合调用matlab进行图像处理;利用com组件可以完成调用matlab图像处理的功能,但比较繁琐,适合于大型系统设计;利用matlab 节点可以方便地完成matlab图像处理功能,满足一般需求,开发出小型高效的虚拟仪器系统。
二、labview与matlab混合编程图像处理的实现
labview的每个程序就是一个vi,它包括前面板和框图程序窗口两部分。在labview中利用matlab 实现matlab图像处理方法为:在框图程序窗口中,通过functions palette- mathematics-formula-matlab ,打开matlab 节点,可以直接在其框图中写入matlab图像处理程序,也可以在框图中点击右键,在弹出菜单中选择“import”,在对话框中选择要导入的图像处理m程序文件即完成了节点程序的写入。一般情况下推荐使用后者,在matlab环境下编译通过的m文件导入节点可以节省调试时间,提高开发效率。在框图内书写或调用文件时要保证每一条语句的完整性,或者完整写在一行,或者分行要有连接符,否则,程序运行会产生错误。matlab 节点的参数传递可通过添加输入输出完成。在节点边框上单击鼠标右键,在弹出式菜单中选择“add input”或“add output”,注意數字图像是以矩阵格式存储的,所以输入输出图像的数据格式选择为real matrix。
三、结束语
通过labview与matlab混合编程,二者扬长避短,优秀的labview图形化编程语言与强大的matlab工程计算语言结合,必将大大提高虚拟仪器的开发效率。
参考文献:
[1]杨乐平,李海涛,杨磊.labview程序设计与应用[m].北京:电子工业出版社,2005.
[2]裴锋,汪翠英,李资荣.基于labview的虚拟仪器算法解决方案[j].自动化仪表,2005,26(8):63-65.
作者简介:
宋凡峰(1981-),男,山东济宁人,山东水利职业学院教师,主要从事电气工程、自动检测等方面的教学与研究。
LabVIEW与MATLAB的混合编程技术浅析
本文2022-11-02 16:51:24发表“毕业论文”栏目。
本文链接:https://www.wenmi123.com/article/389230.html
- 2025 年《建设工程项目管理》模考卷一.pdf
- 座谈会发言:体系抓好思政课教育做好贯彻落实下篇文章(02-19).docx
- 组织部机关支部书记2024年度抓基层党建工作述职报告(02-19).docx
- 在县委理论中心组暨2024年度民主生活会学习研讨会上的发言(02-19).docx
- 在2025年市人代会分组讨论会上的发言(02-19).docx
- 医院党委选人用人工作自查报告(02-19).docx
- 宣传部2024年民主生活会个人对照检查发言(02-19).docx
- 行政服务中心民族团结进步创建工作经验材料(02-19).docx
- 校长在中学2025春季开学典礼上的讲话:撷一抹祈望春风掬一程锦绣花开(02-19).docx
- 乡镇领导班子2024年民主生活会对照检查发言材料(五个带头+典型案例)(02-19).docx