1. 课程导入
欢迎进入《MPC约束优化与滚动控制》课程。模型预测控制(Model Predictive Control,MPC)并不是一个孤立的算法,而是一套把模型预测、约束优化、滚动时域执行三者结合起来的控制方法论。它最早在工业过程控制中成熟,随后进入汽车、航空航天、机器人、能源与嵌入式系统,成为处理多变量、强约束、多目标问题的核心工具。本章不急于推导公式,而是先建立全局认知:MPC到底解决什么问题,它的核心思想是什么,后续30章将如何展开。
1.1 MPC的定义:用模型“预演”,在约束内“择优”
MPC在每个采样时刻,基于当前状态和系统模型,预测未来一段时间内的输出或状态轨迹,并求解一个有限时域的最优控制问题。这个优化问题通常包含三部分:目标函数(如跟踪误差最小、控制量平滑、能耗最低)、系统动力学约束(状态转移关系)、物理与安全约束(执行器饱和、速度/位置限制、温度/压力上限)。求解后,只把最优控制序列的第一个元素作用于系统;下一时刻,用新的测量状态重新预测、重新优化。这种“只执行第一步”的机制,就是滚动时域(Receding Horizon)策略。
一句话概括:MPC = 预测模型 + 滚动优化 + 反馈校正。模型负责“看得远”,优化负责“选得优”,滚动负责“走得稳”。
1.2 发展历程:从工业过程到嵌入式实时控制
MPC的发展大致经历四个阶段。20世纪70年代,工业界提出动态矩阵控制(DMC)和模型算法控制(MAC),主要面向慢速过程,用脉冲/阶跃响应模型做预测,在线计算量可控。80年代至90年代,状态空间模型与二次规划(QP)结合,形成广义预测控制(GPC)等框架,理论分析逐步完善。2000年以后,显式MPC、快速QP求解器和自动代码生成技术兴起,使MPC进入毫秒级甚至微秒级场景。近年来,非线性MPC、鲁棒MPC、学习增强MPC与分布式MPC成为研究热点,应用边界不断扩展。
| 阶段 | 代表方法 | 模型形式 | 典型场景 |
|---|---|---|---|
| 1970s—1980s | DMC、MAC | 脉冲/阶跃响应 | 化工、炼油过程 |
| 1990s—2000s | GPC、状态空间MPC | 线性状态空间 | 过程工业、电力 |
| 2010s | 显式MPC、快速QP | 线性/分段仿射 | 汽车、电机、嵌入式 |
| 2020s至今 | 非线性/鲁棒/学习MPC | 非线性、数据驱动 | 机器人、自动驾驶、能源 |
1.3 核心思想:滚动时域中的“约束优化闭环”
理解MPC,关键要抓住“预测—优化—执行—反馈”的闭环。下图展示了第k时刻的滚动控制逻辑:测量当前状态x(k),在预测时域N内构造优化问题,求解得到控制序列u(k), u(k+1), …, u(k+N-1),仅将u(k)施加到被控对象;下一时刻k+1,用新状态重复上述过程。图中同时标出了约束边界与参考轨迹,说明MPC不是“无约束最优”,而是在可行域内寻找最优。
1.4 方法流程:从建模到部署的六个关键环节
一个完整的MPC工程通常包含以下步骤。第一步,明确控制目标与被控变量,确定采样周期。第二步,建立预测模型,可以是机理模型、辨识模型或数据驱动模型。第三步,设计目标函数与约束,把工程需求翻译成数学表达式。第四步,选择求解器与离散化方法,把连续问题转化为QP或NLP。第五步,进行闭环仿真与参数整定,重点检查预测时域、控制时域、权重矩阵和约束松弛。第六步,生成嵌入式代码并部署,验证实时性与数值稳定性。
# MPC单步求解伪代码
for k in range(total_steps):
x_k = measure_or_estimate()
U_opt = solve_mpc(x_k, N, constraints, weights)
u_k = U_opt[0]
apply_control(u_k)
update_system_state()
学习建议:先建立“预测—优化—滚动”的直觉,再深入QP、约束处理与稳定性理论。不要一开始就陷入矩阵推导,否则容易失去对控制逻辑的整体把握。
1.5 案例场景:为什么MPC适合约束优化
以自动驾驶横向控制为例。车辆需要跟踪车道中心线,同时受到方向盘转角限制、前轮侧偏角限制、执行器速率限制。传统PID在弯道和低附着路面容易超调或振荡,而MPC可以在预测时域内提前“看到”弯道曲率,在约束边界内规划出平滑的转向序列。再如无人机姿态控制,电机推力有上限,姿态角有安全范围,MPC能在多约束下协调俯仰、滚转和偏航。工业锅炉控制中,温度、压力、燃料阀开度相互耦合,MPC可同时优化能耗与排放。这些场景的共同点是:多变量、强约束、目标冲突,这正是MPC的用武之地。
1.6 常见误区与复盘
- 误区一:MPC一定比PID好。如果系统简单、约束少、模型不准,PID可能更鲁棒、更易维护。MPC的优势在约束与多变量协调,不是万能替代。
- 误区二:预测时域越长越好。时域过长会增加计算量,且远未来预测误差大。需要根据系统动态和实时性折中。
- 误区三:模型越精确越好。模型精度与计算复杂度、辨识成本相关。鲁棒MPC和管束MPC正是为处理模型不确定性而设计。
- 误区四:忽略可行性。约束过紧或初始状态不可行时,优化问题无解。工程中常引入松弛变量和软约束,保证控制器始终有输出。
复盘要点:MPC的落地难点往往不在算法本身,而在建模、约束定义、实时求解和参数整定。后续章节将围绕这些工程痛点逐一展开。
1.7 课程框架与学习目标
本课程共30章,整体分为五个模块。第一模块建立MPC基本概念与数学基础;第二模块深入预测模型、目标函数与约束建模;第三模块讲解QP求解、显式MPC与实时实现;第四模块覆盖非线性MPC、鲁棒MPC与学习增强MPC;第五模块通过自动驾驶、机器人、能源等案例完成综合实战。学习完本课程,你应能够:独立建立线性/非线性MPC问题,选择合适的求解器与参数,分析闭环稳定性与可行性,并完成从仿真到嵌入式部署的基本流程。