第2章:电池特性基础

各位同学,今天我们来聊聊电池特性。说实话,做BMS设计,不懂电池特性就像开车不看仪表盘——迟早要出事。我刚开始做BMS那会儿,就吃过这个亏,以为只要把电压采准了就行,结果项目测试时电池直接鼓包了...嗯,从那以后,我老老实实把电池特性啃了个透。

2.1 锂离子电池工作原理

锂离子电池说白了就是一个「摇椅式」反应。充电时,锂离子从正极「跳」出来,穿过电解液,嵌入到负极的石墨层里。放电时,它们又跑回正极。电子呢?走外电路,给我们供电。

你可能会问:为什么叫「锂离子」而不是「锂电池」?因为里面没有金属锂,只有锂离子在来回跑。这个区别很重要,直接关系到安全性。

正极材料常见的有三种:

  • 磷酸铁锂(LFP):我项目中最爱用的,热稳定性好,循环寿命长,就是能量密度低点
  • 三元锂(NCM):能量密度高,但热失控风险大,需要更精细的BMS管理
  • 钴酸锂(LCO):消费电子用得多,动力电池领域基本被淘汰了

核心要点:锂离子电池的本质是锂离子在正负极之间的可逆嵌入和脱出。这个「可逆」二字,就是我们BMS要守护的底线。

2.2 关键参数详解

做BMS,你每天都要跟这几个参数打交道。我习惯把它们分成「直接测量」和「间接估算」两类。

2.2.1 电压(Voltage)

电压是最直接的参数。单体电压、总电压、开路电压(OCV)、工作电压,每个都有讲究。

  • 开路电压(OCV):电池静置后的电压,和SOC有对应关系。我一般静置2小时以上再测,数据才准
  • 工作电压:带负载时的电压,会有压降。这个压降大小,能反映电池内阻
  • 截止电压:充电上限和放电下限,越界就等着换电池吧

避坑指南:我曾经遇到过采样线接触不良,导致单体电压跳变,BMS误判为过压保护。后来我强制要求:电压采样必须做滤波,而且采样线要用双绞线。

2.2.2 电流(Current)

电流反映的是电池的「出力」情况。充放电倍率(C-rate)是核心概念:1C表示1小时充满/放完的电流。

  • 持续电流:电池能长期承受的电流
  • 峰值电流:短时间能扛的电流,比如启动电机时的瞬间大电流
  • 漏电流:电池自放电,这个值越小越好

2.2.3 温度(Temperature)

温度是电池的「脾气」。25℃是理想工作温度,每升高10℃,化学反应速度翻倍,但寿命会缩短。

温度范围 影响 BMS应对策略
< 0℃ 充电困难,锂枝晶风险 低温加热,限制充电电流
0℃ ~ 45℃ 正常工作区 常规管理
45℃ ~ 60℃ 寿命加速衰减 降功率运行,启动散热
> 60℃ 热失控风险 立即切断,报警

2.2.4 SOC(State of Charge)

SOC就是电池还剩多少电。0%表示没电,100%表示满电。但实际中,我们很少用到0%和100%,因为会损伤电池。

估算SOC的方法我常用三种:

  1. 开路电压法:查表,简单但需要静置
  2. 安时积分法:对电流积分,但误差会累积
  3. 卡尔曼滤波法:融合前两种,精度高但计算量大

我的经验:实际项目中,我一般用安时积分+开路电压校正的组合。每100个周期做一次满充校准,能把SOC误差控制在3%以内。

2.2.5 SOH(State of Health)

SOH反映电池的老化程度。新电池SOH=100%,当SOH降到80%以下,就该考虑更换了。

评估SOH的指标:

  • 容量衰减:当前容量/标称容量 × 100%
  • 内阻增加:内阻翻倍时,SOH基本就到头了
  • 循环次数:磷酸铁锂一般能扛2000-3000次

2.3 电池模型

电池模型是我们做算法的基础。说白了,就是用数学公式去模拟电池的行为。我见过三种主流模型,各有各的适用场景。

2.3.1 Rint模型(内阻模型)

最简单的模型,一个理想电压源串联一个内阻。公式:V = OCV - I × R

// Rint模型计算示例
float calc_voltage(float ocv, float current, float rint) {
    return ocv - current * rint;
}

优点:计算量小,适合资源受限的MCU。缺点:精度差,动态响应模拟不了。

2.3.2 RC模型(一阶/二阶RC)

在Rint基础上,加了一组或多组RC并联电路,用来模拟电池的极化效应。

// 一阶RC模型状态更新
typedef struct {
    float ocv;      // 开路电压
    float r0;       // 欧姆内阻
    float r1;       // 极化内阻
    float c1;       // 极化电容
    float v1;       // 极化电压
} BatteryModelRC;

void update_rc_model(BatteryModelRC *m, float current, float dt) {
    // 极化电压更新
    m->v1 = m->v1 * exp(-dt/(m->r1*m->c1)) 
           + m->r1 * current * (1 - exp(-dt/(m->r1*m->c1)));
    // 端电压 = OCV - 欧姆压降 - 极化压降
    float v_terminal = m->ocv - current * m->r0 - m->v1;
}

我个人习惯用二阶RC模型,精度够用,参数辨识也不太难。

2.3.3 PNGV模型(Partnership for a New Generation of Vehicles)

这个模型是美国PNGV项目提出的,比RC模型多了一个电容,用来模拟电池容量的变化。

PNGV模型的状态方程:

// PNGV模型状态空间
// x = [SOC, V1, V2]^T
// 状态方程:dx/dt = A*x + B*u
// 输出方程:Vt = C*x + D*u

// 其中:
// A = [0, 0, 0; 
//      0, -1/(R1*C1), 0;
//      0, 0, -1/(R2*C2)]
// B = [-η/Qn, 1/C1, 1/C2]^T
// C = [dOCV/dSOC, -1, -1]
// D = [-R0]

模型选型建议:

  • 做简单的电量指示:Rint模型就够了
  • 做BMS核心算法:一阶或二阶RC模型
  • 做高精度仿真或研究:PNGV模型

2.4 知识体系总览

下面这张图,是我自己整理的电池特性知识框架。每次带新人,我都会先让他们看这张图,建立整体认知。

电池特性基础 工作原理 锂离子嵌入/脱出 正极材料类型 摇椅式反应 关键参数 电压 / 电流 / 温度 SOC / SOH 内阻 / 容量 电池模型 Rint模型 RC模型(一阶/二阶) PNGV模型 BMS应用场景 状态估算(SOC/SOH) 故障诊断与保护 均衡控制策略 工程实践要点 采样精度与滤波 参数辨识方法 模型验证与标定 理解电池特性 = 做好BMS的第一步

给新人的建议:别急着上手写代码。先花一周时间,把电池的充放电曲线看明白。我当年就是太着急,结果算法写出来,仿真跑得挺好,一上实际电池就各种偏差。后来老老实实测了200组数据,才把模型参数标定好。

好了,这一章的内容就到这里。电池特性是BMS的根基,理解得越深,后面的路走得越稳。下一章我们聊采样电路设计,那是BMS的「眼睛」,同样关键。


专注资料整理