欢迎来到天天文库
浏览记录
ID:13313773
大小:31.50 KB
页数:5页
时间:2018-07-21
《labview中调用matlab的两种方法》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、鉴于LabVIEW和MATLAB的优点,本文介绍了通过ActiveX技术,在LabVIEW(Ver6.1)中调用和操作MATLAB(Ver6.5)的方法,实现LabVIEW和MATLAB的混合编程,充分发挥两者的优势。先说一下两种方法的优缺点:2.3两种调用方法的比较(1)MATLABScript节点具有多输入、多输出的特点,一次处理的信息量要以很大。MATLAB脚本可以先在MATLAB下调试。无误后再导入到MATLABSeript节点中。MATLABScript节点对输入、输出数据的类型有明确的要求。只有LabVIEW中的数据类型与MATLAB中的数据型相匹配
2、,才能进行数据传输。使用MATLABScript节点的方法,快捷方便,但不利于较大的应用程序开发。当需要使用时,可将其模块化,采用主程序动态加载。(2)使用ActiveX函数模的方法,具有对MATLAB更强的控制能力。如随时打开和关闭MATLAB,隐藏在务栏中的MATLAB图标,与MATLAB进行字符数组传输,这些都是MATLABScript节点都不具有的。使用ActiveX函数模板时,经常会遇到数据类型的转换,尤其是变体(Variant)与其他类型的转换。当高用大型算法时,必须明确输入、输出数据的具体类型,而且要尽量减少数据传输量和启动MATLAB自动化服务器
3、的次数ActiveX函数模板,适于较大的应用程序开发。在LabVIEW顺序结构中,不提供使用。原因是顺序结构妨碍了作为LabVIEW优点之一的程序并行运行机制,而且MATLAB自动化服务器启动也需要一定时间,这会使整个程序不能及时处理其它的用户操作。总之,两种调用方法其自身的优势和不足。在开发一个大的复杂应用程序时,综合不同的应用要求,合理选择可以显著提高开发效率。采用虚拟仪器技术,通过LabVIEW构建测试仪器开发效率高、可维护性强、测试精度、稳定性和可靠性能够得到充保证;具有很高的性价比,节省投资,但于设备更新和功能扩充。如果能利用MATLAB功能强大的算法
4、库,可望开发出更具智能化的虚拟仪器,将会在诸如故障诊断、专家系统、复杂过程控制等方面大有用武之地。1基本原理ActiveX自动化是基于组件对象模型COM(ComponentObjectModel)的技术,允许应用程序或组件控制另一个应用程序或组件的运行,它包括自动化服务器和自动化控制器。MATLAB支持ActiveX自动化技术。通过使用MATLAB自动化服务器功能,可以在其它应用程序中执行MATLAB命令,并与MATLAB的工作空间进行数据交换。因此可以借助这一特性,把LabVIEW与MATLAB结合,充分利用MATLAB提供的大量高效可靠的算法和LabVIEW
5、的图形化编程能力,混合开发出功能强大的应用软件。2应用举例在混合编程中,通常用LabVIEW设计用户图形界面,负责数据采集和网络通信;MATLAB在后台提供大型算法供LabVIEW调用。2.1方法一:使用MATLABScript节点为了简化调用过程,LabVIEW提供了MATLABScript节点。LabVIEW使用ActiveX技术执行该节点,启动一个MATLAB进程。这样用户就可以很方便地在自己的LabVIEW应用程序中使用MATLAB,包括执行MATLAB命令、使用功能丰富的各种工具箱,如神经网络工具箱(NeuralNetworkToolbox)、优化工具
6、箱(OptimizationToolbox)。值得注意的是:LabVIEWgnMATLAB之间的数据通信仅支持Real、RealVector、RealMatrix、Complex、VectorComplex、Matrix六种格式的数据,且必须根据具体情况进行选择。当开发涉及工业控制的应用程序时,常常由于控制参数的非线性变化,而无法建立合适的模型。由于此类问题,神经网络提供了一条有效的解决途径。在LabVIEW开发环境下新建一个三层BP神经网络的VI程序,程序框图见图1。网络结构部分主要设置隐层(Hidelay)神经元的个数、传递函数(TransferFuncti
7、on)以及网络训练算法(Algorithm)。经过样本数据(TrainingData)训练过的网络,即可进行仿真测试了。MATLAB脚本程序可以在MATLAB环境下调试,再使用MATLABScript节点导入MATLAB脚本;也可以直接在MATLABScript节点中编写。位于Function>>Mathematics>>Formula模板中的MATLABScript节点可以导入MATLAB脚本。图1中的脚本程序使用CASE语句进行传递函数和训练算法的选择。MATLABScript节点中神经网络的输入层和隐层之间的权值矩阵inweight应指定为RealMatr
8、ix,在LabVIEW中
此文档下载收益归作者所有