TMS BOOK · ACADEMY 讲义

模型预测控制(MPC)在热管理中的应用

大纲的完整展开版——讲师授课蓝本 / 学员自学材料

K3-06 模型预测控制(MPC)在热管理中的应用

课程代码 K3-06 · 板块 K 控制、软件与标定 / K3 控制策略与算法 时长 约 4.0 小时(5 讲 + 1 次简化 MPC 问题搭建实操) 适合对象 控制工程师、仿真工程师(主修,预研方向选修课题);热管理域控软件架构师与算法预研负责人(主修);负责判「这个项目要不要上 MPC」的技术管理岗(选修,重点读第 1 讲与第 5 讲)。需已能整定一条 PID 环、能读懂状态空间形式、知道什么叫二次规划 前置 K3-05 PID/前馈/增益调度控制实战 PID/前馈/增益调度控制实战(θ_total 与 τ_plant 的合账方法与「调不动时往哪走」的判据,本课直接接在它第 7 讲的出口上);K3-10 热管理在线状态与负荷估计:观测器整定、软测量置信度与退出条件 热管理在线状态与负荷估计:观测器整定、软测量置信度与退出条件(不可测状态与不可测扰动的在线获取途径及其误差界——MPC 的鲁棒性上限由估计精度决定)。体系外前置(需自备):线性代数与最小二乘、离散时间系统与 Z 域基本概念、凸优化与二次规划的基本词汇(不要求会推 KKT 条件) 本讲义定位 讲师授课蓝本 / 学员自学讲义。本课是工程落地课,不是 MPC 理论课——不推稳定性证明、不推递归可行性定理、不推 KKT 与内点法。它只回答四件事:这个场景该不该上 MPC、模型骨架怎么搭、代价函数与约束怎么写、求解不出来时谁来兜底


按任务导航

你手上的事 直接看 还要配
领导说「上个 MPC 试试」,我要判该不该接 第 1 讲 1.4:三道前置筛,逐道给拦截判据 第 5 讲 5.1:四账对照与三档结论
PID 调不动了,想知道下一步往哪走 第 1 讲 1.4 筛一:θ_total/τ_plant 比值(口径来自 K3-05 PID/前馈/增益调度控制实战) 第 1 讲 1.3:MPC 买得到什么、买不到什么
两条环互相打架,有人说「上 MPC 就解耦了」 第 1 讲 1.4 筛二:先做通道配对与耦合强度评估 常见误区第 1 条:耦合不是只能靠 MPC 解
要搭一个电池预热的 MPC 模型骨架 第 2 讲 2.2 / 2.3:x/u/d/y 划分与二阶 RC 骨架 关键公式详解 · 公式一
环境温度、车速这些量该放哪一栏 第 2 讲 2.2:可测扰动 d 与不可测扰动 w 的分叉 第 5 讲 5.4:未来 d 轨迹从 K7-01 预测性热管理(导航/云端/驾驶意图协同) 来
状态测不到,只有估计值 第 2 讲 2.5:估计器接口三件套与约束收缩 图7:估计误差怎么吃掉硬约束裕度
代价函数的权重怎么调 第 3 讲 3.2:先归一化,再只调一个比值 第 3 讲 3.1:三项各改变轨迹的哪一处
阀开度下界该写 0 还是写别的 第 3 讲 3.3:u 的上下界取自执行器权限表 常见误区第 6 条:u_min 写 0 的连锁后果
优化器报「无可行解」,控制器直接不动了 第 3 讲 3.3 软约束段 + 3.5 可行性 第 4 讲 4.5:不可行时的三条兜底路径
N_p 和 N_c 到底取多少 第 4 讲 4.2:三方夹逼,上下界各有物理来源 图10 与关键公式详解 · 公式五
ECU 算不动,一到快充就丢帧 第 4 讲 4.3 / 4.4:求解预算与四条降算力折中 第 4 讲 4.4 末:定迭代上限的代价
要写功能安全的兜底论证 第 4 讲 4.5:限值保护层与求解器内约束是两件事 第 4 讲 4.6:横向隔离,输入不得取自优化器
要向项目组证明「上了 MPC 到底赚了多少」 第 5 讲 5.1 / 5.2:四账 + 收益拆分 A/B 第 5 讲 5.3:必须上车的四个在线观测量

