基本概念

为什么采用MPC?

  • 处理多变量耦合
  • 处理输入状态约束
  • 卡边控制 (意味着更高的经济效益)

应用:

  • 尿素装置合成段的控制
  • 在各种石化和化工厂中
  • 食品加工
  • 机电系统
  • 暖通空调系统(楼宇控制)

MPC的种类:

  • 线性模型:$x(k+1)=Ax(k)+Bu(k)$,一般为凸优化问题。由于线性MPC包含约束的处理,因此是一种非线性控制策略。
  • 非线性模型:$x(k+1)=f(x(k),u(k))$,一般为非凸优化问题

线性MPC优化命题:

  • 目标函数:状态跟踪 $x_{ref}$,输入跟踪 $u_{ref}$
  • 约束:模型、输入约束、状态约束

MPC算法:

  1. 读取当前状态 $x(k)$
  2. 计算最优控制序列
  3. 实施序列的第一个元素(多变量是向量)

LQR和MPC:当预测时域趋于无穷且忽略约束时,MPC等价于LQR。

常规的MPC优化命题可以写为一个LCQP(线性约束二次规划),优化变量可以是$N*(n_x+n_u)$个(模型当作约束)或者$N*n_u$个(状态用输入和模型表示)。

带有 terminal cost 的MPC: 目标函数中多加入对 $x(k+N)$ 的惩罚,用于保证稳定性。

可以通过求解离散时间Riccati方程来得到终端代价矩阵:

$$ A^TSA-S-(A^TSB)(B^TSB+R)^{-1}(B^TSA)+Q=0 $$ 其中 $u(k)=-Kx(k)$为稳定控制率,$K=(B^TSB+R)^{-1}(B^TSA)$

1
[K,S]=dlqr(A,B,Q,R)

MPC的历史

1st generation MPC:IDCOM (Richalet et al., 1976) 、 DMC (Shell, 1973)

2nd generation MPC:QDMC (Shell, 1983)

3rd generation MPC:IDCOM-M (Setpoint, 1988), SMOC (Shell, late 80’s)

4th generation MPC: DMC-Plus (Honeywell Hi-Spec, ‘95), RMPCT (Aspen Tech, ‘96)

3种不同的formulation:

  1. 无穷时域、无约束、显式解
  2. 有限时域、有约束、无显式解
  3. 无限时域、有约束、输入参数化(显式解)

开环控制与闭环控制:MPC是优化开环有限时域控制问题,但是在每个采样时刻有状态反馈来补偿未建模动态和扰动。因此是闭环控制框架。

MPC设计的选择:

  1. 预测模型
  2. 代价函数:范数、时域、终端代价
  3. 约束:输入、状态约束、终端约束

软约束:用于克服不可行问题,在代价函数中惩罚约束违法,采用1范数或者无穷范数。通常用在不重要的约束,或者优先级排序。

稳定性

稳定性的证明为两步法:

  1. 递归可行性(Recursive feasibility)controller well-defined for all k
  2. 构造李雅普诺夫函数(trajectories converge to equilibrium)

局限性:

  1. only for ‘stabilization’ problems
  2. no general stability framework for ‘tracking’ problems

Step1:recursive feasibility (terminal constraint) 假设没有模型失配!因此reusing the overlapping part of the input sequence will also result in an identical state sequence。

三个条件:

  1. $X_N \subseteq X$ 保证移位后的倒数第二个状态满足状态约束
  2. $u(k+N|k+1)\in U$
  3. $x(k+N+1|k+1)\in X_N$ 终端不变集

Step2:Lyapunov stability (terminal cost)

如果存在 $V(x)$ 使得在0附近区域 $X_f$ 有 $V(x_{next})<V(x), V(0)=0$,则所有从$X_f$ 出发的轨迹能够渐进收敛到原点。

在MPC框架下,$X_f$ 为可行域,$V(x)$为最优目标函数值。即

$$ J(x(k+1),x_N^0(k+1),u_N^0(k+1))<J(x(k),x_N^0(k),u_N^0(k)) $$ 条件4 (Lyapunov inequality): $$ F_N(x)-F_N(x,\kappa_N(x))\ge l(x,\kappa_N(x)) $$

不变集:给定自治动态系统,如果当前状态在集合内,未来状态也都会在该集合内,则集合为正不变集。

线性时不变系统的不变集: 给定 $x_{k+1}=\phi x_k,A_xx_k \le b_x$,则最大不变集可以通过

$$ S = {x|A_xx\le b_x, A_x\phi x\le b_x,…,A_x\phi^nx\le b_x } $$ 其中 $n$ 为一个有限的整数。$S$ 称为maximal admissible set。

参考:

  1. Set invariance in control. Automatica, 1999
  2. Constrained model predictive control: Stability and optimality. Automatica, 2000

鲁棒性

目的:

  1. 保证递归可行性(考虑模型误差、扰动)
  2. 保证渐近稳定性(在没有扰动的情况下)

需要知道: 1. 模型不确定性的形式 2. 扰动的形式

不确定性模型

线性参数变化模型

  1. 多胞不确定描述
  2. norm-bounded 不确定性描述

有界扰动

通常为多面体($W \in X$):

  1. $W=Co\{w_1,…,w_n\}$
  2. $W=\{w|A_ww \le 1_v\}$

鲁棒MPC 需要进行的改造:

  1. 不确定性预测
  2. 终端代价需要满足 multiple Lyap. Ineq.
  3. 终端约束需要是 a robust invariant set

对状态预测树的所有节点添加约束