Cruise与Matlab_DLL联合仿真教程Cruise与Matlab联合仿真,即在Cruise中建立整车模型,在Matlab/Simulink中建立控制策略模型,通过Cruise与Matlab接口将控制策略模型集成到Cruise中,从而实现联合仿真。其软件集成方式有多种,包括Matlab-DLL方式和Matlab-API方式等,本教程只介绍Matlab-DLL方式的设置方法,其他方式如感兴趣可自行查询文献学习。软件配置:AVLCruise2010,MatlabRelease2010a(Version7.10);(注意:如果使用Cruise2010与Matlab8.x搭配,例如MatlabRelease2013a(MatlabVersion8.01),则需要修改m文件,将第五步中双击“AvlRtwDll_R2008+.exe”文件后生成的“Install.m”文件中的第14行“ifstrcmp(v(1:2),'7.')”改为“ifstrcmp(v(1:2),'8.')”,其他步骤相同,亲测可用。)第一步:首先准备好Matlab/Simlink模型,本教程以Cruise软件中自带的一个模型为例,如图1所示,将其命名为Lxm.mdl。图1第二步:设置端口,如图2所示。注意:DLL文件中的输入与输出使用的是Simulink中的”In”与”Out”模块,此处与API文件中的输入输出接口不同。图2第三步:设置Matlab的编译器,在Matlab命令窗口输入“mex-setup”,注意,mex与-setup1Output352.65UpperallowedEngineTemperature[K]Scope1RelationalOperator-10FlangeTorque[Nm]DotProductDisplay1Display3In3EngineTorquebeforeflywheel2In2Enginetemperature1In1RealTime1Output352.65UpperallowedEngineTemperature[K]Scope1RelationalOperator-10FlangeTorque[Nm]DotProductDisplay1Display3In3EngineTorquebeforeflywheel2In2Enginetemperature1In1RealTime之间有空格,出现图3。图3输入“y”,回车,出现图4图4[1]为Matlab自带的编译器,[2]为另外安装的编译器,两个编译器都可以使用,如果电脑操作系统中没有另装VS编译器,此处只显示[1],此时我们选择[1],回车,出现图5.图5输出“y”回车,出现图6.图6编译器设置完毕。第四步:设置电脑环境变量,将Matlab的安装路径加入电脑环境变量中。计算机→右击“属性”→“高级系统设置”→“环境变量”→“系统变量”→“新建”,将Matlab的安装路径“D:\Matlab_R2010a\bin\matlab.exe”加入,点击确定,如图7~11所示图7图8图9图10图11第五步:在Cruise安装目录下,双击运行与Matlab版本对应的AvlRtwDll_R2008+.exe文件,将相关的一些文件将解压至此文件夹中,其他的EXE文件是与低版本的Matlab搭配的文件,在此无需关注,如图12所示。图12将以上路径设为Matlab的当前目录,如图13所示图13打开并运行该文件夹下Install.m文件,如图14所示图14第六步:编译Simulink模型。打开Lxm.mdl,选择“Tools”→“Real-TimeWorkshop”→“Options”,弹出图15.图15此页面需要修改如下几处地方。(1)“Solver”下将求解器类型改为定步长“Fixed-setp”,求解算法“Solver”选用“ode4”龙格库塔法,“Fixed-stepsize”设置小于Cruise仿真步长,可设为0.005,如图16所示。图16(2)“DataImport/Export”下数据类型要选用“Array”形式,如图17所示。图17(3)“Real-TimeWorkshop”下的模板编译文件“Templatemakefile”默认的为“grt-default-tmf”要改为“avl_grt_dll_lcc.tmf”,最后点击“Build”按钮,开始编译,如图18所示,编译过程可在Matlab命令窗口观察,如图19所示。图18图19在Lxm-grt-rtw中就可找到需求的DLL文件,如图20所示。图20将DLL文件拷贝到Cruise中MatlabDLL模块引用文件所在目录下,如图21所示,在Cruise的MatlabDLL模块中指定_Lxm.dll的位置,并设置好输入输出参数,如图22~23所示,然后,在Cruisedatabus中完成相应的信号线连接,即可实现Cruise与MatlabDLL方式联合仿真,如图24所示。图21图22图23图24