本例参照龚建伟的《无人驾驶车辆模型预测控制》书中第四章节
1.carSIM软件介绍
carSIM是由美国MSC公司开发的车辆动力学仿真软件,它可以方便灵活地定义实验环境和试验过程,准确预测和仿真汽车的操纵稳定性、动力性、平顺性等,适用于轿车、轻型货车等车型的建模仿真。

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


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

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

carSIM主界面主要由3大部分组成:车辆参数及仿真工况的设置、数学模型求解与后处理。用户可以修改车辆参数,根据需要来设置仿真工况。
(3)点击“New”,新建一组dataset,如图所示,在两个文本框中分别输入“Example”和“MPCtest1”,点击“Set”完成新建

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

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

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


即出现下图所示的界面:

2.新建仿真工况:点击上图中的“New”,在下图文本框中依次输入“MPC Example”和“newSplit Mu”,点击“Set”,完成新建。


3.根据要求设置仿真工况:
目标车速18km/h;
无制动;
档位控制选用闭环AT6档模式;
无转向;
路面选择为1km2摩擦系数为1.0的方形路面;
完成后的设置,如下图所示:


4.设置仿真时间
同样在设置仿真工况的主界面,在下图所示的文本框中输入“30”

5.选择前面新建的仿真工况点击“Home”图标,返回carSIM的主界面,选择前面新建的“Split Mu”工况。

6.设置仿真步长
在carSIM主界面中,点击下拉菜单“Tools”,选择“Preference",出现如下图所示的界面,将仿真步长设置为“0.001”。

