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

article/2025/11/9 13:58:43
  1. 发展历史 
    20世纪70年代后期,一类新型的计算机控制算法出现在美法等国的工业过程领域,如动态矩阵控制(DMC,Dynamic Matrix Control)、模型算法控制(MAC,Model Algorithm Control)。1987年,首次有学者阐述了该系列算法的动因、机理及其在控制工业中的控制效果。自此,预测控制(Predictive Control)开始出现在控制领域中。 
    现在我们所说的预测控制,包括工业控制、自适应控制及内模控制等多方面研究成果,统称为模型预测控制(MPC,Model Predictive Control),或基于模型的控制(Model-based Control),其应用范围也早已超出了过程控制领域,转而应用到机器人、飞行器、网络系统等更高新的领域内。[1]

  2. 特点 
    模型预测控制是一种基于模型的闭环优化控制策略。早在1978年,J.Richalet等就提出了预测控制算法的三要素:内部(预测)模型、参考轨迹、控制算法。现在一般则更清楚地表述为内部(预测)模型、滚动优化、反馈控制。 
    大量的预测控制权威性文献都无一例外地指出, 预测控制最大的吸引力在于它具有显式处理约束的能力, 这种能力来自其基于模型对系统未来动态行为的预测, 通过把约束加到未来的输入、输出或状态变量上, 可以把约束显式表示在一个在线求解的二次规划或非线性规划问题中. [2] 
    模型预测控制具有控制效果好、鲁棒性强等优点,可有效地克服过程的不确定性、非线性和并联性,并能方便的处理过程被控变量和操纵变量中的各种约束。

  3. 组成 
    经典MPC的控制流程如图1所示: 
    图1 经典模型预测控制流程 
    图中,ysp表示系统的设定输出,yr表示参考轨迹,u为输入,y为实际输出值,ym为模型输出,yc为预测输出。

转自:https://blog.csdn.net/DinnerHowe/article/details/79848680


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

相关文章

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 目前支持…

vue双向绑定的原理

之前我有个学生在面试的时候,面试官问vue的双向绑定如何实现?学生说用v-module实现。又问那么双向绑定的原理是什么?就回答不上来了,这个offer工资在18k左右,其他问题都回答上来了,如果这个问题能回答上来基…

vue 单向绑定 双向绑定

参考:【Vue】vue 单向绑定& 双向绑定 - vickylinj - 博客园 在react中是单向数据绑定,而Vue.js 最显著的特点就是响应式和数据驱动,也就是将Model和View进行单向绑定或者双向绑定。 单向绑定:把Model绑定到View,…

vue 双向绑定 getter 和 setter

它的每个属性都有两个相对应的get和set方法,我觉的这是多此一举的,于是去网上查了查Vue双向绑定的实现原理,才发现它和Angular.js双向绑定的实现原理完全不同,Angular是用的数据脏检测,当Model发生变化,会检…

vue双向绑定不生效、对象中的属性值发生改变页面不会重新渲染问题解决办法

文章目录 vue双向绑定原理方法一 增加一个基本类型的变量方法二 使用整体对象替换方法三 使用vue文档提供的方法 vue双向绑定原理 vue深入式响应原理,当我们在data中声明变量对象,Vue 将遍历此对象所有的 property(如下面的list)…

前端技巧|vue双向绑定原理,助你面试成功

在面试一些大厂的时候,面试官可能会问到你vue双向数据绑定的原理是什么?有些小伙伴不知道是什么东西,这样你在面试官的眼里就大打折扣了。今天小千就来给大家介绍一下vue的双向绑定原理,千万不要错过啦。 vue双向绑定 大家其实对…

vue双向绑定数组

众所周知,vue中v-model 会忽略所有表单元素的 value、checked、selected attribute 的初始值而总是将 Vue 实例的数据作为数据来源。 大部分情况,v-model是绑定一个对象的属性,但是如果数据库中的数据是一个数组,这种情况下,如果把数组转换成对象再绑定,然后再转换回去提交…