梯次利用电池分选与一致性评估:BMS 工程师的工程落地方法


title: “梯次利用电池分选与一致性评估:BMS 工程师的工程落地方法”
date: “2026-08-26”
category: “电池技术”
tags: [“梯次利用”, “电池分选”, “一致性评估”, “BMS”]
slug: “echelon-battery-screening-consistency”


引言

上一篇文章我们从产业层面聊了”两次生命”模型:动力电池退役后进入储能、低速车、通信备电等场景。但真正让这个模型跑起来的,是一整套藏在后台的分选与一致性评估技术。

对于直接面对裸电芯的 BMS 工程师来说,梯次利用最棘手的问题不是”能不能用”,而是”这一批退役电芯凑到一起,放电放到 80% SOC 的时候,压差会不会飙到 300 mV 以上”。

本文不讲产业规模,只谈工程落地:退役电芯到底怎么筛、怎么分群、怎么在 BMS 里持续评估一致性。文中的方法和公式都是现场可复用的。

一、为什么梯次电芯的一致性天生就差

一块新电池出厂时,单体之间的一致性靠的是同批次材料和严格工艺。而退役电芯来自不同车、不同年限、不同充放电习惯,个体差异被放大了几个数量级。

退役电芯的一致性差主要体现在四个维度:

  1. 容量衰减程度不一:同一批回收电芯,剩余容量可能从 60% 到 85% 不等。
  2. 内阻离散:内阻决定了发热和功率性能,老化电芯的直流内阻(DCR)可能相差 50% 以上。
  3. 自放电率差异:这是最容易被忽视的,也是梯次电池组”放着放着就没电”或”过几个月压差变大”的元凶。
  4. 开路电压(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,但梯次分选有几个硬约束不能丢:

  1. 同组电芯的容量极差要小:否则木桶效应直接吃掉整组有效容量。
  2. 同组内阻要接近:否则大电流下压差失控。
  3. 同组必须有相同的 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 基准有没有统一、自放电有没有持续追踪。把这些细节抠住了,梯次电池组才能既用得久,又用得稳。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Navigation

About

Writing on the Wall is a newsletter for freelance writers seeking inspiration, advice, and support on their creative journey.