CarSim和Simulink联合仿真-无人驾驶

CarSim8.02和Simulink联合仿真

将前段时间接触的CarSim软件使用方法总结如下,一方面加深自己印象,另一方面为刚接触该软件的同学提供一些帮助。

CarSim8.02安装教程可以参考这位博主有详细的下载链接和安装教程

CarSim8.02和Simulink联合仿真

**1、**运行CarSim。
**2、**出现如图“select recent database"对话框,选择相应的数据库文件(注意这里的数据库文件位置和自己安装过程设定有关),点击”continue with the selected database".

CarSim和Simulink联合仿真-无人驾驶
**3、**跳出“license settings”对话框,选择“select”,即可打开CarSim的主界面,如图所示

CarSim和Simulink联合仿真-无人驾驶
CarSim和Simulink联合仿真-无人驾驶
CarSim的主界面主要包括三大部分:车辆参数以及仿真工况设置、数学模型求解与后处理。用户可以修改车辆参数,根据需要来设置仿真工况。
**4、**点击“new”,新建一组Dataset,如图所示,在两个文本框中分别输入“Example”和test1“,然后点击“set”,完成创建。选择主菜单中的“Datasets"下拉菜单,找到"Example"栏目中多出一个”test1“表示创建成功。CarSim和Simulink联合仿真-无人驾驶
**5、**回到home界面,点击红色框中的下三角,用来选择仿真相应的车型。
CarSim和Simulink联合仿真-无人驾驶
**6、**接下来新建满足我们需求的仿真工况。点击上图中的黑色方框,进入如图所示的界面。CarSim和Simulink联合仿真-无人驾驶
新建仿真工况,点击”new“,在如图所示的文本框中依次输入你的仿真类型和名称。点击”set“完成新建。
CarSim和Simulink联合仿真-无人驾驶
接下来根据要求设置仿真工况。包括速度、有无制动、挡位控制、有无转向、路面参数等。
CarSim和Simulink联合仿真-无人驾驶
同样在仿真工况主界面,设置仿真时间。CarSim和Simulink联合仿真-无人驾驶
点击”home“图标,返回CarSim主界面,选择刚刚新建的仿真工况。之后在主界面中点击下拉菜单"Tools”,选择“Preference”,出现如图所示界面,设置仿真步长。CarSim和Simulink联合仿真-无人驾驶
**7、**建立CarSim与Simulink联合仿真模型。回到CarSim主界面,点击“Models”,选择“models:Simulink”。点击如图所示红色框中的下三角,选择“copy and link dataset",此时将弹出一个对话框,在对话框中依次输入”Example“和”test1“(注意这里输入的名称和之前自己设置的dataset一致。)CarSim和Simulink联合仿真-无人驾驶
点击上图中”MPCtest1“,将会弹出如图所示的Simulink{Example} MPCtest1的主界面。在此选择相关路径。左右两边依次是”浏览工作路径“和”Simulink model“的路径(注意此处要提前在该路径下新建一个空白Simulink model,并且保存为.mdl文件)CarSim和Simulink联合仿真-无人驾驶
此外上图中黑色框的右下角,选择32位还是64位,具体根据自己的matlab版本而定。
接下来进行Carsim的导入导出变量。依次在上图的Import Channels和Export Channels右侧下三角选择”I/O Channels: Import",,然后点击下方下拉三角,选择[copy and link dataset],在跳出的文本框中输入“test1 input”(注意此处名称和之前设置的dataset名称保持一致),点击“test1 input”进入如下界面,点击浏览按钮,跳出的文件夹下有各种各样的输入输出参数文件,这里根据自己需要选择。CarSim和Simulink联合仿真-无人驾驶
需要注意的是:CarSim的导入变量和Simulink中MPC模型的输出量是相对应的,要按一定的顺序进行排列选择。定义CarSim的导出变量步骤同上。
**8、**点击“home”,返回CarSim主界面,点击"send to simulink"图标,此时之前新建的空白模型将被打开。此时打开Simulink 的库浏览窗口,出现了一个"CarSim S-Function“图标,就是我们所创建的仿真车辆模型。将其拖拽到新建的.mdl中即可使用。该模块带有一个输入输出接口,分别对应CarSim的导入导出变量。
至此CarSim与Simulink进行联合仿真已经实现。接下来即可根据自己的算法进行建模仿真。
**特别说明:**在前文中描述的文件名称可能存在不一致的情况,主要是因为笔者创建完成之后进行记录的,具体名称以自己仿真创建为主。目前笔者还在仿真阶段,等仿真完成会后续附上例程,方便大家学习。