1. 课程导入

模型预测控制(Model Predictive Control,MPC)是过去四十年中在工业过程控制领域最具影响力的先进控制方法之一。与传统的PID控制不同,MPC的核心特征在于“基于模型”的预测能力与“滚动优化”的决策机制。它不依赖固定的控制律,而是在每一个采样时刻,基于当前系统状态和过程模型,对未来有限时域内的系统行为进行预测,并通过求解一个带约束的优化问题来确定当前最优的控制动作。这种“预测—优化—实施—再预测”的闭环模式,使得MPC能够天然地处理多变量耦合、输入输出约束、非线性以及大纯滞后等复杂问题,因此在炼油、化工、电力、航空、机器人以及自动驾驶等领域获得了广泛而深入的应用。

MPC 滚动时域控制原理与工程链路 参考轨迹 目标值/设定点 未来期望输出 预测模型 状态空间/传递函数 未来N步输出预测 滚动优化 目标函数最小化 满足约束条件 被控对象 执行器/传感器 实际系统动态 状态测量/估计 当前状态x(k) 输出y(k) 目标值 预测输出 最优控制序列u(k) y(k) 状态更新x(k) 核心闭环逻辑 ① 预测未来 → ② 求解优化 → ③ 实施第一步 → ④ 测量反馈 → ⑤ 滚动至下一时刻 每个采样周期重复上述过程,实现“滚动时域”控制 图1-1 MPC滚动时域控制原理框图

1.1 MPC的基本思想:从“预测”到“滚动优化”

MPC的基本思想可以概括为三个核心步骤:预测模型、滚动优化和反馈校正。首先,我们需要一个能够描述被控对象动态行为的数学模型,这个模型可以是机理建模得到的微分方程、状态空间表达式,也可以是系统辨识得到的传递函数或阶跃响应模型。在每一个采样时刻k,MPC控制器利用当前测量到的系统状态x(k)和过去施加的控制输入,通过预测模型计算未来N个采样周期内系统输出的预测值。这个预测时域(Prediction Horizon)通常记为Np,控制时域(Control Horizon)记为Nc,且Nc ≤ Np。

在获得未来输出的预测序列后,MPC需要求解一个有限时域的最优控制问题。优化目标通常包括:使预测输出尽可能接近参考轨迹、控制动作变化量尽量小、以及满足输入输出约束(如阀门开度限制、温度上限、压力范围等)。这个优化问题可以写成如下标准形式:

min J = Σ_{i=1}^{Np} ||y(k+i|k) - r(k+i)||²_Q + Σ_{j=0}^{Nc-1} ||Δu(k+j|k)||²_R
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+j|k) ≤ u_max
      Δu_min ≤ Δu(k+j|k) ≤ Δu_max

其中,Q和R分别为输出误差和控制增量的权重矩阵,r(k+i)为参考轨迹。求解该优化问题后,MPC只将最优控制序列的第一个元素u(k|k)施加到被控对象上,然后在下一个采样时刻k+1,重新测量状态、更新预测、再次求解优化问题。这种“只实施第一步,然后滚动推进”的策略,就是“滚动时域”名称的由来。反馈校正则体现在:每次滚动时,我们都用最新的测量值来修正预测模型的初始状态,从而抑制模型失配和外部扰动的影响。

核心要点:MPC的本质是“利用模型预测未来,通过优化决定当前”。它与PID的本质区别在于:PID是“基于过去误差的反馈”,而MPC是“基于未来预测的前馈+反馈”。这种前瞻性使得MPC能够提前响应设定值变化和已知扰动,显著改善控制品质。

1.2 MPC的发展历史:从工业实践到理论成熟

MPC的发展历程可以追溯到20世纪70年代末期。1978年,法国Adersa公司的Richalet等人提出了模型预测启发式控制(Model Predictive Heuristic Control,MPHC),并在电厂和炼油装置上成功应用。几乎在同一时期,美国Shell Oil公司的Cutler和Ramaker提出了动态矩阵控制(Dynamic Matrix Control,DMC),该算法基于有限阶跃响应模型,在石油化工领域取得了巨大成功。这些早期的MPC算法主要面向工业过程控制,其特点是模型简单、易于工程实现,但缺乏严格的理论分析。

进入20世纪90年代,随着计算机计算能力的提升和优化算法的发展,MPC的理论研究进入了一个蓬勃发展的时期。Clarke等人提出了广义预测控制(Generalized Predictive Control,GPC),将自适应控制思想与预测控制相结合。Mayne、Rawlings等学者则从稳定性理论出发,提出了基于终端约束的MPC设计方法,证明了在满足一定条件下MPC闭环系统的稳定性。这些理论成果极大地推动了MPC从“经验技术”向“严谨学科”的转变。

进入21世纪,MPC的研究热点转向了非线性MPC(NMPC)、鲁棒MPC、分布式MPC以及快速MPC算法。特别是近年来,随着嵌入式处理器性能的飞速提升,MPC开始从大型DCS系统走向小型嵌入式平台,在自动驾驶、无人机、机器人、电力电子变换器等领域获得了新的应用空间。下表总结了MPC发展的几个关键阶段:

