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

模型预测控制(Model Predictive Control, 以下简称 MPC)是以优化方法来求解控制问题,或者说是以优化问题的求解来给出控制信号。如上图所示,MPC包含3个主要成分:模型、预测、控制,均取其字面意思。
MPC与最优控制
一般的最优控制,强调的是整个控制过程(时间域)的最优性。常用的最优控制方法包括 变分法 、 极大值原理 和 动态规划 。事实上也是常见的优化方法。最优控制问题存在两个挑战:
- 具有复杂约束的最优化问题难以求解;
- 最优控制要求系统模型精确已知。
针对上述两个挑战,MPC方法退而求其次地仅仅考虑未来有限个控制周期,这样一来最优控制问题便得到了简化,但是也牺牲了一定的最优性。
考虑下输简单离散LTI最优控制问题:
\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} 其中控制信号是 u 。那么,最优的控制信号如何给出?假设我们一步步选取最优,即忽略掉未来的控制信号,仅考虑当前步骤,那么 u(t) = \argmin_{w}\{\ell(x(t),w) | w\in\mathcal{U}, Ax(t) + Bw \in\mathcal{X} \},一般情况下,该控制率的表现会很差,即随着时间趋于无穷,目标函数也趋于无穷。
在此问题中,由于系统模型已知,我们可以考虑动态规划(Dynamic Programming)方法求解最优控制率。首先定义价值函数 (Value function) V(z) 为该控制问题的最优输出值,其为状态初始值 z 的函数。这个定义与强化学习问题中状态价值函数的定义类似。那么我们可知,当前时刻最优的控制信号为
u^{*}(t) = \argmin_{w}(\ell(x(t),w) + V(Ax(t) + Bw)|w\in\mathcal{U}, Ax(t) + Bw \in\mathcal{X}) 这是一个Bellman方程。
典型的MPC问题
利用MPC方法,我们在每个采样时刻 t ,解决如下问题:
\begin{aligned} \min\quad & J = \sum_{\tau =t}^{t+T}\ell(x(\tau),u(\tau)) \\ \text{s.t.}\quad & u(\tau) \in \mathcal{U}, x(\tau)\in\mathcal{X}, \tau= t,\dots, t+T \\ &x(\tau+1) = Ax(\tau) + Bu(\tau),\\ &x(t+T) = 0 \end{aligned} 即我们求解接下来 T 步的最优控制问题。求解该问题得到的控制律可表示为状态的反馈控制器 u(t) = \phi_{mpc}(x(t))。上述形式为一般形式,研究中也有各种变体,如改变约束为惩罚函数、第 T 步价值不为零、T 可变的情况等。
显式MPC
下面讨论一种简单的MPC问题:假设 \ell(\cdot) 函数为二次型(quadratic),系统为线性系统且所有约束为线性约束的问题。该问题被称为显式模型预测控制(Explicit MPC)。此时,控制信号可以离线计算得到。MATLAB亦提供了相关的工具。
未完待续……
致谢
- S. Boyd, Model Predictive Control , Stanford University.
- 知乎:模型预测控制简介(model predictive control).
- :显式预测控制(Explicit MPC).
- MATLAB MPC 工具箱.
- Alberto Bemporad, Model Preductive Control.
