mpc模型预测控制原理详解

  • 前言
  • mpc算法步骤
  • mpc算法推导

前言

本文是对mpc模型预测控制学习的记录,主要参照了DR_CAN老师的视频进行学习。视频专栏链接:DR_CAN老师mpc视频专栏。在这篇博客中博主也针对DR_CAN老师的讲解做了详尽的笔记和代码实现。读者可以相结合地进行学习。

mpc算法步骤

MPC算法主要包括以下三步:

  1. 估计/测量读取当前系统状态
  2. 基于 uk,uk+1,...uk+Nu_k,u_{k+1},...u_{k+N}uk​,uk+1​,...uk+N​来进行最优化;
  3. 只取uku_kuk​。(Receding Horizon Control)滚动优化控制
    为什么只取uku_kuk​那?这是因为如果系统一次预测太多的控制输入,当系统发生变化或者受到外部扰动的时候,接下来的k+1、k+2等时刻预测的未必准。只取uku_kuk​的滚动优化控制,可以避免这个问题。

mpc算法推导

考虑一个离散系统,其状态空间表达式为:

系统输出参考值R=0R=0R=0,误差为E=y−R=x−0=xE=y-R=x-0=xE=y−R=x−0=x。
选取这样简单的系统有利于在推导时降低难度。
在k时刻时,我们令:

其中u(k+1∣k)u(k+1|k)u(k+1∣k)表示在k时刻预测的k+1时刻的的系统输入u,u(k+i∣k)u(k+i|k)u(k+i∣k)表示的含义类似于u(k+1∣k)u(k+1|k)u(k+1∣k),N表示预测区间。
同样地,令:

此时的代价函数(cost function)为

其中Q 、R、F 为权重系数矩阵,假设其中 Q、R 均为对称矩阵(简单一些)。代价函数包含系统的误差和控制输入,可以通过代价函数的大小来衡量系统的优劣。
根据系统的状态空间表达式,可以推导出:

将上式写成矩阵形式:


将(1.4)式展开,得:

以看到代价函数仍然需要 x(k+1∣k),x(k+2∣k)x(k+1|k),x(k+2|k)x(k+1∣k),x(k+2∣k)等下一步未知的状态。而我们的目标是只用控制输入来表示代价函数。将式(1.7)代入(1.8)中,得

其中

,可以看到式(1.9)经化简之后,得到最终的形式只包含初始状态 以及控制输入 。之后便是形如代价函数J的二次型函数的最优化问题。
Ps:既然初始状态那一项xkTGxkx_k^TGx_kxkT​Gxk​是固定的,在计算最优化的时候可以不用计算吧。

本文主要注重的是过程推导,最后我们得到了系统代价函数的简单形式,关于代码,DR_CAN老师的教程中有详细的讲解和实践,有兴趣的可以自行跳转学习。

mpc模型预测控制原理详解相关推荐

  1. 如何理解MPC模型预测控制理论

    MPC模型预测控制理论分析详解 MPC的基本原理与特点 基本原理 特点 1.基于模型 2.滚动优化 3.前馈-反馈结构 从无约束模型预测控制出发理解推导过程 1.使用状态空间模型 2.模型的预测功能 ...

  2. Keras深度学习实战(1)——神经网络基础与模型训练过程详解

    Keras深度学习实战(1)--神经网络基础与模型训练过程详解 0. 前言 1. 神经网络基础 1.1 简单神经网络的架构 1.2 神经网络的训练 1.3 神经网络的应用 2. 从零开始构建前向传播 ...

  3. Keras LSTM实现多维输入输出时序预测实践详解

    自古以来,我们就希望预知未来,现如今,随着大数据人工智能技术的发展,我们早已经不满足传统的同比.环比等数据分析方法,但是时间序列趋势预测的传统算法又很专业,很难用于日常生产经营中. 深度学习神经网络为 ...

  4. 神经网络学习小记录58——Keras GhostNet模型的复现详解

    神经网络学习小记录58--Keras GhostNet模型的复现详解 学习前言 什么是GhostNet模型 源码下载 GhostNet模型的实现思路 1.Ghost Module 2.Ghost Bo ...

  5. [深度学习概念]·实例分割模型Mask R-CNN详解

    实例分割模型Mask R-CNN详解 基础深度学习的目标检测技术演进解析 本文转载地址 Mask R-CNN是ICCV 2017的best paper,彰显了机器学习计算机视觉领域在2017年的最新成 ...

  6. ChatGPT模型采样算法详解

    ChatGPT模型采样算法详解 ChatGPT所使用的模型--GPT(Generative Pre-trained Transformer)模型有几个参数,理解它们对文本生成任务至关重要.其中最重要的 ...

  7. 神经网络学习小记录47——ShuffleNetV2模型的复现详解

    神经网络学习小记录47--ShuffleNetV2模型的复现详解 学习前言 什么是ShuffleNetV2 ShuffleNetV2 1.所用模块 2.网络整体结构 网络实现代码 学习前言 据说Shu ...

  8. LDA主题模型(算法详解)

    LDA主题模型(算法详解) http://blog.csdn.net/weixin_41090915/article/details/79058768?%3E 一.LDA主题模型简介 LDA(Late ...

  9. (03)_k8s之flannel三种模型安装部署详解

    flannel三种模型安装部署详解 yht_1990关注[2020-10-04 12:13:47](javascript:

最新文章

  1. WebWork深度探索之号外
  2. python 在内网windows环境下pip三方包
  3. Javascript 方法大全
  4. 什么时候加上android.intent.category.DEFAULT和LAUNCHER
  5. linux内核趣味,有关Linux 50个趣味名人名言
  6. ruby 查看csv文件_如何使用CSV和Ruby构建终端游戏
  7. python输入多组数据_Python3算法类多组数据输入输出格式
  8. android浮动按钮_Android浮动操作按钮示例教程
  9. cv::cornerSubPix()亚像素角点检测
  10. windows 系统新建 vue 项目的坑
  11. 所谓国产机:别的LINUX,要么无法安装,要么安装了跑不起来
  12. 学习用于视觉跟踪的深度紧凑图像表示Learning a Deep Compact Image Representation for Visual Tracking
  13. php解析乱码字符串,php中文字符串截取方法防止乱码解析
  14. 虚拟化之升级vUM组件安装
  15. ZXing条形码识别框架识别的条型码的种类
  16. 畅购商城项目v1-环境搭建
  17. 无透镜计算成像文章简介
  18. MATLAB神经网络工具箱函数各种图的解释
  19. No bootable device
  20. AppleScript开机自动登录ChinaUnicom

热门文章

  1. 苹果推送 macOS 13 Ventura 的第一个公开测试版
  2. 根据角度求椭圆上坐标
  3. 定位:relative相对定位、absolute绝对定位、fixed固定定位
  4. ClickHouse拆解
  5. jd-cloud.cn京东为什么输掉“京东云”域名仲裁案?
  6. 阿里图标库使用(Unicode)展示图标
  7. adobe打开部分pdf时卡死解决方案(未响应)
  8. stm8s103 PWM
  9. 20189216 2018-2019-2 《密码与安全新技术专题》第六次作业
  10. 【生物力学】《人体骨肌系统生物力学》- 王成焘老师 - 第1章 - 总论