阶段 时间 代表性算法 核心特征 主要应用领域
萌芽期 1970s MPHC、DMC 基于非参数模型,启发式设计 炼油、化工
发展期 1980s-1990s GPC、QDMC 引入自适应、约束处理 过程工业、电力
成熟期 1990s-2000s 终端约束MPC、鲁棒MPC 稳定性理论、鲁棒性分析 复杂工业过程
拓展期 2010s至今 NMPC、分布式MPC、快速MPC 非线性、大规模、实时性 自动驾驶、机器人、电力电子

1.3 MPC的工业应用:为什么它如此重要

MPC在工业界的成功并非偶然。现代工业过程往往具有多变量、强耦合、大滞后、硬约束等特征,传统的PID控制难以获得满意的控制效果。MPC凭借其天然的约束处理能力和多变量协调能力,成为解决这类问题的首选方案。在炼油行业中,常压蒸馏塔、催化裂化装置、乙烯裂解炉等关键装置普遍采用MPC进行先进过程控制(APC)。据统计,一套典型的炼油厂MPC项目通常包含20-50个被控变量(CV)和10-30个操纵变量(MV),通过协调优化,可以提高产品收率1%-3%,降低能耗5%-10%,显著提升经济效益。

在电力系统中,MPC被用于自动发电控制(AGC)、风电功率平滑、储能系统调度等场景。例如,在风电功率预测的基础上,MPC可以提前规划储能系统的充放电策略,平滑风电出力波动,减少对电网的冲击。在自动驾驶领域,MPC被广泛用于路径跟踪控制。车辆动力学模型作为预测模型,控制器在每个控制周期内预测车辆未来一段时间的轨迹,并通过优化转向角和加速度,使车辆精确跟踪期望路径,同时满足横向加速度、轮胎附着力等安全约束。

MPC的另一个重要应用领域是飞行控制和航天器姿态控制。由于航天器姿态动力学具有强非线性,且执行机构(如反作用飞轮、推力器)存在饱和约束,MPC能够在满足约束的前提下实现高精度的姿态机动和稳定控制。下表列出了MPC在不同工业领域中的典型应用场景和控制目标:

行业 典型应用 被控变量(CV) 操纵变量(MV) 主要控制目标
石油化工 常压蒸馏塔 产品组分、塔顶温度 回流量、加热炉负荷 提高分离效率、节能
电力系统 AGC调频 电网频率、联络线功率 机组出力 频率稳定、经济调度
汽车 自适应巡航控制 车速、车间距 油门、制动 安全跟车、舒适性
航空航天 运载火箭姿态控制 姿态角、角速度 喷管摆角、推力 精确入轨、抗干扰
机器人 机械臂轨迹跟踪 关节位置、速度 关节力矩 高精度跟踪、避障

1.4 学习路径与常见误区

对于初学者而言,掌握MPC需要一条循序渐进的学习路径。首先,必须具备扎实的线性系统理论基础知识,包括状态空间模型、传递函数、能控性与能观性、Lyapunov稳定性等。这些是理解MPC预测模型和稳定性分析的基础。其次,需要熟悉优化理论的基本概念,特别是二次规划(QP)问题的求解方法,因为线性MPC的核心就是一个带约束的QP问题。推荐学习凸优化基础,理解拉格朗日乘子法、KKT条件等基本工具。

在理论学习的同时,动手实践至关重要。建议从MATLAB/Simulink或Python(如do-mpc、casadi库)开始,搭建一个简单的单输入单输出(SISO)系统MPC控制器。可以从一阶惯性加纯滞后对象入手,逐步增加约束、扩展到多变量系统。在实践过程中,需要重点理解以下几个关键参数的影响:预测时域Np、控制时域Nc、权重矩阵Q和R。Np过短会导致预测信息不足,控制性能下降;Np过长则增加计算负担。Q和R的比值决定了控制动作的激进程度,需要根据实际工程要求进行整定。

常见误区一:认为MPC可以完全替代PID。实际上,MPC通常作为上层优化层,与底层PID控制回路配合使用。在工业现场,MPC输出的设定值往往由底层PID回路来执行。

常见误区二:忽视模型精度的重要性。MPC的性能高度依赖于预测模型的准确性。模型失配严重时,MPC的控制效果可能还不如精心整定的PID。因此,在实施MPC之前,必须进行充分的系统辨识和模型验证。

常见误区三:盲目增加约束条件。虽然MPC能够处理约束,但过多的约束或过于苛刻的约束可能导致优化问题无解(不可行)。工程中需要设计约束松弛机制,确保在极端工况下控制器仍有输出。

总结来说,MPC是一种理论严谨、应用广泛、效果显著的先进控制方法。它融合了系统建模、优化理论、反馈控制等多个学科的知识,是自动化工程师和研究人员必须掌握的核心技能之一。本课程后续章节将深入讲解MPC的数学基础、线性MPC设计方法、约束处理技术、稳定性分析、非线性MPC以及分布式MPC等高级主题,并通过大量案例和仿真实验,帮助学习者全面掌握MPC的理论与实践。

学习建议:在学习本课程时,建议同时准备MATLAB和Python两套工具。MATLAB的MPC工具箱功能完善,适合快速原型验证;Python的开源库(如casadi、do-mpc)则更适合算法研究和嵌入式部署。每学完一个章节,务必亲自动手完成至少一个仿真实验,将理论公式转化为可运行的代码,才能真正理解MPC的精髓。