⛔ 本课不覆盖 · 栏一(不讲哪些题目,每样带去向):【控制方法本体】PID 结构形态、限幅三件套、整定式与整定路线、前馈设计、增益调度、无扰交接 → K3-05 PID/前馈/增益调度控制实战(本课是它第 7 讲的出口之一,⛔ 不重讲);通道配对、RGA 计算与耦合强度评估、解耦前馈的设计 → K3-14 多回路耦合识别与通道配对:谁控谁、耦合多强、抢控怎么查(它是本课前置筛二的属主,本课只调用它的结论、⛔ 不重推);模式表、迁移矩阵、双向执行器权限表、限值保护层的结构本体与横向隔离原则 → K3-01 整车热管理控制策略总览与模式管理(本课只说 MPC 的输出如何接进这条通道);稳态执行器需求生成与协同仲裁 → K3-08 冷却侧执行器需求生成与协同仲裁:电子水泵/冷却风扇/AGS;模式切换的时间轴编排 → K3-09 冷却液回路模式切换的执行时序:泵—阀联动、断流窗口与切换序列表;整车级能量最优的分层调度 → K3-07 能量最优的整车协调控制。【模型与估计】降阶方法本体、ROM 生成与验证、控制导向建模的一般方法学 → J7-02 模型降阶(ROM)与控制导向建模;一维系统仿真模型的搭建与标定 → J1-01 1D 热管理仿真导论(KULI/AMESim/GT/Flowmaster);数字孪生的融合架构与实时约束 → J7-04 整车热管理数字孪生与实时模型;观测器结构选型、Q/R 整定、残差带工况化、置信度分档与退出状态机 → K3-10 热管理在线状态与负荷估计:观测器整定、软测量置信度与退出条件(本课只取它的交付三件套并说明如何计入约束裕度);误差带到裕度的折算关系本体 → B4-04 整车能量管理与热管理的协同优化。【软件与安全】嵌入式任务架构、周期与抢占、WCET 与实时性论证 → K4-01 热管理嵌入式软件架构与 AUTOSAR 基础;Simulink 建模与代码生成、定点化 → K4-02 基于模型开发(MBD):Simulink 建模与代码生成;构型合法性与状态机可验证性 → K4-05 模式状态机的完备性核对与可验证性设计;降级等级体系与资源仲裁 → K5-02 热管理故障处理与降级策略;数据驱动件的「能力不足型」风险与预期功能安全论证方法学 → K2-05 预期功能安全(SOTIF/ISO 21448)与 AI 件安全论证在热管理的落法;控制器硬件与算力选型 → K2-01 热管理控制器(域控/ECU)硬件架构。【上游数值】电芯与部件的温度限值本体 → D1-01 动力电池产热机理与产热速率建模;执行器的死区、最小可控输出、降额线 → K1-02 执行器驱动:电子阀/泵/风扇/压缩机 PWM / G4-01 电子膨胀阀(EXV)结构、控制与选型 / G1-02 压缩机排量、转速控制与容调;快充场景的冷量分配与充电协商 → D4-03 充电过程温控策略与充电功率协同。【下游】外部预测信息源(导航/云端/驾驶意图)与预测性热管理的场景层 → K7-01 预测性热管理(导航/云端/驾驶意图协同)(分工见第 5 讲 5.4);黑箱形态的能效自学习 → K7-03 数据驱动的能效自学习控制;标定量规格与整定验收 → K6-01 热管理标定流程与工具(INCA/CANape) / K6-07 热泵与多模式切换标定;台架瞬态复现 → L2-04 冷却系统台架热性能试验:负载标定、散热能力与模式切换瞬态;工程收益的货币化与投资回收 → M3-05 工程收益的货币化与热管理投资回收决策:换算率来源、现金流折现与两种盈亏平衡口径。

⛔ 本课不覆盖 · 栏二(真正不给的数):① 任何权重矩阵的具体数值——W_y、W_Δu、W_N 的元素是平台相关的标定量,且它们只有比值有意义(第 3 讲 3.2 给的是归一化后的整定路线,不是数值);谁拿出一份「推荐的 MPC 权重」,那份东西一定不对应你的平台。② 目标 ECU 上的 QP 求解耗时——它由芯片、编译选项、求解器实现、问题规模四者共同决定,本课给的是量级区间与怎么量,⛔ 不给可以直接抄的数(第 4 讲 4.3)。③ 电芯温度上限与部件限值的数值——属主是 D1-01 动力电池产热机理与产热速率建模 与各部件规格书,本课只负责它在优化框架内的数学表达。④ 本课不引用任何标准条款的具体内容——功能安全相关的兜底要求只写去向,版次、部次以现行目录为准,引用前须核原文(说明见第 4 讲 4.5 末)。

⚠ 栏二之外的平台相关量(控制周期 T_s、预测时域 N_p、控制时域 N_c、约束收缩量、求解迭代上限、限值层介入率的告警阈值等)本课照给典型区间与常见值锚点,逐条标「⚠ 典型值、⛔ 不是验收依据,须实测确认」与拿到它的路。汇总表在第 1 讲 1.6。


引言:一次「上 MPC 也救不了」的快充预热

某纯电平台,冬季快充前电池预热。原方案是固定加热功率 + 一条 PID 环压电芯温度,标定阶段两头不讨好:功率给足,电芯最热点冲过上限触发保护回退,加热断断续续;功率给保守,到桩之后还要再等两三分钟才能开始大功率充电,用户抱怨「说好的预热白预热了」。

