模型预测控制算法(mpc算法)底层逻辑

Jeossirey Jeossirey     2023-03-08     124

关键词:

目录

 

MPC算法的基本原理

详细解析

预测模型中需要注意的点

滚动优化需要注意的点

构造目标函数约束部分

约束部分

举例说明

复盘总结


MPC算法的基本原理

MPC 的基本原理可以分为三个步骤:预测模型、滚动优化、反馈校正

(1)预测模型 :根据历史信息 X(k)、当前输入 u(k) 来预测未来输出Y(k+1)~Y(k+Np)

(2)滚动优化 :局部优化+在线滚动

局部优化:不是采用一个不变的全局优化目标,而是采用滚动式的有限时域优化策略;在每一个采样时刻,根据该时刻的优化性能指标,求解该时刻有限时段的最优控制率

在线滚动:计算得到的控制量信息序列只有当前值(即求解出来的第一组控制量)是实际执行的,在下一个采样时刻来临的时候又重新再求一遍又得到一组新的最优控制率

它将系统的性能需求以及约束分别转化为目标函数的值和该优化问题的解的取值范围,从而求得未来控制时域内的最优控制量序列。

MPC 与传统最优控制相比,最大的区别是:它的优化过程不是一次离线完成的,而是在有限时域内在线反复进行的,且MPC可以考虑状态空间变量的各种约束。

(3)反馈校正 :虽然 MPC 只将计算得到的最优控制序列的第一个元素作用于系统,但是在目标函数的构造和优化求解过程中,我们使用到了未来预测时域内的参考输出(图中参考轨迹 1),并将参考输出量与实际输出量之间误差作为目标函数的一部分去优化求解该目标函数的最小值来保证我们的跟踪效果,将求解出来的第一个控制量返回来再作用于我们的系统,对下一步行动的进行产生影响。所以在这个过程中不仅有基于未来参考输入的前馈补偿,同时也有基于系统当前状态的反馈补偿。

前馈控制指通过观察未来的情况,掌握规律预测趋势,正确预计未来可能出现的问题,提前采取措施,将可能发生的偏差消除在萌芽状态中,为避免在未来不同发展阶段可能出现的问题而事先采取的措施,前馈控制发生在实际工作开始之前,是未来导向的。

反馈控制是指在某一行动和任务完成之后,将实际结果进行比较,从而对下一步行动的进行产生影响,起到控制的作用。

详细解析

预测模型中需要注意的点

根据历史信息、当前输入预测未来输出的过程中,我们就需要一个模型能够完成基于历史信息和当前状态,来预测未来输出这样一个作用。这就涉及到状态量的描述,非线性系统的线性化离散化等知识,从而确保预测输出最大限度接近期望值。
车辆模型具有多个自由度,运动姿态耦合强,受力复杂,可看做一个非线性多自由度运动刚体,我们希望问题简单化,那么我们就设法简化模型,把模型转化为线性模型。无论是车辆运动学模型,还是车辆动力学模型,皆为非线性系统,而线性模型预测控制较非线性模型预测控制有更好的实时性,且更易于分析和计算,而这对于智能驾驶都非常重要。

滚动优化需要注意的点

滚动优化就是基于我们所设置的约束在有限时段内求解目标函数的最优控制解,使得某一个或某些性能指标达到最优实现控制作用。那么设计合适的优化目标函数就是结果优越性的关键,目标函数的一般可表示为状态量和控制量的二次函数。

构造目标函数约束部分

构建目标函数,我们想要输出量及目标函数的自变量满足什么要求,越重要的参数权重越大,反之亦然。

学员请注意:
在目标函数中我们取二范数,平方项是为了统一符号,权重差异不能过于悬殊。因为本身数据间就存在量纲差异,既然没有进行归一化处理,就需要我们特别注意权重间的权衡。
比方说横向位置、速度、横摆角、节气门开度等参数本质上就存在量纲的差异,所以大家在设置权重时一定要多测试,具体权重只有调试才能完全确定。

约束部分