(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,空的simulink模型是导不过去的
然后回到上图所示界面点击浏览找到MPCtest.mdl,如下图所示:

【注】这里有一个问题要注意,carSIM8.02是和MATLAB2011搭配的,高版本MATLAB要将下面的选项选上:

4.定义carSIM导入变量
点击下图所示的“Import Channels”,选择“I/O Channels:Import”


然后点击下图所示的“[Copy and Link Dataset]”;输入MPCtest1 input点击MPCtest1 input“图标,显示下图所示界面,按照下图所示界面进行设置

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



需要注意的是:carSIM的导出变量(X0,Y0和Yaw)和simulink中MPC模型的输入量是相对应,carSIM的导出变量(Vx和Steer_SW)为观测量,所以这里的carSIM的导出变量应按照下图所示的顺序进行顺序选择:

点击“Home“回到carSIM主界面。点击send to simulink 图标,此时之前新建的MPCtest1.mal模型将被打开:

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

完成上述设置后,carSIM通过外部接口将车辆模型发送至指定路径下的simulink仿真文件中,carSIM模块即以S函数的形式增加到simulink模型库中。

将simulink浏览窗口中的“S-Function”图标拖拽到MPCtest1.mdl中,显示新的S函数模块。双击该图标,弹出如下图所示的对话框,在“S-Function name”中输入MY_MPCController3

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

MY_MPCController3控制器模块的输出为车速和前轮转角,需对其转换成满足carSIM模块要求的导入变量:IMP_SPEED(质心车速[km/h]).IMP_STEER_l1(左前轮转角[°]),IMP_STEER_人(右前轮转角[°]),IMP_STEER_L2,IMP_STEER_R2。所以,在MY_MPCController3控制器模块的输出量与carSIM模块的导入变量之间加入了转换函数:

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


关于模型预测控制理论部分的内容以及公式推导部分的内容,可以观看B站天神的视频讲解,讲解的很到位也很详细,链接地址:
https://space.bilibili.com/387233952/dynamic
也非常感谢天神将书上第四章MPCcontroller的代码修改过来了,才得以跑出和书中一样的路径。

无人驾驶模型预测控制carSIM和MATLAB联合仿真相关推荐

  1. Carsim2019_官方Help学习笔记_Running a VS FMU in Simulink (Carsim与Matlab联合仿真方法之一)

    文章目录 Create a Dataset for an FMU Create a Simulink Model that Uses an FMU FMU Multiple Ports in Simu ...

  2. carsim与simulink联合仿真轨迹规划及跟踪

    文章目录 一.仿真目的 二.carsim和matlab版本说明 三.carsim中车辆及工况设置 四.carsim和simulink联合仿真 1.carsim链接simulink文件 2.确定cars ...

  3. 基于动力学模型的无人驾驶车辆MPC轨迹跟踪算法及carsim+matlab联合仿真学习笔记

    目录 1 模型推导及算法分析 1.1 模型推导 1.1.1 车辆动力学模型 1.1.2 线性时变预测模型推导 1.2 模型预测控制器设计 1.2.1 目标函数设计 1.2.2 约束设计 2 代码解析 ...

  4. matlab、carsim、prescan联合仿真从零开始详细步骤

    matlab.carsim.prescan联合仿真详细步骤 在matlab.carsim.prescan联合仿真中,prescan提供测试场景和传感器模型,但prescan也提供车辆动力学2D和3D模 ...

  5. 智能车辆路径跟踪:carsim和simulink联合仿真,基于车速的变权重多点预瞄驾驶员模型个例

    @基于轨迹预测的多点预瞄驾驶员模型,适合初学者学习,carsim&simulink联合仿真,模型搭建. 一.预瞄-控制基本原理 二.casim模型的搭建 三.联合仿真结果分析 前言 本文主要是 ...

  6. carsim与simulink联合仿真 eps+sbw+lka 动力学车辆模型

    carsim与simulink联合仿真 eps+sbw+lka 动力学车辆模型 线控转向 电动助力转向 车道保持 四合一 ID:45120672452320790

  7. Carsim和simulink联合仿真轮胎力估计 基于滑模观测器SMO估计轮胎的纵向力和侧向力 模型估计的精度很高,测试的工况为双移线工况

    Carsim和simulink联合仿真轮胎力估计 基于滑模观测器SMO估计轮胎的纵向力和侧向力 模型估计的精度很高,测试的工况为双移线工况 基于SMO滑模观测器的轮胎力估计方法省去了轮胎模型的使用,避 ...

  8. carsim与simulink联合仿真-ABS(制动防抱死系统) 入门——详细步骤

    选用同一车型的两辆汽车,同样的仿真工况,但其中一辆加入在Simulink中建立的ABS控制器,相当于一辆汽车带有ABS,而另一辆汽车没有带ABS,方便对比. 软件:carsim2020.matlab2 ...

  9. CarSim与Simulink联合仿真——ABS

    CarSim与Simulink联合仿真--ABS 下图为CarSim软件所提供的一个CarSim与Simulink联合仿真的例子 以CarSim中所提供的与Simulink联合仿真的一个例子为例(稍有 ...

最新文章

  1. adobe Photoshop CS6 MAC中文版
  2. 第三阶段:2.产品运营:4.活动运营
  3. android 判断时间是否过期_眉笔眉粉有保质期吗?怎么判断眉笔眉粉是否过期?...
  4. 手游特效太多怎么办?这里有一份性能优化方案可参考
  5. 智能实验室-全能优化(Guardio) 5.10.0.1150
  6. ruby hash添加数据_如何在Ruby中向Hash添加元素?
  7. ASP.NET MVC 5调用其他Action
  8. python-基本装饰器
  9. 曼车仪表显示故障车载计算机,汽车仪表盘上的故障标志图解大全
  10. 机械硬盘和固态硬盘 检测 案例 ST4000VX015
  11. DAU是啥,数据指标是啥?必知必会的数据分析常识
  12. win7用ip查找网络计算机,win7通过ip地址查找计算机名的两种方法(图文教程)
  13. 北斗卫星的授时系统不输GPS授时系统并应用到各行各业
  14. 区块链的希望与原罪:从金融场景谈起
  15. python是一种面向对象的高级语言_为什么入门大数据选择Python而不是Java?
  16. 自己写 Netfilter 匹配器
  17. 梁宁:2019年是5G时代,也是革命性的新营销阵地
  18. 双线机房双IP linux设置路由
  19. linux中文写作软件,码字写作软件下载 极音创作(码字软件)V1.3.5 linux版 下载-脚本之家...
  20. 【Qt Creator】配置代码编辑器字体

热门文章

  1. phpstudy和thinkPHP的安装
  2. Think PHP 5 定时任务
  3. larave 流水账笔记
  4. 一张水卡的数据解析及利用
  5. RecyclerView流式布局
  6. 适配动态 | 3月份巨杉数据库与6款产品完成互认证
  7. C# 创建Windows Service(Windows服务)程序
  8. 优秀的 Verilog/FPGA开源项目介绍(一)-PCIe通信
  9. 一种基于颜色统计和特征指纹的图片相似度计算方法
  10. 2021暑期积分赛一