VC与Matlab的混合编程研究及其应用
MATLAB和vc混合编程
第30卷第3期2014年6月天津理工大学学报
JOURNALOFTIANJINUNIVERSITYOFTECHNOLOGYVol.30No.3Jun.2014
文章编号:1673-095X(2014)03-0005-04
VC与Matlab的混合编程研究及其应用
甘
禹,陈
炜,杨秀萍,王收军
(天津理工大学机械工程学院,天津300384)
摘
要:介绍了基于组件对象模型的VC与Matlab混合编程方法,以MatlabCOMBuilder模块为转换工具,将M函数
转换为COM组件后打包发布应用在VC程序中,结合一个平面四自由度机械臂运动控制仿真实例,详细描述了各个编程接口的实现过程,并验证了平面四自由度机械臂仿真系统的可行性.关键词:VC;Matlab;COM组件;混合编程中图分类号:TP24
文献标识码:A
doi:10.3969/j.issn.1673-095X.2014.03.002
MixedprogrammingbetweenVCandMatlabanditsapplication
GANYu,CHENWei,YANGXiu-ping,WANGShou-jun
(SchoolofMechanicalEngineering,TianjinUniversityofTechnology,Tianjin300384,China)
Abstract:AmethodwhichisdevelopedusingmixedprogrammingbetweenVCandMatlabbasedontheComponentObjectModel(COM)isintroduced.Asaconversiontool,theMatlabCOMBuildermoduleconvertstheM-functiontotheCOMcomponentsimulationmodulewhichispackaged,releasedandappliedinVCprogram.Combinedwithmotioncontrolsimula-tioninstanceofa4DOFplanarmanipulator,eachprogramminginterfaceimplementationprocessiscompletelydescribedandverifiedthefeasibilityofthe4DOFplanarmanipulatorsimulationsystem.Keywords:VC;Matlab;COMcomponent;mixedprogramming
机器人仿真系统是以机器人实体为模型,在虚拟的环境中完成机器人的设计、实现,有效地解决了设计、制造、运行过程中产生的理论问题;优化了机器人软、硬件设计,缩短机器人的研发周期.工作站级的仿真系统功能齐全、实时性高、真实性强,可以产生近似真实的仿真画面,但是其通用性较差,使用不方便等不足之处.VisualC++是Windows下功能强大的集成应用开发环境,既能用于底层的硬件驱动开发,同时还拥有强大的可视化编程的能力,但在数值分析、矩阵运算的实现功能上缺乏高效性.Mat-lab作为交互式仿真软件,它集科学计算、信号处理、系统仿真与图形可视化于一体,编程效率高;然而使
收稿日期:
基金项目:作者简介:通讯作者:
用解释性语言决定其代码执行效率低,处理具有要求高实时性的问题时显示出低效性.
针对以上所述问题,国内外学者将VC语言与Matlab相结合,对二者混合编程方法做了大量研究.钱伟、费树岷
[1]
曹法会以及彭秋红、
[2]
使用
Matlab自带的MatlabCompiler(mcc编译器)生成DLL,实现信号采集系统仿真,使仿真程序具有不依赖Matlab环境直接调用Matlab中的库函数的优势.蔡浩宇,王红波
[3]
通过mcc编译器生成DLL设
计单级倒立摆系统的LQR线性二次型调节器,实现过程验证混编在控制系统仿真的巨大优势.李文煜
[4]
则是利用Matlab引擎进行VC和Matlab的混
2013-11-08.
国家自然科学基金(11302147);天津市科技发展基金(20100402);天津市复杂系统控制理论及应用重点实验室资助项目.
E-mail:gy-dlz@126.com.男,硕士研究生,甘禹(1988—),
陈炜(1973—),博士.女,副教授,
MATLAB和vc混合编程
·6·
天津理工大学学报第30卷第3期
合编程,在Matlab后台环境中完成对机器人的图像处理等操作.王周益、刘继兴
[5]
deploytool将能在计算机上使用.执行Package命令,
会把发布该组件所需的所有文件打包到名为compo-nentname_pkg的可执行文件中.Matlab7.x产生的COM组件必须运行在MCR,如果目标计算机上没有安装MCR,则要在打包组件时添加MCR.在上例中,打包的结果将产生名为componentname_pkg的可执行文件,它实际上是可自解压的ZIP压缩文件,包含下列3个文件:
_install.bat、componentname-projectversion.dll、mwregsvr.exe
将componentname_pkg.exe复制到目标计算机上运行,并执行_install.bat将会自行安装MCR、注册组件componentname-projectversion.dll.
使用第三方软件
Matcom来实现控制双臂机器人左臂运动控制仿真,并将钱伟使用的混编方法与使用Matcom软件对比,阐述了使用第三方软件相对于mcc编译器的优越性.夏欣
[6]
则利用Matcom开发了数据读取与利用Matcom4.5与VC++结合编使用3种不同的混编方法均实
处理及图形绘制的界面程序,实现了数据测量测试,刘宁,刘财
[7]
程的新方法实现EDA介质中的地震波正演的模拟.穆以东、赵岭
[8]
现了VC与Matlab的无缝链接,将VC界面开发与Matlab计算与显示功能融为一体.
本文将采用COM组件技术实现VC与MATLAB的混合编程,兼顾开发效率和性能,是开发机器人仿真系统的最佳选择.该方法实现简单,通用性强,可以不依赖于Matlab环境运行,并能使用Matlab的任何函数.因此在程序复杂、调用工具箱函数或调用函数较多时推荐使用.
2运动仿真实例
本仿真平台软件用于模拟多功能平面机械臂这
个实物平台,通过COM组件将控制程序的数据传递给MATLAB,利用运动控制算法处理数据,再由COM组件实现数据的返回.程序结构框架如图1所示
.
1
1.1
基于COM的VC与MATLAB的混合编程
配置MATLABC/C++编译器
setup即可在Matlab命令行环境执行mbuild-
[4-5]
.根据屏幕开始设置将要用到的C/C++编译器
提示,选择MicrosoftVisualC++2010,完成对Mat-lab编译器以及相应的C/C++编译器的配置.完成配置以后,下次可直接生成COM组件,不需要再次配置.1.2
使用MATLABCOMBuilder生成COM组件1)创建m文件,定义所需功能函数.在Matlab环境中编写m文件,定义所需的功能函数,用于实现数据处理,数值分析,图像处理等功能操作.
2)创建COM组件.在Matlab命令行执行de-ploytool命令,创建组件工程,定义组件类并为组件类添加(1)编写的m文件,编译当前工程的COM组件.从编译信息可知,编译COM组件的同时,也在计算机上注册了该COM组件,确保该组件像其他COM组件一样在VC中使用.
3)打包组件及MCR.由2)所创建的COM组件只能在当前计算机上使用,为了能够把它发布到其他计算机上使用,还需要其他一些支持文件.由于COM组件不同于普通的DLL文件,必须经过注册才
2.1
MATLAB运动控制算法
本文利用模糊PID控制算法实现机械臂操作空间中点到点的位置控制.模糊PID控制是运用模糊数学的基本理论和方法,把规则的条件、操作用模糊集表示,并把模糊控制规则作为知识存入知识库,然后计算机根据控制系统的实际响应,运用模糊推理,
[6]
自动实现对PID参数的最佳调整.模糊控制器以
图1
Fig.1
仿真控制程序框架
Frameworkofsimulationcontrolprogram
误差e和误差变化ec作为输入,利用模糊控制规则在线对PID参数进行修改,根据下式计算实现不同时刻的e和ec对PID参数自整定.
…… 此处隐藏:4636字,全部文档内容请下载后查看。喜欢就下载吧 ……- 基于PLC控制的航空电镀生产线自动输送
- 中考预测课内外文言文对比阅读2
- 2018-2023年中国商业智能(BI)产业市场
- 中国金融体制改革研究2011new
- 外窗淋水试验方案
- 精益生产(Lean Production)
- 学校安全事故处置和信息报送制度
- Chapter 5 Human Resources Management
- 【小学数学】人教版小学六年级上册数学
- 初中数学解题方法与技巧
- 山东省创伤中心建设与管理指导原则(试
- 函数与数列的极限的强化练习题答案
- 10分钟淋巴按摩消脂
- 网络应急演练预案
- 服装设计入门基础知识
- 初二数学分式计算题练习
- (人教新课标)高二数学必修5第二章 数列
- 最新自主创业项目
- 北京大学 无机化学课件 4第4章 配合物
- 贸易公司业务管理制度




