引言

随着自动驾驶技术以及机器人控制技术的不断发展及逐渐火热,模型预测控制(MPC)算法作为一种先进的控制算法,其应用范围与领域得到了进一步拓展与延伸。目前提出的模型预测控制算法主要有基于非参数模型的模型算法控制(MAC)和动态矩阵控制(DMC),以及基于参数模型的广义预测控制(GPC)和广义预测几点配置控制(GPP)。

虽然模型预测控制算法的种类有多种,但始终离不开这三大要素[4]:

  1. 预测模型——对未来一段时间内的输出进行预测;
  2. 滚动优化——滚动进行有限时域在线优化(最优控制);
  3. 反馈校正——通过预测误差反馈,修正预测模型,提高预测精度。

本篇以MAC算法作为开篇,对MPC算法的三大要素的流程进行分析,从而加深对模型预测控制算法的了解。

MAC算法

MAC作为一种非参数模型,以系统脉冲响应作为内部预测模型,通过过去与当前的输入输出状态,根据系统的预测模型来预测系统未来的输出状态。其开环预测和闭环预测的框图如下所示:

模型算法控制框图

通过上述框图可知,MAC算法主要由图中的四个模块所组成,各模块所代表的意义如下所示。当期望输入为

时,获取
时刻下的控制输入
,首先得经过模块(2)求取此时的参考输出
,并通过模块(1)求取模型输出
,通过闭环反馈校正(4)求取预测输出
,最终通过模块(3)算出此时的最优控制率
。注明:不讨论开环预测的情况。
  1. 预测模型;
  2. 参考轨迹;
  3. 滚动优化;
  4. 反馈校正;

一、预测模型

——————

的求取

对于线性系统,若已知其单位脉冲响应的采样值

,
,...,
,则利用离散卷积公式,可知系统的预测模型描述可近似地用一个有限项卷积表示:

其中,

表示系统的模型预测输出;
表示系统的控制输入;
表示系统的模型向量,可通过

系统辨识的方法得到[1]。

脉冲响应模型

二、参考轨迹

——————

的求取

在MAC中,控制系统的期望输出是由现时实际输出

出发且向设定值
光滑过度的一条参考轨迹规定的。在
时刻的参考轨迹可由未来时刻的值
来描述。其表征形式如下:

其中,

为参考输出;
为柔化系数,且

三、滚动优化

——————

的求取

若有《最优控制》的基础,不难理解,模型预测控制(MPC)的滚动优化问题实际上是以一定的优化准则来获取最优的控制输入

。不失一般性,采用如下的优化准则:

其中,

为优化时域;
为控制时域,一般有
为输出跟踪加权系数;
为输入加权系数;

为预测输出

不难发现,若要根据上述的优化准则获取最优控制输入

,还必须知道其预测输出
。因此,针对
的求取,引入了模型预测控制(MPC)的第三个要素——

反馈校正

四、反馈校正

——————

的求取

闭环预测为例,

时刻系统的闭环预测输出可记为

其中,

;
为反馈系数矩阵 ;

五、最优控制率

由前面的分析可知,根据预测模型

、参考轨迹
、闭环预测
即可求解出性能指标
下的无约束MAC最优化控制率:

其中,

最优即时控制量为:

其中,

小结

通过分析MAC算法的过程可以大致了解模型预测控制(MPC)的实现过程,但在具体设计时,还有一些设计细节需要注意,如控制时域、预测时域长度的选择,权重矩阵系数的调节等都是需要注意的。

参考文献

[1] 模型预测控制及Matlab实现.

[2] 模型预测控制介绍.

[3] 模型预测控制之参数选择.

[4]预测控制之MAC控制.

[5]广义预测控制GPC.

[6] 预测控制-席裕庚.

