2. 电池测试数据与标定输入准备

状态估计算法标定的质量,首先取决于输入数据的质量。无论后续使用扩展卡尔曼滤波、无迹卡尔曼滤波还是等效电路模型参数辨识,若测试数据本身存在容量基准不一致、OCV静置不充分、HPPC脉冲采样错位或温度覆盖不足,标定结果都会出现系统性偏差。本节围绕四类基础测试——容量测试、OCV测试、HPPC测试、倍率与温度测试——说明测试设计要点,并给出数据清洗、时间对齐与工况切片的可执行方法。

一、四类基础测试的设计要点

容量测试是全部标定的基准。以某磷酸铁锂电芯为例,标称容量50 Ah,采用0.33C(约16.5 A)恒流放电至2.5 V截止,静置1 h后以同倍率恒流恒压充电至3.65 V,截止电流0.05C(2.5 A),再静置1 h。记录放电安时积分值作为可用容量Cact。若三次重复测试的容量极差超过1.5%,说明电芯一致性或测试环境存在问题,需排查后再进入后续测试。容量值直接决定SOC定义中的分母,必须优先确定。

OCV测试用于建立OCV-SOC关系曲线。常用小电流充放电法或间歇静置法。以间歇静置法为例:从满充状态开始,每次放出5%SOC(2.5 Ah),静置2 h待端电压变化率小于1 mV/min后记录OCV,直至放空;再以相同步长充电并记录。这样可获得21个SOC点的OCV数据。静置时间不足是常见错误——若仅静置30 min,端电压尚未稳定,OCV曲线在平台区会出现明显滞后,导致后续SOC估计在平台区误差放大。

HPPC测试用于辨识欧姆内阻、极化内阻与时间常数。典型设计为:在10%、20%……90%SOC共9个点分别执行脉冲序列——放电脉冲(如1C、10 s)、静置40 s、充电脉冲(0.75C、10 s)、静置40 s。采样率建议不低于10 Hz,以便捕捉欧姆压降的瞬时跳变。脉冲电流方向、幅值、持续时间必须与后续模型标定所用的激励一致,否则辨识出的R0、R1、C1无法直接使用。

倍率与温度测试用于覆盖实际工况边界。倍率维度可取0.33C、0.5C、1C、1.5C;温度维度可取-10℃、0℃、25℃、45℃。每个温度点下重复容量测试与HPPC测试,形成“温度—倍率—参数”三维数据。注意低温下内阻显著增大,-10℃时R0可能达到25℃时的3~5倍,若标定模型未包含温度修正项,低温SOC估计将严重偏离。

电池测试数据准备与标定输入链路 容量测试 0.33C 恒流放电 2.5V 截止 / 静置1h 安时积分 → C_act 极差 >1.5% 需排查 OCV测试 5%SOC 步长间歇静置 静置2h / <1mV/min 21点 OCV-SOC 曲线 静置不足→平台区滞后 HPPC测试 9个SOC点脉冲序列 1C/10s 放 + 0.75C/10s 充 采样率 ≥10Hz 激励须与标定一致 倍率与温度测试 倍率: 0.33C/0.5C/1C/1.5C 温度: -10/0/25/45℃ 每点重复容量+HPPC 低温R0可达25℃的3~5倍 数据清洗 · 时间对齐 · 工况切片 数据清洗 剔除跳变点 / 补缺失 / 去重复时间戳 时间对齐 统一时基 / 插值 / 对齐电流电压采样 工况切片 按SOC区间 / 温度 / 倍率切分数据集 标定输入数据集 OCV-SOC 查表 · R0/R1/C1 参数表 · 容量基准 C_act · 温度修正系数 训练集 / 验证集 / 测试集 按工况切片划分 输入质量决定 SOC/EKF 标定精度上限

二、数据清洗:从原始记录到可用序列

