TMS BOOK · ACADEMY 讲义

热管理传感器信号处理与故障诊断

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

K1-01 热管理传感器信号处理与故障诊断

课程代码 K1-01 · 板块 K 控制、软件与标定 / 传感与执行部件 时长 约 3.5 小时(5 讲) 前置 G12-01 传感器选型与布置(知道被测什么、装在哪);体系外前置(需自备):基础数字信号处理(滤波、采样)常识 本讲义定位 讲师授课蓝本 / 学员自学讲义,是 K1-01 大纲的完整展开版


引言:每一分可信度,都是用延迟买来的

传感器送进来的从来不是一个物理量,而是一串数——ADC 的一个码值、一路占空比、一帧报文里的若干位。把它变成控制算法敢用的「电芯最高温度」或「回路压力」,中间要走完敏感元件、安装型式、调理电路、ADC 或数字编码、传输与接收端校验、解码与线性化、数字滤波、合理性诊断与置信度分级这一整条链,一共十二级,外加三条不在这条串行线上的旁路。这门课讲的就是这条链:每一级引入什么误差、花掉多少时间、可能怎么坏,以及软件层拿到信号之后到底能识别出其中哪几种坏法、又有哪几种是它无论如何抓不到的。

本课凡是要「列一张表」的地方——链上有哪些级、信号会怎么坏、有哪些检查手段、故障时有哪些替代策略——都先把全集画出来再逐项核射程,而不是顺着最熟悉的那条线索往下数。原因很实际:沿单一线索枚举时,漏掉的那一类不会以「少了一条」的形式暴露出来,它是整类不出现,看起来清单还是完整的。

第一根钉子是全课主线:「可信」不是免费的,每一分可信度都是用延迟买来的,而这些延迟必须记进同一本总账。滤得越狠噪声越小,相位滞后也越大;消抖越长误报越少,真故障也发现得越晚;替代值保持越久曲线越平顺,脏值也就挂得越久。所以本课每加一层处理,都要先回答两问:它花掉多少时间,这笔时间从哪本预算里出。Δt、τ_filter、差分窗长 m·Δt、t_debounce、t_heal、t_hold、Δt_align_max 不是七个各自为政的标定量,它们在抢同一份预算,还要和不由本课定的 τ_sensor、τ_RC、报文周期与任务周期挤在一起。⚠ 这张表也不是本课自留的中间结果——它就是 B1-02 需求逐级分解:整车 VTS → 系统 SSTS → 零部件 时间预算表的信号侧那几行,填完必须交出去,与执行器侧、通信侧、任务侧合并核算(合账方法归 K3-05 PID/前馈/增益调度控制实战),诊断侧的上限还要被 K5-02 热管理故障处理与降级策略 的 FTTI 反过来压。⛔ 本课只负责把信号侧这几行填对填全,不给合账后的总延迟,也不给可达带宽的结论。

第二根钉子决定诊断做不做得对:「信号有问题」和「被测对象有问题」是两件事,判据、动作、DTC 三样都必须分开。同一条曲线跳到一个高温值,可能是电芯真的到了那个温度,也可能只是接触电阻抖了一下——两种情形要走两条独立的判据链、置两个不同的标志、报两个不同的码。合并的代价不是「不好看」:售后拿到一个混着报的码,既不知道该查线束还是该查电芯,改完一轮还会再来一轮。与此同时也要认清本课的上限——算法侧只能抑制与标记,替代不了物理层整改;线束与端子退化、共地与地弹、抗扰,各有各的出口课,本课只把信号特征反推到根因方向为止。

★ 最后立一条反钉子,它是本课最容易被读反的地方。合理性诊断里最常被引用的那句「变化快于物理可能的斜率即判异常」,几乎所有人读完都会顺手把 slew_max 照被测量物理上可能的最快变化率去定。那句话给的是上界,不是取值方法。slew_max 实际被两侧夹住:上界来自被测量的物理可能斜率,下界来自测量链自己的斜率噪声带 σ_slope——后者与被测量毫无关系,只由量化台阶 q、τ_filter、Δt 与差分窗长 m 决定。只认上界的人会依次做出四个动作,每一个都能当场判真假:把「物理上不会超过某某」直接写进代码,于是上电就被量化噪声自己反复触发,误报与被测量无关,查电芯永远查不出来;为压误报把 t_debounce 一路加长,探测时间被拖过 K5-02 热管理故障处理与降级策略 的 FTTI 预算,保护形同关闭而误报确实消失了,看上去像是解决了;或者反过来把 slew_max 放大,让真跳变与真故障一起安静地漏掉;最隐蔽的是为了「更灵敏」而提高采样率、或把差分窗缩到 1——那只会让噪声带更宽,绕回第一个动作。请从现在起换一句话记:slew_max 是一个窗口,不是一个值;先由 σ_slope 定下界、再由物理可能斜率定上界,窗口非空时在窗内取,窗口为空时不许硬选一个数,得回去走三条退路——加大 τ_filter 或加大窗长 m、提高分辨率减小量化台阶 q、或者换交叉一致性与模型残差这一层来承接这类失效(三条的完整展开见第 3 讲 3.6)。

