ActiveX自动化是基于组件对象模型COM(Component Object Model)的技术,允许应用程序或组件控制另一
个应用程序或组件的运行,它包括自动化服务器和自动化控制器。MATLAB支持ActiveX自动化技术。通过使用
MATLAB自动化服务器功能,可以在其它应用程序中执行MATLAB命令,并与MATLAB的工作空间进行数据交换。因此
可以借助这一特性,把LabVIEW与MATLAB结合,充分利用MATLAB提供的大量高效可靠的算法和LabVIEW的图形化编
程能力,混合开发出功能强大的应用软件。
2 应用举例
在混合编程中,通常用LabVIEW设计用户图形界面,负责数据采集和网络通信;MATLAB在后台提供大型算法供
LabVIEW调用。
21 方法一:使用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中对应的数据类型是二维实数据组NetI-Weight。各变量数据类型见表1。
表1 MATLAB Script节点输入、输出变量的数据类型
变量名 LabVIEW数据类型 MATLAB数据类型
size of algorithm Double floating point numeric Real
t outweight hideb outb result 1D array double floating numeric Real Vector
p data inweight Multidimensional array double floating point numeric Real Matrix
在此程序中,得到的BP网络各层的权值矩 阵、阈值向量和传递函数三类参非常有用的,它们决定了神经网络
的结构与特性。因此当神经网络训练好后,可以直接使用这些参数处理新的数据,得到预测值,而不必重新调用
MATLAB。这样程序的运行效率会更高。另一方面,将调试好的神经网络VI创建成一个子VI,作为模块保存,当需
要更新网络时,可以随时调用。
虽然通过MATLAB Script节点进行通信比较易于实现,但以这种方式调用MATLAB时,在任务栏中将出现一个
MATLAB图标,单击该图形会打开MATLAB窗口,在其中可以任意输入。通常,这会干扰前台程序的运行,甚至造成
程序的崩溃。另一方面,当MATLAB Script节点中的脚本执行完后,MATLAB也不能自动关闭。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)