标定组调了三轮 PID,症状原地打转。预研组提出:这是典型的「有硬约束、有硬终点时刻、还有大热惯性」的场景,上 MPC。

项目组批了预研。三个月后的结论出乎所有人意料:MPC 版本在台架上确实更好——但把它拆开之后发现,绝大部分收益来自一件与 MPC 无关的事。

拆解是这样做的。把 MPC 相对原方案多出来的东西列成三样,逐样单独做一次 A/B:

  • 前瞻——原方案的加热功率只看当前温差;MPC 用了「距离到桩还有多久」这条未来信息。单独把它加进原方案(做成一条按剩余时间调度的功率前馈),拿回了大部分的到达时间改善。
  • 约束显式处理——MPC 把电芯温度上限写进优化问题,会提前减功率而不是撞上去再退。单独把它加进原方案(把保护阈值前面加一段按预测温升的提前减载),拿回了大部分的越界次数改善。
  • 多变量协调——这个场景只有一个执行器(加热回路功率),协调项本来就没有可协调的东西,收益接近零。

三样加起来,原方案改造版拿到了 MPC 版八成以上的收益,而建模工时、ECU 算力占用、退出路径复杂度这三笔成本一分钱没花。

这门课要教的第一件事,就是这个拆解本身。它不是在劝退 MPC——恰恰相反,只有会做这个拆解的人,才说得清一个场景为什么值得上 MPC,也才拿得到项目预算。剩下的那不到两成收益,在有些平台上是可以忽略的,在另一些平台上(多热源、多约束同时活跃)它会放大成压倒性的差距。

⇒ 所以本课的顺序是:先教怎么把 MPC 挡在门外(第 1 讲),再教怎么把它做对(第 2~4 讲),最后回到怎么证明它值(第 5 讲)。


全课符号约定与两条跨课口径提醒

本课全程使用下表符号。⚠ 其中两条与其他课有交叉,必须先说清楚,否则读者会把两门课的量直接互代。

符号 含义 单位 口径归属
x[k] 状态向量(第 k 拍) 各分量随物理量 本课定义,见第 2 讲 2.2
u[k] 控制输入向量(执行器指令) 各分量随执行器 本课定义
Δu[k] 控制增量,Δu[k] = u[k] − u[k−1] 同 u 本课定义
d[k] 可测扰动向量(环境温度、车速、充电功率请求等) 各分量随物理量 本课定义
w[k] 不可测扰动与模型失配的合并项 同 x 的量纲 本课定义
y[k] 被控输出(受控量) 各分量随物理量 本课定义
A, B, E, C 离散状态空间的四个矩阵 无量纲/复合 本课定义,见公式一
N_p 预测时域(步数) 拍 本课定义,见第 4 讲
N_c 控制时域(步数),N_c ≤ N_p 拍 本课定义
T_s MPC 的控制周期(一拍的时长) s 本课定义
J 代价函数值 无量纲(归一化后) 本课定义,见公式二
W_y 跟踪误差项的权重矩阵 无量纲(归一化后) 本课定义,⚠ 见下方提醒①
W_Δu 控制增量惩罚项的权重矩阵 无量纲(归一化后) 本课定义,⚠ 见下方提醒①
W_N 终端代价的权重矩阵 无量纲(归一化后) 本课定义
ε 软约束的松弛变量(非负) 同被松弛量 本课定义,见第 3 讲 3.3
ρ 松弛变量的惩罚权重 复合 本课定义
σ_est 估计误差的标准差(或误差带半宽) 同被估计量 取自 K3-10 热管理在线状态与负荷估计:观测器整定、软测量置信度与退出条件 的残差带,⚠ 见下方提醒②
θ_total 环路的纯滞后总账 s 逐字复用 K3-05 PID/前馈/增益调度控制实战 的口径
τ_plant 被控对象的主导时间常数 s 逐字复用 K3-05 PID/前馈/增益调度控制实战 的口径

⚠ 跨课口径提醒①:本课的 W_y / W_Δu,与 K3-10 热管理在线状态与负荷估计:观测器整定、软测量置信度与退出条件 的 Q / R 不是一回事

MPC 的公开文献里,代价函数的两个权重矩阵几乎总是写成 Q 与 R。而本课程体系里 K3-10 热管理在线状态与负荷估计:观测器整定、软测量置信度与退出条件 已经把 Q 与 R 用掉了——在那门课里它们是卡尔曼滤波的过程噪声协方差与量测噪声协方差,是估计器的整定量,由「长静置段实测」与「可接受的跟踪滞后反推」两条路得到。

两者形式上都是对称正定矩阵、都出现在一个二次型里、都靠调它们的比值起作用,而含义完全不同:

K3-10 热管理在线状态与负荷估计:观测器整定、软测量置信度与退出条件 的 Q / R 本课的 W_y / W_Δu
是什么 噪声的统计描述 设计者的偏好陈述
从哪来 从实测数据量出来(R)、按可接受滞后反推(Q) 由「多目标之间怎么折中」这个工程决定给出
调大 R 的后果 更不信量测,估计更平滑、更滞后 ——(本课无 R)
调大 W_Δu 的后果 ——(那门课无 W_Δu) 执行器动作更柔和,跟踪更慢
有没有「正确值」 有参考——它对应真实的噪声统计 没有——它只反映你想要什么

⇒ 本课因此改用 W_y / W_Δu / W_N 这套记号,⛔ 不用 Q / R。读外部文献时请自行做一次映射:文献里的 Q ↔ 本课 W_y,文献里的 R ↔ 本课 W_Δu(⚠ 有些文献的 R 惩罚的是 u 本身而不是 Δu,这是第三种口径,读到时要看清它到底写的是 u 还是 Δu——本课一律惩罚 Δu,理由在第 3 讲 3.1)。

⛔ 这两套量绝不许互代。一个真实会发生的错法是:估计器整定得到一组「好用的 Q/R」,写 MPC 时顺手把同一组数填进代价函数——它们连量纲都不一样,填进去之后 MPC 的表现是随机的,而且没有任何一处会报错。

⚠ 跨课口径提醒②:σ_est 是从 K3-10 热管理在线状态与负荷估计:观测器整定、软测量置信度与退出条件 拿来的,本课只用它、不产它

本课第 2 讲 2.5 要用估计误差带把硬约束收缩一圈。那个 σ_est 不是本课算的——它是 K3-10 热管理在线状态与负荷估计:观测器整定、软测量置信度与退出条件 交付的残差带(并且是随工况变的,不是一个常数)。本课的责任只有两条:把它要过来,以及把它算进约束里。⛔ 本课不重讲残差带怎么整定,也不重讲置信度怎么分档。

而误差带折算成裕度的一般关系(不止用于 MPC),属主是 B4-04 整车能量管理与热管理的协同优化,本课只做 MPC 场景下的具体落法。


第 1 讲 MPC 解决什么问题,以及上之前的三道前置筛

本讲交付两件:① 一句能对项目组说清楚的「MPC 到底买到了什么」——三样,且只有三样;② 一张三道前置筛的决策流,每道筛给出可判真假的拦截判据。本讲不交付:MPC 的稳定性与可行性理论(本课全程不推)、RGA 与通道配对的算法(属主 K3-14 多回路耦合识别与通道配对:谁控谁、耦合多强、抢控怎么查)、PID 整定方法(属主 K3-05 PID/前馈/增益调度控制实战)。

1.1 先把 PID 的信息面画出来:它到底看得见什么

要说清 MPC 解决什么问题,得先说清 PID 看不见什么。把一条 PID 环在 k 拍能用到的信息摊开:

项 用到的信息 时间方向
比例项 当前误差 e[k] 现在
积分项 误差的历史累积 过去
微分项 误差的变化率(近几拍的差分) 过去到现在的斜率
前馈项(若有) 当前可测扰动 d[k] 现在

⇒ 一条完整的 PID+前馈,用到的全部信息都在「现在及以前」。它对「如果我现在这么动,三十秒后系统会到哪」这件事没有任何表示——它是靠反馈闭环,把这件事交给物理世界去回答,然后再修正。

这个结构在两类场景下会失效,而且失效方式不同:

失效方式一:来不及。环路的纯滞后 θ_total 很大时,误差出现在传感器上的那一刻,导致它的那个动作已经发生在 θ_total 之前。PID 此刻做的任何修正,还要再过 θ_total 才看得见效果。这是 K3-05 PID/前馈/增益调度控制实战 第 2 讲那本延迟总账要合的原因——θ_total 与 τ_plant 的比值接近或超过 1 时,任何整定都只是在振荡与迟钝之间换位置。

失效方式二:撞上去才知道。被控量有硬上限(电芯温度)时,PID 只有在温度已经接近上限、误差已经变号之后才会减小输出。而热惯性意味着此刻回路里已经存了一批还没释放出来的热——温度会继续往上冲一段。这就是引言里那个「冲过上限触发保护回退」的机制。事后加钳位、加保护阈值可以让它不越界,但代价是牺牲了逼近上限的能力:为了不冲过去,只能把工作点压得离上限远一些,那段裕度就是白白让掉的性能。

左右两栏对比同一条大迟延温度环的信息面。左栏 PID+前馈:横轴为时间轴,纵轴为被控温度;k 拍位置画一条竖直的「现在」线,线左侧是已知区(画出实测温度曲线、误差历史、当前可测扰动三条带并各自标注被比例项/积分项/微分项/前馈项使用),线右侧整块涂成灰色并标「不可见」,一条虚线箭头从现在指向右侧灰区上一个撞破温度上限红线的位置,标注「等误差变号时热已在路上」。右栏 MPC:同一坐标系与同一条实测温度曲线,现在线右侧不再是灰区,而是画出 N_p 步的预测轨迹(实线)与备选的另一条预测轨迹(虚线),温度上限红线横贯全图,预测轨迹在触到红线之前就提前拐平,拐点处标注「提前减载发生在此」;右侧另叠一条阶梯状的控制输入序列 u[k]…u[k+Nc-1],只有第一格被涂实并标「只执行这一格」。两栏底部并列一行文字标签:左「信息全部在现在及以前」,右「把未来 N_p 步显式算进来」。示意图,不得据图取值。
图1 该读出两件:① PID 的失效不是「参数没调好」,是它的信息面里根本没有未来——所以在大迟延与硬约束这两类场景下,继续整定参数改变不了结论;② MPC 换掉的正是这一层,它把「现在这么动、未来会到哪」显式算出来。示意图,不得据图取值。

1.2 MPC 的核心机制:滚动时域优化,只执行第一步

MPC 每一拍做三件事,顺序固定:

  1. 预测——用一个模型,从当前状态 x[k] 出发,算出「未来 N_p 步的输出会怎么走」,这个走法取决于我打算下发的那串控制序列 u[k], u[k+1], …, u[k+N_c−1]。
  2. 优化——在满足所有约束的前提下,找一串使代价函数 J 最小的控制序列。
  3. 只执行第一步——把 u[k] 发下去,后面那 N_c−1 步全部丢掉;下一拍拿到新的 x[k+1],整个过程重做一遍。

第 3 步是最反直觉、也最关键的一步。算了 N_c 步只用一步,剩下的全扔掉,看起来是巨大的浪费——而它恰恰是 MPC 之所以是「控制」而不是「开环规划」的原因。

理由是:那串被丢掉的序列,是在「模型完全正确、扰动完全按预测走」这个假设下算出来的最优解。而这个假设一定不成立——模型有失配、有不可测扰动 w。如果照着那串序列一路执行下去,误差会一步步累积,且没有任何机制去修正它,这就是开环。而每拍重新用实测的 x[k+1] 重算一遍,等于每拍都把真实世界的反馈重新注入一次。反馈就是从这里进来的。

⇒ 一句话记住:滚动时域优化 = 有限时域的开环最优 + 每拍重做一次。前半句给了前瞻能力,后半句给了反馈能力。

三层纵向堆叠的时间轴,分别标 k 拍、k+1 拍、k+2 拍,三层共用同一条横向时间刻度以便对齐。每一层内含:一条实测轨迹(左半段实线,到该层的「现在」标记为止)、一条从现在起向右延伸的预测输出轨迹(虚线,长度 N_p 格,末端标 N_p)、一串阶梯状控制序列(长度 N_c 格,标 N_c,且 N_c 明显短于 N_p,第 N_c 格之后画一条水平延长线并标「其后保持不变」)。每层控制序列的第一格涂实色并标「执行」,其余格涂浅色并标「算完丢弃」。层与层之间用一支向下的箭头连接,箭头旁标「拿到新的实测 x,整窗右移一格重算」。最右侧竖排一行说明文字:「窗口长度不变、起点每拍右移一格 ⇒ 滚动时域」。第三层的预测轨迹与第一层的预测轨迹形状不同,两处用虚线圈出并标「模型失配与不可测扰动使重算结果不等于上一拍的后续步」。示意图,不得据图取值。
图2 该读出三件:① 窗口长度固定、起点每拍右移一格,这就是「滚动」;② 每拍只有第一格被执行,其余算完即弃——被弃掉的那部分是开环最优,留着用会累积误差;③ 第三层的重算结果与第一层的后续步不重合,正说明每拍重算是在把真实世界的反馈重新注入,这是 MPC 之所以是闭环控制的唯一理由。示意图,不得据图取值。

1.3 MPC 买到的是三样东西,⛔ 只有三样

要判「值不值得上」,先得知道花钱买的是什么。MPC 相对一条整定良好的 PID+前馈+增益调度,多出来的能力只有三样:

① 显式约束处理。约束不是事后钳位,是写进优化问题里的一行不等式。优化器在选控制序列时就知道「这么走会在第 12 步撞上限」,于是提前几步就把动作收敛下来。收益是:可以把稳态工作点贴着约束跑,而不必留一大段裕度。约束越是「常态活跃」,这一项的价值越大。

② 前瞻(对未来扰动与未来目标的利用)。如果未来的 d 轨迹是已知的——环境温度的短期外推、导航给的爬坡段、充电协议协商出来的功率曲线、「距离到桩还有 8 分钟」——MPC 可以把它整段吃进预测里,提前动作。⚠ 这一项不是 MPC 独有的:一条按未来信息设计的前馈同样能拿到它的大部分,这正是引言那个拆解里最大的一块。它的属主在场景层是 K7-01 预测性热管理(导航/云端/驾驶意图协同)。

③ 多变量协调。MPC 一次求解所有执行器的指令,回路之间的耦合是被内生处理的——不需要先解耦、再各配一条环。执行器越多、耦合越强、越难找到干净的配对方案,这一项越值钱。反过来,单输入单输出的场景,这一项价值为零(引言那个例子)。

⛔ 与之对称,把 MPC 买不到的四样也写下来,因为它们是最常见的过高期待:

  • ⛔ 买不到可观性与可控性。一个装不了传感器又估不出来的状态,MPC 也不知道它在哪;一个执行器权限压根推不到的目标,MPC 求出来的仍然是「推不到」。这两件事在上 MPC 之前就已经定死了。
  • ⛔ 买不到「不需要模型」。MPC 的全部前瞻能力都建立在模型上。模型错了,它的「最优解」会比 PID 更差——因为 PID 至少不会自信地朝一个错误的预测走过去。
  • ⛔ 买不到限值保护。写在优化问题里的 u_min ≤ u ≤ u_max 与限值保护层是两件事,这是第 4 讲的第二根钉子,也是全课最容易读错的一条。
  • ⛔ 买不到标定工作量的减少。PID 要调三个参数,MPC 要定模型参数、权重比、时域长度、约束裕度、松弛惩罚、退出条件——标定量只会更多,只是它们更有物理含义、更好解释。

1.4 三道前置筛:过不去的那些场景,一道也进不了 MPC 的地盘

⭐ 这是本讲最该被带走的东西。把 1.3 的三样能力倒过来,就得到三道筛——一个场景只有把三道筛全部走完,才轮到讨论 MPC。

筛一(能力筛):这条环,PID 是不是真的调不动了?

判据直接沿用 K3-05 PID/前馈/增益调度控制实战 的合账结果:合出 θ_total 与 τ_plant,读它们的比值。⚠ 口径必须逐字照那门课来——θ_total 只收纯滞后以及可以折成等效纯滞后的小时间常数,被控对象的主时间常数 τ_plant 进分母、⛔ 不进分子。这一条的常见错法在那门课里叫「方向 C」:把热惯性 τ_thermal 也算进 θ_total,于是把一条本来很好调的环算成「比值接近 1、无解」,直接申请移交 MPC——方向完全做反、成本白付。

  • 比值明显小于 1 且没有约束/耦合问题 ⇒ 拦截。这条环该做的是把 PID 调好,不是换算法。
  • 比值接近或超过 1 ⇒ 还有两条比 MPC 便宜的出路要先试:前馈(把扰动的影响在它进入被控量之前抵消掉,绕过滞后)与迟延补偿结构。这两条也在 K3-05 PID/前馈/增益调度控制实战 的射程里。
  • 两条都试过还不行 ⇒ 过筛一。

筛二(结构筛):这个耦合,是不是只能靠 MPC 解?

⭐ 这一道是最容易被跳过、也是拦下最多项目的一道。多回路互相打架时,「上 MPC 就解耦了」是一句极常见的话,而它把一个成本低得多的选项整个跳过了:

先做通道配对与耦合强度评估(属主 K3-14 多回路耦合识别与通道配对:谁控谁、耦合多强、抢控怎么查,本课只调用结论、⛔ 不重推 RGA 的算法)。这一步回答的是「哪个执行器该管哪个被控量」以及「配错了会有多糟」。

  • 若评估结果显示存在一个可接受的配对方案(即:按这个配法,各通道之间的相互影响弱到可以当扰动处理)⇒ 拦截。多数这类场景,用「正确配对 + 一条解耦前馈」就能收敛,⛔ 不必付建模与算力的代价。
  • 若不存在可接受的配对(任何配法都会导致某条环的增益方向随工况变号,或者相互影响强到无法当扰动看)⇒ 过筛二。这才是多变量协调这一项真正值钱的场景。

⇒ 这道筛背后是一句要写进设计评审的话:耦合不是只能靠 MPC 解。它是「是否值得上 MPC」的前置判据,不是 MPC 的适应症。

筛三(约束筛):约束是常态活跃,还是偶发活跃?

问一个可以量出来的问题:在代表性工况循环里,各条约束处于「活跃」(即:它确实在限制控制器的动作)状态的时间占比是多少?同时有几条约束活跃?

  • 约束一年活跃几次、且每次只有一条 ⇒ 拦截。这种情况下,「PID + 一段保护性钳位 + 限值保护层」是更合适的结构,因为约束几乎不影响正常工况的性能,而 MPC 那套显式约束处理的价值全在「贴着约束跑」上。
  • 约束在正常工况里就频繁活跃,或者多条约束同时活跃、彼此还会互相挤(例如快充时:电芯温度上限、加热/冷却功率上限、整车可分配功率上限、压缩机排温降额线,四条同时在压)⇒ 过筛三。多条约束同时活跃时,人工写钳位逻辑会迅速失控——组合数爆炸,且每加一条新约束都要重新评审所有组合。这是 MPC 最硬的适应症。
纵向决策流程图,入口为顶部圆角框「一个热管理控制场景」。向下依次经过三个菱形判据框,每个菱形右侧各引出一条向右的「拦截」出口箭头指向一个灰色圆角框。菱形一「θ_total 与 τ_plant 的比值是否接近或超过 1?(口径见 K3-05)」,右出口框「否 ⇒ 拦截:整定 PID,不换算法」,菱形一下方在通往菱形二的路径上串一个小矩形「先试前馈与迟延补偿,仍不行才继续」。菱形二「通道配对评估是否存在可接受的配对方案?(属主 K3-14)」,右出口框「是 ⇒ 拦截:配对 + 解耦前馈即可收敛」。菱形三「约束是否常态活跃或多条同时活跃?」,右出口框「否 ⇒ 拦截:PID + 保护性钳位 + 限值保护层」。三道菱形全部向下贯通后进入底部深色圆角框「进入 MPC 评估:按第 5 讲四账做收益量级评估」,该框下方再引出一条箭头指向一个小框「四账不合算 ⇒ 仍然拦截」。图左侧竖排三个标签,与三个菱形逐一水平对齐:「筛一 能力筛」「筛二 结构筛」「筛三 约束筛」。图左下角一行注:三道筛必须按序走,跳过任一道都会把成本更低的方案整个漏掉。示意图,不得据图取值。
图3 该读出两件:① 三道筛按序走、缺一不可——跳过筛二(最常见)会把「配对 + 解耦前馈」这个便宜得多的方案整个漏掉;② 走完三道筛还不是终点,第 5 讲的四账评估是第四道闸,技术上适用不等于经济上划算。示意图,不得据图取值。

1.5 三类典型候选场景:逐个说清它凭什么过了三道筛

⚠ 下面三类是行业里被反复讨论的 MPC 候选场景。列它们的目的不是给一张「这些场景就该上 MPC」的清单——而是逐个拆开,示范三道筛怎么用。

候选一:电池预热 / 预冷(有硬终点时刻的那一类)

  • 筛一:电池包热惯性极大,而加热回路从功率指令到电芯最热点温升之间串着「加热器响应 + 冷却液输运 + 包内传热」三段,θ_total 在这条链上不小。⚠ 但要注意,包内传热那一段多半应当计入 τ_plant 而不是 θ_total(见筛一的口径提醒)。多数平台上这条环比值不算大 ⇒ 筛一常常拦得住。
  • 筛二:单执行器(加热功率)或双执行器(加热功率 + 流量分配),耦合弱 ⇒ 筛二也常常拦得住。
  • 筛三:电芯温度上限 + 加热功率上限 + 有一个硬终点时刻(到桩时刻)。⚠ 「有终点时刻」严格说不是约束,而是终端代价——这正是引言那个例子里,一条按剩余时间调度的前馈能拿走大部分收益的原因。
  • ⇒ 结论:这一类多数情况下不该上 MPC,除非平台上同时存在多路热源竞争(那就变成候选三了)。引言那个案例的真实结论就是这一条。

候选二:快充温控

  • 筛一:与候选一同源,比值本身不是决定因素。
  • 筛二:快充时通常有多个执行器同时在动(压缩机、Chiller 侧流量、电池回路泵、可能还有座舱侧分流),且它们共用同一套冷量供给 ⇒ 耦合强,配对未必找得到。
  • 筛三:⭐ 这一道决定性地过了——电芯温度上限、充电功率协商上限、压缩机排温降额、整车可分配功率,四条约束在大功率段同时活跃且互相挤。人工钳位逻辑在这里会迅速变成一张没人敢改的组合表。
  • ⇒ 结论:这是 MPC 最硬的适应症之一。收益主要来自「显式约束处理」这一项。

候选三:多热源 / 多用户的热量分配

  • 筛一:不是决定因素。
  • 筛二:⭐ 决定性地过了——多个热源(电驱、电池、乘员舱、余热回收)竞争同一批换热能力与同一批执行器,配对方案随工况变(同一个阀在不同模式下服务不同的被控量),静态配对表在模式边界处会失效。
  • 筛三:约束多且随模式切换而变。
  • ⇒ 结论:MPC 适用,收益主要来自「多变量协调」这一项。⚠ 但它也是建模成本最高、退出路径最复杂的一类——第 5 讲的四账在这里最容易算成负数。
