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.前馈-反馈的控制结构
这个在前面给出的两点说明中的第一点就已经给出了。

模型预测控制(MPC)简介相关推荐

  1. Apollo代码学习(六)—模型预测控制(MPC)_follow轻尘的博客-CSDN博客_mpc代码

    Apollo代码学习(六)-模型预测控制(MPC)_follow轻尘的博客-CSDN博客_mpc代码

  2. 模型预测控制_模型预测控制(MPC)算法之一MAC算法

    引言 随着自动驾驶技术以及机器人控制技术的不断发展及逐渐火热,模型预测控制(MPC)算法作为一种先进的控制算法,其应用范围与领域得到了进一步拓展与延伸.目前提出的模型预测控制算法主要有基于非参数模型的 ...

  3. 基于模型预测控制(MPC)的悬架系统仿真分析

    目录 前言 1.悬架系统 2.基于MPC的悬架系统仿真分析 2.1 simulink模型 2.2仿真结果 2.2.1 随机C级路面 2.2.2 正弦路面 2.3 结论 3 总结 前言 模型预测控制是无 ...

  4. 基于扩展卡尔曼滤波EKF和模型预测控制MPC,自动泊车场景建模开发

    基于扩展卡尔曼滤波EKF和模型预测控制MPC,自动泊车场景建模开发,文复现. MATLAB 基于扩展卡尔曼滤波EKF和模型预测控制MPC,自动泊车场景建模开发,文复现. MATLAB(工程项目线上支持 ...

  5. 无人车系统(十一):轨迹跟踪模型预测控制(MPC)原理与python实现【40行代码】

    前面介绍的PID,pure pursuit方法,Stanley方法都只是利用当前的系统误差来设计控制器.人们对这些控制器的设计过程中都利用了构建模型对无人车未来状态的估计(或者说利用模型估计未来的运动 ...

  6. 【控制control】机器人运动控制器----基于模型预测控制MPC方法

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录 前言 一.模型预测控制(MPC)的介绍及构成 1.介绍 2.构成 二.模型 ...

  7. 【附C++源代码】模型预测控制(MPC)公式推导以及算法实现,Model Predictive control介绍

    2022年的第一篇博客,首先祝大家新年快乐! 提示:本篇博客主要集中在对MPC的理解以及应用.这篇博客可以作为你对MPC控制器深入研究的一个开始,起到抛砖引玉,带你快速了解其原理的作用. 这篇博客将介 ...

  8. 差分轮移动机器人模型预测控制MPC

    模型预测控制(MPC)与PID.纯追踪法相比有更好的路径跟踪效果,在自动驾驶领域有广泛应用.本文将以运动学为基础详细推导差分轮移动机器人模型预测控制(MPC) 运动学模型 根据移动机器人的运动学结构可 ...

  9. 基于模型预测控制MPC的光伏并网系统设计|太阳能发电|模型预测控制

    本课题提出一种基于最大功率点跟踪与有限集模型预测控制结合的光伏并网逆变策略,首先,针对模型预测控制算法在电网模型预测与控制时域中实时性不足等问题,引用快速求解MATMPC工具箱,降低MPC算法的单轮运 ...

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

            本节,我们将讨论模型预测控制器的工作原理.        在控制问题中,控制器的目标是计算被控对象的输入,使得被控对象输出遵循期望的参考信号.模型预测控制器计算此输入的策略是预测未来. ...

最新文章

  1. SAP Retail for SAP (non-Retail) Experts
  2. 微信AI体验中心发布上线了!
  3. cad自动标注界址点_CAD制图中的5个小技巧
  4. 云舒网络译:Rancher1.0正式版公布
  5. jquery页面跳转带cookie_JS 如何创建、读取和删除cookie
  6. Leetcode题库 798.得分最高的最小轮调(差分数组 C实现)
  7. HALCON示例程序obj_diff.hdev算子obj_diff 的使用
  8. 计算机中整数加法满足结合律吗
  9. 西电计算机学院导师苗启广,Xidian Media Lab
  10. pecamaker+corosync高可用集群的搭建
  11. php计算日期函数,php日期处理函数(计算时间差,转换时间戳日期)
  12. 数据库原理及应用实验四 简单查询
  13. 开源生态研究与实践| ChinaOSC
  14. Python faker函数
  15. 从零开始搭建Elasticsearch集群遇到的问题
  16. 【26】地图可视化:基于 Echarts + Flask 的动态实时地图组件 - 点气泡流向组合区域三级下钻地图
  17. vue项目引入icon图标
  18. Vih和ViL和Vhys
  19. Windows平台调试工具:DebugView
  20. 关于高性能计算机的一些介绍

热门文章

  1. 学习日记——W25Q64 FLASH—QSPI
  2. 2022-2027年中国虾养殖行业市场调研及未来发展趋势预测报告
  3. 江西省萍乡市谷歌高清卫星地图下载
  4. 智能红绿灯自动控制系统分析
  5. 红黄绿灯控制系统c语言,微机课设-红、黄、绿灯的控制系统设计.doc
  6. 模糊控制洗衣机MATLAB模型,洗衣机的模糊控制MATLAB仿真
  7. 计算机更换桌面图片,桌面图片高清怎么换?桌面图片怎么美化?
  8. NLPIR python测试
  9. 顺序表(C语言实现)
  10. Spring MVC实现服务端数据验证 服务端数据校验 Spring Boot 服务端数据校验