无人驾驶运动学模型——线性时变模型预测控制的思路推演过程

无人驾驶运动学模型——线性时变模型预测控制的思路推演过程

在做MPC仿真时,有些代码看不太懂,就去重翻了龚建伟的《无人驾驶车辆模型预测控制》这本书,怎么说呢,这么说吧,应该说它是目前为止讲MPC讲得比较清楚的书了,但是书中的推导过程有些给省略了,我看了好多次了还是看着费劲。昨天我又在B站搜了一下有关模型推导至仿真计算的,B站博主讲了许久,还是讲错了,最后又重新总结修正了下,(说明这个还真不好讲)。所以我看了之后,自己想重新总结一下,一方面是方便我之后复习,另一方面也方便那些第一次学习模型预测控制的同学,好的,话不多说,请看我的手稿。

目录

  • 无人驾驶运动学模型——线性时变模型预测控制的思路推演过程
  • 线性时变状态方程
    • 运动学建模
    • 线性化和离散化
  • 预测方程
  • 优化求解
  • 反馈控制

线性时变状态方程

本文主要写的是线性时变的模型预测控制,所以需要先建立模型,将其转化为线性时变状态方程的形式。

运动学建模

采用后轮轴心为参考点建立运动学模型,具体的建立过程如手稿1:
无人驾驶运动学模型——线性时变模型预测控制的思路推演过程_第1张图片

线性化和离散化

建立的运动学模型本身为非线性模型,采用近似线性处理方法,此处用的是一阶泰勒展开,在参考轨迹点Xr处,具体的操作如手稿2:
无人驾驶运动学模型——线性时变模型预测控制的思路推演过程_第2张图片
需要注意的一点是,在此处需要对状态量和控制量进行一次组合,然后进行下边的计算。

预测方程

预测方程是先根据关系式,列出几项来找规律再写预测方程,具体过程如手稿3和4:
无人驾驶运动学模型——线性时变模型预测控制的思路推演过程_第3张图片
无人驾驶运动学模型——线性时变模型预测控制的思路推演过程_第4张图片

优化求解

优化求解,主要是通过对优化目标建立方程,然后转化为二次规划问题的形式,其中为了方便后期的计算,在代价函数中加了一个松弛变量,所以优化方程的两个量:一个是△U,一个是ξ。具体的过程如手稿5:
无人驾驶运动学模型——线性时变模型预测控制的思路推演过程_第5张图片
在进行优化的过程中,由于采用的是quadprog函数,所以需要把代价函数转化为相应的标准形式,另外对于约束方程,也需要转化为标准形式,利于写仿真代码,这一部分在手稿6中有体现。

反馈控制

二次规划求解得到△U,则可根据关系式,计算得到当前时刻的控制量输出,即反馈控制量。具体过程见手稿6:
无人驾驶运动学模型——线性时变模型预测控制的思路推演过程_第6张图片
以上约束方程的标准化中的矩阵形式写错了,纠正如下:
无人驾驶运动学模型——线性时变模型预测控制的思路推演过程_第7张图片

在手稿的结尾,我简单画了一个MPC闭环控制的过程。
运动学模型相比动力学模型要简单的多,但是即使是运动学模型,推演一遍模型预测的过程,也比较费时间,熟悉的话大概也需要30~40分钟能推导完,反正里边细节的东西较多,一不小心就容易写错。
之后就可以根据推导得公式来进行编代码仿真了。希望对你有用,谢谢~
参考1:龚建伟《无人驾驶车辆模型预测控制》
参考2:B站博主讲MPC

你可能感兴趣的:(无人驾驶模型预测控制算法,c语言,qt,1024程序员节)