TMS BOOK · ACADEMY 讲义

热管理在线状态与负荷估计:观测器整定、软测量置信度与退出条件

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

K3-10 热管理在线状态与负荷估计:观测器整定、软测量置信度与退出条件

课程代码 K3-10 · 板块 K 控制、软件与标定 / K3 控制策略与算法 时长 约 4.0 小时(6 讲 + 1 次估计器选型/整定与退出条件实操) 适合对象 控制 / 标定工程师与做车端估计器的仿真工程师——负责软测量、观测器整定与降级判据的人(专家级必修);做资源仲裁与功率预算的系统工程师同样适用,他们是本课输出的消费方 前置 K3-05 PID/前馈/增益调度控制实战 PID/前馈/增益调度控制实战;J7-02 模型降阶(ROM)与控制导向建模 模型降阶(ROM)与控制导向建模;体系外前置(需自备):线性代数与状态空间表示、方差/协方差的基本概念 本讲义定位 讲师授课蓝本 / 学员自学讲义,是 K3-10 大纲的完整展开版


引言:「这个数是估出来的」——那接下来的问题是,它什么时候不该被信

「这个温度是估出来的」「这个换热量是算出来的」——在整车热管理的信号表里,这两句话正在越来越多的行上出现。冷媒侧的制冷量、电池回路的换热量、玻璃内表面温度、虚拟内温、座舱产湿率、绕组与结温……这些量要么没有传感器,要么装了传感器也测不准,要么在真正需要它的那个位置上根本装不下一只探头。于是它们被一条模型算出来,喂给功率仲裁、喂给前馈通道、喂给保护限值,在闭环里与实测量并排使用。

真正吃掉台架时间与整改工时的,几乎从来不是「估得准不准」这个问题。准不准是一条连续的、可以慢慢逼近的曲线;而现场爆掉的那些事故,问的是另外一句话——这个数在什么工况下根本不该被拿出来用,谁负责说出这句话,说出来之后下游做什么。没有人回答这三问时,估计器不会报错、不会停机、也不会给出任何异常标志:它每个周期照常输出一个看起来完全正常的数,而这个数已经不含有效信息了。本课要交付的东西,正是这三问的答案。

本课的输入与输出。输入是一个装不了传感器、或者装了也测不准的量,外加一套已有的降阶模型与几路可用的量测通道;输出是一个能上车的估计器——结构选型、整定量、残差带三样齐全——以及一份说得清进入与退出条件的交付规格。⛔ 它不证明卡尔曼滤波的最优性与收敛性,只给工程整定判据与失效边界;⛔ 它不重讲冗余表决、独立性论证与共模盲区的推导(本体在 K1-03 传感器布置、冗余与信号可靠性),不重讲降级等级体系与资源仲裁(归 K5-02 热管理故障处理与降级策略),不重讲对象侧的物理机理、冷点偏置与标定口径(分别归 C5-03 低温起雾机理与主动防雾控制C6-01 双区/四区自动空调控制逻辑C4-04 座舱湿度管理与舒适加湿),不重讲降阶与状态空间形式(归 J7-02 模型降阶(ROM)与控制导向建模)与孪生侧的融合架构、漂移监测与实时约束(归 J7-04 整车热管理数字孪生与实时模型);数据驱动、黑箱形态的能效自学习归 K7-03 数据驱动的能效自学习控制;估计失准属「功能不足而非失效」,其安全论证方法学归 K2-05 预期功能安全(SOTIF/ISO 21448)与 AI 件安全论证在热管理的落法。标准侧的射程同样先说死:估计值进入安全相关闭环时的失效响应与降级路径涉及 ISO 26262,估计失准的论证方法学涉及 ISO 21448 / SOTIF,版次、年份与具体部次以现行目录为准,引用前须核原文;⛔ 本课不引用任何规定观测器算法或整定量的标准——这一类量值一律来自平台标定,无标准可依,谁拿出一份「标准推荐的 Q/R」,那份东西一定不是标准。

学完这门课,你要能对手上任意一个不可测量当场答出三件事。其一,它到底估不估得出来——这是可观性矩阵的秩给的是非题,加上条件数给的程度量,答案是「可估/数值病态/不可估」三选一,而后两种各有各的正确处置。其二,用哪种结构、整定量从哪来——六类估计器结构按三栏判据摆开选一种,R 从长静置段数据量出来,Q 按可接受的跟踪滞后反推,龙贝格增益 L 按极点倍数配置,常值失配下的稳态偏差 e_ss 直接算得出来。其三,什么时候不出值、不出值时下游做什么——有效工况窗口、置信度三档、退出状态机与回切条件,四样合起来才叫「退出条件」。这三件事分别对应下面两根钉子和全课的后半程。

全课反复敲两根钉子。

第一根:估计器的交付物是「值 + 置信度档 + 有效窗口标志」三件套,⛔ 不是一个裸值。这句话看起来只是多交两个字段,实际它改变的是三处设计:① 下游需要的是离散档位加明确动作——{可信/降级可用/不可用} 三档,每一档绑定一个具体动作(转保守常量假设、切硬件冗余通道、再降一级),⛔ 而不是把置信度做成一个 0~1 的连续权重让下游「少信一点」。一个被打了折的估计值进了安全限值闭环,等于把保护也一起打了折,而且没有任何地方记录这一折是谁打的。② 估计量以别的估计量为输入时,置信度必须串乘,⛔ 不能取最好的那一路——空气侧用焓差法算换热量时,进出口焓差是量测算的,而空气质量流量在整车上通常也是由鼓风机工作点反推的估计量,它的误差要串进这条链,⛔ 不许当已知量。③ 误差带必须显式交出去:不交,MPC 就会按估计值当真值去求解,硬约束在边缘工况被悄悄吃掉——误差带到裕度的折算关系本体归 B4-04 整车能量管理与热管理的协同优化,本课只交误差带本身以及它随工况怎么变。这一根钉子在第 2 讲(残差带工况化)、第 4 讲(三件套与误差传播)、第 5 讲(三档与退出状态机)各落一次。

