为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > Matlab与+VB、+VC高级语言的接口方法

Matlab与+VB、+VC高级语言的接口方法

2011-10-23 5页 pdf 184KB 22阅读

用户头像

is_245458

暂无简介

举报
Matlab与+VB、+VC高级语言的接口方法 !"#$"% 是 !"#&’()*+ 公司于 ,-./ 年推出的 一套高性能的数值计算软件 0 它集数值分析、矩 阵运算、信号处理和图形显示于一体,构成了一个 方便、界面友好的用户环境 0 它还包括了 1(($%(2 3工具箱 4 的各类问题的求解工具,可用来求解特 定学科的问题 0 具有可扩展性、易学易用性和高 效性 0 由于 !"#$"%具有如此之多的特点,在欧美 高等院校,!"#$"%已成为应用于线性代数、自动控 制理论、数理统计、数字信号处理、时间序列分析、 动态系统仿真等高级课程的基本教学工具;在研 究单位、...
Matlab与+VB、+VC高级语言的接口方法
!"#$"% 是 !"#&’()*+ 公司于 ,-./ 年推出的 一套高性能的数值计算软件 0 它集数值、矩 阵运算、信号处理和图形显示于一体,构成了一个 方便、界面友好的用户环境 0 它还包括了 1(($%(2 3工具箱 4 的各类问题的求解工具,可用来求解特 定学科的问题 0 具有可扩展性、易学易用性和高 效性 0 由于 !"#$"%具有如此之多的特点,在欧美 高等院校,!"#$"%已成为应用于线性代数、自动控 制理论、数理统计、数字信号处理、时间序列分析、 动态系统仿真等高级课程的基本教学工具;在研 究单位、工业部门,!"#$"%也被广泛用于研究和解 决各种工程问题 0 然而 !"#$"%自身所存在的某些 缺点限制了它进一步应用的范围 0 3 , 4 !"#$"%是一种解释性语言,因此它的实时 效率是相当差的 0 例如在一个电机控制系统项目 中,采用 !"#$"%语言编写的仿真程序,在工业用 控制机 3奔腾 555 4上需要 /6 789,而同样的算法,用 :语言实现,仅需 ;6多秒 0 由此可见,!"#$"%的 语言执行效率是比较低的 0 3 / 4 !"#$"%程序不能脱离其环境运行,因此它 不能被用于开发商用软件 0 3 ; 4 !"#$"%程序可以被直接看到程序的源代 码,因而不利于算法和数据的保密性 0 3 < 4 不能实现端口操作和实时控制 0 在工程应用中,一般用 =:,=>,: ? ? >@8$AB) 等高级语言编写应用程序,实现交互界面、数据采 集和端口操作等,但这些高级语言在数值处理分 析和算法工具等方面,其效率却又远远低于 !"#C $"%语言 0 在准确方便地绘制数据图形方面,!"#C $"%语言更具有无可比拟的优势 0 此外,!"#$"%还 提供功能强大的工具箱 0 因此,如果能够实现 !"#$"%与其他可视化设计语言的交互,提高速度, 美化界面,使程序更符合 ’89A(D+的规范,同时又 利用 !"#$"%的强大功能实现优势互补,将获得极 大的效益 0 实现程序混编的目的是把计算过程留给 !"#$"%,而用 : ? ?等可视语言对计算结果进行分 析或者可视化处理 0 !"#$"%和其他语言的接口编 程有多种途径,具体有如下几种 0 , 中间文件传递法 从严格意义上讲,这种方法不能真正认为是 两种语言的混合编程,但由于这种方法在实现起 来是很方便的,不要求一些复杂的编程技巧,因而 对某些课题项目还是很有用的 0 实现的方法是, 用一种自己熟悉的高级语言编写前端用户交互界 面,并搜集必要的参数信息,保存在一个中间文件 中 3如 E")"0 #2# 4,然后利用异步程序调用方式执行 !"#$"%程序 0 在此之前必须用 !"#$"%语言编写好 一个能完成特定任务的 0 7文件 3如 #B+#0 74,该文 件将从 E")"0 #2# 读取所需的参数信息,执行任务 并返回结果 0 同样 !"#$"%程序得到的结果也应保 存在一个文件中,供给前端用户程序使用 0 对该 方法应注意两点: 3 , 4 !"#$"%程序的启动,对于 =>可以使用下 面的语句来调用 7"#$"%程序: +&B$$(“ F7"#$"%G H %89 H7"#$"%0 B2B I 789878JB I ) 摘 要:首先介绍了当前在国内外十分流行的工程设计和系统仿真软件包 !"#$"%的优缺点,然后 展开介绍了 !"#$"%与 =>K =:进行接口的常用的几种方法K 即中间文件传递法、动态连接库 LMM、动 态数据交换 LLN、引擎应用程序、OP#8QBR自动化服务技术和 !"#P(7等方法,最后对其效果进行了 小结 0 关 键 词:!"#$"%软件;接口技术;动态数据交换;OP#8QBR自动化服务;引擎 中图分类号:1S ;,,0 , 文献标识码T O 张学典 ,,赵学玲 /,许家群 ,K 唐任远 , (,0 沈阳工业大学 特种电机研究所,辽宁 沈阳 ,,66/;;/0 天津大学 精密仪器学院,天津 ;666U/ ) !"#$"%与 =>、=:高级语言的接口方法 收稿日期:/66, I 6U I 6- 作者简介:张学典 3 ,-U< I 4,男,山东烟台人,沈阳工业大学硕士生 0 第 /;卷第 V期 / 6 6 , 年 ,/ 月 沈 阳 工 业 大 学 学 报 W(@)9"$ (X Y&B9Z"9[ \98QB)+8#Z (X 1BP&9($([Z 文章编号:,666 I ,V)*!+*,? @ ,&’/ 最后对 于 A B B和 CD-!-*’语言,由于 )7=67E提供了一 套可供 A 调用的 789 函数集,所以完全可以在 A B B中访问 / )7= 文件 / )7= 文件是 )*!+*, 专 用的数据存储格式 / 在 F&’:DG#系统中,566是一种很特别的可 执行文件,可以被多个 F&’:DG#应用程序同时访 问,具有固定的共享数据段 / 该数据段的数据在 566被 F&’:DG#下载前会一直保留在内存中,因 此可以通过 566实现用户程序与)*!+*,之间的数 据传输和函数调用 / 具体地说,就是利用 )*!+*,的 H1位动态连接 库(566),生成相应的可以被 A B B调用的 566, 用来提供二者之间的基本支撑环境 / 只需在用户 程序中加载该 566,即可实现其数据段的共享 / 然后在用户程序中操作 566数据段的数据,并通 过某种方式在用户程序中使 )*!+*, 执行该 566, 就可实现用户程序对 )*!+*,的调用 / 其形式可以 是混合编程或函数调用,非常方便而高效 / 在 > )*!+*, ? @ " 从 #’?1@(+61 控件中获得当前的 !31-3< 命令字符串并 =’>发送到 !31-3>3(C D #’?1@(+61A #’?1 =’>使 EE&执行字符串命令 A #’?1@(+61A $9(F&?’G61’ /B,.>>3(C #’?1@(+61A $9(F!.C’ D 7<$9(FH.(’ =’> 在引擎主题下对控件 #’?1*61+61 和 >31-3<之间的 =’>进行初始化 #’?1*61+61A $9(F!.C’ D 7<$9(FH.(’ #’?1*61+61A $9(F#.+9G D I!"#$"% J &()9(’I #’?1*61+61A $9(F@1’> D I&()8129()=’/6-1I #’?1*61+61A $9(F!.C’ D 7<$9(F!3(63- =’>请求前一个 &()&73-8129()命令执行的结 果赋值给 =’>控件 #’?1*61+61A 1’?1A #’?1*61+61A $9(F=’K6’/1 #’?1*61+61A $9(F!.C’ D 7<$9(FH.(’ &(C @: &(C 86< 这种实现方式比较简单,但将增大主程序代 码,影响运行速度,且存在一些主要限制 A 如不能 对图像结果进行处理 A L 引擎应用程序 !31-3<引擎程序指的是那些通过管道(在 MN H@O系统中)或者 "G197’O(在 P9(C.Q/系统中)与 独立 !31-3< 进程进行通信的 , R , S S或者 T.2N 123(程序,具体说,引擎应用程序的实质是把 !31N -3<做为一个引擎,它允许从你自己的 , S S程序 调用这个引擎 A 在运行时,引擎作为一个进程单 独运行,你的 , S S程序也作为一个进程单独运 行,二者可以通过进程间的通信机制进行交互 A !31-3< 引擎库 ’()9(’A U 包含了若干个控制 !31-3<引擎的函数,如表 ;所示 A 同时,引擎应用程序还可以使用 "5@ 函数, !31-3<提供了一系列的例程,使得别的程序可以 调用 !31-3<,从而把 !31-3<用作一个计算引擎 A !31-3<同样提供了一个函数库来启动或者结 束 !31-3<进程、与 !31-3<交换数据以及发送 !31N -3<命令 A V "G197’O自动化服务技术 !31-3<在 P9(C.Q/平台上提供了 "G197’O自 动化服务 W"G197’ "61.>319.( 8’27’2 X 的能力,自动 化是一种 "G197’O,它允许被称之为‘控制器’ W ,.(12.--’2 X 的程序或部件来控制另一种‘服务器’ W 8’7’2 X 的程序或部件 A 因此,Y%或 Y,程序可以 作为控制器来启动和控制 !31-3 !31$3< "/ *声明对象变量 E9> =’/6-1 "/ 8129() 8’1 !31$3< D ,2’31’*创建一个 !31-3<应用对象 =’/6-1 D !31$3执行 >31-3<命令 /62:并返回结果 A [ !31G.>\ !31-3<与 , S S的接口 !31U#..-/公司推出的 !31G.>可将 !31-3<的 源代码译成同等功能的 , S S源码,既保持了 !31-3< 的优良算法,又保持了 , S S的高执行效 率 A 它最主要的特点是能够将 ! 语言的文件转 化为 ,语言的代码,并通过 Y9/63- , S S和 %.2N -3(C , S S将其编译成可执行程序(&O&)或动态 链接库(E$$)A 下面将详细介绍如何使 !31-3<与 , S S接口 A 首先应设置 !31G.>所对应的编译器类型、数 第 [期 张学典等:!31-3<与 Y%、Y,高级语言的接口方法 L]V 万方数据 !"#$%&’($ )$#*+,- .$#/$$" )’#0’. ’", +#*$% *12*30$4$0 5%+2%’)1"2 0’"26’2$- !"#$% &’()*+,-./ !"#0 &’()1+-23/ &4 5+,)6’-.,7#$% 8(-)9’,-. :.; <=(-9,-2 4-+>(?@+A9 BC 7(D=-B1B29/ <=(-9,-2 ..EE3F/ G=+-,H 3; 7+,-I+- 4-+>(?@+A9/ 7+,-I+- FEEEJ3/ G=+-, K 7.-#%’(#8 7=( ,*>,-A,2(@ ,-* *+@,*>,-A,2(@ ,LB’A M,A1,L ,?( *(@D?+L(* +- A=( N,N(?; <(>(?,1 +-A(?C,D( O(A=B*@ L(AP((- M,A1,L ,-* BA=(? N?B2?,OO+-2 1,-2’,2(@ @’D= ,@ QR/ QG (AD,?( ,?( N?(@(-A(*/ +-D1’*+-2 M+**1( S+1(@ 7?,-@NB?A+-2/ T9-,O+D U+-V U+L?,?9 :TUUK / T9-,O+D T,A, WXD=,-2( :TTWK / W-2+-( #NN1+D,A+B-/ #DA+>( #’) ABO,A+B- <(?>(? ,-* M,ADBO; C+-,119 ,-,19@+@ ,-* @’22(@A+B-@ ,LB’A A=( BDD,@+B- ,*BNA+-2 A=(@( O(A=B*@ ,?( N’A CB?P,?*; 9$: /+%,-8 )’#0’.; 1"#$%&’($ #$(*"1<6$; ,:"’)1( ,’#’ $=(*’"2$;’(#14$ ’6#+)’#1+" -$%4$%; $"21"$ 据类型 ; 具体接口方法有以下三种方式: : . K 利用 M#7G0M 生成独立执行的 W&W文 件 ; 虽然在 M,A1,L 环境中也可以由 M 文件生成 执行程序,但此 W&W文件仍不能脱离 M,A1,L的后 台支持,利用 M#7G0M则可以生成不再需要 M,A) 1,L环境支持的 W&W文件 ; 其生成方法相当简便, 直接利用 M#7G0M 菜单 S+1( Y GBON+1( AB (X( Y, 然后选择你要生成的 M 文件 / M#7G0M 便会自 动完成 W&W 文件的编译与链接 ; 编译完以后, 便可以在 TWR4% 目录中找到与 M 文件同名的 W&W 文件 ; : 3 K 利用 M#7G0M 生成动态连接库(TUU) 文件 ; 这一功能只针对 QG而开发,*11的生成方 法如同生成 W&W 文件的方法,它可以生成针对 QR,WXD(1,T(N=+等的动态连接库文件,使用起来 非常方便 ; 生成 TUU 的过程中同样要生成 GZZ 文件,M,A=ABB1@公司建议用户:如果是用 QG开发 程序,最好直接使用 M#7G0M编译生成的 GZZ文 件,而不是直接使用 TUU文件 ; : F K 实现在 Q+@’,1 G [ [ \; E环境中直接对 M 文件进行编译 ; 进入 QG [ [ \; E后,点击 7BB1@菜 单,然后点 G’@ABO+](/ 选择 #** ^ +-@ ,-* O,D?B C+1(@/ 点击 R?BP@(,然后选择插入的文件类型为 ; *11 文件 / 在 M#7G0M 的 L+- 目录下找到 O>) D+*(; *11,点击 0_; 在 QG的工具栏中便会出现一 个新的工具栏/这样就可以直接在 QG环境下编译 M文件了 ; J 结 论 本文结合实际介绍了 ‘+-*BP@ 应用程序对 M,A1,L的调用的几种接口方法,其中文件传输和 引擎 #DA+>(& #’ABO,A+B- <(?>(?方法应用较多,一 般能较好的满足实验室和科研工作的需要/ 但对 于利用 QG语言开发的大型商业用软件和实时性 要求较高的软件则可考虑 M,ADBO方法 ; 参考文献: a . b 0 c ",?( % M Z/ 5(--+-2@ $ 8; SB’-*,A+B-@ BC T+@A?+L’A(* #?A+C+D+,1 d-A(11+2(-D( aM b ; 5B=- ‘+1(9 e
/
本文档为【Matlab与+VB、+VC高级语言的接口方法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索