4、优化问题分类:线性规划(LP)、二次规划(QP)、非线性规划(NLP)、混合整数规划(MIQP/MINLP)在MPC中的应用

模型预测控制(MPC)的核心在于每一控制周期内求解一个有限时域优化问题。这个优化问题的数学结构——目标函数形式、约束类型、决策变量属性——直接决定了求解器的选型、计算耗时、收敛特性以及最终的控制品质。本章将系统梳理LP、QP、NLP、MIQP/MINLP四类优化问题在MPC中的适用场景、数学特征、求解器匹配策略与工程调优要点,帮助工程师在“控制性能”与“实时可行性”之间做出理性权衡。

MPC优化问题分类与求解器匹配决策图 MPC 每周期优化问题 LP 线性规划 目标/约束均为线性 QP 二次规划 二次目标+线性约束 NLP 非线性规划 目标/约束含非线性 MIQP/MINLP 含整数/逻辑决策变量 典型:经济MPC、 大范围调度、快速回路 典型:标准跟踪MPC、 LTI系统、软约束 典型:化学反应器、 pH控制、强非线性 典型:混合逻辑、 模式切换、整数决策 单纯形法 / 内点法 OSQP / qpOASES / 内点法 SQP / 内点法 / 信赖域 分支定界 + 连续求解器 ● 毫秒级 ● 毫秒级(凸) ● 十毫秒~百毫秒 ● 百毫秒~秒级 选型决策:优先QP → 线性化降NLP → 必要时引入整数变量 → 实时性不满足时简化模型 工程原则:在控制性能损失可接受的前提下,尽量选择凸优化问题以保证求解实时性与全局最优性

上图展示了MPC优化问题分类的全景决策逻辑。实际工程中,超过80%的线性MPC应用最终归结为QP问题,而LP多用于经济优化层或超高速回路,NLP和混合整数规划则用于处理强非线性或逻辑切换场景。下面逐一展开各类问题的数学本质、求解器匹配与实战调优方法。

4.1 线性规划(LP)在MPC中的应用

核心原理

LP问题的标准形式为:目标函数为线性函数,约束条件为线性等式或不等式。在MPC框架下,LP通常用于以下两类场景:(1)经济MPC(EMPC),以经济指标(如能耗、产量、利润)为优化目标,而非跟踪误差;(2)超高速回路,如电力电子变换器控制,采样周期在微秒到毫秒级,需要极简的优化模型。LP的数学表达为:

min  J = c^T * u
s.t. A * u ≤ b
     Aeq * u = beq
     lb ≤ u ≤ ub

其中u为决策变量(通常为控制增量或操纵变量),c为成本系数向量。LP的全局最优解一定在可行域的顶点处取得,这为求解器提供了高效的搜索路径。

判断方法

  • 目标函数线性化:如果MPC的目标函数可以写成值形式(如L1范数)或线性加权和,且预测模型为线性状态空间方程,则可转化为LP。
  • 约束条件:所有约束(输入限幅、输出限幅、变化率约束)均为线性不等式。
  • 无二次型惩罚:如果对控制误差的惩罚不需要平方项(即不需要抑制大幅偏差),LP是合适选择。

案例拆解:炼油厂催化裂化装置的经济MPC

某炼油厂FCCU装置采用经济MPC,目标为最大化汽油产率同时满足产品规格约束。原QP方案每周期求解耗时约35ms,在DCS系统上存在超时风险。工程师将目标函数从二次型跟踪误差改为线性经济指标(汽油价格×产率 - 能耗成本),并将预测模型保持线性。改造后LP求解耗时降至4ms,控制周期从1s缩短至200ms。关键参数对比:

指标QP方案LP方案
求解耗时35ms4ms
目标函数形式二次型误差线性经济指标
汽油产率提升基准+1.2%
能耗变化基准-3.5%

复盘发现,LP方案虽然牺牲了误差平方惩罚带来的“大偏差快速抑制”特性,但通过增加一个线性软约束项(对超限的惩罚系数),在保持经济最优的同时满足了安全约束。

风险提示:LP的最优解在顶点处,可能导致控制量在相邻周期发生大幅跳变(bang-bang行为)。工程上需在目标函数中加入控制变化量的L1惩罚项,或对控制增量施加死区约束,避免执行机构频繁动作。

