1.启动CarSim软件
运行CarSim后会出现“选择数据库”对话框。此对话框中显示了最近使用的数据库。对于初次使用或者没有创建过新数据库的用户,此处只有一个选项,即CarSim软件自带的基础数据库,其路径与安装时的设置有关,如图3.8(a)所示。
选中目标数据库后单击“Continue with the selected database”,出现“License Settings”对话框,如图3.8(b)所示;选择“Select”,即进入CarSim的主界面。CarSim主界面主要由三大部分组成:车辆参数及仿真工况的设置、数学模型求解、运算结果与后处理。用户可以修改车辆参数,根据需要来设置仿真工况。
图3.8 CarSim启动时的对话框
(a)“选择数据库”的对话框;(b)“License Settings”对话框
2.新建数据集
在CarSim中进行整车模型搭建、仿真工况设置和外部接口设置等工作之前,通常需要新建一个数据集(Dataset)来进行仿真环境的存储和管理。在菜单栏选择“File→New dataset”来新建一组Dataset。在出现的对话框中输入新建Dataset的分组和名称,本例将其设为“BOOK_MPC_Examples”和“Chapter3_SpeedTrackingControl_MPC”,如图3.9(a)所示。单击“Set”后完成新建,新建的Dataset会在主菜单中“Datasets”的下拉菜单中出现,如图3.9(b)所示。
图3.9 创建新的Dataset
(a)输入新建Dataset的分组和名称的对话框;(b)新建Dataset的结果
3.在CarSim中搭建整车模型
在CarSim主界面的车辆参数设置部分,单击图3.10(a)所示的下拉菜单选择目标车辆模型。读者即可在CarSim提供的车辆模型库中选择,也可以根据实际试验车辆搭建自定义的车辆模型。
这里使用默认参数配置的CarSim车辆进行仿真测试,选择的车辆为前驱D-Class SUV,使用150 kW汽油机和6挡自动(AT)变速器。D-class SUV的车辆模型尺寸参数,如图3.10(b)所示。
图3.10 在CarSim中搭建整车模型
(a)选择车辆模型的对话框;(b)车辆参数
4.在CarSim中设置仿真工况
在CarSim主界面中单击图3.11所示的仿真工况设置按钮,即可进入图3.12所示的仿真工况设置界面。在仿真工况设置界面需要设定车辆的行驶速度、制动控制、挡位控制、转向控制、路面参数和仿真过程控制等部分。
图3.11 仿真工况设置按钮
图3.12 仿真工况设置界面
针对速度跟踪控制这一实例,驱动控制和制动控制设为无,即不需要模型自身施加驱动力和制动力,挡位控制选择自动升挡。由于本例程不涉及横向控制,所以转向盘输入由“Driver path follower”控制。因此,选择驱动控制设定为“No Open→Loop Throttle”,制动控制设定为“No Open→Loop Braking Pressure”,挡位控制设定为“AT All Gears”,转向控制设定为“No Offset,1.5 sec.Preview”。仿真道路设定为“1200m One Lane”,仿真时长设为120 s,并选择初始化车辆位置、航向和速度。
5.外部接口设置
外部接口设置的主要内容有连接器选择、求解器选择和输入输出接口设置三部分。本书中的仿真程序主要在Simulink环境中进行,因此在CarSim主界面的数学模型求解模块的Models选项,选择“Models:Simulink”,如图3.13(a)所示。然后需要选择合适的Dataset将CarSim与Simulink连接起来。若需要新建一个Dataset,则单击如图3.13(b)所示的选项,选择“[Link to New Dataset]”,弹出如图3.13(c)所示的对话框,输入新建Dataset的分组和名称,这里将其设为“BOOK_MPC_Models”和“MPC_SpeedCtrl_Sim”,单击“Create and Link”按钮,完成新建。
(www.xing528.com)
图3.13 CarSim的Simulink模型设置
(a)连接器的选择;(b)Link to New Dataset;(c)新建一个与Simulink联合的Dataset
单击如图3.14(a)所示的“MPC_SpeedCtrl_Sim”,将会弹出求解器设置界面,如图3.14(b)所示。在求解器设置界面可以选择积分算法(如AM-2,RK-2,AM-4,AB-2等)和仿真步长,这里使用默认的“AM-2(2 updates per step)”,仿真步长设为“0.001s”。在此界面还可以指定目标工作路径和Simulink Model所在的路径,本例设置为
(1)目标工作路径:E:\Carsim\Book_examples\chap3_MPC_SpeedCtrl。
(2)Simulink Model的路径:e:\Carsim\Book_examples\chap3_MPC_Speed-Ctrl\LEO_MPC_SpeedCtrl.mdl,LEO_MPC_SpeedCtrl.mdl为事先建好的空工程。
在输入和输出端口可以设置CarSim的导入变量以及CarSim导出到Simulink的变量。单击如图3.15(a)所示的“Import Channels”,选择“[Link to New Dataset]”;然后单击“[Link to New Dataset]”,在弹出的对话框中输入新建Dataset的分组和名称,这里分别设置为“BOOK_MPC_Sim_Imports”和“SpeedCtrl_Imports”,如图3.14(b)所示。单击“Create and Link”按钮,完成创建。,进入CarSim导入变量设置界面,将“Readme file for imports”设置为Programs\solvers\ReadMe\i_i_imports_tab.txt。定义CarSim的导入变量依次设置为IMP_THROTTLE_ENGINE(油门输入)、IMP_PCON_BK(制动主缸压力[MPa]),如图3.15(c)所示。
图3.14 外部接口设置
(a)单击“MPC_SpeedCtrl_Sim”;(b)求解器设置界面
单击
图3.15 新建SpeedCtrl_Imports
(a)Link to New Dataset;(b)设置Dataset的分组和名称;(c)SpeedCtrl_Imports导入的控制量
同理,可以定义CarSim的导出变量,将“Readme file for outputs”设置为Programs\solvers\ReadMe\i_i_outputs_tab.txt。定义CarSim的导出变量车速和加速度,顺序依次设为vx(质心车速)和ax(质心处加速度)。需要注意的是:CarSim的导入变量是和Simulink中MPC模型的输出量相对应的。
另外,还可以在此界面将CarSim与所安装的MATLAB版本进行匹配,如果安装的是64位版的MATLAB,则需要选择“Use 64-bit Matlab”,如果安装的是32位版的MATLAB,则需要选择“Use 32-bit Matlab”。
完成上述设定后,单击CarSim主界面如图3.16(a)所示的“Send to Simulink”按钮,此时,MATLAB及事先建好的空白工程LEO_MPC_SpeedCtrl.mdl将被 打 开。在MATLAB Command Window中输入Simulink,回 车,打 开Simulink Library Browser发现此时Simulink库里多了一个“CarSim S-Function”。将其拖曳到LEO_MPC_SpeedCtrl.mdl中,Simulink即可以S函数的形式调用该CarSim模块。注意此模块恰好有一个输入接口和一个输出接口,分别对应着CarSim的导入变量和导出变量。
6.在LEO_MPC_SpeedCtrl.mdl中加入基于MPC的速度跟踪控制器
将Simulink Library Browser中的“S-Function”图标拖到LEO_MPC_Speed-Ctrl.mdl中,并双击该图标,弹出如图3.16(b)所示的对话框,在S-function name中输入Main_MPC_SpeedCtrl。单击Edit按钮,将基于MPC的速度跟踪控制算法M文件导入。注意此模块恰好有一个输入接口和一个输出接口,分别对应着轨迹跟踪控制器(Main_MPC_SpeedCtrl)的导入变量和导出变量,其输入量为上一时刻CarSim模块的导出变量,而该模块输出的节气门控制量和制动主缸压力又被导入CarSim模块。
图3.16 CarSim与Simulink之间的调用
(a)CarSim模型发送至Simulink;(b)Simulink调用CarSim模块
搭建完成的LEO_MPC_SpeedCtrl.mdl,如图3.17所示;考虑实际情况,在系统中增加了延时模块。至此,完成了联合仿真平台的搭建。在CarSim主界面单击“Run Now”即可运行此仿真实例。单击“Animate”还可以查看速度跟踪的仿真动画。
图3.17 Simulink中LEO_MPC_SpeedCtrl.mdl设计
对于能够熟练使用Simulink/CarSim联合仿真的读者,本书还提供了已经搭建好的数据集(Datasets)文件“chapter3_4_1”,可以将其直接导入CarSim实现联合仿真。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。