一张二维落位图。横轴为「多变量耦合强度 / 通道配对的可得性」,由左向右递增,左端标「单输入单输出,配对无争议」,右端标「配对随工况变号,无可接受配法」。纵轴为「约束活跃度 / 同时活跃条数」,由下向上递增,下端标「约束一年活跃几次」,上端标「多条约束在正常工况持续互相挤」。两轴均无绝对刻度。图被两条浅色分隔线划成四象限:左下象限涂浅灰并标「PID + 前馈 + 增益调度 即可(属主 K3-05)」;右下象限标「通道配对 + 解耦前馈(属主 K3-14)」;左上象限标「PID + 保护性钳位 + 限值保护层(属主 K3-01)」;右上象限涂深色并标「MPC 的地盘」。图中放三个带标签的实心圆点:圆点甲标「候选一 电池预热(有硬终点时刻)」,落在左下象限靠近纵轴中部,旁注「筛一/筛二常常拦得住」;圆点乙标「候选二 快充温控」,落在左上偏右、纵轴高位,旁注「靠筛三过关 ⇒ 收益来自显式约束处理」;圆点丙标「候选三 多热源分配」,落在右上象限,旁注「靠筛二过关 ⇒ 收益来自多变量协调」。三个圆点各自引一条细虚线指向本图右侧的一栏文字块,文字块内逐行写出该候选三道筛的过与不过。图左下角一行注:圆点位置为定性落位,随平台架构而变,不代表任何具体项目的评估结果。示意图,不得据图取值。
图4 该读出两件:① 三类候选场景过筛的理由各不相同——候选二靠约束筛、候选三靠结构筛,因此它们的收益来源也不同,这直接决定第 5 讲怎么算账;② 落在左下象限的场景不是「暂时还不适合 MPC」,而是本来就该用更便宜的方案,图上另外三个象限各自标明了属主课。示意图,不得据图取值。

1.6 本课平台相关量汇总表

⚠ 下表所有数值均为典型区间与常见值锚点。⛔ 它们不是验收依据,须在本平台上实测确认。每一行给出「拿到它的路」,这一栏比数值本身更重要。

量 典型区间 常见值锚点 拿到它的路
MPC 控制周期 T_s(温度类慢环) 0.2 ~ 5 s 1 s 由 τ_plant 与执行器速率限反推(第 4 讲 4.1),再受 ECU 任务周期栅格约束(K4-01 热管理嵌入式软件架构与 AUTOSAR 基础)
预测时域 N_p 10 ~ 60 拍 20 ~ 30 拍 下限由 θ_total + τ_plant 定,上限由模型可信预测视界与算力定(第 4 讲 4.2)
控制时域 N_c 1 ~ 5 拍 2 ~ 3 拍 从 1 开始加,加到性能不再改善为止(第 4 讲 4.2)
N_p·T_s(预测视界的物理时长) 30 s ~ 10 min 3 ~ 5 min(电池类慢环) 由被控对象的主导响应时间定,须覆盖 θ_total + (1~2)·τ_plant
约束收缩量(安全裕度) σ_est 的 1 ~ 3 倍 2σ_est σ_est 由 K3-10 热管理在线状态与负荷估计:观测器整定、软测量置信度与退出条件 交付,折算关系本体见 B4-04 整车能量管理与热管理的协同优化(第 2 讲 2.5)
QP 单次求解耗时占 T_s 的比例 5% ~ 30% ≤ 20% ⛔ 只能在目标 ECU 上跑最坏工况实测(第 4 讲 4.3)
求解迭代次数上限 5 ~ 50 次 20 次 由 WCET 预算倒推,须与 K4-01 热管理嵌入式软件架构与 AUTOSAR 基础 的任务预算一起定
松弛变量激活率(正常工况) < 1% ~ 5% < 2% 上车观测量之一,超阈值说明约束设置或模型有问题(第 5 讲 5.3)
限值保护层介入率告警阈值 平台相关 —— 由 K3-01 整车热管理控制策略总览与模式管理 的限值通道定义,本课只要求它必须被观测

本讲小结:MPC 换掉的是 PID 的信息面——把「未来 N_p 步会到哪」显式算出来,滚动重算提供反馈。它买到的只有三样:显式约束处理、前瞻、多变量协调;买不到可观/可控、买不到「不需要模型」、买不到限值保护、买不到标定省事。因此有三道前置筛:能力筛(θ_total/τ_plant,口径来自 K3-05 PID/前馈/增益调度控制实战)、结构筛(通道配对,属主 K3-14 多回路耦合识别与通道配对:谁控谁、耦合多强、抢控怎么查)、约束筛(活跃度与同时活跃条数)。三道筛全过不去的场景一律拦截。三类典型候选逐个拆开之后,电池预热多数该被前两道筛拦下,快充温控靠筛三过关,多热源分配靠筛二过关——它们过关的理由各不相同,因而收益来源也各不相同,这直接决定第 5 讲怎么算账。


后面还有 4 讲正文 · 关键公式 · 案例拆解 · 常见误区 · 动手做

会员专属

后续为会员深水区内容——四库数据与深度拆解。

查看会员方案