本文简要介绍下模型预测控制的基本原理与简单应用方法。本文针对有一定控制理论背景的读者。
最优控制问题
给定一个系统模型和控制目标,我们往往可以找到无穷多个控制器,使得该系统的输出收敛到控制目标。难么,我们如何从这无穷多个控制器中找到一个最优的呢?这便是最优控制问题。解决最优控制问题,或者说任何最优化问题,我们首先要明确定义一个优化目标,即一个衡量好坏的量化标准。随后,在该标准下找到一个控制器使得优化目标达到最小/最大。
有关优化问题的具体讨论可参考此文。
最优控制问题的具体细节亦可参考此文。
模型预测控制
模型预测控制(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∑∞ℓ(x(t),u(t