设定了目标函数之后,车辆已经能够计算出可行的结果,但结果的可行性却还有待研究,这就需要约束条件来表现了。
约束条件有两个作用:
1.确保结果的实际可行性,满足目标函数最小的最优解不一定车辆机构能够具体执行,而加上约束后,结果就一定是在车辆模型或机构限制范围内可执行的结果。
2.约束条件缩小了状态空间范围,二次规划等最优化算法往往需要反复递归迭代得出结果,状态空间越小,计算时间也将缩减。

举例说明

假如说我们希望车辆按照我们的参考轨迹行驶,设定采样时间Ts=0.1s,预测时域设定为10,那么根据预测模型,我们就可以预测车辆在未来1s的状态;要求解这样一个最优化问题,我们依据在最小的能量下使得跟踪误差最小来设计目标函数,把车辆横向位置偏差以及横摆角偏差等量以加权平方形式都考虑进来;此外还需要对这个最优化问题设置变量约束,比如车辆的控制量一定要满足机构的约束,预测出来的每一组输出量也要在合理的范围内,基于以上约束条件求解出最优的控制量序列。

复盘总结

1. 拿到一个控制系统后先判断是线性系统还是非线性系统,如果是线性系统,直接做离散化处理;如果是非线性系统,就进行线性化处理(详见杰哥会员课程中非线性系统线性化总结复盘)

2. 线性化之后得到一个线性的状态空间方程,基于此方程进行迭代推导来构建预测模型来预测未来预测时域内的输出量

3. 基于模型约束和输出需求,设计目标函数及约束条件;在每一个采样时刻求解目标函数的最优控制序列,并将求出来的第一组控制量执行;

4. 在每一个采样时刻,重复上述操作来求解该时刻起有限时段的最优控制率,并将求出来的第一组控制量执行;

搜索公众号:杰哥的无人驾驶便利店,点击关注并将公众号置顶,加入会员全年无限制学习后台(纵向控制、非线性系统线性化处理及MPC算法跟踪任何轨迹等)会员专属爆品课程(持续更新)!

模型预测控制算法(mpc算法)底层逻辑