原始测试数据常见四类问题:时间戳重复或跳变、电流电压采样不同步、异常尖峰、缺失片段。清洗时按以下顺序处理:

  1. 时间戳去重与排序:若同一毫秒出现多条记录,保留最后一条;若时间戳回退,按采集顺序重新编号。
  2. 异常值剔除:对电流序列计算滑动标准差,若某点偏离中位数超过5倍标准差,标记为异常并置为前后均值。电压序列同理,但阈值可放宽至3倍,避免误删真实脉冲跳变。
  3. 缺失补全:对短于2 s的缺失段,用线性插值;对长于2 s的缺失段,直接截断该段数据,不参与后续标定。
  4. 单位统一:电流统一为A(充电为正或放电为正需全文一致),电压统一为V,温度统一为℃,时间统一为s。
注意:电流方向约定必须在全文和所有数据文件中保持一致。建议采用“放电为正、充电为负”的约定,并在数据表头中显式标注。若混用,HPPC辨识出的R0符号会出错,导致模型发散。

三、时间对齐:让电流、电压、温度落在同一时基

测试设备通常以不同采样率记录电流、电压和温度。例如电流采样10 Hz,电压采样10 Hz,温度采样1 Hz。时间对齐的目标是生成一张统一时间戳的数据表,每行包含同一时刻的I、V、T。做法如下:

# 示例:将温度1Hz数据对齐到10Hz主时基
# 主时基 t_main = 0, 0.1, 0.2, ... (10Hz)
# 温度序列 t_temp = 0, 1, 2, ... (1Hz)
# 对温度做零阶保持或线性插值
import numpy as np
t_main = np.arange(0, 100, 0.1)
t_temp = np.arange(0, 100, 1.0)
T_temp = np.array([25.0, 25.1, 25.2, ...])  # 实测温度
T_aligned = np.interp(t_main, t_temp, T_temp)
# 结果:T_aligned 与 I、V 共享同一时间轴

对齐后需检查:在HPPC脉冲起始时刻,电流跳变与电压跳变的时间差应小于一个采样周期(0.1 s)。若发现电压响应滞后超过0.3 s,说明设备通道间存在硬件延迟,需在数据中补偿固定时延。

四、工况切片:按标定需求切分数据集

完整测试数据往往包含多个SOC区间、多个温度点和多种倍率。直接整段用于标定会引入不必要的耦合。工况切片按以下维度进行:

  • 按SOC区间切片:将HPPC数据按10%SOC间隔切分为9段,每段包含一个完整的脉冲序列,用于逐点辨识R0、R1、C1。
  • 按温度切片:将-10℃、0℃、25℃、45℃的数据分别存放,用于拟合温度修正系数。
  • 按倍率切片:将0.33C、0.5C、1C、1.5C数据分开,用于验证模型在不同倍率下的泛化能力。
  • 训练/验证/测试划分:建议按工况切片后,随机抽取70%作为训练集,15%作为验证集,15%作为测试集。注意同一SOC点的数据不能同时出现在训练集和测试集中,否则会高估模型精度。
实操建议:切片后的每个数据文件命名应包含温度、倍率、SOC区间和测试类型,例如 HPPC_25C_1C_SOC50_60.csv。这样在后续标定脚本中可直接按文件名筛选,避免手工整理出错。

五、标定输入清单与检查项

完成上述处理后,交付给标定环节的输入应包含以下内容,并逐项检查:

输入项内容检查项
容量基准C_act(Ah)三次重复极差≤1.5%
OCV-SOC表21点SOC与OCV对应关系静置末端变化率<1 mV/min
HPPC参数表各SOC点R0、R1、C1脉冲前后SOC偏差<2%
温度修正系数各温度下参数相对25℃的比例覆盖-10℃~45℃
统一时基数据I/V/T同时间戳CSV脉冲起始对齐误差<0.1s
切片数据集按温度/倍率/SOC分文件训练/测试无同SOC点交叉

以上六项全部通过检查后,方可进入SOC估计算法标定环节。若其中任何一项缺失或不合格,后续标定结果将不可信。实际工程中,建议将上述检查项固化为脚本自动执行,每次新数据入库时自动校验并生成报告,减少人工疏漏。