无人驾驶模型预测控制carSIM和MATLAB联合仿真
参考龚建伟所著《无人驾驶车辆模型预测控制》一书第四章

2.仿真实例
所用软件和环境:
(1)carSIM8.02
(2)正版MATLABR2019a
(3)win10
先进行车辆模型的搭建:
(1)运行carSIM8.02
(2)出现“select recent database”(“选择数据库”)对话框,如下图所示:

选择“continue with the selected database”,弹出如下图所示的对话框:

选择“select”即可打开carSIM主界面:

数据
carSIM主界面主要包含三个组成部分:车辆参数配置以及仿真工况设置、数学模型求解与结果处理。用户可以根据实际需求调整车辆参数,并依据需求进行仿真工况的配置。
(3)操作步骤如下:首先点击菜单栏中的【数据

(4)选择主菜单的”Datasets"下拉菜单,会发现Example一栏多出“MPCtest”

(5)点击下图中的下三角,选择相应的车型:

(6)新建满足要求的仿真工况:
1.点击下图所示工况

即出现下图所示的界面:

- 创建新的仿真场景:首先,请您点击上图中的"New"按钮。随后,在下方的文本框中依次填入指定位置"MPC Example"和"newSplit Mu"。之后,请您点击"Set"按钮以完成操作


按照要求配置仿真场景:
设定行驶速度参数为18公里每小时;
车辆不进行制动操作;
采用闭环AT6档模式实现档位控制;
行驶时不转向;
选择面积为1平方千米的方形路面作为测试基准,并要求路面摩擦系数维持在1.0的标准值;
最终设置参数配置完毕后,请参考下图中的仿真界面进行确认。


在仿真工况设置界面中,在图形界面中的输入框填写"30"。

在已经建立的新仿真场景中单击‘Home’图标将返回到carSIM的应用主界面切换至之前创建的新‘Split Mu’仿真场景

Tools
在carSIM主界面上单击下拉菜单中的【Tools

(7)搭建carSim与Simulink的集成仿真模型
1.单击下图中的Models选项,并将其设置为" Models: Simulink"

2.点击下图所示的选项,选择“[Link to New Dataset]"。

此时显示下图所示的对话框,在对话框中依次输入示例'Example'和'MPCtest1',单击‘Creat and Link’以完成新建。如下图所示。

3.点击下图所示的“MPCtest1”

将会弹出下图所示界面:

请根据以下路径进行设置:
作为参考,请选择类似路径:
请先访问该目录:
E:\CarSim802_Prog\CarSim_Data
此目录下存放着simulink Model的路径:
E:\CarSim802_Prog\CarSim_Data\Extensions\Simulink
避免在此目录下新建文件,请直接复制现有文件并更名至MPCtest.mdl:
然后在相应界面中找到并打开MPCtest.mdl文件(如前所述)

注
注
注

4.建立carSIM引入变量 单击显示中的"Import Channels"选项框,在其下拉列表中选择"I/O Channels:Import"


然后点击下图所示的“[Copy and Link Dataset]”;输入MPCtest1 input

点击MPCtest1 input“图标,显示下图所示界面,按照下图所示界面进行设置

设置好以后返回点击“MPCtest1 output,按照下图进行相应设置:



需要注意的是:carSIM系统的输出包括X0、Y0以及Yaw角,并与Simulink中的MPC控制器输入一一对应。其中部分输出量如速度Vx和转向控制Steer_SW属于观测量。因此,在本系统中建议按照图示中的顺序配置这些输出参数:

单击‘Home’按钮后会跳转到carSIM的主界面。单击’send to simulink’图标后会打开之前的MPCtest1.mal模型。

按照此图对原模型进行修改

完成所有设置步骤后, carSIM借助特定接口将车辆系统模型传输至预先定义的路径位置并插入到Simulink仿真环境中, 该模块随后被成功地添加为S函数形式并整合进Simulink Models Library库

将Simulink浏览窗口中的' S-Function '图标拖拽至模型MPCtest1.mdl中,并使新建立的S函数模块可见。点击该图标后会触发一个如图所示的对话框,在'S-Function name'字段处键入MY_MPCController3

在模型中拖入延迟模块,目的是防止出现代数环

该MPC控制器模块通过输出速度与转向角来实现

在simulink界面点击运行,运行处的结果如下图所示:


关于模型预测控制理论及其相关公式推导的内容,在B站天神的频道里有非常详细的讲解资源(链接地址:https://space.bilibili.com/387233952/dynamic),大家可以根据需要进行学习观看。特别感谢天神对教材中第四章MPCcontroller代码进行了优化调整,并因此能够顺利实现与书中一致的效果。
