mpc模型预测控制原理详解
mpc模型预测控制原理详解
- 前言
- mpc算法步骤
- mpc算法推导
前言
本文是对mpc模型预测控制学习的记录,主要参照了DR_CAN老师的视频进行学习。视频专栏链接:DR_CAN老师mpc视频专栏。在这篇博客中博主也针对DR_CAN老师的讲解做了详尽的笔记和代码实现。读者可以相结合地进行学习。
mpc算法步骤
MPC算法主要包括以下三步:
- 估计/测量读取当前系统状态
- 基于 uk,uk+1,...uk+Nu_k,u_{k+1},...u_{k+N}uk,uk+1,...uk+N来进行最优化;
- 只取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_kxkTGxk是固定的,在计算最优化的时候可以不用计算吧。
本文主要注重的是过程推导,最后我们得到了系统代价函数的简单形式,关于代码,DR_CAN老师的教程中有详细的讲解和实践,有兴趣的可以自行跳转学习。
mpc模型预测控制原理详解相关推荐
- 如何理解MPC模型预测控制理论
MPC模型预测控制理论分析详解 MPC的基本原理与特点 基本原理 特点 1.基于模型 2.滚动优化 3.前馈-反馈结构 从无约束模型预测控制出发理解推导过程 1.使用状态空间模型 2.模型的预测功能 ...
- Keras深度学习实战(1)——神经网络基础与模型训练过程详解
Keras深度学习实战(1)--神经网络基础与模型训练过程详解 0. 前言 1. 神经网络基础 1.1 简单神经网络的架构 1.2 神经网络的训练 1.3 神经网络的应用 2. 从零开始构建前向传播 ...
- Keras LSTM实现多维输入输出时序预测实践详解
自古以来,我们就希望预知未来,现如今,随着大数据人工智能技术的发展,我们早已经不满足传统的同比.环比等数据分析方法,但是时间序列趋势预测的传统算法又很专业,很难用于日常生产经营中. 深度学习神经网络为 ...
- 神经网络学习小记录58——Keras GhostNet模型的复现详解
神经网络学习小记录58--Keras GhostNet模型的复现详解 学习前言 什么是GhostNet模型 源码下载 GhostNet模型的实现思路 1.Ghost Module 2.Ghost Bo ...
- [深度学习概念]·实例分割模型Mask R-CNN详解
实例分割模型Mask R-CNN详解 基础深度学习的目标检测技术演进解析 本文转载地址 Mask R-CNN是ICCV 2017的best paper,彰显了机器学习计算机视觉领域在2017年的最新成 ...
- ChatGPT模型采样算法详解
ChatGPT模型采样算法详解 ChatGPT所使用的模型--GPT(Generative Pre-trained Transformer)模型有几个参数,理解它们对文本生成任务至关重要.其中最重要的 ...
- 神经网络学习小记录47——ShuffleNetV2模型的复现详解
神经网络学习小记录47--ShuffleNetV2模型的复现详解 学习前言 什么是ShuffleNetV2 ShuffleNetV2 1.所用模块 2.网络整体结构 网络实现代码 学习前言 据说Shu ...
- LDA主题模型(算法详解)
LDA主题模型(算法详解) http://blog.csdn.net/weixin_41090915/article/details/79058768?%3E 一.LDA主题模型简介 LDA(Late ...
- (03)_k8s之flannel三种模型安装部署详解
flannel三种模型安装部署详解 yht_1990关注[2020-10-04 12:13:47](javascript:
最新文章
- WebWork深度探索之号外
- python 在内网windows环境下pip三方包
- Javascript 方法大全
- 什么时候加上android.intent.category.DEFAULT和LAUNCHER
- linux内核趣味,有关Linux 50个趣味名人名言
- ruby 查看csv文件_如何使用CSV和Ruby构建终端游戏
- python输入多组数据_Python3算法类多组数据输入输出格式
- android浮动按钮_Android浮动操作按钮示例教程
- cv::cornerSubPix()亚像素角点检测
- windows 系统新建 vue 项目的坑
- 所谓国产机:别的LINUX,要么无法安装,要么安装了跑不起来
- 学习用于视觉跟踪的深度紧凑图像表示Learning a Deep Compact Image Representation for Visual Tracking
- php解析乱码字符串,php中文字符串截取方法防止乱码解析
- 虚拟化之升级vUM组件安装
- ZXing条形码识别框架识别的条型码的种类
- 畅购商城项目v1-环境搭建
- 无透镜计算成像文章简介
- MATLAB神经网络工具箱函数各种图的解释
- No bootable device
- AppleScript开机自动登录ChinaUnicom