carsim与MPC工具箱联合仿真

  • 写在前面的话
    • 步骤

写在前面的话

《无人驾驶车辆模型预测控制》作为国内车辆领域使用MPC作为控制算法的先驱者,对后来的研究人员产生了极大的影响。此本专著已出版到了第二版,书中的代码极具参考意义。但是想要完全跑通书中的代码还要花费很大的心思,涉及到MATLALB版本,carsim版本,S-function的配置等诸多问题。所幸有很多小伙伴一直在交流代码心得。像我等不是专门研究MPC算法,只是将MPC作为实现某种功能的工具,为了MPC如何实现实属伤脑筋。所幸MATLAB提供了MPC工具箱,让我等在开发某项功能的时候不用在如何实现上费牛鼻子劲。
网上(b站)有官方的MPC工具箱使用教程,小伙伴们可以自行了解,但是MPC工具箱如何与carsim联合仿真还没有相关资料,笔者也是摸索了很长一段时间才将两者联合,想着分享一下心得,给后来的人提供一些参考与经验。

步骤

在这里,以实现车道保持为例,设计MPC控制器,参考模型与参数见合肥工业大学博士论文
《横向辅助驾驶及人机共驾控制策略的研究》,该论文第二章有关于MPC工具箱的设置,参数与设置什么的真实可用。
首先建立车路模型,如图直接选用论文中的模型

在这里要插一句,矩阵左上角为二自由度模型,Caf为轮胎侧偏刚度,因为前面有个2倍,如果没有的话,Cf代表前轴侧偏刚度,其数值为轮胎侧偏刚度的两倍,2前面有负号,所以轮胎侧偏刚度为正,如果没有的话,轮胎侧偏刚度为负。这里提个醒,因为很多文章中都有错误,具体解释可见喻凡《汽车系统动力学》,matlab中用的车路模型也是这个。

新建个m文件,将车路模型与车辆参数输入,建立状态空间方程,点运行。此模型将作为MPC中的plant(被控对象)。

打开MPC工具箱,从APP中进入。按图示修改。先定义MPC结构,选择workspace工作区间里定义的状态空间模型,将采样时间改为0.01s,点击定义与输入。在这里图中的MPC相当于carsim,plant相当于MPC工具箱。carsim输出横向坐标与横摆角给MPC工具箱,MPC工具箱输出转角给carsim,这里认为所有信号都是可测的,carsim可以直接输出来。


为方便调试将视图改为左右视图

回到MPC designer,定义输入输出口,修改变量名称。

定义参考输入,大概意思就相当于你的车辆在运行的时候是什么状态,在这里希望横摆角为零,横坐标y在跟踪的时候和阶跃类似,具体选什么参考其实问题不是很大,对结果又有什么影响可以自己多试,一般都用0和阶跃作为参考。


在tuning 中设置预测视域和控制视域,一般为15,3左右,这里选择论文中的时域,具体情况具体分析,自己调看看有什么影响。

调节约束,这里约束对结果还是有影响的,具体情况具体分析,自己多调方可,这里直接用论文中的,这里注意一下单位为弧度。


设置权重,权重对结果影响也很大,这玩意就得不断调,跟调PID似的。

最后再调节鲁棒性和快速性,自己调,看看有什么影响。

最后导出到工作区间

到此控制器设计大体完成,最后的效果不一定满意,约束什么的还要多调。

建立simulink模型,输入mpc1,这里不用加干扰

联合仿真,在这里可以先将carsim中的道路横坐标导入到matlab工作区间,再输入到信号发生器中作为参考信号,横摆角希望为0,注意单位换算一下,我这里的框架中没有将度转化为弧度。

例如下图,不论什么方法得给MPC工具箱一个参考的值。


到这里框架什么的都搭好了,就可以实现联合仿真了,包括MPC集成控制步骤也是如此,包括实现差动制动,你的预测模型要对,我做的是MPC集成控制,要是有需求的话再看看写。其实matlab18版有集成好的基于MPC的车道保持模块,如图,我用了一下效果挺好的,关键就是和carsim联合仿真,以后再说吧。(累死了)

