五支点双曲肘合模机构优化设计中Matlab COMBuilder与VC混合编程的应用

合集下载

C_Builder与Matlab混合编程的两种方法

C_Builder与Matlab混合编程的两种方法

科学技术与工程6卷C++Builder与Matlab混合编程的两种方法杜高鹏翟正军1*徐隽(西北工业大学软件学院,西安710065;dgp_2003@126.com;西北工业大学计算机学院1,西安710072)摘要详细论述了C++Builder与Matlab混合编程的两种实现方法。

一是在C++Builder中使用COM技术调用Matlab数据。

二是脱离Matlab环境,通过动态连接库方式实现对Matlab工具箱函数的调用。

分别给出一个详细的例子。

这两种方法都充分发挥了C++Builder与Matlab的优势,为科学研究和工程技术提供了更强的技术支持。

关键词C++BuilderMatlabCOM组件Mediva软件平台DLL中图法分类号TP312文献标识码BMatlab是一个高度集成的系统,它把数值计算和可视化环境集成到一起,非常直观,而且提供了大量的函数,使其越来越受到人们的喜爱。

它集科学计算、图象处理、声音处理于一体,具有极高的编程效率。

近年来,Matlab已经从最初的“矩阵实验室”渗透到科学与工程计算的多个领域,在自动控制、信号处理、神经网络、模糊逻辑、小波分析等多个方向,都有着广泛的应用。

BorlandC++Builder是一种新颖的可视化编程语言,它既具有C++语言的灵活性、高效性,又具有可视化编程的便利性,功能丰富强大,界面友好,使用十分方便,但是在矩阵运算、数值分析、工程计算等方面,功能则稍嫌不足;在工程应用中,我们一般用C++Builder语言编写应用程序,实现交互界面、数据采集和端口操作等,但C++Builder在数值处理分析和算法工具等方面,其效率远远低于Matlab语言。

在准确方便地绘制数据图形方面,Matlab语言更具有无可比拟的优势。

此外,Matlab还提供功能强大的工具箱。

但Matlab的缺点是不能实现端口操作和实时控制。

因此,若能将两者结合运用,实现优势互补,将大大提高工作效率。

基于COM接口的VC与MATLAB混合编程

基于COM接口的VC与MATLAB混合编程

基于COM接口的VC++与MATLAB混合编程摘要介绍了VC++与Matlab混合编程的各种方法,并分析了各种方法的优缺点。

以FFT算法为例,给出了基于COM接口的VC++与Matlab混合编程的步骤。

关键词 VC;COM;Matlab;FFT;混合编程0 引言目前,Matlab广泛的应用于自动控制、数学运算、信号分析、图像处理、财务分析等各行各业。

MATLAB也存在着某些缺点:Matlab是一种解释性语言,其特点是以矩阵为基本数据结构,导致其执行效率相对C或C+ +语言要低很多;因为Matlab程序不能脱离其环境运行,故不能直接用于商用软件的开发。

与此相反,VC++由于其丰富得人机界面,高效的执行效率已经成为基于Windows平台下开发商业软件的必备工具。

然而,VC++对于复杂的数值运算就有点“力不从心”了。

所以将VC++与Matlab完美的结合,发挥各自的优势具有现实意义。

自Matlab6.5版本开始,新推出来的Combuilder支持把用Matlab编写的程序做成com组件,供其他语言调用。

该方法实现简单,通用性强,成为VC与Matlab混合编程最有效的方法。

1 VC与Matlab混合编程的方法1.1 通过Matlab Engine方式Matlab Engine是指一组Matlab提供的接口函数,支持C语言, Matlab Engine采用C/S(客户机/服务器)模式,Matlab作为后台服务器,而C程序作为前台客户机,通过Windows的动态控件与服务器通信,向Matlab Engine传递命令和数据信息,从Matlab Engine接受数据信息。

用户可以在前台应用程序中调用这些接口函数,实现对Matlab Engine的控制。

采用这种方法几乎能利用Matlab全部功能,但是需要在机器上安装Matlab软件,而且执行效率低,因此在实际应用中不采用这种方法,在软件开发中也不可行,这种模式只适合个人使用或做演示。

VC++与MATLAB混合编程COM组件法

VC++与MATLAB混合编程COM组件法

