- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
??
???
基于VC++和MATIAB混合编程的数控软件开发
???
?
?
?
?
?
???
???
?
?
?
?
?
???
?
?
?
?
VisualC++编程环境作为一个具有卓越性能和可视化编译环境的程序开发工具,可以开发从底层系统级到高层用户级的各种软件。但VC++在图象处理、工程计算和图形显示方面的应用夏杂而麻烦。
MATLAB编程语言将数值分析、矩阵运算、信号处理等高性能的数值计算与图形可视化集成在一起,非常有利于工程技术人员更方便地解决问题,从而大最用于科学研究和工程领域,然而,MATLAB还存在一些不足:MATLAB编写的程序不能脱离MATLAB环境执行,以行解释方式执行代码的机制限制了代码执行速度,程序源代码的裸露也不利于知识产权的保护。
近几年,在科学计算软件的开发中,VisualC++MATLAB编技术越来越受到关注,采用VisualC++和MATLAB混编技术能够充分发挥VC泪开发平台优势,同时又结合了MATLAB在科学计算上的优点,例如矩阵运算、大最优秀的工具箱函数等,对于软件的开发创造了便而可靠的方式。
1VC和MATLAB集成方式
MATLAB为了改善自身的不足不断推出应用程序接口组件(mexmatengine,MATLAB编译器MATLAB运行时服务器等技术,其中应用程序接口组件应用方便,但是不能脱离MATLAB环境,MATLAB运行时服务器仍然是命令解释执行方式,在运行效率上无法与VC等一类基于代码编译环境的编程工具相比。不适用于计算最大的工程,其中MATIAB编译器(mcd可以将MATLAB的m文件(MATLAI3源程序)翻译为VC++文件,擂入到VC++编译器中(如图1所示),是灵活实现VC++脱离MATLAB环境调用MATLAB功能的方法,正越来越多地应用到科学计算软件的开发中,虽然很多人开始了解通过mcc编译器使VC++调用MATLAB文件的方法,但调用过程中由于MATLAB文件自身的特点而引起了程序开发的一些问题,使得很多人并不能真正很好地使用这一方式,本文结合具体课题中的一个实例对vC斗娜MATLAB混编中的一些难点进行分析和解决。MATLAt3提供的MATLABAdd_in宏的工具条可以更方便地在vC环憧中直接调用m文件,省掉了编译和加入工程的手工步骤,但原理还是应用了mcc编译器,性质MATLAB为了改善自身的不足不断推出应用程序接相同,为了方便说明,本文中仍采用mcc编译器的方法说明。
2混合编程的过程
在某项国防基础科研项目中,为解决数控加工过程中加工工艺参数的选择和优化问题,在对铣削加工过程相关动力学仿真技术进行充分研究的基础上设计和开发了一套基于数控铣削过程的动力学仿真优化应用软件SinuCut整个仿真系统的开发是基于动力学仿其分析与研究的前提下,对铣削过程中所涉及到的主要物理最吸铣削力,转矩,功率,刀具和工件振动情况,工件表面形貌,颤振稳定域和刀具磨损等方面)给出了仿真计算,软件的开发若在MATLAB下实现,虽然能够充分利用M洲的强大的图形处理功能和数值计算优势,但仿真运算速度慢,源代码没有进行编译,并且依赖MATLAB平台,独立性、移植性差。而在VC环境下开发则过于繁琐,采用混编的方式就快捷多了。例如仿真系统软件中一个子功能是铣削力系数的辨识,需要以实测的铣削力数据以及工况条件用多元线性回归的方法辨识出铣削力公式的系数,多元线性回归也可用C++代码实现,但要麻烦得多,然而MATLAB环境下只要几个函数就可解决了,类似这样的情况不少,考虑到一些复杂的功能可以由MATLAB工具箱的丰富数学函数轻松解决,因此充分利用MATLAB的工具箱函数可以使软件的开发更加便捷,更加可靠。下面以具体实例说明混合编程的过程:
?
-全文完-
?
文档评论(0)