课程导入:MPC预测控制的基本概念、发展历程、工业应用价值

模型预测控制(Model Predictive Control,简称MPC)是过去四十年间过程控制领域最具影响力的先进控制技术之一。与传统的PID控制不同,MPC的核心思想是:基于被控对象的动态模型,在每一个采样时刻在线求解一个有限时域的最优控制问题,并将求解得到的控制序列的第一步作用于被控对象,然后在下一个采样时刻重复这一过程。这种"滚动优化、反馈校正"的机制,使得MPC能够天然地处理多变量耦合、系统约束和未来参考轨迹跟踪等复杂问题。本章作为整个课程的开篇,将系统梳理MPC的基本概念、发展脉络、工业应用价值,并给出本课程的学习路径与工具准备建议。

MPC预测控制知识框架与学习路径 MPC 模型预测控制 滚动优化 · 反馈校正 · 约束处理 预测模型 状态空间 / 传递函数 / 阶跃响应 用于预测未来输出轨迹 滚动优化 每个采样时刻在线求解 QP 问题 目标函数 + 约束条件 反馈校正 测量输出 vs 预测输出 状态估计 / 扰动补偿 发展历程 1970s 萌芽期 Richalet / Cutler MAC / DMC 1980s 奠基期 Clarke / GPC 状态空间 MPC 1990s 成熟期 稳定性理论 鲁棒 MPC 2000s+ 拓展期 非线性 / 分布式 嵌入式 / 学习型 本课程学习路径 原理推导 算法设计 仿真验证 代码实现

1.1 MPC的基本概念与核心原理

模型预测控制本质上是一种基于模型的先进控制策略,其核心思想可以概括为"预测—优化—校正"三个步骤的循环迭代。在每一个采样时刻,MPC控制器利用被控对象的动态模型,从当前状态出发,预测未来一段时间(预测时域)内系统在候选控制序列作用下的输出轨迹;然后,通过求解一个带约束的最优化问题,找到一组最优控制序列,使得预测输出尽可能接近期望参考轨迹,同时满足输入、输出和状态的各种约束;最后,仅将最优控制序列的第一步作用于被控对象,在下一个采样时刻重新进行预测和优化。

这种"滚动时域"的工作方式赋予了MPC几个显著优势:第一,它天然支持多输入多输出(MIMO)系统,能够直接处理回路间的耦合;第二,它能够显式地处理各种约束,如执行器饱和、安全限幅、产品质量边界等;第三,它具备前馈-反馈结合的特性,既能利用模型进行前馈补偿,又能通过反馈校正抑制模型失配和外部扰动。

关键概念对照:MPC中的三个基本要素——预测模型、滚动优化、反馈校正——分别对应着"用什么预测"、"如何决策"和"如何纠偏"三个问题。预测模型的质量直接决定了MPC性能的上限,而优化求解器的效率则决定了MPC能否在采样周期内完成计算。

核心原理的数学表达

考虑一个离散时间线性时不变系统,其状态空间描述为:

x(k+1) = A·x(k) + B·u(k)
y(k)   = C·x(k)

其中,x(k) ∈ Rⁿ为状态向量,u(k) ∈ Rᵐ为控制输入,y(k) ∈ Rᵖ为被控输出。MPC在每个采样时刻k,基于当前状态x(k),求解如下有限时域最优控制问题:

min  Σ_{i=0}^{N-1} [ (y(k+i|k) - r(k+i))ᵀ·Q·(y(k+i|k) - r(k+i)) + u(k+i|k)ᵀ·R·u(k+i|k) ]
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
     y_min ≤ y(k+i|k) ≤ y_max
     x(k|k) = x(k)

其中,N为预测时域,Q和R为加权矩阵,r为参考轨迹。求解该优化问题后,取最优控制序列的第一步u(k|k)作用于系统,然后在k+1时刻重复上述过程。这种"反复求解、只取第一步"的策略,使得MPC具备了闭环反馈特性,能够应对模型误差和外部扰动。

1.2 MPC的发展历程与主要流派

模型预测控制的发展可以追溯到20世纪70年代。1978年,Richalet等人提出了基于脉冲响应的模型算法控制(MAC);1980年,Cutler和Ramaker提出了基于阶跃响应的动态矩阵控制(DMC)。这些早期的MPC算法主要应用于炼油和石化行业,因为这类过程具有明显的多变量耦合、大惯性和约束限制,传统PID难以取得满意效果。

进入80年代,Clarke等人提出了广义预测控制(GPC),引入了CARIMA模型和自适应机制,使得MPC能够更好地处理非最小相位系统和时变过程。与此同时,状态空间MPC的理论框架逐渐建立,为后续的稳定性分析和鲁棒性设计奠定了基础。90年代,Mayne、Rawlings等学者系统地研究了MPC的稳定性条件,提出了终端约束和终端代价函数的设计方法,使得MPC从"工程实用技术"上升为"具有严格理论保证的控制方法"。

进入21世纪,MPC的研究热点不断拓展:非线性MPC(NMPC)处理强非线性系统;鲁棒MPC(RMPC)应对模型不确定性;分布式MPC(DMPC)解决大规模互联系统的协调控制;显式MPC(explicit MPC)通过多参数规划将在线优化转化为查表问题,大幅降低了计算负担。近年来,随着嵌入式处理器算力的提升和高效QP求解器的发展,MPC已广泛应用于汽车、机器人、无人机、电力电子等快速动态系统。

