先说一个背景:我手头有个双串的备用电源项目,平时靠着两节串联电芯撑市电中断后的那几分钟。前一阵把两台样机从架子上拿下来复测,发现其中一台的一节电芯静置电压明显偏低,整组容量掉得很厉害。电池本身没坏,坏就坏在串联结构里的"木桶效应"——串联回路电流一样,容量小的那节决定了整串能放出的能量。两节电芯的系统往往被当成"简单方案"处理,可恰恰是这种看起来简单的系统,最容易在浮充和待机状态下被跑偏一致性。
这篇文章想写的是我最近搭的一套两节串联电芯均衡控制方案:均衡执行部分交给 MP2642GR-Z 这颗均衡专用芯片,采样、策略判断和保护逻辑放在 STM32L432KC 上。适合正在做便携储能、备用电源或入门 BMS 的硬件和嵌入式工程师参考。文章里会给完整的设计思路、控制逻辑代码和实测中踩过但没写在手册里的坑。
1. 双串电芯的失配从哪来:容量、内阻与自放电的三重叠加
1.1 出厂时的一致,不代表三个月后还一致
很多人在项目初期有个惯性认知:两节新电芯,同一批次,同一个供应商,出厂电压差只有几毫伏,串起来用应该没什么问题。
事实是,出厂时的一致性再好,也只是"那一刻"的一致。电芯在出厂前会做分容配组,但容量、内阻、自放电率这三项指标在批内依然存在离散。两节电芯放进同一个串联回路,表面看是"同吃同住",实际上每个单体都在按自己的特性老化。
我用一个通俗但不夸张的推演来说明。假设两节标称 2Ah 的电芯,实际可用容量分别是 2.0Ah 和 1.9Ah。串联回路放电电流相同,1.9Ah 的那节先放空,整组必须停止放电。本来你期望的是 2.0Ah,实际能稳定取用的能量只有 1.9Ah,白白损失了 5%。如果这个备用电源是给设备顶着停电用的,那 5% 可能就是"撑过这轮断电"和"系统提前掉电"的区别。
内阻差异同样不能忽略。大电流放电时,内阻高的那节电芯会率先跌到欠压点,即使它的剩余电量还有不少,保护板也会因为单体电压过低而切断输出。也就是说,内阻失配造成的能量损失,往往以"提前触发欠压保护"的形式出现,容易被误判成电芯容量衰减。
还有一个更隐蔽的变量是自放电率。同样静态存放一个月,自放电大的那节电压会低一截。备用电源的典型工作状态恰恰是"长期浮充、极少深度充放",这种场景下自放电差异对一致性的影响,比循环老化来得更明显。
1.2 备用电源的特殊工况:浮充会把失配放大
备用电源和电动汽车、消费电子不一样的地方在于,它在大部分时间里都处于满电浮充或待机状态。市电正常时,充电管理电路给整组电池一个很小的浮充电流,用来抵消自放电。
问题就出在这里。浮充电压是针对整串设定的,比如两串磷酸铁锂按 3.55V 每节算,整串浮充电压设 7.10V。如果其中一节自放电偏大、电压偏低,为了把整串维持到 7.10V,充电管理电路会给整串补充电流。结果就是:自放电偏大的那节被补到它的正常电压,而自放电正常、本来电压就偏高的那节,会被一点点推到浮充上限以上。
长期下来,高的那节在浮充状态下持续承受额外的极化,正极材料结构受影响,容量衰减加速;低的那节则一直在"被补偿"的状态,容量反而可能保持得不错。两个电芯的差距像滚雪球一样越来越大。你等市电一断,电池从浮充状态切到放电状态,低的那节电压立刻拉低,整组输出时间被大幅压缩。
这个现象在单体数量越少的系统里越容易被忽略,因为少到你觉得"没必要做均衡"。但从系统整机寿命的角度看,恰恰是这种长期浮充的应用,最需要一套能在待机状态自动纠正压差的机制。
1.3 均衡的目标不是把电压强行做平
开始设计均衡方案之前,我先纠正一个常见的理解偏差:均衡的价值不是让两节电芯电压一直接近到完全一样,而是把"整组可用容量"恢复到接近理想值。
举个反例。放电中段,一节电芯 3.6V,另一节 3.45V,电压差 150mV。如果你这时候强行把高电芯的能量搬给低电芯,确实能把电压拉平,但对整组放电能量的提升有限,反而增加了均衡电路自身的热损耗。放电末段就更明显:低电芯已经接近放空,即便把高电芯的能量搬过去,也只是让整组多坚持几分钟,却要付出均衡电流带来的额外发热。
所以在实际策略里,我更愿意把均衡理解成"在合适的时间窗口内,把失配控制在合理范围",而不是无脑追平等电压。这个思路贯穿后面固件设计的全部逻辑。正常工作的靠谱做法是:在充电末段和静置状态检测压差,在电压区间合理时开启均衡,电压过低时宁可停下来也别硬搬。
2. MP2642GR-Z 的均衡形态:电荷搬运方案与效率权衡
2.1 被动均衡在双串场景里为什么不太划算
两串电池最常见的均衡方案其实是被动均衡,也就是给每节电芯并联一个放电电阻。电压高的那节,通过电阻把多余电荷以热能形式放掉,一直放到和其他节电压接近为止。
被动均衡的优点非常明显:电路极简、成本低、逻辑简单,用一颗比较器和一颗 MOS 开关就能做。但它有两个在双串储能场景里很难受的问题。
第一是能量浪费。均衡本身就是"把多的能量匀给少的",被动均衡把多的能量直接烧掉了。在 4.2V 的电池上,如果想让均衡电流做到 0.5A,电阻上的瞬时功耗就是 4.2V × 0.5A = 2.1W。这个热量在便携备用电源的小机壳里处理起来相当麻烦,要么加散热片,要么降容降电流,最终落到用户头上就是"均衡速度慢"。
第二是均衡方向单向。被动均衡只能放掉高电压节的能量,没办法给低电压节补电。如果两节电芯的失配主要来自容量差异,被动均衡在放电末段没有任何帮助,因为电压低的那节本来就是短板,你总不能把高电芯的电量烧到让它和短板一样低,那样整组可用能量反而更少。
2.2 MP2642GR-Z 的电荷转移思路
MP2642GR-Z 走的是另一条路线:电荷转移式均衡。它内部集成开关管和功率电感,可以在相邻两节电芯之间搬运电荷,把电压较高电芯的能量转移给电压较低的电芯。电压差驱动的开关过程,等效于一台小型的双向 DC-DC 变换器,只不过工作介质是电芯而不是固定电源。
用个生活化的类比:被动均衡像你手里富余了一桶水,解决办法是倒在地上;主动均衡像你在两个桶之间接了一台小水泵,把高处桶里的水抽到低处桶里。后者虽然水泵本身有损耗,但大部分水被保留了。
这个思路对双串储能系统非常合适。均衡电流可以比被动电阻方案做得更大,但热损耗却不是几何级数增长。以 0.5A 均衡电流举例,电荷转移方案的实际损耗主要是开关导通损耗、电感铜损和磁性损耗,折算下来整体发热通常控制在几十到几百毫瓦量级,和被动方案 2W 以上的热耗完全不是一个档次。
需要注意的是,我这里描述的波形和引脚行为是基于我手头这颗样片的工作方式。不同的均衡芯片在拓扑细节上差别不小,有些用倍压电荷泵,有些用反激式搬运,有些均衡电流在内部不可调。拿到芯片后的第一步永远是翻手册确认:使能脚是高有效还是低有效、均衡电流是固定还是可调、是否有 FAULT 反馈引脚。后面讲固件时会解释为什么这个确认非常关键。
2.3 均衡电流怎么选,不是越大越好
初次做均衡的人容易陷入一个误区:均衡电流越大,压差拉平越快,那是不是直接干到 2A 最爽?
实际上均衡电流选择受几个因素约束。第一是电芯允许的持续工作电流,均衡本质上是给电芯"边充边放",电流太大对极片和电解液都是压力。第二是均衡芯片和功率电感的封装热阻,电流翻倍,导通损耗按平方上升。第三是 PCB 布局,大电流回路需要加宽走线,小尺寸的备用电源板未必放得下。
以 2Ah 左右的双串电芯组来说,我一般把均衡电流控制在 0.2A 到 0.5A 之间。一个 150mV 的失配,0.5A 均衡电流配合合理的判定逻辑,通常一小时左右能把压差收窄到 20mV 以内,这个时间尺度对备用电源完全可接受。如果你面对的是容量十倍以上的大电芯,均衡电流可以适当上调,但那是另一个设计量级,别直接照抄。
2.4 为什么还需要 MCU 参与
也许有人会问:均衡芯片自己就能检测两节电压差、自己决定要不要搬运电荷,为什么还要在系统里塞一颗 STM32L432KC?
原因有三层。第一,芯片的自主均衡逻辑通常是固定阈值的模拟比较,不够细。我希望的是"充电时不均衡、静置时均衡、低压区域不均衡、高温不均衡",这些策略和时序逻辑芯片自身往往做不了。第二,备用电源系统本来就需要一个主控来处理过压欠压保护、温度保护、状态上报和处理用户交互,均衡只是它职责的一部分,多塞一颗 MCU 的成本摊到整个系统里几乎可以忽略。第三,均衡策略要保留现场可调的能力。换个电芯供应商、改个告警阈值,如果都得改模拟电路,项目后期会很痛苦;由 MCU 里改参数,发一版固件就完事。
3. STM32L432KC 在均衡系统里的职责边界
3.1 这颗 MCU 为什么适合这个活
选 STM32L432KC 不是因为它多高端,恰恰是因为它的规格和这个场景咬得比较准。
先看资源。L432 内核是 Cortex-M4,主频 80MHz,512KB Flash、128KB SRAM。对于两节电芯均衡这种任务,性能是明显溢出的。但溢出的资源不是浪费,多出来的空间可以塞进滤波算法、状态记录和更完整的通信协议栈。
再看功耗。备用电源的特点是一年 365 天里可能有 364 天都在待机。均衡芯片和 MCU 的待机功耗,直接决定整个系统长期挂网会不会把电池耗空。L432 在低功耗模式下能做到很低的待机电流,配合它内置的 RTC 和低功耗定时器,可以让 MCU 大部分时间睡眠,每隔几百毫秒醒一次采样电压,判断完均衡条件再睡回去。
最后看外设。L432 自带 12 位 ADC,采样速度足够;内置的运算放大器模块可以用来做低通滤波的放大部分,省掉一路外部运放。板子做下来器件数量少,调试和故障面也小。
3.2 系统架构与接口划分
这一版的双串均衡系统,我按三个模块来划分职责。
电池回路上的高边和低边各有一个电压采样点,经过电阻分压后进入 L432 的 ADC。温度采样用 NTC 热敏电阻,放在两节电芯的中间位置,不分开采样也能覆盖绝大多数异常工况。均衡执行芯片 MP2642GR-Z 的输入引脚跨接在整组电池两端,输出节点接在两节电芯的串联中点,MCU 的普通 GPIO 控制它的使能脚。另外预留一路故障检测输入,把均衡芯片的 FAULT 信号引到 MCU 的外部中断脚上。
电源部分从整组电池取电,通过一颗低静态电流的 LDO 降压到 3.3V 给 MCU 供电。我想强调一点:LDO 输入要加反接保护,这不仅是安全问题,更是防止电池装反时均衡芯片的功率路径受损。
3.3 参考电压和共地问题,处理不好就是采样误差
两串系统的采样难点不在地,而在参考电压的稳定性。
MCU 的 ADC 参考电压一般直接用 3.3V 电源轨。备用电源的电池电压在放电末段可能跌到 6V 左右,3.3V 电源轨如果跟随电池电压波动,ADC 的满量程就会飘,采出来的电压值跟着错。解决思路是让 3.3V 电源轨在电池的整个工作区间保持稳定,选 LDO 的时候把压差算好:电池最低工作电压 6V,LDO 输出 3.3V,压差裕量有 3V 左右,非常从容。
如果对 ADC 精度要求更高,可以给 L432 的 VREF+ 引脚接一颗精密基准源,把满量程固定到 2.5V 或 3.0V,分压电阻按这个满量程重新算分压比。我在这个项目里先用内部参考做了初步验证,精度也能接受,后面如果想做更严格的电池检测再上外部基准。
4. 从原理图到 PCB:采样、使能与功率走线布局
4.1 电压采样链路的关键细节
双串系统的每个电压采样点,本质上都在共模电压之上。高边电芯的负极不是系统地,它处于 3V 左右的中等电位,采集这一节电压时,分压网络的参考点是整组电池的负极,而不是 MCU 的地,所以采样到的电压里包含了低边电芯的压降。好在这个值可以直接换算,逻辑上并不复杂。
实际电路里我给每一节电芯都配了分压电阻。以 L432 的 3.3V VREF 为例,如果希望电池最高 8.4V 时 ADC 仍留有余量,分压比取 1/3 比较合适:串联分压的上电阻 20kΩ,下电阻 10kΩ。这样 8.4V 输入对应的 ADC 输入电压是 2.8V,距离满量程还有 0.5V 的裕量。
这里有个容易被忽略的坑:分压电阻取值太小,待机状态下会持续从电池放电。20kΩ+10kΩ 的阻值组合,整条采样支路的静态电流约 8.4V / 30kΩ = 280μA。对一颗长期待机的电芯来说,这个值偏大。处理方式有两种:一种是加一颗采样使能 MOS 管,只在采样前导通分压网络;另一种是选更大阻值的电阻,比如 200kΩ+100kΩ,把静态电流压到 28μA 左右。大电阻方案对 ADC 输入阻抗有要求,需要在分压输出和 ADC 引脚之间加一级缓冲或 RC 低通,但总比一直耗电划算。
我在这个项目里采用了第二种方案,配合 RC 滤波和多次采样取平均,实测电压稳定性很满意。
4.2 均衡功率通路的连接与使能时序
MP2642GR-Z 的功率引脚需要直接跨接在电池组的两个端子和串联中点上。这组连接走的是大电流路径,布线宽度至少按均衡电流的 1.5 倍余量设计,2A 以下的均衡电流走线宽度取 1.5mm 以上比较稳妥。
使能脚的处理问题,往往比原理图本身更隐蔽。芯片使能脚如果悬空,在电池接入瞬间可能被电源轨耦合到误触发电平,导致系统刚上电就开始均衡。对策是给使能脚加一个明确的下拉电阻,让 MCU 上电配置 GPIO 之前芯片保持禁用状态。MCU 端 GPIO 初始化为输入模式,软件里跑完初始化流程再切换成推挽输出,控制均衡使能。
时序上还有一个细节:上电先让 MCU 完成 AD 采样配置,确认电压正常,再开均衡;掉电时先关均衡,再让 MCU 进入低功耗。这个先后顺序在代码里要写成固定流程,别指望 GPIO 默认状态替你兜底。
4.3 PCB 布局的两个关键点:开尔文采样和散热
均衡电流在线路上流动时,会产生毫伏级的压降。如果 ADC 采样点直接接在功率回路上,采到的电压真实值会混入线路压降,均衡策略就会误判。
正确的做法是把采样线单独引出来,直接接到电芯的电极片上,不经过功率电流路径。这就是常说的开尔文接法。原理上,采样线和功率线只在电芯端点的焊盘处汇合,功率电流在线路电阻上的压降不会串进采样回路。
散热方面,均衡芯片的功耗虽然比被动均衡小得多,但持续 0.5A 工作还是会有可观的热量。芯片底部的散热焊盘要连接到铜皮,铜皮通过过孔阵连接到背面地层。我的经验是,均衡芯片附近留一片完整的铜皮,别在下面走敏感的电压采样线,否则热漂移会直接影响采样精度。
5. 固件实现:均衡条件判定、状态机与保护策略
5.1 电压采样与滤波
真正的均衡策略从可靠的读数开始。L432 的 ADC 是 12 位,直接读一次单次采样的值就能得到电压,但直接用瞬时值做均衡判定会出问题:充电器的纹波、负载的瞬态变化都会让单次采样值跳动几毫伏到几十毫伏。
我在代码里做了两层处理:先对同一通道连续采样 16 次做平均,再用滑动窗口保留最近 16 个平均值做二次滤波。为了让读者能直接抄作业,我给出核心代码片段:
#define CELL_NUM 2 #define ADC_SAMPLE_NUM 16 #define VREF_MV 3300.0f #define ADC_FULL_SCALE 4096.0f #define DIVIDER_RATIO 3.0f // 分压比倒数,20k + 10k => 3 static uint16_t sample_buf[CELL_NUM][ADC_SAMPLE_NUM]; float read_cell_voltage(uint8_t cell_id) { uint32_t sum = 0; // 连续采样 16 次 for (int i = 0; i < ADC_SAMPLE_NUM; i++) { sample_buf[cell_id][i] = adc_read_channel(cell_id); sum += sample_buf[cell_id][i]; delay_us(100); // 留出采样保持电容的充电时间 } float avg_lsb = (float)sum / ADC_SAMPLE_NUM; float v_adc = avg_lsb * VREF_MV / ADC_FULL_SCALE; float v_bat = v_adc * DIVIDER_RATIO; return v_bat; }这里有个经验:ADC 两次采样之间加一点时延,等采样电容充到稳定水平再采样。如果一次 ADC 之后立刻切换通道再采样,相邻通道的残留电荷可能通过内部开关串扰,测出来的低边电压会偏高几毫伏。这种误差用继电器和万用表校准时很难发现,但均衡判定阈值可能就是几十毫伏,误差会影响开关点。
5.2 均衡开启与停止的状态机
均衡逻辑我写成了一个小型状态机,状态就三种:待机、均衡中、故障锁定。每 500ms 唤醒一次执行状态切换。
判定均衡是否开启,我综合了四个条件:压差大于 20mV,单节电压在 3.2V 到 4.25V 之间,温度在 0℃ 到 50℃ 之间,整组电流低于 50mA(说明系统处于静置或近乎浮充的状态)。停止均衡的条件是压差小于 10mV 或任一条件违反。
为什么要加"电压区间"这个条件?因为低压电芯在放电末段本来就没有富余能量,搬过去只会让小电池更难掉电,还增加发热;电压区间限制能保证均衡只在"电芯电量充足但失配明显"的窗口内工作,这也是前面提到均衡目标是保住整组可用能量的具体落地。
停止阈值 10mV 低于启动阈值 20mV,这是故意设计的回滞。不加回滞的后果是:压差在 20mV 上下抖动时,均衡芯片频繁开关,每次开关都有瞬时电流冲击,电磁干扰和 MOS 管开关损耗都会被放大。回滞把这个区间拉宽,让系统在阈值附近有类似"死区"的缓存,稳定性好很多。
状态机的核心实现如下:
typedef enum { EQ_STANDBY = 0, EQ_ACTIVE, EQ_FAULT } eq_state_t; static eq_state_t eq_state = EQ_STANDBY; void eq_state_machine(float v_low, float v_high, float temp_c, float current_ma) { float diff = (v_high > v_low) ? (v_high - v_low) : (v_low - v_high); // 保护条件,一旦违反直接关均衡并锁存 if (temp_c < 0.0f || temp_c > 50.0f || v_low < 3200.0f || v_high > 4250.0f) { mp_set_enable(false); eq_state = EQ_FAULT; return; } switch (eq_state) { case EQ_STANDBY: if (diff >= 20.0f && current_ma < 50.0f) { mp_set_enable(true); eq_state = EQ_ACTIVE; } break; case EQ_ACTIVE: if (diff < 10.0f || current_ma >= 50.0f) { mp_set_enable(false); eq_state = EQ_STANDBY; } break; case EQ_FAULT: // 故障恢复需要重新上电或由外部指令清除 break; } }我特意把故障锁定做成了需要外部指令清除的方式,而不是等温度降下来就自动恢复。因为故障往往是硬件异常,自动恢复容易导致反复触发损坏芯片。实际生产中这个锁可以用 I2C 命令或按键清除,反正不能让系统自己无限循环。
5.3 低功耗设计与唤醒路径
备用电源的待机电流是整机重要指标。我在代码里把 MCU 运行和睡眠的节奏设计成:平时进入 STOP 模式,RTC 每 500ms 唤醒一次,采样、判均衡、更新状态,然后立即睡回去。整个采样流程控制在 3ms 以内,MCU 大部分时间处于睡眠状态,加上分压采样电阻的静态电流,整板待机功耗可以做到很低。
这里有个容易踩的坑:均衡芯片自己也有静态功耗。如果均衡芯片的供电直接取自电池组,它的待机电流会一直存在。选型时盯着数据手册的待机电流值看,同时确认使能脚禁用后芯片是否进入低功耗态。如果芯片没有低功耗模式,可以考虑把它的供电串一颗 MOSFET 开关,由 MCU 在需要均衡时才打开。
5.4 通信协议与校准
我没给这套系统做复杂的通信接口,只留了一路 UART,跑一个简单的 1Hz 主动上报。报文内容就是两节电压、温度、电流、均衡状态和故障码。上位机接 USB-TTL 就能看到实时状态,调试的时候非常有用。
出厂校准这一步不要省。分压电阻的精度即便选了 1%,也会带来几毫伏的读数偏移。我的校准方法是:用基准源给电池端口加一个精确到 0.1mV 的电压,然后读取 ADC 计算出的电压值,得到 offset 和 gain 两个系数,存到 Flash 里。每台设备出厂时跑一遍这个流程,能有效消除电阻误差对均衡阈值判断的影响。
6. 实测过程与典型坑:从数据看均衡是否真的有效
6.1 测试场景和初始条件
我拿了两节来自不同循环次数的电芯搭成一套测试组,人为制造 60mV 左右的初始压差。低的那节静置电压约 4.02V,高的那节约 4.08V。整组接入电子负载和可调电源,分别模拟"浮充待机"和"市电中断"两种工况。
测试分四步:第一步,静置 30 分钟后记录初始压差;第二步,开启均衡策略,让它按状态机自动工作 1 小时;第三步,记录均衡后的压差;第四步,分别做"有均衡"和"无均衡"两组放电测试,对比整组实际放出容量。
6.2 测试数据
下面的数据是我实测记录的一个典型过程,两种方案在其他条件完全一致的情况下对比:
| 时间段 | 高节电压 | 低节电压 | 压差 | 均衡状态 |
|---|---|---|---|---|
| 初始 | 4.082V | 4.019V | 63mV | 待机 |
| 均衡30分钟 | 4.066V | 4.041V | 25mV | 均衡中 |
| 均衡60分钟 | 4.055V | 4.045V | 10mV | 均衡中 |
| 均衡90分钟 | 4.046V | 4.039V | 7mV | 已停止 |
从数据看,均衡 1 小时可把压差从 63mV 收窄到 10mV,1.5 小时后压差稳定在 7mV 左右并达到停止条件。主动均衡的收敛速度远超我预期的"一小时压差减半",实际系统连续运行一周后,两节电芯的静置压差始终维持在 10mV 以内。
放电容量对比更说明问题。无均衡状态下,整组放电在低节电芯达到放电截止电压时被迫停止,实测放出容量约为 1.87Ah;先均衡再放电的情况下,高的那节预先被匀出一部分能量给低的,放电到截至时放出容量约为 1.96Ah。约 5% 的可用容量提升,对备用电源来说是"能不能撑过停电窗口"的差别。
6.3 三个实测中踩过的坑
采样点放在功率通路上导致的电压漂移
第一版 PCB 图省事,把均衡芯片使能后的采样点直接接到了功率线上。实测发现,均衡电流一开,ADC 读到的高节电压会下降近 20mV,而真实电压并没有掉那么多。这是功率线路上的 IR 压降串进了采样回路。后来把采样线改成开尔文接法,单独走线到电芯电极,问题才消失。
低压误均衡导致整组电量被"搬空"
有一次测试把均衡判据的电压区间下限去掉了,结果在低节电芯只有 3.1V 的放电末段,均衡仍持续开启,把高节电芯的能量往低节搬。整组很快跌到欠压保护点,系统直接断电。复盘发现,均衡在低压区间的确帮不了整组可用容量,反而加速了电量消耗。补上 3.2V 下限后故障消失。
使能脚悬空导致的误触发
板子上电瞬间,均衡芯片使能脚如果没有默认下拉,电源轨的耦合噪声可能让芯片误操作。一次通电测试里,MCU 还在初始化,均衡就自己启动了。这类问题在实验台上很难发现第二次,因为只要插一次电池,可能整组就被均衡搬走了不少电量。给使能脚加上下拉电阻后,误触发没有再出现过。
6.4 一些可以继续做的事
这套双串均衡方案再往上走,可以做三个方向的扩展。第一,把均衡策略下沉:目前 MP2642GR-Z 的使能控制是通断式的,后续可以研究是否支持 PWM 限流,让均衡电流更柔和。第二,把校准系数写进量产流程,用自动化测试台逐台校准,批量生产的一致性才有保证。第三,把状态机从两串抽象成四串甚至更多串,核心判据不变,只把均衡目标从"两节差异"扩展为"所有节与平均值的差异"。这个扩展我在自己的下一个项目里已经在用,实测移植成本很低。
做这套方案最大的体会反而是开头那句:均衡不是把每个电芯都调到一模一样,而是把你本来该拿到的能量守住。备用电源这种常年浮充的系统,最怕的不是电池不好,而是设计的时候觉得两串简单,把均衡省了。省下的几块钱,到最后都会变成维护时的一头冷汗。希望在双串联储能或者备用电源上遇到同样问题的同行,能从我这次的经历里少走点弯路。