模型预测控制(MPC)简介

article/2025/11/9 13:35:45

1.引言

在当今过程控制中,PID当然是用的最多的控制方法,但MPC也超过了10%的占有率。MPC是一个总称,有着各种各样的算法。其动态矩阵控制(DMC)是代表作。DMC采用的是系统的阶跃响应曲线,其突出的特点是解决了约束控制问题。那么是DMC是怎么解决约束的呢?在这里只给出宏观的解释,而不做详细的说明。DMC把线性规划和控制问题结合起来,用线性规划解决输出约束的问题,同时解决了静态最优的问题,一石二鸟,在工业界取得了极大的成功。

2.作用机理

MPC作用机理描述为:在每一个采用时刻,根据获得的当前测量信息,在线求解一个有限时间开环优化问题,并将得到的控制序列的第一个元素作用于被控对象。在下一个采样时刻,重复上述过程:用新的测量值作为此时预测系统未来动态的初始条件,刷新优化问题并重新求解 。
即MPC算法包括三个步骤:
(1)预测系统未来动态;
(2)(数值)求解开环优化问题;
(3)将优化解的第一个元素(或者说第一部分)作用于系统
这三步是在每个采样时刻重复进行的,且无论采用什么样的模型,每个采样时刻得到的测量值都作为当前时刻预测系统未来动态的初始条件
在线求解开环优化问题获得开环优化序列是MPC和传统控制方法的主要区别,因为后者通常是离线求解一个反馈控制律,并将得到的反馈控制律一直作用于系统。

在这里给出两点说明:
1.MPC是一个反馈控制策略,但是之前不是说将得到的控制序列中的第一个元素作用于被控对象,求解开环问题。那么哪来的反馈呢?
实际上在下一个采样周期,下一时刻的测量值又被使用上了,用下一时刻的测量值求解下一时刻的控制值。故这是一个反馈控制策略
2.传统的控制方法为什么被称为离线控制?
举例说明:
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

上面几张图片是设计变阻器应有的级数来达到控制并励直流电动机启动的例子,那么如何看的出来是离线控制呢?其实很简单,在起始的时候就已经把每级电阻值就给定出来了,但是实际上是否能如理论计算的这样呢?比如我电压突然受到了扰动了怎么办?那么这个计算的每级电阻值肯定不对了啦,但是传统的控制方法对此确是无能为力的,因为每级启动电阻在最早的时候已经计算好了的。

3.MPC的基本特点

不管是何种算法,他们的基本特点都是:基于模型的预测、滚动优化和前馈-反馈的控制结构。

1.基于模型的预测
在MPC算法中,需要一个描述对象动态行为的模型,这个模型的作用是预测系统未来的动态。即能够根据系统k时刻的状态和k时刻的控制输入,预测到k+1时刻的输出。在这里k时刻的输入正是用来控制系统k+1时间的输出,使其最大限度的接近k+1时刻的期望值。故我们强调的是该模型的预测作用,而不是模型的形式。

在这里我重点讲解一下状态空间模型。那么什么是状态?输出是不是也是状态的一种?对的,输出也是一种状态,只不过我们赋予了这个状态特殊的意义。举个例子来说,舞龙,假设是只能通过龙尾的人A指挥前面一个人B动作,然后B指挥他前面的一个人C动作….依次如此,达到控制龙头的人F叼住绣球的动作。如果只关注龙头的人(输出)和龙尾的人(输入),而忽略龙身子的动态,那就是所谓的输入—输出系统。经典控制理论就是建立在输入—输出系统的基础上面的。 但是我如果不管要管龙尾和龙头的人,我连龙身子上面的人也要要求在固定的位置,那么这就是状态空间的概念,即我对系统中的每一个状态都要控制到。龙头位置的人也是一个状态,故输出本身就是一个状态,或者说是状态的一个组合。

2.滚动优化
因为外部干扰和模型失配的影响,系统的预测输出和实际输出存在着偏差,如果测量值能测到这个偏差,那么在下一时刻能根据这个测量到偏差的测量值在线求解下一时刻的控制输入,即优化掉了这个偏差值。若将求解的控制输出的全部序列作用于系统,那么k+1时刻的测量值不能影响控制动作,也就是说测量值所包括的外部干扰或模型误差信息得不到有效利用。故我们将每个采样时刻的优化解的第一个分量作用于系统,在下一个采用时刻,根据新得到的测量值为初始条件重新预测系统的未来输出并求解优化解,继续讲这个时刻的优化解的第一个分量作用于系统,这样重复至无穷。

故预测控制不是采用一个不变的全局优化目标,而是采用时间向前滚动式的有限时域优化策略。这也就是意味着优化过程不是一次离线进行,而是反复在线进行的。

3.前馈-反馈的控制结构
这个在前面给出的两点说明中的第一点就已经给出了。


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

相关文章

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

目录 MPC算法的基本原理 详细解析 预测模型中需要注意的点 滚动优化需要注意的点 构造目标函数约束部分 约束部分 举例说明 复盘总结 MPC算法的基本原理 MPC 的基本原理可以分为三个步骤:预测模型、滚动优化、反馈校正 (1)预测模型…

模型预测控制(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)普…