《无人驾驶车辆模型预测控制》之基于动力学的MPC设计

目录

 

写之前的话:

1. 车辆模型的建立

2. 车辆模型的线性化

​ 3. 车辆模型离散化

 4. 预测模型的建立

 5.目标函数及约束


写之前的话:

前面我写到一些列的文章:

《无人驾驶车辆模型预测控制》之车辆运动学模型

《无人驾驶车辆模型预测控制》之基于运动学的MPC设计(一)

《无人驾驶车辆模型预测控制》之基于运动学的MPC设计(二)

本篇将介绍基于车辆动力学的MPC设计:主要从动力学模型的建立、预测模型的建立、目标 函数的建立、约束的建立来分别介绍。关于模型预测理论公式的推导细节可见

《无人驾驶车辆模型预测控制》之基于运动学的MPC设计(二)

0 仿真模型的搭建与结果

按照原书代码中仿真时总报超出数组索引的数目,不在可行域的问题。我猜测:原书代码中仿真是采用有效集(active set)来计算,2011版MATLAB是可以才有有效集算法,但是新版MATLAB的quadprog函数删除了有效集法,我用新版MATLAB采用内点法计算可能导致报错的问题,所以我猜测可能是计算算法的问题(即采用有效集可能不会出错)。暂时问题还未解决,等解决再上图。如果有哪些仁兄解决了,在评论区/私信指点一波啊。小弟感激不尽!

下面先自己手动推导了一通,具体如下:

1. 车辆模型的建立

《无人驾驶车辆模型预测控制》之基于动力学的MPC设计

《无人驾驶车辆模型预测控制》之基于动力学的MPC设计

 经过整理、简化轮胎力为线性区,得到:

《无人驾驶车辆模型预测控制》之基于动力学的MPC设计

2. 车辆模型的线性化

《无人驾驶车辆模型预测控制》之基于动力学的MPC设计 3. 车辆模型离散化

《无人驾驶车辆模型预测控制》之基于动力学的MPC设计

 4. 预测模型的建立

《无人驾驶车辆模型预测控制》之基于动力学的MPC设计

 5.目标函数及约束

《无人驾驶车辆模型预测控制》之基于动力学的MPC设计

 至此完成理论公式的建立。

这篇文章也不错,介绍Apollo的MPC设计,链接如下,方便大家参考:

Apollo代码学习(六)—模型预测控制(MPC)