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

article/2025/11/9 13:39:24

目录

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的状态;要求解这样一个最优化问题,我们依据在最小的能量下使得跟踪误差最小来设计目标函数,把车辆横向位置偏差以及横摆角偏差等量以加权平方形式都考虑进来;此外还需要对这个最优化问题设置变量约束,比如车辆的控制量一定要满足机构的约束,预测出来的每一组输出量也要在合理的范围内,基于以上约束条件求解出最优的控制量序列。

需要系统性学习的朋友,请点击下方图片,加入会员全年无限制学习后台(MPC各矩阵的底层逻辑、MPC纵向控制、模型验证、MPC自适应巡航控制、非线性系统如何线性化及MPC动力学跟踪任何轨迹、约束添加及新求解器的求解、轨迹规划、纵向规划等80个系列)会员专享爆品课程及资源,同时获得分佣资格,可赚回自己的学费!


http://chatgpt.dhexx.cn/article/K7YT3umv.shtml

相关文章

模型预测控制(MPC)算法原理

模型预测算法是在欧美等国家兴起的应用于工业领域的一种优化控制算法。目前经过多年的发展,在工业领域、智能控制领域等都有应用。随着算法的理论的完善,其已经成为工业领域内经常使用的一种经典算法。虽然在各个领域算法的应用存在差异。但他们都遵循预…

到底什么是模型预测控制MPC(一)

1. 为什么使用MPC控制 在浏览文章的时候,很多文章都是基于MPC来做的。那么究竟什么是模型预测呢? 模型预测也可以说是一种我们熟悉的反馈控制算法,其目的就是预测出未来的输出。以一个生活中的例子引入: 在我们驾驶汽车的时候&am…

MPC控制笔记(一)

转自 我的博客 笔记参考1:Understanding Model Predictive Control(Youtube 带自动生成字幕) 笔记参考2:Understanding Model Predictive Control(B站 生肉) 一、什么是MPC模型预测控制 MPC(Model Predict Control)是一种反馈控制(feedback control)算…

PID与MPC控制方法

记录udacity–无人驾驶工程师课程中控制部分。 MPC代码和实践链接https://github.com/udacity/CarND-MPC-Quizzes 本文按照对udacity课程的理解和翻译而来 1、PID P:Proportional 比例项, 用比例项乘以误差;快速缩小误差; I&…

了解模型预测控制2--什么是模型预测控制(MPC)

本节,我们将讨论模型预测控制器的工作原理。 在控制问题中,控制器的目标是计算被控对象的输入,使得被控对象输出遵循期望的参考信号。模型预测控制器计算此输入的策略是预测未来。 这听起来像算命,但让我们看看它究竟是什么。MPC使…

模型预测控制(MPC,Model Predictive Control)

发展历史 20世纪70年代后期,一类新型的计算机控制算法出现在美法等国的工业过程领域,如动态矩阵控制(DMC,Dynamic Matrix Control)、模型算法控制(MAC,Model Algorithm Control)。1987年,首次有学者阐述了该系列算法的动因、机理及其在控制工…

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

最近在学习M. W. Mehrez的MPC时发现了很多不了解的细节,分享一下对该算法的梳理与理解。 在自动驾驶或机器人领域中,模型预测控制(Model Predictive Control, MPC)解决的是轨迹规划的问题。其前提条件是环境地图、载体位姿已知,根据MPC算法&…

MPC 控制原理

MPC 控制原理 1 生活中的启示2 实际控制的例子参考文献 Yin 机械工程师 本文引自 一个模型预测控制(MPC)的简单实现. 1 生活中的启示 情景如下:你们团队每天早晨开一次例会,主要会议内容是你汇报工作进度,领导根据工作…

EA建模工具,介绍常用的UML图

[导读] 作为程序猿都最好掌握的一门语言,那就是UML(Unified Modeling Language),统一建模语言(UML)是软件工程领域中一种通用的开发建模语言,旨在提供一种可视化系统设计的标准方法。是开发人员、系统设计人员交流的有…

