王 鑫,马 丁
1.91245部队,辽宁葫芦岛 125001
2.91851部队,辽宁葫芦岛 125001
vc++与MATLAB开发驾驶模拟控制系统
王 鑫1,马 丁2
1.91245部队,辽宁葫芦岛 125001
2.91851部队,辽宁葫芦岛 125001
本文在介绍了VC++与MATLAB编程方法的基础上,开发了驾驶模拟控制系统仿真实例,详细描述了其具体的实现过程。
VC++;MATLAB;驾驶模拟;控制系统
MATLAB是比较流行的三大数学软件之一。它在数学应用类软件中数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其它编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用。本文主要阐述MATLAB结合vc++可视化编程软件开发驾驶模拟控制系统。
在VC环境中编写应用程序界面调用加载MATLAB动态链接库,实现两者合作开发应用程序。该种方法的配置步骤:
1)首先在MATLAB命令提示符下输入mbuild-setup 命令,选择visual C++6.0编译器完成编译器设置;
2)设定头文件和库文件路径。在VC++环境设置包含文件,将MATLAB6.5中的msvc++6.0添加进去。然后以同样的方法添加MATLAB6.5的包含文件;
3)设置编译连接选项。在VC++环境菜单栏中选择Project->setting,然后选择link选项卡,在object/library modules栏中添加mclmcrrt.lib libtest.lib;选择General选项卡,在Microsoft Foundation Classes栏中选择Use MFC in a Shared Library。
模拟控制系统是以仿真的方法实现各种功能,这也是目前国内汽车生产研究的普遍方法,同时仿真的结果也为驾驶员提供十分接近于现实中的训练效果。模拟控制系统利用计算机的计算功能和可视化手段模拟驾驶的动态特性,从而解决驾驶员直接操作实体可能造成的事故和不必要的损失
完成MATLAB与VC++接口环境配置后,就可以按照以上步骤实现驾驶类功能函数的实现。
1)在MATLAB环境下编写油门控制函数,假定该M文件为increase.m,作用是控制油门的大小。程序如下:double CDriveMode::Youmen(void)∥油门转换检测函数
2)利用mcc-t-W lib: increaseDLL-T link: lib increaselibmmfile.mlib编译命令将increase.m文件编译成C代码。将生成后的increaseDLL. dl,l increaseDLL. h, increaseDLL. lib 文 件 拷 贝 到VC++ 6. 0所在的工程目录下。
3)对increaseDLL. h进行一些修改,在#ifdef __cplusplus与#endif之间加入‘extern "C" {’,在#ifdef __cplusplus与#en-dif之间加入‘}’。
4)在VC++ 6. 0工程中引入头文件: #include " in-creaseDLL.h"。
5)在工程→添加工程→Files中添加increaseDLL. h和increaseDLL. cpp。
6)在工程→Project Settings→Link→General→对象/库模块中添加increaseDLL. lib。
7)在构造函数中加入increaseDLLInitialize();初始化由M文件编译过来的动态链接库。在析构函数中加入increaseDLLTerminate();释放系统资源。
本文在软件开发过程中,采用基于MCC接口编程方法实现vc++与MATLAB结合,具有实现简单、执行效率高的特点,是开发接口程序的有效方法。可以为工程程序的开发提供很好的技术支持。
[1] 孙鑫.精通VisualC++深入详解[M].北京:电子工业出版社,2006.
[2] 苏金明. MATLAB高级编程[M].北京:电子工业出版社,2005:215-220.
TP272,TP31
A
1674-6708(2010)18-0126-01