4.2 二次规划(QP)——标准MPC的默认选择

核心原理

QP问题具有二次目标函数和线性约束,是线性MPC的标准数学形式。其目标函数通常为:

min  J = (y-y_ref)^T * Q * (y-y_ref) + Δu^T * R * Δu
s.t. x(k+1) = A*x(k) + B*u(k)
     y(k) = C*x(k)
     u_min ≤ u ≤ u_max
     Δu_min ≤ Δu ≤ Δu_max
     y_min ≤ y ≤ y_max

QP的凸性(当Q≥0, R>0时)保证了全局最优解的存在性和唯一性,且求解算法(内点法、主动集法、交替方向乘子法ADMM)成熟高效。对于中等规模问题(决策变量数在10~200之间),现代求解器可在1~10ms内完成求解。

判断方法与求解器选型

问题规模(决策变量数)推荐求解器算法类型典型耗时
10~50qpOASES主动集法0.1~1ms
50~200OSQPADMM1~5ms
200~1000HPIPM / FORCES Pro内点法/自定义5~20ms
>1000GUROBI / CPLEX内点法/单纯形20~100ms

实战调优要点

  • 权重矩阵整定:Q矩阵决定跟踪优先级,R矩阵抑制控制动作幅度。建议先令R=0.1*I,观察闭环响应,再逐步增大R直到控制动作不再抖动。
  • 软约束处理:输出约束(如温度上限)应使用软约束(引入松弛变量ε),避免因模型失配导致可行域为空。松弛变量在目标函数中惩罚系数通常设为10^4~10^6。
  • 温启动策略:利用上一周期的最优解作为当前周期的初始点,可减少约30%~50%的迭代次数。qpOASES和OSQP均支持温启动。
经验之谈:某化工过程MPC项目,预测时域N=30,控制时域M=5,决策变量数为30。最初使用MATLAB的quadprog求解,耗时45ms,超出10ms控制周期要求。改用OSQP并开启温启动后,平均耗时降至2.8ms,最坏情况6.1ms,满足实时性。关键改动是:将约束矩阵转换为稀疏格式,并设置eps_abs=1e-4、eps_rel=1e-4(放宽收敛精度以换取速度)。

4.3 非线性规划(NLP)——处理强非线性系统的利器

核心原理

当被控对象具有显著非线性(如pH中和过程、聚合反应器、机器人动力学)时,线性预测模型无法满足控制精度要求,需直接在NLP框架下求解。NLP的数学形式为:

min  J = Σ ||y(k+i) - y_ref||²_Q + ||Δu(k+i)||²_R
s.t. x(k+i+1) = f(x(k+i), u(k+i))   % 非线性状态方程
     g(x, u) ≤ 0                     % 非线性约束

NLP求解的核心挑战在于非凸性——可能存在多个局部最优解,且求解时间不确定。常用算法包括序列二次规划(SQP)、内点法(IPOPT)、以及基于自动微分的CasADi框架。

判断方法与降维策略

  • 非线性程度评估:计算开环响应的增益变化。若在工作点附近增益变化超过20%,建议考虑NMPC。
  • 模型简化优先:在可能的情况下,通过反馈线性化、精确线性化或子空间辨识将系统转化为线性模型,避免直接求解NLP。
  • 多工作点线性化:在不同工况点分别建立线性模型,使用增益调度MPC(LPV-MPC),兼顾非线性和实时性。

案例拆解:连续搅拌反应釜(CSTR)的NMPC实现

某CSTR过程存在强放热反应,温度-浓度耦合严重非线性。线性MPC在工况偏移超过15%时出现振荡。工程师采用CasADi+IPOPT实现NMPC:

  1. 模型建立:使用一阶原理模型,包含物料平衡和能量平衡方程,共4个状态变量。
  2. 求解配置:预测时域N=20,控制时域M=3,IPOPT设置max_iter=100,tol=1e-4。
  3. 实时性优化:采用实时迭代(RTI)策略,将NLP求解拆分为准备阶段和反馈阶段,反馈阶段仅需一次SQP迭代。

实测结果:控制周期从1s延长至2s(因NLP求解需约300ms),但温度控制偏差从±3.5°C降至±0.8°C,产品合格率从92%提升至99.2%。代价是CPU占用率从15%升至60%,需选用更高性能控制器。