uml c语言函数流程图,UML流程图模板分享

原标题:UML流程图模板分享 UML是统一建模语言,又称标准建模语言是用来对软件密集系统进行可视化建模的一种语言。UML的定义包括UML语义和UML表示法两个元素。在流程图中也会经常使用到,但是网上关于该主题的模板不是很多,下面是分…

软技能之UML图

软技能之UML图 工欲善其事必先利其器,程序员建模过程中需要用到的建模工具UML。 UML:Unified Modeling Language 统一建模语言。目标是以对象图的方式来描述任何类型的系统。 UML可分为两类:结构型(描述某种结构)、行…

生成C++工程的UML类图和类继承关系图

简介 在进行软件开发时,了解代码结构和关系、类之间的继承关系以及类内部的成员函数和变量定义是非常重要的。为此,我们可以使用Doxygen和Graphviz工具来生成UML类图和类集成关系图。 Doxygen是一个用于从注释的C源代码中生成文档的工具,支…

Ubuntu系统画大型UML图

一、 环境配置 1. 配置java环境(请自行查找教程) 2. 安装graphviz sudo apt install graphviz 3. 下载plantuml.jar 下载页面 下载好以后,我将其放在了~/bin/目录下面 4. 配置alias export PLANTUML_JAR_PATH~/bin/ export PLANTUML_LIM…

UML图有哪些类型?

UML(Unified Modeling Language )是用来对软件密集系统进行可视化建模的一种语言,是在开发阶段、说明、可视化、构建和书写一个面向对象软件密集系统的制品的开放方法。 UML图分为两种类型:结构图和行为图。结构图是可视化组件如…

UML建模工具——用例图

【面向对象分析UML建模工具全部文章】 UML建模工具(1)——用例图UML建模工具(2)——活动图UML建模工具(3)——类图UML建模工具(4)——顺序图UML建模工具(5)——通信图UML建模工具(6)——状态图 UML建模工具——用例图 系统 System参与者 Actors用例 Use Cases关系 Relations…

移动端UML图应用之UML图简述

系列文章目录 移动端UML图应用之UML图简述 移动端UML图应用之UML行为图——用例图、活动图和状态机图 移动端UML图应用之UML交互图——顺序图和通信图 移动端UML图应用之UML结构图——包图、部署图和组件图 移动端UML图应用之UML结构图——类图 文章目录 系列文章目录前言一、…

IDEA 思维导图 ,类UML 图工具插件 plantUML integration

文章目录 IDEA 思维导图 ,类UML 图工具插件 plantUML integration1、安装2、UML3、使用 plantUML integrationIDEA 思维导图 ,类UML 图工具插件 plantUML integration 1、安装 找到插件并安装 2、UML UML 图包括序列图、用例图、类图、活动图、协作图、组件图、对象图、状态…

Mac下一款好用的UML图绘制工具(StarUML)

Mac下一款好用的UML图绘制工具(StarUML) 推荐一款好用的Mac下绘制UML图的工具,叫做StarUML,它是一款很好用的UML图的工具,但是是收费的,不过可以设置相应代码,免费使用,附上官方下载…

UML建模与软件开发设计(三)——UML常用开发工具

4.4.UML常用开发工具 常用的UML设计工具有微软Office自带的Visio、Rational Rose、PowerDesign以及StarUML。在本文档中,我们使用StarUML来作为类图和时序图的设计工具。 4.4.1.StarUML开发工具的下载与破解 4.4.1.StarUML下载地址 (1)普…

12个优秀的开源UML工具

本文将为您介绍12个优秀的UML工具: 1. StarUML StarUML(简称SU),是一种创建UML类图,是一种生成类图和其他类型的统一建模语言(UML)图表的工具。StarUML是一个开源项目之一发展快、灵活、可扩展性强(zj)。 2. Netbeans UML Plugin 目前支持…