1. 不可行启动牛顿法在Fast-MPC中的应用原理
模型预测控制(MPC)本质上是一个滚动时域优化问题。传统解法每个控制周期都要重新构建完整的二次规划(QP)问题,这种"蛮力解法"存在明显的计算冗余。Fast-MPC的核心创新在于两点:一是采用不可行启动(infeasible start)的牛顿迭代法,二是充分利用MPC问题的特殊结构。
1.1 不可行启动的数学本质
常规牛顿法要求初始点必须满足所有约束条件,这在实时控制中会带来额外的计算负担。不可行启动牛顿法则放宽了这个限制,其迭代步骤可以表示为:
code复制Δz = -[∇²L(z)]⁻¹ ∇L(z)
其中∇²L是拉格朗日函数的Hessian矩阵,∇L是梯度。对于带等式约束的QP问题,这对应于求解KKT系统:
code复制[H Aᵀ][Δx] = -[∇f(x) + Aᵀλ]
[A 0 ][Δλ] [Ax - b ]
关键区别在于:允许残差项Ax-b≠0,即初始点可以不满足约束。这种放松虽然会增加迭代次数,但省去了寻找可行初始点的计算量,整体上反而更快。
1.2 MPC问题的特殊结构利用
线性时不变系统的MPC问题具有以下可 exploited 的结构特征:
- 预测时域内的状态转移矩阵呈现块对角结构
- 控制时域内的输入权重矩阵也是块对角
- 相邻MPC问题之间的参数变化具有连续性
实测数据显示,对于20步预测的倒立摆控制问题:
| 方法 | 平均求解时间(ms) |
|---|---|
| 传统QP求解器 | 12.4 |
| Fast-MPC(不可行启动) | 4.2 |
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Fast-MPC实现细节剖析
2.1 KKT矩阵的高效构建
对于状态维度n、控制维度m、预测步长N的系统,Hessian矩阵的构造采用块对角拼接:
python复制def build_H(Q, R, N):
"""构造预测时域内的块对角Hessian矩阵
Args:
Q: 状态权重矩阵(n×n)
R: 控制权重矩阵(m×m)
