资讯动态

两节串联磷酸铁锂电池主动均衡方案:从原理到实测

发布时间:2026/10/15 19:47:32 来源:尧图企业网站定制
前阵子给一套12 V的备用电源系统换电芯随手测了一下两节串联磷酸铁锂的开路电压发现差值已经超过120 mV。用了一段时间后这种差距还在扩大——充电端提前顶到过压保护放电端又提前跌到欠压阈值。整组电池名义容量是20 A·h实际能用的连一半都不到。问题就出在串联电池的一致性上。为了解决这个问题我用MP2642GR-Z当作均衡开关通路配合PIC18F47K42做电压采样和控制逻辑搭了一套两节串联电池的主动均衡电路在储能和备用电源场景里做了完整测试。这篇就把方案原理、参数计算、固件状态机和实测数据一起整理出来给打算做小容量储能均衡的人一个可以直接参照的落地方案。两节串联电池组的均衡放在整个BMS电池管理系统体系里算是比较简单的场景但简单不代表可以随便处理。电芯一旦串起来充放电电流是同一个回路容量小、内阻大的那颗电芯会先被充满也会先被放空整组的可用容量由最弱的那颗决定。均衡要做的事情本质上就是想办法把能量从电压高的电芯搬到电压低的电芯让它们在循环过程中保持同一个工作区间。这个项目里MP2642GR-Z负责能量搬运的通路PIC18F47K42负责判断何时搬运、往哪个方向搬运、搬运多少以及何时必须停止。1. 两个串联电池为什么要均衡从一次备用电源的实际容量衰减说起1.1 不一致性从哪里来很多人以为新买的电芯一致性很好串联起来不用管实际上这是一个很大的误解。厂家出厂时虽然做过配组筛选但电芯出厂后的搁置时间、存储温度、内阻变化都不一样。以我这次用的磷酸铁锂电芯为例同一批次新电芯开路电压差可能只有5 mV以内但循环几十次之后容量差可以扩大到3%以上内阻差则可能差出20%。这还只是静态差异。动态使用场景下差异会进一步放大。串联电池组中靠近发热元件的那颗电芯温度偏高化学反应速率快等效容量在低温环境下差异尤其明显放电大电流时内阻大的电芯压降更大表现出更低的端电压。备用电源系统虽然平时工作在浮充状态但市电波动会导致频繁的浅充浅放每多一次循环电芯之间的差异就被多累积一次。最终结果就是整组电池被最差那颗电芯拖累。1.2 一致性失衡带来的三个直接后果第一个后果是充电容量虚标。两节电芯串联充电充电器检测的是总电压。当一个电芯电压已经冲到3.65 V磷酸铁锂典型充电截止电压另一个才3.45 V总电压看起来还没到截止线但过压那颗已经不能再充了。如果继续充轻则电芯过压鼓包重则引发安全问题。第二个后果是放电容量提前耗尽。放电时电压低的那颗电芯先跌到2.50 V左右的放电截止电压控制器为了保护电芯会切断整个回路。这时候电压高的那颗电芯其实还有不少剩余能量但整组已经放不出电了。备用电源的可用后备时间因此被严重缩短。第三个后果是老化速度加快。电压偏高和偏低的电芯长期工作在不健康区间SEI膜固体电解质界面膜会不断增厚有效锂离子被持续消耗容量衰减速度远高于正常电芯。这形成了一个恶性循环差异越大老化越快老化越快差异越大。1.3 均衡的目标是什么均衡的目标不是让两节电芯的电压完全一样而是让它们在充放电过程中尽量保持在相近的SOC荷电状态区间。电压只是SOC的表征量受电流、温度影响很大但工程上最方便的做法还是以电压作为控制闭环的输入。具体到我的设计目标静态电压差控制在15 mV以内充放电过程中的动态电压差控制在30 mV以内均衡开启后系统短时间内能把120 mV的压差收敛到可接受范围。这个指标对两节串联的小型储能系统来说已经能显著提升可用容量。2. MP2642GR-Z与PIC18F47K42的角色分工均衡通路与控制大脑2.1 MP2642GR-Z承担的均衡通路功能MP2642GR-Z在这里不是传统意义上那种纯模拟的均衡芯片而是一个集成了双向开关网络的均衡通道控制器件。它内部包含开关电容均衡所需的多组功率开关管以及对应的驱动逻辑通过外部的均衡储能电容配合把一节电芯的能量搬到另一节电芯。MCU只需要给出方向和时间控制信号不需要自己去驱动大功率MOS管这大大简化了外围设计和固件复杂度。这块芯片的主要工作流程是先连通高电压电芯与储能电容让电容充电至接近该电芯电压然后断开连接将储能电容切换到低电压电芯一侧让电容放电给低电压电芯。这样一个完整的搬运动作完成后高电压电芯能量被转移了一部分到低电压电芯。重复这个过程两节电芯的电压就会逐渐收敛。这里要特别说明的是MP2642GR-Z内部开关管的导通电阻、开关速度这些参数决定了均衡电流的上限。实测下来使用47 uF储能电容、开关频率约5 kHz时这个通路的平均均衡电流只有几十毫安级别。这个量级对于几安时到二十安时容量的电池组是合适的不会因为均衡电流过大导致电芯发热严重。2.2 PIC18F47K42负责的采样与控制逻辑PIC18F47K42是Microchip的8位MCU内部集成了12位ADC、两个可配置逻辑单元CLC、数值振荡器NCO以及多个高分辨率PWM模块。在这个项目里我主要用到它的12位ADC做电压采样用定时器实现均衡时序控制再用通用IO加内部硬件比较器做保护判断。选这颗片子主要原因有三点一是12位ADC对磷酸铁锂电芯电压采样的分辨率足够参考电压选内部1.024 V时理论上1 mV内的分辨率可以做到二是它内部有CLC可以把某个IO引脚的异常电平直接映射为PWM输出封锁实现硬件级的快速保护三是这颗MCU的功耗很低在备用电源这种常年在线待机的场景里不会给电池系统增加太多静态功耗负担。2.3 系统信号流与整体架构整个系统的信号链路是这样的两节串联电芯的电压先经过电阻分压网络降到MCU ADC可接受的范围再经过RC低通滤波进入PIC18F47K42的ADC引脚。MCU周期性采集两节电芯电压计算压差判断均衡方向输出PWM时序控制信号给MP2642GR-Z。MP2642GR-Z根据这个时序打开内部开关桥配合储能电容完成能量搬运。同时MCU还监控电芯的过压、欠压和温度状态任何异常都立即停止均衡并进入保护状态。电路的电源设计上MCU由第一颗电芯或者整个电池组电压通过低压差LDO降压供电我实际用的是整组电压降压这样即使某一节电芯电压偏低控制电路也能正常工作不会因为低压一节电芯导致MCU掉电而失去监控能力。3. 均衡电路设计与参数计算从拓扑到元器件取值3.1 开关电容主动均衡的基本原理这次选用的均衡方案是开关电容式主动均衡基本原理可以用一个生活中的类比来理解两节电芯就像两个水位不同的水杯储能电容就像一只舀水的小碗。先用小碗从高水位的水杯舀水然后把小碗端到低水位的水杯倒进去反复操作两杯水的水位就慢慢拉平了。电路层面这个小碗就是外部储能电容C。MP2642GR-Z内部的两组开关S1/S2负责把电容接到电芯AS3/S4负责把电容接到电芯B。控制时序上先闭合S1/S2让电容充电此时充电电流从高压电芯流向电容经过一定充电时间后断开S1/S2闭合S3/S4电容向低压电芯放电。两个阶段之间存在死区时间防止上下桥臂直通烧毁开关管。开关电容均衡的效率主要由电容容量、开关频率和开关导通压降决定。电容容量越大单次搬运能量越多开关频率越高单位时间内搬运次数越多但开关损耗也随之增大。实际参数选取需要在这两者之间找平衡。3.2 储能电容容量的选取依据储能电容C的容量直接决定了单次均衡搬移的能量。单次搬运能量近似可以用公式表示E 0.5 × C × (V_high² - V_low²)。以V_high3.35 V、V_low3.23 V、C47 uF计算单次搬运能量大约为18.6微焦。一个完整的切换周期假设为200微秒5 kHz频率平均均衡电流大约就是93 mA。这里要注意储能电容如果用陶瓷电容直流偏压会导致有效容值下降。47 uF的X7R陶瓷电容在3.3 V直流偏压下实际容值可能只剩标称的50%左右所以我在实际板上用的是一只聚丙烯薄膜电容容值和ESR特性都更稳定。对成本更敏感的方案也可以用多个陶瓷电容并联但设计时一定要按降额后的容值计算否则均衡电流会远低于理论值。3.3 电压采样链路分压、滤波与ADCPIC18F47K42的ADC参考电压选内部1.024 V所以电芯电压不能直接进ADC引脚。我用两个电阻组成分压网络分压比为约11:1串联采样端用一个100 kΩ电阻、对地用9.1 kΩ电阻。电芯电压3.5 V时ADC引脚电压约287 mV留出了足够余量不满量程也不至于过压损坏引脚。分压电阻之后加了一级RC滤波电阻100 Ω、电容0.1 uF截止频率约16 kHz。这级滤波的作用有两个一是滤掉均衡开关切换时耦合到采样线上的高频毛刺二是给ADC采样电容提供充电电荷减小采样稳定时间。不过RC滤波器有个副作用就是建立时间变长每次切换均衡方向后需要等待至少5倍时间常数也就是约50微秒再采样否则读到的电压会偏小。ADC采样策略方面每路电压连续采8次去掉最大最小值后取平均等效于一个简单的数字滤波器。这个做法能有效抑制开关切换瞬间的偶发尖峰实测ADC读数波动从约20 mV降到了2 mV以内。3.4 PWM时序死区、频率与均衡方向均衡方向的切换时序是整个控制逻辑的核心。我使用的是三段式时序充电阶段、死区阶段、放电阶段。充电阶段MP2642GR-Z内部S1/S2导通储能电容接高压电芯持续时间约90微秒。死区阶段所有开关断开持续约10微秒确保开关管完全关断后再切换防止直通。放电阶段S3/S4导通储能电容接低压电芯持续时间约90微秒然后再次进入死区。这个周期总时长约200微秒对应5 kHz的开关频率。死区时间的设置有一个容易被忽略的细节MP2642GR-Z的开关管存在关断延迟10微秒看起来很长但如果驱动电路加了外部栅极电阻关断时间会被拉长死区时间需要根据实测门极波形重新调整。我在样机上用示波器观察了开关节点波形确认死区期间节点电压没有交叠才定下最终参数。4. 均衡控制固件状态机、判定条件与保护逻辑4.1 均衡状态机的设计固件部分采用状态机结构把均衡过程拆成几个明确的状态每个状态内部做固定动作状态之间的跳转由电压采样结果和定时器事件驱动。空闲状态IDLE周期性采样电芯电压计算压差。压差低于均衡阈值时不动作。反向准备状态PREP确定高压电芯和目标低压电芯完成储能电容初始充电方向判断。搬运循环状态BALANCING按固定时序连续执行充电-死区-放电循环每个循环后更新电压记录。暂停判定状态CHECK每个搬运循环结束后短暂停止重新采样电压判断是否需要继续。保护停止状态FAULT检测到过压、欠压、过温或通信异常立即关闭均衡通路并锁定。状态机的好处是逻辑清晰不会出现上一帧还在充电这一帧突然切换到另一个方向这种竞态问题。每个状态的进入和退出都有明确的触发条件调试时也容易定位问题出在哪一步。4.2 均衡判定逻辑与阈值均衡判定的核心参数是压差阈值和滞回区间。我设置压差大于30 mV时启动均衡当压差收敛到15 mV以下时停止均衡中间留了15 mV的滞回区。这个滞回设计很关键如果没有它系统会因为采样噪声而频繁启停均衡造成开关管不必要的损耗。另一个判定逻辑是均衡方向钉扎。例如电芯A电压高于电芯B系统持续把能量从A搬到B。如果中途B电压反超A系统会在下一个CHECK状态把方向反过来。为了防止在压差接近零时频繁换向我加了换向冷却时间一个方向至少持续2秒期间即使压差反超也不换向除非压差超过50 mV的强制换向阈值。4.3 保护逻辑与异常处理均衡系统首先要保证安全其次才是效率。保护逻辑分三级第一级是过压保护。磷酸铁锂电芯充电电压超过3.65 V时均衡必须让位给充电保护甚至主动停止。因为此时电芯已经接近满电继续把能量搬入这颗电芯只会加剧过压。第二级是欠压保护。电芯电压低于2.50 V时整组电池处于放空状态均衡没有意义。MP2642GR-Z的均衡通路如果继续工作还会白白消耗剩余能量所以必须立即关闭。第三级是过温保护。我用一颗NTC热敏电阻贴在电芯侧面通过MCU ADC读取温度。均衡过程中储能电容和开关管都会发热如果电芯表面温度超过55 ℃系统会暂停均衡并保留报警状态等温度回落再恢复。另外还有一个容易被忽略的保护点是均衡超时保护。如果连续均衡30分钟压差仍然没有明显收敛固件会判定为电芯异常并停止均衡避免长期在异常状态下满负荷工作。这个逻辑起初没加后来在一次实验中发现有一颗电芯内阻异常大均衡电流被限制到几乎为零整个系统空转了将近一小时才被人工发现。4.4 固件代码框架示意这里给出核心控制流程的伪代码实际工程代码在这个框架上扩展了日志记录和参数配置部分。typedef enum { IDLE, PREP, BALANCING, CHECK, FAULT } balance_state_t; balance_state_t state IDLE; uint16_t adc_cell_high 0; uint16_t adc_cell_low 0; void balance_task(void) { switch (state) { case IDLE: sample_cell_voltages(); if ((adc_cell_high - adc_cell_low) BALANCE_START_THRESHOLD) { state PREP; set_balance_direction(adc_cell_high adc_cell_low); } break; case PREP: enable_balance_circuit(); start_timer(BALANCE_CYCLE_US); cycle_count 0; state BALANCING; break; case BALANCING: if (timer_expired) { if (cycle_count MAX_CYCLES_PER_CHECK) { state CHECK; } } break; case CHECK: disable_balance_circuit(); delay_ms(50); sample_cell_voltages(); if (voltage_diff BALANCE_STOP_THRESHOLD) { state IDLE; } else if (voltage_diff BALANCE_START_THRESHOLD) { set_balance_direction(adc_cell_high adc_cell_low); state BALANCING; } else { state IDLE; } break; case FAULT: disable_balance_circuit(); break; } }代码里有个细节每次进入CHECK状态前必须先关闭均衡电路并等待至少50毫秒让储能电容两端的残余电压通过泄放电阻释放掉然后重新采样电芯电压。如果不等待采样结果会被电容残压干扰得到明显偏高的读数进而导致错误的均衡方向判断。5. 实测验证与现场调试样机上的现象、数据与调整5.1 测试条件与负载场景样机搭建完成后我把系统挂在一组两节串联的磷酸铁锂电芯上做验证。电芯容量20 A·h拆机时间较长初始电压差有明显偏差。测试环境是模拟备用电源典型工况用电子负载做0.5 C放电循环充电使用恒流恒压模式整组电压上限7.3 V单节保护阈值3.65 V。均衡系统在充放电过程中持续工作。需要说明的是均衡并不能阻止电芯在工作过程中出现瞬时压差上升——大电流放电时内阻差异导致的动态压差可以达到80 mV均衡电流只有百毫安级根本追不上电流变化。均衡真正的效果体现在静置态和充电末期的电压收敛速度上。5.2 均衡前后的数据对比我做了两组对照测试一组均衡开启一组均衡关闭。初始条件都是两节电芯开路电压差约110 mV。参数均衡关闭均衡开启初始压差110 mV115 mV静置8小时后的压差105 mV20 mV充满电时最大压差160 mV45 mV放空时最小单节电压2.42 V2.56 V整组可用容量9.4 A·h17.2 A·h实测结果很直观均衡开启后静置压差收敛到20 mV左右充放电末期的动态压差控制在45 mV以内整组可用容量从9.4 A·h提升到了17.2 A·h。这个提升幅度说明均衡对老旧电芯的容量用满效果非常明显。5.3 调试中踩过的三个坑第一个坑是ADC读数在均衡切换瞬间跳变。起初我以为是MP2642GR-Z的开关噪声耦合进了采样线后来用示波器抓波形发现问题出在采样时刻和PWM切换时刻重叠。储能电容切换瞬间会在电芯端产生一个短暂的低频扰动如果恰好在这个窗口采样读数会偏移20毫伏以上。解决办法是把ADC采样时间放在PWM周期的固定相位上也就是切换到放电状态结束后的稳定窗口并且连续采样多次取中值。第二个坑是储能电容在磷酸铁锂高压端的有效容值下降。最初我用22 uF陶瓷电容并联做储能电容参数计算时按22 uF算实测均衡电流比理论值低了近一半。原因是陶瓷电容在直流偏压下容值衰减严重。换成标称22 uF的C0G介质电容或薄膜电容后实测均衡电流恢复到理论值。这个教训是凡是涉及能量传输的电容一定要看介质特性和直流偏压特性不能只看标称容值。第三个坑是开关节点振铃导致偶尔的直通风险。MP2642GR-Z开关切换瞬间储能电容的充电回路寄生电感和开关管结电容形成LC振荡在开关节点上看到明显的振铃波形幅度一度超过电芯电压。虽然芯片内部有保护电路没有烧坏但振铃代表了额外的开关损耗。我在开关节点对地并联了一组RC吸收电路电阻2.2 Ω、电容1 nF振铃幅度明显衰减同时把PWM频率从5 kHz降到4 kHz开关损耗进一步降低。6. 从两节到更多串联这套方案的扩展思路与改进空间6.1 扩展到四节、八节串联的思路两节串联是最基础的场景但在实际储能项目中4节、8节串联更常见。这套方案横向扩展时有一个简单的思路对相邻电芯对各做一个开关电容均衡通道例如4节串联需要3个均衡通道分别均衡电芯1-2、电芯2-3、电芯3-4。相邻通道共享中间电芯所以控制逻辑上必须增加时序仲裁不能让两个通道同时对同一颗电芯做均衡否则等效于两个储能电容并联搬运路径会乱。我尝试过在一个PIC18F47K42上跑多通道均衡MCU的资源完全够用但PCB面积和开关器件的成本会明显增加。工程上更合理的折中是减少储能电容的容量降低单通道均衡电流这样开关器件可以用更小封装的型号整体体积和成本都更好控制。6.2 效率优化方向从开关电容到电感式均衡开关电容均衡的优点是结构简单、可靠性高但天然有两个短板一是能量搬运是离散的电容充放电过程中存在原理性的能量损耗二是均衡电流受电容容量和开关频率限制难以做大电流均衡。如果后续项目需要更大的均衡电流或者更高的能量利用率可以改用双向反激变换器或电感式均衡拓扑。电感式均衡用磁能做中间储能介质能量利用率可以做到80%以上均衡电流也可以做到安培级。不过控制逻辑和磁性元件设计复杂度会大幅上升对MCU的PWM分辨率要求也更高。我的建议是2到3节串联的紧凑型产品用开关电容方案成本和可靠性优先4节以上或者单体容量较大的系统再考虑电感式方案。6.3 这套方案值得保留和舍弃的部分值得保留的是PIC18F47K42的12位ADC配合合理的采样时序加上状态机控制逻辑。这套组合让均衡控制变得非常直观调试时每步都能通过串口打印看到当前状态和电压数据排查问题效率很高。值得改进的是温度保护的位置。NTC贴在电芯表面测的是电芯温度但均衡开关管和储能电容的发热才是影响均衡持续工作的关键。后来我在MP2642GR-Z附近也加了一颗NTC用于监测器件温度。两个温度点分开保护逻辑上更完善。还有一点是均衡电流的自适应设计。当前固件是恒定PWM频率跑均衡不管压差多大都一个节奏。实际上压差大时可以用更高的开关频率或更大的占空比来加快能量搬运压差小时放慢节奏以减少开关损耗。这个优化我在最新一版固件里已经加上了效果是在压差120 mV时收敛时间缩短了约30%。最后说一个我从这个项目里体会最深的事情均衡不是万能的。它能把可用容量找回来但找不回电芯本身的健康度。一颗已经衰减到60%容量的电芯均衡之后整组容量仍然由它决定只是不再浪费另一颗好电芯的电量而已。所以做均衡系统设计时一定要把保护逻辑和均衡放在同等重要的位置——均衡做得好是锦上添花保护做得好才是保命底线。这套两节串联的均衡方案目前已经在我那套备用电源系统里跑了三个月静置压差基本稳定在15毫伏以内充放电过程的动态压差也没再超过50毫伏整体表现我可以接受。如果你也在做类似的小容量储能均衡可以直接拿这个方案做起点从两节开始验证逻辑再逐步扩展生产会省掉不少弯路。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