mpc模型预测控制原理详解

2023-05-16

mpc模型预测控制原理详解

  • 前言
  • mpc算法步骤
  • mpc算法推导

前言

本文是对mpc模型预测控制学习的记录,主要参照了DR_CAN老师的视频进行学习。视频专栏链接:DR_CAN老师mpc视频专栏。在这篇博客中博主也针对DR_CAN老师的讲解做了详尽的笔记和代码实现。读者可以相结合地进行学习。

mpc算法步骤

MPC算法主要包括以下三步:

  1. 估计/测量读取当前系统状态
  2. 基于 u k , u k + 1 , . . . u k + N u_k,u_{k+1},...u_{k+N} uk,uk+1,...uk+N来进行最优化;
  3. 只取 u k u_k uk。(Receding Horizon Control)滚动优化控制
    为什么只取 u k u_k uk那?这是因为如果系统一次预测太多的控制输入,当系统发生变化或者受到外部扰动的时候,接下来的k+1、k+2等时刻预测的未必准。只取 u k u_k uk的滚动优化控制,可以避免这个问题。

mpc算法推导

考虑一个离散系统,其状态空间表达式为:
在这里插入图片描述

系统输出参考值 R = 0 R=0 R=0,误差为 E = y − R = x − 0 = x E=y-R=x-0=x E=yR=x0=x
选取这样简单的系统有利于在推导时降低难度。
在k时刻时,我们令:
(1.2)

其中 u ( k + 1 ∣ k ) u(k+1|k) u(k+1∣k)表示在k时刻预测的k+1时刻的的系统输入u, u ( k + i ∣ k ) u(k+i|k) u(k+ik)表示的含义类似于 u ( k + 1 ∣ k ) u(k+1|k) u(k+1∣k),N表示预测区间。
同样地,令:
(1.3)

此时的代价函数(cost function)为
(1.4)

其中Q 、R、F 为权重系数矩阵,假设其中 Q、R 均为对称矩阵(简单一些)。代价函数包含系统的误差和控制输入,可以通过代价函数的大小来衡量系统的优劣。
根据系统的状态空间表达式,可以推导出:
(1.5)

将上式写成矩阵形式:
(1.6)

在这里插入图片描述
(1.7)

将(1.4)式展开,得:
(1.8)
在这里插入图片描述

以看到代价函数仍然需要 x ( k + 1 ∣ k ) , x ( k + 2 ∣ k ) x(k+1|k),x(k+2|k) x(k+1∣k),x(k+2∣k)等下一步未知的状态。而我们的目标是只用控制输入来表示代价函数。将式(1.7)代入(1.8)中,得
(1.9)

其中 在这里插入图片描述

,可以看到式(1.9)经化简之后,得到最终的形式只包含初始状态 以及控制输入 。之后便是形如代价函数J的二次型函数的最优化问题。
Ps:既然初始状态那一项 x k T G x k x_k^TGx_k xkTGxk是固定的,在计算最优化的时候可以不用计算吧。