第二根:估不出来是结构问题,⛔ 换一个更复杂的滤波器解决不了。可观性矩阵满秩是「理论上能不能估」的是非题,条件数才是「工程上估不估得住」的程度量;秩满而条件数偏大时,量测噪声会被放大到估计量失去意义,此时 EKF、UKF 只是把噪声放大得更好看一些。正确动作只有两个:加测点,或者把不可观的那一部分降阶掉。同一句话还有另外两个面孔,都是现场高频误用:① 被估量若能由同一时刻的量测代数解出(Q̇ = ṁ·c_p·ΔT 这一类),就不要引入状态——多一个状态就多一套整定、多一份发散风险,只有当被估量有显著热惯性、或量测比对象动态更慢更噪时才值得上状态与增益;② 凡是「一路慢但无漂的基准 + 一路快但会漂的积分」的场合,互补滤波一个交叉时间常数就是全部整定量,不需要协方差、不需要矩阵运算,车规实现里这是最先该试的结构,它在本领域被系统性低估。⇒ 选型判据是「需要什么模型信息/吃多少算力/抗什么误差」这三栏对不对得上,⛔ 不是「谁最先进」。(第 1 讲立表,第 6 讲用三类范例复核。)

★ 还有一句话是本课最容易被读反的,先在这里点破:「模型和量测一直对得很好、残差很小,说明这个估计可信。」它的现象部分完全没有错——残差确实是本课全部在线判据的载体,第 2 讲要整定的就是残差带,第 5 讲的置信度分档也整个建在它上面。危险恰恰在「判据没选错、机理接反了」这个组合里:残差小有两种成因,而它们的含义相反——一种是模型真的跟上了对象,另一种是残差这条通道里根本没有信息,它小是因为它不可能不小。后一种在热管理里有两个高频形态:

  • 循环互喂:用热平衡式估出质量流量,再拿这个流量回代去算换热量。一条式子里两个未知量只能定一个,回代得到的是恒等式——残差恒为零、零信息,而所有残差类诊断照单放行。这是本课点名的实现级错误里最容易犯的一个。
  • 共模盲区:模型与被污染的量测共享同一路输入。输入偏了,量测跟着偏、模型算出来也跟着偏,残差纹丝不动(这一条的代数论证与失效模式矩阵在 K1-03 传感器布置、冗余与信号可靠性,本课引用不重推)。

说不出「读者会做错的那个具体动作」就不算读反,所以把三个动作写清楚。方向 A(拿残差恒小当验收证据):台架与常温工况残差都很小,于是判定「这个软测量已经验证过了」,直接放行上车——本课案例里那台纯电平台走的正是这条路,它估出的换热量喂给功率仲裁当能力上限用,冬季小负荷段整车间歇误判、用户端表现成快充功率反复台阶,而残差类诊断一条都没报。方向 B(拿残差恒小当置信度高,进而省掉硬件冗余):既然模型与量测长期一致,就把软测量当成安全相关测点的替代通道;共模盲区之下这个「一致」不含任何独立信息,出事时两路一起错——第 5 讲要给的正是「可替代/只可交叉校验/不可替代」这三档的判定依据。方向 C(反过来:残差一变大就先怀疑阈值定紧了):残差在带边抖动,于是抬高门限把它压住;抬门限的同时把真失效的检出能力一起抬掉了,该做的是迟滞、最小驻留时间与有效工况窗口,⛔ 不是抬阈值。

⇒ 由此定下本课的硬口径(本课归纳,⛔ 不是既有判据):残差小只有在两个前提同时成立时才算置信度的证据——① 当前工作点落在有效工况窗口之内;② 残差通道与被估量不共享同一路输入,既不构成循环互喂、也不落在共模盲区。两个前提缺任何一个,「残差小」的含义是「这条通道没有信息」,⛔ 不是「这个估计很好」。⛔ 全课不许拿「残差长期很小」单独当作放行、验收或抬高置信度档位的依据;上面那句错话只允许以被点破的错句的身份出现在这里、「典型案例详解」与「常见误区」三处,⛔ 不得以正面表述出现在任何别处。

全课六讲就按这条主干排。第 1 讲把六类结构排成一张选型表,并把可观性这道闸立在选型之前——守恒式直算、部件特性曲线反解、一阶 RC 网络、龙贝格观测器、互补滤波、KF/EKF/UKF 各需要什么模型信息、吃多少算力、抗什么误差,以及车规约束(无动态内存分配、矩阵求逆维数受限、单步耗时须落在一个控制周期之内)怎么反过来限制结构选择。第 2 讲把整定量逐个落实:R 用长静置段数据量出来并把量化台阶一并计入,Q 是留给未建模项的旷量、只能按可接受的跟踪滞后反推,龙贝格增益按「观测器极点比被观测动态快 3~5 倍」配置(⚠ 这是行业通行的工程经验判据,⛔ 不是标准值,再快只是把量测噪声按增益倍数灌进估计),并算出常值模型失配下的稳态偏差 e_ss,最后把残差带做成工况分段表、权重调度表与有效工况窗口三张可标定的表。第 3 讲讲运行期自保:协方差钳位、对称化与正定性维护、创新门限三件套,重初始化的触发清单,以及在线参数辨识的遗忘因子、冻结条件与回退到出厂值的路径——本讲只到「辨得出来、且辨错了能退回去」。第 4 讲把设计期的制冷量、水侧换热量与空气侧焓差公式改造成域控每周期可算的在线量,每一个都挂一条「参数来源 + 误差账」,并把 K3-05 PID/前馈/增益调度控制实战 前馈通道要的负荷突变量、K3-06 模型预测控制(MPC)在热管理中的应用 状态空间里的不可测扰动、K3-07 能量最优的整车协调控制 的各路热需求与能力上限这三处悬空输入按三件套口径交出去。第 5 讲交置信度三档与退出状态机——四层进入判据、每一档绑定的下游动作、迟滞与最小驻留时间、回切条件,以及置信度状态为什么必须与故障标志分开报。第 6 讲收边界,并把壁温类、量测重构类、源项反解类三种估计结构摆在一起做迁移实操:任何一个新的不可测量都走同一套四步——定被估量与可观性 → 按选型表选结构 → 整定并给出残差带的工况分段 → 写退出条件与对应的下游降级动作。