COM 是component object module 的简称,它是一种通用的对象接口,任何语言只要按照这种接口标准,就可以实现调用它。

matlab6.5 新推出来的combuilder 就是把用matlab 编写的程序做成com 组件,供其他语言调用。

该方法实现简单,通用性强,而且几乎可以使用Matlab 的任何函数(注意:不支持脚本文件,脚本文件使用时要改为函数文件),因此在程序较大、调用工具箱函数或调用函数较多时推荐使用,这也是Matlab 公司(Matlab 公司就是Mathworks公司)推荐的使用方法。

COM(Compponent ObjectModel 组件对象模型)是一项比较复杂的技术,详细讲的话几本书也讲不完,所以在这里不作介绍,本文通过一个例子详细介绍如何在matlab 下做COM 组件,以及如何在VC 中调用COM 组件。

首先在Matlab 编辑器里编辑m 函数文件:启动matlab->File->New->M-file 函数内容如图1:该函数无输入输出参数,文件保存为huatu.m。

function huatu()x=-10:0.1:10;y=sin(x);plot(x,y);在matlab 下建立COM 组件,步骤如下:1、在matlab command window 输入如下命令:>> deploytool出现以下界面:2、新建工程:File->New Deployment Project;弹出选择对话框如下图3、左侧选择Matlab Builder NE,右侧选择Generic COM Component;4、Name中输入工程名(比如hello4.prj);单击OK;出现下面界面5、右击hello4选择rename class可以改为合适的类名(比如huatu,这里没改);6、右击hello4class选择add file添加huatu.m文件(必须是函数文件);添加后如下图7、点击Tools->Build。

基于COM接口的VC_与MATLAB混合编程

基于COM接口的VC_与MATLAB混合编程

这种方法可以很灵活的调用 Matlab 来编写应用程序,但要求 读者对 C/C++语言非常熟悉,并且这种模式不能包括所有的 Matlab 函数,尤其是无法充分使用 Matlab 提供的详尽的绘图 函数。 1.3 用 Matlab 自带的 Matlab Compiler
Matlab Compiler 的作用是将 m 文件转化成 C/C++代码 (也就是通常所用的 mcc 命令),这种源代码需要用 C/C++编 译器编译连接成独立应用程序,在将 m 文件转成独立应用程 序的过程中生成的 C/C++文件,原则上是可以被其它的 C/C++ 代码调用的,编译器可以通过设置 mcc 命令的选项,将 m 文 件编译成动态链接库文件、C/C++文件、可执行文件等一系 列文件。到 matlab R21.1 为止,Matlab Compiler 的 m 程序转 换成 C/C++代码功能有很多限制:
[3]ZSP 500 Digital Signal Processor Core, technical manual,
果为参照,不断地修改,为大规模复杂运算的实现提供了时 September 2003
间保障,满足了实时性要求,各种DSP尽管结构和指令集不
[4]ZSP 500 DSP Architecture, 2003
·58·
计算机与信息技术
软件纵横
⑵部分绘图语句无法实现或得不到准确图象,尤其是三 维图象;
⑶当涉及到的复杂函数调用时嵌套的文件数量很多。 因此在不涉及到三维做图以及 m 文件不大的情况下推荐 使用。 1.5 使用 Matlab 的 Combuilde 工具 COM 是 component object module 的简称,它是一种通用 的对象接口,任何语言只要按照这种接口标准,就可以实现 调用它。Matlab6.5 新推出来的 Combuilder 就是把用 Matlab 编写的程序做成 com 组件,供其他语言调用。该方法实现简 单,通用性强,而且几乎可以使用 Matlab 的任何函数(注意: 不支持脚本文件,脚本文件使用时要改为函数文件),因此在 程序较大、调用工具箱函数或调用函数较多时推荐使用,这 也是 Matlab 公司推荐的使用方法。

VC与Matlab混合编程的实现