风险说明:NLP求解可能失败(收敛到不可行点或迭代发散)。工程上必须设置求解失败保护逻辑——当NLP求解器返回错误时,切换至上一周期可行解或退化为QP控制器,确保系统安全。

4.4 混合整数规划(MIQP/MINLP)——逻辑决策与模式切换

核心原理

当MPC需要处理离散决策变量时(如阀门开关、设备启停、模式切换),问题变为混合整数规划。MIQP(线性模型+二次目标+整数变量)和MINLP(非线性模型+整数变量)的求解复杂度远高于连续优化问题,属于NP-hard问题。其数学形式为:

min  J = (y-y_ref)^T Q (y-y_ref) + Δu^T R Δu + λ^T z
s.t. x(k+1) = A*x(k) + B*u(k) + F*z(k)   % z为整数变量
     z ∈ {0,1}^m
     u_min * z ≤ u ≤ u_max * z           % 逻辑约束

求解策略

问题类型求解方法适用规模实时性
MIQP(小规模)分支定界 + QP求解器整数变量≤1010~100ms
MIQP(中规模)外逼近(OA)整数变量≤30100ms~1s
MINLP分支定界 + NLP求解器整数变量≤51~10s
大规模启发式/分解算法整数变量>30不保证实时

工程降维方法

  • 逻辑变量松弛:将整数变量松弛为连续变量(0~1),求解后取整,适用于对最优性要求不高的场景。
  • 显式MPC:离线计算所有可行域的分段仿射控制律,在线仅需查表。适用于整数变量≤5的小规模问题。
  • 事件驱动重构:将模式切换视为外部事件,由上层调度器决策,MPC仅处理连续变量。

案例拆解:建筑能源系统的MIQP优化

某商业建筑暖通空调系统包含2台冷水机组(启停状态为整数变量)和1个蓄冷水池(连续变量)。目标为在电价分时计费下最小化日运行成本。MIQP问题包含2个整数变量、8个连续变量、预测时域24h(步长1h)。使用GUROBI求解:

# 关键参数设置
m.setParam('TimeLimit', 10)      # 最长求解时间10s
m.setParam('MIPGap', 0.01)       # 最优性间隙1%
m.setParam('Threads', 4)         # 并行线程数

实际求解耗时约3.2s,MIPGap=0.8%,日运行成本较传统规则控制降低18.6%。但该问题无法在1s内实时求解,因此采用“滚动优化+事件触发”策略:每15分钟重新求解一次,并在电价变化或负荷突变时触发重算。

复盘经验:混合整数规划在MPC中的落地关键在于“问题重构”——将复杂的逻辑关系转化为线性约束(大M法),并尽可能减少整数变量数量。每减少一个整数变量,求解时间通常可降低一个数量级。如果整数变量超过10个,建议考虑分解为上层调度+下层连续MPC的两级架构。

4.5 总结与选型决策框架

综合上述分析,MPC优化问题选型应遵循以下决策路径:

  1. 第一步:判断模型线性度——若系统在工作范围内近似线性,进入第2步;否则考虑NLP或LPV-MPC。
  2. 第二步:判断目标函数形式——若需要抑制大偏差且对误差平方敏感,选QP;若以经济指标为主且可接受线性目标,选LP。
  3. 第三步:判断是否存在逻辑/整数决策——若存在,评估整数变量数量,≤5可尝试MIQP,否则考虑分解策略。
  4. 第四步:实时性验证——在目标硬件上测试最坏情况求解时间,确保小于控制周期的80%。
问题类型凸性全局最优典型求解时间适用场景
LP凸是0.1~5ms经济MPC、超高速回路
QP凸(Q≥0)是1~20ms标准跟踪MPC、LTI系统
NLP非凸否(局部最优)50~500ms强非线性、高精度控制
MIQP/MINLP非凸(组合)是(理论上)100ms~10s逻辑切换、混合系统

最后需要强调,优化问题分类不仅是数学形式的选择,更是控制性能与计算资源之间的工程权衡。在绝大多数工业MPC应用中,QP是“性价比”最高的选择——它既能保证全局最优性,又能在嵌入式硬件上实现毫秒级求解。只有在QP无法满足控制品质要求时,才应升级至NLP或混合整数规划,并做好充分的实时性验证与故障保护设计。