1. 课程导入
模型预测控制(Model Predictive Control,MPC)是一类以模型为基础、以滚动优化为核心、以约束处理为特色的先进控制方法。它并不是某一个固定算法的名称,而是一套控制思想:在每个采样时刻,利用系统模型预测未来一段时间内的输出或状态轨迹,在满足约束的前提下求解一个有限时域优化问题,只执行最优解的第一个控制量,然后在下一个采样时刻用新的测量信息重新预测、重新优化。这种“预测—优化—执行—再预测”的闭环机制,使MPC天然具备处理多变量、强约束和性能指标显式表达的能力。
一句话理解MPC:用模型向前看,用优化做决策,用滚动实现反馈,用约束保证安全。
1.1 核心原理:滚动时域优化
MPC的核心可以拆成四个关键词:预测模型、滚动时域、优化目标、约束条件。预测模型负责回答“如果这样控制,未来会怎样”;滚动时域负责把无限时间的最优控制问题转化为有限时间的在线优化;优化目标负责把跟踪误差、控制量变化、能耗等工程诉求写成可计算的代价函数;约束条件则把执行器饱和、阀门开度、温度上限、压力安全边界等现实限制显式纳入求解过程。
与PID“根据当前误差直接修正”不同,MPC在每一步都求解一个未来N步的最优控制序列。设预测时域为Np,控制时域为Nc,离散模型为x(k+1)=Ax(k)+Bu(k),则典型优化问题可写为:
min Σ (y(k+i|k)-r(k+i))ᵀ Q (y(k+i|k)-r(k+i))
+ Σ Δu(k+i)ᵀ R Δu(k+i)
s.t. x(k+i+1|k)=A x(k+i|k)+B u(k+i|k)
y(k+i|k)=C x(k+i|k)
u_min ≤ u(k+i|k) ≤ u_max
Δu_min ≤ Δu(k+i|k) ≤ Δu_max
y_min ≤ y(k+i|k) ≤ y_max
求解后只取u(k|k)作用于系统,下一时刻用新状态重新求解。这种“只执行第一步”的策略,正是MPC闭环反馈能力的来源,也是它比离线最优控制更适合工程现场的原因。
1.2 发展历程:从工业实践到理论成熟
MPC并非先有完整理论再进入工业,而是先在生产现场被“逼”出来的。20世纪70年代,Shell等过程工业公司面对多变量、强耦合、带约束的蒸馏塔和催化裂化装置,传统PID难以兼顾安全与效益,于是出现了以阶跃响应模型为基础的动态矩阵控制(DMC)和模型算法控制(MAC)。这些算法直接使用工业现场容易获得的脉冲或阶跃响应模型,绕开了精确机理建模的困难,迅速在炼油、化工、电力等领域落地。
80年代到90年代,MPC从“工业算法”走向“理论体系”。广义预测控制(GPC)引入CARIMA模型和递推预测,状态空间MPC把预测控制与卡尔曼滤波、观测器理论结合,稳定性、可行性、鲁棒性分析逐步完善。90年代以后,显式MPC、鲁棒MPC、非线性MPC、经济MPC等分支不断出现,MPC不再只是“大装置专用”,而成为控制学科的重要方向。
进入21世纪,计算能力提升和求解器成熟使MPC开始进入汽车、机器人、航空航天、能源管理和自动驾驶等领域。今天,MPC既是流程工业中成熟应用的先进控制技术,也是智能系统实现安全约束下最优决策的核心方法之一。
1.3 工程价值:为什么工程现场需要MPC
MPC的工程价值可以概括为“四个显式”:显式模型、显式目标、显式约束、显式预测。PID调参依赖经验,难以直接处理多变量耦合和硬约束;而MPC把工艺知识、经济目标和安全边界统一写进优化问题,使控制器行为更可解释、更可调整。
| 对比维度 | 传统PID | MPC |
|---|---|---|
| 多变量耦合 | 需解耦或分散控制,协调困难 | 天然多变量协同优化 |
| 约束处理 | 靠限幅、抗饱和,约束与性能分离 | 约束进入优化问题,显式保证可行 |
| 性能指标 | 调参间接影响响应 | 代价函数直接表达跟踪、能耗、平滑性 |
| 预测能力 | 无未来预测 | 有限时域预测,提前处理大滞后 |
| 在线计算 | 极低 | 较高,依赖求解器和算力 |
工程提示:MPC不是“更复杂的PID”。如果对象简单、约束少、算力有限,PID往往更经济。MPC适合多变量、强约束、大滞后、多目标协调的场景。
1.4 典型场景与案例
在炼油厂常减压装置中,MPC可以同时协调加热炉出口温度、塔顶压力、回流比和产品抽出量,在保证产品质量和炉管安全的前提下降低能耗。在自动驾驶中,MPC用于横向路径跟踪和纵向速度规划,把车辆动力学、道路边界、舒适性约束和交通规则统一到滚动优化中。在新能源领域,MPC用于风电机组变桨控制、光伏逆变器电流控制和储能系统功率分配,兼顾响应速度与设备寿命。
一个简化的工程落地流程如下:
- 明确控制目标与被控变量、操纵变量、干扰变量。
- 通过阶跃测试或机理建模获得预测模型,并做模型验证。
- 确定预测时域、控制时域、权重矩阵和约束边界。
- 离线仿真验证,检查跟踪、抗扰和约束满足情况。
- 在线投运,先开环观察预测,再逐步闭环并设置无扰切换。
- 根据运行数据持续修正模型和参数,形成运维闭环。
1.5 常见误区与复盘
误区一:模型越精确越好。工程MPC更关注模型在控制频段内的预测能力,过度追求机理精度可能增加辨识成本和在线计算负担。
误区二:约束越多越安全。约束过多或相互冲突会导致优化不可行,必须设置软约束、松弛变量和优先级。
误区三:MPC投上就能自动最优。权重、时域、模型失配和求解器设置都会影响效果,投运后的性能监控与参数维护同样关键。
复盘时建议重点检查三件事:预测误差是否在可接受范围;优化问题是否频繁不可行或接近边界;控制量是否出现抖动或饱和。只有把“模型—优化—约束—执行”四个环节都打通,MPC才能真正转化为工程效益。
1.6 学习路径与课程整体框架
本课程共30章,按照“入门认知—建模基础—优化理论—算法实现—工程落地—进阶专题”的主线展开。建议学习路径如下:
- 第一阶段:建立直觉。理解MPC定义、滚动优化、预测时域和控制时域,能画出闭环结构。
- 第二阶段:掌握模型。学习状态空间、传递函数、阶跃响应和离散化,理解模型失配的影响。
- 第三阶段:理解优化。掌握二次规划、约束处理、可行性、稳定性和鲁棒性基本概念。
- 第四阶段:动手实现。用Python或MATLAB搭建MPC,完成仿真、调参和对比实验。
- 第五阶段:工程落地。学习辨识、投运、无扰切换、性能监控和常见故障处理。
- 第六阶段:进阶拓展。了解非线性MPC、经济MPC、显式MPC、分布式MPC和学习型MPC。
学习MPC最有效的方式不是只看公式,而是“边推边跑”:先用手算理解一步预测,再用代码实现滚动优化,最后把控制器放到仿真对象或实际装置上验证。每学完一个模块,都应能回答三个问题:模型从哪里来?优化问题怎么建?约束和性能如何权衡?