LABVIEW和MATLAB混合编程方法研究及其在柴油机故障诊断.pdf
《LABVIEW和MATLAB混合编程方法研究及其在柴油机故障诊断.pdf》由会员分享,可在线阅读,更多相关《LABVIEW和MATLAB混合编程方法研究及其在柴油机故障诊断.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2 0 0 7 芷 第 1 期 仪表 技术与传感器 I n s t r u me n t T e c h n i q u e a n d S e n s o r 2 0昕 No 1 L A B V I E W 和 MA T L A B混合编程方法研究及 其在柴油机故障诊 断中的应 用 李沈,李森,刘俊磊,侯祥林(1 东北大学机械工程与自动化学院,辽宁沈阳1 1 0 0 0 4;2 中国船舶重工集团七一一研究所,上海2 0 0 0 1 1;3 沈阳建筑大学理学 院,辽宁沈阳1 l O 1 儡)摘要:通过虚拟仪器平台I a b V I E W 强大的外部接口,分别实现了基于 A c t i v e
2、 X自动化、D L L和 C O M 3种技术的 I a b V I E W 和 M A T L A B的混合编程,同时对这些方法进行了比较分析。混编程序既良好发挥 了仪器语言的优势,又扩展 了算法工具 箱,探索了新型智能虚拟仪器的开发途径。同时结合柴油机故障诊断实例,验证 了文中系统开发思想在工程 实际中应用 的合理性和 实用性。关键词:I a b V I E W;M A T L A B;A c t i v e X;D L L;C O M;虚拟仪器;柴油机;故障诊断 中图分类号:T P 2 1 2 1 2 文献标识码:B 文章编号:1 0 0 21 8 4 1(2 0 0 7)0 1 0 0
3、 2 2 0 4 s t u d y o n P r o g r a m M e t h o d o f La b VI EW Mi x s wi t h MATL AB a n d En g i ne e r i n g Ap p l i c a t i o n s L I S h e n 1,L I Sen 2,L I U J u n-l e i ,HOU Xi a n g-l i n 3 (1 S c h o o l o f Me c h a n i c a l r i n g&A t R mmt i o n,N o r fl m a s t e r n U n i v e r s i
4、t y,S h my a n g 1 1 0 0 0 4,C l i l l a;2 V i b r a t i o nN o i s eR e s e a r c hC e n t e r o f a Ma r i n eD i s e l|g i 耻 R e s e a r c hI n s t i t u d e,蚰 a i 2 0 0 0 1 1,C l i l l a;3 S c h o o l 0 f S d mc e,S i ma y a n g J m mh ut hi v e r s i ff,S i ma y a n g 1 1 0 1 6 8,C h i n a)Ab!如
5、喇:h n p l e me m t h e h y b ri d p r o g r a mmi n g b e t w e e n I a b V I E W an d MA T L A B p a r t i c ula d y b a s e d o n t h e t h r e e m e t h o d s v i z Au t o ma-ti o n o f A c t i v e X,D L L a n d C OM C o m p a r e an d a n a l y z e the me t h o d s a t the 8 a l n e ti me T h e
6、h y b ri d p r o g r a mmi n g r i O t o n l y m出 n g u s e o f th e a d v ant a g e o f th e i n s m mz n t l a n g u a g e,b u t a l s o e】甲 龇 l d i n g th e,o ri t h m t o o l b o x and i n v e s t i g a t e the d e v e l o p m e n t p a t h o f t h e n e w in t e l l i g e n c e v i r t u a li n
7、 s t r u me n t Co mb i n e dw i th thei n s t a n c e o f d i e s e l e n g i n ef a u l t dia g n o s i s,therat i o n a l i t yandt h e p r a c ti c a b i l i t y o f thei d e a s 0 n in a c t u a l p r o j ect w a s c e r ti fi ed Ke y wo r d s:klb v 1 EW;MA T L A B;Ac t i v e X;DL L;C OM;v i r
8、t u a l i n s mmzn t;die s e l;f a u l t dia g n o s e 0 引言 美国 N I 公司推出的 I a b V I E W是一种面向对象的虚拟仪器 编程语言。但是在对各种算法的支持方面,I a b V I E W 的工具 箱非常有 限,这就制约了大型应用程序 的开发效率。M a t h Wo r k s 公司开发的 M A T L A B具有强大的矩阵运算和图形处理功 能,编程效率高,几乎在所有的工程计算领域都提供了准确、高效的工具箱。但 M A T I AB界面开发及流程控制能力较差,并且数据采集、网络通信、硬件控制等方面都 比较繁琐,而 且
9、脚本文件不能脱离 M a t l a b这个应用程序环境,这就制约了 程序的可移植性和通用性。通过 I a b V I E W 强大 的外部接 口,实现 I a b V I E W与 M A T L A B的混合编程,互相取长补短,充分 发挥两者的优势,可 以快速开发功能强大 的智能化虚拟仪 器。在进行混合编程开发虚拟仪器的过程中,通常由 I a b V I E W 设计用户图形界面,负责数据采集、硬件控制、运行控制、网络 通信;而 M A T L A B则提供神经网络、小波分析等复杂算法供 基金项 目:辽宁省博士启动基金资助项 目(2 0 0 1 1 0 2 0 1 7);辽宁省教育厅 基金
10、(2 0 )收稿 日期:2 O O 6 1 0 1 8 I a b V I E W调用。常用的混合编程方法是调用 M A T L A B脚本节点,但这种方 法不能控制 M A T L A B服务器,打开脚本的速度很慢,当节点中 的脚本执行完毕后,MA T L A B也不能 自动关闭,不适合大型应用 程序的开发。但是如果应用 A c ti v e X 自动化、C O M、1)1技术,通 过 I a b V I E W强大的外部接 口调用 M A T L A B工具箱,不仅实现了 对 M A T L A B的自动化控制,而且编译后的 M A T L A B语句运行速 度快,与 L A B V I
11、E W的兼容性更好,混编程序的鲁棒性更强,更 能充分发挥两者的优势,快速开发出功能强大的智能化虚拟仪 器。文中正是基于这样的虚拟仪器开发与应用的思想。1 基于 L a b V I E W 和 MA T L A B快速编制虚拟仪器的原理 基于 A c t i v e X 自动化可以控制 MA T L A B服务器的运行状 态;而利用 C O M和 D L L技术可以很大程度上脱离 MA T L A B的 运行环境,并且程序运行效率高,占用资源少,为故障诊断的实 时处理创造条件,上述几种技术的综合运用将获得 良好的编程 及应用结果。1 1 基于 A c t i v e X自动化的虚拟仪器开发 A
12、v t i v e X的自动化(a u t o m a ti o n)具有一个程序借助其方法和 属性控制另一个程序的能力。I a b V I E W 和 MA T L A B都支持 A c 维普资讯 http:/ 第 1 期 李沈等:L A B V I E 和 MA T L A B混合编程方法研究及其在柴油机故障诊断中的应用 2 3 t i v e X的自动化技术,通过启动 M A T L A B自动化服务器,I a b V 1 E W 将数据传入 M A T L A B工作空间,执行 M A T L A B命令,再将结果 输出,从而实现 I a b V 1 E W与 M A T L A B的
13、混合编程。I a b V I E W通过标识号(R e f e r e n c e N u mb e r,R e f n u m)与 M A T-L A B自动化服务器相连,通 过 自动化节点 函数调用 M A I L A B (V e I 6 5)A c ti v e 接 口提供的方法和属性。使用 A c t i v e X功能节点 与MA T L A B混合编程时,要进行变体型(V a r i a n t)与其他类型的 数据转换。变体型是一种特殊的数据类型,I a b V I E W 中不支持 该类型,但提供了 G语言数据转化节点(t o G D a t a),把变体型数 据转换成 I a
14、 b V I E W可以处理和显示的有效的数据类型,这就要 求必须明确输入、输出的数据类型。但是 I a b V I E W在调用 G e t F u U Ma t fi x 方法从指定 的 MA T L A B工作空间获取数组并处理变 体型数据时,经常会出现类型转化错误而导致程序无法继续运 行。如果通过调用 E x e c u t e 方法输出字符串,读取 M A T L A B命令 窗口的计算结果来获取工作空间的数组,则可不必处理变体数 据类型。在后续的程序编制中需要处理字符串与数值数据之 间的转换,并应注意数值数据的类型。1 2 基于 C O M 的虚拟仪器开发 I a b V I E
15、W对 C O M组件的控制也是通过 A c ti v e)子模板的自 动化节点函数来实现的。讥邶提供的 C O M B u i l d e r 工具可以 将 M文件转变为独立的 C O M组件对象,并 自动在操作系统中注 册,所生成的 C O M组件对象可以在 I a b V I E W 中使用。C O M对象 返回的数据是变体型数据,需明确输出数据类型,通过使用 G语 言数据转化节点将数据转变为 I a b V 1 E W能够识别的数据类型。C O M B u il der 支持多数图形函数和 M A B数学库函数,但不直 接支持 M A _q Y A B工具箱中的函数。这是由于工具箱函数库
16、属于 外部库,而不像 MA A B数学库那样属于运行时库,因此在脱离 M A _q Y A B环境时,无法构成对“工具箱 函数”的支持。但 由于 M A _q Y A B工具箱函数是基于 M A _q Y A B数学库函数的,因此理论上 可以将该工具箱函数中包含的各子函数(同为工具箱函数)逐层 分解为全部使用 M A _q Y A B数学库函数构成。在单个“m文件”中,最终确保所有功能实现部分仅仅使用 M A _q Y A B数学库函数而没 有嵌套的调用工具箱函数。那么对于这样处理后的“工具箱函 数(m文件)”就可以使用编译器“打包”成为 C O M了。1 3 基于 D L 1 L的虚拟仪器开
17、发 利用 M A _q Y A B开发D I L(d y n a m i cl i n kl i b r a r y)在 I a b V I E W环境 中调用,是实现两种语言混合编程的高级技术。基于 D I L进行 数据采集已经在虚拟仪器系统 的开发中有着广泛的应用,但基 于 D I L进行工程算法开发还应用得很少。其主要原因在于,用 传统语言开发算法模块难度大、效率低;用工程语言开发的模块 移植性差。文中利用 C、M A B共同开发 D I L模块,由M A _q Y A B 开发算法,由 C完成 I a b V I E W和 M 佃【A B之间的数据转换及传 递,很好地解决了上述问题。I
18、 a b V I E W中对 D I L的调用是通过 C L F 节点实现的。使用 M A B的H l c e 命令将 m文件编译为动 态链接库(*D I L),由于编译器只能编译一个独立的 M文件,不 支持 MA A B工具箱中的函数及图形函数,因此使用MA A B工 具箱中的函数时,要对算法文件进行相应修改。1 4 混合编程原理 图及几种开发方 法的比较分 析 基于 1 1 1 3 可以绘制混合编程原理如图 1 所示。图 1 混合编程原理 图 基于 A c t i v e X自动化技 术的开发方 式可 以方便地使 用 MA T L A B的各种工具箱。基于 C O M组件开发方式编译方便,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LABVIEW MATLAB 混合 编程 方法 研究 及其 柴油机 故障诊断
限制150内