线性系统下MPC的迭代可行性与稳定性证明
以下以一个离散时间线性系统为例,详细证明模型预测控制(MPC)的迭代可行性和稳定性。假设系统模型为:
x
(
k
+
1
)
=
A
x
(
k
)
+
B
u
(
k
)
,
x(k+1) = A x(k) + B u(k),
x(k+1)=Ax(k)+Bu(k),
其中
x
∈
R
n
x \in \mathbb{R}^n
x∈Rn,
u
∈
R
m
u \in \mathbb{R}^m
u∈Rm,且系统
(
A
,
B
)
(A, B)
(A,B)可控。
步骤1:定义MPC优化问题
设计一个有限时域
N
N
N的MPC优化问题,目标函数为:
J
(
k
)
=
∑
i
=
0
N
−
1
(
x
(
k
+
i
∣
k
)
T
Q
x
(
k
+
i
∣
k
)
+
u
(
k
+
i
∣
k
)
T
R
u
(
k
+
i
∣
k
)
)
+
x
(
k
+
N
∣
k
)
T
P
x
(
k
+
N
∣
k
)
,
J(k) = \sum_{i=0}^{N-1} \left( x(k+i|k)^T Q x(k+i|k) + u(k+i|k)^T R u(k+i|k) \right) + x(k+N|k)^T P x(k+N|k),
J(k)=i=0∑N−1(x(k+i∣k)TQx(k+i∣k)+u(k+i∣k)TRu(k+i∣k))+x(k+N∣k)TPx(k+N∣k),
约束条件:
- 状态约束: x ( k + i ∣ k ) ∈ X x(k+i|k) \in \mathcal{X} x(k+i∣k)∈X(凸集,通常包含原点)。
- 输入约束: u ( k + i ∣ k ) ∈ U u(k+i|k) \in \mathcal{U} u(k+i∣k)∈U(凸集,通常包含原点)。
- 终端约束: x ( k + N ∣ k ) ∈ X f ⊆ X x(k+N|k) \in \mathcal{X}_f \subseteq \mathcal{X} x(k+N∣k)∈Xf⊆X。
设计要求:
- Q ≻ 0 Q \succ 0 Q≻0, R ≻ 0 R \succ 0 R≻0, P ≻ 0 P \succ 0 P≻0为权重矩阵。
- 终端集
X
f
\mathcal{X}_f
Xf是控制不变集,即存在局部控制器
u
=
K
x
u = K x
u=Kx使得:
( A + B K ) x ∈ X f , ∀ x ∈ X f . (A + BK)x \in \mathcal{X}_f, \quad \forall x \in \mathcal{X}_f. (A+BK)x∈Xf,∀x∈Xf. - 终端代价
P
P
P是无限时域LQR问题的解,满足代数Riccati方程:
P = A T P A − A T P B ( R + B T P B ) − 1 B T P A + Q . P = A^T P A - A^T P B (R + B^T P B)^{-1} B^T P A + Q. P=ATPA−ATPB(R+BTPB)−1BTPA+Q.
或者
A K T P A K − P = − Q ∗ A K = A + B K Q ∗ = Q + K T R K K = − ( R + B T P B ) − 1 B T P A A_K^T P A_K-P=-Q^* \\ A_K=A+BK \\ Q^*=Q+K^TRK \\ K=-(R + B^T P B)^{-1} B^T P A AKTPAK−P=−Q∗AK=A+BKQ∗=Q+KTRKK=−(R+BTPB)−1BTPA
步骤2:证明迭代可行性(Recursive Feasibility)
目标:若初始时刻 k = 0 k=0 k=0的优化问题可行,则后续所有时刻 k ≥ 1 k \geq 1 k≥1的优化问题仍可行。
证明过程:
-
假设当前时刻 k k k的优化问题可行,得到最优控制序列:
{ u ∗ ( k ∣ k ) , u ∗ ( k + 1 ∣ k ) , … , u ∗ ( k + N − 1 ∣ k ) } , \{u^*(k|k), u^*(k+1|k), \dots, u^*(k+N-1|k)\}, {u∗(k∣k),u∗(k+1∣k),…,u∗(k+N−1∣k)},
对应的状态轨迹为:
{ x ∗ ( k ∣ k ) , x ∗ ( k + 1 ∣ k ) , … , x ∗ ( k + N ∣ k ) } , \{x^*(k|k), x^*(k+1|k), \dots, x^*(k+N|k)\}, {x∗(k∣k),x∗(k+1∣k),…,x∗(k+N∣k)},
其中 x ∗ ( k + N ∣ k ) ∈ X f x^*(k+N|k) \in \mathcal{X}_f x∗(k+N∣k)∈Xf。 -
构造下一时刻 k + 1 k+1 k+1的候选控制序列:
u ~ ( k + 1 + i ∣ k + 1 ) = { u ∗ ( k + 1 + i ∣ k ) , i = 0 , 1 , … , N − 2 , K x ∗ ( k + N ∣ k ) , i = N − 1. \tilde{u}(k+1+i|k+1) = \begin{cases} u^*(k+1+i|k), & i = 0,1,\dots,N-2, \\ K x^*(k+N|k), & i = N-1. \end{cases} u~(k+1+i∣k+1)={u∗(k+1+i∣k),Kx∗(k+N∣k),i=0,1,…,N−2,i=N−1.
对应状态轨迹:
x ~ ( k + 1 + i ∣ k + 1 ) = { x ∗ ( k + 1 + i ∣ k ) , i = 0 , 1 , … , N − 1 , ( A + B K ) x ∗ ( k + N ∣ k ) , i = N . \tilde{x}(k+1+i|k+1) = \begin{cases} x^*(k+1+i|k), & i = 0,1,\dots,N-1, \\ (A + BK) x^*(k+N|k), & i = N. \end{cases} x~(k+1+i∣k+1)={x∗(k+1+i∣k),(A+BK)x∗(k+N∣k),i=0,1,…,N−1,i=N. -
验证候选序列的可行性:
- 输入约束:前 N − 1 N-1 N−1个输入 u ~ ( k + 1 + i ∣ k + 1 ) \tilde{u}(k+1+i|k+1) u~(k+1+i∣k+1)继承自 k k k时刻的可行解;最后一个输入 K x ∗ ( k + N ∣ k ) K x^*(k+N|k) Kx∗(k+N∣k)满足 U \mathcal{U} U,因为 X f \mathcal{X}_f Xf是控制不变集。
- 状态约束:前 N − 1 N-1 N−1个状态 x ~ ( k + 1 + i ∣ k + 1 ) \tilde{x}(k+1+i|k+1) x~(k+1+i∣k+1)继承自可行解;最后一个状态 ( A + B K ) x ∗ ( k + N ∣ k ) ∈ X f (A + BK)x^*(k+N|k) \in \mathcal{X}_f (A+BK)x∗(k+N∣k)∈Xf,由控制不变性保证。
- 终端约束: x ~ ( k + 1 + N ∣ k + 1 ) = ( A + B K ) x ∗ ( k + N ∣ k ) ∈ X f \tilde{x}(k+1+N|k+1) = (A + BK)x^*(k+N|k) \in \mathcal{X}_f x~(k+1+N∣k+1)=(A+BK)x∗(k+N∣k)∈Xf。
-
结论:候选序列满足所有约束,因此 k + 1 k+1 k+1时刻的优化问题可行。由数学归纳法,迭代可行性成立。
步骤3:证明稳定性(Stability)
目标:证明闭环系统在MPC控制下渐近稳定,即 x ( k ) → 0 x(k) \to 0 x(k)→0当 k → ∞ k \to \infty k→∞。
证明过程:
-
定义李雅普诺夫函数:
令 V ( k ) = J ∗ ( k ) V(k) = J^*(k) V(k)=J∗(k),即当前时刻的最优目标函数值。需证明:
V ( k + 1 ) − V ( k ) ≤ − x ( k ) T Q x ( k ) . V(k+1) - V(k) \leq -x(k)^T Q x(k). V(k+1)−V(k)≤−x(k)TQx(k). -
分析目标函数的变化:
- 当前时刻的最优目标函数:
V ( k ) = ∑ i = 0 N − 1 ( x ∗ ( k + i ∣ k ) T Q x ∗ ( k + i ∣ k ) + u ∗ ( k + i ∣ k ) T R u ∗ ( k + i ∣ k ) ) + x ∗ ( k + N ∣ k ) T P x ∗ ( k + N ∣ k ) . V(k) = \sum_{i=0}^{N-1} \left( x^*(k+i|k)^T Q x^*(k+i|k) + u^*(k+i|k)^T R u^*(k+i|k) \right) + x^*(k+N|k)^T P x^*(k+N|k). V(k)=i=0∑N−1(x∗(k+i∣k)TQx∗(k+i∣k)+u∗(k+i∣k)TRu∗(k+i∣k))+x∗(k+N∣k)TPx∗(k+N∣k). - 下一时刻的目标函数候选值(使用步骤2的候选序列):
V ~ ( k + 1 ) = ∑ i = 0 N − 1 ( x ~ ( k + 1 + i ∣ k + 1 ) T Q x ~ ( k + 1 + i ∣ k + 1 ) + u ~ ( k + 1 + i ∣ k + 1 ) T R u ~ ( k + 1 + i ∣ k + 1 ) ) + x ~ ( k + 1 + N ∣ k + 1 ) T P x ~ ( k + 1 + N ∣ k + 1 ) . \tilde{V}(k+1) = \sum_{i=0}^{N-1} \left( \tilde{x}(k+1+i|k+1)^T Q \tilde{x}(k+1+i|k+1) + \tilde{u}(k+1+i|k+1)^T R \tilde{u}(k+1+i|k+1) \right) + \tilde{x}(k+1+N|k+1)^T P \tilde{x}(k+1+N|k+1). V~(k+1)=i=0∑N−1(x~(k+1+i∣k+1)TQx~(k+1+i∣k+1)+u~(k+1+i∣k+1)TRu~(k+1+i∣k+1))+x~(k+1+N∣k+1)TPx~(k+1+N∣k+1). - 由于候选序列不一定是最优的,故:
V ( k + 1 ) ≤ V ~ ( k + 1 ) . V(k+1) \leq \tilde{V}(k+1). V(k+1)≤V~(k+1).
- 当前时刻的最优目标函数:
-
计算差值:
V ~ ( k + 1 ) − V ( k ) = − x ( k ) T Q x ( k ) − u ( k ) T R u ( k ) ⏟ 首项被移除 + x ∗ ( k + N ∣ k ) T [ ( A + B K ) T P ( A + B K ) − P ] x ∗ ( k + N ∣ k ) ⏟ 新终端状态贡献 + x ∗ ( k + N ∣ k ) T ( Q + K T R K ) x ∗ ( k + N ∣ k ) ⏟ 新增的最后一步代价 = − x ( k ) T Q x ( k ) − u ( k ) T R u ( k ) + x ∗ ( k + N ∣ k ) T [ ( A + B K ) T P ( A + B K ) − P + Q + K T R K ] x ∗ ( k + N ∣ k ) . \begin{aligned} &\tilde{V}(k+1) - V(k) \\=& \underbrace{-x(k)^T Q x(k) - u(k)^T R u(k)}_{\text{首项被移除}} \\ &+ \underbrace{x^*(k+N|k)^T \left[ (A + BK)^T P (A + BK) - P \right] x^*(k+N|k)}_{\text{新终端状态贡献}} \\&+ \underbrace{x^*(k+N|k)^T (Q + K^T R K) x^*(k+N|k)}_{\text{新增的最后一步代价}}\\ =&-x(k)^T Q x(k) - u(k)^T R u(k) \\&+ x^*(k+N|k)^T \left[ (A + BK)^T P (A + BK) - P + Q + K^T R K \right] x^*(k+N|k). \end{aligned} ==V~(k+1)−V(k)首项被移除 −x(k)TQx(k)−u(k)TRu(k)+新终端状态贡献 x∗(k+N∣k)T[(A+BK)TP(A+BK)−P]x∗(k+N∣k)+新增的最后一步代价 x∗(k+N∣k)T(Q+KTRK)x∗(k+N∣k)−x(k)TQx(k)−u(k)TRu(k)+x∗(k+N∣k)T[(A+BK)TP(A+BK)−P+Q+KTRK]x∗(k+N∣k).
根据代数Riccati方程,有:
( A + B K ) T P ( A + B K ) − P + Q + K T R K = 0. (A + BK)^T P (A + BK) - P + Q + K^T R K = 0. (A+BK)TP(A+BK)−P+Q+KTRK=0.
因此:
V
~
(
k
+
1
)
−
V
(
k
)
=
−
x
(
k
)
T
Q
x
(
k
)
−
u
(
k
)
T
R
u
(
k
)
≤
−
x
(
k
)
T
Q
x
(
k
)
.
\tilde{V}(k+1) - V(k) = -x(k)^T Q x(k) - u(k)^T R u(k) \leq -x(k)^T Q x(k).
V~(k+1)−V(k)=−x(k)TQx(k)−u(k)TRu(k)≤−x(k)TQx(k).
- 稳定性结论:
- 由 V ( k + 1 ) ≤ V ~ ( k + 1 ) ≤ V ( k ) − x ( k ) T Q x ( k ) V(k+1) \leq \tilde{V}(k+1) \leq V(k) - x(k)^T Q x(k) V(k+1)≤V~(k+1)≤V(k)−x(k)TQx(k),可知 V ( k ) V(k) V(k)是递减序列且有下界( V ( k ) ≥ 0 V(k) \geq 0 V(k)≥0),故 V ( k ) → 0 V(k) \to 0 V(k)→0。
- 由于 Q ≻ 0 Q \succ 0 Q≻0,可得 x ( k ) → 0 x(k) \to 0 x(k)→0,即闭环系统渐近稳定。
总结
对于线性系统,通过合理设计终端约束 X f \mathcal{X}_f Xf(控制不变集)和终端代价 P P P(LQR解),MPC的迭代可行性由控制不变性保证,稳定性则由目标函数的李雅普诺夫性质保证。此框架可推广至带约束的线性系统,是经典MPC理论的核心结果。
( A + B K ) T P ( A + B K ) − P + Q + K T R K = 0 ↓ K = − ( B T P B + R ) − 1 B T P A P = A T P A − A T P B ( R + B T P B ) − 1 B T P A + Q . (A + BK)^T P (A + BK) - P + Q + K^T R K = 0 \\ \downarrow K=-(B^TPB+R)^{-1}B^TPA \\ P = A^T P A - A^T P B (R + B^T P B)^{-1} B^T P A + Q. (A+BK)TP(A+BK)−P+Q+KTRK=0↓K=−(BTPB+R)−1BTPAP=ATPA−ATPB(R+BTPB)−1BTPA+Q.