Model Predictive Control (MPC)
了解模型预测控制(MPC)如何预测结果、在约束条件下优化动作,并在机器人技术和建筑控制中与计算机视觉协同工作。
模型预测控制 (MPC) 是一种选择行动的方法,其原理是预测系统在未来一段时间内将如何反应,选择最佳的行动序列,并仅执行第一步。然后,模型预测控制 (MPC) 会测量实际发生的情况并再次进行规划。想象一下一个接近转弯的仓库机器人:它不是仅根据当前位置进行转向,而是考虑不同的转向选择会将仓库机器人带到哪里,以及这些路径是否会避开附近的货架。
模型预测控制 (MPC) 如何工作?#
模型预测控制 (MPC) 控制器需要一个状态(例如机器人的位置和速度)、一个动力学模型(用于预测行动如何改变该状态)以及一个目标(用于描述良好的结果)。其优化过程可能倾向于到达目的地,同时对突然的转向进行惩罚。约束则会排除或抑制不可接受的行为,例如超过马达的速度限制或进入已被占用的空间。
在每个控制间隔,模型预测控制 (MPC) 都会跨越预测视界预测候选行动的后果。模型预测控制 (MPC) 会选择综合成本最低的序列,应用其第一项行动,并使用更新后的测量结果进行重复。这种重复的重新规划被称为滚动视界控制。MathWorks 模型预测控制 (MPC) 简介阐释了这种反馈循环;其采样时间和视界指南解释了为什么向前看更远可以提高预见性但会增加计算量。
并不存在单一的通用“模型预测控制 (MPC) 公式”。用通俗的语言来说,控制器在其视界内最小化目标跟踪误差和行动成本的预测总和,并受其模型和约束的限制。do-mpc 模型预测控制 (MPC) 解释还展示了这一理念如何扩展到非线性系统,因为非线性系统的响应无法通过简单的线性模型得到充分表示。
模型和测量结果贡献了什么?#
动力学模型预测的是后果,而不一定是图像。动力学模型可能会估计当车轮速度改变时机器人的位置如何变化,或者房间的温度如何对供暖和室外天气做出反应。动力学模型的参数可以来自物理知识、测量数据或预测建模。学习模型并不能消除测试其预测在操作环境中是否保持准确的需求。
测量结果会纠正计划。摄像头可能会显示障碍物,但图像检测并不自动成为可用的物理位置。控制器可能需要摄像头校准、距离信息和一个状态估计器来将观测结果与运动历史结合起来。卡尔曼滤波器是一种可能的估计器;MathWorks 控制器状态估计指南解释了为什么模型预测控制 (MPC) 经常估计其无法直接测量的状态。重新规划有助于应对不完美的预测,但它本身无法使延迟或不可靠的观测变得安全。
模型预测控制 (MPC) 应用于何处?#
- 仓库机器人导航: 移动机器人使用摄像头观测结果和自身的运动估计来规划绕过工人和货架的短路径。模型预测控制 (MPC) 控制器可以针对行进时间目标和运动限制比较转向和速度序列,然后在人员移动时修改其选择。Nav2 预测控制器文档提供了一个评估预测轨迹的实际机器人技术示例。
- 建筑气候控制: 建筑控制器可以预测供暖或制冷决策将如何在未来几个小时内影响室温。入住率估计和天气预报可帮助其在平衡能源使用和舒适度限制的同时为需求做好准备。美国能源部建筑传感器和控制概述描述了机器学习与预测控制的这种结合。
在这两种情况下,好处都不仅仅在于预测。模型预测控制 (MPC) 使用预测在运营限制内选择行动,然后根据下一次观测检查其计划。
模型预测控制 (MPC) 与相关概念有何不同?#
世界模型表示环境可能如何演变;模型预测控制 (MPC) 是一种控制程序,它使用动力学模型来比较可能的行动。强化学习通常从经验中学习如何行动,而模型预测控制 (MPC) 在运行期间明确地解决前瞻性规划问题。它们可以结合使用:学习到的模型可以提供模型预测控制 (MPC) 的预测。
同样,对象跟踪估计对象在各个帧中的位置;它不选择转向命令。跟踪可以向模型预测控制 (MPC) 提供观测结果,但控制器仍然需要运动模型、目标、约束和优化方法。MathWorks 约束指南区分了硬限制与允许受惩罚违规的软约束。
计算机视觉如何支持模型预测控制 (MPC) 管道?#
Ultralytics YOLO26可以通过对象检测提供感知输入。此记录的推理工作流返回单张图像的边界框:
from ultralytics import YOLO
# Load a pretrained detection model.
model = YOLO("yolo26n.pt")
# Observe objects in the current image.
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
# Inspect image-space locations available to a perception pipeline.
print(result.boxes.xyxy)输出给出图像空间中的框坐标——而不是距离、速度或控制命令。对于移动场景,YOLO 跟踪模式可以帮助维持对象身份,而深度估计可以提供距离估计。单独的估计和模型预测控制 (MPC) 系统必须将合适的观测结果转化为状态,预测行动结果,解决受约束的优化问题,并向硬件发出命令。
在部署之前,请测试完整的感知到行动循环是否在其控制间隔内完成。评估漏检、模型不匹配以及约束使计划不可行的案例;设置定义的后备行为,而不是假设优化器总是返回安全命令。









