MPC控制笔记(一)

2023-05-16

转自 我的博客

笔记参考1:Understanding Model Predictive Control(Youtube 带自动生成字幕)
笔记参考2:Understanding Model Predictive Control(B站 生肉)

一、什么是MPC模型预测控制

MPC(Model Predict Control)是一种反馈控制(feedback control)算法, 使用模型来预测过程的未来输出。

举例:
[场景] 车道保持
[已知模型] 车辆模型,比如速度控制, 转向控制对应的偏航量
[预测] 根据已知模型和所选的控制策略(action),进行轨迹预测
[优化] 通过优化控制策略,来尽可能的拟合预测的轨迹。

如下图所示为一个MIMO系统u1,u2输入与y1,y2输出相互影响。如果使用PID控制的话,每一个子系统单独设计一个PID控制器,两个相互影响的子系统没有任何的交联,使得系统难以设计,如果像图二一样设计一个较大的系统,则参数较多难以实现,而使用MPC控制器的话可以较好的解决两种问题,综合相互间的影响来设计参数。
MIMO

MIMO BIG
MPC控制
MIMO MPC

此外MPC控制还可以方便的支持各种约束条件,具备一定的预测能力(有点像前馈feedforward控制)。

二、MPC的特点

综合上述,总结一下MPC的特点:

  • 支持MIMO系统,便于构建输入输出间的相互影响参数
  • 支持方便添加约束条件
  • 具有预测能力、
  • 需要较好的处理器和较大的内存,因为需要大量的在线优化,存储大量的变量

Onlineopt

三、MPC参数选择

选择一个好的参数不仅影响MPC控制的性能,而且还会影响到MPC每一个timestep内进行在线优化的计算复杂度。这里将会给出关于控制器采样周期、预测及控制范围(prediction and control)、约束及权重。

采样周期的选择

采样周期过大,则系统反应过慢导致难以及时进行修正控制,而采样周期过小,则会导致系统产生大量的在线优化计算,给系统带来较大的开销。因而建议采样周期设计采用开环响应时间(10~90%上升时间)的十分之一或二十分之一
timestep

预测范围(prediction horizon)的选择

预测范围指的是一次优化后预测未来输出的时间步的个数。建议范围:在开环响应时间内采样20-30个样本的范围
predhorizon

控制范围(control horizon)的选择

如下图 [k, k+m]范围为控制范围,之后的红色部分称为 held constant,其中控制范围是要通过优化器来进行优化的参数动作。
ctrlhorizon

过小的控制范围,可能无法做到较好的控制,而较大的控制范围,比如与预测范围相等,则会导致只有前一部分的控制范围才会有较好的效果,而后一部分的控制范围则收效甚微,而且将带来大量的计算开销。
consrtgr

建议控制范围应该在预测范围的1020%之间,最小值为23个timestep时间步
sujest

约束

对于约束,一般分为Hard约束和Soft约束,Hard约束是不可违背必须遵守的,在控制系统中,输入输出都可能会有约束限制,但是在设计时不建议将输入输出都给予Hard约束,因为这两部的约束有可能是有重叠的,导致优化器会产生不可行解。
建议输出采用较小容忍度的Soft约束,而输入的话建议输入和输入参数变化率二者之间不要同时为Hard约束,可以一个Hard一个Soft。
costraint

四、Linear MPC (Adaptive MPC 与 Gain-Scheduled MPC)

Linear MPC适用于:

对于非线性系统而言,需要在不同的operating point处进行线性化处理如下图。
op

Adaptive MPC

在 Adaptive MPC中,当operating condition发生变化的时候,需要进行一次近似线性化计算,在每个时间步中,使用其近似线性模型来更新内部的平台模型(plant model,比如飞控模型,自行车模型等)。
在 Adaptive MPC中,在不同的operating point条件下,其优化问题的结构保持不变,即状态数量,约束数量不会随着operating condition而改变。
adaptivempc

Gain-Scheduled MPC

在 Gain-Scheduled MPC中,在不同的operating point条件下,其优化问题的结构会发生变化,需要为每一个operating point构建一个MPC控制器,且相互之间独立,其状态数量约束数量也可能不同。
在 Gain-Scheduled MPC模式下,需要设计调度算法来切换不同的MPC模型。
GMPC

二者选型

[Adaptive MPC] 当能够构建平台(如飞行器,自动车等)的runtime线性模型,且在不同的operating point下优化问题的结构不变。

[Gain-Scheduled MPC] 当能够构建平台(如飞行器,自动车等)的runtime线性模型,且在不同的operating point下优化问题的结构发生变化。

五、Non-Linear MPC (Adaptive MPC 与 Gain-Scheduled MPC)

Non-Linear MPC适用于(相对强大,能够提供更准确的预测能力,与决策支持,但是非线性优化的计算开销较大)

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

MPC控制笔记(一) 的相关文章

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

    mpc模型预测控制原理详解 前言mpc算法步骤mpc算法推导 前言 本文是对mpc模型预测控制学习的记录 xff0c 主要参照了DR CAN老师的视频进行学习 视频专栏链接 xff1a DR CAN老师mpc视频专栏 在这篇博客中博主也针对
  • 我已经多次看到说LQR和MPC相似

    https zhuanlan zhihu com p 139145957 https blog csdn net sinat 16643223 article details 109707776
  • 控制笔记(自控+现控)

    目录 主流控制方法优缺点 干扰观测器 水床效应 PID 积分分离 饱和区 积分饱和 微分使用条件 死区 中性区 不作用区 动态性能指标 主流控制方法优缺点 PID 优点 xff1a 实现简单 不依赖模型缺点 xff1a 在系统平衡点附近设计
  • 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 提供的轮胎力 这里