本课的这套工具是与被测量无关的通用手段,可以套到温度、压力、流量、电流任意一路上;正因为通用,它也不带任何被测量的先验知识。车外环境量(外温、日照、海拔)自有其专有误差机理与专用修正,归 G12-04 座舱与空气侧传感器:外温/内温/日照/蒸发器温度的误差机理、布置与补偿;测点选得代不代表被测量、以及冗余选路与表决,归 G12-01 温度/压力/流量/湿度传感器选型与布置K1-03 传感器布置、冗余与信号可靠性;内部故障标志满足条件之后怎么置码、怎么冻结帧,归 K5-01 OBD/UDS 诊断与故障码(DTC)设计。本课站在这几者中间,只管一件事:把一串数变成一个带置信度标签的可用值,并且在它不可信的时候,让下游第一时间知道。

第 1 讲 信号链总览:从物理量到控制算法可用值

写诊断算法的人常常从第二步开始想问题:先默认手里已经有一路「电池温度」,然后去设计滤波器、去定阈值。这一讲要求你退回第一步——把这路「温度」是怎么变成一个数的整条链先画出来。理由很直接:本课后面所有的判据、参数与故障分类,都是挂在这张链图上的;链上少画一级,就会有一整类失效模式没有挂靠点,而它不会以「少了一条」的形式暴露——它是整类不出现,看起来清单还是完整的。

这一讲要交付两件东西,后面四讲都要反复回来取用:一张链图(有哪些级、有哪几条不在主干上的旁路、每一级由谁定),和一张延迟账(每一级花掉多少时间、由谁给出、最后交给谁去合账)。最后再钉一张符号表(见 1.7)——本课里 τ 至少有四个不同的含义,不在第 1 讲末尾一次钉死,读者迟早会把后面某一讲的判据代进另一讲的公式里。

1.1 信号链不是一条线,是十二级加三条旁路

大多数人脑子里的信号链是三个框:传感器 → 滤波 → 用。真实的链要长得多,而且它不是一条线。

先把主干列全。从被测物理量到「控制算法可用值」之间,串行十二级:

