模型预测控制算法(MPC算法)底层逻辑
Posted Jeossirey
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模型预测控制算法(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算法)底层逻辑的主要内容,如果未能解决你的问题,请参考以下文章