本文主要注重的是过程推导,最后我们得到了系统代价函数的简单形式,关于代码,DR_CAN老师的教程中有详细的讲解和实践,有兴趣的可以自行跳转学习。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mpc模型预测控制原理详解 的相关文章

  • mpc模型预测控制原理详解

    mpc模型预测控制原理详解 前言mpc算法步骤mpc算法推导 前言 本文是对mpc模型预测控制学习的记录 xff0c 主要参照了DR CAN老师的视频进行学习 视频专栏链接 xff1a DR CAN老师mpc视频专栏 在这篇博客中博主也针对
  • Apollo代码学习(七)—MPC与LQR比较 (百度Apollo中用到了PID、MPC和LQR三种控制器)

    摘自 xff1a https blog csdn net u013914471 article details 84324754 Apollo代码学习 七 MPC与LQR比较 follow轻尘 2018 11 29 17 32 56 179
  • 我已经多次看到说LQR和MPC相似

    https zhuanlan zhihu com p 139145957 https blog csdn net sinat 16643223 article details 109707776
  • MPC,PID,LQR,DDP算法

    算法原理 xff1a
  • 自动驾驶控制算法-模型预测MPC

    本文记录一下MPC控制算法的学习过程和自己的理解 xff0c 初步接触控制算法 xff0c 理解肯定不是很完善 xff0c 重在记录思考的过程 背景 随着自动驾驶技术以及机器人控制技术的不断发展及逐渐火热 xff0c 模型预测控制 MPC
  • PID/LQR/MPC自行总结使用

    PID LQR MPC自行总结使用 自学控制相关知识 xff0c 已经一年多了 xff0c 现在回头看看还是有很多模糊不明确的地方 xff0c 准备借此机会进行总结一下 xff0c 第一次写博客 xff0c 如果错误和不合理之处 xff0c
  • 模型预测控制(Model predictive control,MPC)

    模型预测控制 MPC 是一种先进的过程控制方法 xff0c 用于在满足一组约束条件的同时控制过程 自 1980 年代以来 xff0c 它一直在化工厂和炼油厂的加工工业中使用 近年来 xff0c 它还被用于电力系统平衡模型 1 和电力电子学中
  • MPC控制笔记(一)

    转自 我的博客 笔记参考1 xff1a Understanding Model Predictive Control Youtube 带自动生成字幕 笔记参考2 xff1a Understanding Model Predictive Co
  • MPC控制笔记(一)

    转自 我的博客 笔记参考1 xff1a Understanding Model Predictive Control Youtube 带自动生成字幕 笔记参考2 xff1a Understanding Model Predictive Co
  • MPC控制

    基于状态空间模型的控制 模型预测控制 xff08 MPC xff09 简介 对基于状态空间模型的控制理解得很到位 在这里我重点讲解一下状态空间 模型 那么什么是状态 xff1f 输出是不是也是状态的一种 xff1f 对的 xff0c 输出也
  • LQR、LQR-MPC、GP-MPC控制倒立摆

    LQR控制倒立摆 xff1a 倒立摆状态方程 xff1a 目标任务 xff1a 模型参数 xff1a LQR for the cart pole system load 39 cp params mat 39 syms phi phid x
  • MPC(模型预测控制)控制小车沿轨迹移动——C++实现

    任务说明 要求如下图所示 xff0c 给定一条轨迹 xff0c 要求控制小车沿这条轨迹移动 xff0c 同时可以适用于系统带有延时的情况 注意 xff0c 本篇文章只给出部分C 43 43 代码参考 主要流程 首先用运动学自行车模型 xff
  • PID与MPC控制方法

    记录udacity 无人驾驶工程师课程中控制部分 MPC代码和实践链接https github com udacity CarND MPC Quizzes 本文按照对udacity课程的理解和翻译而来 1 PID P xff1a Propo
  • MPC与LQR的详细对比分析

    从以下几个方面进行阐述 xff1a 一 xff0c 研究对象 xff1a 是否线性 二 xff0c 状态方程 xff1a 离散化 三 xff0c 目标函数 xff1a 误差和控制量的极小值 四 xff0c 工作时域 xff1a 预测时域 x
  • MPC模型预测控制

    这篇主要讲一下模型预测控制 xff0c 如果对PID控制了解的同学 xff0c 那效果更好 如果不了解PID控制 xff0c 还是熟悉下比较好 模型预测控制 xff0c 顾名思义 xff0c 基于模型 xff0c 预测未来 xff0c 进行
  • MPC自学资料总结

    1 书籍 xff1a 无人驾驶车辆模型预测控制 2 视频 xff1a https ww2 mathworks cn videos understanding model predictive control part 1 why use m
  • Apollo代码学习(七)—MPC与LQR比较

    Apollo代码学习 MPC与LQR比较 前言研究对象状态方程工作时域目标函数求解方法 前言 Apollo中用到了PID MPC和LQR三种控制器 xff0c 其中 xff0c MPC和LQR控制器在状态方程的形式 状态变量的形式 目标函数
  • Apollo代码学习(六)—模型预测控制(MPC)

    Apollo代码学习 模型预测控制 前言 模型预测控制 预测模型 线性化 单车模型 滚动优化 反馈矫正 总结 前言 非专业选手 此篇博文内容基于书本和网络资源整理 可能理解的较为狭隘 起点较低 就事论事 如发现有纰漏 请指正 非常感谢 查看
  • 控制范围和预测范围

    我已经回顾了模型预测控制的参考书目和 Gekko 编程结构 尽管我了解它的编程方式及其目的 例如 我想了解 Gekko 如何根据 Seborg 中的相关内容来管理控制范围和预测范围之间的差异 我看不出代码有什么区别 下面是一个用于说明的 M
  • 在 GEKKO 中使用非线性模型预测控制实现横向控制器

    我正在尝试为由横向动态模型定义的自动驾驶车辆实现横向控制器 好吧 我的问题是 CV 没有达到 SP 设置的所需参考点或目标点 我正在使用以下运动方程和目标函数 我正在使用半经验公式 pacejka 来计算 Fyf Fyr 提供的轮胎力 这里

