Cruise 与 Matlab_DLL 联合仿真教程
Cruise 与 Matlab 联合仿真,即在 Cruise 中建立整车模型,在 Matlab/Simulink 中建立控
制策略模型,通过 Cruise 与 Matlab 接口将控制策略模型集成到 Cruise 中,从而实现联合仿
真。其软件集成方式有多种,包括 Matlab-DLL 方式和 Matlab-API 方式等,本教程只介绍
Matlab-DLL 方式的设置方法,其他方式如感兴趣可自行查询文献学习。
软件配置:AVL Cruise2010,Matlab Release 2010a(Version 7.10);
(注意:如果使用 Cruise2010 与 Matlab 8.x 搭配,例如 Matlab Release 2013a (Matlab Version 8.01),则
需要修改 m 文件,将第五步中双击“AvlRtwDll_R2008+.exe”文件后生成的“Install.m”文件中的第 14 行“if
strcmp(v(1:2),'7.')”改为“if strcmp(v(1:2),'8.')”,其他步骤相同,亲测可用。)
第一步:首先准备好 Matlab/Simlink 模型,本教程以 Cruise 软件中自带的一个模型为例,如
图 1 所示,将其命名为 Lxm.mdl。
1
In1
Real Time
2
In2
Engine temperature
3
In3
Engine Torque
before flywheel
Scope1
>
Relational
Operator
Display
352.65
Upper allowed Engine
Temperature [K]
-10
Flange Torque [Nm]
图 1
Display1
1
Output
Dot Product
第二步:设置端口,如图 2 所示。注意:DLL 文件中的输入与输出使用的是 Simulink 中的”In”
与”Out ”模块,此处与 API 文件中的输入输出接口不同。
1
In1
Real Time
2
In2
Engine temperature
3
In3
Engine Torque
before flywheel
Scope1
>
Relational
Operator
-10
Flange Torque [Nm]
图 2
Display
352.65
Upper allowed Engine
Temperature [K]
Display1
1
Output
Dot Product
第三步:设置 Matlab 的编译器,在 Matlab 命令窗口输入“mex -setup”,注意,mex 与-setup
之间有空格,出现图 3。
输入“y”,回车,出现图 4
图 3
图 4
[1]为 Matlab 自带的编译器,[2]为另外安装的编译器,两个编译器都可以使用,如果电脑操
作系统中没有另装 VS 编译器,此处只显示[1],此时我们选择[1],回车,出现图 5.
输出“y”回车,出现图 6.
图 5
图 6
编译器设置完毕。
第四步:设置电脑环境变量,将 Matlab 的安装路径加入电脑环境变量中。计算机→右击“属
性”→“高级系统设置”→“环境变量”→“系统变量”→“新建”,将 Matlab 的
安装路径“D:\Matlab_R2010a\bin\matlab.exe”加入,点击确定,如图 7~11 所示
图 7
图 8
图 9
图 10
第五步:在Cruise安装目录下,双击运行与Matlab版本对应的AvlRtwDll_R2008+.exe文件,
将相关的一些文件将解压至此文件夹中,其他的EXE文件是与低版本的Matlab搭配
的文件,在此无需关注,如图12所示。
图 11
将以上路径设为 Matlab 的当前目录,如图 13 所示
图 12
打开并运行该文件夹下 Install.m 文件,如图 14 所示
图 13
第六步:编译 Simulink 模型。打开 Lxm.mdl,选择“Tools”→“Real-Time Workshop” →“Options”,
弹出图 15.
图 14
此页面需要修改如下几处地方。
(1)“Solver”下将求解器类型改为定步长“Fixed-setp”,求解算法“Solver”选用“ode4”
龙格库塔法,“Fixed-step size”设置小于 Cruise 仿真步长,可设为 0.005,如图 16 所示。
图 15
(2)“Data Import/Export”下数据类型要选用“Array”形式,如图 17 所示。
图 16
(3)“Real-Time Workshop”下的模板编译文件“Template makefile” 默认的为“grt-default-tmf”
要改为“avl_grt_dll_lcc.tmf”,最后点击“Build”按钮,开始编译,如图 18 所示,编译过程
可在 Matlab 命令窗口观察,如图 19 所示。
图 17
图 18