MPC学习笔记(1)——原理

这篇具有很好参考价值的文章主要介绍了MPC学习笔记(1)——原理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近在学习M. W. Mehrez的MPC时发现了很多不了解的细节,分享一下对该算法的梳理与理解。

在自动驾驶或机器人领域中,模型预测控制(Model Predictive Control, MPC)解决的是轨迹规划的问题。其前提条件是环境地图、载体位姿已知,根据MPC算法,得到一条轨迹,轨迹中包含载体运行所需的每一时刻的速度信息,最终实现对载体的控制。

为什么要用MPC?以差分底盘小车为研究对象,更传统的输出轨迹方法是“控制-定位-控制”的模式,如DWA。但是计算机的控制有时间延迟,第一次发出速度指令并进行定位时,小车已经向前走了一个距离,而下一时刻发送的速度指令是基于上次定位的信息,也就是说控制是滞后的。MPC可以根据过去的信息以及载体模型,推算出未来一定时间内的最优控制策略,从而解决了控制滞后的问题。

算法原理

结合下图, x ( ⋅ ) x(·) x()表示状态变量,其中蓝线对应的 x r x^r xr代表想要达到的目标状态,上标r代表reference。 u ( ⋅ ) u(·) u()表示控制变量。根据当前时刻的状态,和当前时刻的控制量,就能得到下一时刻的状态量,例如知道当前位置和前进的速度,就能知道下一时刻的位置。其数学上的表示为:
x ( k + 1 ) = f ( x ( k ) , u ( k ) ) x(k +1) = f (x(k),u(k)) x(k+1)=f(x(k),u(k))
该式称为系统方程
mpc控制,规控算法,自动驾驶,算法
模型预测控制,又称为滚动时域控制,其核心策略有三点,预测、实施优化和移动窗口:

  1. 预测 Prediction
    预测指的是,例如当前在 k k k时刻,建立一个包含 N N N个时刻的“窗口”,然后根据当前时刻的状态量 x ( k ) x(k) x(k),计算一个最优控制序列,也就是计算得到 u ∗ ( k ) u^*(k) u(k) u ∗ ( k + 1 ) u^*(k+1) u(k+1) . . . ... ... u ∗ ( k + N − 1 ) u^*(k+N-1) u(k+N1),共 N N N个控制量,上标*代表最优的结果。其中 u ∗ ( k ) u^*(k) u(k)就是 k k k时刻决定发出的速度指令。

  2. 实时优化 Online optimization
    实时优化指的是在预测中最优控制序列的计算过程,属于最优控制问题。下节中进一步解释。

  3. 移动窗口 Receding horizon
    移动窗口时,当前载体已经从 k k k时刻前进到 k + 1 k+1 k+1时刻,再重复执行预测和实时优化的步骤。

内容参考:
[1] M. W. Mehrez的Github上的ppt:https://github.com/MMehrez/MPC-and-MHE-implementation-in-MATLAB-using-Casadi文章来源地址https://www.toymoban.com/news/detail-621227.html