VC与Matlab混合编程的实现
机/ 务 器 的计 算 模 式 .通 过 Wid w的 A t e 服 no ci X v M C U eMF naS a dD L f F :s C i h r L 系统 菜 单 e 通道 和 Ma a 进 行 连 接 。f) 用 M t b数 学 函 工 程 \ 置 \连 接 对 象 \ 模 块 添 加 l mal. tb l 2应 al a 设 库 i t b b
1 引 言 、
MA L ec p t %\xeni ld \p a n
V 60是 Wi o s 面下 计算 机 专 业 人 士 进 C. n w 界 d
行 软 件开 发 时 的一种 强 大工 具 .在 图形 用 户界 面 需要 说 明的是 ,如果 Ma a t b的版本 不 同 , l 这 开发 方 面有 优势 . 码效 率 高 . 而在 科 学计 算 方 里看 到 的路 径就 会有 差 别 . 如 Ma a 6 代 然 例 t b 5和 Ma— l t 面能 力却 略 显不 足 。例如 , 当我们 采 用 V C作 为 开 l 7 a 4的路 径就 会有 所 差别 b 发 工 具 解 决 图 像处 理 和 模 式 识别 领域 的 问题 时 . Se .注 意 %Malb e trk bw n 2 \ . tp 3 t %\xenl \ i3 mi a i 经常需 要 进行 一 些复 杂 的矩 阵计算 例 如计 算 矩 阵 c0o \ v6 r fmsc 0中 的 * i 件 与 你 需 要 调 用 的 函 st .b文 1
12 7
福 建 电

2 1 第 4期 0 2年
V C与 Ma a t b混合 编 程 的 实现 l
黄 红兵
( 建农 林 大 学计 算机 与信 息 学院 福 建 福 州 3 0 0 福 5 0 1)

VC和matlab混合编程画图实践

VC和matlab混合编程画图实践

VC和Matlab混合编程画图实践2013-03-14【摘要】在DSP软件开发中,基于代码的可移植性的需要,首先要基于VC平台开发出纯C定点版本。

为了对定点代码的精度和性能进行充分测试,需要对其进行定点仿真并与浮点的性能比较。

浮点代码的性能可以很容易的通过Matlab仿真得到,但由于VC与Matlab对仿真结果的保存形式不同,比对结果的过程需要人为完成。

并且VC对定点仿真的结果保存为文本形式,不够直观。

当仿真或测试条目较多时,这一过程将变得重复而繁琐,因此为了将这一过程变得更自动化、更直观,本实践介绍了一种利用VC调用Matlab动态链接库的方法,通过VC直接调用Matlab的方法进行画图,能够更直观、更方便的分析定浮点仿真结果的差异。

【关键词】Matlab Engine动态链接库VC定点仿真Matlab画图一、问题的提出在VC平台软件开发中,需要对实现的定点代码进行定点仿真,观测最后的BER曲线,并与浮点的结果做对比,观察其性能差异。

然而,VC平台的仿真结果只是保存在数组中的结果,不能直观的展示给测试人员,仍需人为的提取分析,这样便造成重复劳动和时间上的浪费,因此需要寻找一种简单易行的方法,实现将VC的仿真结果画图呈现出来。

二、解决思路Matlab作为数据仿真分析的工具十分强大,其包含了非常丰富的数学运算库和与外部工具的接口,众所周知,利用Matlab画图是十分方便的,只需将仿真结果,外加画图的参数传递给Matlab的命令函数,就能非常方便的完成画图,简单易行。

Matlab与VC的接口方式有很多种,如引擎的形式,COM 组件的形式,动态链接库的形式等等,因为动态链接库的形式在之前的实践中已经研究过,并且相对成熟,因此本实践将着重介绍将Matlab的函数编译成动态链接库供VC调用方法,对于引擎的和其他方式略做简单介绍。

三、实践情况3.1 工具与环境准备1)Matlab环境准备:本实践中采用的Matlab版本为R2011b。

VC与Matlab的混合编程研究及其应用

VC与Matlab的混合编程研究及其应用

Abstract:A
method which is developed using mixed progralmning between VC and Matlab based introduced.As

