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

article/2025/11/9 14:00:43

        本节,我们将讨论模型预测控制器的工作原理。

       在控制问题中,控制器的目标是计算被控对象的输入,使得被控对象输出遵循期望的参考信号。模型预测控制器计算此输入的策略是预测未来。

 

        这听起来像算命,但让我们看看它究竟是什么。MPC使用被控对象模型来预测未来的被控对象输出行为,它还使用优化器,确保预测的未来被控对象输出跟踪所需的参考信号。

 

        以下示例介绍了这些步骤。比如说这是一辆由MPC控制器控制的自动驾驶汽车,让它保持在这条车道的中间位置。MPC可以处理MIMO系统,但为了简单起见,我们将假设加速度是固定的,纵向速度是恒定的,并且仅调整方向盘角度以控制汽车的横向位置。

 

        我们将首先关注控制器如何使用汽车模型,稍后我们将讨论优化器。汽车的横向位置如下图右上方所示,垂直轴反映当前时间。它之前的代表过去,右边的值展示了未来。车道的中间是参考,我们用绿线在图上显示。当前,如果方向盘像这样的转动过程,MPC控制器使用汽车模型在接下来p时间步骤仿真汽车的路径, 就像在下图看到的那样。P是对MPC展望未来前景的衡量标准,被称为预测范围。它通常由未来的时间长度或未来时间步数表示。MPC控制器需要找到最接近参考输入的最佳预测路径。因此,它模拟了多个未来场景,但是,它不是以随机顺序进行这些仿真。相反,它以系统的方式做仿真,这时就是优化器介入的地方了。

 

        通过解决优化问题,MPC控制器试图最小化汽车的参考轨迹和预测路径之间的误差。它还试图从一个时间步到下一个时间步时,方向盘角度的变化最小。因为如果转向方向盘急剧转动,可能乘客会对乘坐感到不舒服。该优化问题的目标函数J包括这两项并且表示为预测误差和方向盘角度增量的加权平方和。在最小化目标函数的同时,MPC还确保方向盘角度和汽车位置保持在规定的范围内,这些被称为约束。例如,方向盘转动的程度有限制。

 

        另一个限制因素是汽车的位置。为了防止发生事故,汽车应该留在车道内而不是离开公路。在当前时间步,MPC控制器正在解决预测范围内的优化问题,同时满足约束。具有最小J的预测路径给出了最优解,由此确定最佳方向盘角度序列,使汽车尽可能接近参考信号。

 

        在当前时间步,MPC仅将该最佳序列的第一步应用于汽车并忽略其余部分。基于采用的方向盘角度,汽车行驶一段距离。在下一个时间步,控制器获得新的汽车横向位置的测量值。它可能与MPC控制器之前预测的略有不同,这可能是由于一些无法测量的干扰作用于汽车。例如,它可能是风或路面湿滑。

 

        现在预测范围向前移动一个时间步,控制器重复相同的计算周期,以计算下一个时间步的最佳方向盘角度。由于预测范围的前向移动性质,MPC也被称为滚动时域控制。

        在这里,我们使用汽车示例讨论了MPC的工作原理,但在教科书中,您将找到用于MPC的通用术语。例如,由控制器计算并发送到被控对象的信号称为操纵变量,而被控对象输出则称为输出变量。您可能还会在反馈图中注意到状态估算器。在汽车的例子中,我们假设汽车的横向位置可以被测量。但是如果你不能直接测量系统的状态,可以通过状态估计器估计它们并反馈给MPC控制器。要了解有关状态估算器的更多信息,请查看有关卡尔曼滤波器的系列文章。

 

        本节,我们使用汽车示例演示了MPC如何使用汽车模型和优化器来调整方向盘角度使汽车遵循期望的参考信号。在下一篇文章中,我们将讨论MPC设计参数。比如:控制器采样时间,预测和控制范围,约束和权重等参数。

视频地址如下

【Model Predictive Control】了解模型预测控制,第二部分:什么是模型预测控制 - MATLAB&Simulink_哔哩哔哩_bilibili


http://chatgpt.dhexx.cn/article/1qY7vRud.shtml

相关文章

模型预测控制(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 目前支持…

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双向绑定 大家其实对…