2、MPC基础回顾:模型预测控制基本原理、预测模型、滚动优化、反馈校正

模型预测控制(Model Predictive Control, MPC)并非一种单一算法,而是一类基于模型的先进控制策略的总称。自20世纪70年代在工业过程控制领域诞生以来,MPC凭借其处理多变量约束优化问题的天然优势,已从炼油、化工等慢过程延伸至机电伺服、电力电子、自动驾驶等快动态系统。理解MPC的四大核心要素——预测模型、滚动优化、反馈校正和参考轨迹,是进行求解器选型与调优的前提。若缺乏对机理的透彻理解,工程师极易陷入“参数乱调、求解失败、鲁棒性差”的困境。本章将系统梳理MPC的基本原理,并重点剖析各要素对求解器数值性能与实时性的影响。

MPC 核心机制闭环图 预测模型 状态空间 / 阶跃响应 y(k+i|k) = f(x,u) 滚动优化 min J = Σ‖w-y‖² + λ‖Δu‖² s.t. u_min ≤ u ≤ u_max 反馈校正 e(k) = y_meas(k) - ŷ(k|k-1) 修正预测轨迹 被控对象 执行器 + 传感器 含噪声与扰动 预测输出 最优控制序列 u*(k) y_meas(k) 修正后的预测初值(状态估计更新) 核心循环:每个采样周期内,基于当前测量更新模型状态 → 求解有限时域优化问题 → 仅实施第一个控制量 → 下一周期重复

2.1 预测模型:MPC的“水晶球”

核心原理:预测模型是MPC区别于传统PID控制的最根本特征。它并非用于“仿真”未来,而是用于在优化器中在线计算未来一段时域内(预测时域P)被控变量的演变轨迹。模型的形式决定了优化问题的数学结构:线性状态空间模型对应二次规划(QP),非线性模型对应非线性规划(NLP),而阶跃响应/脉冲响应模型则产生卷积形式的线性规划(LP)或QP。模型精度直接影响控制性能的上限,但模型复杂度又直接决定了求解器的计算负载与实时性瓶颈。

工程判断方法:在选型与调优前,必须明确以下三个问题:

  • 模型类型:是线性时不变(LTI)模型,还是需要在线线性化的非线性模型?LTI模型可预先计算离散状态矩阵,大幅减少在线计算量。
  • 模型规模:状态维度n、输入维度m、输出维度p以及预测时域P和控制时域M。优化变量数量约为 m×M,约束数量约为 (p×P + m×M)。规模直接决定求解器内存占用与迭代次数。
  • 模型失配容忍度:若模型与真实对象偏差大,必须依赖反馈校正来弥补,否则预测轨迹将失去参考意义。
实战经验:对于快系统(如伺服电机,采样周期1ms),建议使用离散状态空间模型并提前计算好矩阵Ad, Bd。避免在实时任务中频繁进行矩阵指数运算,这会严重拖慢求解器启动速度。

2.2 滚动优化:局部最优的“滚动博弈”

核心原理:滚动优化(Receding Horizon Optimization)意味着在每个采样时刻k,求解一个从当前时刻到未来P步的有限时域开环最优控制问题。目标函数通常包含输出跟踪误差的二次型以及控制增量惩罚项。求解完成后,只将控制序列的第一个元素u(k)作用于被控对象,在k+1时刻,利用新的测量信息重新求解。这种“边走边优化”的策略赋予了MPC处理约束和模型失配的鲁棒性。

关键参数与求解器关联:

参数 物理意义 对求解器的影响
预测时域 P 展望未来的步数 P越大,QP矩阵维度越高,求解时间近似线性增长
控制时域 M 允许控制变化的步数 M越小,优化变量越少,求解越快,但性能可能下降
权重矩阵 Q, R 输出误差与控制增量的权衡 影响Hessian矩阵的条件数,权重悬殊过大会导致数值病态
约束边界 输入/输出/状态限幅 约束越紧,活动集变化越频繁,需更多迭代次数