发展阶段 代表算法 核心特征 典型应用
1970s 萌芽期 MAC / DMC 基于非参数模型,工程实用导向 炼油、化工
1980s 奠基期 GPC / 状态空间MPC 引入自适应与状态空间框架 过程控制、电力
1990s 成熟期 终端约束MPC 稳定性理论完善,鲁棒性分析 航空航天、精密控制
2000s+ 拓展期 NMPC / DMPC / 显式MPC 非线性、分布式、嵌入式实现 自动驾驶、机器人、电力电子

1.3 MPC的工业应用价值

MPC之所以在工业界获得广泛认可,根本原因在于它能够直接处理实际工程中最棘手的三个问题:多变量耦合、硬约束和优化目标。在炼油厂的常压蒸馏塔中,多个产品质量指标(如石脑油干点、柴油凝点)相互耦合,且受到进料流量、塔顶温度、回流量等多个操作变量的影响。传统PID回路间存在严重的相互干扰,而MPC通过集中优化,能够同时协调多个回路,实现整体最优。

在约束处理方面,MPC的优势尤为突出。例如,在化学反应器中,反应温度必须严格控制在安全范围内,同时催化剂活性要求温度不能过低,而产品质量要求温度波动尽可能小。MPC可以在优化目标中同时纳入这些约束,在保证安全的前提下追求最优性能。相比之下,PID只能通过限幅或分段控制来近似处理约束,效果远不如MPC的显式约束优化。

从经济效益角度看,MPC的应用通常能带来1%-5%的产能提升或能耗降低。以一套年产值10亿元的石化装置为例,即使仅提升1%的产能,年收益增加也达到1000万元,而MPC项目的实施成本通常在几十万到几百万元之间,投资回报率非常可观。这也是为什么大型流程工业企业(如中石化、巴斯夫、壳牌)普遍将MPC作为标准配置。

应用场景判断:当被控对象满足以下条件时,MPC通常是比PID更优的选择:① 多变量强耦合;② 存在显式约束(执行器饱和、安全边界);③ 有可用的动态模型;④ 采样周期允许在线优化计算(通常要求采样时间大于1ms)。

1.4 本课程学习路径与工具准备

本课程共30章,按照"原理→设计→实现→应用"的逻辑组织内容。前8章聚焦MPC的理论基础,包括状态空间模型、预测原理、优化问题建模、约束处理、稳定性分析等;第9-16章深入各类MPC变体,如DMC、GPC、非线性MPC、鲁棒MPC、显式MPC等;第17-24章转向工程实现,包括QP求解器选型、嵌入式部署、代码生成、硬件在环仿真等;第25-30章通过完整案例(如车辆轨迹跟踪、无人机控制、温度控制、四水箱实验平台等)将前面积累的知识融会贯通。

在学习工具方面,本课程主要使用Python和MATLAB两种语言。Python生态中,NumPy和SciPy提供基础的数值计算能力,CasADi和do-mpc是专门用于MPC建模与求解的库,OSQP和qpOASES是高效的QP求解器,matplotlib用于结果可视化。MATLAB方面,Model Predictive Control Toolbox提供了完整的MPC设计、仿真和代码生成功能,适合快速原型验证。建议学习者同时掌握两种工具:用MATLAB快速验证算法思路,用Python进行深度定制和嵌入式部署。

# Python环境推荐安装包(建议使用conda创建虚拟环境)
conda create -n mpc python=3.10
conda activate mpc
pip install numpy scipy matplotlib control
pip install casadi osqp qpsolvers
pip install do-mpc  # 可选,用于快速MPC原型

对于MATLAB用户,建议安装R2022b或更高版本,并确保安装了Model Predictive Control Toolbox和Optimization Toolbox。如果条件允许,可以额外安装Simulink用于后续的硬件在环仿真。

学习建议与常见误区

在学习MPC的过程中,初学者容易陷入几个误区。第一个误区是"重算法轻模型"——认为只要MPC算法实现正确就能获得好的控制效果,而忽视了被控对象建模的重要性。事实上,模型失配是MPC性能下降的首要原因,本课程将在第5章和第14章专门讨论模型辨识与鲁棒设计。第二个误区是"盲目追求最优"——MPC的优化目标函数中Q和R矩阵的选取需要结合工程经验,过大的Q会导致控制过于激进,过大的R则会使响应过于迟缓,本课程第7章将给出系统的整定方法。第三个误区是"忽视计算效率"——在实际部署中,MPC的在线求解必须在采样周期内完成,否则会导致控制失效,本课程第20章将专门讨论实时求解技术。

风险提示:MPC不是万能的。对于采样周期极短(小于1ms)的超高速系统,或者无法获得可靠模型的复杂过程,传统PID或自适应控制可能更为合适。此外,MPC的在线优化问题可能存在无解或不可行的情况,需要设计合适的约束松弛机制,这一点将在第9章详细讨论。

为了帮助学习者建立直观感受,我们以一个简单的双容水箱液位控制为例进行说明。假设两个串联水箱的截面积分别为A₁=0.5m²和A₂=0.3m²,入口流量q_in为控制输入,第二个水箱的液位h₂为被控输出,两个水箱之间的连接管路存在阻力。该系统的状态空间模型为:

dh₁/dt = (q_in - k₁·√h₁) / A₁
dh₂/dt = (k₁·√h₁ - k₂·√h₂) / A₂

其中k₁和k₂为流量系数。这是一个典型的非线性MIMO系统(虽然此处简化为SISO),且存在执行器饱和约束(q_in ∈ [0, 0.02] m³/s)和液位安全约束(h₂ ≤ 1.2m)。使用PID控制时,由于系统的非线性和约束,很难在所有工况下获得一致的良好性能;而使用MPC,只需在优化问题中显式加入这些约束,即可在保证安全的前提下实现快速、无超调的液位跟踪。本课程第26章将完整实现该案例的MPC控制器。