到了这里,关于MPC学习笔记(1)——原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MPC算法学习(1)

      目录 一、了解MPC 1.MPC → Model PredictIve Control 2.MPC基本工作原理 二、MPC设计 1.MPC参数设计 2.MPC使用范围  3.MPC速度优化 三、MPC推导 1.基于单位脉冲响应的公式推导 2.基于状态空间的推导 四、仿真实例 1.SISO系统 2.MIMO系统 3.基于simulink的仿真  4.车辆横向运动状态空间模型的推

    2024年01月19日
    浏览(36)
  • 【DR_CAN-MPC学习笔记】3&4.详细的MPC建模例子和matlab代码

    上一篇博客:【DR_CAN-MPC学习笔记】2.最优化数学建模推导 参照二次规划一般形式,详细推导了MPC的数学模型,即最小化代价函数的表达式,最终推导结果为: DR_CAN的视频: 【MPC模型预测控制器】3_一个详细的建模例子 【MPC模型预测控制器】3  【MPC模型预测控制器】4_完整案

    2024年02月13日
    浏览(36)
  • 控制四旋翼飞行器以进行多目标航点导航的MPC算法(Matlab代码实现)

      💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 目前研

    2024年02月08日
    浏览(49)
  • 自动驾驶路径规划控制ros移植Apollo和autoware规控算法可跑工程(适合入门学习和实战)

    自动驾驶路径规划控制ros1和ros2移植Apollo和autoware规控算法可跑工程(适合入门学习,科研和实战),不仅包括移植Apollo和autoware规划算法,还包括其他规划算法,与carla联合仿真实现规划控制,autoware-carla联合仿真,Lanelet高精度地图构建,强化学习等等,基本涵盖了公司算法

    2024年02月10日
    浏览(50)
  • 自动驾驶路径规划控制ros移植Apollo和autoware规控算法可跑工程(适合入门学习,科研和实战)

    自动驾驶路径规划控制ros1和ros2移植Apollo和autoware规控算法可跑工程(适合入门学习,科研和实战),不仅包括移植Apollo和autoware规划算法,还包括其他规划算法,与carla联合仿真实现规划控制,autoware-carla联合仿真,Lanelet高精度地图构建,强化学习等等,基本涵盖了公司算法

    2024年02月08日
    浏览(52)
  • MATLAB 模型预测控制(MPC)控制入门 —— 设计并仿真 MPC 控制器

    MATLAB 模型预测控制(MPC) 模型预测控制工具箱™ 提供了用于开发模型预测控制 (MPC) 的函数、应用程序、Simulink® 模块和参考示例。对于线性问题,该工具箱支持设计隐式、显式、自适应和增益调度 MPC。对于非线性问题,您可以实现单级和多级非线性 MPC。该工具箱提供可部

    2024年02月02日
    浏览(53)
  • 模型预测控制(MPC)解析(一):模型

    1.1 预测控制的日常应用         模型预测控制的设计目标是计算未来控制变量u的轨迹,以优化未来的系统输出y。优化过程在一个有限的时间窗口进行,并且利用优化时间窗口开始时的系统信息进行优化。为了理解预测控制的基本思想,以一个日常工作为例来进行说明。

    2024年02月02日
    浏览(49)
  • USV的MPC轨迹跟踪控制

    该博客用以记录MPC轨迹控制的理论和matlab程序 被控对象运动学模型,为无人艇USV模型: x ˙ ( k ) = f ( x , u ) = { x ˙ = u cos ⁡ ( ψ ) − v sin ⁡ ( ψ ) y ˙ = u sin ⁡ ( ψ ) + v cos ⁡ ( ψ ) ψ ˙ = r begin{equation} dot{bold{x}}(k)= f(bold{x},bold{u})=left{ begin{aligned} dot{x}=ucos(psi)-vsin(psi) \\\\

    2024年01月19日
    浏览(54)
  • MPC(模型预测控制)-Simulink仿真

    一、为什么使用MPC控制器? ① MPC可以处理多输入耦合控制多输出的问题: ② MPC可以处理对于控制量有约束的问题 比如,驾驶汽车的时候,汽车速度和转角都有上限 ③ MPC具有预测效果 即MPC考虑的不是根据当前参考值进行控制,而是根据预测时间内的参考去预测当前的控制量,

    2024年01月25日
    浏览(44)
  • 模型预测控制(MPC)简介及matlab实现

    全称 :Model-based Predictive Control(MPC)—模型预测控制 本质 :MPC利用一个已有的模型、系统当前的状态和未来的控制量,来预测系统未来的输出,然后与我们期望的系统输出做比较,得到代价函数,通过优化的方法,优化出未来控制量,使得代价函数最小。优化出来的控制量即

    2023年04月08日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包