作为一种在有限时域内进行滚动优化求解的控制算法,模型预测控制(Model Predictive Control,MPC)的稳定性更引入关注。自从上世纪80年代后期MPC在工业界的成功应用倒逼学术界进行理论研究后,关于MPC的稳定性逐渐得到了证明并出现了在不同基础上的思路,本文主要讲述其中采用添加终端约束(terminal constraints)的方法。参考内容是Maciejowski的Predictive control: with constraints这本书。
这里考虑一个一般性的被控对象的模型:
x(k+1)=f(x(k),u(k))
在每个周期的控制作用是通过求解下面这个优化命题得到的:
V(k)=∑i=1Nℓ(x^(k+i|k),u^(k+i−1|k))
这里
ℓ(x,u)≥0 ,
ℓ(x,u)=0 当且仅当
x=0 且
u=0 。同时我们在这里加上终端约束:
x^(k+N|k)=0
在这里为了简明起见,我们令控制时域和预测时域都相等且为
N . 同时要说明的是,这里的
u 和
x 都是带有约束的,即:
u^(k+i|k)∈U,x^(k+i|k)∈X
其中
U 和
X 都是包含原点的非空集合。同时我们假设
u=0 和
x=0 是系统的一个平衡状态(equilibrium condition),即
0=f(0,0) 。并且在每个时刻求解得到的最优序列:
{u0(k+i|k):i=0,...,N−1} 中,只有第一个控制作用
u0(k|k) 被施加到对象上。
在如上所述的情况下,如果我们再假设每个周期的优化命题都有可行解且能求解得到全局最优,那么我们可以认定系统在 u=0 和 x=0 处是稳定的。
证明如下:
这里稳定性的证明采用了控制理论中传统的Lyapunov稳定性证明,即就是找到系统的一个Lyapunov函数,该函数正定而其倒数负定(即函数值递减)。这里的思路就是以每个周期的优化命题目标函数的最优值(即 V0(k) )作为Lyapunov函数。V0(k) 的正定性在前面的假设中已经有所说明。现在需要证明的就是其倒数的负定性,即 V0(k+1)≤V0(k) 。
与其他的稳定性证明方法相同,我们在这里假设模型是无偏的,且不考虑噪声的干扰。因此预测得到的系统状态与实际对象的状态一致,即如果 u(k+i)=u^(k+i|k) ,则 x(k+i)=x^(k+i|k) 。于是有:
V0(k+1)=minu∑i=1Nℓ(x(k+i+1),u(k+i))=minu{∑i=1Nℓ(x(k+i),u(k+i−1))−ℓ(x(k+1),u(k))+ℓ(x(k+1+N),u(k+N))}=−ℓ(x(k+1),u(k))+minu{∑i=1Nℓ(x(k+i),u(k+i−1))+ℓ(x(k+1+N),u(k+N))}≤−ℓ(x(k+1),u0(k))+V0(k)+minu{ℓ(x(k+1+N),u(k+N))}
相对于原书中关于上式的推导,我在不等号前添加了一步以更大程度上便于理解,能把 −ℓ(x(k+1),u(k)) 一项从优化命题中提出来是因为原优化命题的决策变量 u 是从 k+1 时刻开始的,因此 u(k) 的取值并不影响优化命题的结果。
在上式的基础上,因为我们已经添加了终端约束,即 x^(k+N|k)=0 ,因此我们可以保证上式中的
minu{ℓ(x(k+1+N),u(k+N))}=0
同时因为
ℓ(x(k+1),u(k))≥0 ,因此我们就证明了
V0(k+1)≤V0(k) 。所以
V0(k) 是原系统的一个Lyapunov函数,原系统在原点处的Lyapunov稳定性可以得到证明。
□
关于MPC稳定性的证明和Lyapunov函数的意义,可以参考朱豫才老师的一篇博文:李雅普诺夫稳定性理论之批判。
Ref.
Maciejowski, J. M. (2002). Predictive control: with constraints. Pearson education.