资讯详情

资讯详情

基于PIC18F87J10与MP2642GR-Z的两串电池主动均衡方案设计与实现

1. 从两个串联电芯的电压漂移说起如果你拆过任何一块储能电池包或者备用电源模块大概率会看到一串电芯串联在一起。串联的目的很简单——把电压堆上去满足后级逆变或直流母线的需求。但问题也随之而来串联的电芯出厂时容量和内阻再接近经过几十上百次充放电循环之后电压一定会出现分化。这种分化在储能和备用电源场景里尤其致命因为这类系统长期处于浮充或者浅充浅放状态均衡电路如果做得不到位木桶效应会让整组电池的可用容量被最弱的那颗电芯拖死。我这次要聊的就是针对两个串联电池单元做主动均衡的一个具体方案主控用PIC18F87J10均衡执行器件用MP2642GR-Z。为什么是两颗电芯而不是更多因为两串结构在小型储能、便携式备用电源、通信基站的后备电池组里非常常见而且两串的均衡逻辑最干净没有多串系统的地址仲裁和级联复杂度适合把原理吃透之后再往上扩展。这篇文章适合谁看如果你正在做BMS电池管理系统的硬件或者固件尤其是两串到四串这个量级的小型系统或者你手上有PIC18系列的老平台想复用再或者你单纯想搞清楚主动均衡和被动均衡在电路层面到底差在哪那这篇内容应该能给你一些能直接抄作业的东西。我会把选型理由、电路连接、控制逻辑、实测中踩到的坑都摊开讲尽量做到你看完就能画板子、写代码。先给一个整体判断两串主动均衡的核心难点不在算法而在均衡电流的路径设计和采样时序的配合。很多人第一次做的时候把精力全花在写PID或者查表上结果板子一上电发现采样值一直在跳均衡根本没法闭环。这个坑我后面会专门用一节来讲。2. 为什么选MP2642GR-Z做均衡执行而不是自己搭MOS2.1 主动均衡和被动均衡的本质区别被动均衡说白了就是给电压高的那颗电芯并一个电阻把多余的能量以热的形式烧掉。成本低、电路简单但有两个硬伤一是能量白白浪费二是均衡电流做不大通常几十毫安到一百多毫安对于容量几千毫安时以上的储能电芯来说均衡速度慢得让人着急。主动均衡则是把高电压电芯的能量搬到低电压电芯去或者搬到整组去能量利用率高均衡电流可以做到安培级。在两串系统里主动均衡最常见的拓扑是电感式或者电容式。电感式通过一个电感和两个开关管把能量从高电压电芯泵到低电压电芯效率高、电流大但电感的选型和开关时序比较讲究。MP2642GR-Z 这类器件本质上就是把功率开关和驱动集成进去让你不用自己搭半桥减少外围元件和调试工作量。2.2 MP2642GR-Z 的定位与关键特性MP2642GR-Z 是一颗面向电池均衡的专用芯片内部集成了功率MOS和驱动逻辑外部只需要配一个储能电感和少量电容就能工作。它的工作方式是通过交替开关把能量在相邻电芯之间转移。对于两串结构来说正好是一颗芯片管两个电芯的均衡不需要级联这是它在这个场景下最大的优势。选它而不是自己搭分立MOS理由有三条。第一开关时序由芯片内部保证不会出现上下管直通这种烧板子的事故自己搭半桥的话死区时间没设好一上电就冒烟。第二集成度高PCB面积小两串备用电源的板子通常空间紧张少几个驱动电阻和自举电容很关键。第三均衡电流可以通过外部电阻设定灵活性够用不需要改电路就能适配不同容量的电芯。当然它也不是没有代价。专用芯片的开关频率和电感取值是绑定的你如果选了一个不合适的电感效率会掉得很难看。这一点我在第四节会给出具体的计算过程。2.3 和PIC18F87J10的搭配逻辑PIC18F87J10 是一颗8位MCU资源对于两串BMS来说绰绰有余它有足够的GPIO去控制均衡芯片的使能有ADC去采样电芯电压和温度有UART或者SPI可以接上位机或者显示模块。选它不是因为性能强而是因为在这个量级的系统里8位机的确定性和低功耗表现反而比32位机更省心。它不需要跑操作系统中断响应可预测休眠电流低对于长期浮充的备用电源来说这一点很重要。MP2642GR-Z 负责出力PIC18F87J10 负责决策。MCU定期采样两颗电芯的电压判断压差是否超过阈值如果超过就使能均衡芯片并监测均衡过程中的电压变化防止过均衡。这个分工很清晰固件也不复杂但采样和均衡的时序配合是成败关键。3. 两串均衡的电路连接与关键参数计算3.1 电芯、均衡芯片与MCU的接线关系两串电芯从下到上记为CELL1和CELL2CELL1的负极是系统地CELL1正极是中间节点CELL2正极是整组正极。MP2642GR-Z 的两个均衡端口分别跨接在CELL1和CELL2上芯片的供电取自整组电压。MCU的ADC通过分压网络分别采集CELL1正极即中间节点和整组正极的电压两者相减得到CELL2电压中间节点电压直接就是CELL1电压。这里有一个容易忽略的点分压电阻的精度直接决定均衡判断的准确性。如果你用5%精度的电阻两个通道的分压比不一致算出来的压差可能凭空多出几十毫伏导致均衡误触发或者该触发时不触发。我的做法是分压电阻用0.1%精度并且在固件里做一次两点校准把实际分压比算出来存到EEPROM里。3.2 均衡电感的取值计算电感是MP2642GR-Z外围最关键的元件。取值太大储能不足均衡电流上不去取值太小电流纹波大效率低还容易触发过流保护。计算的核心是均衡电流和开关频率。假设我们设定的均衡电流目标是500mA芯片开关频率为典型值具体以数据手册为准这里按常见量级举例根据电感储能公式在开关导通期间电感电流线性上升纹波电流通常取均衡电流的30%左右。那么电感值大致满足L (Vcell × D) / (fsw × ΔI)其中Vcell是单节电芯电压D是占空比fsw是开关频率ΔI是纹波电流。以单节3.7V、占空比0.5、纹波150mA估算电感值落在几微亨到十几微亨这个区间。实际选型时我会留一定余量并且优先选饱和电流大于均衡电流两倍以上的电感否则在大电流瞬间电感饱和电流会失控。3.3 采样滤波与均衡的时序隔离这是整个设计里最容易被低估的部分。均衡芯片工作时电芯回路上有高频开关电流如果MCU在这个时候采样电压ADC读到的值会叠加大量纹波根本没法用。正确的做法是均衡和采样分时进行使能均衡一段时间然后关闭均衡等待一个稳定延时比如几毫秒再启动ADC采样采完再决定是否继续均衡。这个关-等-采-判的循环周期可以设在几十到几百毫秒。延时太短电压还没稳定延时太长均衡占空比下降整体速度变慢。我实测下来对于容量几安时的电芯50ms的稳定延时配合200ms的均衡窗口效果比较均衡。参数建议值说明均衡电流300~800mA根据电芯容量和散热条件调整采样稳定延时30~80ms关断均衡后等待电压回落均衡窗口150~300ms单次均衡持续时间压差触发阈值20~50mV低于此值不启动均衡压差停止阈值5~15mV回差设计防止频繁启停4. 固件里的均衡状态机与采样校准4.1 状态机设计从待机到均衡再到保护固件不要写成一条直线用状态机最清晰。我一般分五个状态待机、采样、判断、均衡、保护。待机状态下MCU大部分时间在休眠定时器周期性唤醒进入采样。采样状态读取两路ADC做校准和滤波。判断状态比较压差决定是否进入均衡。均衡状态使能MP2642GR-Z计时到窗口结束就回到采样。保护状态监测过压、欠压、过温一旦触发就强制关闭均衡并置标志位。状态机的好处是每个状态的职责单一调试的时候看一个变量就知道当前在干什么。我见过有人把均衡逻辑写在主循环里用一堆if嵌套结果压差在阈值附近抖动时均衡使能引脚跟着高频翻转芯片还没坏算是运气好。4.2 ADC采样校准的具体做法前面提到分压电阻精度问题校准是必须的。做法是在已知电压下比如用高精度电源给整组加一个标准电压分别读取两路ADC的原始值算出每路的实际分压系数存到EEPROM。运行时用这个系数反算实际电压。这样即使电阻有偏差也能通过软件补回来。还有一点ADC参考电压的稳定性。PIC18F87J10可以用内部参考或者外部参考如果用电芯电压直接做参考那采样值会随电芯电压变化等于没有绝对基准。我的建议是用一颗低压差稳压器给MCU和ADC参考供电保证参考稳定采样才有意义。4.3 防止过均衡和频繁启停的回差逻辑均衡的停止条件不能和启动条件设成同一个值。如果启动阈值是30mV停止阈值也是30mV那压差降到30mV附近时均衡会不停地启停电芯电压也跟着抖。正确做法是设回差启动阈值30mV停止阈值10mV中间这20mV是死区。压差进入死区后保持当前状态直到明确低于停止阈值才停。另外单次均衡时间要有上限防止某颗电芯异常导致均衡一直进行。我通常设一个累计均衡时间上限比如连续均衡超过10分钟就强制休息并上报异常。5. 实测中遇到的三个坑和排查过程5.1 坑一均衡一启动ADC读数就乱跳第一次上电测试待机时两路ADC读数很稳压差显示也正常。一旦使能均衡CELL2的采样值立刻上下跳几十毫伏压差判断完全失效。排查过程是这样的先用示波器看中间节点和整组正极的波形发现均衡工作时这两个节点上叠加了明显的高频纹波频率正好是均衡芯片的开关频率。再查固件发现我在均衡使能期间没有关闭ADC采样采样和开关是同时进行的。修复方案就是前面说的分时隔离均衡窗口结束后先关断延时50ms再采样。改完之后读数立刻稳定压差分辨率回到几毫伏。这个坑的本质是没有尊重模拟信号和开关噪声的共存规则任何开关电源旁边的ADC采样都要考虑这个。5.2 坑二电感发热严重效率偏低第二版板子换了更小的电感想省点空间结果均衡电流没上去电感反而烫手。用电流探头看波形发现电感电流已经进入饱和区波形顶部被削平说明电感值不够或者饱和电流选小了。重新计算后换回大一号的电感饱和电流留了两倍余量温度降下来均衡电流也达到了设计值。这里的心得是电感选型不能只看电感值饱和电流和直流电阻同样重要。直流电阻大了铜损高同样发热。我后来选电感时会把饱和电流、直流电阻、尺寸三个参数一起权衡而不是只盯着电感值。5.3 坑三长期浮充下均衡频繁触发备用电源长期挂在浮充状态电芯电压本来就很接近但系统运行几天后发现均衡动作很频繁。查下来是采样噪声导致的假压差。虽然做了滤波但滤波窗口太短偶尔的噪声尖峰还是能触发判断。解决办法是加长滤波窗口并且要求压差连续多次超过阈值才启动均衡单次超限不动作。这个连续N次确认的逻辑在电池管理里很常用能有效滤掉偶发干扰。6. 从两串扩展到多串时要注意什么两串做通了很自然会想扩展到三串、四串。这时候MP2642GR-Z单颗就不够了需要多颗级联或者换多串专用芯片。扩展时第一个要面对的问题是均衡路径的拓扑是相邻均衡还是任意两串之间均衡。相邻均衡电路简单但能量从最上面传到最下面要经过多次转移效率打折。任意均衡灵活但开关矩阵复杂。第二个问题是采样通道的扩展和隔离。多串之后每颗电芯的采样参考点不同不能简单地用电阻分压后直接进ADC需要考虑共模电压范围。这时候要么用专用的多串采样芯片要么用差分运放做电平转换。第三个问题是固件的复杂度。两串时状态机很简单多串之后均衡策略要决定先均衡哪一对、均衡顺序怎么排、如何避免同时均衡导致总电流过大。我的建议是扩展时先把均衡策略写成可配置的优先级队列而不是硬编码顺序这样后期调整不用改底层。从我个人经验看两串系统是理解主动均衡的最佳切入点电路不复杂但采样、时序、保护这些核心问题一个都不少。把两串做扎实后面扩展到多串时你会发现真正难的不是电路而是策略和时序的统筹。MP2642GR-Z加PIC18F87J10这个组合胜在稳定和可控适合作为长期运行的备用电源方案来打磨。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →