ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

两串电芯主动均衡方案:MP2642GR-Z与dsPIC33EP512MU810的BMS设计实践

两串电芯主动均衡方案:MP2642GR-Z与dsPIC33EP512MU810的BMS设计实践 两串电芯一串电压4.05V一串4.18V在备用电源系统里跑了两个星期之后直接触发过压告警停机——这是我在某备用电源项目里遇到的第一个实际问题。后来我把均衡方案改成了 MP2642GR-Z 加 dsPIC33EP512MU810 的组合前者负责电芯之间的能量搬运后者负责电压采样、均衡判据和启停控制专门针对储能系统和备用电源里最常见的两节串联电池单元。这套方案不复杂但它解决的问题一点也不小。如果你也在做48V以下的小型储能、后备电池、或者两轮车/小功率设备的BMS这篇文章基本就是给你写的。1. 为什么在储能与备用电源里两节串联电芯的均衡不是配角很多人觉得两串电池“简单”串联只有两节电芯哪个电压高就限制哪个放电完事。真做系统集成的时候你会发现问题恰恰卡在这个“简单”上两串电芯互为唯一搭档容量稍有差异整组容量立刻变成最差那节电芯的容量。储能和备用电源又不像消费电子产品那样用几个月就换一挂就是好几年的工况失配被时间慢慢放大最后就变成过压告警、欠压掉线、容量跳水。1.1 失配的四个来源容量、内阻、自放电、温度先说容量差。出厂环节再严格的筛选同一批电芯静置容量也会有百分之几的偏差。对两串系统来说充电时低容量电芯先充满放电时低容量电芯先放空这节电芯就是整组的短板。它决定了你能充进去多少、放出来多少而另外那节正常或偏大的电芯永远吃不满、放不净。然后是内阻差。内阻差直接影响的是动态电压同样10A电流内阻偏高那节电芯会比另一节多掉几十毫伏放电末端尤其明显。备用电源通常不常放电但一旦掉电切换电池要瞬间顶上大电流内阻差异造成的压降会直接触发欠压保护哪怕整组SOC还有六成。自放电率差异是最阴的一个。电芯负极材料、电解液配方、存放温度不同自放电率会差出不少。两串电芯充电回路一样但自放电大的那节每天多漏掉一点浮充只能补回一部分长期搁置后压差就这么静悄悄拉开了。备用电源恰恰是“长时间搁置偶尔满充”的使用方式等于天天给自放电差异提供表演舞台。温度梯度也不能忽略。机柜里上下层温差往往有3到5摄氏度温度高的电芯内阻低、充放电流更“积极”于是被分配了更多的化学反应量老化自然更快。老化之后内阻进一步升高温度又继续升高形成正反馈回路。在两串系统里这种温差导致的失配会直接体现在浮充末期的电压曲线上。1.2 备用电源“浮充 长搁置”对压差的放大效应消费电子里的两串电池比如笔记本电池使用频繁充放电循环多均衡机会也多。备用电源不一样电池大部分时间挂在浮充电压上充放电次数可能一年都不到二十次。浮充状态下充电电流趋近于零电芯端电压主要由自放电和化学态决定自放电率差半个百分点浮充一直开着也拉不齐。更麻烦的是备用电源的放电特性平时不动出动就是大电流短时放电。最弱那节电芯在大电流下瞬间被拉到低压区间系统以为整组没电直接切到保护状态之后又重新浮充。这种“平时不坏、关键时候掉链子”的场景作为系统开发人员最头疼。与其等到压差到300mV再靠维护人员上门换电芯不如在BMS里就做均衡把压差长期压在20mV以内让两节电芯始终步调一致。基于这个前提我最终定的方案就是MP2642GR-Z 做能量转移通道dsPIC33EP512MU810 做采样和策略控制。下面把两个器件的分工拆开讲。2. MP2642GR-Z 与 dsPIC33EP512MU810 的分工谁搬电荷、谁定策略这套系统里两个芯片的定位是截然不同的。MP2642GR-Z 是一台“执行机构”负责在两节电芯之间搬电荷dsPIC33EP512MU810 是“大脑”负责判断什么时候搬、搬多久、搬完怎么确认。把这两层分开之后均衡逻辑的调试难度会明显下降。2.1 MP2642GR-Z电芯之间的能量搬运工MP2642GR-Z 这类均衡控制芯片的核心工作是在两个串联电芯之间建立一条可控的能量通道。使能之后它通过开关管和外部电感、电容组成非隔离的功率变换路径让电压高的那节电芯释放能量经过储能元件再注入电压低的那节电芯。方向是“从高到低”不是把高压电芯的能量当成热量白白放掉。放在我们的具体设计里MP2642GR-Z 的输入侧接“电芯1正极与负极”输出侧接“电芯2正极与负极”节点就是两节电芯的串联中点。使能脚由 DSC 的 GPIO 控制状态脚反馈回 DSC。它自己不做复杂的系统判断均衡电流的大小、持续时长、什么时候停止都由 DSC 决定。这种“执行机构”式的分工有一个好处均衡策略可以用软件随时改不用改硬件。需要提醒的是MP2642GR-Z 的具体外围电路一定要按官方数据手册的典型应用来接不同版本的片子可能在使能逻辑、故障输出极性上有差异。代码里不要写死“高电平开启”或“低电平开启”要把这个定义做成配置项硬件调试时先确认极性再跑均衡逻辑。2.2 dsPIC33EP512MU810采样、控制与上报的大脑dsPIC33EP512MU810 是一颗16位DSC带多路ADC和比较丰富的通信外设。在均衡系统里它并没有被当作传统意义上的DSP去跑复杂算法而是当成一颗高可靠性的“采集策略通信”主控来用。它在系统里承担三件事。第一单体电压采集两节电芯的电压通过分压网络进入ADC软件做滑动平均和滤波得到稳定的电压读数和压差。第二均衡决策根据压差、温度、母线电压、充放电状态决定当前是否允许开启MP2642GR-Z以及开启多长时间。第三状态上报把均衡电流、均衡时长、启动次数、故障码通过UART或CAN发给上层监控方便后台知道这组电池的健康情况。这颗DSC的外设数量对两串均衡来说绰绰有余。为了后续扩展我建议把额外的ADC通道留给NTC温度采样和母线电流采样别只盯着单体电压。备用电源系统里温度对均衡允许窗口的影响非常大没有温度采样的均衡策略等于盲人摸象。2.3 为什么没选纯被动均衡或一片专用AFE被动均衡是最常见的方案高电压电芯通过一个电阻放电把多余能量变成热。成本确实低但问题很明显。压差越大需要放的时间越长电阻上持续发热小体积产品根本压不住而且备用电源长期浮充均衡电阻一挂就是几小时热量积累后会影响旁边电芯的温升反而加剧失配。我在早期方案里其实试过被动均衡后来发现浮充结束后散热要很长时间板子局部温度能比环境高出十几度实在不能接受就放弃了。专用AFE是另一条路片上集成了采样、均衡开关和部分保护逻辑开发快一致性也好。但对这个项目来说专用AFE把均衡策略固化在芯片固件里阈值、迟滞、最大均衡时间这些参数不透明想加温度联锁或者“均衡一段时间再复测”这种自定义逻辑会很别扭采购成本和供货周期也压不下来。使用 MP2642GR-Z dsPIC33EP512MU810 组合的好处是把“策略灵活性”和“硬件可靠性”分开功率路径交给专门芯片管逻辑路径交给可编程控制器管。调试时我甚至可以在不改动功率板的前提下连续换几版均衡策略固件这在现场联调阶段非常省事。方案能量处理策略可编程性热管理难度适合场景纯被动均衡高电芯电阻放电低高低成本、小电流、不常浮充专用AFE视型号而定低中标准化大批量产品MP2642 DSC高电芯向低电芯转移高低储能/备用电源等长期浮充场景3. 采样、驱动与功率级两串均衡系统的硬件设计要点确定芯片组合之后真正的硬骨头在硬件设计上。均衡系统要稳定工作采样精度和功率路径的取舍都很关键任何一个环节偷懒后面调试都会加倍还回来。3.1 电压采样链路共模电压与电阻精度问题两串电池的总线电压最高约8.4VDSC的ADC输入范围一般在0到3.6V所以不能直接采样必须用电阻分压或差分运放把电压降到ADC可用区间。这里最需要注意的是顶部电芯的采样它的负极不是系统地而是串联中点电位大约在3到4.2V属于浮动共模电压。直接简单分压后接ADC问题不大但分压电阻的精度会直接影响压差判断。我用了两个分压网络分别测“电芯1正极到地”和“电芯2正极到地”软件里做差值得到顶部电芯电压。这要求分压电阻的比值一致性足够好。早期用过1%精度的电阻结果两路分压比在4.2V输入下能差出15到20mV比15mV的均衡阈值还大均衡根本没法正常判断。后来换成0.1%精度电阻并在分压点并联100nF电容做低通滤波压差读数才稳定下来。如果你的BOM里0.1%电阻成本敏感另一个做法是出厂校准在电芯开路且已知压差很小的状态下先记录ADC两路读数的偏差做成offset存到数据区。这个方法能用1%电阻做到不错的实际精度但要注意校准系数会随温度漂移最好配合NTC做温度补偿不能一劳永逸。3.2 功率开关与电感选择均衡电流怎么定均衡电流的设定要结合电芯容量和均衡时间。被动均衡通常只有几十毫安主动均衡一般希望做到几百毫安甚至更高。均衡电流的峰值受开关周期、导通时间和电感值约束基础公式是[ \Delta I \frac{V \times t_{on}}{L} ]以我用的参考设计为例电芯电压按4.2V算开关导通时间1微秒电感10微亨单次电流上升大约是0.42A。如果期望的平均均衡电流在0.2到0.3A这个配置基本合适。想要更快均衡可以把电感换成3.3微亨但峰值电流会到1.27A电感和开关管的饱和电流、峰值电流规格都要跟着提高否则电感饱和后电流失控MP2642的故障脚就会频繁拉低。开关管的选择上优先关注导通电阻和栅极电荷。导通电阻过高会在均衡回路里产生额外压降降低转移效率栅极电荷过高则会让开关损耗变大。我们用的均衡电流不超过1A导通电阻在几十毫欧级别的管子就够用封装尽量选带散热焊盘的方便均衡长时间开启时把热量导到铜皮上。散热设计不要只看总功率。均衡电流0.3A压差0.2V功率才0.06W听起来微不足道但这是“平均功率”。开关管开关瞬间的损耗、电感的铜损、采样电阻的功耗都要算进去尤其当均衡持续几十分钟时板上局部温升可能比预期高不少。我习惯在功率路径周围铺大面积接地铜皮并留好过孔阵列防止均衡时间一长温度飘高。3.3 使能/故障信号与时序设计MP2642GR-Z 的使能和故障信号是均衡系统与DSC之间的关键接口。这里最容易出的问题就是上电时序。DSC复位或正在下载程序时GPIO处于高阻态如果MP2642的使能脚设计成内部上拉或默认有效就会出现“主控还没起来均衡已经开始乱跑”的情况。解决方法是把使能脚的外部下拉电阻做实保证DSC未初始化时MP2642处于禁止状态。同时驱动线串联一个100到220欧姆的电阻避免DSC IO口在电平切换瞬间被功率回路的干扰拉出毛刺。故障脚建议接到DSC的中断引脚而不是轮询读取。均衡开启过程中如果电感饱和、过流或者过热故障信号能立刻触发中断DSC马上关闭充电回路和均衡路径这比靠软件慢慢查状态快得多。4. 均衡控制状态机从15mV压差到自动停止的完整逻辑硬件只能保证“有能力均衡”真正决定均衡靠不靠谱的是软件状态机。这部分我花的时间比硬件还多因为均衡策略写不好轻则频繁启停重则在错误时机均衡反而把电芯搞坏。4.1 均衡判据、迟滞与滤波均衡的启动阈值不是拍脑袋定的。阈值太低采样噪声都会被当成压差均衡频繁启停阈值太高又起不到提前预防失配的作用。我最后把启动阈值定在15mV停止阈值定在5mV中间留了10mV的迟滞区间避免电芯电压在临界点附近抖动导致继电器式的来回开断。数字滤波同样重要。每次开机初始化时连续采集20次电压每次间隔10毫秒去掉最大最小值后取平均。压差判断也做了连续确认连续3个滤波周期都超过15mV才真正进入均衡状态宁可慢一点也不要被瞬态噪声骗了。这里有一个容易被忽略的点均衡进行时不要直接用电芯动态电压做结束判据。均衡电流导致的内阻压降会体现在端电压上高压电芯在均衡期间电压读数被拉低低压电芯被抬高看起来“压差已经消失”实际上关掉均衡后又会弹回来。所以每次需要复测压差时我都先关掉MP2642等50到100毫秒让电压稳定后再采样测完再决定下一步。4.2 状态机IDLE → FILTER → BALANCE → RE-CHECK我把均衡逻辑拆成四个状态用状态机实现逻辑清晰也容易排查。首先是IDLE态。压差在5mV以内系统什么都不做所有均衡输出关闭。其次是FILTER态持续检测压差是否稳定超过15mV同时检查前置条件母线电压要在预设工作范围、系统不在放电、温度在允许区间。这些条件通过后进入BALANCE态。BALANCE态开启MP2642GR-Z同时启动一个均衡定时器每轮均衡时间设为10秒。这个定时器不是随便选的太短则每次开门关门都消耗开关次数太长则可能单方向均衡过头。均衡期间DSC仍然周期性采样温度和母线电压发现温度超过45度或者母线电压异常立刻中止。一轮10秒结束后进入RE-CHECK态关闭使能等待电压恢复重新采样。如果压差仍然大于15mV继续下一轮BALANCE如果压差已经小于5mV并且连续确认两次回到IDLE。为了防止电芯严重老化导致永远拉不齐我还加了一个最大累计均衡时间比如2小时超过之后强制退出并上报“均衡超时”告警让维护人员知道这组电芯可能需要更换。4.3 与充电器和放电回路的联锁逻辑均衡不能在任何状态下都开启。充电过程中充电器持续向电池注入电流如果均衡也在搬运电荷相当于两个源在对抗均衡效率极低还可能让充电器误判电流异常。放电过程中更不建议均衡大电流负载下的电压值包含了大量欧姆压降和极化效应拿这些数据做均衡判断结果不可靠。我设计的联锁逻辑是这样的只有当系统处于静置或浮充状态时才允许均衡启动。具体实现上BMS要读充电器状态和放电负载状态充电状态通过通信或电平信号送进DSC放电状态用母线电流来判断连续30秒电流低于某个小值才认定为静置。均衡运行期间如果检测到负载启动立即暂停均衡等负载消失后再恢复或重新判断。单体过压保护也要和均衡联动。均衡的目标是把高压电芯降到正常范围但如果高压电芯已经接近充电截止电压均衡期间充电器一旦继续充电可能导致电芯过充。所以均衡启动前必须判断高压电芯电压低于截止电压至少50mV否则只上报告警不启动均衡。5. 实测中的翻车现场与长期浮充验证软件和硬件都做完了真正调试过程中踩的坑比预想的多。这里把最典型的三个问题写出来给后面做类似方案的朋友省点时间。5.1 ADC噪声与“假压差”的排查第一版固件里均衡启动阈值设成10mV拿万用表实测两节电芯压差只有2mV但系统一直显示25mV均衡频繁启动然后立刻停止整个BMS都在发抖。查了很久最后定位到ADC采样时序和分压网络布局上。采样点离均衡功率回路太近功率开关切换瞬间产生的磁场耦合进了高阻分压网络ADC恰好在这个时间窗口采样把开关噪声当成了真实电压。解决方式分两路一是分压网络加大了100nF滤波电容降低采样源的交流阻抗二是错开采样时间均衡开关动作之后延迟200微秒再进行ADC采集避开瞬态噪声。两个措施一起做压差读数才算干净。在这个问题上我的经验是均衡系统的采样时序必须和功率开关动作强相关不能靠运气。DSC里最好用定时器触发ADC采样并预留采样窗口偏移寄存器现场一旦发现噪声耦合可以快速调整采样相位不用重新改板。5.2 采样线与功率线的敷设第二个问题出现在功能样机阶段。均衡开启后系统检测到的压差不但没变小反而变大高压电芯读数被额外抬高低压电芯读数被压低看起来“越均衡越差”。一开始我怀疑MP2642方向搞反了换了两版板子查功率路径也没发现异常。后来把示波器夹在采样点上才明白这不是方向问题是采样点和功率路径共用了一段导线。均衡电流从电芯端子流过连接线连接线自身电阻产生压降采样电路又把这段压降当成电芯电压的一部分。均衡电流越大误判越严重形成了闭环振荡。解决方案就是把采样线和功率线在电芯端子处分开采用开尔文接法功率电流走粗线电压采样用细线单独连到电芯极柱两者只在极柱处汇合。改完布局之后均衡开启时的压差读数才变得真实可信。5.3 长期浮充后的实测结果方案定型后我做了一组对比实测。一组采用这套MP2642GR-Z加dsPIC均衡方案另一组保持纯被动均衡两套电池都挂在同一批备用电源设备里长期浮充。三个月后再看数据对比组的压差已经拉开到60到80mV个别电芯接近100mV而这套主动均衡方案的电芯压差始终稳定在5到10mV范围内均衡每日启动时间也从最初的十几分钟降到几分钟。我自己的体会是均衡的价值不只是把那点压差抹平而是把电芯老化的正反馈链条打断。电芯一旦开始失配落后那节会越来越落后主动均衡虽然没有能力修复老化但能阻止失配扩大把整组可用容量维持住。后续如果有余力我建议在这个系统上再增加电芯内阻在线估算和自放电率记录把均衡策略从“电压对齐”升级到“健康度对齐”那又是另一个级别的BMS水平了。
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表