拓冰建站拓冰建站
首页 / 资讯中心 / 正文

高精度电池监控与均衡:把电压误差压到±1mV的工程实践

去年我在帮朋友调试一组4串锂聚合物电池的时候遇到了一件挺打脸的事。电芯电压用六位半万用表量出来压差只有20mV左右看着相当健康结果电池组在跑负载的时候保护板莫名触发断电拆下来一测里面有两颗电芯已经过放到3.2V以下。问题就出在板子上的Battery Monitor芯片报上来的电压和真实值差了将近30mV。那段时间我才真正意识到电池监控和均衡器放在一起讨论的时候精度不是锦上添花的参数而是整个电池管理系统的地基。整篇我会从监控和均衡两条线展开把“高精度”落到实处讲清楚精度到底是怎么设计出来、校准出来、验证出来的适合做BMS、动力电池保护板、储能系统以及自己DIY电池组的工程师参考。1. 监控和均衡为什么都卡在“电压准不准”这一关1.1 压差0.05V还是0.005V直接影响均衡策略能不能闭环先说一个很多人忽略的事实电池均衡器自己不产生电压也不凭空知道哪节电芯电压高、哪节电压低它所有动作都依赖监控电路喂给它的电压数据。这个数据一旦不准均衡器就会做出错误的判断。拿磷酸铁锂来说这种电芯在SOC从20%到80%的区间内电压曲线非常平缓可能整个区间电压变化只有0.1V左右。这意味着什么意味着如果你的监控精度只有±20mV那你在20%~80%的SOC区间里根本没办法靠电压判断两节电芯的真实差距。可能芯片显示A电芯3.310V、B电芯3.290V你认为压差有20mV可以启动均衡但实际上真实压差可能只有2mVB电芯反而还高一点。这种情况下均衡器越努力电芯之间的差距反而被拉得越大。高精度监控的意义就在这里只有把电压测量误差压到±5mV以内甚至±1mV级别均衡器才能分辨出真实的电芯间差异才存在“闭环”的可能。我见过很多DIY均衡板实际效果不好根子往往不在均衡电路本身而在前面的电压采集精度根本不支持那么精细的控制。监控精度是均衡器控制精度的物理上限这一点想明白之后很多设计问题就顺了。1.2 监控精度决定保护动作的可靠性不只是“均衡好不好看”的问题很多人提到Battery Monitor第一反应是看SOC估算准不准或者电压显示对不对但实际上还有一个更重要的角色——保护。过充保护、过放保护、过流保护全部依赖监控链路的数据。常规锂电池的过充保护阈值在4.25V到4.30V之间过放保护阈值在2.50V到2.80V之间。如果采样误差有30mV那么实际电芯已经到4.28V了保护板可能还在等“4.25V”的阈值信号分压电阻和ADC的累积误差一叠加触发点可能已经漂到4.30V以上。锂电在过充末段电压上升非常快30mV的误差相当于多充进去的时间可能只有几十秒到几分钟但这对电芯寿命的损伤是实打实的。反过来说如果采样值系统性偏低本来电芯只有4.20V芯片却认为到了4.25V提前切断了充电那电池组永远充不满。用户看到的就是容量缩水、续航变短。所以高精度在这里解决的不是“显示好看”而是安全边界上每一个阈值的执行精度。过放那边同理采样偏高会让电池提前断电采样偏低又可能导致电芯深度过放这两样都是实打实的风险也恰恰是这类高精度监控方案最核心的价值所在。2. 采样链路里的精度杀手从电阻温漂到PCB漏电2.1 分压电阻和AFE选型精度是从元件的每一处误差里“抠”出来的如果不用集成AFE模拟前端而是用独立ADC来做电压采集那就绕不开分压电阻。这里有个很容易低估的细节一颗电阻的误差可以直接葬送掉整个系统的精度目标。假设你做了一个高边采样用100kΩ和25kΩ分压把4.2V降到0.84V给ADC用。如果上分压电阻精度是0.1%温度系数是50ppm/°C那么温度变化30°C时这颗电阻的阻值变化是0.15%折算到电压测量就是大约6mV的误差。再叠加电阻初始精度、ADC偏移、基准漂移轻松突破20mV。所以在追求高精度的系统里分压电阻至少选0.05%精度、25ppm/°C温漂以下并且要用低热电动势低EMF的合金电阻最好还要做激光微调。但说实话这种方式做±5mV整机精度已经非常吃力。这也是为什么我推荐优先考虑集成电池监控AFE芯片。比如ADI的LTC6811系列、亚德诺ADBMS1818或者TI的bq76940。这类芯片内部做了专门的Σ-Δ ADC基准源、多路切换开关、滤波器都集成在内部而且关键器件在晶圆层面做了匹配通道间误差可以做到非常小。以LTC6811这类方案为例芯片本身的电压测量误差通常在1~2mV级别未校准经过校准之后能做到1mV以内。这种精度靠分立电阻系统几乎无法达到。另外还要注意AFE的测量时序。AFE多路复用器在切换通道后需要建立时间如果设置的ADC转换时间太短前一个通道的残余电压会污染当前通道。我实际测下来RC滤波器用100Ω串联0.1μF的时候通道切换后至少要等100μs再启动转换最好用500μs以上。选型时不要只盯着ADC位数建立时间、滤波方式和通道间串扰往往比一位分辨率的差别更影响实际测量值。2.2 电流采样和库仑计别让SOC估算毁在检流电阻上监控不仅要测电压还要测电流。高精度电流测量需要一颗低温漂的检流电阻。好一点的方案会用合金电阻比如锰铜合金或镍铜合金阻值从0.5mΩ到5mΩ不等温度系数能做到15ppm/°C以内配合专门的电流检测放大器比如INA240、INA282或者直接用AFE自带的电流检测通道。检流电阻最大的坑是焊接和布线。高电流通过时电阻自身发热如果焊盘铜箔散热不均匀电阻两端会出现温度梯度直接影响阻值。还有一个被我踩过的坑检流电阻的PCB走线如果直接走大电流路径PCB铜箔的电阻也会进到测量回路里面。高精度方案必须用四线开尔文连接把采样点直接连到电阻本体的两端而不是从大电流走线上开个分支。否则大电流下PCB铜箔上的压降会直接变成测量误差你算出来的库仑计数据会系统性偏移。电流测量的精度直接影响SOC估算。库仑计本质上就是Q∫I dt如果电流误差是1%那么经过100次满充满放循环之后累计积分误差大概率撑不住SOC显示的真实性。这也是为什么高端BMS在电流路径上会做自校准抵消漂移。对一般应用来说保证检流电阻的机械应力和温度应力低一点用开尔文连接配合出厂的单点校准可以把电流通道做到1%以内。2.3 基准电压和温度这才是最容易忽略的“隐藏精度杀手”所有ADC的读数最终都要折算到电压而折算基准就是电压基准源。这个基准源自身的精度和温漂会直接乘到所有通道的测量结果上。一个典型实例某方案选用了内部基准约1.2V的MCU这个内部基准的精度本身是±1%温漂可能达到80ppm/°C以上。看起来不算大但在温度从0°C升到60°C的过程中基准漂移就是0.48%折算到4.2V电芯就是大约20mV的误差。这就是整个系统“莫名其妙”漂移的元凶。要支撑高精度监控外部基准源至少选2ppm/°C级别的芯片比如常见的REF5025、ADR4525这类基准的输出电容和去耦也要按手册来不能省。温度的影响还不止基准本身。电芯上的电压采样线如果长了线材的铜电阻温漂会进信号链PCB上的过孔和焊点在温度梯度下会产生热电动势塞贝克效应。特别是大电流充放电时板上温差很容易到十几度铜-锡焊点之间的热电动势可以达到每度几微伏到几十微伏虽然看起来很小但在“高精度”目标下这就是稳定性的隐形缺口。所以元件布局上所有和采样相关的电阻、电容、基准、ADC输入尽量放在远离大电流路径和发热元件的地方并且保持等温。做电池监控不是只把原理图画对就行Layout就是精度的一部分。3. 均衡精度不是放电电流大小而是“何时停”的判断精度3.1 被动均衡简单电路里的精度控制细节被动均衡也叫耗散均衡的原理非常直观——给电压高的电芯并联一个放电电阻通过开关通常是MOSFET把多余的能量以热量形式释放掉。电路很简单一个电阻加一个开关但控制策略决定了均衡效果的好坏。被动均衡的精度控制点其实全在“什么时候开始均衡、什么时候停止均衡”这个判断上。上一节说过如果电压采样误差很大均衡开始和停止的触发点就会错位。除此之外还要防止“均衡震荡”假设你设置了均衡启动阈值20mV停止阈值5mV因为采样噪声或者电芯电压回弹均衡可能启动一阵子后停止然后电压还没完全平衡又启动反复切换。每次切换都有开关损耗和应力长期下来MOSFET会发热严重甚至影响可靠性。解决“均衡震荡”的标准做法是设置回滞窗口hysteresis。比如启动条件是最大电压-最小电压20mV且持续10秒停止条件是压差5mV且持续20秒这样就能给系统留出足够的时间让它稳定下来不会因为瞬间读数波动就去操作均衡。还有一点被动均衡开始前必须先确认对应电芯不是处于过放保护状态否则均衡电流会继续拉低该电芯电压引发保护动作。现在不少AFE芯片比如bq76940系列都集成了被动均衡开关外部只需要接均衡电阻。选电阻时要注意功率按3.7V电芯、100mA均衡电流计算电阻压降约3.7V功耗就是0.37W。很多设计都栽在电阻功率余量上温度一上来阻值漂移均衡电流跟着变控制精度也变差。3.2 主动均衡能量转移里更需要高精度的“电流方向判断”主动均衡和被动均衡最大的不同是它把能量从电量高的电芯转移到电量低的电芯而不是白白放掉。常见的实现包括电容式、电感式和变压器式效率更高当然电路也更复杂。主动均衡的高精度难点在于它需要实时判断能量转移的方向和大小。比如采用电感或变压器方案的Buck-Boost均衡器当检测到某一节电芯电压高于其他电芯时把能量抽出来放到电感里再注入到电压低的电芯。这个过程如果电压测量不准误判了谁高谁低就会把能量从低电压电芯抽走反而加剧不均衡。相比被动均衡这个“方向错误”代价更高。另外主动均衡电流一般比被动均衡大得多可以达到0.5A~2A。高频开关会产生开关噪声如果PCB布局和滤波没处理干净噪声会耦合到电压采样信号里导致均衡过程中电压读数不停跳变控制环路就乱了。所以主动均衡方案里通常要做更重的数字滤波比如在ADC结果上做移动平均或者在关键路径上加共模电感。对一个主被动组合的均衡器来说控制策略要能根据实时电流方向、开关状态调整采样窗口这一步特别考验系统设计功底。3.3 均衡策略里的回滞与死区把精度优势转换为稳定的长期效果高精度的电压采集真正释放价值的地方是在均衡策略的“死区”设置上。死区越小均衡越频繁最终能达成的电压一致性越好但如果没有精度做支撑小死区只会带来频繁误动作。举个例子如果系统精度只有±15mV那设置一个±5mV的死区就毫无意义因为你根本分辨不了5mV的压差是不是真实存在的噪声就可能是15mV。但如果你校准到了±1mV那5mV的死区就真实可控均衡停止之后压差反弹也会更小。所以我的经验是先明确自己的电压测量精度再反推均衡死区。精度不够的时候不要把死区设得很小否则系统会“整天都在均衡”效果却很差。反过来精度高了之后可以放心缩小死区让均衡效果明显上一个档次。这也是为什么很多商业化BMS会把“高精度”作为核心卖点因为高精度均衡器确实能做到“长期静置后压差仍然保持在一个很低的水平”这种实际体验。具体到策略参数我常用的套路如下均衡启动条件设为压差大于30mV并保持30秒均衡持续到压差小于10mV后停止如果压差在均衡过程中被拉回到5mV以内且持续1分钟才允许下一次启动。停止之后MCU每30秒重新采样一次确认压差没有反弹再关闭均衡完成信号。这个回滞设计可以在保证均衡效果的同时大幅减少MOSFET开关频率和发热。4. 校准和温漂补偿把器件的标称精度真正变成整机精度4.1 两点校准和三段校准公式很简单关键是执行细节芯片手册上的精度指标再好落实到具体板子上依然有ADC偏置、增益误差和基准误差。要拿到高精度必须做系统级校准。这个话题我踩过不少坑接下来直接说可操作的步骤。校准的基本原理是两点法实际电压 增益系数 × ADC读数 偏置量也就是V_real k × V_adc b。校准的时候用高精度源比如六位半万用表或者精密电压源依次给每个采样通道输入两个已知电压记下ADC的原始值然后联立方程解出k和b。我建议至少做三点校准分别在2.500V、3.700V、4.200V附近取点。因为ADC的传递函数其实不是完美的直线三点校准可以做分段线性插值把非线性误差进一步压下去。4.2V、3.7V、2.5V这三个点接近电芯常用工作区间插值效果足够了。校准流程里的一个高频坑是校准必须在稳定的常温环境比如25°C±2°C下进行否则温度和待机时间都会把测得的k和b拉到错误值。校准完成后把k和b存进EEPROM或Flash上电时由MCU加载并应用到所有电压读数上。如果是量产建议每块板子单独校准不要共用一套系数。4.2 温漂补偿用软件去校正物理世界的“体温变化”两点校准解决的是常温下的误差但电池系统的工作温度跨度很大夏天车舱内可能到60°C冬天户外可能到-20°C。基准源、分压电阻、ADC的漂移都会随温度变化那个固定k和b就不够用了。温漂补偿的思路是在多个温度点做校准记录每个温度点下的k、b值然后建立温度到校准参数的映射表实际运行时根据NTC测到的板温和电芯温度用查表线性插值的方式实时修正校准系数。具体操作上我一般会在-20°C、0°C、25°C、45°C、60°C这几个温度点做全套校准把每组k、b存起来。运行时先判断当前温度落在哪两个校准温度点之间再用线性插值算当前温度下的k和b。这样做下来整机电压测量误差基本能控制在±2mV以内。需要注意的是温度传感器必须放在基准源和采样电阻附近才能反映真正的模拟链路温度。如果NTC离电芯太近读数偏差比较大就会给补偿系数引入新的误差。4.3 内部自检让高精度在生命周期内不衰减校准做完了不代表精度能保持到产品报废。元件会老化、焊点会氧化、基准源会漂移。所以可靠性要求高的项目还要加周期性自检逻辑。很多AFE芯片内部都有一个精确的基准源和自测通道。比如LTC6811可以对内部基准或已知分压点进行测量通过对比内部基准的读数漂移反推整个ADC链路的误差变化。软件上可以设计成每次上电后先读一遍内部基准电压如果偏差超过预设阈值就提示需要重新校准或者标记状态。我在一个储能BMS项目里做过类似设计每10次充放电循环MCU自动触发一次内部基准自检如果发现基准读数偏移超过3mV就自动进入后台校准模式重新计算k和b。这个设计让我少收到很多客户的售后投诉因为大多数“电压不准”的问题在发生到影响功能之前就被纠正了。精度不是一次校准的静态结果而是一个持续维护的过程。5. 实测验证与几个我踩过的高精度设计坑5.1 测试台搭建没有高精度基准一切都是自说自话做高精度设计验证手段必须比设计目标高一到两个数量级。如果目标是整机±5mV那测试基准至少要有±0.1mV级别的能力。我个人的测试台配置是一台六位半万用表Keysight 34401A级别的几个精密可调电压源一台恒温箱加上若干NTC探头。实际验证流程是这样用精密电压源给每节电芯通道输入一个标准电压比如3.6000V然后同时用六位半万用表测量输入端的真实电压再读取我们系统上报的电压算出误差。从2.0V到4.5V每隔0.2V扫一遍每个温度点重复几组最终得到误差分布表。这里注意不要只扫一个温度点尤其是基准源和分压电阻的温漂特性必须靠多点温度测试才能暴露出来。我见过不少项目常温下测出来漂亮得很一进恒温箱就现原形误差直接翻好几倍。5.2 实测数据示例一组校准后的整机精度算给你们看校准之前和之后对比是我做项目汇报时最爱放的图。下面这组数据是某一次4串电池保护板的实测记录每串通道都是同一个4.2V附近的工作点室温25°C通道万用表读取真实电压 (V)校准前系统上报 (V)误差 (mV)校准后系统上报 (V)校准后误差 (mV)电芯13.62303.63916.03.6230.0电芯23.61523.62812.83.614-1.2电芯33.61083.601-9.83.6110.2电芯43.59843.61213.63.597-1.4校准之后最大误差只有1.4mV绝大多数点在±1mV内。这个数据也从侧面说明了两点第一不去校准就想宣称“高精度”基本上是在碰运气第二校准做完之后系统的精度是可以做到比大多数人预期好很多的。这也是我敢把“高精度”当核心卖点去做的底气。5.3 调试中踩过的三个典型坑滤波、回滞、基准选型第一个坑采样值跳动。某次测试发现均衡开启的一瞬间电压读数跳了将近20mV一开始以为是ADC问题后来定位发现是均衡MOSFET开关对采样线的耦合噪声。解决方案是加RC低通滤波把截断频率压到1kHz以下并且让MOSFET的驱动回路和采样回路物理分开。另外AFE的转换准备时间也要留足经验值是至少等待5倍RC时间常数再启动ADC转换。第二个坑均衡停止后压差反弹。当时把均衡停止阈值设成了2mV结果均衡器每次停了之后电芯电压都会很快回弹3~5mV导致均衡反复重启均衡MOSFET发热严重。查找原因发现是均衡停止后电芯内部极化电压恢复造成的虚压差。处理方式是提高停止阈值到5mV同时增加50秒的确认延时等极化恢复完毕再判断是否真的需要继续均衡。第三个坑基准源温漂前面章节提过。有一次在高温箱里做老化测试发现电压读数随温度明显偏移一开始怀疑是电芯本身问题后来单独测基准源发现某个国产基准在60°C时已经漂了将近30mV。换用低温漂基准之后整个系统的温度稳定性马上就上来了。选基准源的时候一定要看datasheet里的温漂曲线和长时间稳定性不能只看标称精度。后来我在所有图纸里建立了一个“关键器件清单”凡是和精度相关的模拟器件都强行指定物料和替代料范围量产时不允许随意换。这些坑每个都花了我一两周的时间排掉。分享出来希望你们在搭高精度Battery Monitor/Balancer方案的时候可以少走点弯路。如果让我自己总结这套方案最核心的体验其实就一句话高精度是系统级的事情不是某一颗芯片能解决的采样链路里每一个元件的每一丝误差最终都会显形在最终读数上。从器件选型到Layout再到校准策略每一步都在往那个±1mV的目标上堆。等你真正把精度做到位了均衡器才可能称得上是一个靠谱的均衡器而不仅仅是一个“开着放电电阻碰运气”的电路。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门