carsim与MPC工具箱联合仿真相关推荐

  1. 基于模型预测控制(自带的mpc模块)和最优控制理论的Carsim与Matlab/simulink联合仿真实现汽车主动避撞和跟车功能

    基于模型预测控制(自带的mpc模块)和最优控制理论的Carsim与Matlab/simulink联合仿真实现汽车主动避撞和跟车功能(acc自适应巡航),包含simulink模型(其中有车辆逆纵向动力学 ...

  2. 基于模型预测控制(自带的mpc模块)和最优控制理论的Carsim与Matlab/simulink联合仿真实现汽车主动避撞和跟车功能(acc自适应巡航)

    基于模型预测控制(自带的mpc模块)和最优控制理论的Carsim与Matlab/simulink联合仿真实现汽车主动避撞和跟车功能(acc自适应巡航) :7430669302617414一無所有`

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

    CarSim8.02和Simulink联合仿真 将前段时间接触的CarSim软件使用方法总结如下,一方面加深自己印象,另一方面为刚接触该软件的同学提供一些帮助. CarSim8.02安装教程可以参考这 ...

  4. Carsim 与 Simulink 联合仿真用到的ABS.mdl模型文件

    网上关于Carsim与Simulink进行联合仿真.对比有无ABS控制的例子步骤十分详细,作为Carsim的入门案例很合适.但是做到Simulink对ABS控制策略建模这一步时,案例并没有给出图中模型 ...

  5. 自动驾驶仿真(五)—— 基于Carsim、Prescan、Simulink的联合仿真

    自动驾驶仿真五--基于Carsim.Prescan.Simulink的联合仿真 1. 联合仿真流程 2. CarSim联合仿真配置要点 3. Prescan联合仿真配置要点 4. Carsim.Pre ...

  6. 自动驾驶CarSim和Simulink联合仿真的完美攻略!

    作者 | 车路慢慢 仿真秀科普作者 导读:大家好,我叫李慢慢,仿真秀专栏作者,某汽车主机厂汽车仿真工程师,正在筹备转岗.自2020年起,我就在仿真秀App分享ANSA教程和攻略,并学习自动驾驶仿真. ...

  7. 基于PreSCAN Matlab/Simulink的智能驾驶联合仿真【详细图文】

    在自动驾驶竞争日益激烈的趋势下,自动驾驶功能不断更新迭代,但任何功能的商业化推出之前,测试是必然的前提,如软件测试.仿真测试.道路测试,尽管在我国政策的支持情况下(如颁发道路测试牌照),自动驾驶道路测 ...

  8. Simulink/Carsim联合仿真,基于pid,mpc自适应巡航控制,定速巡航,紧急避撞等

    Simulink/Carsim联合仿真,基于pid,mpc自适应巡航控制,定速巡航,紧急避撞等. 包括以下: (1)Carsim参数设置cpar文件 (2)matlab代码s函数 (3)Simulin ...

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

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

最新文章

  1. 功能测试Bug频发?测试工作中这点不可忽略
  2. 2014年云计算服务将取代PC电脑
  3. 网络推广外包专员浅析为何网站网络推广外包中有排名却没有转化率
  4. 热门的“挑战视频”,凭什么火起来的?
  5. 转载一篇短小精悍的博文:强可学习在什么条件下与弱可学习等价
  6. Java编码问题原因以及解决
  7. URL.createObjectURL图片预览
  8. 什么是AWT_Swing_Scroll面板,上!!!
  9. centos6配置mysql5.7_CentOS 6.7 下 MYSQL 5.7 的安装与配置
  10. 按键精灵和python功能对比_AutoIt3和按键精灵的功能对比第2/2页
  11. 魅族魅蓝note6救砖及高通救砖工具分享
  12. python长度单位换算表_长度单位换算表大全
  13. Python实现有趣的CRAPS赌博游戏
  14. java更改exif信息_照片EXIF信息的读取和改写的JAVA实现
  15. iOS定位原理和使用建议
  16. h5网页调起扫一扫最简单的方法
  17. java自行车为什么被黑_谷歌自行车没有「愚人」,我来告诉你为什么
  18. Runes - 神符一览
  19. 网页策略游戏《绝地战争》完整源码下载
  20. 关于云ERP系统的错误看法

热门文章

  1. 截止8月31日,2012年跑步总量满1000公里
  2. 带你揭秘Alltesting众测平台的真实面孔(二)
  3. 如何在 EtherScan 上读取智能合约
  4. es match_phrase和edge_ngramngram分词器的区别
  5. C++字符串完全指南(转载)
  6. 【这可能不只是一篇面经】- 有话想说的四个月 【转】
  7. java odata filter_用antlr解析odata filter条件表达式
  8. iqooneo5护眼模式设置方法步骤
  9. 5分钟搭建图片压缩应用
  10. 模型评估指标之间的一些联系