利用DLL技术实现LabVIEW和MATLAB混合编程

合集下载

LabVIEW与MATLAB联合编程

LabVIEW与MATLAB联合编程

LabVIEW与MATLAB联合编程
LabVIEW与MATLAB的联合编程⼀般可以通过2种⽅式进⾏:
1. 公式节点[Formula Node]
2. MATLAB脚本节点[MATLAB script node]
1. 公式节点[Formula Node]
位置:函数选板->数学->脚本与公式->公式节点
在程序框图上计算数学公式和类似于C语⾔的表达式。

可在公式中使⽤下列内置函数:abs、acos、acosh、asin、asinh、atan、atan2、atanh、ceil、cos、cosh、cot、csc、exp、expm1、floor、getexp、getman、int、intrz、ln、lnp1、log、log2、max、min、mod、pow、rand、rem、sec、sign、sin、sinc、sinh、sizeOfDim、sqrt、tan和tanh。

2. MATLAB脚本节点[MATLAB script node]【推荐√】
位置:函数选板->数学->脚本与公式->脚本节点-> MATLAB脚本节点
调⽤MATLAB®软件脚本服务器执⾏脚本。

这意味着我们可以采⽤MATLAB语⾔进⾏编程。

下⾯⽤⼀个例⼦展⽰如何使⽤MATLAB脚本节点:
我们需要产⽣⼀个正弦信号,程序框图如下所⽰
结果前⾯板所⽰
注意:在退出LabVIEW前,请不要⾃⾏关闭MATLAB窗⼝。

LabVIEW与Matlab_Simulink混合编程方法及应用_黄世奎

LabVIEW与Matlab_Simulink混合编程方法及应用_黄世奎
ActiveX是微软公司推出的一个技术集的统称 , 是 基于 COM(ComponentObjectModel)组件对象模型技
(b)LabVIEW的 ActiveX编程运行效果 图 3 LabVIEW的 ActiveX编程与运行效果
基于 ActiveX自动化技术的开发方式可以更加灵 活地对 Matlab进行控制 , 方便地使用 Matlab的各种工 具箱 , 适合于较大的应用程序开发 , 但在调用大型算法 时 , 经常会遇到数据类型的转换 , 尤其是变体与其他类 型的转换 , 因此 , 必须明确输入 、输出数据的具体类型 , 而且要尽量减少数据传输量和启动 Matlab自动化服 务器的次数 。 2.3 利用 COM组件技术
1 引 言
LabVIEW是目前应用最广 、发展最快 、功能最强 的图形化虚拟仪器软件开发集成环境之一[ 1] , 尽管如 此 , 它对于一些需要进行大量数据运算处理的复杂应 用仍显得有些力 不从心[ 2] 。 而 Matlab是一个为科学 和工程计算专门设计的高级交互式的软件包 。 Matlab 集成了各种领域的数据处理工具包 , 是一个可以完成 各种计算和数学处理的可视化 、强有力 、易于使用和理 解的工具 [ 3] , 但在 循环处 理 、图形 界面 开发 、信号 测 量 、网络通信 、硬件控制等方面明显逊色于 LabVIEW。 因此 , 将 LabVIEW与 Matlab/Simulink混合编程 , 实现 两者相互通讯 、优势互补 , 对于开发功能更为强大的智
(a)fuzzyPID程序框图
(a)LabVIEW的 ActiveX编程
(b)模糊控制系统的输入 、输出曲线 图 2 基于 MatlabScriptNode混合编程技术的应用实例
该 实例中 的 fuzzyPID算法是 由 Matlab/Simulink 构建 , 然后通过在 MatlabScriptNode中编写脚本程序 使之能在 LabVIEW环境下运行 。

MATLAB与LABVIEW的混合编程在飞机供电系统仿真中的应用

MATLAB与LABVIEW的混合编程在飞机供电系统仿真中的应用

EXCHANGE OF EXPERIENCE 经验交流摘要:论文通过B777飞机供电系统实例介绍了MATLAB与LABVIEW的混合编程方法在供电系统仿真中的应用,搭建了供电系统MATLAB模型,并生成动态链接库DLL,通过在LABVIEW中调用该DLL实现了二者混合编程仿真,在LABVIEW平台上设计了供电系统的人机交互界面,与供电系统DLL共同进行了混合仿真验证,从仿真结果可以看出,MATLAB和LABVIEW混合编程方法应用于供电系统仿真可以快速地对设计进行验证,缩短开发周期,减少开发成本。

关键词:供电系统仿真;MATLAB;LABVIEW;混合编程一、前言随着现代飞机向着多电乃至全电飞机发展,机上供电系统容量越来越大,构型越来越复杂,供电系统在工作期间的切换逻辑复杂,硬线连锁控制交联器件多,需大量的测试来验证设计的合理性,传统验证方式是搭建实物环境进行实验,周期长、花费高,设计迭代困难。

与此同时,现代飞机玻璃化座舱取代了传统的仪表,各个机载系统不再通过大量的机械仪表来向飞行员显示自身工作状态,都通过航电显示屏上直观的系统图形、颜色变化、提示语音等多媒体方式显示自身的运行状态,因此,系统显示画面的设计也成为供电系统设计的重要一环,直接关系到飞行员能否快速正确地获取供电系统的运行状态,而验证其设计合理性需与航电设备进行交联试验,也不利于快速的验证和迭代。

机载设备研发周期长、费用高,如果设计方案必须在机载设备研制出来再进行验证,迭代过程必然导致研制费用增加,且研制进度难以控制,因此开发一种简单敏捷的验证方式势在必行。

 二、供电系统混合仿真验证方法对供电系统的仿真验证可使用MATLAB/Simulink来实现,Simulink是MATLAB的一个强大的建模仿真分析组件,它的电力系统模型库SimPowerSystems集成了丰富的电力系统模型,可以方便地搭建出供电系统模型,并结合MATLAB强大的数字运算能力进行仿真,但是MATLAB并不适合开发较复杂的人机交互接口,因此不适用于开发电源控制模块和航电画面页[1]。

基于动态链接库调用方法的LabWindows与MATLAB混合编程