案例拆解:假设一个双输入双输出(TITO)过程,采样周期Ts=0.1s,P=20,M=3。优化变量数为 2×3=6 个,但约束条件包含 2×20=40 个输出约束和 6 个输入增量约束。若使用内点法求解器,每次迭代需计算 6×6 的线性方程组,计算量较小。但若将P增大到50,输出约束增至100条,Hessian矩阵结构不变,但约束雅可比矩阵维度增大,导致每步迭代的矩阵分解耗时增加约2.5倍。因此,在调优时不应盲目增大P,而应权衡动态响应速度与计算负载。

常见误区:初学者常将权重Q设得极大以追求快速跟踪,导致控制增量剧烈变化,不仅使执行器磨损,还会使QP问题的Hessian矩阵条件数超过10^8,引发求解器数值发散或迭代不收敛。建议Q与R的比值控制在10^2~10^4之间,并优先调整R矩阵来抑制抖动。

2.3 反馈校正:对抗不确定性的“免疫系统”

核心原理:由于模型失配、外部扰动和测量噪声的存在,模型预测输出与真实输出必然存在偏差。反馈校正利用当前时刻的实测值y(k)与模型预测值ŷ(k|k-1)之差e(k),对未来预测轨迹进行修正。最常见的修正方式是误差反馈:将e(k)直接叠加到后续预测输出上,或通过状态估计器(如Kalman滤波器)更新系统状态。这一机制使得MPC虽然基于开环模型优化,但整体构成闭环控制。

操作流程与调优要点:

  1. 测量噪声滤波:若传感器噪声大,直接使用e(k)会引入高频抖动。建议对e(k)进行一阶低通滤波,滤波系数α=0.3~0.8。
  2. 状态估计器设计:对于不可测状态,需设计观测器。观测器极点应比控制器极点快2~5倍,但过快的观测器会放大测量噪声。
  3. 模型失配补偿:若发现稳态误差,可在目标函数中加入偏差积分项,或采用增量型预测模型。
案例复盘:在某温度控制系统中,模型预测增益比实际对象高15%。初始调试时,MPC输出出现持续振荡。分析发现,反馈校正系数为1.0,即完全信任误差修正,导致过度补偿。将校正系数调整为0.6,并在预测模型中引入增益修正因子后,系统恢复稳定,稳态误差从±2℃降至±0.3℃。此案例说明,反馈校正并非越大越好,需根据模型失配程度动态调整。

2.4 四大要素的协同与求解器选型映射

预测模型、滚动优化、反馈校正并非孤立模块,而是通过“模型-优化-校正”闭环协同工作。从求解器选型角度看:

  • 模型形式决定求解器接口(如CasADi支持符号建模,CVXGEN仅支持显式QP)。
  • 优化问题规模决定选择内点法(IPM)还是主动集法(ASM)。IPM适合大规模问题(变量>100),ASM适合中小规模且约束活跃度低的问题。
  • 反馈校正的实时性要求求解器在最坏情况下的计算时间必须小于采样周期。若使用Kalman滤波,需额外评估矩阵更新的计算开销。

下表总结了不同应用场景下的推荐求解器策略:

场景特征 模型类型 推荐求解器 关键调优参数
慢过程(化工) 线性状态空间 QP(主动集法) P=30~50, M=5~10
快动态(电机) 线性时变 自定义内点法(C代码) P=10~20, M=2~3
强非线性(无人机) 非线性 NLP(SQP或IPOPT) 需提供精确雅可比矩阵

总结复盘:MPC的调优本质是“模型-优化-校正”三角平衡。预测模型提供前馈能力,滚动优化提供约束处理能力,反馈校正提供鲁棒性。在实际工程中,建议先离线仿真验证模型精度,再在线调试优化器参数,最后根据控制效果微调反馈校正系数。切勿跳过模型验证直接调求解器参数,否则问题定位将极为困难。

经验提醒:当求解器报“infeasible problem”时,90%的原因并非求解器能力不足,而是预测模型或约束设置不合理。优先检查约束边界是否矛盾(如u_min > u_max),以及预测时域内输出约束是否过于苛刻。可尝试先放宽输出约束,待求解成功后逐步收紧。