4、电压采集技术:单体电压采集方案与采样精度

电压采集,说白了就是BMS的「眼睛」。眼睛要是花了,后面所有算法都是白搭。我做了这么多年BMS,见过太多因为电压不准导致的误诊断、误保护,甚至电池包提前退役的案例。今天咱们就聊聊单体电压怎么采,采得准不准,以及怎么让所有电芯「步调一致」。

4.1 单体电压采集方案:AFE芯片 vs 分立元件

目前主流方案就两种:用专用AFE芯片,或者自己搭分立电路。各有各的脾气,我分别说说。

4.1.1 专用AFE芯片方案

AFE(Analog Front-End)芯片,就是专门干这活的。像TI的BQ79616、ADI的LTC6811、NXP的MC33771,都是老熟人。这类芯片内部集成了多通道ADC、电压基准、隔离通信接口,甚至自带均衡功能。

优点很明显:

  • 集成度高:一颗芯片搞定12~16串电芯的电压采集,外围电路极简
  • 精度有保障:典型精度±1mV~±3mV,温度漂移小
  • 自带隔离:菊花链通信,高低压侧天然隔离
  • 功能丰富:过压/欠压检测、温度采集、被动均衡一条龙

缺点也别忘了:

  • 成本偏高:一颗AFE芯片几十块,量大了肉疼
  • 供货风险:这两年芯片缺货,交期动不动20周+
  • 灵活性差:采样速率、滤波方式、量程范围都是固定的
我的经验: 量产项目我首选AFE芯片。省心,可靠,认证好过。但如果是做预研或者小批量,我会考虑分立方案,成本能砍掉一半。

4.1.2 分立元件方案

所谓分立方案,就是用运放、电阻、电容、多路复用器、ADC自己搭。听起来很硬核,实际上也确实硬核。

典型架构:

电芯正极 → 分压电阻 → 差分运放 → 多路复用器 → ADC → MCU

每个电芯电压先经过分压网络降到ADC可接受范围,再用差分运放消除共模干扰,最后通过多路复用器轮流采样。

优点:

  • 成本低:一颗高精度ADC加几个运放,总成本不到AFE芯片的1/3
  • 灵活:采样速率、量程、滤波都可以自己调
  • 不受芯片缺货影响:通用器件,哪里都能买到

缺点也扎心:

  • 设计复杂:运放选型、PCB布局、抗干扰处理,处处是坑
  • 精度难保证:分压电阻的温漂、运放的失调电压、多路复用器的漏电流,都会引入误差
  • 隔离麻烦:高压侧和低压侧之间需要隔离放大器或隔离ADC,成本又上去了
注意: 分立方案对硬件工程师要求极高。我曾经在一个项目里用分立方案,结果因为PCB漏电流导致采样偏差5mV,查了整整两周才找到问题。如果你团队硬件能力一般,建议老老实实用AFE。

4.2 采样精度:到底多少才算够?

精度这个话题,我经常被问到:「±1mV够不够?±5mV行不行?」

咱们先看需求。BMS的核心功能是保护电池,而保护阈值通常是这样:

保护类型 典型阈值 精度要求
过压保护 4.25V ±10mV
欠压保护 2.80V ±10mV
SOC估算 3.0V~4.2V ±5mV
均衡开启 3.50V ±2mV

你看,保护功能±10mV就够了,但SOC估算和均衡控制需要更高的精度。为什么?因为锂电池的OCV-SOC曲线在平台区非常平缓,电压变化1mV对应的SOC变化可能只有0.1%。如果精度不够,SOC误差会越积越大。

影响精度的因素:

  • ADC分辨率:16位ADC在4.2V量程下,理论分辨率约64μV,但实际有效位数(ENOB)通常只有14~15位
  • 基准电压漂移:温度每变化1℃,基准可能漂移10~50ppm,对应4.2V就是0.04~0.2mV
  • 分压电阻温漂:普通电阻100ppm/℃,高精度电阻25ppm/℃甚至更低
  • PCB漏电流:潮湿环境下,PCB表面漏电流可达μA级,在1MΩ电阻上产生mV级压降
我的建议: 量产项目至少保证±5mV精度,最好做到±2mV。别为了省几毛钱电阻,把整个BMS的精度毁了。我见过一个项目,用了普通电阻,结果夏天和冬天采样偏差差了8mV,均衡策略完全乱套。

4.3 同步采样:为什么重要?怎么实现?

同步采样,就是让所有电芯的电压在「同一时刻」被采集。为什么这么重要?

你想想看,电池包在放电时,电流可能很大(比如100A)。如果电芯1在t1时刻采样,电芯2在t2时刻采样,中间差了1ms,而电池内阻是10mΩ,那么电压差就是:

ΔV = I × R × Δt = 100A × 0.01Ω × 0.001s = 1mV

1mV看起来不大,但别忘了,均衡判断的阈值可能只有2mV。如果采样不同步,你可能会误判某个电芯电压偏高或偏低,导致均衡策略误动作。

更严重的情况: 在脉冲充放电时,电流变化剧烈,不同步采样可能导致电压误差达到10mV以上。这时候你算出来的SOC、内阻、功率能力,全是错的。

4.3.1 AFE芯片的同步方案

AFE芯片天生支持同步采样。以LTC6811为例:

// 启动所有通道同步采样
LTC6811_adcv(MD_NORMAL, DCP_DISABLED, CELL_CH_ALL);

// 等待转换完成
while(!LTC6811_is_ready());

// 读取所有电芯电压
LTC6811_rdcv(0, cell_voltages);

内部机制是:所有通道的采样保持电路同时打开,把电压「冻结」在电容上,然后逐个转换。这样所有电芯的采样时刻差在纳秒级,完全可以忽略。

4.3.2 分立方案的同步难题

分立方案就麻烦了。因为通常只有一个ADC,通过多路复用器轮流采样,天然就是非同步的。

解决办法:

  • 加采样保持器:每个电芯通道加一个采样保持芯片(如LF398),所有保持器同时触发,然后逐个读取
  • 高速轮询:如果电流变化不快,可以用高速ADC快速轮询,比如1μs采一个通道,16串也就16μs,误差可以接受
  • 软件补偿:记录每个通道的采样时刻,结合电流变化率做插值补偿
避坑指南: 我曾经在一个项目中用分立方案做同步采样,加了采样保持器。结果发现保持电容的漏电流导致电压缓慢下降,保持时间长了误差很大。后来把保持时间控制在100μs以内,才解决了问题。嗯,细节决定成败。

4.4 实际项目中的选型建议

说了这么多,到底怎么选?我总结一下:

  • 12~16串,量产项目:无脑选AFE芯片,比如BQ79616或LTC6811,省心可靠
  • 6串以下,成本敏感:可以考虑分立方案,但要做好精度验证
  • 需要高精度SOC:必须用AFE芯片,且选择±1mV精度的型号
  • 需要同步采样:AFE芯片天然支持,分立方案需要额外硬件

最后说一句:电压采集是BMS的基石。这块省下来的成本,迟早会在售后和客诉上加倍还回去。别问我怎么知道的——都是泪。