基于动态链接库调用方法的LabWindows与MATLAB混合编程
信 息 产J JI 业
科 黑江— 技信总 — 龙— —
基于动态链接库调用方法的 L b n o a Wid ws 与 MA L B混合编程 T A
张 静 陈 于扬
( 华北 电力 大学 电子 与通信 工程 系 河北 保 定 0 10 ) 70 3
摘 要 : 出一种基于动态链接库调 用方法的 Lb i o s MA L B混合编程技术 , 提 awn w 与 d TA 该方法只需要在 目标机上安装 MC R便 可以使程序脱 离 M | Ar _ L B 大的运行环境独立运行 , L b i o s V 与 M T  ̄ A 庞 将 aw dw/ I A L B强大科学计算能力相结合 , 高了虚拟仪器软件开发效率。利用动态链接库调 用方法和 n C 提 M TA A L B强大的小波分析工具箱的功能, 对电压闪变包络信号提取, 结果表 明 Lb idw/V 针对 M T A a wno s I C A L B动态链接库调用技术使得虚拟仪器软件开发
更加 高效 。
关键词:aWi o s V ; nAB; Lb n w/ IMA d C 动态链
命令 的选项 ,可将 m文件编译成 c + 源代 , + c
L b no s V aWidw/ l和 MA C Ⅱ B都 是 当 今 非 码 、 e m x文件 、b文 件、l文件 、x u dl ee可执行 文件 常流行 的控制系统分析和设计软件 ,但二者各有 等 。生 成 c 语 言 动 态 链 接 库 命 令 : c — mc B
侧重点和优缺点。 前者是美 国国家仪器( a o l chr l :l N tn sa di 【b文件名】【 ia e b i m文件名] 。 I tm n , I n r et N ) s u s 公司开发的面 向计算机测控领域 2 . 2程序的发布 的交互式 C语言软件开发平台,可以在多种操作 无论编译之后生成的是可执行文件还是库文 系统平台上运行。Lb I0 V 丑 widw I以A S l N IC为 件, 要使其能够发 布到没有安装 M T A A L B的计算 核心, 将功能强大 、 使用灵活的 c 语言平台与用于 机上使用 , 必须在 目标计 算机上安装 M R 可 以 C。 数据采集分析和显示的测控专业工 具有机地结 利用 M T A 命令 b im r 创建可以发布给 AL B u d c来 l 合。它的集成化开发平台、 交互式编程方法、 丰富 最终用户的 MC R安装文件。一般来说 , 需要发布 的功能面板和库 函数大大增强了 c语言的功能 , 的文件有 3个 :. a 编译得到的可执行文件或者库 为熟悉 C语言的开发人员开发建立检测 系统、 函数出.C F文件;. Rntlri。 自 T c MC Is e.p l a z 动测试环境、 数据采集系统。 虚拟仪器提供了一个 在最终用户的计算机上 , 首先需要把 M Rn C I— 图 I 包络信 号提取 理想的软件开发环境 , 然而要实现测控领域一些 s l ri解压 , tl .p ae z 并把 MC R中可执行文件所在 目录 ys f p 8 t l; =i 2 i ‘is n l) 先进的理论和方法 , 如神经网络 、 遗传算法、 模糊 加到系统路径上 , 然后就可以使用编译后的程序 v l( 0 .E = 1 6 v v .2 = .x : 理论等方面 , 需要官方额外提供的工具箱。 一般价 了。 n me d ; a =' b' 格不菲。而 M A B拥有强大 、 AL 丰富的内置函数 , 3动态链接库技术的应用 强大的科学计算功能和灵活的接 口 技术,其强项 电网中 存在的非线性负荷会使供电电压 的有 【.= ane(,,nme; c1 w v cv7w a ) ] d 在于数学运算。丑 widw v Lb r0 I与 MA L B的有 效值及波形发生变化 , I TA 影响供 电质量。 传统的检测 a - ro ' ',w m ,) 6 wcd ",l m e ; " ( c, a 7 6 : 机结合, 可以相互弥补, 设计出功能强大的虚拟仪 方法用 F _算法分析稳态调幅波,不能分析幅值 a6=a —1 f’ I ( ' ' 器软件【1 l。 - 4 时变的闪变信号目 。小波变换是一种信号的时间一 stc,Vsbe, t; e gf iil'd 3 stc q v e gf ne (,  ̄ y" 3 qf o 现在普遍采用 的 【b n0 v 与 MA — 频率分析方法, 丑 widW I T 具有多分辨率分析信号的特点 。 而 stc ' pr ns 'a m t s eg f aeU i " f e r ( , P t, i e 3  ̄ A L B混合编程技术主要 有两种 : A I M TAB引擎调 且在时域和频域内都具有表征信号局部特征的能 stc ' pfo fn, ,7 D eg f ae 'io ' 0 , ; ( , P 6 i [ .5 0 用技术、 V 提供的 A t eX CI cv 服务控件接 口, i 都存 力 。 因此在电压闪变信号分析中, 采用小波变换能 sb lt 1) up ( 1 o2 l  ̄) t 在各自的优缺点 , 而且两者都脱离不了 M T  ̄ 有效提取电压闪变信号的调幅波。应用小波分析 po(6 A LB x B 3 0 -1l 庞大的软件运行环境 ,使用起来较复杂 。提出将 进行电压闪变中包络信号的提取主要涉及到小波 丑 i .5 0, 。 dc - r d'', rme ) e mp wc ( ,l m . ; o dc , w 1 M TA A L B的 I n文件编译成动态链接库 ( L D L文 的分解与重构 , 其过程主要分为以下 2 个步骤。n sbl ( 1 a S030 ,1 D upo 2 ; i , 0- , ; t. x 5 1 件 ) Lb i o s V 调用 , 供 a W n w/ I d C 使用起来较为简单 , 信号的小波分解 ,选定一种小波族和设定滤波器 po(emp; l de ) t 只需在 目标 机上安装 M T A A L B运行库就 可独立 长度, 对信号进行 N层分解 。b . 信号的小波重构 , Yae ̄d,u 2t 1 ; lbl'' m s(} n r D p n " je' e p ; i( r t dpg 'm 3 - , t 使用。 对分解后的信号的低频和高频进行重构。 d. d n o )ed 2动态链接库技术 31 .基本 电压闪变信号模型建立 将 m文件编译成动态链接库之后 , 需要将生 21 .编译动态链接库 电压 闪变是由电网电压的幅度起伏变化所引 h文件、b文件 、1文件拷贝到工程 目录下 l i dl 在安装 M T A A L B程序时,选择默认安装模 起的, 所以电压波动与闪变信号用调幅电压表示 : 成 的. 除此之外还需拷贝 M T A A L B库函数 中 f ) ( o ( t =42 [+M sV ) o ( t ) V1 c ( ̄ ] sw ) o c 进行调用, 式, 编译器便会被安装到机器中。首次使用之前 , ( : ^ fe sw ) 的 l m . 、 a ih m lc.、 cm ri 等 文 i xi m tx 、 c r m lc.b b 1 b r. m h 1 ( )为包络信号 需 要在 M T A A L B环境 中配置 CC + / + 编译器 , 在 件。 Widw 上, T ̄B编译器支持以下 3种 CC + no s MA I /+ V为工 频 电压额 定值 3 V 程序运行 .C I 3 编译器 : M为调频幅值,其值一般为 l %,最高可达 L b idw /V 核心 代码 如下 : awno s l C 211Maa 本身提供 的 L cC编译器 , . f] i) c 这 1 % 0 it VC L B C xc t i a e m c t l h vn n C IA L A K E eu n pn1 o r teet e( t .i n o i , W 为工 频 角频 率 是一个免费的 c编译器, 但它不能编译 c + + 程序。 v i clb c Daa n vn Da .it v IDaa 1 od al ak t,ite e t t n eel t2 M t 21 0l dc + .2B r n + :适用 版 本 53 .、5 . a -、54 . 5 W为调制信号的基波角频率 { 及 56等版本。 . ∞ y I; n 32MA A . 耵.B程序设计 d u l o = ; o be n O u co = b ae ) i ] g 21 c o i a /+ ( V )适用版 fnt nI d w v( . Mi f Vs lCC +MS C: 3 ms t u h= 2 0 3 0; si h( e0 wt e n c v 本为 6 、70及 71 . . 0 .。 N= 2 0 3 0; f 动态链接库的生成需要 以下 3个步骤 :. a 编 t 0: 1: c 8 EN CO a e EV T MM I T: = N一 写 m��

Matlab和LabVIEW混合编程的实现

Matlab和LabVIEW混合编程的实现

欢迎订阅欢迎撰稿欢迎发布产品广告信息E I C Vo l .15 2008 No.2 101 图3 Soble 算子处理图 图4 二值图 3 二值化整幅图像画面仅有黑白二值的图像就是二值化图像。

二值化的目的是将采集得到的多层次灰度图像处理成二值图像,以便于分析理解和识别并减少计算量。

对图像进行二值化处理的关键是阈值的合理选取。

阈值设置过小易产生噪声;阈值设置过大会降低分辨率,使非噪声被视为噪声而滤掉[5]。

本文采用的是最优阈值原理:统计每幅图像灰度的分布特性,利用类别方差作为判据,选取使类间方差最大值作为选定的阈值。

二值图如图4所示。

4 结束语本文通过对运动车辆的视频进行中值滤波,Soble 算子提取图像的边缘信息,接着进行二值化处理,为以后的识别提供了良好的基础。

利用VC ++编制人机交互友好界面,实现数字逻辑变换及道路图像处理。

该算法具有良好的实时性和可靠性。

□参考文献[1]布洛基,布图兹等.智能车辆[M ].人民交通出版社,2002.11.[2]高守传,姚领田等.V isual C ++实践与提高[M ].中国铁路出版社,2005.12.[3]王晓东,丁冬花.实时车辆检测和跟踪系统设计[J ].微计算机信息,2006,11(2):237-239.[4]王艳春,李建军,何鹏,尹明.公路交通管理中行驶车辆自动识别技术研究[J ].微计算机信息,2006,11(2):193-195.[5]王荣本,游峰,崔高峰等.基于计算机视觉高速车辆的道路识别[J ].计算机工程与应用2004,9(26):18-21.作者简介:胡会珍(1983-),女,汉族,硕士,主要研究方向为控制理论与控制工程,现中北大学在读硕士研究生;黄晋英(1971-),女,汉族,副教授/硕士生导师,主要从事智能控制,模式识别研究。

基金资助:山西省青年科技基金(编号:20051015)收稿日期:2007210230(7672)文章编号:167121041(2008)022*******M a tla b 和La bV I E W 混合编程的实现李霄燕,杨俊宇,赵 佳(长春工业大学电气与电子工程学院,长春130012)摘要:基于M a tla b 强大的计算功能和La bV I EW 的界面良好的特点提出用M a tla b 和La bV I EW 混合编程,将二者有机结合起来,使在锅炉管板焊接中,能够轻松得到不同位置焊接管口的轨迹方程,实现自动焊机对焊接轨迹的良好控制。

labview与matlab的联合仿真过程详解

labview与matlab的联合仿真过程详解

摘录一段自己毕业论文中关于LabVIEW与Matlab联合仿真的内容,仅供参考。

联合仿真实现的前提是LabVIEW与Matlab通信正常,注意事项见附录。

‐‐‐‐‐‐‐‐‐‐‐by 忧郁王子7858037072.2 方案二基于LabVIEW与Matlab的联合仿真2.2.1 方案简介本方案是基于LabVIEW与Matlab的联合仿真,主要目的是希望利用Matlab 强大的仿真工具箱-----Simulink进行建模,通过Matlab与LabVIEW进行通信,即进行数据的传输,数据的采集和处理在LabVIEW中进行。

[12]2.2.2 软件配置系统:win8软件配置:LabVIEW 2011 Developer SuiteMatlab 2010aSimulation Interface Toolkit Version 20112.2.3 实现方法一、配置Simulink文件1、启动Matlab2010a,命令窗口显示如下,此消息表明,SIT Server正在运行。

图2.9 Matlab与LabVIEW通信2、在命令窗口输入simulink,调用Simulink Library Brower窗口。

3、打开sources库,将Sine Wave 和In1模块分别放入新建的model文件中,相同的方法,放入Sum,Out1到model文件。

[4]4、找到NI SignalProbe库,在model文件窗口中放入SignalProbe模块。

建立的model文件如下所示。

图2.10 simulink模型图二、设置仿真参数打开Simulation下的Simulation parameters,设置开始时间和停止时间等相关参数。

三、建立Host VI1、打开LabVIEW,新建一个VI。

2、选择Tool-SIT Connection Manager,启动对话框,在对话框中建立LabVIEW 控件映射/指标和模型参数/信号。

MATLAB和LabVIEW混合编程的实践应用

MATLAB和LabVIEW混合编程的实践应用
・信息技术・
李向龙。LAB和LabVIEW混合编程的应用
李向龙,袁德强
(兰州理工大学机电工程学院,甘肃兰州730050) 摘要:概述MATLAB和LabVIEW混合编程的实现方法。通过实例介绍使用MATLAB
Script
节点进行混合编程的基本方法.最后将LmA降维算法嵌入到这两种软件的混合编程中。结
・106・
万方数据
http://ZZHD.chinajournal,net.cn
E-mml:ZZHD@chainajournal.net.c11《机械制造与自动化》
・信息技术・
李向龙,等・MATLAB和LabVIEW混合编程的应用 程序框图合适的位置。 2)在MATLAB
Script
用M文件翻译器Matcom将MATLAB源文件编译成cpp 代码.并转变成(1ll文件,然后采用LabVIEW自带的调用 库函数(CLF)来实现对DLL函数的调用(如图1)..该方 法的前提条件是必须安装Matcom,但Matcom不能很好的 支持class类和图形窗口.使图像处理的某些功能受到限 制,因此很难绘出同MATLAB一样精细的图像。从图1 可以看出软件之间只有找到相匹配的数据类型才能进行 合理的嵌入.
Abstract:This paper introduces the method of MATLAB and LabVlEW mixed—language programming.takes
describe the
simple example to
basic application of MATLAB Script nodes and then,imports the dimensionality reduction algorithm of the LLTSA to the

基于数据库的LabVIEW与Matlab混合编程及其实现

基于数据库的LabVIEW与Matlab混合编程及其实现

Ke rs Lb IW; tb MyQ ;ie rga mi ywod :a VE Mal ; S L l a porm n a nr g
M fb 以矩 阵运 算 为基 础 的 一种 数 学软 件 。Lb IW aa 是 l aVE 是美国 国家仪器公司推 出的一种 图形化 虚拟仪 器开发 环境 , 将 Lb I W 与 Ma a 结 合 , 以开 发 出功 能大 的工 业 监控 软 aV E tb相 l 可 件 _。同时许多 复杂 的算法 又牵 涉 到大 量 的数 据 , 要求 在 4 j 这 L b IW 中与数据库交互 。本研究 以配 方优化 系统 为背景 , aV E 在
Fo mu a i n Op i z to t a l b a d La VI r lt t o mia in wi M ta n b EW s d o t b s h Ba e n Da a a e
XU F n , HE L - n ,T AN u — u eg imig I Z oh a
特点 就是 快 速 、 壮 和 易 用 。 健 而且 它 是 完 全 免 费 的数 据 库 。
1 L b IW 中的数 据库访 问技术 aV E
在 监控 系统 开发 中, 一个 重要 的 内容就是 对实 时采集 数据 进行存储 和分析 , 这涉及到对 数据库 系统 的操 作 。Lb IW 提 aV E 供 了多种方 法可 以实现 系统 与数据 库的交互 : ① 利用 Mi s t D e o O技 术来访 问数 据库 。该 技 术要 求数 mf A
( eat n fA tmao , hhh i i t gU i ri , hnh i 0 2 0 C ia D p r t uo t n S aga a o nv sy Sa sa 2 0 4 , hn ) me o i Jon e t

Labview和matlab混编软件在labview环境下进行可执行化的方法

Labview和matlab混编软件在labview环境下进行可执行化的方法

Labview和matlab混编软件在labview环境下进行可执行化的方法一、问题的提出:Labview下对matlab程序(m文件)的调用采用ActiveX技术,该技术不能脱离matlab运行环境。

为解决问题,尝试将m文件编译成dll文件,将Labview对m文件的调用变为Labview对dll文件的调用。

但由于研究过程出现的问题和时间的关系,这一问题并未得到解决。

在此作一总结,以便后续工作继续进行。

二、问题的确立:在本文档中,主要针对在Labview环境编写的软件进行可执行化的讨论,该软件包含了使用matlab节点或ActiveX机制的matlab函数。

因此,在Labview环境下对软件进行可执行化的主要包含了三个方面的内容:1.把matlab下编的m文件编译成可被Labview调用的文件形式。

例如:动态链接库(dll)、COM组件等。

本文档主要对动态链接库方式进行讨论,其它方式将在附录中简要说明。

2.在Labview下对动态链接库(dll)文件进行调用3.在Labview下,将含有dll的VI生成安装文件。

该文件可在脱离matlab和labview的目标机上安装、运行。

以上三个步骤如全部完成,则可以说明该应用程序已可以独立的运行发布了。

三、问题的解决方法及过程:下面将详细的讨论每个步骤的具体解决方法和过程,以供参考。

1.把matlab下编的m文件编译成可被Labview调用的文件形式(dll).解决本问题的方法,在不同的matlab版本中是不同的,在此将对在matlab6.5和matlabr2007a(7.4)两个版本下的方法作一说明。

在Matlab6.5版本中,可以通过两种方式将m文件编译成dll文件。

一种是利用matlab为Visual C++发布的一个插件add-in,在Visual C++的环境下,将m文件编译成dll文件。

另一种则是使用mcc命令行的方式对m文件直接进行编译,生成dll文件。

基于DLL的LabVIEW与VC、Matlab混合编程

基于DLL的LabVIEW与VC、Matlab混合编程

操作 , 不擅 长于 完成大 量数据 处理 的任 务 。而 Vs a i l u C + 方便 、高 效 地 与系统 及 底层 硬 件 直接 交换 数 +可
据 , t b提 供 了 多 种 功 能 强 大 的 工 具 箱 ,在 信 号 和 Mal a
②在 D L 目中添加输出函数 L项
D L是包含若 干个 函数的库 文件 , L 应用 程序在 使

ห้องสมุดไป่ตู้
lm d
l = , =



_
、、
马 芳 。 张红 民 , 王 月 浩 , 马 金 超
( 江 大 学 计 算 机 科 学 学 院 ,荆 州 4 4 2 ) 长 3 0 3
摘 要 :针 对在 NI 司推 出 的 L b E 开 发 环 境 下 访 问底 层 硬 件 和 数 据 处 理 能 力 方 面 的 不 足 , 用 了 公 aVIW 采
维普资讯
实 践 s经 验


。~
i i {: 】il 一 — —~ —~ ~ I i : —— — ~~ ~ h; ! ——— : i 1l j : —— ~ ~ ~ 厶 匿 考… 槲 絮 / 一/
一一~一 一一 一 一 一 一~…— — ~ ・ —— :
利 用 V sa C + 供 的 向导功 能 可 以很 容 易地 i l +提 u
建 立 一 个 不 完 成 任 何 实 质 任 务 的 D L, 要 的 任 务 是 L 主 如 何 给 D L添 加 功 能 。 L
开 发 数 据 检 测 、 据 测 量 采 集 系 统 、 业 自动 控 制 系 数 工 统 和数 据 分 析 系 统 等 领 域 , 虚 拟 仪 器 系 统 的 主 要 开 是

LabVIEW与MATLAB混合编程的实现_张晖

LabVIEW与MATLAB混合编程的实现_张晖

本栏目责任编辑:谢媛媛系统软件与软件工程Computer Knowledge and Technology 电脑知识与技术第6卷第15期(2010年5月)LabVIEW 与MATLAB 混合编程的实现张晖,郑炜(空军航空大学电工电子教研室,吉林长春130022)摘要:LabVIEW 和MATLAB 的混合编程,通过LabVIEW 专有程序接口调用MATLAB 实现。

LabVIEW 设计用户图像界面,负责数据采集;MATLAB 在后台提供大型算法供LabVIEW 调用,其程序的调用方法,可使用MATLAB Script 节点或ActiveX 函数模板。

关键词:LabVIEW ,MATLAB ,混合编程,MATLAB Script 节点,ActiveX 函数中图分类号:TP391文献标识码:A 文章编号:1009-3044(2010)15-4322-02Method of Hybird Programming with LabVIEW and MATLABZHANG Hui,ZHENG Wei(Department of Electrician and Electron,Aviation University of Air Force,Changchun 130022,China)Abstract:For hybrid programming of LabVIEW and MATLAB,the hybrid programming is achieved by using calling MATLAB through proprietary program interface of LabVIEW.The user graphical interfaces was designed with LabVIEW and acquire the data.The large al -gorithm in background was provided by MATLAB for LabVIEW calling.The program wascalled by using the MATLAB node and Ac -tiveX function template.Key words:LabVIEW;MATLAB;Hybrid programme;MATLAB script node;ActiveX functionLabVIEW 自身功能强大,在测试与测量、过程控制与处理、科学研究和分析等方面有广泛的应用。

Labview和matlab混编软件在labview环境下进行可执行化的方法

Labview和matlab混编软件在labview环境下进行可执行化的方法

Labview和matlab混编软件在labview环境下进行可执行化的方法一、问题的提出:Labview下对matlab程序(m文件)的调用采用ActiveX技术,该技术不能脱离matlab运行环境。

为解决问题,尝试将m文件编译成dll文件,将Labview对m文件的调用变为Labview对dll文件的调用。

但由于研究过程出现的问题和时间的关系,这一问题并未得到解决。

在此作一总结,以便后续工作继续进行。

二、问题的确立:在本文档中,主要针对在Labview环境编写的软件进行可执行化的讨论,该软件包含了使用matlab节点或ActiveX机制的matlab函数。

因此,在Labview环境下对软件进行可执行化的主要包含了三个方面的内容:1.把matlab下编的m文件编译成可被Labview调用的文件形式。

例如:动态链接库(dll)、COM组件等。

本文档主要对动态链接库方式进行讨论,其它方式将在附录中简要说明。

2.在Labview下对动态链接库(dll)文件进行调用3.在Labview下,将含有dll的VI生成安装文件。

该文件可在脱离matlab和labview的目标机上安装、运行。

以上三个步骤如全部完成,则可以说明该应用程序已可以独立的运行发布了。

三、问题的解决方法及过程:下面将详细的讨论每个步骤的具体解决方法和过程,以供参考。

1.把matlab下编的m文件编译成可被Labview调用的文件形式(dll).解决本问题的方法,在不同的matlab版本中是不同的,在此将对在matlab6.5和matlabr2007a(7.4)两个版本下的方法作一说明。

在Matlab6.5版本中,可以通过两种方式将m文件编译成dll文件。

一种是利用matlab为Visual C++发布的一个插件add-in,在Visual C++的环境下,将m文件编译成dll文件。

另一种则是使用mcc命令行的方式对m文件直接进行编译,生成dll文件。

Matlab与LabVIEW混合编程方法应用研究.

Matlab与LabVIEW混合编程方法应用研究.

第10卷第33期2010年11月1671—1815(2010)33-8267-05科学技术与工程Science Technology and EngineeringVol. 10No. 33Nov. 2010 2010Sci. Tech. Engng.Matlab 与LabVIEW 混合编程方法应用研究徐何李滔李勇(西北工业大学电子信息学院,西安710129)摘要对Matlab 和LabVIEW 混合编程技术进行了讨论。

主要研究Matlab Script 节点法、动态链接库(DLL )技术和COM 组件技术,详细介绍了各自的技术优点以及实现方法。

并在此基础上,结合Matlab 强大的矩阵运算能力和LabVIEW 丰富的面板设计工具,完成了对雷达显示界面的混合编程仿真设计。

关键词组件对象模型节点动态链接库混合编程雷达界面仿真中图法分类号TN955;文献标志码A2010年9月13日收到第一作者简介:徐何(1985—),男,羌族,四川省成都市人,硕士研究生,研究方向:雷达信号仿真。

E-mail :prophetxu@hotmail.com 计算机和仪器的密切结合是目前仪器发展的一个重要方向。

这种结合有两种方式,一是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。

另一种方式是将仪器装入计算机,以通用的计算机硬件及操作系统作为依托,实现各种仪器功能,虚拟仪器主要是指这种方式。

LabVIEW 是美国NI 公司研发的功能强大而且灵活的仪器分析开发软件,是目前应用最为广泛的虚拟仪器开发软件。

其拥有强大的界面开发能力和良好的软硬件接口,但是在对各种算法的支持方面,LabVIEW 的工具箱有限,这限制了使用Lab-VIEW 对大型应用程序的快速开发。

Matlab 拥有强大的矩阵运算、图形处理能力和内容丰富且可扩展的工具箱,但其界面开发能力较差,并且在数据输入、网络通信、硬件控制等方面都比较繁琐。

针对LabVIEW 和Matlab 两种软件的优势和不足,使用混合编程的方法,可以很好的结合两者的优势,互补不足,开发出更具智能化的虚拟仪器。

LabVIEW与Matlab的混合编程

LabVIEW与Matlab的混合编程

文章编号:1006-1576(2005)06-0111-02LabVIEW与Matlab的混合编程姚世锋,薛德庆,张彦斌,蔡继军(军械工程学院高炮教研室,河北石家庄 050003)摘要:LabVIEW和Matlab的混合编程,通过LabVIEW专有程序接口调用MATLAB实现。

其中,LabVIEW设计用户图形界面,负责数据采集;Matlab在后台提供大型算法供LabVIEW调用。

其程序的调用方法,可使用Matlab Script节点,或ActiveX函数模板。

关键词:Matlab;LabVIEW;混合编程;Matlab Script节点;ActiveX函数中图分类号:TP391.9 文献标识码:BMethod of Hybird Programming with LabVIEW and MatlabYAO Shi-feng, XUE De-qing, ZHANG Yan-bin, CAI Ji-jun(Staff Room of Archibald, Institute of Ordnance Engineering, Shijiazhuang 050003, China) Abstract: For hybrid programming of LabVIEW and Matlab, the hybrid programming is achieved by using calling MATLAB through proprietary program interface of LabVIEW. The user graphical interfaces was designed with LabVIEW and acquire the data. The large algorithm in background was provided by Matlab for LabVIEW calling. The program was called by using the Matlab node and ActiveX function template.Keywords: Matlab; LabVIEW; Hybrid programme; Matlab script node; ActiveX function1 引言实验室虚拟仪器开发过程中,对大量的信号的采集、处理以及分析,需要很强的很专业的应用软件进行处理。

基于DLL的LabVIEW与VC_Matlab混合编程

基于DLL的LabVIEW与VC_Matlab混合编程

现代计算机(总第二三三期)MODERNCOMPUTER2006.4实践与经验引言随着计算机技术和微电子技术的迅速发展,虚拟仪器应运而生。

美国NI公司开发的LabVIEW软件是一种高性能的图形化虚拟仪器编程软件,它主要用于开发数据检测、数据测量采集系统、工业自动控制系统和数据分析系统等领域,是虚拟仪器系统的主要开发工具之一。

但是其本身也存在不足,如不能完全提供用户所需要的驱动程序和调用系统程序实现底层操作,不擅长于完成大量数据处理的任务。

而VisualC++可方便、高效地与系统及底层硬件直接交换数据,Matlab提供了多种功能强大的工具箱,在信号和图像处理等领域具有无可比拟的优势。

因此,借助VisualC++和Matlab,可以充分发挥它们的优势来弥补LabVIEW的不足,无疑将增强LabVIEW对硬件I/O地址进行访问的能力和数据处理能力,将其不擅长或不易实现的任务完成,即制作动态链接库(DynamicLinkLibrary,简称DLL)是解决问题的一个重要技术。

DLL是一个可执行的模块,但不接受任何消息,所以并不可直接运行。

它只提供一群函数供Windows应用程序或其他的动态链接函数库调用[1],只有当应用程序被装入内存并开始运行时,才与相应的DLL建立链接关系;当执行到DLL中的函数时,根据链接产生重定位信息,Windows转去执行DLL中相应的函数代码。

多个程序使用相同的DLL时,内存只需要装载一次,可以高效经济地使用内存。

1LabVIEW对VisualC++和Matlab开发的DLL的调用(1)VisualC++开发DLL[2]利用VisualC++提供的向导功能可以很容易地建立一个不完成任何实质任务的DLL,主要的任务是如何给DLL添加功能。

①创建项目以在VisualC++6.0开发环境下为例,点击File→New并在随后出现的对话框中选择Win32DynamicLinkLibrary和AsimpleDLLProject。

1_基于数据库的LabVIEW与Matlab混合编程及其实现

1_基于数据库的LabVIEW与Matlab混合编程及其实现

收稿日期:2006-04-04作者简介:徐峰,硕士,专业为控制理论、控制工程;田作华,教授,博士生导师。

基于数据库的Lab V I E W 与Matlab 混合编程及其实现徐 峰,何黎明,田作华(上海交通大学自动化系,上海 200240)摘要:介绍了在Lab V I E W 中实现与数据库通信的几种方法,以及Lab V I E W 和M atlab 混合编程的几种实现途径。

并以配方优化系统为背景,利用DLL 技术和ActiveX 技术在Lab V I E W +MyS QL +Matlab 构架下实现线性规划算法,为在Lab V I E W 环境下解决基于数据库的复杂算法提供了一种实现途径。

关键词:Lab V I E W ;Matlab;MyS QL;线性规划中图分类号:TP311 文献标识码:A 文章编号:1000-8829(2007)02-0070-03Form ul a ti on O pti m i za ti on w ith M a tl ab and LabV I E W Ba sed on Da t aba seXU Feng,HE L i 2m ing,TI A N Zuo 2hua(Depart m ent of Aut omati on,Shanghai J iaot ong University,Shanghai 200240,China )Abstract:Some methods of database operating in Lab V I E W are described,and three kinds of s oluti on in constructing virtual instru 2ment using Matlab are als o p r ovided .How t o realize linear p r ogra mm ing under the truss of Lab V I E W +M yS QL +M atlab is intr o 2duced,and this realizati on will definitely p r ovide a way t o s olve s ome comp lex algorith m depending on database in Lab V I E W.Key words:Lab V I E W;M atlab;MyS QL;linear p r ogra mm ing M atlab 是以矩阵运算为基础的一种数学软件。

LabVIEW与Matlab混合编程的实现

LabVIEW与Matlab混合编程的实现

LabVIEW与Matlab混合编程的实现
梁晓刚;张永昌;翟弘泰
【期刊名称】《电脑开发与应用》
【年(卷),期】2009(022)009
【摘要】针对LabVIEW在数值分析和处理方面的不足,提出了实现LabVIEW与Matlab混合编程的几种方法.通过LabVIEW专有程序接口调用Matlab,LabVIEW 设计用户图像界面,负责数据采集;Matlab在后台提供大型算法供LabVIEW调用,其程序的调用方法,可使用MatlabScript节点或ActiveX函数模板.
【总页数】2页(P71-72)
【作者】梁晓刚;张永昌;翟弘泰
【作者单位】北方自动控制技术研究所,太原,030006;北方自动控制技术研究所,太原,030006;北方自动控制技术研究所,太原,030006
【正文语种】中文
【中图分类】TP391
【相关文献】
1.Matlab和LabVIEW混合编程的实现 [J], 李霄燕;杨俊宇;赵佳
bVIEW与MATLAB混合编程的实现 [J], 张晖;郑炜
3.基于LabVIEW与MATLAB混合编程实现频谱细化分析 [J], 苏宝定;王奉涛;王亮
4.基于DLL技术和COM组件技术实现LabVIEW和MATLAB混合编程 [J], 宋广
东;王昌;王金玉;路璐;魏玉宾
bview和Matlab混合编程方法的研究与实现 [J], 柴敬安;廖克俭;潘德辉;李淼因版权原因,仅展示原文概要,查看原文内容请购买。

Labview和Matlab混合编程方法的研究与实现

Labview和Matlab混合编程方法的研究与实现

Labview和Matlab混合编程方法的研究与实现柴敬安;廖克俭;潘德辉;李淼【期刊名称】《计算机测量与控制》【年(卷),期】2008(16)5【摘要】LabVIEW是一种高性能的图形化虚拟仪器编程软件,它在测试与测量、过程控制与处理,科学研究和分析等方面有广泛的应用,但是,LabVIEW在数值分析和数据运算处理等方面显得有些力不从心;通过其强大的外部接口.提出了基于DDE,DLL,ActiveX自动化,MATLAB Script节点技术的LabVIEW和MATLAB混合编程,并结合小波降噪、虚拟模糊热点温度分析仪实例,对这些方法进行了比较分析;利用混合编程既良好地发挥了仪器语言的优势,又扩展了算法工具箱,探索了智能虚拟仪器新的开发途径.【总页数】4页(P737-739,745)【作者】柴敬安;廖克俭;潘德辉;李淼【作者单位】辽宁石油化工大学,石油化工学院,辽宁,抚顺,113001;辽宁石油化工大学,石油化工学院,辽宁,抚顺,113001;辽宁石油化工大学,石油化工学院,辽宁,抚顺,113001;抚顺市质量技术监督局,辽宁,抚顺,113006【正文语种】中文【中图分类】TP31【相关文献】bVIEW与Matlab/Simulink混合编程方法及应用 [J], 黄世奎;彭宇宁;谢树平;韦德晖bview和Matlab混合编程方法在生物医学信号分析中的应用 [J], 于璐;张勇德;沙宪政BVIEW和MATLAB混合编程方法研究及其在柴油机故障诊断中的应用 [J], 李沈;李森;刘俊磊;侯祥林4.MATLAB/Simulink与LabVIEW的混合编程方法 [J], 谢树平;朱后;李黎;彭宇宁5.Matlab与LabVIEW混合编程方法应用研究 [J], 徐何;李滔;李勇因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机与现代化 2007年第8期J I S UANJ I Y U X I A NDA I HUA总第144期文章编号:100622475(2007)0820093203收稿日期:2006208214基金项目:广西自然科学基金资助项目(0663022)作者简介:彭宇宁(19592),女,四川成都人,广西大学电气工程学院高级工程师,研究方向:过程控制工程,网络化控制,虑拟仪器技术。

利用DLL 技术实现Lab V I E W 和MAT LAB 混合编程彭宇宁,朱 后(广西大学电气工程学院,广西南宁530004)摘要:介绍了利用DLL 技术实现Lab V I E W 和MAT LAB 进行混合编程的基本原理,并详细阐述了使用MAT LAB 插件和使用MAT LAB 引擎两种方法的步骤,最后对两种方法进行了比较,总结了基于DLL 混合编程的技术特点。

关键词:动态连接库;Lab V I E W;MAT LAB;混合编程中图分类号:TP311.13 文献标识码:AUsi n g DLL Techn i que to Rea li ze M i xed Programm i n g with LabVI E W and MAT LABPENG Yu 2ning,ZHU Hou(I nstitute of Electrical Engineering,Guangxi University,Nanning 530004,China )Abstract:This paper intr oduces the keyst one of using DLL t o realize the m ixed p r ogra mm ing with Lab V I E W and MAT LAB.A t the sa me ti m e,the step s of both methods are expatiated:usingMAT LAB Add 2in and invokingMAT LAB engine .I n the end of the article,we compare these t w o methods,and su mmarize the advantages of m ixed p r ogra mm ing via DLL.Key words:DLL;Lab V I E W;MAT LAB;m ixed p r ogra mm ing0 引 言Lab V I E W 作为虚拟仪器的开发软件,具有功能完整、应用灵活、易于理解、编程简单、开发效率高等优点,已成为虚拟仪器开发事实上的工业标准。

但其在工程计算、图形处理、先进控制、系统建模和仿真方面远不及MAT LAB 功能强大。

而MAT LAB 在循环处理、图形界面开发、数据输入、网络通信、硬件控制等方面也不如Lab V I E W 。

因此实现两者混合编程,将两者的优势结合互补不足,对于开发功能更为强大的虚拟仪器具有巨大的推动作用。

目前Lab V I E W 和MAT LAB 的混合编程方法有三种:第一种基于ActiveX 控件技术,包括MAT LAB 脚本节点和ActiveX 函数模板;第二种基于动态数据交换(DDE )技术;第三种基于组件对象模型(C O M )技术。

前面两种方法都不能脱离MAT LAB 环境独立运行,第三种方法相对独立且执行效率较高,但不能全面支持MAT LAB 的应用。

本文利用DLL (动态连接库)技术将Lab V I E W 、VC 、MAT LAB 混合编程有机结合起来,提出一种新的Lab V I E W 和MAT LAB 进行数据交换和控制的方法。

1 基本原理DLL (Dyna m ic 2L ink L ibrary )2动态连接库是基于W indows 程序设计的一个重要组成部分,它由一系列封装好的可执行代码组成,其内部函数能被其他程序所共享。

DLL 的编制与具体的编程语言及编译器无关,只要遵守DLL 的开发规范和编程策略,并安排正确的接口,不管用何种编程语言编制的DLL 都具有通用性。

LabV I E W 通过CLF (Call L ibrary Functi onNode )实现对DLL 的函数[1]。

另一方面,MAT LAB 通过MAT LAB 编译器和计算引擎为C 语言提供了功能强大的接口,可将与MAT LAB 通讯的C 代码编制成DLL 文件供LabV I E W 调用,实现Lab V I E W 和MAT 2LAB 间接数据交换。

下面举一个简单的例子(本例已在Lab V I E W 7.1,M icr os oft V isual C ++6.0,MAT 2LAB 6.5上通过),介绍利用DLL 实现LabV I E W 和MAT LAB 混合编程的两种途径。

94 计 算 机 与 现 代 化2007年第8期方法一:使用MAT LAB 插件生成的共享库(shared M 2DLL )。

MAT LAB 编译器可以将M 文件编译成C /C ++代码,然后利用C /C ++编译器将其再编译成DLL 供Lab V I E W 调用。

工作原理如图1所示。

图1 Lab V I E W 调用M 文件的原理图Math Works 公司为V isual Studi o 开发环境提供了一个MAT LAB 插件,该插件可使在VC ++工程中插入M 文件的工作自动化。

因此在下面的工作开始之前,应先为VC 6.0安装这个插件。

为了方便理解,以求一个阵列的正弦值的简单例子来说明其具体步骤。

(1)编写求一个阵列正弦值的M 文件(算法),此处M 文件应为函数文件。

functi on y =sin wave (x )y =sin (x );(2)保存好M 文件后,切换到VC 环境中新建包含此M 文件的shared M -DLL 工程。

(3)向工程添加数据交换和算法调用函数。

函数文件经MAT LAB 编译器后,其输入输出类型均为mx A rray 指针。

LabV I E W 支持标准C 数据类型(包括数值、数组、字符串、指针等)但不支持mx A r 2ray,所以必须将mx A rray 转换成标准C 数据才能正确传递给LabV I E W ,反之,标准C 数据必须转换成mx A rray 也才能作为M -DLL 中函数的参数。

这两个工作可分别通过mxGetPr ()和mxSetPr ()或者me mcpy ()来完成。

下面给出本例的数据交换和算法调用代码,其他应用与之类同#include "sin wave .h"//这个头文件与M 文件名相同#include "m_test .h"//这个头文件的名字与工程名相同#include "matlab .h"//包含mx 3()函数的声明/3_decls pec (dllexport )为VC 中DLL 声明导出函数的关键字,也可用.def 文件指定导出函数。

本例中此函数作为导出函数供Lab V I E W 调用,完成数据交换和算法调用等工作。

3/_decls pec (dllexport )void sine (double 3x,double 3y,int len ){mx A rray 3t m p =NULL ,3rslt =NULL;double 3t;int i;m_testI nitialize ();//此函数由MAT LAB 插件自动生成,与工程名有关,用来初始化库函数。

//给mx A rray 实部赋值t m p =mxCreate Double M atrix (1,len,mxRE AL );mxSetPr (t m p,x );//M 文件中的函数转化成C 代码后,带了一个前缀m lf,参数类型则变为mx A rray 指针rslt =m lfSin wave (t m p );//获取mx A rray 实部内容t =mxGetPr (rslt );for (i =0;i <len;i ++)y[i]=t[i];//终止库函数调用m_testTer m inate ();}(4)编译此工程,然后在Lab V I E W 中用CLF 调用该DLL 。

图2为Lab V I E W 中调用此M -DLL 中sine 函数的程序框图,他相当于求阵列[0:∏/10:2∏]的正弦值,其运行结果如图3所示。

图2 程序框图 图3 运行结果方法二:利用MAT LAB 计算引擎。

MAT LAB 计算引擎是一系列允许用户在别的程序中与MAT LAB 交互的函数库和程序库。

在调用过程中,MAT LAB 引擎函数库工作在后台,MAT LAB 通过它与别的应用程序进行通信。

因此将MAT LAB 引擎函数包装在DLL 中供Lab V I E W 调用,就可以实现Lab V I E W 和MAT LAB 间的数据通讯。

下面给出上述例子用MAT LAB 引擎实现的DLL 代码,将其编译成DLL,在LabV I E W 中用CLF 调用并做好相关参数设置即可,其他应用与此相似:#include <engine .h >#include <windows .h >//启动MAT LAB 引擎_decls pec (dllexport )int openEng (int 3addr ){Engine 3ep;if ((ep =eng Open (NULL ))==NULL )return 0;else{engSet V isible (ep,0);//隐藏MAT LAB 命令窗口3addr =(int )ep;return 1;//打开matlab 引擎成功}}//关闭MAT LAB 引擎 2007年第8期彭宇宁等:利用DLL技术实现Lab V I E W和MAT LAB混合编程95 _decls pec(dllexport)int cl oseEng(int addr){if(engCl ose((Engine3)addr))return0;elsereturn1;//关闭成功}//执行MAT LAB命令,在这之前和之后做必要的数据传递。

_decls pec(dllexport)void sine(int addr,double3x,double 3y,int len){mx A rray3A=NULL,3B=NULL;double3bReal;int i;Engine3ep;ep=(Engine3)addr;A=mxCreateDouble M atrix(1,len,mxRE AL);me mcpy((void3)mxGetPr(A),(void3)x,sizeof(x));engPut V ariable(ep,"A",A);engEvalString(ep,"Y=sin(A);");B=engGet V ariable(ep,"Y");bReal=mxGetPr(B);f or(i=0;i<len;i++)y[i]=bReal[i];}使用MAT LAB计算引擎前,先调用openEng打开计算引擎,并将引擎指针保存在addr中,供后面的程序使用。

相关文档
最新文档