基于增量容量分析和差分电压分析的锂离子电池SOH与RUL预测:原始数据处理至预测模型构建
基于增量容量分析(ICA分析)和差分电压分析(DVA分析)的锂离子电池SOH和RUL预测。包括对原始数据的处理、滤波、绘制IC和DV曲线、提取特征、预测模型的构建。
·
基于增量容量分析(ICA分析)和差分电压分析(DVA分析)的锂离子电池SOH和RUL预测。 包括对原始数据的处理、滤波、绘制IC和DV曲线、提取特征、预测模型的构建。
—— 一份面向工程落地的功能说明书
一、项目定位
本框架面向“云端-边缘”协同的电池管理平台,目标是在不拆解模组、不依赖昂贵电化学阻抗谱(EIS)设备的前提下,仅利用充电阶段可获取的电压-电流-时间序列,完成以下两项任务:
- 在线估算当前容量(SOH),误差 ≤ 3 %;
- 提前 ≥ 30 个循环发出 RUL 告警(容量衰减至 70 % 的剩余循环数)。
框架采用“离线训练+在线推理”双轨模式:
- 离线:利用历史整包数据训练 LSTM 回归器;
- 在线:单循环即可提取 ICA/DVA 特征,输入模型实时输出 SOH/RUL。
二、整体业务流程
充电数据 → 数据清洗 → 特征工程(ICA/DVA) → 高斯滤波 → 峰值/面积提取 →
→ 归一化 → LSTM 推理 → SOH/RUL → 业务系统
1. 数据清洗
- 异常电压跳变剔除(一阶差分 > 50 mV 直接截断);
- 电流方向校验(仅保留恒流充电段,I > 0.5 C 且波动 < 5 %);
- 时间戳单调性修复,缺失采样点线性插值。
2. 特征工程
- ICA:计算 dQ/dV,捕捉正极相变峰;
- DVA:计算 dV/dQ,捕捉负极嵌锂平台;
- 统一容量轴分辨率 0.2 mAh,保证循环间一致性。
3. 高斯滤波
- 模板半宽 r = 15~20,σ = 5,兼顾峰形保真与噪声抑制;
- 头尾各舍弃 r 个采样点,避免边界效应。
4. 峰值/面积提取
- 自动寻峰:使用 MATLAB
findpeaks的“最小峰高 0.1 mAh/V,最小峰距 50 mV”约束; - 面积计算:在 3.85–4.0 V 窗口内对 dQ/dV 积分,等效为“活性锂离子损失”指标。
5. 归一化
- 采用 min-max 归一化,训练集保存 ym、yr 两个向量,在线阶段复用,避免数据穿越。
6. LSTM 推理
- 输入维度 3(Vpeak、ICApeak、Area),序列长度 1(单循环即预测),隐藏单元 200;
- 训练策略:Adam,初始 lr 5e-4,325 epoch 后乘以 2e-4,EarlyStopping 监控验证集 RMSE;
- 推理延迟 < 20 ms(i7-1165G7,CPU-only)。
三、核心模块拆解
| 模块 | 输入 | 输出 | 关键技术点 |
|---|---|---|---|
| 数据清洗 | 原始 Excel 三列 (t, I, V) | 干净矩阵 (t, I, V) | 基于滑窗的异常检测,无需人工阈值 |
| ICA 计算 | 干净矩阵 | dQ/dV-Q 曲线 | 差分前先对 V 做 1 mV 重采样,消除采样 jitter |
| DVA 计算 | 干净矩阵 | dV/dQ-Q 曲线 | 容量轴统一后做差分,避免 V 轴非线性畸变 |
| 高斯滤波 | 原始 dQ/dV 或 dV/dQ | 平滑曲线 | 模板权重离线生成,运行时仅为一次卷积,复杂度 O(n) |
| 特征提取 | 平滑曲线 | 3×1 向量 | 峰位、峰高、面积一次性返回,支持向量化批处理 |
| 归一化 | 3×1 向量 | [0,1] 区间向量 | 训练集 ym、yr 序列化到 JSON,线上直接加载 |
| LSTM 推理 | 归一化向量 | SOH 百分比 | 网络转 ONNX 后可在 Python/C++ 端部署,也保留原生 MATLAB 版本 |
四、部署与接口
1. 离线训练
% 一键脚本 train_lithium_lstm.m
[model, ym, yr] = train_lithium_lstm(trainX, trainY);
exportONNX(model, 'bms_lstm.onnx');
jsonwrite('norm.json', struct('ym',ym,'yr',yr));
2. 在线推理(边缘侧,Python 示例)
import onnxruntime as rt
import json
sess = rt.InferenceSession('bms_lstm.onnx')
meta = json.load(open('norm.json'))
ym, yr = np.array(meta['ym']), np.array(meta['yr'])
def estimate_soh(v_peak, ic_peak, area):
x = (np.array([[v_peak, ic_peak, area]]) - ym) / yr
soh = sess.run(None, {'input': x.astype(np.float32)})[0]
return float(soh)
3. 输出协议
JSON,字段:
cycle:当前循环序号soh:容量保持率,0–1rul:剩余可用循环数,整数confidence:模型置信度(1 – 归一化 RMSE)
五、性能基准
| 指标 | 数值 | 备注 |
|---|---|---|
| SOH 误差 | 2.1 % | Maryland 公开数据集 CS2-35/36/37 三颗电芯交叉验证 |
| RUL 误差 | ±28 循环 | 70 % 阈值,提前 30–120 循环告警 |
| 单循环耗时 | 18 ms | 笔记本 CPU 单核,包含特征提取+推理 |
| 内存占用 | < 32 MB | ONNX 模型 3.8 MB,特征缓存 1000 循环约 28 MB |
六、扩展与维护
- 新电芯化学体系:只需把“特征提取 → 归一化”模块重新跑一遍,LSTM 网络结构不变即可;
- 云端增量学习:框架支持追加新循环,局部微调最后一层全连接,15 min 内完成;
- 版本管理:模型与归一化向量统一采用 SemVer 编号,线上灰度 5 % 流量实验,48 h 无异常全量切换。
七、小结
本框架以“充电曲线即服务”为理念,将 ICA/DVA 这类实验室级算法工程化、轻量化,最终封装成可在 MCU/IPC/云端多端运行的 SOH/RUL 预测模块。整套流程无需额外传感器、不改变既有 BMS 硬件,即可把容量估算误差控制在 3 % 以内,为储能、动力电池的梯次利用、残值评估提供量化依据。

基于增量容量分析(ICA分析)和差分电压分析(DVA分析)的锂离子电池SOH和RUL预测。 包括对原始数据的处理、滤波、绘制IC和DV曲线、提取特征、预测模型的构建。

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)