Contents — find the section you need
模型预测控制 (MPC) 预测当前指令在接下来的步骤中会产生什么影响,选择一组能够最佳平衡跟踪性能和控制力并满足约束条件的指令序列,仅执行第一个指令,然后再次测量并求解。这种滚动时域控制方法在输入有限制、状态变量有安全边界、输入之间存在交互作用或未来曲线变化和延迟至关重要的情况下非常有效。它被广泛应用于从过程控制工厂到车辆、机器人运动和能源系统等领域。
MPC 并非 PID 控制的通用替代方案。即使数学约束看起来完备,预测优化器如果存在状态估计延迟、模型错误、问题不可行或错过截止时间等问题,也不会变得安全。许多合理的架构在 MPC 之下保留了快速 PID 电流/速度控制回路,用于路径、能量、热力或多变量协调。请阅读ROS 2入门指南了解执行边界,并阅读Visual SLAM入门指南了解移动机器人控制器所需的时序和定位假设。
实际结论
-
根据状态x和输入u构建视界N,并将输入、输入速率、状态和安全约束纳入优化过程,而不是事后对无约束指令进行截断。
-
在部署之前,明确求解器延迟、数值化或不可行时的应对措施。截止时间、回退机制和独立停止行为都是控制器的组成部分。
-
从能够预测相关时间尺度的最小模型开始。更大的模型可能会增加运行时间、识别误差和维护成本,而不会改善决策质量。
-
根据明确的运行优先级调整预测时域和权重:安全裕度、跟踪、能量、磨损、舒适性和计算能力——而不是盲目地提高跟踪权重。
直觉:在转弯前决定刹车
一个简单的反馈控制器可以在检测到横向误差后转向。模型预测控制 (MPC) 可以综合考虑前方弯道、速度、转向范围、轮胎极限、加速度和障碍物间隙。它评估候选的转向和加速序列,选择一个仍在可行域内的序列,仅执行第一个动作,然后在新的测量结果到达时丢弃旧的预测。因此,MPC 不是预言家。它是一种反馈控制,反复检验关于未来的短期假设。
信号流和滚动时域
图示:Duskcoil,概念图而非测量图。预测轨迹是基于模型的候选轨迹,必须在应用动作后通过观察进行更新。
最小线性 MPC 公式
对于离散线性模型
x 为状态,u 为输入,w 为扰动,y 为输出。在预测范围 N 内(参考 r),常用的二次成本函数为:
其中 \Delta u_k=u_k-u_{k-1} 和 Q,R,S,P 分别表示状态跟踪、指令幅度、突变和终端行为的重要性。这些是以数学形式呈现的工程优先级。例如,仅惩罚横向误差可能会导致剧烈的转向,这对乘客、轮胎或执行器来说是不可接受的。
与无约束调节器的主要区别在于显式可行集:
这些边界可以表示转向、电流、温度、关节角度、电池状态、压力或障碍物间隙。约束之间可能存在冲突。应保持不可违背的碰撞或硬件限制为硬约束;仅对有意放宽的约束使用非负松弛变量 \epsilon\ge0,并对其进行惩罚,例如: \rho\lVert\epsilon\rVert^2。记录何时使用了松弛约束:软约束是一种声明的妥协,并非证明违反约束无害。
估计、延迟和模型失配
MPC 基于 x_k 进行预测,但该状态通常是传感器融合估计。对于使用视觉 SLAM 的移动机器人,定位延迟、重定位跳跃和不一致的帧会破坏每次优化的初始状态;参见视觉 SLAM 入门。使用旧状态和新参考求解理想问题会导致物理延迟的指令。
失配包括摩擦、有效载荷、风、轮胎打滑、热容量变化和未建模的弯曲。响应措施包括扰动状态增强或积分作用、在线参数更新、多模型、鲁棒/管状 MPC 裕量以及快速稳定的内循环。当失配超出设计范围时,以上措施均无法替代独立的停止行为。
调整时域和权重
选择采样时间 T_s 和时域 N,使 NT_s 能够覆盖相关的延迟、停止距离、主要瞬态过程和路径曲率,但又不能过远,以免运行时间和远期模型误差占据主导地位。较短的控制时域可以保持后期输入不变,并减少决策变量。
调整顺序如下:固定单位和硬安全边界;为运行任务选择跟踪权重 Q;提高 R 和 S 以控制能量、磨损和平滑度;然后测量噪声、负载、延迟和干扰下的最坏情况求解时间和不可行解。在选择工作点之前,测试短时域 N 和长时域。将 Q 的值提高到系统“看起来很快”的程度,会导致优化器停留在硬约束边界上,即使约束条件得到满足,也几乎没有裕度。
| 观察 | 可能原因 | 首先检查 | 典型操作 |
|---|---|---|---|
| 曲线后期 | 预测范围过短;状态延迟 | 预测路径与测量路径、时间戳 | 调整预测范围、速度计划、延迟处理 |
| 锯齿状指令 | S 值低;估计噪声较大 | \Delta u 和传感器跟踪 | 增加移动惩罚;改进估计器/滤波器 |
| 频繁的松弛/限制 | 不匹配;无裕度 | 松弛、活动约束、干扰 | 增加裕度、干扰模型、更柔和的参考 |
| 无解 | 约束冲突 | 求解器状态和活动集 | 定义不可行策略;放宽仅允许的边界 |
| 错过截止时间 | 问题过大/变量过多 | 最坏情况求解时间 | 缩小模型/范围;配置求解器 |
与 PID 和安全性的关系
MPC 回路可能以 10–100 Hz 的频率运行,以发出速度、姿态或轨迹参考值,而电机驱动器或 ros2_control PID 回路则以更高的频率闭合电流、速度或位置信号。MPC 必须了解内环的实际性能:饱和度、延迟、超时和跟踪限制。如果优化器响应过慢或不可行,则下环需要一个已定义的安全参考值,例如零速、受控减速或保持。
安全保护必须独立于优化器:紧急停止、碰撞检测、硬行程限制、过流/过温保护、速度监控和通信监控。定义针对缺失求解、数值错误、过时状态、无效参考值和估计器故障的响应。优化模型中的可行性与实际安全性并不相同。
当前软件、产品和研究示例
模型预测控制 (MPC) 已从连续流程工业扩展到车辆、机器人和能源管理领域。已部署的实现方案包含求解器、模型辨识、状态估计、监控和截止时间管理,而不仅仅是成本函数。OSQP 发布了一个开源的凸二次规划求解器和面向 MPC 的资料。MathWorks 的 MPC 概述 描述了预测、约束和重复优化结构。它们是主要的实现参考,而非产品推荐。
在机器人方面,ros2_control 管理硬件接口、控制器生命周期、异步更新问题和控制器链。将 MPC 节点添加到 ROS 2 中本身并不能建立实时调度、状态/参考时间戳对齐或安全独立的底层循环。当前研究方向包括非线性模型预测控制(MPC)、学习动力学、分域鲁棒MPC以及联合感知-规划优化;运行时间、可解释性、不确定性和安全性仍然是实际应用中的限制因素。
实现清单
-
定义状态、输入、扰动和参考的单位、帧、更新率、延迟、新鲜度、视界(N)和移动权重(S)。
-
将硬性物理约束与有意设置的软性操作约束区分开来。
-
测试最坏情况下的求解时间、超时、不可行解以及数值失败回退机制。
-
在同一时钟周期内记录预测值、测量值、输入序列、激活约束、松弛时间和求解器状态。
-
注入失配、扰动、滑移、传感器延迟/丢失和通信丢失。
-
确保MPC能够理解内循环饱和,并且在MPC、ROS 2或估计失败时,独立的停止保护机制能够正常工作。
首先在仿真中测试的边界情况
模型预测控制 (MPC) 在仿真中可以生成有吸引力的轨迹,因此仅凭常规条件可能会掩盖危险的假设。应自动处理参考系突变、摩擦力和有效载荷变化、执行器饱和、延迟或缺失的测量以及有意缩短的求解器截止时间。记录哪些约束条件被激活、进入安全回退状态所需的周期数以及做出该决定的信号。在硬件上以低速运行,并留出充足的输出裕量,同时监控残差、饱和时间、松弛时间和停止距离,而不仅仅是求解器的成功标志。
是否执行了整个优化后的输入序列?
通常只应用第一个输入,然后使用新的观测值再次求解问题。
这包含了与预测的偏差。
评论
请先登录。
暂无数据。