目录MPC算法的基本原理详细解析预测模型中需要注意的点滚动优化需要注意的点构造目标函数约束部分约束部分举例说明复盘总结MPC算法的基本原理MPC的基本原理可以分为三个步骤:预测模型、滚动优化、反馈校正(1... 查看详情

mpc算法

...p; 引言在工程技术方面,MPC全称可指ModelPredictiveControl模型预测控制(又称RHC,RecedingHorizon )。  模型预测控制算法一种进阶过程控制方法,自1980年以来开始在化工炼油等过程工业得到应用,并在经济领域开始得到... 查看详情

matlab模型预测控制(mpc,modelpredictivecontrol)(代码片段)

模型预测控制是一种基于模型的闭环优化控制策略。预测控制算法的三要素:内部(预测)模型、参考轨迹、控制算法。现在一般则更清楚地表述为内部(预测)模型、滚动优化、反馈控制。 大量的预测控制权威性文献都无... 查看详情

mpc算法

...p; 引言在工程技术方面,MPC全称可指ModelPredictiveControl模型预测控制(又称RHC,RecedingHorizon )。  模型预测控制算法一种进阶过程控制方法,自1980年以来开始在化工炼油等过程工业得到应用,并在经济领域开始得到... 查看详情

《无人驾驶车辆模型预测控制》——路径规划及轨迹跟踪控制

...置Simulink框图轨迹重规划结果图代码段在第六章中,模型预测控制器主要由带避障功能的轨迹重规划模块和轨迹跟踪控制模块构成。轨迹重规划模块接受来自传感器的障碍物信息以及来自全局规划的参考轨迹信息,通过算... 查看详情

mpc算法轨迹跟踪控制资源

...全年无限制学习后台(MPC相关矩阵的底层逻辑、纵向控制、非线性系统线性化处理及MPC算法动力学跟踪任何轨迹等)专属爆品课程(赠送会员专属全套答疑课程及全套爆品资源,且课程持续更新)!1.MPC跟... 查看详情

mpc车辆轨迹跟踪----理论推导(代码片段)

...外10%就是这次的主角MPC控制算法。MPC控制算法全称模型预测控制,它相对比PID有着多输入,多输出以及更加平稳的特点。并且最重要的是,MPC可以针对非线性的系统进行控制。由于其平稳的和非线性问题有着较... 查看详情

算法的分层(认知建模)模型---算法的逻辑与计算思维

1、问题描述;2、问题建模;用变量、概念等描述问题;使用数学和其他知识;3、逻辑求解;使用逻辑推理等求解问题;使用逻辑思维;是否有多重解法。4、算法描述;使用计算思维。 算法的最底层使用的是计算思维。算... 查看详情

mpc车辆轨迹跟踪----理论推导(代码片段)

...外10%就是这次的主角MPC控制算法。MPC控制算法全称模型预测控制,它相对比PID有着多输入,多输出以及更加平稳的特点。并且最重要的是,MPC可以针对非线性的系统进行控制。由于其平稳的和非线性问题有着较... 查看详情

mpc车辆轨迹跟踪----理论推导(代码片段)

...外10%就是这次的主角MPC控制算法。MPC控制算法全称模型预测控制,它相对比PID有着多输入,多输出以及更加平稳的特点。并且最重要的是,MPC可以针对非线性的系统进行控制。由于其平稳的和非线性问题有着较... 查看详情

如何使用机器学习算法进行能耗预测2:算法与架构

...署与调用逻辑Prophet算法实战简介数据处理Prophet算法逻辑模型的选择使用Streamlit_prophet快速上线与部署参考文献与学习路径业务逻辑与技术方案架构时间序列预测概念时间序列就是利用过去一段时间的数据来预测未来一段时间内... 查看详情

python逻辑回归(logisticregressionlr)底层代码实现bgd梯度下降算法softmax多分类

...多分类逻辑回归底层代码实现及可视化参考前言逻辑回归模型(LogisticRegressionModel)是机器学习领域著名的分类模型。其常用于解决二分类(BinaryClassification)问题。但是在现实工作/学习/项目中,我们要解决... 查看详情

逻辑回归lr

...一是逻辑回归的算法已经比较成熟,预测较为准确;二是模型求出的系数易于理解,便于解释,不属于黑盒模型,尤其在银行业,80%的预测是使用逻辑回归;三是结果 查看详情

如何使用机器学习算法进行能耗预测2:算法与架构

...署与调用逻辑Prophet算法实战简介数据处理Prophet算法逻辑模型的选择使用Streamlit_prophet快速上线与部署参考文献与学习路径业务逻辑与技术方案架构时间序列预测概念时间序列就是利用过去一段时间的数据来预测未来一段时间内... 查看详情

如何使用机器学习算法进行能耗预测2:算法与架构

...署与调用逻辑Prophet算法实战简介数据处理Prophet算法逻辑模型的选择使用Streamlit_prophet快速上线与部署参考文献与学习路径业务逻辑与技术方案架构时间序列预测概念时间序列就是利用过去一段时间的数据来预测未来一段时间内... 查看详情

比亚迪规划院需要控制算法工程师吗

...,熟悉Linux操作系统,有c/c++、python等开发经验;3、熟悉模型预测,车辆运动学,动力学模型等基础算法;4、掌握控制理论以及基本控制方法(PID,MPC,LQR,最优控制等),有实际开发经验。5、熟悉规划或轨迹生成算法,决策规划... 查看详情

机器学习---算法---逻辑回归

...者请忽略。2线性回归    先说一下,一般模型的训练和预测过程:    1,训练:通过训练数据来训练模型,也就是通常我们所说的学习过程,即确定模型的参数。  2, 预测:训练过后,模... 查看详情

本人大一为论文发愁

...于系统输入输出描述的控制算法,其三项基本原理是预测模型、滚动优化、反馈校正。它选择单位阶跃响应作为它的“预测模型”。这种算法除了能简化建模过程外,还可以通过选择合适的设计参数,获得较好的控制效果和解耦... 查看详情