尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

【BMS 系列教程】电池 SOH 特征工程实战:IC 曲线 + 物理特征,R² 从 0.49 提升到 0.90

【BMS 系列教程】电池 SOH 特征工程实战:IC 曲线 + 物理特征,R² 从 0.49 提升到 0.90 一句话定位读完本文你能给 NASA 电池数据做IC 曲线dQ/dV特征工程用 RandomForest 预测 SOH并亲手验证「物理特征 vs 裸数据只给循环序号」的差距——R² 从 0.49 提升到 0.90且循环序号的重要度不足 1%。承接上两篇第一篇用多项式回归做 RUL黑盒拟合第二篇用 EKF/UKF 做 SOC物理建模。这一篇进入数据驱动升级不再让模型裸看循环序号而是提取有物理含义的特征再喂给模型。目录背景为什么裸数据不够数据与特征设计IC 曲线原理SOH 的指纹代码实现实验结果与分析小结参考1. 背景为什么裸数据不够上一篇做 RUL 时输入只有「循环序号」输出是容量。这在单颗电池上勉强能用退化大致单调但有两个硬伤跨电池不通用不同电池退化速率不同B0006 跑到第 50 圈可能已经快报废B0007 第 50 圈还生龙活虎。循环序号和健康度之间没有统一映射。没有物理信息循环序号不携带任何关于电池内部状态内阻、活性物质、极化的信息。特征工程的思路从每次充放电的电压/电流/温度曲线里提炼出有物理含义的标量特征IC 峰值、平均电压、温升等让模型学到的是物理因果而非时间先后。2. 数据与特征设计数据继续用 NASA PCoE 的 B0005/6/7/18共636 个放电循环每循环一条样本。2.1 目标SOHSOH健康状态用「当前容量相对初始容量」定义S O H k C k C 0 (1) SOH_k \frac{C_k}{C_0} \tag{1}SOHk​C0​Ck​​(1)其中C k C_kCk​是第k kk次放电容量C 0 C_0C0​是初始容量。这样四颗初始容量不同的电池B0006 起始 2.03 Ah其余约 1.86 Ah就能统一到同一尺度。2.2 特征集每个放电循环提取 9 个特征特征物理含义随老化的变化mean_voltage平均放电电压内阻增大 → 压降增大 → 下降ic_peak_heightIC 曲线峰值高度活性物质损失 → 下降ic_peak_voltageIC 峰值电压位置电极老化 → 偏移end_voltage放电截止电压下降discharge_time放电时长容量衰减 → 缩短mean_current平均放电电流基本稳定mean/max_temperature温度内阻增大 → 温升对比组裸数据只用cycle一个特征。3. IC 曲线原理SOH 的指纹ICIncremental Capacity增量容量曲线是d Q / d V dQ/dVdQ/dV关于电压的曲线是锂电领域公认的 SOH 指纹。放电过程中累计放出容量为Q ( t ) 1 3600 ∫ 0 t I ( τ ) d τ (2) Q(t) \frac{1}{3600}\int_0^t I(\tau)\,d\tau \tag{2}Q(t)36001​∫0t​I(τ)dτ(2)IC 定义为容量对电压的导数I C d Q d V (3) IC \frac{dQ}{dV} \tag{3}ICdVdQ​(3)离散化d Q d V ≈ Q i 1 − Q i V i 1 − V i (4) \frac{dQ}{dV} \approx \frac{Q_{i1} - Q_i}{V_{i1} - V_i} \tag{4}dVdQ​≈Vi1​−Vi​Qi1​−Qi​​(4)为什么 IC 峰是 SOH 指纹d Q / d V dQ/dVdQ/dV的峰对应电极材料的相变平台。电池老化后活性物质损失、内阻增大IC 峰表现为高度下降 向低压偏移。因此 IC 峰的高度和位置能直接反映 SOH无需知道电池跑了多少圈。4. 代码实现完整脚本在src/run_feature_engineering.py分四步载数据 → 提取 IC 特征 → 三种模型交叉验证 → 出图。4.1 IC 峰值提取defic_peak(V,Q,v_lo3.2,v_hi4.0):Vsnp.convolve(V,np.ones(5)/5,modesame)# 平滑去噪dV,dQnp.diff(Vs),np.diff(Q)masknp.abs(dV)1e-3# 避开 dV≈0 的数值噪声icnp.abs(dQ[mask]/dV[mask])VcVs[1:][mask]sel(Vcv_lo)(Vcv_hi)# 只在主峰电压区间找峰idxint(np.argmax(ic[sel]))returnfloat(ic[sel][idx]),float(Vc[sel][idx])# 峰高、峰位4.2 每循环提取特征fork,(V,I,T,t,cap)inenumerate(cycles):dtnp.median(np.diff(t))Qnp.cumsum(I*dt)/3600.0# 累计放出容量ic_h,ic_vic_peak(V,Q)rows.append({cycle:k1,capacity:cap,mean_voltage:np.mean(V),end_voltage:V[-1],ic_peak_height:ic_h,ic_peak_voltage:ic_v,mean_temperature:np.mean(T),# ...})4.3 三种模型交叉验证phys[cforcindf.columnsifcnotin(cell,cycle,capacity,soh)]models{M0 裸数据(仅 cycle):[cycle],M1 纯特征工程:phys,M2 完整:[cycle]phys,}forlabel,featsinmodels.items():rfRandomForestRegressor(n_estimators300,random_state42)r2cross_val_score(rf,df[feats].values,df[soh].values,cv5,scoringr2)print(label,r2.mean())5. 实验结果与分析5.1 三模型对比5 折交叉验证模型特征R²MAEM0 裸数据仅cycle0.494 ± 0.4560.054M1 纯特征工程8 个物理特征0.889 ± 0.0680.027M2 完整物理特征 cycle0.896 ± 0.0710.0275.2 特征重要度M2特征Gini 重要度mean_voltage0.705ic_peak_height0.158ic_peak_voltage0.075mean_current0.024discharge_time0.018cycle0.008其余 0.015.3 三条结论特征工程大幅提升 R²从 0.494 到 0.889约 80%。物理特征把 SOH 的信息显式地喂给了模型。cycle几乎无用重要度仅 0.008印证了第 1 节的判断——跨电池看跑了多少圈和健康度没有统一映射信息全在电压与 IC 特征里。mean_voltage是头号特征0.70内阻随老化增大同等放电电流下端电压下降是最强的 SOH 代理变量ic_peak_height次之0.16是独立的物理指纹。说明M0 的 R² 标准差很大±0.456是因为循环序号→SOH 的映射随电池而变交叉验证时按样本随机切分训练集里的第 50 圈和测试集里的第 50 圈对应完全不同的 SOH模型自然学不动。这恰恰是裸数据缺陷的直接证据。5.4 可视化r2_compare_and_importance.png左图三模型 R² 柱状对比右图特征重要度横向条形图。ic_curve_evolution.pngB0005 在第 1/50/100/160 圈的 IC 曲线可清楚看到峰值高度随老化下降、峰位向低压偏移。6. 小结本文完成了路线图阶段②的「特征工程」子步骤核心收获SOH用容量比定义跨电池可比。IC 曲线d Q / d V dQ/dVdQ/dV是 SOH 的物理指纹峰高与峰位随老化变化。特征工程把 R² 从 0.49 提升到 0.90cycle重要度不足 1%。mean_voltage与ic_peak_height是最强特征。下一步接入 Severson 124 芯 LFP 数据集做更大规模验证并把 RandomForest 升级为 GBR / LSTM / Transformer本机已有 torch 1.13。7. 参考数据集Saha, B., Goebel, K. (2007).Battery Data Set. NASA Ames Prognostics Data Repository.IC 曲线 SOH 估计综述Tang, X. et al.A Review of the Estimation of the State of Health of Lithium-Ion Batteries Based on Incremental Capacity Analysis. Energies / Journal of Power Sources 系列。BatteryML阶段②后续基准microsoft/BatteryMLSeverson 数据集124 芯 LFPSeverson, K. A. et al. (2019).Data-driven prediction of battery cycle life before capacity degradation. Nature Energy.附代码与数据获取阶段3_IC特征工程与SOH预测/ ├── src/run_feature_engineering.py # 完整脚本 ├── results/ │ ├── features.csv # 636 条特征表 │ ├── r2_compare_and_importance.png │ └── ic_curve_evolution.png ├── requirements.txt └── README.md数据统一存于阶段1_NASA容量退化与RUL预测/data/。发布到 CSDN 时请把两张 PNG 上传插入「5.4 可视化」一节。
返回列表