vc++与matlab混合编程技术在现代控制理论系统仿真中的应用

vc++与matlab混合编程技术在现代控制理论系统仿真中的应用

ID:30792605

大小:55.50 KB

页数:5页

时间:2019-01-03

vc++与matlab混合编程技术在现代控制理论系统仿真中的应用_第1页
vc++与matlab混合编程技术在现代控制理论系统仿真中的应用_第2页
vc++与matlab混合编程技术在现代控制理论系统仿真中的应用_第3页
vc++与matlab混合编程技术在现代控制理论系统仿真中的应用_第4页
vc++与matlab混合编程技术在现代控制理论系统仿真中的应用_第5页
资源描述:

《vc++与matlab混合编程技术在现代控制理论系统仿真中的应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、VC++与Matlab混合编程技术在现代控制理论系统仿真中的应用【摘要】现代控制理论中的控制系统仿真实质上是使用计算机进行控制系统的状态空间矩阵的运算,而对状态空间矩阵以及相应控制算法的编程占据了仿真过程中的主要工作量。利用VC++与Matlab的混合编程可以有效减少与矩阵运算相关的编程工作量,使得在VC++环境下的控制系统仿真变得可行且高效。本文结合单级倒立摆的LQR控制,阐述并印证了VC++与Matlab混合编程这一方法在现代控制理论系统仿真中的作用。【关键词】VC++;Matlab;混合编程;现代控制理论一、引言现代控制理论是建立在状态

2、空间基础上的一种控制理论,是自动控制理论的一个主要组成部分。在现代控制理论中,包括线性系统和非线性系统,定常系统和时变系统,单变量系统和多变量系统,它们在建模Z后都表达为矩阵形式,因此通过计算机进行控制系统的仿真,实质就是利用计算机来进行矩阵运算。小型控制系统进行仿真时,所涉及的控制算法以及矩阵运算量都是有限的,因此对仿真的效能耍求较低。而当需耍进行复朵系统的仿真试验吋,不仅编写相应的控制算法消耗大量的人力,较低的程序执行效率也将消耗大量的计算机运算能力,I大I此选取和使用快捷高效的仿真开发方法显得尤其必要。Matlab是一种应用广泛的数学类

3、科技应用软件,在数值运算尤其是矩阵运算方面有着非常好的表现,用户不需耍深刻了解算法及编程技巧,只需掌握了入门的数学知识和程序设计能力就可以利用其进行复杂的科学计算,如今已经成为学界理论分析和实验研究所必须掌握的软件工具Z—。但限于其本身是-•种解释方式运行的高级计算机语言,在进行重复计算工作时执行效率较低,且运算过程不能脱离计算机环境进行。VC++是微软公司推出的开发环境VisualStudio中的一个组成部分,用户可以利用其进行快速的Windows应用程序开发,设计出图形界面丰富的功能软件,但是在编写矩阵运算时缺少专业的数据类型变量,当编写

4、复杂的算法时不免要消耗大量的编程时间[l][2]o比较两者的优缺点后不难发现,Matlab易于使用但是在仿真时程序运行效率低

5、3

6、,实吋性较差,使用条件有限,VC++不便于宜接进行矩阵计算但是代码运行效率高,实时性较好,应用范围广,也就是说,如果通过混合编程能让两者的优势互补,在工作屮将大大减少在算法编程方面的工作量,并且能够改善仿真程序代码的运行效率以及实时性,为科研工作和工程开发提供更强大的技术支持。二、混合编程方法简介口前VC++与Matlab相结合的混合编程主要有以下几种方法[4]:1.在VC++中调用Matlab引擎(Engine)

7、这种处理方法不要求链接整个Matlab,只需嵌入必要的Matlab引擎库,节省了大量的系统资源,使应用程序整体性能更好,处理效率更高,但这种混合编程的方法需要Matlab在后台适吋运行不能脱离Matlab环境,严重影响了程序的通用性,因此这种方法在实际开发过程中很少采用。2.Matlab调用由C/C++编写编译为mex文件的函数这种方法是对Matlab函数库和-•种补充,用户可以自已编写一些高效或者具有特定功能的函数,利用编译器把它们编译为mex文件,供Matlab调用,相当于添加口定义的Matlab函数。3.在VC++中调用Matlab生成

8、的动态链接库这种方法通过指定的编译器,把由Matlab编写的m函数文件编译成动态链接库文件(dll)。只需在程序开发和发布中包含其生成的动态库,就可以在VC++程序屮调用封装好的Matlab函数,实现数值算法的运用。这种方法可以使程序脱离Matlab运行环境,减少文件外部存储空间的占有量,并实现了代码共享。4•使用COM组件对象模型技术实现混合编程COM技术是一种应用广泛、方便灵活的方法,是利用Matlab捉供的DeployTool工具实现Matlab与C/C++的混合编程。COM给软件开发人员提供了一种共享二进制代码的方法,但是由于缺乏可视

9、化界面,其应用范围受到一定限制。三、混合编程实例与验证从实际应用角度考虑,前两种编程方法虽然简便,但适用范围狭窄,第四种方法适用性好于前两种方法,但需要用户掌握较高的程序设计水平,不便于科研人员使用。本文选用第三种方法进行编程,并以控制工程中经典的单级倒立摆系统的LQR线性二次型调节器的设计为例,描述这一方法的实现过程,验证其在控制系统仿真中能够带来的优势Z处。木文所采用的软件版木是VisualStudio2008和MatlabR2010ao1.混合编程步骤(1)Matlab编译环境的设置控制算法从Matlab到VC++的代码转制要通过编译器

10、來进行,所以首先要设置Matlab的编译环境。启动MatlabR2010a,在命令窗II中输入命令mbuild・sehap,根据出现的捉示选择合适的编译器,本文所使

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。