on
the Component Object
to
Model(COM)is
component
conversion
提示,选择Microsoft
Visual
C++2010,完成对Mat—
图1仿真控制程序框架
Fig.1
lab编译器以及相应的C/C++编译器的配置.完成
配置以后,下次可直接生成COM组件,不需要再次 配置. 1.2使用MATLAB
COM
Framework of simulation control program
摘要:介绍了基于组件对象模型的VC与Matlab混合编程方法,以Matlab
COM
Builder模块为转换工具,将M函数
转换为COM组件后打包发布应用在VC程序中,结合一个平面四自由度机械臂运动控制仿真实例,详细描述了各个 编程接口的实现过程,并验证了平面四自由度机械臂仿真系统的可行性. 关键词:VC;Matlab;COM组件;混合编程 中图分类号:TP24 文献标识码:A
offuzzy PID
钱伟,费树岷,杨柯.仿真系统中Vc与Matlab混合 编程的研究『J].控制工程,2005,12(3):251—
253,272.
『2]
彭秋红,曹法会.基于vc和Matlab混合编程的系统仿 真『J].机电产品开发与创新,2009,22(3):128—130.
CLSID clsid; C LSIDFromProglD f OLESTR(”tuzzpid—inn.{hzzpid—

matlab与vc混编

matlab与vc混编

matlab与vc混编matlab与vc混编-概述篇--转贴自pris学术论坛第一章、详述...第一章、概述matlab就是当今世界上采用最为广为的数学软件,它具备相当强悍的数值排序、数据处理、系统分析、图形表明,甚至符号运算功能,就是一个完备的数学平台,在这个平台上,你只需寥寥数语就可以顺利完成十分复杂的功能,大大提高了工程分析排序的效率。

另外由于matlab的广为采用,于是发生了向各个领域专门采用的工具箱(即为在某一研究领域常用数学工具的函数纸盒),这些工具箱的发生更加推动了matlab的盛行。

matlab强大的功能只能在它所提供的平台上才能使用,也就是说,你必需在安装有matlab系统的机器上采用.m文件,这样就给工程排序增添了非常大不便;特别就是,在matlab中,并使用的行解释方式执行代码,这样大大地限制了代码执行速度。

于是人们想到,能否开发一个matlab与其他高级语言的USB,这样就可以把matlab的强悍功能带入各种应用程序中,并且通过高级语言编译器编译为2进制代码,从而大大提高了执行速度。

1.用matlab的mcc将.m文件翻译为cpp源文件,然后在c编译器中调用也可以用mcc编程编程为stand-alone程序。

是我最喜欢用的方法。

方法1和2/3各有利弊,1不积极支持图形(积极支持图形的库国内现在还没d),1对类积极支持也比较,2积极支持绝大多数的matlab语句(包含图形),但对于struct等的积极支持也有缺陷。

vc++中使用matlab的c++数学库和mcc生成的程序0、概述matlab5.3的提供了c/c++数学库,其中的c++数学库功能很强,使用它可以用类似matlab的语法编写c++程序,十分方便。

虽然速度上仍然比手工c/c++程序慢,但是由此换来的高效的开发效率和可靠性往往是值得的。

另外mcc命令可以将m文件转化为c或cpp文件,编译后可以脱离matlab运行,它们也是使用的c/c++数学库。

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

五支点双曲肘合模机构优化设计中Matlab COMBuilder与
VC混合编程的应用
赵俊;杨于光
【期刊名称】《橡塑技术与装备》
【年(卷),期】2011(37)12
【摘要】双曲肘合模机构的设计变量和约束条件繁多,必须应用Matlab等数学软
件来处理优化计算过程。

在五支点合模机构优化设计中利用VC调用Matlab进行优化设计将使工程设计人员节省大量的时间和资源,能把更多有限的时间用在创新
型的设计上。

用VC++来做应用程序的界面,而用Matlab来实现优化程序的功能。

【总页数】4页(P59-62)
【关键词】合模机构;优化设计;Matlab;VC++;混合编程
【作者】赵俊;杨于光
【作者单位】北京化工大学
【正文语种】中文
【中图分类】TQ320.5
【相关文献】
1.五铰链双曲肘注射机合模机构的优化设计 [J], 朱成实;葛铁军
2.基于MATLAB的注塑机五支铰斜排双曲肘合模系统优化设计 [J], 石绍伟;杜思莹;杜遥雪;徐百平
3.双曲肘五铰链内卷式合模机构的节能研究与优化设计 [J], 周宏伟
4.注塑机双曲肘斜排列七支点合模机构的设计研究 [J], 张友根
5.基于MATLAB软件GUI技术的双曲肘合模机构优化程序设计 [J], 申军伟因版权原因,仅展示原文概要,查看原文内容请购买。

相关文档
最新文档