title: “梯次利用电池分选与一致性评估:BMS 工程师的工程落地方法”
date: “2026-08-26”
category: “电池技术”
tags: [“梯次利用”, “电池分选”, “一致性评估”, “BMS”]
slug: “echelon-battery-screening-consistency”
引言
上一篇文章我们从产业层面聊了”两次生命”模型:动力电池退役后进入储能、低速车、通信备电等场景。但真正让这个模型跑起来的,是一整套藏在后台的分选与一致性评估技术。
对于直接面对裸电芯的 BMS 工程师来说,梯次利用最棘手的问题不是”能不能用”,而是”这一批退役电芯凑到一起,放电放到 80% SOC 的时候,压差会不会飙到 300 mV 以上”。
本文不讲产业规模,只谈工程落地:退役电芯到底怎么筛、怎么分群、怎么在 BMS 里持续评估一致性。文中的方法和公式都是现场可复用的。
一、为什么梯次电芯的一致性天生就差
一块新电池出厂时,单体之间的一致性靠的是同批次材料和严格工艺。而退役电芯来自不同车、不同年限、不同充放电习惯,个体差异被放大了几个数量级。
退役电芯的一致性差主要体现在四个维度:
- 容量衰减程度不一:同一批回收电芯,剩余容量可能从 60% 到 85% 不等。
- 内阻离散:内阻决定了发热和功率性能,老化电芯的直流内阻(DCR)可能相差 50% 以上。
- 自放电率差异:这是最容易被忽视的,也是梯次电池组”放着放着就没电”或”过几个月压差变大”的元凶。
- 开路电压(OCV)曲线形变:老化导致 OCV-SOC 曲线整体偏移甚至畸变,直接影响 SOC 估算基准。
这四个维度里,前两个可以在静态分选阶段测得七七八八,后两个必须在动态评估和成组后的 BMS 里持续跟踪。
二、分选的第一步:先做”体检”,再谈”配对”
分选的核心逻辑一句话:先把每一颗电芯的可量化特征测出来,再按特征聚类分组。跳过体检直接按”看着还行”成组,是梯次项目失败最常见的原因。
体检阶段至少要拿到以下数据,每颗电芯一条记录:
| 特征 | 测试方法 | 工程意义 |
|---|---|---|
| 剩余容量 C | 标准充放电循环 | 决定成组后的总能量上限 |
| 直流内阻 DCR | 脉冲放电(如 1C 10s) | 决定发热与峰值功率 |
| 自放电率 k | 满电静置 7~14 天测压降 | 决定长期静置后的压差恶化速度 |
| OCV 曲线 | 小电流活化后逐点读取 | 决定 SOC/SOP 估算精度 |
其中 DCR 的脉冲测试有个关键细节:放电脉冲结束后的电压回弹(recovery)本身也携带信息。老化的电芯回弹慢,这反映的是内部锂离子扩散阻力 R_diff,而不是单纯的欧姆内阻。如果只测 10s 端电压算 DCR,会把扩散阻抗也糊进欧姆项里,导致分群误差。
三、一致性量化:别只看压差,要看”内阻加权压差”
很多工程师喜欢用”最大压差 ΔV_max”来判断一组电池健不健康。这在大电流充电末端是有用的,但在梯次电芯上会误判。
举一个真实会遇到的场景:两颗电芯 OCV 曲线轻微偏移,静置时压差只有 10 mV,看着完全没问题。但一旦开始 1C 放电,其中一颗内阻高 5 mΩ,那么 1C(假设 100 Ah)就多压降 0.5 V,压差瞬间破百 mV,BMS 直接触发欠压保护。
所以工程上更稳妥的指标是内阻加权的动态压差:
ΔV_dynamic(i) = |OCV_i(SOC) - OCV_avg(SOC)| + I × (R_i - R_avg)
其中 I 是当前电流,R_i 是第 i 颗电芯的 DCR。这个式子把”静置差异”和”负载差异”拆开了,能分别定位问题是出在容量不一致还是内阻不一致上。
真正要控制的是总压差的包络,经验上梯次储能系统在 80% SOC、0.5C 放电时,组内压差应控制在 50 mV 以内,超过就要触发主动均衡或降功率。
四、分群算法:用 K-Means 加约束,而不是拍脑袋分组
拿到特征向量后,分群本质是一个聚类问题。最常用的就是 K-Means,但梯次分选有几个硬约束不能丢:
- 同组电芯的容量极差要小:否则木桶效应直接吃掉整组有效容量。
- 同组内阻要接近:否则大电流下压差失控。
- 同组必须有相同的 SOC 基准:分群前必须把每颗电芯充/放到同一 OCV 基准点,否则后面全是乱的。
下面是一段可复用的 Python 伪代码,展示”容量-内阻”二维聚类后带约束筛选的思路:
from sklearn.cluster import KMeans
import numpy as np
# features: [capacity, dcr] 归一化后
X = np.column_stack([norm_capacity, norm_dcr])
kmeans = KMeans(n_clusters=k, random_state=0)
labels = kmeans.fit_predict(X)
grouped = {}
for idx, lab in enumerate(labels):
grouped.setdefault(lab, []).append(idx)
# 后处理约束:剔除组内容量极差 > 2% 的离群电芯
def filter_group(indices):
caps = [capacity[i] for i in indices]
mean_cap = np.mean(caps)
return [i for i, c in zip(indices, caps) if abs(c - mean_cap) / mean_cap <= 0.02]
result = {lab: filter_group(indices) for lab, indices in grouped.items()}
聚类分群之后,通常还会做一轮组间配平:如果两个分群的平均容量接近,可以合并;如果某组电芯数量不整除串并联模组,要么补料,要么拆模组结构。这一步没有捷径,得跟 Pack 结构设计联动算。
五、成组后的 BMS 持续一致性管理
分选解决的是”起点一致”,但梯次电芯的老化速度也不一样,运行半年后原本一致的一组也会慢慢发散。所以 BMS 不能只做静态保护,还要承担持续一致性监控的职责。
BMS 层面建议至少落地三个策略:
策略一:基于 SOC 区间的自放电筛查。 系统在夜间静置(电流 < 0.05C 持续 4 小时以上)时,记录每颗电芯电压,长期统计各自电压衰减斜率。斜率异常偏大的单体直接标记为”高自放电”,进入观察名单,必要时旁路。
策略二:主动均衡而非被动均衡。 梯次电芯靠被动均衡(电阻放电)很难压住发散速度,尤其是容量型不匹配。主动均衡(电感/电容/DC-DC 转移)能在合理成本下把压差维持住,是梯次储能系统的标配。
策略三:按内阻动态限功率。 监测单体内阻实时变化,当组内内阻离散度超过阈值时,主动下调系统峰值充放功率,用降功率换寿命和安全,而不是等到触发热管理或保护。
这三个策略的共同点,是把”一致性”从静态指标变成 BMS 里一个持续迭代的状态量,而不是出厂那一刻的一次性结论。
六、一个容易踩的坑:SOC 基准的不统一
最后专门提一个在梯次分选现场反复出问题的细节。
退役电芯回收回来时,各自残留的 SOC 千差万别,有的 20%,有的 90%。如果直接开始测内阻、测容量,所有数据的 SOC 基准都不在一个点,测出来的 DCR 和 OCV 全都不可比。
正确的顺序一定是:先统一 SOC 基准,再做特征测试。工业现场通常把所有电芯先统一充到 100%(做一次满充满放活化更好,顺便能测出真实剩余容量),或者统一放到 50% SOC 这个对 OCV 最敏感、曲线最平缓的区间段来做内阻对比。
跳过这一步,分群算法再漂亮,输入都是脏数据,输出自然不可信。
结语
梯次利用不是”旧电池凑合再用”,而是一套对一致性要求甚至高于新电池的工程体系。新电池的一致性靠出厂保障,梯次电池的一致性必须靠分选 + 分群 + 成组后 BMS 持续管理三件事一起扛。
对 BMS 工程师来说,真正吃功夫的地方从来不是模型算法本身,而是那些容易被忽略的工程细节:脉冲测试要不要看回弹、压差要不要按内阻加权、SOC 基准有没有统一、自放电有没有持续追踪。把这些细节抠住了,梯次电池组才能既用得久,又用得稳。
发表回复