这套方案的骨架其实很简单:一片 MP2642GR-Z 负责在两个串联电池单元之间搬电荷,一片 PIC18LF46K42 负责盯着电压并决定什么时候搬、什么时候停。项目场景是一款 2S 磷酸铁锂备用电源模块,额定 6.4V,用在储能配套辅助电源、小型后备电池组这类场合。在做这个项目之前,我一直觉得两节电芯串联根本不需要认真做均衡——容量差不多、倍率差不多、出厂又是同一批,能差到哪去?直到一台样机在模拟浮充环境跑了一个多月,出现明显的容量衰减和单串过压告警,我才老老实实把均衡当成正式设计来做。
这篇文章就把整个设计过程摊开讲:为什么两串电池反而是均衡的重灾区,MP2642GR-Z 和 PIC18LF46K42 各自承担什么角色,飞跨电容怎么选,MCU 侧的均衡状态机怎么写,以及调试过程中踩过的几个很有代表性的坑。如果你也在做低压小容量储能或备用电源方案,应该能直接照着思路落地。
1. 两串电池组为什么是均衡的重灾区
1.1 小系统里的两串电池,往往是被忽略的角落
储能系统大家习惯聊高压大容量,动辄十几串上百串,均衡方案一搜一大堆。但两串电池在备用电源里其实非常常见:两个磷酸铁锂或三元电芯串联,输出 5V 到 8.4V 之间,给门禁、传感器节点、家庭储能辅助电源这类负载供电。
这类系统有个共同特点:电池大部分时间不是工作在充放电循环里,而是处于"浮充待命"状态。很多小储能模块根本没有完整的 BMS 概念,只用一个保护板做硬件保护,电压差一点就"随它去"。可偏偏浮充对不一致性最敏感——电芯长期被顶在接近满电的电压区间,只要有微小的自放电差异或容量差异,高压电芯就会被越顶越高,低压电芯则慢慢往下掉。
我做的那台样机就是这样:一组标称 6.4V 的 2S 磷酸铁锂,浮充一个月后拆开量,A 串 3.63V,B 串只有 3.08V。整机还在正常输出,但容量已经折了大半,而且高压串随时有胀气风险。这让我意识到,均衡在低压小系统里不是"可选优化",而是安全设计的一部分。
1.2 不一致从哪来:制造离散、温度梯度、连接电阻
两串电池的电压差不是凭空产生的,归纳起来主要有三类来源。
第一类是制造离散。就算是同一批次、同一厂家出厂的电池,容量、内阻、自放电率也会有百分之几的差别。这些参数在出厂时不一定超规格,但串在一起工作后,容量偏小的那节总是先充满、先放空,电压自然容易漂。
第二类是温度梯度。储能模块内部空间小,电池常常和功率器件挨得近。如果离发热源近的那节电芯温度高两三度,它的自放电和化学反应速度都会不一样,长期下来电压曲线就开始分叉。尤其备用电源常年运行,时间尺度是月甚至年,几度温差足以积累出几十毫伏的差异。
第三类是连接电阻。两节电池之间靠镍片或者线束串联,焊接点、压接点、线缆长度如果有差别,充放电电流在这段电阻上产生的压降也不同。放电时电流方向固定,这个压降会持续叠加在电压读数上,让低压侧看起来更低、高压侧看起来更高。
这三种来源叠加起来,静止状态下两串压差超过 50mV 并不稀奇。而备用电源恰恰最常处于静止状态,压差就这样静悄悄地越拉越大。
1.3 被动均衡在两串系统里的尴尬位置
很多保护板自带的均衡是"被动式",也就是在每节电池旁边并联一颗几百欧的电阻和一颗 MOSFET 开关,检测到某串电压偏高就把它通过电阻放掉一点电。
这套思路在 4S 以上的大容量电池组里很成熟,但放到两串低压小系统里就很尴尬。一方面,均衡电阻放电会发热。模块空间本来就小,做 100mA 的均衡电流意味着电阻上要耗掉三百多毫瓦,连续开几个小时,外壳都能感觉到温热。另一方面,被动均衡只在充电过程或者电池处于"高电量且有人管理"的状态下才会有明显效果。备用电源大部分时间不充电,高压串的能量只能"干烧"成热量,毫无意义。
更重要的一点是,被动均衡把高压电芯的多余能量白白浪费了。而主动均衡不一样,它把能量从高压串搬到低压串,不是烧掉,是"挪过去"。对容量只有两三千毫安时的小电池来说,省下的这点能量直接关系到后备时间能多撑多久。
1.4 "电流一样"不等于"电压一样"
经常有人问:两节电池串在一起,流过的电流完全一样,怎么会不一致?
这里需要掰开讲一个事实:串联回路电流确实强制相同,但每节电芯的 SOC 变化量取决于它自己的容量和库仑效率。同样流过去 1Ah 电荷,容量 2Ah 的电芯 SOC 上升 50%,容量 2.1Ah 的电芯只上升 47.6%。两种电流完全一样,但最终电压位置会越差越远。
这就像两个体力不同的人并肩骑车,脚蹬的圈数完全一样,但心率、出汗量、后续的续航能力完全不同。电池内部没有"主动调节"能力,电流只会机械地流过去,最终电压曲线自然分叉。
既然理清了根源,方案思路就出来了:需要一种机制,在系统空闲时把能量从电压高的电芯往电压低的电芯搬,搬多少由实际压差决定。这就是 MP2642GR-Z 这种开关电容主动均衡器要做的事。
2. 硬件架构:谁搬运、谁决策
2.1 整体框图与职责划分
先看整体结构。这套系统可以画成下面这个样子:
电池组:Cell2(+) ——— 串联中点(MID) ——— Cell1(-/GND) MP2642GR-Z 挂在 Cell2 两端、Cell1 两端,并通过飞跨电容 Cfly 在三节点之间来回切换,把电荷从高压串搬到低压串。 PIC18LF46K42 采样 Cell1、Cell2 电压,计算压差, 输出 EN 信号控制 MP2642 均衡功能的开启和关闭。 整机通过一颗低压差 Buck 从电池组总压取电,给 MCU 提供 3.3V。 UART 用于调试和数据上报。这个分工很明确:MP2642GR-Z 是"执行者",负责实际的电荷搬运;PIC18LF46K42 是"决策者",负责测量、判断、保护和汇报。两条腿走路,电源部分尽量简单可靠,逻辑部分尽量灵活可控。
2.2 为什么选 MP2642GR-Z 这颗开关电容均衡器
两串电池的主动均衡,市面上有两条主流路线:电感式双向变换器和开关电容式充电泵。电感式可以做到更大电流、更高效率,但需要一个功率电感,占板面积和成本都上去了,对于 2S 小系统来说有点杀鸡用牛刀。
MP2642GR-Z 这类开关电容均衡器走的是另一个方向:内部集成一组开关矩阵,外部只需要一个飞跨电容,就能在高压串和低压串之间来回倒换能量。没有电感、没有续流二极管、没有复杂的环路补偿,外围器件少到令人发指。GR 后缀通常对应小尺寸封装,-Z 是带卷包装的订货尾缀,电气参数不受影响,但采购时下单要看清,否则容易拿到样品包装或者盘装数量不对的货。
用在这种低压小容量备用电源上,它的优势非常契合:均衡电流不需要很大,一两百毫安足够了;体积小,能塞进紧凑的模块里;本身是完整的电源级 IC,可靠性比用分立 MOSFET 搭的方案高得多。
这里有个经验可以分享:选型时不要只盯着最大均衡电流,更要关注芯片的静态功耗和使能控制方式。备用电源讲究长待机,均衡器如果一直挂在电池上吃电,几个月就把自己耗干了。MP2642GR-Z 这种带使能脚的设计,正好让 MCU 在不需要均衡时把它完全关断。
2.3 为什么用 PIC18LF46K42 做控制大脑
控制大脑的选择当时纠结了一阵:要不要上带 CAN 和复杂算法的专用 AFE?还是退回到普通 8 位单片机?最后的结论是,对于两串电池这种规模,一颗中低端 MCU 加外围采样电路反而更合适。
PIC18LF46K42 吸引我的地方有三点。第一,自带 12 位 ADC 并且支持硬件计算。它的 ADC 模块可以自动做多次采样平均、可以和阈值比较、超范围还能触发中断。这意味着 MCU 大部分时间可以睡觉,只有电压异常时才被叫醒,省下的电流非常可观。第二,它是 LF 低功耗版本,工作电压 1.8V 到 3.6V,直接配 3.3V 系统非常顺。第三,64KB Flash 和 4KB RAM 对这种规模的逻辑绰绰有余,以后想加日志存储、加通信协议都有空间。
还有一点是个人偏好:8 位 MCU 的代码逻辑直来直去,均衡状态机这种"每秒钟查一次数据、做一次判断"的任务,不需要上 RTOS,也不需要多核并行。一个主循环加一个定时器中断就能写得清清楚楚,调试和维护成本都低。
2.4 供电与低功耗设计
供电设计有个容易踩的坑:MCU 到底从哪取电。
最简单的方案是从 Cell1(底端电芯)取电降压 3.3V。但这样有个隐患:如果底端电芯被放得很低或者单串保护断开,MCU 可能先倒下,保护逻辑反而跑不起来了。我们的做法是从电池组总压取电,经过一颗低静态电流的 Buck 降到 3.3V。这样即使某一串电压很低,只要总压还能维持 MCU 工作,保护程序就能继续跑。
待机功耗控制在系统层面也很重要。均衡关闭、MCU 进入睡眠时,整板静态电流要尽量压到几十微安以内。PIC 的睡眠模式配外设时钟停止,加上均衡器使能脚拉低,实测整板待机能做到 40μA 左右,对备用电源来说完全可以接受。
3. MP2642GR-Z 均衡电路的关键参数计算与器件选型
3.1 开关电容均衡的基本原理
要选好外围参数,得先明白这颗芯片内部在干什么。开关电容均衡的原理可以用一句话概括:把一颗电容当"搬运工",一会儿挂到高压电芯上充电,一会儿挂到低压电芯上放电,来回倒腾,能量就从高压串流向了低压串。
具体到两串结构,电池组有三个关键节点:Cell2 正极、两节之间的串联中点、Cell1 负极。在一个开关周期里,前半段飞跨电容被并到高压那串的两端,电容电压充到接近高压串电压;后半段开关矩阵换向,电容改并到低压那串两端,把刚才存进去的电荷放给低压串。开关频率不低,每次搬一点,累积起来就是持续的均衡电流。
这个拓扑最迷人的一点是:每周期搬运的电荷量正比于高压串和低压串的瞬时压差。压差越大,搬运得越快;压差越小,搬运得越慢;压差为零时,理论上均衡电流自动归零。不需要任何控制环路,物理规律自己就把问题解决了。
3.2 飞跨电容选多大:计算逻辑与直觉
飞跨电容是这套电路里最核心的外围器件,容量直接影响均衡电流。平均均衡电流可以做个粗略估算:
I_avg ≈ Cfly × f_sw × ΔV × η
其中 ΔV 是两串之间的压差,f_sw 是开关频率,η 是电荷转移效率。假设我们打算在 100mV 压差下获得 150mA 级别的均衡电流,Cfly 取 2.2μF,开关频率按几百 kHz 量级估算,这个量级是能对上的。
实际选型时不需要把公式算得太死。芯片内部一般有电流限制和驱动能力上限,电容再大,电流也不会无限涨。我们当时的做法是:先按数据手册的典型应用取 2.2μF,装在板上实测,发现 100mV 压差下均衡电流约 200mA,足够了。要求更快均衡就换 4.7μF,追求更低的开关损耗就守住 1μF 底线。
这里有一个容易忽略的点:陶瓷电容的直流偏压特性。X5R、X7R 类电容在加上额定直流电压后,实际容量会明显下降,标称 2.2μF 的电容在 6V 偏压下可能只剩 1.5μF。因此耐压规格不能卡在系统电压边缘,我建议至少选 16V 甚至 25V 耐压,容量才有保障。
3.3 外围电容、使能引脚与 PCB 布局
除了飞跨电容,每个电池节点上都要放去耦电容,10μF 级别,紧贴芯片电源脚放置。这些电容的作用是给开关切换瞬间提供瞬态电流,否则电压尖峰和振铃会非常难看。
使能引脚处理比较简单:MCU 的 GPIO 直接驱动,并在芯片侧加一个 100kΩ 下拉电阻,保证 MCU 复位期间均衡器保持关闭。这是安全策略,千万不要省略——MCU 在上电瞬间引脚状态是未知的,如果均衡器在这时候误开启,可能出现短时间异常搬运。
PCB 布局方面,最核心的一条是"飞跨电容回路必须短而粗"。开关电容拓扑的瞬态电流很大,回路电感稍大就会引起过冲和振荡。我当时画板子的时候把 Cfly 放在芯片旁边同一层,两边都是铺铜连接,走线宽度留足,实测波形干净很多。
另一个布局原则是采样线尽量独立。MCU 的电压采样要从电池端子单独走细线到 ADC 引脚,而不是从功率路径上分叉出来。这其实就是开尔文接法:功率电流走粗线,信号测量走细线,两者只在电池端子处汇合。后面调试部分会专门讲如果不这么做的后果。
3.4 为什么压差越小电流越小的特性如此关键
这项特性是主动均衡系统能够稳定收敛的前提。回想前面对被动均衡的吐槽:电阻均衡的电流和压差成正比,但它把能量转化为热量,而且无法在放电和静置阶段帮上忙。更麻烦的是,被动均衡如果不加关断控制,会一直耗电,哪怕压差只有几毫伏也在烧电阻。
开关电容均衡不一样。当两串电压接近时,飞跨电容每周期能搬的电荷趋近于零,均衡电流自动衰减到零。这意味着我们可以在系统空闲时长时间挂机,不必担心过均衡,也不用在软件里做特别精细的开关控制。MCU 只需要在宏观层面决定"要不要开启",微观层面的收敛交给物理机制自己完成。
这种"软着陆"特性对于模拟浮充条件特别重要。浮充状态下电芯电压本身就存在毫伏级的波动,如果均衡器始终以固定大电流工作,反而可能造成电压振荡。电流自动衰减的均衡器会让系统自然稳定下来,这也是我测试后才真正体会到的好处。
4. PIC18LF46K42 端的状态机与均衡决策逻辑
4.1 电芯电压检测:分压电阻、滤波与精度预算
均衡决策的基础是电压测量,而两串电池的电压测量有个天然麻烦:所有电压都叠加在公共地上。PIC 的 ADC 引脚最高只能承受 3.3V,而 Cell2 正极对地最高有 7.3V 左右,所以必须用电阻分压。
我们用的方案是两路分压、一路采样总压、一路采样 Cell1 电压。Cell1 电压范围 2.5V 到 3.65V,用 100kΩ 对 100kΩ 分压,折到 ADC 输入端大约 1.25V 到 1.8V。总压范围 5V 到 7.3V,用 100kΩ 对 300kΩ 分压,折到同样范围。Cell2 的电压由总压减去 Cell1 得到。
这个减法运算会带来一个精度陷阱:两个独立测量值的误差会叠加。12 位 ADC 在 3.3V 参考下,一个 LSB 约 0.8mV,理论上够用,但分压电阻的精度才是真正的大头。普通 1% 贴片电阻,在 1.8V 的读数上误差就有 18mV,两个测量值相减后,真实压差 30mV 可能被计算成 0mV 或者 60mV,均衡判断完全失真。
解决办法有两种:一是直接换成 0.1% 精度的薄膜电阻,成本稍高但要省心得多;二是保持 1% 电阻,在量产时对每块板做一次两点标定,把修正系数存进数据 EEPROM。我们最终选了 0.1% 电阻,省掉了产线标定环节。
分压之后还要加一级 RC 低通滤波。这里取值要平衡:RC 太大,均衡器开关噪声虽然被滤得很干净,但 ADC 采样建立时间变长,每次测量都要多等;RC 太小,滤波效果有限。我们用了 1kΩ 串 100nF,截止频率约 1.6kHz,对开关噪声有一定抑制,又不至于拖慢采样节奏。
4.2 ADC2 的硬件计算能力与待机功耗控制
PIC18LF46K42 的 ADC 不是普通意义上的"采样后给 CPU 做软件处理",它的 ADC2 模块自带累加、平均、阈值比较功能。
我们的用法是:每次测量连续采样 64 次,由硬件累加求平均,把结果直接送到比较器。如果平均值落在正常窗口内,CPU 什么都不用做;只有超过设定的高阈值或低阈值,才触发中断唤醒 CPU 去处理。这样均衡任务每 10 秒醒来一次,读取结果、决定状态、然后继续睡觉,睡眠期间整机电流能压得很低。
有人问过:为什么不直接在中断里做软件滤波?可以,但 CPU 忙碌时间会长很多,功耗和代码复杂度都上去了。硬件平均的方案等于把"测量-滤波-判断"这条流水线固化在芯片里,主循环只需要处理真正需要决策的时刻,非常契合低功耗备用电源的场景。
4.3 均衡状态机:阈值、滞回与超时保护
MCU 的核心任务可以简化成一张状态机:空闲、均衡、保护。下面是实际代码的简化版本。
// 均衡阈值定义(针对磷酸铁锂) #define BAL_ON_DELTA_MV 30 // 压差超过 30mV 开启均衡 #define BAL_OFF_DELTA_MV 5 // 压差小于 5mV 关闭均衡 #define BAL_TIMEOUT_MIN 45 // 单次均衡最大 45 分钟 #define CELL_OV_MV 3650 // 单串过压阈值 #define CELL_UV_MV 2500 // 单串欠压阈值 void battery_balance_task(void) { uint16_t v1 = read_cell_voltage_mv(CELL_BOT); uint16_t v2 = read_cell_voltage_mv(CELL_TOP); uint16_t delta = (v2 > v1) ? (v2 - v1) : (v1 - v2); // 保护优先:任何异常都立即关均衡 if (v1 > CELL_OV_MV || v2 > CELL_OV_MV || v1 < CELL_UV_MV || v2 < CELL_UV_MV) { MP2642_EN = 0; state = ST_PROTECT; report_fault(FAULT_OV_OR_UV); return; } if (state == ST_BALANCE) { // 压差收敛或超时,退出均衡 if (delta < BAL_OFF_DELTA_MV || balance_elapsed_min >= BAL_TIMEOUT_MIN) { MP2642_EN = 0; state = ST_IDLE; } } else if (state == ST_IDLE) { // 压差超限且电压区间安全,开启均衡 if (delta > BAL_ON_DELTA_MV && v1 > CELL_UV_MV + 150 && v2 < CELL_OV_MV - 100) { MP2642_EN = 1; state = ST_BALANCE; balance_elapsed_min = 0; } } }几个阈值的设计逻辑值得展开。开启阈值 30mV 不是拍脑袋定的:测量误差和正常波动控制在 5mV 以内,如果 10mV 就启动均衡,系统会频繁进进出出,白白消耗电量。关闭阈值 5mV 是滞回设计,目的是防止压差在开启阈值附近来回晃动,导致均衡器反复开关。滞回的量至少要大于测量噪声的两倍,否则就会看到后文调试里提到的"反复横跳"现象。
开启时还加了安全区间判断:底端电芯电压要高于欠压值 150mV,顶端电芯要低于过压值 100mV。这是为了防止在极端电量下做无意义的搬运,也避免均衡器本身成为压垮最后一根稻草的因素。45 分钟超时是个兜底:如果压差一直不收敛,说明可能有电芯损坏或测量异常,继续均衡没有意义,不如停下来报故障。
4.4 其他保护与上位机交互
状态机里还有一个细节:保护状态下不能"一次告警就永久锁死"。备用电源的特点是有时会长时间离线,再来电后希望自动恢复。我们在保护条件消失后做了 30 秒的恢复计时,连续 30 秒所有电压都回到正常窗口,才允许从保护状态退回空闲状态。
UART 在这里主要扮演调试角色。原则上是开机前三分钟打印一遍电压、压差、均衡状态,之后静默,等到收到上位机查询指令再吐数据。在线调试时用示波器配合观察均衡使能波形,日志则用来判断长时间运行中有没有异常均衡记录。量产阶段可以考虑把 UART 换成 I2C,接主控做数据上报,但两串系统一般没有这个刚性需求。
5. 调试实录:测量噪声、地环路与"越均衡越不准"的问题
5.1 症状一:均衡一开,ADC 读数就跳
第一次联调就碰到一个让人头大的问题:均衡功能开启后,ADC 读出的电压值开始跳变,幅度十几毫伏到二十几毫伏,完全覆盖了我们要判断的 30mV 阈值。
当时的第一反应是怀疑 ADC 参考电压不稳。我把示波器探头夹在电池正负极两端,看到了一个规律性的高频纹波,频率刚好对应均衡器开关频率。原因很清楚:开关电容在工作时从电池抽取脉动电流,电池内阻加连线阻抗形成持续的高频压降,这个压降直接被 ADC 采进去了。
解决方案不是去改电源,而是改测量时序。我们规定:每次需要做均衡决策时,先拉低均衡使能,等 5ms 让电压稳定下来,再连续采样 64 次取平均,之后才根据结果决定要不要重新开启均衡。这样做的代价是测量窗口短,系统几乎处于"测量时暂时不均衡"的状态。对 200mA 级别的均衡电流来说,每次暂停 5ms 造成的均衡损失可以忽略。
如果是高压大电流系统,还可以考虑在测量窗口内同步采样,而不是暂停均衡,但两串小系统用暂停方案最简单可靠。
5.2 症状二:分压电阻把 30mV 的判据吃掉 20mV
第二个坑出现在电压校准环节。样机跑起来后,逻辑上"压差 35mV 才开启均衡",但实际整机在压差显示 50mV 时才动作,而且下位机读到的电压和万用表实测总有几毫伏到十几毫伏的偏差。
排查链路是这样的:先用万用表直接量电池端子电压,记录真实值;再读 MCU 内部原始 ADC 值,反推分压比;再用精密电阻箱替换分压电阻做对照。最终定位到问题出在 1% 精度电阻上。前面说过,两个 1% 电阻在减法的场景下,误差会叠加,压差计算值很可能偏差 20mV 以上。
这事的教训是:在涉及"差值判断"的测量链路上,所有器件的精度预算必须按减法场景重新核算,不能只看单个读数的绝对误差。后来的整改很干脆:把分压电阻全部换成 0.1% 精度,再在软件里保留一个两点的线性校准系数。改完之后,MCU 读数和万用表的偏差稳定在 2mV 以内,均衡判据才真正有了意义。
5.3 症状三:地线环路让均衡器"自作多情"
还有一次更诡异的现场:均衡功能明明关闭了,示波器却看到均衡使能引脚上有小幅度的毛刺,电压虽然没有达到使能高电平,但已经出现了钳位迹象。MCU 引脚读到的电平也偶尔跳动。
深挖下去发现是地环路问题。PCB 上功率地和信号地没有做严格分离,均衡器的开关电流流过信号地平面,在地阻抗上产生压降,这个压降直接耦合到 MCU 的 GPIO 线上。GPIO 线本身是 3.3V 逻辑,一旦地弹幅度够大,线上就会出现假的毛刺。
后来按经典做法整改:把系统地改成星形结构,电池负极作为唯一参考点。均衡器的大电流回路走粗功率走线,MCU 和 ADC 采样部分的小信号地单独拉一条细走线,回到电池负极处汇合。这样处理之后,GPIO 毛刺完全消失,整个系统的噪声底明显下降。
5.4 症状四:压差在阈值附近反复横跳
最后一个问题出在阈值整定上。初期把开启阈值设成 15mV,关闭阈值设成 8mV,结果发现均衡器每隔十几秒就开关一次,压差显示始终在 8mV 到 15mV 之间波动,像是永远收敛不到稳定状态。
从逻辑上看这很合理:测量噪声本身就有几毫伏,压差一旦接近阈值带,只要噪声方向合适,状态就会来回切换。均衡器频繁开关不仅增加了功耗,还让飞跨电容处于不断充放电状态,长期来看不是好事。
解决方法是把滞回拉宽:开启 30mV、关闭 5mV。这样压差必须明显超过 30mV 才会触发均衡,一旦开始均衡,就要一路拉到 5mV 以下才停止,中间不会因为噪声抖动。同时加上 45 分钟超时,万一真的拉不下去,系统也会主动放弃并报警。这组参数在磷酸铁锂电芯上表现稳定,从样机到小批量都没有再出现反复横跳。
6. 实测数据与长期运行评估
6.1 一次完整的均衡过程
样机稳定后,我们做了一组完整的均衡测试。用两台可编程电子负载分别对两节电芯做不同的放电,人为制造出 118mV 的初始压差,然后把均衡功能打开,记录电压变化曲线。结果整理如下:
| 测试项 | 实测结果 |
|---|---|
| 初始压差 | 118mV |
| 均衡电流(压差 100mV 时) | 约 200mA |
| 均衡电流(压差 20mV 时) | 约 40mA |
| 均衡时间(118mV 收敛到 8mV) | 约 3.5 小时 |
| 终点压差 | 8mV(进入滞回关闭区间) |
| 均衡期间模块最高温升 | 约 12℃(环境 25℃,温升集中在均衡器附近) |
一个值得注意的现象是:压差从 118mV 降到 30mV 只用了大概一小时,但从 30mV 降到 8mV 反而花了一个多小时。这就是开关电容均衡"电流随压差衰减"的典型曲线。时间效率不算高,但好处是温和可靠,不会把能量硬砸过去导致电芯发热。
6.2 长时间浮充对比与容量恢复
为了验证均衡对长期浮充的价值,我们用两台完全相同的模块做对照,一台开启均衡功能,一台在软件里把均衡屏蔽掉,同时放进 27℃ 恒温箱,按浮充电压 7.2V 连续挂机 90 天。
| 观察项 | 开启均衡模块 | 关闭均衡模块 |
|---|---|---|
| 第 30 天最大压差 | 12mV | 76mV |
| 第 60 天最大压差 | 14mV | 102mV |
| 第 90 天最大压差 | 15mV | 121mV |
| 第 90 天容量保持率 | 97% | 89% |
对照组的压差在第 90 天已经超过 120mV,而且容量衰减明显。均衡组始终把压差压在 15mV 以内,容量保持率也健康得多。这说明在浮充场景下,均衡真正解决了"长期静止导致电压分叉"的核心问题。
6.3 器件温升与长期可靠性
均衡器工作时的发热主要来自开关损耗和飞跨电容的充放电损耗,实测在最大均衡电流下芯片表面温升约 12℃,完全在可接受范围。备用电源外壳内通常没有风扇,这个温升需要靠板面铜箔散热,所以我特意在均衡器下方铺了一块连续地铜,通过过孔连到背面,实测温升还能再降两三度。
关于长期可靠性,目前这套方案已经在小批量设备上运行了半年多,没有出现均衡器失效或电芯过压事件。需要注意的是,飞跨电容长期处于高频充放电,建议选高可靠性 X7R 介质,避免使用 Y5V 这类容量漂移大的介质,否则均衡电流会随着温度变化明显波动。
7. 如果重新设计,我会改掉的几件事
做完这个项目,回头梳理流程,有几点如果重新设计会一开始就做对。
第一,分压电阻直接上 0.1% 精度,不要先上 1% 再想标定方案。标定方案会增加产线工序,而且两串系统的精度要求本来就不允许 1% 电阻的误差,省下的成本远不够覆盖售后排查的精力。
第二,给均衡器区域预留一个温度传感器接口。虽然目前的温升正常,但大批量后如果某批飞跨电容批次有问题,温度是最容易暴露异常的指标。当初没留这个接口,现在想加只能动板子。
第三,测量窗口应该直接设计进任务调度的基础规则里,而不是调试时才发现"一边均衡一边测量"是有问题的。简单说就是:控制器必须明确自己的测量行为是在哪个电源状态下进行的,把所有测量动作收敛到"均衡关断窗口"内执行。
第四,状态机的保护恢复逻辑要预留一个"手动清故障"命令。备用电源设备在现场检修时,如果保护锁死,操作人员不可能耐心等 30 秒自动恢复,一个简单的清除指令能大幅减少售后沟通成本。
最后说一点个人体会。两串电池的均衡,难点从来不在"搬电荷"这个动作,而在"判断要不要搬"以及"搬完之后怎么证明搬对了"。芯片负责搬运,MCU 负责决策,这句话听起来像是废话,但真正把测量精度、阈值滞回、保护逻辑和开关时序都打磨到位之后,我才理解为什么很多系统表面上看有均衡功能,实际上长期偏离目标。希望这篇记录能给正在做类似低压储能项目的朋友一些参考。