3. 误差诊断的数据基础

状态估计误差诊断的第一步不是算法,而是数据。BMS 的 SOC、SOH、SOP 估计都建立在电流、电压、温度三类基础信号之上,如果这些信号本身存在采样失真、时间错位或异常值,再精细的模型也会把误差归因到错误的方向。因此本节要回答一个核心问题:诊断所依赖的数据,究竟在哪些环节可能失真,又该如何判断和处理。

一、BMS 采集变量与诊断用途

BMS 采集的变量很多,但真正参与状态估计误差诊断的核心量可以归为四类。第一类是电流,包括总电流、充放电方向与积分电荷量,它是安时积分的输入,直接决定 SOC 的累积误差。第二类是电压,包括单体电压、模组电压、总电压,其中单体电压是 OCV 查表和一致性判断的基础。第三类是温度,包括电芯温度、极耳温度、环境温度,它影响内阻、容量和 OCV 曲线。第四类是状态与时间量,包括继电器状态、充电枪连接状态、采样时间戳,它们决定数据是否有效、是否可对齐。

诊断时,我们通常把电流、电压、温度按“同一时刻、同一对象”组织成数据帧。例如某 96 串电池包,每帧包含 1 路总电流、96 路单体电压、8 路温度、1 个时间戳。只有这些量在时间上对齐,才能计算“某时刻单体电压偏差是否由该时刻电流突变引起”这类因果关系。

二、采样频率与同步

采样频率决定了误差诊断能分辨多快的变化。电流采样通常最快,常见 10~100 Hz,因为电流突变会直接影响 SOC 积分;单体电压采样常见 1~10 Hz,受限于多路复用与采集芯片速度;温度采样最慢,常见 0.1~1 Hz,因为热惯性大。若用 1 Hz 电压去诊断 100 Hz 电流引起的极化误差,就会漏掉瞬态过程。

同步问题比频率更隐蔽。多路电压采集往往通过模拟开关轮询,96 串电压并非同一瞬间采到,而是存在微秒到毫秒级的时间偏斜。当电流快速变化时,不同串电压对应的实际电流不同,直接相减会引入虚假偏差。诊断时应尽量使用同一采集周期内的电压,或对电流做时间对齐后再比较。

此外,BMS 内部各采集芯片、主控、外部充电机之间存在时钟漂移。长时间积分时,即使每帧只差几毫秒,累积后也会造成安时积分与电压观测之间的时间错位。工程上常用同步信号或时间戳插值来校正。

BMS 数据采集与诊断数据链 采集层 电流 10~100 Hz 单体电压 1~10 Hz 温度 0.1~1 Hz 时间戳 / 状态量 同步与对齐 多路轮询时间偏斜 时钟漂移校正 时间戳插值 同周期电压对齐 信号质量 噪声 / 漂移 量化误差 断线 / 饱和 温漂与增益误差 预处理 滤波 异常值剔除 缺失值处理 归一化 诊断可用数据帧 同一时刻 · 同一对象 · 有效标记 · 质量评分 误差归因 数据问题 vs 模型问题 数据链任一环节失真,都会在诊断中被误判为模型误差 因此诊断前必须先确认采集、同步、质量与预处理状态

三、电流、电压、温度信号质量

电流信号最常见的问题是零漂与增益误差。霍尔电流传感器在零电流时输出并非严格为零,若未校准,长时间静置后 SOC 会缓慢漂移。诊断时可观察“静置电流绝对值是否长期大于 0.1 A”,若是则说明零漂未补偿。分流器方案则要注意温漂,大电流下分流器发热会引起阻值变化。

电压信号的问题集中在采集精度与断线。单体电压采集芯片的绝对精度通常在 ±5 mV 左右,但多串之间的相对偏差更关键。若某串电压长期比相邻串高 50 mV 以上,且不随电流变化,可能是采集通道增益异常而非电芯真实差异。断线时电压会跳到接近 0 V 或满量程,诊断中应直接标记为无效。

温度信号的问题是响应滞后与布置偏差。温度传感器贴在电芯表面,测到的是表面温度,而内阻和 OCV 依赖的是内部温度。大倍率充放电时,表面温度与内部温度可差 5~10 ℃。诊断温度相关误差时,应结合热模型判断滞后,而不是直接把表面温度当作电芯温度。

四、数据预处理与异常值处理

预处理的目标是让进入诊断的数据“干净且可解释”。常用手段包括:对电流做低通滤波以抑制开关噪声,但滤波会引入相位滞后,诊断瞬态误差时需谨慎;对电压做滑动平均或中值滤波,抑制单点跳变;对温度做慢速滤波,保留趋势。

异常值处理要区分三类情况。第一类是物理不可能值,如单体电压为负、温度超过 100 ℃,直接剔除并记录故障。第二类是统计异常值,可用 3σ 或中位数绝对偏差判断,例如某帧单体电压中位数为 3.65 V,某串为 3.20 V,偏差远超正常范围,应标记为可疑。第三类是缺失值,短时缺失可用线性插值,长时缺失应整段丢弃,避免用插值数据参与误差归因。

诊断前建议先做一次“数据体检”:检查电流零漂、单体电压极差、温度采样是否更新、时间戳是否单调递增。这四项能快速排除大部分数据层问题。

五、一个可执行的预处理检查示例

假设某帧数据:总电流 0.05 A(静置),单体电压 96 串,中位数 3.652 V,第 37 串 3.201 V,温度 8 路均为 25.3 ℃,时间戳间隔 100 ms。处理流程如下:

1. 电流零漂检查:|0.05 A| < 0.1 A,通过,但记录零漂值用于后续补偿。
2. 单体电压极差:3.652 - 3.201 = 0.451 V,远超正常极差(<0.05 V)。
3. 第37串判定:与中位数偏差 -0.451 V,标记为可疑,暂不参与一致性诊断。
4. 温度检查:8路均更新且一致,通过。
5. 时间戳检查:间隔100 ms,单调递增,通过。
6. 输出:该帧可用于诊断,但第37串电压需单独复核采集通道。

这个示例说明,预处理不是简单“清洗”,而是为诊断提供可解释的数据状态。只有明确哪些数据可信、哪些可疑、哪些无效,后续的误差归因才不会把采集问题误判为模型问题。

不要用滤波后的数据去判断传感器零漂或断线,滤波会掩盖真实故障特征。故障诊断应优先使用原始数据或仅做去极值处理的数据。

总结来看,BMS 状态估计误差诊断的数据基础包括四个层次:采集变量的完整性、采样频率与同步的匹配性、信号质量的可靠性、预处理与异常值处理的合理性。诊断时先确认数据层是否可信,再进入模型层分析,才能避免“用错数据、得出错结论”。