用MATLAB和Visual+C混合编程及应用.pdf
《用MATLAB和Visual+C混合编程及应用.pdf》由会员分享,可在线阅读,更多相关《用MATLAB和Visual+C混合编程及应用.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、文章编号:!#$%$($&()&!%&)%&(工程应用用!#$%和&()*+,*混合编程及应用庞承宗,李宝树,王晓云(华北电力大学 电力系,河北 保定!&()-./01!#$%*21&()*+,*30450*6*21 78(99+:*842+,-./0123%4523,67 895%:0;,95%?;2(-5A0/029 BC1DAD+5E1 F2G1:A?,895H23!&(,/029)收稿日期:$&$%!&%$I/(80*:8:J01 K2DKC1:92H A01 0?LH K539MM23 M1A05H 5NO,J6,8 92H P/*A05;30 O,J6,8,+7 92H
2、 O,J6,8D5MKC1:91 2A5H;D1HQ A0 92 1R9MKC1 5N D9CC23 A01 K5E1:K1DA;M H12:A?N;2DA52 2 A01 O,J6,8 A55CL5R,A01 0?LHK539M M1A05H:CC;:A9A1H;AC423 A01 O,J6,8 12321:A1D02S;1Q 7A:05E:A09A D5MKC?23 A01 K539M L?A01 E9?5N:A9AD 2A1%C2T931 D92 L1 129LC1HQ;R%C923;931 K539M;12321;D5MKC1摘要:论述了通过 O,J6,8 应用程序接口(,+7)和 O
3、,J%6,8 编译器实现和 P/混合编程的原理与方法。以 O,J6,8工具箱中的功率谱密度函数的调用为例,分析说明了利用O,J6,8 引擎技术与 P/互连,实现复杂程序的编译,并介绍了以静态链接库的方式编译程序,保证了程序的通用性。关键词:O,J,68;P/*混合编程;引擎;编译器中图分类号:J+(!文献标识码:,O,J6,8 是美国 O9A0:;9C/*是美国 OD5:5NA 公司推出的可视化/*编程环境,P/*U&是目前功能最强大、最复杂的软件开发工具之一,具有许多先进特性,被广泛应用于 2H5E:($位平台的基础应用程序开发。P/可以很容易实现菜单、工具条等,具有强大的图形界面编程能力,
4、而且最后可以生成脱离 P/环境而独立运行的应用程序。然而当使用它来完成如小波分析、信号处理、绘制图形等功能,就需要用户自己去编写函数,非常繁琐,很不方便。而O,J6,8 虽然具有强大的工程计算功能和丰富的工具包,但界面编写功能简单,不能满足一些用户的要求,而且它不能脱离其编程环境运行。因此,可以采用 O,J6,8 和 P:;9C/*混合编程,各取所长,实现功能互补。!O,J6,8 编译器和 P/互连编程O,J6,8 编译器是 O,J6,8 系统扩展的重要组成部分,用户可以利用此编译器把 O,J6,8 的 O文件转化成/或/*语言的源代码。)U(版之后的O,J6,8 含有的编译器为$U&版本,其
5、主要功能有!:9Q 产生可构造 OB=文件的/语言源代码;LQ 产生/或/*源代码,这些源代码与其他模块相结合,可以形成独立的外部应用程序,该程序可以脱离 O,J6,8 运行环境,但需要 O,J6,8/或/*数学函数库的支持;DQ 产生和 VM;C2T 配合使用的/OB=的 V 函数,可以提高 V 函数的运行速度。其中可以利用前$种类型实现和 P/互连。在使用 O,J6,8 编译器之前,需要对其进行两方面的设置。首先,根据外部编译器的类型、软件位置对 O 编译器进行设置。方法是,在 O,J6,8 命令窗中运行M1R%:1A;K,然后根据屏幕提示选择合适的/或/*编译器,并完成配置。当外部编译器
6、类型、版本或路)W!$&(电力科学与工程B6B/JX7/+YBX V/7B-/B,-Z B-.7-BBX7-.径发生变化,可随时根据需要再次进行配置。然后,为产生独立外部应用程序进行预配置,并对!#$%&数学函数库进行选择。同样,在!#$%命令窗中运行()*+,-./0)1,根据屏幕提示进行配置。该配置也可以随时根据需要修改。在配置完!#$%编译器之后,就可以利用该编译器实现和 2&互连了,方法有以下 3 种。(4)!56 文件!56 文件是!#$%系统的外部程序调用接口,是用&语言或 78909:;语言编写,通过!#-$%的应用程序接口(*;,8?.平台下表现为,+文件。因此,转换后的!56
7、 文件既可在!#$%环境下运行,也可脱离!#$%环境以,+文件形式被其他程序调用。通过这一途径可以实现 2&与!#$%混合编程。(3)可独立运行的程序用!#$%编译器 AA 命令,选择合适的参数选项(各参数功能如表 4 所示)3,就可以把输入的!文件转换成需要的&共享库或&B&CC 的源代码,再经过&B&CC 编译器,生成独立的应用程序。表 4编译器 3D 参数选项功能一览表参数选项功能描述-E将!文件编译链接为&的!56 文件-将!文件转换为&源代码并编译链接为独立的可执行文件-1将!文件转换为&CC 源代码并编译链接为独立的可执行文件-F(大写)将!源代码的 F 函数文件编译链接为&!56
8、 形式的 F 函数。以上程序如果在 2&环境下编译通过,还需要几个库文件+*;(G*+/,+,+*(:0+(,+,+*(AA,+,+*(E,+的支持,建议采用静态链接的方法实现。3用!#$%引擎与 2&互连如果用&B&CC 语言实现矩阵计算、求逆、奇异值分解或进行快速傅里叶变换(77#),是很复杂的,而!#$%的基本数据单位就是矩阵和向量,并且具有功能强大的库函数,调用!#$%实现相应功能很简单。这样,用 2&作前台界面,!#-$%作后台分析计算,就可以扩大编程的灵活性,缩短软件开发时间。!#$%自身提供了=(应用程序接口)来实现与其他程序的通信,该=支持的功能主要有3::H 在!#$%程序中
9、调用已有的&或 789-09:;语言程序;(H 在不同应用程序之间传递数据;AH 建立!#$%程序与其他程序的主从关系;,H在&或 78909:;程序内调用!#$%函数。!#-$%*;,8?.平台下,这一过程通过 A0*J/6 通道实现与!#$%通信,这种方法不要求链接整个!#$%,只需要载入!#$%引擎库,节省了大量的系统资源。!#-$%引擎库中提供的主要&语言调用函数见表 33。表 3支持&语言程序的!#$%引擎函数函数名功能5;IK1/;打开!#$%引擎5;I&+8./关闭!#$%引擎5;I)099:L将数据送入!#$%引擎5;IM/099:L从!#$%引擎中取出数据5;I5J:+F09
10、*;I在!#$%引擎中执行输入的!#-$%命令5;IK)01)0%)GG/9产生一个缓冲区以保存!#$%的输出N2&和!#$%混合编程举例本例程序应用!#$%引擎技术实现与 2&的混合编程。软件编制环境为1?*;OP 第二版,2&CCQD,!#$%RN,2&与!#$%均安装在 5盘。(4)生成静态库文件在利用!#$%引擎实现 2&和!#$%混合编程时,为了保证程序的通用性,应该采用静态链接库的形式。而 3 个必需的!#$%库文件+*(/;I+*(和+*(E+*(在!#$%目录中没有,只有相关的动态链接库文件+*(/;I,+和+*(E,+,所以需要用这 3 个动态链接库生成我们所需要的库文件。可
11、以利用 2&自带的命令行编译工具+*(/E/来DQ电力科学与工程3DDN实现!,除此之外还需要#$%&(和一个动态链接库)*+,-./&,,这!个文件所在的目录分别为 0#1234*456 7#*89:68,#4;724#,JU56CG:D$N4#*#$+3()#$6#;O$G#$!+;F F定义一个引擎指针)(?339L!V NWAA;)(?339L!:MN V NWAA,!X V NWAA;,48-#)!/Y;543(#V/;#Z!/Y;#)#)#V/&/Y!#;F F打开 0?A?B 引擎,建立与 0?A?B 的链接F F为信号建立一个)(?339L向量#5(!(+V$GD+$(NWAA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB Visual 混合 编程 应用
限制150内