
1. 储能电池均衡的工程背景与方案选型1.1 为什么串联电池组必须做均衡做储能和备用电源的兄弟都清楚单节锂电池的标称电压就那么点磷酸铁锂大概3.2V三元大概3.7V想凑出48V甚至更高的母线电压唯一的路子就是串联。串联本身不难难的是让每一节电池步调一致。电池出厂时容量、内阻就有离散性用起来之后温度分布不均、自放电率不同时间一长各节电池的荷电状态就会越拉越开。这个拉开的过程有多要命我举个实际场景。一组两串的备用电源假设一节已经充到4.2V满电另一节才4.0V。这时候如果继续按整组电压充电先到顶的那节就会过充轻则容量衰减加速重则鼓包甚至热失控放电时反过来容量小的那节先放空整组就被它拖住实际可用容量直接砍掉一大截。这就是典型的木桶效应短板决定一切。所以均衡电路存在的意义就是把各节电池的电压/荷电状态拉回到一个可接受的窗口内。它不产生能量只是把能量从高的那节搬到低的那节或者把高的那节多余的能量消耗掉。听起来简单但真要做到可靠、低成本、低静态功耗里面的门道不少。1.2 被动均衡与主动均衡的取舍均衡方案分两大流派被动均衡和主动均衡。被动均衡说白了就是给每节电池并一个电阻加开关电压高的那节把多余能量通过电阻烧掉。优点是电路极简、成本极低、可靠性高缺点是能量白白浪费变成热而且均衡电流做不大通常几十毫安到一两百毫安。对于小容量备用电源、对成本敏感的场合被动均衡其实够用。主动均衡则是用电感、电容或者变压器把能量从高电压节搬到低电压节效率高、均衡电流可以做到安培级但电路复杂、成本高、控制逻辑也麻烦。储能系统里大容量电池组用主动均衡的多但如果是两串这种小规模、成本敏感的备用电源主动均衡的性价比往往不划算。这次选的方案核心器件是MP2642GR-Z加PIC18F66K40。MP2642GR-Z 是一颗集成了均衡开关和驱动的电池管理前端芯片配合外部电感和少量阻容就能实现能量转移式的均衡PIC18F66K40 是 Microchip 的 8 位单片机负责采样、逻辑判断、均衡策略调度和对外通信。这套组合的定位很明确两串电池、中等均衡电流、需要一定智能控制、但又要控制成本。1.3 为什么是这两颗芯片先说 MP2642GR-Z。它把均衡所需的功率开关集成进去了省掉了外部分立 MOS 和驱动电路PCB 面积小BOM 也精简。对于两串应用它天然匹配不需要像多串 BMS 那样堆一堆通道。它的均衡方式偏向能量转移效率比纯烧电阻高发热也小这对密闭的备用电源机箱来说很关键——被动均衡那点热量在密闭空间里积起来夏天能把旁边器件烤到降额。再说 PIC18F66K40。选它不是因为性能多强而是够用且稳。它有足够的 ADC 通道去采两节电池电压和温度有硬件定时器做均衡周期调度有 UART/SPI/I2C 可以跟主控或上位机通信Flash 和 RAM 对这套逻辑绰绰有余。8 位机的好处是开发门槛低、代码可控、抗干扰设计成熟工业现场跑了十几年的老平台稳定性有保障。用 32 位 ARM 当然也行但对两串均衡这种任务属于杀鸡用牛刀成本和功耗都不划算。提示选型时不要盲目追高。均衡任务的计算量很小瓶颈在模拟采样精度和功率级可靠性不在 MCU 算力。把预算花在采样电路和功率器件上比换个更快的 MCU 值。2. 核心器件与均衡原理深度拆解2.1 MP2642GR-Z 的均衡工作机制MP2642GR-Z 这类前端芯片做均衡本质是一个双向的 Buck-Boost 能量转移结构。它把两节电池看成一个整体通过电感在上节和下节之间搬运电荷。当检测到上节电压偏高芯片控制开关让上节对电感充电再把电感能量释放给下节反之亦然。整个过程由芯片内部的逻辑和外部 MCU 的指令协同完成。这里有个关键点能量转移式均衡的效率取决于电感选型和开关频率。电感值太小纹波电流大损耗和 EMI 都上去了电感值太大响应慢均衡电流上不去。一般按目标均衡电流和开关频率来算公式是 ΔI (V × D) / (L × f)其中 D 是占空比f 是开关频率。假设目标均衡电流 500mA开关频率 500kHz电池电压 3.7V占空比 0.5那么电感纹波电流要控制在平均电流的 30% 左右也就是 150mA反推 L ≈ (3.7 × 0.5) / (0.15 × 500000) ≈ 24.7μH。实际选 22μH 或 33μH 的标准值都可以再根据实测微调。芯片的使能和模式切换由 MCU 通过控制引脚管理。MCU 不直接参与每个开关周期的控制那是芯片内部的事MCU 只负责要不要均衡、往哪个方向均衡、均衡多久这种上层决策。这种分工很合理MCU 不用被高频中断拖住可以腾出资源做采样和通信。2.2 PIC18F66K40 的资源分配与控制逻辑PIC18F66K40 在这套系统里干四件事采样、判断、调度、通信。采样方面它用内部 10 位或 12 位 ADC 轮流采两节电池的分压电压、电池温度NTC 分压、以及可能的母线电流。两串电池的电压采样有个坑下节的负极是系统地上节的正极对地是两节电压之和直接采会超过 ADC 参考电压。所以上节电压要用差分采样或者电阻分压后再采分压比要算准电阻要用 1% 精度的温漂小的。判断方面MCU 把采到的电压换算成实际值跟设定的均衡阈值比较。比如设定压差超过 30mV 才启动均衡低于 10mV 就停中间留个迟滞带防止在阈值附近反复启停造成震荡。这个迟滞设计是实战经验很多新手忽略它结果均衡继电器或开关频繁动作寿命大打折扣。调度方面用定时器产生一个比如 100ms 的控制周期每个周期更新一次采样和均衡状态。均衡不是一直开着的要限时比如单次均衡最长 30 分钟超时就停防止某个通道异常导致持续大电流。通信方面通过 UART 把电压、温度、均衡状态上报给主控或者接收主控下发的参数。协议可以自定义简单点用 ASCII 帧复杂点用 Modbus看系统需求。2.3 两串均衡的拓扑连接要点两串电池的均衡拓扑连接上有几个必须注意的地方。第一采样地和功率地要分开走最后单点汇合。均衡电流在功率路径上流动会在走线电阻上产生压降如果采样地跟功率地混在一起采到的电压就带上了这个压降误差均衡判断就不准了。我见过一个案例均衡电流 1A走线电阻 10mΩ压降就是 10mV刚好跟均衡阈值一个量级结果系统一直在误判。第二电感的布局要远离采样走线。电感是磁场源开关工作时辐射干扰采样线如果贴着电感走ADC 读数会跳。布局时电感放板子一角采样线走另一侧必要时加屏蔽地。第三两节电池的均衡通道要对称。电感值、开关频率、走线长度尽量一致否则两节电池的均衡速率不一样长期下来反而制造新的不平衡。注意均衡电流路径上的所有连接器、端子、走线载流能力要留足余量。均衡电流虽然不大但它是持续的接触电阻大的地方会发热时间长了氧化接触电阻更大恶性循环。3. 硬件设计与关键参数计算实操3.1 采样电路设计与精度保障采样精度直接决定均衡效果。两串电池下节电压范围 2.5V 到 4.3V上节对地电压范围 5.0V 到 8.6V。PIC18F66K40 的 ADC 参考电压如果用内部 4.096V那上节电压必须分压。分压比怎么定上节最高 8.6V要降到 4.096V 以下分压比至少 8.6/4.096 ≈ 2.1。留点余量取 2.5 比 1也就是上端电阻 15k下端电阻 10k分压后最高 8.6 × (10/25) 3.44V安全。下节电压最高 4.3V超过 4.096V 参考也得稍微分压。取 1.2 比 1上端 2k下端 10k分压后 4.3 × (10/12) 3.58V可以。但分压会损失精度下节本来可以直接采为了统一参考只好分压。更好的做法是用外部基准 2.5V下节直接采上节分压比 4 比 1这样下节精度最高。具体怎么选看你对哪节精度要求高。电阻选型上分压电阻用 0.1% 精度的薄膜电阻温漂 25ppm/℃ 以内。普通 1% 厚膜电阻温漂能到 200ppm/℃温度一变读数就飘均衡阈值设得细的话根本没法用。分压点并联一个 100nF 电容到地滤高频噪声但电容不能太大否则响应慢均衡状态切换时采样跟不上。ADC 采样时间也要算。PIC18F66K40 的 ADC 需要采样保持电容充电源阻抗高的话充电时间要长。分压电阻 15k 并 10k 约 6k加上走线和保护电阻源阻抗可能到 10k。采样时间至少设 10μs 以上保险起见设 20μs。这个参数在配置 ADC 时设定设短了读数偏低很多人调半天以为是芯片坏了其实是采样时间不够。3.2 均衡功率级参数计算均衡功率级的核心参数是均衡电流和电感。均衡电流定多大取决于电池容量和你能接受的均衡时间。假设两节 10Ah 的电池初始压差 200mV想 2 小时内拉平。粗略估算需要转移的电荷量约等于容量乘以压差对应的荷电状态差假设压差 200mV 对应 5% 的容量差就是 0.5Ah。2 小时转移 0.5Ah平均电流 250mA。考虑效率 80%均衡电流设 350mA 到 500mA 比较稳妥。电感计算前面提过按 ΔI (V × D) / (L × f)。这里 V 取电池电压 3.7VD 取 0.5f 取 500kHz目标纹波 150mA得 L ≈ 24.7μH选 22μH。电感的饱和电流要大于峰值电流峰值是平均电流加一半纹波500mA 75mA 575mA选饱和电流 1A 以上的电感留一倍余量。直流电阻 DCR 要小最好 100mΩ 以内否则均衡电流在电感上就损耗掉了效率上不去。开关频率 500kHz 是个折中。频率高电感和电容可以小但开关损耗大频率低损耗小但无源器件大。500kHz 到 1MHz 是这类小功率均衡的常见区间。MP2642GR-Z 的内部开关频率如果是固定的那就按它的规格选电感如果可调按上面公式算。3.3 保护与滤波设计均衡电路虽然功率不大但保护不能省。过流保护在均衡电流路径上串一个采样电阻比如 50mΩ用 MCU 的 ADC 监测压降超过阈值就关断均衡。或者用芯片自带的过流保护看 MP2642GR-Z 有没有这个功能。过温保护电池包内贴 NTCMCU 监测温度超过 60℃ 就停均衡。均衡本身发热不大但电池在充放电时也发热叠加起来可能超限。反接保护电池反接是现场常见事故功率路径上加个理想二极管或者 PMOS 防反接成本不高但能救一批板子。滤波每节电池的采样点加 RC 滤波R 取 100ΩC 取 100nF截止频率约 16kHz能滤掉大部分开关噪声又不影响 100ms 级的采样周期。均衡功率级的输入输出加 10μF 陶瓷电容加 100μF 电解电容抑制电压尖峰。提示保护参数不要设得太紧。过流阈值设得比正常工作电流高 50% 以上过温阈值留 10℃ 余量否则正常波动就触发保护系统没法用。4. 软件架构与均衡策略实现4.1 主循环与定时调度框架PIC18F66K40 的软件架构我习惯用一个 10ms 的定时器中断做时基主循环里跑状态机。10ms 中断里做三件事启动一次 ADC 转换轮流采两节电压和温度、更新软件定时器计数、喂看门狗。主循环里每 100ms 处理一次采样结果做均衡判断和状态更新。为什么采样和判断分开因为 ADC 转换需要时间10ms 采一轮100ms 处理一轮节奏清晰不会因为采样没完成就去做判断。状态机有这几个状态空闲、采样、判断、均衡中、故障。状态迁移由采样结果和定时器驱动。看门狗必须开。工业现场干扰多MCU 跑飞了看门狗能拉回来。喂狗放在 10ms 中断里主循环卡死的话中断还在跑但主循环不喂狗就会复位。等等这样不对如果喂狗在中断里主循环卡死中断还在喂看门狗就失效了。正确做法是主循环喂狗中断不喂。这样主循环卡死狗就咬。4.2 电压采样与滤波算法ADC 采回来的原始值要滤波。最简单的是滑动平均存 8 个最近值取平均。但滑动平均对突变响应慢均衡状态切换时电压会跳平均后反应迟钝。更好的做法是中值滤波加滑动平均先取 5 个值排序取中间值去掉脉冲干扰再对中值序列做 4 点滑动平均。这样既有抗脉冲能力响应也不至于太慢。电压换算ADC 值 × 参考电压 / 满量程 × 分压比。比如 12 位 ADC参考 4.096V满量程 4095下节分压比 1.2ADC 读数 2048则电压 2048 × 4.096 / 4095 × 1.2 ≈ 2.458V。这个计算在 MCU 里用定点数做避免浮点开销。PIC18 做浮点慢能用整数移位就不用浮点。温度换算NTC 分压后 ADC 读数查表或者用 Steinhart-Hart 公式算。查表快精度看表密度每 5℃ 一个点中间线性插值够用。4.3 均衡启停逻辑与迟滞设计均衡启停逻辑是这套系统的灵魂。核心是压差判断加迟滞。设均衡启动压差 V_start 30mV停止压差 V_stop 10mV。当 |V1 - V2| V_start 且没有故障进入均衡状态根据哪节电压高决定均衡方向。均衡过程中持续监测当 |V1 - V2| V_stop退出均衡。中间 10mV 到 30mV 是迟滞带在这个区间内保持当前状态不变。为什么要有迟滞假设没有迟滞压差在 30mV 附近波动均衡就会反复启停开关次数暴增寿命缩短而且均衡效果也差。迟滞带的存在让系统有记忆状态稳定。均衡方向判断如果 V1 V2能量从上节转移到下节反之从下节转移到上节。MP2642GR-Z 的方向控制引脚由 MCU 的 GPIO 驱动注意方向切换前要先关断均衡等几个毫秒再切方向防止直通。均衡限时单次均衡最长 30 分钟超时强制停止冷却 5 分钟再允许启动。这是防止某个通道异常导致持续大电流的最后一道防线。4.4 通信协议与参数配置UART 通信协议我一般用简单的帧格式帧头 0xAA 0x55长度命令字数据校验和。命令字包括读电压、读温度、读状态、设均衡阈值、设均衡电流、启停均衡。校验和用累加和取反简单可靠。参数配置存在 MCU 的 EEPROM 里掉电不丢。上电时读出来如果 EEPROM 是空的第一次上电加载默认值。默认值V_start 30mVV_stop 10mV均衡电流 500mA单次限时 30 分钟。通信要有超时机制。主控如果 5 秒没发命令MCU 就认为通信断了保持当前均衡状态但不再接受新命令直到通信恢复。这是防止通信中断后系统失控。注意EEPROM 写入次数有限一般 10 万次到 100 万次。参数配置不要频繁写只在收到明确配置命令时才写平时读 RAM 里的副本。5. 调试过程与常见问题排查5.1 上电调试的步骤与实测记录板子焊好之后别急着上电池按这个顺序来。第一步不焊电池只给 MCU 供电测 MCU 的电源引脚电压是否正常晶振是否起振用示波器看时钟波形。PIC18F66K40 如果用内部振荡器就测 OSC 引脚有没有输出。这一步确认 MCU 活着。第二步用可调电源模拟两节电池分别设 3.7V 和 3.8V接采样电路读 ADC 值换算成电压跟电源显示对比。误差在 ±10mV 以内算合格。如果误差大检查分压电阻精度和 ADC 参考电压。第三步接均衡功率级用电子负载或者功率电阻做负载给一个均衡指令测均衡电流。用电流探头或者串采样电阻测。实测均衡电流 480mA目标 500mA偏差 4%可以接受。如果偏差大检查电感值和开关频率。第四步接真实电池跑完整均衡流程。记录从压差 200mV 到 10mV 的时间。实测两节 10Ah 电池压差 180mV均衡 1 小时 40 分钟拉到 12mV跟估算的 2 小时接近。5.2 典型问题速查表现象可能原因排查方法解决措施ADC 读数跳动大采样时间不足、滤波不够、地线干扰示波器看采样点波形加大采样时间检查地线采样时间设 20μs加 RC 滤波单点接地均衡电流偏小电感值偏大、开关频率低、走线电阻大测电感值测开关频率测走线压降换小电感提高频率加粗走线均衡不启动压差未达阈值、故障状态未清除、方向引脚错读状态寄存器测 GPIO 电平调阈值清故障检查引脚定义均衡频繁启停无迟滞或迟滞太小、采样噪声大观察状态切换频率加大迟滞带加强滤波温度读数异常NTC 接触不良、分压电阻错、ADC 通道错测 NTC 阻值核对分压比重新焊接核对参数通信无响应波特率错、接线反、协议不匹配示波器看 TX 波形测波特率核对波特率检查接线对协议上电复位电源跌落、看门狗误触发、复位电路问题测电源上升时间看复位引脚加大电源电容调看门狗时间检查复位电路5.3 独家避坑经验第一个坑均衡电感的饱和电流。我一开始选了个饱和电流 600mA 的电感均衡电流设 500mA峰值 575mA理论上够。但实际电池电压高的时候峰值超过 600mA电感饱和电流失控芯片保护了。后来换 1A 饱和电流的问题解决。选电感饱和电流至少是峰值电流的 1.5 倍别卡着线选。第二个坑采样地和功率地的汇合点。我第一版板子把采样地和功率地在芯片下面直接连了结果均衡一开ADC 读数就偏 15mV。后来改成单点接地采样地单独走线到电池负极功率地走另一条线在电池端子处汇合误差降到 3mV 以内。这个改动看起来小效果立竿见影。第三个坑均衡方向切换的死区时间。MP2642GR-Z 的方向切换如果太快内部开关还没完全关断就切了会有瞬间直通电流尖峰能把芯片打坏。我在代码里加了 5ms 死区切换前先关均衡延时 5ms再切方向再开均衡。加了之后没再烧过芯片。第四个坑NTC 的安装位置。NTC 要贴在电池表面不是贴在 PCB 上。贴 PCB 上测的是板子温度不是电池温度电池热了板子还没热保护就滞后了。用导热胶把 NTC 粘在电池壳体上引线固定好别让电池移动时扯断。第五个坑EEPROM 的默认值加载。第一次上电 EEPROM 是 0xFF如果直接读出来用阈值就是 0xFF 换算的乱值系统行为不可预测。上电时要判断 EEPROM 是否有效无效就加载默认值并写入。判断方法可以存一个魔数比如 0x5A读出来不是 0x5A 就认为无效。5.4 均衡效果验证与长期可靠性均衡效果怎么验证最直接的是记录均衡前后的电压。用高精度万用表均衡前测两节电压均衡后静置 30 分钟再测看压差是否缩小到目标范围。注意要静置因为均衡刚停时电池还有极化电压读数不准。长期可靠性怎么测做高低温循环-20℃ 到 60℃每个温度点跑几次均衡看功能是否正常。再做振动测试模拟运输和现场振动看焊点和连接器是否松动。最后做长时间老化连续跑 72 小时均衡看温升和电流是否稳定。我在实际项目里发现均衡电路在低温下效率会下降因为电池内阻大了电感 DCR 也随温度变化。低温下均衡电流可能只有常温的 70%。如果应用场景有低温要求均衡电流要按低温设计或者加温度补偿低温时延长均衡时间。提示长期可靠性测试别省。均衡电路平时不工作一出问题就是电池组出问题返修成本远高于测试成本。至少跑 500 小时老化再量产。6. 方案扩展与不同场景的适配调整6.1 从两串扩展到多串的思路两串方案跑通之后如果要扩展到三串、四串思路有两种。一种是每两串用一套 MP2642GR-Z 加 PIC18F66K40套与套之间通过通信协调主控统一调度。这种分布式方案扩展灵活但成本线性增长。另一种是换多串的前端芯片一颗芯片管多串MCU 也换更多 ADC 通道的型号。这种集中式方案成本低但灵活性差一串出问题影响整组。选哪种看应用。备用电源通常串数少分布式够用。储能系统串数多集中式更合适。扩展时注意采样地的处理多串系统的地线更复杂单点接地原则要贯彻到底。6.2 不同电池类型的参数调整磷酸铁锂和三元电池的均衡参数不一样。磷酸铁锂的电压平台平3.2V 到 3.3V 之间荷电状态变化很大压差判断要更细阈值可以设小一点比如 20mV。三元的电压平台斜压差判断可以粗一点30mV 到 50mV 都行。均衡电流也要调。磷酸铁锂内阻大均衡电流大了发热多可以适当减小。三元内阻小均衡电流可以大一点均衡更快。温度保护阈值也不同。磷酸铁锂耐高温好一点可以设 65℃三元娇气设 55℃ 就停。6.3 低功耗场景的优化备用电源很多是长期待机均衡电路平时不工作但 MCU 和采样电路一直在耗电。如果待机功耗要求严比如微安级就要做低功耗优化。MCU 进休眠定时器唤醒比如 1 秒唤醒一次采一次电压采完继续睡。采样电路的分压电阻在休眠时断开用 MOS 管控制采样时才接通。MP2642GR-Z 不用时进关断模式静态电流降到微安级。这样优化下来待机功耗能从毫安级降到几十微安对长期备用的场景很关键。但要注意休眠唤醒的采样周期长了均衡响应会慢压差变化快的时候可能跟不上。折中方案是待机时 1 秒采一次检测到压差超阈值就退出低功耗恢复正常采样率。6.4 与主控系统的集成方式这套均衡模块通常不是独立工作的要跟主控系统集成。集成方式有几种UART 透传主控发命令模块执行或者模块主动上报主控监听或者用 CAN 总线多模块组网。UART 最简单适合单模块。CAN 适合多模块抗干扰好但协议复杂。选哪种看系统架构。集成时注意电平匹配3.3V 和 5V 系统之间要加电平转换别直接连烧 IO 口。通信协议要留扩展位。现在只用两串以后可能扩展协议里预留字段升级时不用改协议版本。这个习惯能省很多事。我个人在实际操作中的体会是均衡电路这东西硬件设计占七分软件策略占三分。硬件上采样精度和功率级可靠性做扎实了软件逻辑简单点也能跑得很好硬件有隐患软件再怎么补都别扭。所以前期在采样电路和功率级上多花时间后期调试会轻松很多。另外别迷信仿真均衡电路的很多问题——地线干扰、电感饱和、温度漂移——仿真里看不出来必须实测。板子回来先别焊全分步调试每步确认无误再往下走比一次焊完再排查快得多。