本文主要是介绍简述模型预测控制——Introduction to Model Predictive Control (MPC),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本文简要介绍下模型预测控制的基本原理与简单应用方法。本文针对有一定控制理论背景的读者。
文章目录
- 最优控制问题
- 模型预测控制
- MPC与最优控制
- 典型的MPC问题
- 显式MPC
最优控制问题
给定一个系统模型和控制目标,我们往往可以找到无穷多个控制器,使得该系统的输出收敛到控制目标。难么,我们如何从这无穷多个控制器中找到一个最优的呢?这便是最优控制问题。解决最优控制问题,或者说任何最优化问题,我们首先要明确定义一个优化目标,即一个衡量好坏的量化标准。随后,在该标准下找到一个控制器使得优化目标达到最小/最大。
有关优化问题的具体讨论可参考此文。
最优控制问题的具体细节亦可参考此文。
模型预测控制
模型预测控制(Model Predictive Control, 以下简称 MPC)是以优化方法来求解控制问题,或者说是以优化问题的求解来给出控制信号。如上图所示,MPC包含3个主要成分:模型、预测、控制,均取其字面意思。
MPC与最优控制
一般的最优控制,强调的是整个控制过程(时间域)的最优性。常用的最优控制方法包括变分法、极大值原理 和 动态规划。事实上也是常见的优化方法。最优控制问题存在两个挑战:
- 具有复杂约束的最优化问题难以求解;
- 最优控制要求系统模型精确已知。
针对上述两个挑战,MPC方法退而求其次地仅仅考虑未来有限个控制周期,这样一来最优控制问题便得到了简化,但是也牺牲了一定的最优性。
考虑下输简单离散LTI最优控制问题:
min J = ∑ t = 0 ∞ ℓ ( x ( t ) , u ( t ) ) s.t. u ( t ) ∈ U , x ( t ) ∈ X , t = 0 , 1 , 2 , … x ( t + 1 ) = A x ( t ) + B u ( t ) , x ( 0 ) = z \begin{aligned} \min\quad & J = \sum_{t=0}^{\infty}\ell(x(t),u(t)) \\ \text{s.t.}\quad & u(t) \in \mathcal{U}, x(t)\in\mathcal{X}, t= 0,1,2,\dots \\ &x(t+1) = Ax(t) + Bu(t),\\ &x(0) = z \end{aligned} mins.t.J=t=0∑∞
这篇关于简述模型预测控制——Introduction to Model Predictive Control (MPC)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!