图1 全课地图:中央一条从左到右的主干,依次为「拿到一个不可测量」「闸一:可观性(秩与条件数)」「按三栏判据选结构」「整定:R 与 Q 或增益 L,并定残差带」「闸二:有效工况窗口」「输出三件套」,主干每一段下方标出它对应第几讲;闸一下方引出两条虚线分支,标签分别是「加测点」与「把不可观部分降阶掉」,两条都折回主干起点、⛔ 不继续向右;选结构那一段上方并列六个结构框,依次为守恒式直算、部件特性曲线反解、一阶 RC 网络、龙贝格观测器、互补滤波、KF/EKF/UKF,六框共用下方一条三栏标尺,栏名为需要的模型信息、算力、抗什么误差;闸二下方引出一条虚线,标签为「窗外不出值」,指向右侧的退出状态机方框,方框内竖排三格标注可信、降级可用、不可用;主干末端的输出框拆成三格,分别标注值、置信度档、有效窗口标志,三格各引一条箭头指向下游消费方标签,分别写 K3-05 前馈量、K3-06 不可测扰动、K3-07 热需求与能力上限;图右下角另有一个灰底提示框,标题为「残差恒小的两种成因」,其下两行分别写循环互喂与共模盲区。结构示意图,箭头表示先做哪一步,⛔ 不表示数据流向,本图也不是估计器的软件架构图;图上不含任何数值、门限位置与平台数据,⛔ 不得据图读取任何数值。
图1 全课地图。该从这张图上读出的判断只有三条:① 选结构之前先过可观性这道闸,闸没过时的两条出路是加测点或降阶,⛔ 没有一条是往右去换更复杂的滤波器;② 六类结构的取舍看的是「需要什么模型信息/吃多少算力/抗什么误差」这三栏对不对得上,⛔ 不是谁更先进;③ 主干末端交出去的是三格而不是一个数——值、置信度档、有效窗口标志缺任何一格,下游就没有办法知道这个数什么时候不该被信。有效工况窗口是退出条件的第一道闸,窗外一律不出值、⛔ 不许硬算。本图为定性示意,不代表任何具体平台的实际值,⛔ 不得据图读取任何数值;图中箭头表示先做哪一步,⛔ 不表示数据流向。

第 1 讲 先过可观性这道闸,再按三栏判据选结构——⛔ 不是挑最先进的那一个

拿到一个装不了传感器的量,工程上最常见的第一个动作是打开工具箱找算法:「上个卡尔曼吧」「这个非线性,得用 EKF」。这个动作把顺序做反了。在选算法之前有一道闸必须先过——这个量在你现有的这套测点下,到底估不估得出来;闸过了之后,选哪一种结构也不是按先进程度排队,而是看三栏判据对不对得上:需要什么模型信息/吃多少算力/抗什么误差。这一讲就把这道闸和这张表交出来。

本讲交付五件:① 六类估计器结构排成一张可以照着查的选型表,每一类写清它需要什么、吃多少算力、抗什么误差、最先在哪里失效;② 可观性这道闸的两个量——秩是是非题、条件数是程度量——以及闸没过时那两条结构性的出路;③ 守恒式直算与观测器之间那条分界线(能由同一时刻的量测代数解出,就别引入状态);④ EKF 与 UKF 的取舍,及其在热管理里的实际落点;⑤ 车规约束怎么反过来把选型压回定点与查表实现。

本讲不交付:R/Q 怎么量与怎么反推、增益 L 的极点倍数、稳态偏差 e_ss、残差带 ε(工况) 的工况分段——全部在第 2 讲;发散防护、重初始化与在线参数辨识在第 3 讲;在线热负荷与换热量的算法在第 4 讲;置信度分档与退出状态机在第 5 讲;三类范例的迁移实操在第 6 讲。⛔ 也不交付这几件:降阶方法与状态空间形式的本体归 J7-02 模型降阶(ROM)与控制导向建模;单步耗时的实时性核算(t_solve ≤ Δt)与定点定标口径归 J7-02 模型降阶(ROM)与控制导向建模J7-04 整车热管理数字孪生与实时模型;冗余表决、独立性论证与共模盲区的推导归 K1-03 传感器布置、冗余与信号可靠性;滤波最优性与收敛性的数学证明不在本课射程内。

符号沿用全课,⛔ 本讲不另立:n 是状态维数(⛔ 不是压缩机转速,转速全课写 n_comp);O 是可观性矩阵;σ(·) 一律指矩阵奇异值(残差标准差另写 σ_r);A/B/C 是状态空间三矩阵,H 是量测矩阵;Q 与 R 是过程噪声与量测噪声协方差矩阵(⛔ 热流率一律写带点带下标的 Q̇_e/Q̇_w/Q̇_air,热阻一律写 R_th);L 是龙贝格观测器增益、K 是卡尔曼增益;τ 只表示互补滤波的交叉时间常数

1.1 六类结构排成一张表:三栏判据对不对得上,⛔ 不是谁最先进

是什么。热管理车端能落地的估计器结构,收拢起来就是六类。把它们按「需要什么模型信息/吃多少算力/抗什么误差」摆开,是本讲最主要的交付物:

结构 需要什么模型信息 吃多少算力 抗什么误差 最先失效在哪
① 守恒式直算 一条平衡式,无状态 最省(几次乘除) 什么都不抗——误差全部从输入进来,一进一出 输入本身信噪比塌陷时(小 ΔT、量测缺失)
② 部件特性曲线反解 一张 map(转速—压比、流量—压差之类) 省(查表 + 插值) 不抗;且误差随 map 外推放大 工况落到 map 采点覆盖区之外的角上
③ 一阶 RC 网络 一个热容与一个热阻 R_th(一个状态 省(一步递推) 抗量测噪声,代价是慢 对象真实动态与这一阶差得远时(多节点被压成一节点)
④ 龙贝格观测器 A / C 矩阵,增益 L 按极点配置 中(矩阵—向量乘) 抗噪声与初值误差;⛔ 不抗系统性模型失配 模型少建一项时留下稳态偏差 e_ss(第 2 讲算它)
⑤ 互补滤波 只要两路信号的频段分工,不要状态方程 最省的带状态一档(一个一阶递推) 抗「慢基准的噪声 + 快通道的漂移」这一对 两路信号不构成慢基准/快积分这对分工时
⑥ KF / EKF / UKF A/C 之外还要 Q、R 噪声统计 最贵(协方差递推与矩阵求逆) 抗噪声,且同时给出不确定度 P 噪声统计说不清、或算力/定点实现放不下时

为什么这三栏是判据,而「先进程度」不是。这三栏各自回答一个会否决的问题,而「先进」不否决任何东西:

  • 需要什么模型信息——你手上没有的东西,结构再好也用不了。没有 A/C 就配不了极点,噪声统计说不清就定不了 Q/R;反过来,只有一条平衡式时,硬套一个需要状态方程的结构,只能靠编一个模型出来,而那个编出来的模型正是后面 e_ss 的来源。
  • 吃多少算力——它决定这一档在目标控制器上放不放得下(1.6 展开)。
  • 抗什么误差——这一栏最容易被跳过,而它决定选错时你会输在哪:抗噪声的结构挡不住系统性失配,抗失配要靠辨识(第 3 讲)而不是靠换更贵的滤波器。

⚠ 表里第一栏还藏着一条容易漏的对应关系:越往下走,需要的模型信息越多,而模型信息本身也是误差源。⑥ 比 ① 多要一套 Q/R,多要的这一套若定得不对(第 2 讲的误区),它引入的误差可以超过它消掉的噪声。⇒ 结构不是越复杂越保险,是「多要的那份信息你给不给得准」的一次赌注。

工程量级。这张表里唯一能跨平台照读的是相对次序(算力从上到下递增、需要的模型信息从上到下递增);⛔ 每一档的具体耗时、内存与可承受维数全是平台相关量,取决于目标处理器与任务节拍,本课不给数。

易错点。① 从表的最下面往上选(先想 EKF,再看能不能简化)——正确的方向是从上往下,第一个满足三栏的就停;② 只看第一栏与第二栏,跳过「抗什么误差」——结果是选了一个能跑但挡不住本平台主要误差源的结构;③ 把这张表当成一次性决定——测点改了、模型改了、工况范围改了,都要回来重走一遍(1.2 的可观性同理)。

图2 一张纵向六行、横向四栏的选型表结构示意图。纵向从上到下依次是六类估计器结构,行标签分别为守恒式直算、部件特性曲线反解、一阶 RC 网络、龙贝格观测器、互补滤波、KF/EKF/UKF。横向四栏,前三栏为判据栏,栏名依次是需要什么模型信息、吃多少算力、抗什么误差,第四栏为最先失效在哪。前三栏内每一格用一个横向条形的长短表示相对程度而不标任何数值,需要的模型信息与算力两栏的条形自上而下总体变长,抗什么误差那一栏改用文字标签而不用条形。表格左侧另有一条自上而下的粗箭头,标注为选型方向从上往下、第一个满足三栏的就停。表格右侧有一个独立提示框,写着越往下多要的模型信息本身也是误差源。表格上方另有一个横置的闸门图形,标注为可观性闸,一条箭头从闸门指向表格顶端并标注闸没过时不许进这张表。图上不出现任何数值、不出现任何刻度,条形长短只表示相对次序。结构示意图,条形长短只代表相对程度的定性关系,不含任何数值与平台数据,⛔ 不得据图读取任何数值。
图2 六类结构的选型表。该从图上读出三条判断,⛔ 不是「哪一档更好」:① 表格上方那道闸画在表外面——可观性没过时,这张表整张都不该打开(1.2);② 选型方向是自上而下、第一个满足三栏的就停,⛔ 不是先想最贵的那一档再往回简化;③ 前两栏的条形自上而下变长,右侧提示框说的是它的代价——多要的模型信息本身也是误差源,给不准时它引入的误差可以超过它消掉的噪声。第四栏「最先失效在哪」是选型时最该先读的一栏,它决定选错时你会输在哪里。结构示意图,条形长短只代表相对程度的定性关系,不含任何数值与平台数据,⛔ 不得据图读取任何数值。

1.2 可观性是选型之前的闸:rank(O) = n 是是非题,κ(O) 才是程度量

是什么。给定状态方程与量测方程(状态矩阵 A、量测矩阵 C、状态维数 n),可观性矩阵是

O = [C; CA; CA²; …; CA^(n−1)]

它回答的问题只有一个:由这套测点上看得见的东西,能不能唯一地反推出全部状态。判据分两层,⛔ 两层不可互相替代:

  1. rank(O) = n 是是非题。秩亏意味着状态空间里存在一个方向,它怎么变都不在量测上留下任何痕迹——这是结构决定的,与你后面用哪一种滤波器、增益调多大毫无关系
  2. 条件数 κ(O) = σ_max(O)/σ_min(O) 是程度量。秩满只说明「理论上有唯一解」,而工程上还要问这个解稳不稳:κ(O) 偏大意味着某个方向上的信息极其微弱,量测噪声会沿这个最弱方向被成倍放大,估出来的值形式上存在、工程上没有意义

为什么闸必须排在选型之前。因为闸没过时的正确动作是结构动作,而结构动作会改变后面整张选型表的输入

  • 加测点——把不可观的那个模态带进 C。C 变了,A/C 这一栏的可用性、可观性本身、以及是否还需要状态,全部要重算;
  • 把不可观那部分降阶掉——不去估那个根本估不出来的方向。n 变了,选型表里「够不够用」的答案也跟着变(降阶方法本体归 J7-02 模型降阶(ROM)与控制导向建模)。

⇒ 如果先选了结构再判可观性,闸一旦没过,前面的选型工作全部作废。⛔ 而最坏的走法是闸没过却继续往前走:换更复杂的滤波器。这一步不会报错,它会给你一条更平滑的曲线——那条曲线与真值的关系一点没变好,只是噪声被沿最弱方向放大得更好看。这正是本课引言那根钉子的第一个面孔。

可观性要在边界工况上复算,⛔ 不是算一次就完事。热管理里的 A、C 常常随工况变——map 的斜率在不同区不同,饱和曲线附近的局部线性化差别很大,阀位与模式切换直接换掉一整套 A/B/C。⇒ 在一个工作点算出「满秩、条件数也不大」,不能外推到全工况;至少要在工况范围的角点上各算一次,取最差的那个当结论。

与相邻课的分工B4-04 整车能量管理与热管理的协同优化 只把「哪些温度必须实测、哪些可以由观测器估」留到了选型口径这一层,定量判据(秩、条件数、以及闸没过时的两条出路)在本讲;而误差带折成约束裕度那一侧仍归 B4-04 整车能量管理与热管理的协同优化

工程量级。rank(O) 与 n 都是无量纲整数,可以直接比。κ(O) 是无量纲比值,可以跨平台读趋势——但它的可接受上界是平台相关量,⛔ 本课不给数:这个上界取决于你的量测噪声水平与下游能接受的误差带,同一个 κ(O) 在噪声小的链路上可用、在噪声大的链路上不可用。可给的判据是(本讲归纳):把 κ(O) 与量测噪声的相对大小一起看——κ(O) 乘以量测的相对噪声水平,量级上就是最弱方向上估计值的相对不确定度,它超过下游可接受的误差带,这个量就不该按「可估」处理。

易错点。① 只算秩不算条件数——「秩满」被读成「可估」,一路做到整定阶段才发现怎么调都在放大噪声,而那时已经付了建模与标定的工时;② 在单个工作点算完就当全工况结论(见上);③ 秩亏时去加大增益——那是在放大一个根本不存在的信息方向,噪声照倍数进来,估计值一点没变准;④ 把「加测点」理解成「多接一路同类信号」——⛔ 加测点要加的是能看见那个不可观模态的测点,再多一路看不见它的信号,秩还是亏的。

图3 一张自上而下的判定流程结构示意图。顶端方框写着拿到一个不可测量并写出状态方程与量测方程,向下引出第一个菱形判定框,框内写 rank(O) 等于 n 吗,标注为是非题。菱形的否分支向左引出,指向一个标注为结构上估不出来的方框,该方框再向下分出两条并列的出路方框,分别写加测点把不可观模态带进 C 与把不可观那部分降阶掉,两条出路各引一条回勾箭头折回顶端方框、表示要重写状态方程与量测方程再来一遍。菱形的是分支向下,进入第二个菱形判定框,框内写条件数 κ(O) 相对量测噪声水平是否可接受,标注为程度量。第二个菱形的否分支同样向左汇入前面那两条出路。第二个菱形的是分支向下,指向底端一个标注为可估、可以打开选型表的方框,方框右侧画一个小的六行表格缩略图代表第 1.1 节那张选型表。流程图右侧另有一条竖直的禁止通道,用一条粗虚线自第一个菱形的否分支直接指向底端方框,通道中央压一个红色圆斜杠禁止符号,旁边标注换更复杂的滤波器不是一条出路。流程图左下角另有一个独立提示框,写着 A 与 C 随工况变、须在工况角点各算一次并取最差。图上不出现任何数值与阈值。结构示意图,不含任何数值、阈值与平台数据,⛔ 不得据图读取任何数值。
图3 可观性这道闸的两层判据与闸没过时的出路。该从图上读出三件事:① 两个量各管一件事——上面那个菱形是是非题(秩亏=结构上估不出来),下面那个是程度量(秩满但条件数相对噪声太大=形式上估得出、工程上不可用),⛔ 两层不可互相替代;② 闸没过时的两条出路都折回起点——加测点或降阶都会改写状态方程与量测方程,所以要重走一遍,⛔ 不是原地换算法;③ 右侧那条被禁止符号压住的虚线通道,正是本课点名的错误动作——换更复杂的滤波器不是出路。左下角提示框说的是这道闸不是一次性的:A、C 随工况变,要在角点各算一次并取最差。结构示意图,不含任何数值、阈值与平台数据,⛔ 不得据图读取任何数值。

1.3 守恒式直算与观测器的分界线:能由同一时刻的量测代数解出,就⛔ 别引入状态

是什么。闸过了之后的第一个岔路口不是「用哪种滤波器」,而是一个更前的问题:这个量到底需不需要一个状态。判据只有一句:

被估量若能由同一时刻的量测代数解出,就用守恒式直算,⛔ 不要引入状态。

典型的一类就是热平衡式 Q̇ = ṁ·c_p·ΔT——右边三个量在同一拍上都有,左边直接算得出来,中间没有任何需要「记住上一拍」的东西。这一类量属于选型表的第 ① 档,它没有整定量、没有协方差、也没有发散的可能。

为什么多一个状态是要付代价的。引入状态意味着同时引入了三样东西,而这三样都要人管:

  1. 一套整定量(Q/R 或极点倍数 m,第 2 讲),以及它们随工况的分段;
  2. 一份运行期风险——协方差会被压到零、会失正定、会被野值拽走,于是需要发散防护三件套与重初始化清单(第 3 讲);
  3. 一段初始化与切换的责任——上电给什么初值、模式切换后怎么办,全都要写。

⇒ 这三样加起来是实打实的工时与代码,而它们买到的东西只有一样:对量测噪声的抑制,以及对量测暂时缺失的推演能力。如果被估量本身没有热惯性、量测也不脏,这笔交易是净亏的。

那什么时候才值得上状态?两个条件满足其一即可(⚠ 本讲归纳的取舍):

  • 被估量有显著热惯性——它自己的动态比输入慢得多,直算式会把输入上的每一次抖动原样搬到输出上,而真实的被估量根本不会这么抖;
  • 量测比对象动态更慢或更噪——量测通道自己带一段延迟或一堆噪声,此时用一个状态把模型预测与量测融起来,能同时改善这两头。

工程量级。⛔ 这里没有可给的数值,判据本身是结构性的。可给的量级口径是(本讲归纳):把被估量的时间常数与量测通道的等效延迟/噪声水平放在一起比——被估量时间常数远大于量测延迟、且量测噪声相对被估量的变化幅度很小时,直算就够;反过来两者可比或倒挂时,才轮到状态。

易错点。① 因为「显得更专业」而给一个代数量套观测器——多出来的整定量最后总要有人拍一个值,而拍出来的那个值会在换工况时暴露;② 反过来,被估量明明有大热惯性却硬用直算,于是输出跟着输入抖,下游只好在后面串一个滤波器——那等于把状态挪到了别人家里,而且挪过去之后没有协方差、没有残差带、也没有退出条件;③ 把「引入状态」当成一件可以事后再改的小事——它会同时改变第 2 讲的整定物、第 3 讲的自保清单与第 5 讲的判据入口。

1.4 EKF 与 UKF 的取舍:线性化误差⛔ 不进 Q,这是 EKF 的结构性弱点

是什么。选型表最下面那一档里还有一次分叉。EKF 的做法是在当前工作点上把非线性模型线性化,取雅可比矩阵代进卡尔曼那三式;UKF 的做法是不求导,改为在状态分布上取一组确定性的采样点、逐点过一遍非线性模型,再由这组点的统计量还原均值与协方差(单步传播的采样点数量级约 2n+1 次)。

「2n+1」是采样点数随状态维数的代数关系,⛔ 不是耗时的度量:实际耗时还要乘以每次传播里那一次模型调用的代价,而模型调用的代价各家差得很远。⇒ ⛔ 不得据它反算「UKF 比 EKF 慢几倍」。实时性核算(t_solve ≤ Δt)的口径本体归 J7-02 模型降阶(ROM)与控制导向建模J7-04 整车热管理数字孪生与实时模型

为什么 EKF 的弱点是结构性的。线性化只在工作点附近成立,偏离工作点越远、非线性越强,线性化误差越大。而这份误差不出现在滤波器的任何账本里:Q 描述的是「模型没建的那部分」,它是人给的一个矩阵,⛔ 不会因为你此刻偏离工作点很远就自动变大。⇒ 后果是滤波器低估了自己的不确定度:P 照旧收敛得很小,K 照旧很小,而预测其实已经偏了。这条链在第 3 讲会兑现成那个典型的实机表现——长时间稳定运行之后某次工况突变一去不回

UKF 买到什么、付出什么。买到的是免雅可比(省掉推导与维护一套解析导数的工时,也避开了在 map 边界上求导得到跳变斜率的问题),以及在大初始误差强弯曲处更好的分布传播;付出的是采样点数随维数增长带来的算力,以及一套自己的参数(采样点的散布参数)要人给。

热管理里的实际落点(⚠ 本讲归纳的取舍,⛔ 不是普适结论):本领域被估状态的维数低(壁温、绕组热点、内部节点这一类常常是一到几个状态),而非线性主要来自 map 与饱和曲线——它在大部分工作区里是缓变的、可微的。⇒ 多数场合 EKF 够用;UKF 留给饱和线附近强弯曲的情形,以及初始误差可能很大、又必须一次收敛的场合。

⚠ 还有一条比这次取舍更前的判断要说清:如果你正在为「EKF 还是 UKF」纠结,先回 1.2 看一眼 κ(O)。这两档之间的差别,远小于「可观性够不够」带来的差别;κ(O) 已经偏大时,两个都不能用,正确动作仍然是加测点或降阶。

工程量级。2n+1 是代数关系可以照读(见上的限制);⛔ 两档各自的实际耗时、内存与可承受维数是平台相关量,取决于目标处理器与模型调用代价,本课不给数。

易错点。① 把线性化误差当成「可以靠调大 Q 补上」——调大 Q 是全时段生效的,而线性化误差只在偏离工作点时才大,用一个常数去补一个随工况变的东西,两头都不对(这与第 2 讲那条「残差带必须工况化」是同一种病);② 把 2n+1 当耗时倍数去做实时性判断(见上);③ 在雅可比里对 map 直接做数值差分而不管采点间隔——map 的分段线性使导数在采点处跳变,雅可比会跟着跳。

图4 一张左右两栏对照的结构示意图,左栏标题为 EKF,右栏标题为 UKF。左栏内自上而下画三格:第一格写在当前工作点求雅可比矩阵,格内配一条曲线与一条在某点相切的直线表示局部线性化;第二格写把线性化后的模型代进卡尔曼三式;第三格用一个加粗的方框写线性化误差不进 Q,方框下方引出一条向下的箭头指向一个标注为滤波器低估自身不确定度的标签,该标签再引一条箭头指向最下方一个标注为长时间稳定运行后工况突变一去不回的标签,并注明这条链在第 3 讲兑现。右栏内自上而下同样画三格:第一格写不求导,改在状态分布上取一组确定性采样点,格内配若干个散布在一条曲线上的采样点记号;第二格写逐点过一遍非线性模型再由统计量还原均值与协方差;第三格写采样点数随状态维数增长,量级约 2n+1,格旁另有一个加粗提示标签写着这是采样点数的代数关系、不是耗时度量、不得据它反算慢几倍。两栏之间自上而下画一条分隔线,分隔线下方横跨两栏有一条提示带,写着热管理里状态维数低、非线性主要来自 map 与饱和曲线,多数场合 EKF 够用、UKF 留给饱和线附近强弯曲的情形。提示带下方另有一个独立方框,写着纠结这两档之前先回去看 κ(O)。图上不出现任何数值、耗时与刻度。结构示意图,两栏的格数与位置不代表任何量的大小,不含任何数值与平台数据,⛔ 不得据图读取任何数值。
图4 EKF 与 UKF 的取舍。该从图上读出三件事,⛔ 不是「哪一个更强」:① 左栏第三格是本节的要点——线性化误差不进 Q,于是滤波器会低估自己的不确定度,这条链在第 3 讲兑现成「长时间稳定运行后某次工况突变一去不回」;② 右栏第三格旁那个提示标签是一条数字纪律——2n+1 是采样点数随维数的代数关系,⛔ 不是耗时度量,据它反算「慢几倍」是错的;③ 底部那个独立方框说的是顺序:纠结这两档之前先回 1.2 看 κ(O)——可观性带来的差别远大于这两档之间的差别。结构示意图,两栏的格数与位置不代表任何量的大小,不含任何数值与平台数据,⛔ 不得据图读取任何数值。

1.5 互补滤波是本领域被低估的一档:τ 是全部整定量,车规实现里最先该试

是什么。互补滤波处理的是一个非常具体、而在热管理里非常常见的局面:手上有两路信号,一路慢但无漂,一路快但会漂。它把慢的那一路过低通、快的那一路过高通,两者在同一个交叉频率 ω_c 上互补地拼起来:

x̂ = LPF_ωc(x_slow) + HPF_ωc(x_fast),一阶实现 x̂[k] = α·(x̂[k−1] + Δx_fast[k]) + (1−α)·x_slow[k],α = τ/(τ + Δt),τ = 1/ω_c

式中 x_slow 是慢基准量测,Δx_fast 是快通道的增量(通常来自某个积分),Δt 是采样周期,τ 是唯一的整定量

本领域的两个典型场合(大纲点名的两条):冷却液入口温度配损耗积分——液温慢、无漂但跟不上瞬时功率变化,损耗积分快、跟得上但会随时间漂;长静置读数配热流积分——长静置后的读数是一个可信的绝对基准,热流积分给出此后的相对变化。两者都是标准的「慢基准 + 快积分」。

为什么说它被系统性低估。因为它不需要协方差、不需要矩阵运算、不需要噪声统计:定点实现代价是六类里除守恒式直算之外最低的,整定量只有一个而且有明确的取法(τ 落在慢基准的漂移时间尺度与快通道的积分漂移时间尺度之间——比前者快就把慢基准的噪声放进来,比后者慢就让积分漂移跑掉)。而它被跳过的原因往往不是技术判断,是它看起来太简单。⇒ 硬口径(本讲归纳):只要手上确实是「一路慢基准 + 一路快积分」,就先把互补滤波试掉——它跑得住,下面两档就不必上。

它与卡尔曼那一档整定的不是同一个东西,⛔ 不许按 Q/R 的思路去调 τ。互补滤波里没有协方差,也没有「信模型还是信量测」这个声明;τ 调的是频段分界——哪一段频率信慢基准、哪一段信快通道。把它当成「简化版卡尔曼」去理解,会得出一堆不成立的类比。

工程量级。α 与 τ/Δt 的换算关系是代数关系,可以照读;⛔ τ 本身的取值是平台相关量(它由两路信号各自的漂移时间尺度决定),本课不给数。可给的结构判据是(本讲归纳):τ 的可行区间两头都被钉死——下界由慢基准的噪声水平给出,上界由快通道的漂移速率给出;⛔ 若这个区间是空的,说明这两路信号根本不构成互补的一对,该回表上另选一档,而不是在 τ 上凑。

易错点。① 按 Q/R 的思路调 τ(见上);② 两路信号时刻不对齐就相加——快通道往往带若干拍的传输与处理延迟,不对齐会在瞬态下把相位误差写进结果;③ 快通道的积分器没有限幅与重置——长时间运行后积分量已经跑远,τ 再合适也拉不回来(重置的触发与做法归第 3 讲的重初始化清单)。

图5 一张单幅幅频特性曲线图。横轴为归一化频率,取对数刻度,以交叉频率 ω_c 为 1 归一化,范围从 0.01 到 100;纵轴为归一化幅值,线性刻度,范围 0 到 1.2。图上画两条曲线:一条自左侧接近 1 向右单调下降并趋近于 0 的实线,标签为慢基准通道的一阶低通;一条自左侧接近 0 向右单调上升并趋近于 1 的虚线,标签为快积分通道的一阶高通。两条曲线在横轴归一化频率等于 1 处相交,交点画一个空心圆并标注交叉频率 ω_c 等于 1 除以 τ。图上另画一条水平的点线,标注为两路传递函数的复数之和恒等于 1,它在整个横轴范围内保持水平,旁边小字标注这正是互补的含义,并注明它不是两条幅值曲线的算术和(两条幅值曲线在交叉点各为 0.707,算术和是 1.414 而不是 1)。横轴左端区域用浅色阴影带标出并标注该频段信慢基准,横轴右端另一条浅色阴影带标注该频段信快积分。图下沿另有一条横向标尺,左端标注慢基准的漂移时间尺度、右端标注快通道的积分漂移时间尺度,标尺中段画一个双向箭头区间并标注 τ 必须落在这两者之间,区间外两侧各画一个红色圆斜杠禁止符号,左侧标注比慢基准还快会把它的噪声放进来、右侧标注比快通道还慢会让积分漂移跑掉。图题注明本图为一阶互补滤波的解析幅频曲线,两轴均为归一化无量纲量。教学算例曲线,由一阶低通与一阶高通的解析式算出并归一化,不对应任何平台,⛔ 不得据图读取任何平台取值。
图5 一阶互补滤波的频段分工与 τ 的可行区间。该从图上读出三件事,⛔ 不是某个 τ 的推荐值:① 两路传递函数的复数之和恒等于 1(图中那条水平点线,图上它自己标的就是 G_低通(jω) + G_高通(jω) ≡ 1)——这就是「互补」的全部含义,两路信号在每一个频率上的权重加起来正好补满,⛔ 没有哪一段是两路都信或两路都不信。⚠⚠ 它⛔ 不是「两条幅值曲线之和等于 1」:那句话在数学上是错的——在交叉点上两条幅值曲线各是 0.707,算术和是 1.414,只有在两端才趋近 1。⇒ 若你照「幅值和为 1」去验收自己实现的互补滤波,会在交叉频率处量到 1.414 而判定实现错了,进而把两路增益重新归一化成「和为 1」(各取 0.5)——那会把一个本来无失真的互补滤波改造成交叉频率附近约 3 dB 凹陷的滤波器,慢基准与快积分的拼接在那一段出现真实的幅值缺口,1.5 强调的「τ 是唯一整定量」也随之失效;② 交叉点的位置就是唯一的整定量 τ = 1/ω_c,左边那一段信慢基准、右边那一段信快积分;③ 图下沿那把标尺给的是 τ 的可行区间——它由两路信号自身的漂移时间尺度钉死,两端各有一个禁止符号说明越界的后果;⛔ 区间为空时说明这两路不构成互补的一对,该回选型表另选一档,不是在 τ 上凑。教学算例曲线,由一阶低通与一阶高通的解析式算出并归一化,不对应任何平台,⛔ 不得据图读取任何平台取值。

1.6 车规约束反过来限制选型:它是一张排除法的清单,⛔ 不是「优化一下就能放下」

是什么。选型表前面那三栏是「你需要什么」,这一节是「目标控制器允许你要什么」。车规实现上有三条硬约束,它们会把上面几节选出来的候选直接排除掉一部分

  1. 无动态内存分配。量产代码里矩阵维数与缓冲区都要在编译期定下来,⛔ 不能按工况临时申请。这条对协方差递推那一档影响最大——它的中间量最多。
  2. 矩阵求逆的维数受限。卡尔曼更新式里那个 (H·P⁻·Hᵗ + R)⁻¹ 在多量测时是一个矩阵求逆,定点实现下既费算力又不好保证数值稳定。实做上常把 KF 拆成逐量测的标量更新——一次只吃一路量测、连着更新若干次,从而把矩阵反演整个回避掉。
  3. 单步耗时须满足 t_solve ≤ Δt。估计器每个周期都要在一个控制周期内算完,且要与同一核上的其它任务共享预算。

为什么这一节要放在选型这一讲,而不是留给实现。因为这三条不是实现细节,它们改变的是可选集合。一个在桌面仿真里表现最好的结构,如果它的矩阵维数放不下、或者单步耗时超了预算,那么它不是「需要优化一下」,是不在候选里。⇒ 把它留到实现阶段才发现,代价是前面的建模、整定与验证全部作废,而这种作废在项目后期是最贵的。

用法是排除法(本讲归纳):先用这三条把候选划掉一批,再在剩下的里按 1.1 的三栏选。而且要注意方向——这三条只会缩小候选集合,⛔ 它们不会把某一档变得更适合。

⚠ 实时性判据的本体(怎么核 t_solve、定点定标怎么做、在目标机上怎么测)归 J7-02 模型降阶(ROM)与控制导向建模J7-04 整车热管理数字孪生与实时模型本讲只讲它如何反过来限制结构选择,⛔ 不重讲核算方法。

工程量级。⛔ 三条约束的具体门限全是平台相关量——可用的 RAM、能承受的矩阵维数、单核可分配给估计器的时间片,取决于域控硬件与任务编排,本课不给数。可给的结构判据是(本讲归纳):这三条要在选型阶段就问出具体数字来,问不到就按最紧的假设走;⛔ 不许用「先做出来再说,实在不行再优化」代替这一步。

易错点。① 把这三条当成实现阶段的事(见上);② 只核稳态耗时不核最坏耗时——估计器的耗时在重初始化那一拍、在多量测同时到达那一拍会明显高于平均;③ 把「拆成逐量测的标量更新」当成一个纯粹的实现技巧——⚠ 它同时改变了数值行为(各路量测按顺序吃进去),做了这件事之后的正定性维护要配 Joseph 形式(第 3 讲 3.3 有这条配套关系)。

1.7 本讲接住 K1-03 传感器布置、冗余与信号可靠性 的书面缺口,分工写清、⛔ 不重复讲冗余

是什么K1-03 传感器布置、冗余与信号可靠性 在讲传感器布置与冗余时,把这六类结构的名字列了出来,并书面声明「不展开算法推导」。这就在体系里留下一个明确的缺口:读者知道有这些结构,却拿不到选哪一个、怎么整定、什么时候不可信的判据。本讲接住的正是这个缺口的前半截——结构谱系与选型判据;后半截(整定、自保、退出条件)分别在第 2、3、5 讲。

什么仍然归 K1-03 传感器布置、冗余与信号可靠性,⛔ 本课不重复

  • 冗余表决与独立性论证的本体——几路信号怎么表决、怎么论证它们相互独立;
  • 共模盲区的代数论证与失效模式矩阵——本课在第 3、4、5 讲多次引用这个结论(模型与被污染的量测共享同一输入时残差恒为零),但只引用不重推
  • 冗余语境下拿残差当阈值用的取舍——在冗余表决那个语境里,残差要不要当阈值、阈值怎么定,仍归 K1-03 传感器布置、冗余与信号可靠性;本课讲的是估计器自身那个语境下的残差带(第 2 讲)与置信度分档(第 5 讲)。

为什么要把这条分工写在第 1 讲末尾。因为这两门课在同一批读者手上会同时打开,而它们讲的「残差」不是同一件事K1-03 传感器布置、冗余与信号可靠性 的残差是多路信号之间的差(用于表决与判独立性),本课的残差是量测与模型预测之间的差(用于判这个估计还能不能信)。⇒ 两者的判据、阈值来源与处置动作都不同,混起来用会得到一个「表决通过但估计已经不可信」或者反过来的结论。

本讲到这里的产出,正好是第 2 讲的入料:一个已经过了可观性闸、已经在六类里选定一种、并且已经确认目标控制器放得下的结构。它身上还差几个必须由人给定的数——那是下一讲的事。

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

会员专属

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

查看会员方案