模型预测控制_模型预测控制(MPC)算法之一MAC算法相关推荐

  1. python模型预测_《Python机器学习——预测分析核心算法》——1.5 构建预测模型的流程...

    本节书摘来异步社区<Python机器学习--预测分析核心算法>一书中的第1章,第1.5节,作者:[美]Michael Bowles(鲍尔斯),更多章节内容可以访问云栖社区"异步社 ...

  2. python程序题求roc-auc是一种常用的模型评价指标_模型评价方法

    第五章 模型评价方法 5.1 模型的评价方法介绍 5.1.1~5 accuracy,precision,recall,F1-score,ROC曲线 分别画图举例,要说出应用场景,例如什么情况用什么评价 ...

  3. python模型评估_模型评估知识点总结及Python实现

    目录 1.概述 2.分类评估--混淆矩阵 3.分类评估--ROC.AUC.提升图与KS图 4.回归评估 5.非监督评估 正文 1.概述 数据集输入到一个模型中,然后再进行输出,我们可以得到模型的输出结 ...

  4. tensorflow 模型小型化_模型小型化

    实习终于结束了,现把实习期间做的基于人体姿态估计的模型小型化的工作做个总结. 现在深度学习模型开始走向应用,因此我们需要把深度学习网络和模型部署到一些硬件上,而现有一些模型的参数量由于过大,会导致在一 ...

  5. MPC(模型预测控制)_附matlab例程

    写在前面:   本文为科研理论笔记的第二篇,其余笔记目录传送门: 理论笔记专栏目录   介绍结束下面开始进入正题: 1 基本概念 1.1 最优控制 ​   最优控制(optimal control): ...

  6. python预测控制_无人驾驶——4.控制之MPC模型预测控制

    源自:<无人驾驶无人驾驶车辆模型预测控制>--龚建伟 参考:https://wenku.baidu.com/view/8e4633d519e8b8f67c1cb9fa.html 0.车辆模 ...

  7. python模型预测控制_【模型工具】耦合python和 SWMM的城市排水系统模型预测算法...

    美国环境署EPA开发的SWMM模型具有开源性,这使其成为最为广泛使用的城市排水系统模型.但是SWMM是基于C语言开发的,二次开发困难较大.因此本文作者利用开源的PYSWMM程序包,利用python实现 ...

  8. 无人驾驶运动学模型——线性时变模型预测控制的思路推演过程_百叶书的博客-CSDN博客_线性时变模型预测控制 转

    无人驾驶运动学模型--线性时变模型预测控制的思路推演过程_百叶书的博客-CSDN博客_线性时变模型预测控制

  9. 无人驾驶运动学模型——线性时变模型预测控制的思路推演过程

    无人驾驶运动学模型--线性时变模型预测控制的思路推演过程 在做MPC仿真时,有些代码看不太懂,就去重翻了龚建伟的<无人驾驶车辆模型预测控制>这本书,怎么说呢,这么说吧,应该说它是目前为止讲 ...

最新文章

  1. Linux批量查找与替换
  2. centos安装nginx小记
  3. 【ruoyi若依】layer 重置大小/resize
  4. 数据类型转换_注意事项
  5. 关于iframe的contentDocument和contentWindow
  6. 访问 Neutron 外部网络 - 每天5分钟玩转 OpenStack(143)
  7. python制作中文词云_Python如何生成词云(详解)
  8. python人工智能github的一些跑程序技巧(持续更新~)
  9. java非侵入式接口实现,C++编写非侵入式接口
  10. java怎么这么难学6_Java难吗?
  11. 本特利177230-00-01-CN
  12. 离散数学及其应用(第六版) 习题
  13. 数据结构零基础入门(初学者也能看懂):队列使用场景之无锁技术
  14. java vcf文件 昵称怎么写,Vcf文件的突变ID号注释
  15. 利用selenium模拟打开百度并输入‘淘宝‘,报错‘dict‘ object has no attribute ‘send_keys‘
  16. win10开启移动热点,手机无法获取ip地址
  17. 推荐 :数据科学研究的现状与趋势
  18. QuickJS 数字字面量解析
  19. 如何使用HTTPS加密保护网站?
  20. 【服务器数据恢复】5盘RAID5中4块盘重建RAID5后原RAID5的数据恢复案例

热门文章

  1. 输入一个十进制数,转化为二进制
  2. EasyMock 简介
  3. STM32F0使用LL库实现PWM输出
  4. Longest Palindromic Substring Part II
  5. [配置中心] --- consul
  6. [数据库]---mysql数据库 使用binlog+canal或binlake进行数据库的复制
  7. CoreAnimation编程指南(四)图层树结构
  8. java五子棋实训训心得,java五子棋实习报告
  9. leetcode 贪心_贪心算法:给我最好的,现在就要!
  10. 380免费云存储_三款功能强大的云盘软件,完全替代百度云与腾讯云