随机推荐

  • 解决Server's certificate is not trusted

    要解决Server s certificate is not trusted 首先Ctrl 43 Alt 43 s找到settings单击进入 勾选
  • 解决:无法打开系统服务 提示“一个或多个Activex控件无法显示”

    问题 xff1a 电脑打开系统的服务时 xff0c 出现 一个或多个Activex 控件无法显示 的提示 xff0c 开始以为与IE设置有关 xff0c 试着在Internet 选项 gt 安全 xff0c 勾选了 允许ActiveX 控件
  • IDEA:yml不显示小绿叶图标

    IDEA xff1a yml不显示小绿叶图标 之前idea能识别yml文件 xff0c 后面再学习微服务时突然识别不了yml xff0c yml文件不显示小绿叶图标 xff0c yml文件中相关的提示功能也失效 xff0c 但以 yaml为
  • 安装Ubuntu时发现卡在一个地方点不动解决方法

    有很多小伙伴发现自己在VMware安装虚拟机时 xff0c 卡在一个页面不能点击 xff0c 拖动也不起作用 xff0c 一直卡在一个地方动不了 xff0c 真的气死人了 xff0c 总以为是电脑或者其他什么地方的问题 xff0c 移除然后
  • CSP 202112-5 极差路径12分暴力代码

    原题链接 xff1a CSP 202112 5 极差路径 span class token macro property span class token directive keyword include span span class
  • CCF-CSP 201809-3 元素选择器

    原题链接 xff1a CCF CSP 201809 3 元素选择器 参考题解 xff1a CCF201809 3 元素选择器 xff08 100分 xff09 文本处理 span class token macro property spa
  • CCP-CSP 201912-5 魔数 暴力25

    原题链接 xff1a CCP CSP 201912 5 魔数 线段树是写不来的 span class token macro property span class token directive hash span span class
  • CCP-CSP 201909-3 字符画 100

    原题链接 xff1a CCP CSP 201909 3 字符画 这道题我觉得难点主要是不会处理ASCII码的转换 xff0c 还有就是看不懂题 xff0c 其实逻辑不难 参考博客 xff1a CCF CSP 20190903 字符画 100
  • wsl 无法使用netstat

    zshrc
  • 速腾雷达16线实现FAST-LIO2算法建图

    速腾雷达16线实现FAST LIO2算法建图 一 配置激光雷达数据1 下载rsladir SDK包到catkin ws src下2 添加依赖3 配置参数 xff1a 4 编译测试5 将雷达格式转换为velodyne格式6 将转换格式嵌入到s
  • HuTool工具最全介绍

    简介 xff1a Hutool是一个小而全的Java工具类库 xff0c 通过静态方法封装 xff0c 降低相关API的学习成本 xff0c 提高工作效率 xff0c 使Java拥有函数式语言般的优雅 xff1b 提供了Java基础工具类
  • 【hnu暑学期】数据库系统设计 准备阶段

    说些什么 那年杏花微雨 xff0c 你说你是数据库 xff0c 或许一开始便都是错的 如果学弟学妹们可以在暑学期选课前看到这篇博文的话 快跑 xff01 快跑 xff01 快跑 xff01 本来是想着数据库比较水的 xff0c 可以随便混一
  • 古代有一个梵塔,塔内有 A、B、C 三个基座,A 座上有 64 个盘子,盘子大小不等,大的在下,小的在上

    古代有一个梵塔 xff0c 塔内有 A B C 三个基座 xff0c A 座上有 64 个盘子 xff0c 盘子大小不等 xff0c 大的在下 xff0c 小的在上 有人想把这 64 个盘子 从 A 座移到 C 座 xff0c 但每次只允许
  • 修改mysql 8.0密码

    1 首先说明 xff1a 正确的修改密码方式 xff1a span class token constant ALTER span span class token constant USER span span class token s
  • P1591 阶乘数码洛谷

    题目描述 求n 中某个数码出现的次数 输入格式 第一行为t 10 xff0c 表示数据组数 接下来t行 xff0c 每行一个正整数n 1000 和数码a 输出格式 对于每组数据 xff0c 输出一个整数 xff0c 表示n 中a出现的次数
  • 多神经网络轨迹跟随控制(MATLAB实现)

    多神经网络轨迹跟随控制 xff08 MATLAB实现 xff09 本文是我基于自己的理解实现的多神经轨迹跟随控制 xff0c 可能不太正确 xff0c 但仍记录下来 此题目当我刚看到的时候一头雾水 xff0c 经过看PPT和自己实践貌似搞出
  • turtlebot3 Slam建图和导航仿真

    turtlebot3 Slam建图和导航仿真 使用RViz仿真Turtlebot3 RViz简介 RViz是ROS的三维可视化工具 它的主要目的是以三维方式显示ROS消息 xff0c 可以将数据进行可视化表达 例如无需编程即可表达激光测距仪
  • 【MATLAB APPdesigner ui设计实现软件动态页面启动 】(启动无标题栏)

    MATLAB APPdesigner实现软件动态页面启动 xff08 启动无标题栏 xff09 前言实现实现动态界面启动隐藏动态界面启动的标题栏 前言 最近需要验收利用MATLAB所实现的控制系统 xff0c 为了更好的展示 xff0c 因
  • 激光雷达方程推导与激光器参数指标

    激光雷达方程推导与激光器参数指标 激光雷达方程推导多种目标类型下的激光雷达方程激光器的参数指标 激光雷达方程推导 设定目标与激光雷达的距离为 R R R xff0c 发射激光束的发散角为
  • mpc模型预测控制原理详解

    mpc模型预测控制原理详解 前言mpc算法步骤mpc算法推导 前言 本文是对mpc模型预测控制学习的记录 xff0c 主要参照了DR CAN老师的视频进行学习 视频专栏链接 xff1a DR CAN老师mpc视频专栏 在这篇博客中博主也针对