这一级做什么 它引入什么(误差/延迟/失效) 由谁定
① 测点 传感器装在哪个位置、代表哪个被测量 测点不代表被测量(本课射程外,只作边界声明) G12-01 温度/压力/流量/湿度传感器选型与布置K1-03 传感器布置、冗余与信号可靠性
② 敏感元件 把物理量变成电学量 自带时间常数 τ_sensor;offset 与增益漂移、老化、卡死 G12-01 温度/压力/流量/湿度传感器选型与布置
③ 安装型式与热接触 浸入还是贴壁、有没有导热填充 τ_sensor 的附加滞后 G12-01 温度/压力/流量/湿度传感器选型与布置
④ 调理电路 AFE 激励源、分压、放大,以及模拟域抗混叠滤波 时间常数 τ_RC;激励失准、增益漂移、抗混叠失效 K2-01 热管理控制器(域控/ECU)硬件架构
⑤ ADC 量化、采样保持、采样时刻 量化台阶 q、采样周期 Δt;分辨率地板、混叠、采样时刻抖动 K2-01 热管理控制器(域控/ECU)硬件架构
⑥ 智能传感器内部数字化 把 ④⑤ 搬进传感器壳体里 本 ECU 侧的 ④⑤ 两级就不存在了 器件规格(选型时定,见 G12-01 温度/压力/流量/湿度传感器选型与布置
⑦ 编码 频率式/PWM 占空比/SENT 等数字编码 编码层的丢失与错帧 器件规格/K2-02 CAN/LIN/CAN-FD 通信与整车 EEA 集成
⑧ 传输 线束、连接器、总线调度 报文周期 T_msg;开路、短路、路间短、接触电阻升高与间歇 K2-02 CAN/LIN/CAN-FD 通信与整车 EEA 集成G12-03 执行器硬件接口与电气规格
⑨ 接收端 timeout、校验和或 CRC、SNA、E2E、接收时间戳 这一整级的失效判据在通信矩阵里定义 K2-02 CAN/LIN/CAN-FD 通信与整车 EEA 集成
⑩ 解码与线性化 标定换算、LUT 查表/分段折线/在线解析 插值误差;表装错型号、单位或符号错 本课
⑪ 数字滤波 一阶低通/滑动均值/中值 时间常数 τ_filter 与相应的群延迟 本课
⑫ 合理性诊断与置信度分级 四层检查,输出「可信/降级可用/不可用」 探测时间,以及误报与漏检 本课

主干之外还有三条不在这条串行线上的旁路,它们是本课后半程的挂靠点:

  • (甲)总线与数字编码支路:SENT/LIN/CAN 送进来的信号根本不经过本 ECU 的 ADC,第 ⑤ 与第 ⑪ 级对它不成立,它的失效来源全部集中在第 ⑨ 级。(严格说 SENT 不算总线——它是单向点对点的数字编码,无仲裁无寻址;但就「不经过本 ECU 的 ADC」这一点而言,它与 LIN/CAN 同类。)
  • (乙)反向支路:ECU 反过来给传感器的激励源与上拉/下拉偏置。它是一条从 ECU 指向 AFE的通路,方向与信号相反,而它决定了电气故障落在哪一段电压带里——第 4 讲会专门讲透这一条。
  • (丙)消费端分叉:第 ⑫ 级之后,同一个物理量会分成多个版本送给不同的消费者(闭环控制、保护限值判断、诊断、人机显示、记录上云、上总线、标定通道)。第 5 讲会给出每个版本的取值原则。

为什么必须先把这张图画完整:这门课要你「搭得出一条处理链」,而搭链的第一件事是知道链上有哪些级。每一级同时是三样东西——一处误差来源、一处延迟来源、一处失效来源。1.4 的延迟账、第 3 讲的诊断手段、第 4 讲的电气故障分类,全部是逐级挂在这张图上的;图上没有的级,后面就查不到。

为什么必须先画全集,再逐项核对:如果只沿着最熟悉的那条模拟单线枚举——②敏感元件 → ④AFE → ⑤ADC → ⑪数字滤波——你会漏掉(甲)(乙)(丙)三条旁路,还会整整漏掉第 ⑨ 级一级;而第 4 讲有一半内容就落在第 ⑨ 级与(乙)上。漏掉的东西不会报错,只会在某一天以「这个故障我们的诊断怎么一条都没抓到」的形式出现。

易错点

  • 把智能传感器或总线信号当成「也走 ADC」,于是认真地给它设计一个抗混叠滤波器与采样率——而这一段链在本 ECU 里压根不存在。判断方法很简单:先问这路信号进 ECU 的时候已经是不是数字量。
  • 漏掉反向支路,于是把「开路时电压会往上跑还是往下掉」当成传感器自带的属性写进诊断表。它不是——它由本 ECU 输入端的偏置策略决定,第 4 讲要专门推翻这个说法。
图1 信号链拓扑:主干十二个编号方框自左至右串成一条链(测点、敏感元件、安装型式、AFE、ADC、智能传感器内部数字化、编码、传输、接收端、解码与线性化、数字滤波、合理性诊断与置信度分级),框内标注 τ_sensor、τ_RC、q、Δt、T_msg 等符号;另有三条不同线型的旁路——总线支路绕开 ADC 与数字滤波两框、反向支路自 ECU 侧虚线指回 AFE、消费端分叉在末级扇出七支;每个方框下沿以小字标出由哪门课定。本图为结构示意,方框大小、间距与连线长度不代表任何物理量,不得据图读取任何数值或时序。
图1 一条完整的信号链有十二级加三条旁路。要从图上读出四件事:每一级都同时是误差、延迟与失效三种来源;总线信号绕开了 ADC 与数字滤波两级;电气故障的电压落点由 ECU 反过去的偏置决定;同一个量在末级之后分成七个版本,且禁止跨版本相减。本图为结构示意,不得据图读取任何数值或时序。

1.2 判「正常」用的量随输出形式而变,判据不可互套

链上第 ⑦⑧⑨ 级的形态决定了「这路信号现在正常吗」这个问题该拿什么去量。五类常见输出形式,各有各的正常态:

输出形式 正常态长什么样 判「正常」用的是什么量
比例式电压 输出电压与被测量成比例,落在 V_low_th 与 V_high_th 之间的带内 电压
频率式 持续有脉冲,且频率落在量程对应的频带内 有没有脉冲、频率在不在带内
PWM 占空比式 占空比落在有效区间内,且不恒定于极值 占空比是否恒定于 0% 或 100%
SENT 帧按标称间隔到达、CRC 校验通过、慢通道状态位正常 帧与 CRC
LIN/CAN 报文在 timeout 内到达、校验和或 CRC 通过、值不等于 SNA 帧、校验和/CRC 与 SNA

为什么要专门强调这件事:最右一列的五个量互不相同。比例式判的是电压,频率式判的是有没有脉冲,总线判的是帧与校验。这五套判据各自只在自己那一类上成立,把一套搬到另一类上就是典型的机理互套——两支的失效机理根本不同,公式与规程一律不得互相套用。

易错点

  • 给频率式信号做「范围检查」时用电压带去判。频率式在电气层上可能一直有电压(甚至幅值完全正常),脉冲却已经停了。电压带这一层对它是彻底放行的。
  • 给 PWM 信号只判范围、不判「恒定于极值」。而 PWM 的丢失恰恰表现为恒 0% 或恒 100%,这两种情况的电平都稳稳落在有效电压带里。
  • 反过来还有一处:0% 与 100% 本身是歧义的——它可能是故障,也可能是这个器件定义的合法极限编码(例如用极值编码表示「传感器自诊断已判失效」)。⛔ 不得默认它是故障,也不得默认它正常,必须查器件定义。

射程与去向:上表里的阈值、标称间隔、timeout 与 SNA 编码一律不给数,而且它们不归同一门课,按 1.1 的分级表分开前指:比例式的电压带阈值 V_low_th/V_high_th 由 ECU 输入端的偏置策略、传感器规格与线束压降共同决定,落在 ④AFE/⑤ADC 这两级上,前指 K2-01 热管理控制器(域控/ECU)硬件架构(第 4 讲 4.1 展开);标称间隔、timeout 与 SNA 编码由通信矩阵逐信号定义,落在 ⑧传输/⑨接收端这两级上,前指 K2-02 CAN/LIN/CAN-FD 通信与整车 EEA 集成。SENT 的帧格式与校验定义去向 SAE J2716,LIN 的校验和与响应超时定义去向 ISO 17987-3(版次与年份以现行目录为准,引用前须核;本课未取原文核对,只写去向,不写条款内容)。跨节点信号拿到这些失效标志之后怎么分级与替代,是本课第 4、5 讲的事。

图2 五行两列波形对照表:五行依次为比例式电压、频率式、PWM 占空比式、SENT、LIN/CAN;左列画正常态波形,右列画典型失效态波形;比例式那一行的正常带由两条无刻度的水平虚线 V_low_th 与 V_high_th 界定,虚线可沿电压轴平移并在行尾标明由硬件规格给出;最右一列写出各形式判正常所用的量——电压、有无脉冲、占空比是否恒定于极值、帧与 CRC、帧与校验和与 SNA。全部波形为定性示意,不代表任何器件的实测波形,不得据图读取幅值、频率或时间。
图2 判「正常」用的量随输出形式而变。要从图上读出三个判断:最右列五个量互不相同,所以五套判据不可互套;频率式与 PWM 的失效波形仍落在正常电压带内,电气层这一关看不出来;0% 与 100% 是歧义的,须查器件定义后才能下结论。全部波形为定性示意,不得据图读取幅值、频率或时间。

1.3 采样率按链路上实际存在的最高频分量定;而这条要求只能靠模拟域限带落地

采样定理给的条件是 f_s > 2·f_max。真正容易错的不是这个不等式,是 f_max 到底取谁

f_max 取的是链路上实际存在的最高频分量,不是被测物理量本身的带宽。 「实际存在」包含了那些不是被测量、却确确实实叠在这条链上的东西:线束接触电阻的波动、PWM 与大电流回路经电气路径耦合进来的干扰。

为什么在热管理这门课里这一条尤其要点破:温度传感器自身的热时间常数 τ_sensor 已经对被测量构成了一个很强的低通——热学量传到 ADC 之前早就被磨圆了,热学量本身几乎不会混叠。所以真正会被折叠进基带的,只可能是敏感元件之后经电气路径耦合进来的那一支。而按「电池温度本来就变得很慢」去定采样率,恰好把唯一需要防的那一支排除在考虑之外。

这里要分清两件事,否则会把本课的典型案例归错类:干扰叠进这条链与干扰被折叠进基带不是一回事。本课的典型案例属于前者——线束低温接触电阻波动引入的脉冲毛刺,它确实是「敏感元件之后经电气路径进来的那一支」,但它落在基带之内,⛔ 不是混叠的例子,所以它能靠中值滤波整个压掉(详见「典型案例详解」与第 2 讲 2.4)。下面这句只对真的发生了混叠的那一支成立。

⚠ 这里必须紧接着说第二件事,否则这一节会把人送进一个反方向的动作。

「按耦合干扰定 f_s」在工程上通常做不到。 耦合干扰可以到几十 kHz 乃至 MHz 量级;按 f_s > 2·f_max 直接反推采样率,既超出 ADC 与任务周期的能力,也毫无必要。正确的次序是两步:

  1. 先在模拟域(AFE 里的 RC 或有源滤波,对应链上第 ④ 级,时间常数 τ_RC)把带宽限到 f_c,analog,并留出裕量使 f_c,analog < f_s/2;
  2. 再按这个已经被限带过的 f_max 去定 f_s。

一个必须当场点破的错误动作:只读到「f_max 要含耦合干扰」这半句、没读到「限带在模拟域」这半句的人,会得出「那就提高采样率」这个结论。这个动作两头都做反——

  • 它解决不了混叠:模拟域没限带,折叠照旧发生,只不过换到新的 f_s/2 处发生;
  • 它还要付另一笔钱:Δt 变小会让斜率噪声带 σ_slope 变宽,速率检查反而更不可用(第 2 讲会给出 σ_slope 与 Δt、m 的关系式并复算)。

同族的另一句错话是「提高采样率再用数字滤波就能把干扰滤掉」。混叠一旦发生,高频分量已经折叠进基带并与真实信号重叠,任何数字滤波都还原不了——这一点 1.5 会从频域上说清,第 2 讲还会从责任划分上再说一次。

★ 说明来源:「f_max 含耦合干扰」与「限带必须在模拟域」这两条各自成立,但它们分处本课的两讲、彼此并没有互指;把两条接起来当成一条完整判据用,是本课归纳的,不是哪一份既有材料写好的。之所以要接起来,就是因为只读前一条必然走到「提高采样率」这个方向做反的动作上。

不给数与去向:f_c,analog 与 τ_RC 由硬件定,⛔ 本课不给取值,前指 K2-01 热管理控制器(域控/ECU)硬件架构;干扰的频谱由 EMC 环境与线束走向决定,须实测确定。

易错点

  • 拿被测量的物理带宽当 f_max(「电池温度几分钟才变一度,1 Hz 采样够了」)。
  • 把「采样率够不够」当成一个纯软件问题去讨论。它不是——它由第 ④ 级 AFE 的限带能力决定,软件侧单独拍不了板。
  • 想用「更陡的数字滤波器」代替模拟限带。数字滤波作用在采样序列上,它连折叠这件事都看不见。

1.4 处理链的延迟必须按级列成一张表,而这张表要交出去

这是本课主线的第一个落点:「可信」不是免费的,每一分可信度都是用延迟买来的,而这些延迟必须记进同一本账。 每加一层处理,先问它花掉多少时间,再问这笔时间从哪本预算里出。

信号侧一共十一行,按「由谁给出」分成两组:

是什么 由谁给出
τ_sensor(含安装型式带来的附加滞后) 敏感元件热时间常数,同时带来幅值衰减与斜坡滞后 G12-01 温度/压力/流量/湿度传感器选型与布置,本课不重推
τ_RC 模拟域抗混叠滤波的时间常数 K2-01 热管理控制器(域控/ECU)硬件架构
采样 事件发生到被采到之间的等待:平均 Δt/2、最坏 Δt 本课整定,但 Δt 本身不由本课单独拍板(见下方口径 4)
τ_filter 数字滤波这一级的群延迟——这一级若是「中值 + 一阶低通」两段串联,本行填两段之(2.4),⛔ 不另开一行 本课
m·Δt 差分窗长(求变化率时才有) 本课
t_debounce 故障侧消抖时间 本课
T_msg LIN 的 t_frame 与 CAN 的报文周期 K2-02 CAN/LIN/CAN-FD 通信与整车 EEA 集成G12-03 执行器硬件接口与电气规格
T_task ECU 任务周期,工程上常见 10 ms/100 ms 量级(典型) K4-01 热管理嵌入式软件架构与 AUTOSAR 基础
t_heal 恢复去抖时间 本课
t_hold 替代值保持上限 本课
Δt_align_max 跨源信号的时刻对齐窗 本课

还有三个量反过来压这张表——它们不占这本账的行,但给这本账划上界:模式切换去抖计时(K3-01 整车热管理控制策略总览与模式管理)、FTTI 与多点故障探测时间间隔(K5-02 热管理故障处理与降级策略)、DTC 成熟度计数(K5-01 OBD/UDS 诊断与故障码(DTC)设计)。第 3 讲定 t_debounce、第 5 讲定 t_hold 的时候,压力都是从这三个方向来的。

四条口径必须当场声明,否则这本账合不起来

  1. 采样这一行按最坏值填。 事件时刻与采样时刻之差在 0 到 Δt 之间,平均是 Δt/2、最坏是 Δt——按平均值填还是按最坏值填是一个口径选择,不是一个事实。本课统一取最坏值 Δt 并在此声明;⛔ 不得与执行器侧、通信侧各写各的口径混着加,合账口径以 K3-05 PID/前馈/增益调度控制实战 为准。
  2. 数字滤波那一行按「这一级各滤波环节的群延迟之和」填。 第 2 讲会给出一个可以直接填进来的答案(它不需要再折算);⚠ 若这一级是「中值 + 一阶低通」两段串联,两段的时间是相加的、不是二选一,但它们合记在这一行里——⛔ 本表的行集是要交出去合账的,不由后面某一讲单方面添行。本讲先把这一行占住。
  3. T_task 的「10 ms/100 ms 量级」是典型量级,不是承诺值。 ⛔ 不得把它当成某个平台的确定值,也不得把它当成可承诺的上界;其余各行一律不给数——它们全都取决于选型、硬件与通信矩阵,须由本项目实测与仿真确定。
  4. Δt 与 T_task 是同一个数的两种用法,所以它们在这本账上分成两行、属主也不同。 在周期任务架构里采样周期 Δt 就是承载这段代码的那个任务的周期:「采样」那一行记的是事件等到被采到的那段等待(按 Δt 计,本课整定链的第 ② 步用它),「T_task」那一行记的是任务调度本身带来的纯滞后。⚠ 由此有一条必须写死的责任划分:Δt 的取值本课不单独拍板——它随任务设计走,由 K4-01 热管理嵌入式软件架构与 AUTOSAR 基础 给出;本课的责任是「拿到 Δt 之后据它整定其余各行」,以及「Δt 一变就从整定链第 ② 步起全部重走」(5.6)。⛔ 不得在软件侧自行改 Δt 而不回到 K4-01 热管理嵌入式软件架构与 AUTOSAR 基础 的任务设计。

这张表最要紧的一句:它不是本课自留的中间量。 它就是整车需求分解里那张时间预算表(B1-02 需求逐级分解:整车 VTS → 系统 SSTS → 零部件)的信号侧那几行,须交到控制环的延迟预算里去,与执行器侧、通信侧、任务侧合并核算;合账方法与由此得到的可达带宽后果见 K3-05 PID/前馈/增益调度控制实战

⛔ 三条射程边界,一条都不能越:

  • 这本账只记信号侧。执行器侧与通信侧的行不在本课射程内——本课只负责把自己这几行填对、填全并交出去。
  • ⛔ 本课不给合账之后的总延迟
  • ⛔ 本课不给可达带宽的结论。那是 K3-05 PID/前馈/增益调度控制实战 的事。

易错点:把这张表当成课堂上的一个中间结果,列完就丢了。它必须有一个明确的交付去向;没有去向的表,下一次有人问「我们这条链一共慢多少」的时候还得从头再列一遍,而且多半又会漏掉几行。另一个易错点是各行分别拍板——每个人都按最坏情况给自己那一行留足余量,合起来必然超预算,而且因为没人看过全表,超了也没人发现。

图4 横向条带账,纵向十一行,自上而下为 τ_sensor(含安装型式附加)、τ_RC、采样(标出平均 Δt/2 与最坏 Δt)、τ_filter、m·Δt 差分窗、t_debounce、T_msg、T_task、t_heal、t_hold、Δt_align_max;每行一条右端渐隐成箭头的色带,按「本课定」与「别课给」两组着色,行尾统一写「长度为示意,实际值由 ___ 给出」并填入课号;右侧另有一条竖向括号标出反过来压本课的三项;图底一条汇总箭头指向方框,写明本表是整车时间预算表的信号侧那几行、须交去与执行器侧和通信侧和任务侧合账。横轴无刻度、无单位,色带长度与相对比例全部为示意,不得据图读取或比较任何时长。
图4 信号侧的延迟不是散落的参数,而是一张互相竞争同一份预算的账。要从图上读出三件事:十一行并列在同一张表上、纵向对齐;每一行行尾都写着「由谁给出」,据此当场分清哪几行是本课能定的;图底的箭头写明了这张表的交付去向——它要交出去合账,不是留在本课的中间量。横轴无刻度,色带长度全部为示意,不得据图读取或比较任何时长。

1.5 采样周期与控制回路周期的匹配,跟混叠是两件事

这两件事都跟采样率有关,因此常被并排写在一起,读起来像是同一个问题的两种说法。它们不是。判据、后果、对策三样全都不同:

混叠 采样周期与控制回路周期的匹配
判据 f_c,analog 是否小于 f_s/2,并留了裕量 有效纯滞后有多大、相位裕度还剩多少
后果 高频分量折叠进基带,与真实信号重叠且不可分离 控制环振荡,或者迟钝
对策 只能在模拟域限带 重新分配延迟预算,或降低控制带宽
提高 f_s 管不管用 管不了——模拟域没限带时,折叠照旧发生在新的 f_s/2 处 管用——有效纯滞后随 Δt 减小

⚠ 表的最后一行是这两件事唯一容易被搅在一起的地方,也正是要点破的地方:提高 f_s 对匹配确实有效,对混叠(在模拟域没限带的前提下)无效。而且即使是对匹配有效的那一半,它也不是免费的——按 1.4 那本账,Δt 一小,别的地方就要付钱(斜率噪声带变宽,见第 2 讲)。

⛔ 两者之间不存在任何推导关系:它们只是共用一个 f_s 而已。不得拿一边的判据去推另一边的结论,图上也不得用同一条引线把两栏连起来。

易错点(两个方向各一个,都会把人带到错误的对策上):

  • 把「采样够快了」当成「不会混叠」的证据。采样快只是把折叠线挪到了更高的频率上;模拟域没限带,超过新折叠线的分量照样折下来。
  • 把混叠现象当成控制环振荡去调 PID。混叠折下来的东西在基带里表现为一条本不该存在的低频波动;它有一个很实用的识别线索——它的频率会随转速或开关频率变化(因为它是差频),而真正的控制环振荡频率由环路本身决定,不跟着这些走。识别错了,接下来的每一次调参都在往错误的方向使劲。
图3 双联图,中间以醒目的禁止符号隔开。左幅混叠:上半为时域,画一条高频正弦 f_in 与按 f_s 采到的样点,样点连成一条频率低得多的假信号 f_alias;下半为频域,横轴归一化频率,标出 f_s/2 折叠线、f_in 经折叠箭头映到 f_alias、模拟抗混叠滤波器的幅频曲线压在 f_s/2 左侧并标出裕量带、折叠后与真实信号谱的重叠区涂色并标注不可分离。右幅匹配:上半时域画缓变真实信号与阶梯状采样保持输出,标出平均 Δt/2 与最坏 Δt 两条有效纯滞后标注;下半画开环相频曲线因附加纯滞后而下移,标出被吃掉的那一段相位裕度。两幅底部各有判据、后果、对策三行结论框。全图不出现任何具体的 Hz 值;模拟滤波器曲线形状、裕量带宽度与裕度损失量均为定性示意,不得据图读取截止频率、裕量或相位裕度的数值。
图3 混叠与「采样周期和控制回路周期的匹配」是两件事。要从图上读出四个判断:逐行比对两幅底部的判据、后果、对策,三行两两不同;折叠一旦发生,f_alias 就落进基带并与真实信号谱重叠,所以数字滤波救不回来;模拟限带必须把 f_c,analog 压在 f_s/2 之下并留出裕量;右幅那个问题虽然也跟采样率有关,但与混叠没有推导关系。全图不出现具体的 Hz 值,不得据图读取截止频率、裕量或相位裕度的数值。

1.6 边界:本课的四层工具与被测量无关,车外环境量另有专门做法

本课要教的四层检查——范围、速率、静态/卡死、交叉一致性(第 3 讲 3.2~3.4 逐层展开,全课一律按这四个成员数「四层」,⛔ 滤波不算其中一层、消抖也不算,见 3.1),连同排在它们之前的滤波与线性化,都是与被测量无关的通用工具。它们不带任何关于被测对象的先验知识——只看数值序列本身,以及另一路信号或一个模型估计值。正因为如此,同一套工具可以原样套到温度、压力、流量、湿度、电流任意一路上。

但通用性有边界,而且边界就在隔壁。 车外环境量(外温、日照、海拔这一类)另有一套专有的误差机理与专用修正手段:机舱热浸与路面辐射带来的系统性误差、车速门控、上升与下降不对称的滤波、停车衰减与上电初值继承、云端裁决。这些手段有一个共同点——它们全都是「已经知道被测的是外温」才设计得出来的,属于 G12-04 座舱与空气侧传感器:外温/内温/日照/蒸发器温度的误差机理、布置与补偿 的射程。

⛔ 本课只写去向,不给 G12-04 座舱与空气侧传感器:外温/内温/日照/蒸发器温度的误差机理、布置与补偿 的任何参数与判据

易错点(两个方向都错,且都很常见):

  • 把外温那套非对称滤波(上升慢、下降快)当成一条通用的滤波推荐,搬到电池温度或冷媒压力上。非对称滤波会人为制造方向性偏差——用在一个要进闭环、还要做速率检查的量上,它同时污染控制与诊断两侧。
  • 反过来,把本课「按控制带宽反选 τ_filter」这条方法直接搬到外温这类根本不进闭环的量上。它没有控制带宽可反选,硬套就只能拍脑袋。

1.7 符号约定:四个 τ 全带下标,全课禁止裸写 τ 与 σ

★ 这一节是本课自定的写作约定,不是任何既有材料的规定。之所以要在第 1 讲末尾一次钉死,是因为本课里同名不同义的符号密度很高:τ 至少有四个含义,量纲全都是秒、数量级还可能相近。不钉死,读者会把某一讲的判据代进另一讲的公式,而代错之后每一步计算都不会报错。

易混符号(一律带下标或分列,见到裸写就是写错了)

符号 含义 单位 由谁给出
τ_sensor 敏感元件热时间常数 s G12-01 温度/压力/流量/湿度传感器选型与布置
τ_RC 模拟域抗混叠滤波的时间常数 s K2-01 热管理控制器(域控/ECU)硬件架构
τ_filter 数字滤波时间常数 s 本课(第 2 讲反选)
τ_int 滤波输出的积分自相关时间 s 本课(第 3 讲推导)
Δt 采样周期(周期任务架构下=承载它的那个任务的周期) s 随任务设计定(K4-01 热管理嵌入式软件架构与 AUTOSAR 基础);本课据它整定其余各量,⛔ 不单独拍板(1.4 口径 4)
ΔT 温差 K 视场合
q 量化台阶 与被测量同量纲 由 ADC 位数与量程定
热流率(仅出现在互换识别的热平衡反算里) W 视场合
P_fa 标准正态单侧尾概率 无量纲 数学量
m 差分窗长(样本数) 无量纲 本课
质量流量 kg/s 视场合
r 模型残差 与被测量同量纲 本课
R 电阻 Ω 视场合
σ_q 量化噪声标准差 与被测量同量纲 本课
σ_y 滤波输出噪声标准差 与被测量同量纲 本课
σ_slope 斜率噪声带 被测量单位/s 本课

五条硬约定:

  1. 全课禁止裸写 τ,一律带下标;正文、图上、图注与图片的替代文字同样一律带下标。写「时间常数 τ」而不写是哪一个,读者无从判断该代哪个值。
  2. 全课禁止裸写 σ,同上;σ_q、σ_y、σ_slope 三者是链上三个不同位置的量,量纲还不一样(前两者与被测量同量纲,第三个多一个「每秒」)。
  3. Δt 与 ΔT 不得互写m 与 ṁ 不是同一个量(一个是样本数、无量纲,一个是质量流量、kg/s);r 与 R 分列
  4. 标准正态单侧尾概率本课刻意写作 P_fa,不写作常见的 Q(k)——就是为了避开与热流率 Q̇ 撞名。
  5. 采样序号全课一律写 j,禁止用 n、k、N 当序号。这三个字母在本课都已经各有其义:n=中值窗长、N=滑动均值窗长、k=噪声带倍数(虚警系数)。序号与窗长、倍数全都无量纲,代错了一步都不会报错,所以这一条与前两条同级。(本课不出现复数运算,j 不表示虚数单位。)

其余符号(不易混,但一并钉住口径,后面各讲直接取用):f_s=采样率(Hz);f_max=链路上实际存在的最高频分量(Hz);f_c,analog=模拟域限带的截止频率(Hz);f_c=数字滤波的 −3 dB 截止频率(Hz);α=一阶低通系数(无量纲);N=滑动均值的窗长(样本数,⚠ 与中值窗长 n、差分窗长 m 分列,三者是不同滤波环节上的窗;⛔ N 只表示滑动均值窗长这一件事,消抖窗内的样本数一律写成 t_debounce/Δt 或 N_eff,不得裸写 N);n=中值窗长(样本数,见 2.4);ρ=差分两端点的相关系数(无量纲);N_eff=消抖窗内的有效独立样本数(无量纲);x̂=软测量或模型估计值(与被测量同量纲);slew_max=速率检查阈值(被测量单位/s);t_debounce/t_heal/t_hold/Δt_align_max(s);T_msg=报文周期(s);T_task=ECU 任务周期(s);ε=一致性判据的容差带(与被测量同量纲);k=噪声带倍数,即速率检查门限所取的标准差倍数、也就是虚警系数(无量纲,由允许的虚警率定,见 3.13;⛔ 不得再用它当采样序号);j=采样序号(无量纲,全课统一,见上面第 5 条硬约定);V_low_th/V_high_th=比例式传感器正常输出电压带的下/上阈值(V,⚠ 由硬件侧与 K2-01 热管理控制器(域控/ECU)硬件架构 一起定,不由通信矩阵定)。

本讲小结:第一讲交付了三样东西。一张链图——十二级加三条旁路,后面所有失效模式、诊断手段与时间量都挂在它上面;只沿模拟单线枚举,会整类漏掉总线支路、反向偏置支路、消费端分叉与接收端一整级。一张延迟账——十一行信号侧的时间量竞争同一份预算,每行都要写明由谁给出,而这张表要交出去与执行器侧、通信侧、任务侧合账,本课不给合账后的总延迟,也不给可达带宽结论。一张符号表——四个 τ 全带下标、三个 σ 全带下标,全课不许裸写;三个无量纲的字母各归各的量(n=中值窗长、N=滑动均值窗长、k=噪声带倍数),采样序号一律写 j。此外还钉了三条判断:判「正常」用什么量随输出形式而变,判据不可互套;采样率要按限带之后的 f_max 定,而限带只能在模拟域做;混叠与「采样周期和控制回路周期的匹配」是两件事,共用一个 f_s 不等于可以互相推导。

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

会员专属

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

查看会员方案