3、电压采集精度测试:单体电压采集电路原理、精度测试方法(常温/高低温)、误差分析与校准
电压采集精度,说白了就是BMS的“眼睛”好不好使。眼睛要是花了,SOC估算、均衡策略全得跑偏。我见过不少项目,前期仿真数据漂漂亮亮,一上高低温箱就原形毕露。今天咱们就把这块掰开揉碎了讲清楚。
3.1 单体电压采集电路原理
目前主流方案有两种:分立电阻分压+运放,或者直接用专用AFE芯片。我个人更倾向于AFE方案,比如TI的BQ79616、ADI的LTC6811这些。为什么?因为集成度高,匹配性好,省心。
但不管用哪种方案,核心结构都差不多:
- 前端分压网络:把电池电压降到ADC可接受的范围。比如4.2V的满电电压,分压后变成1V左右。
- 滤波电路:RC低通滤波,滤掉高频噪声。我习惯用100Ω+100nF的组合,截止频率大概16kHz。
- ADC采样:AFE内部集成了Σ-Δ ADC,分辨率通常16位或24位。
- 参考电压:这个最关键。参考电压的温漂直接决定了精度上限。
关键点:电压采集的精度瓶颈,往往不在ADC本身,而在前端分压电阻的精度和温漂。1%精度的电阻,在-40℃到85℃范围内可能漂到2%以上。
嗯,这里要注意:AFE芯片虽然集成了很多功能,但外部电阻电容的选型依然不能马虎。我在一个项目中就吃过亏,用了便宜的0402电阻,结果低温下电压读数偏了10mV,后来全部换成0805的0.1%精度电阻才解决。
3.2 精度测试方法
3.2.1 常温测试
常温测试是最基础的,一般在25℃±2℃环境下进行。步骤很简单:
- 准备高精度可调电源(精度至少0.01%),或者用标准电池模拟器。
- 设定电压点:2.0V、2.5V、3.0V、3.5V、4.0V、4.2V。覆盖电池的整个工作范围。
- 记录AFE读数和万用表读数(万用表精度要高于0.01%)。
- 计算误差:误差 = AFE读数 - 万用表读数。
你想想看,如果常温下误差就超过±2mV,那高低温下肯定更惨。我一般要求常温误差在±1mV以内才算合格。
3.2.2 高低温测试
高低温测试才是真正的“照妖镜”。测试条件:
| 温度点 | 保持时间 | 测试电压点 |
|---|---|---|
| -40℃ | 2小时 | 2.0V, 3.0V, 4.2V |
| -20℃ | 1小时 | 2.0V, 3.0V, 4.2V |
| 0℃ | 1小时 | 2.0V, 3.0V, 4.2V |
| 25℃ | 1小时 | 2.0V, 3.0V, 4.2V |
| 60℃ | 1小时 | 2.0V, 3.0V, 4.2V |
| 85℃ | 2小时 | 2.0V, 3.0V, 4.2V |
为什么要保持2小时?因为电路板上的温度需要时间稳定。我曾经偷懒只保温30分钟,结果数据完全不能用,白白浪费了一整天。
注意:高低温测试时,一定要用热电偶贴在AFE芯片表面和分压电阻附近,监控实际温度。温箱显示的温度和板子实际温度可能差5-10℃。
3.3 误差分析与校准
误差来源主要有三个:
- 增益误差:分压比例不准,或者ADC参考电压偏移。表现为斜率偏差。
- 偏移误差:运放的输入偏置电压、ADC的零点偏移。表现为固定偏差。
- 非线性误差:ADC本身的积分非线性(INL)。这个通常很小,可以忽略。
校准方法其实不复杂。我常用的两步校准法:
- 偏移校准:在0V输入时,记录ADC读数,作为偏移量。以后每次采样都减去这个值。
- 增益校准:在满量程点(比如4.2V)记录ADC读数,计算实际增益系数。
代码实现大概是这样:
// 偏移校准
int16_t offset = read_adc(0); // 短接输入端,读偏移
// 增益校准
int16_t full_scale = read_adc(4200); // 输入4.2V
float gain = 4200.0 / (full_scale - offset);
// 实际采样
int16_t raw = read_adc(channel);
float voltage = (raw - offset) * gain;
小技巧:如果AFE支持内部自校准,优先用硬件校准。比如LTC6811的“自校准”命令,可以自动补偿内部偏移和增益误差,省心很多。
但要注意,校准只能补偿系统性的误差。随机噪声、温度漂移这些,校准是搞不定的。所以硬件设计上还是要留足余量。
我记得有一次,客户反馈说低温下电压采集偏差大。我排查了半天,最后发现是分压电阻的温漂系数不一致导致的。两个电阻一个50ppm,一个100ppm,温度一变,分压比就变了。后来全部换成25ppm的电阻,问题解决。
所以我的建议是:
- 分压电阻用0.1%精度、25ppm温漂的金属膜电阻。
- 参考电压源用低温漂的(比如5ppm/℃)。
- PCB布局时,AFE和分压电阻尽量靠近,走线要短。
- 高低温测试至少做3个循环,看数据是否可重复。
最后说一句:电压采集精度测试,不是测一次就完事的。量产时每块板子都要做,而且数据要存档。万一出了问题,还能追溯。