局部线性化与 SQP 收敛性

一、非线性 MPC 优化问题

1.1 问题 formulation

非线性 MPC 优化问题

其中:

  • 是非线性动态
  • 是阶段代价
  • 是终端代价

1.2 优化问题特点

特点说明
非凸性非线性动态导致非凸优化
多局部最优可能存在多个局部极小值
计算复杂需迭代求解,无解析解
初值敏感收敛性依赖初始猜测

二、序列二次规划 (SQP) 方法

2.1 基本思想

SQP 核心思想:在每一步迭代中,将非线性问题近似为二次规划 (QP) 子问题,通过求解一系列 QP 问题逼近原问题的最优解。

非线性问题 → 线性化/二次近似 → QP 子问题 → 求解 → 更新 → 迭代
                                          ↓
                                    收敛判断

2.2 拉格朗日函数

增广拉格朗日函数

其中:

  • 是动态约束的拉格朗日乘子
  • 是状态约束的乘子
  • 是输入约束的乘子
  • 是状态不等式约束
  • 是输入不等式约束

2.3 KKT 条件

最优性条件 (KKT)

展开为:


三、SQP 算法

3.1 算法框架

算法(序列二次规划):

输入:初始猜测 (X⁽⁰⁾, U⁽⁰⁾), 容差 ε
输出:最优解 (X*, U*)

1. For k = 0, 1, 2, ...:
   
   a. 线性化动态:
      f(x, u) ≈ f(x⁽ᵏ⁾, u⁽ᵏ⁾) + A⁽ᵏ⁾(x - x⁽ᵏ⁾) + B⁽ᵏ⁾(u - u⁽ᵏ⁾)
      其中 A⁽ᵏ⁾ = ∂f/∂x|(x⁽ᵏ⁾,u⁽ᵏ⁾), B⁽ᵏ⁾ = ∂f/∂u|(x⁽ᵏ⁾,u⁽ᵏ⁾)
   
   b. 二次近似代价:
      J ≈ ½ ΔUᵀ H⁽ᵏ⁾ ΔU + f⁽ᵏ⁾ᵀ ΔU + const
   
   c. 构造 QP 子问题:
      min ½ ΔUᵀ H⁽ᵏ⁾ ΔU + f⁽ᵏ⁾ᵀ ΔU
      s.t. 线性化约束
   
   d. 求解 QP 得 ΔU⁽ᵏ⁾
   
   e. 线搜索/信赖域:
      选择步长 α⁽ᵏ⁾ ∈ (0, 1]
      U⁽ᵏ⁺¹⁾ = U⁽ᵏ⁾ + α⁽ᵏ⁾ ΔU⁽ᵏ⁾
   
   f. 收敛判断:
      If ‖ΔU⁽ᵏ⁾‖ < ε:
          Return (X⁽ᵏ⁾, U⁽ᵏ⁾)

3.2 线性化动态

一阶泰勒展开

其中:

3.3 二次代价近似

高斯 - 牛顿近似

其中 Hessian 矩阵 可近似为:

或精确计算:


四、收敛性分析

4.1 局部收敛性

定理(SQP 局部收敛性):若:

  1. 二阶充分条件:Hessian 矩阵正定
  2. LICQ:线性无关约束规格成立
  3. 初值足够接近

则 SQP 算法局部二次收敛

其中 是常数。

4.2 收敛速率

条件收敛速率说明
初值接近最优二次收敛
初值较远线性收敛
初值很远可能发散需全局化策略

4.3 全局化策略

方法 1:线搜索

选择步长 使得 merit function 下降:

方法 2:信赖域

限制步长大小:

方法 3:过滤方法 (Filter)

同时考虑目标函数和约束违反度,避免惩罚参数选择。


五、实时迭代 (RTI) 方案

5.1 基本思想

实时迭代:在每个采样时刻只执行一次 SQP 迭代,而非等待完全收敛。

传统 SQP: [优化 → 收敛 → 实施] (耗时较长)
RTI:      [优化一步 → 实施 → 优化一步 → 实施] (持续进行)

5.2 算法流程

实时迭代 SQP

For each sampling time k:
    1. 测量状态 x(k)
    2. 使用上一时刻解作为初值:U⁽⁰⁾ = U*(k-1) (shifted)
    3. 执行一次 SQP 迭代得 U⁽¹⁾
    4. 实施控制 u(k) = U⁽¹⁾[0]
    5. 准备下一时刻初值

5.3 稳定性保证

命题:若初值足够接近最优解且采样时间 足够短,则 RTI 方案产生的”次优”控制律仍能保证闭环稳定性。


六、数值示例

6.1 非线性系统

倒立摆

6.2 离散化

欧拉离散化():

6.3 SQP 求解结果

迭代次数代价
02.50-
11.850.42
21.620.15
31.580.03
41.570.005
51.570.0008

观察

  • 二次收敛: 快速减小
  • 4-5 次迭代后收敛

七、总结

概念公式/结论
SQP序列二次规划,迭代求解 QP
线性化
KKT 条件
收敛速率局部二次收敛
RTI每时刻一次迭代,实时应用

核心结论

SQP 方法求解 NMPC:

  1. 线性化动态 + 二次近似代价 → QP 子问题
  2. 局部二次收敛:初值接近最优时收敛快
  3. 全局化策略:线搜索/信赖域保证全局收敛
  4. 实时迭代:每时刻一次迭代,适合高速应用

更新记录

日期内容
2026-04-10初始版本