随机推荐

  • VSCode:配置C/C++开发环境

    准备 区分编辑器 编译器 IDE xff1a 作者 xff1a C语言教学 编辑器就是处理文本 xff08 源码 xff09 的程序 xff0c 写代码写的就是文本 xff0c 编辑器可能提供智能提示 代码高亮等辅助功能 xff0c 但不负
  • NXP MIMXRT1052CVL5B + 正点原子 + MCUXpresso IDE 开发环境搭建

    NXP MIMXRT1052CVL5B 43 正点原子 43 MCUXpresso IDE 开发环境搭建 说明资料准备一切就绪 xff0c 搞他安装 IDE 及生成基本工程安装 J Link 及配置开始调试下载点击 运行 按钮 xff0c
  • c语言学习笔记(1) C语言库函数

    1 xff1a ASLL可现实字符 2 xff1a c文件 span class token macro property span class token directive hash span span class token dire
  • 查看ROS的版本

    查看ROS的版本 启动ROS核心 xff1a roscore获取ROS参数 xff1a rosparam get rosdistro
  • ROS 版本选择和安装

    文章目录 声明 xff1a ROS 的版本选择ROS 的安装ROS 的安装方式软件源安装步骤 声明 xff1a 本文中的内容参考了市面上绝大多数畅销的ROS书籍 xff0c 本文只作个人学习记录和学习分享使用 xff0c 不作任何商业用途
  • 数据结构(考研&面试)

    数据结构和算法 xff08 持续更新 xff09 参考清华大学严蔚敏数据结构与算法 适用于考研 amp 求职 数据结构与算法JAVA落地版 Java 数据结构与算法 xff08 代码实现 下载链接 xff09 本教程全部采用C语言实现 1
  • Sphinx入门

    文章目录 Sphinx画流程图和时序图 最近在使用sphinx的时候遇到了一点问题 xff0c 首先是不支持中文检索 xff0c 为此进行了一些配置 xff0c 参考链接 首先安装jieba库 xff0c python3的安装命令是 xff
  • Linux系统信息查看命令大全

    系统 QUOTE uname a 查看内核 操作系统 CPU信息 head n 1 etc issue 查看操作系统版本 cat proc cpuinfo 查看CPU信息 hostname 查看计算机名 lspci tv 列出所有PCI设备
  • linux系统触摸板用不了(解决)

    安装好linux系统可能出现用不了触摸板的情况 xff0c 只可以单击 xff0c 不可以滑动 解决方式一 sudo modprobe psmouse sudo modprobe r psmouse 解决方式二 sudo modprobe
  • 百度移动软件开发面试题(20131018)

    1 new与malloc的区别 xff1f 分析 xff1a 一 new和malloc都是用于申请动态内存 new使用delete释放空间 xff0c malloc使用free释放 new和delete是C 43 43 中的运算符 xff0
  • Ubuntu 中apt update和upgrade 的区别

    转自https blog csdn net csdn duomaomao article details 77802673 简要说明 xff1a apt update xff1a 只检查 xff0c 不更新 xff08 已安装的软件包是否有
  • ubuntu下域名解析出问题的解决办法

    内网服务器配置了固定ip xff0c 未配置dns xff0c 临时需要接入外网时 xff0c 域名解析失败 xff0c 需要临时添加域名解析 操作如下 xff1a sudo vim etc resolv conf 然后底下插入你的好用的d
  • Git clone wiringPi出现Connection reset by peer的解决办法

    Git clone wiringPi出现Connection reset by peer的解决办法 小伙伴们按照正常的方法来安装强大的GPIO库wiringPi一般为如下几步 xff1a git span class hljs keywor
  • Linux内存占用过高?非也

    前言 今天在我的RPi2上测试GPIO程序 xff0c 忽然发现机器超卡 xff0c 重启之后依然如此 于是我top了一下发现了一个问题就是内存爆满 xff01 xff01 可我还啥都没干呢这是咋了 xff1f 于是我呵呵地开始查资料 xf
  • MPC控制笔记(一)

    转自 我的博客 笔记参考1 xff1a Understanding Model Predictive Control Youtube 带自动生成字幕 笔记参考2 xff1a Understanding Model Predictive Co
  • [强化学习笔记专题(二)]Nature DQN

    转自 我的博客 DQN Nature 一 算法流程 xff1a 定义可配置参数 episode 数量 M最大仿真时间 T xff0c g r
  • [强化学习论文] (HDQN) Integrating Temporal Abstraction and Intrinsic Motivation

    转自我的博客 论文 题目 Hierarchical Deep Reinforcement Learning Integrating Temporal Abstraction and Intrinsic Motivation 作者 Tejas
  • 强化学习专题笔记(一) 强化学习基础

    一 长期回报 对于问题的简化 xff0c 采用理想的MDP xff0c 简化问题到具有马尔科夫性 xff0c 对于马尔科夫决策过程而言 xff0c 在理想状态下 xff0c 每一个行动都要为最终的目标最大化长期回报 而努力 max t
  • [马士兵] 一. 初识JAVA 10.notepad++的安装_配置系统环境变量path

    1 安装记事本 xff1a notepad 2 安装 xff1a 一直下一步 3 打开记事本进行设置 xff1a 设置 首选项 xff1a 设置 语言格式设置 xff1a 4 打开notepad 43 43 xff08 1 xff09 方式
  • MPC控制笔记(一)

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