前言
做BMS SOC算法的同学一定会遇到一个经典问题:
LFP电池 20%~80% SOC 区间超级容易抖动、跳变、来回乱跳,但是020%、80%100%非常稳。
很多人以为是滤波没加、电压采样不准,其实根本不是。
LFP平台SOC抖动是物理特性 + 模型误差 + 卡尔曼滤波算法不匹配三者叠加的系统性问题。
本文从零讲清楚:
- 为什么LFP平台区会抖
- 所有抖动原因分层罗列
- 每一种原因对应的根治方案
- 小白也能看懂的数学原理
一、先搞懂:LFP平台区到底是什么?
磷酸铁锂电池LFP有一个致命特点:
20%~80% SOC,电池开路电压OCV几乎是一条水平线。
也就是说:
SOC 从20%变到80%,电量变化巨大,电压几乎不变。
这就是「电压平台区」。
二、核心数学原理
1. 灵敏度公式
SOC 是靠电压查表算出来的:
SOC = f(OCV)
我们定义电压对SOC的灵敏度:
dOCV/dSOC = 电压变化量 / SOC变化量
- 高压/低压区间:dOCV/dSOC 很大 → SOC很稳
- 平台区间:dOCV/dSOC ≈ 0
2. 误差放大公式
SOC估算误差满足:
ΔSOC ≈ ΔV / (dOCV/dSOC)
我用大白话翻译:
- ΔV:电压噪声、电压误差(一般只有几mV)
- dOCV/dSOC:电压灵敏度
平台区分母趋近于0,极小的电压噪声,会被放大成巨大的SOC误差!
举例:
普通区间:10mV噪声 → SOC误差0.2%
平台区间:10mV噪声 → SOC误差3%~8%
这就是 LFP平台区容易抖的数学本质。
平台区属于:弱可观测系统,电压已经不能精准代表SOC。
三、SOC平台抖动全部详细原因
1. 硬件采样层原因(输入噪声)
(1)电压ADC采样存在噪声
PCB干扰、电源纹波、线束接触波动,会产生 5~20mV 随机电压跳动。
正常区间无所谓,平台区直接被公式放大成 SOC 抖动。
(2)电流采样噪声 + 零点漂移
SOC 安时积分公式:
SOC = SOC0 - ∫I·dt / Cap
电流有零点漂移、随机噪声,积分会累积误差。
EKF需要用电压校正积分误差,但平台区电压不可信,越校正越抖。
(3)温度采样波动
OCV是随温度微弱变化的,平台区微小温度偏移,查表直接产生SOC跳变。
2. 电池本身物理特性原因(LFP特有,无法根除)
(1)充放电滞回效应
LFP特性:
同一个真实SOC,充电电压比放电电压高几十~上百mV
如果只用单条OCV曲线:
- 充电切放电 → 电压突变 → SOC瞬间下跌
- 放电切充电 → 电压突变 → SOC瞬间上涨
小电流频繁换向工况,SOC会高频来回抖动。
(2)电压弛豫极化效应
电池断电、轻载时,极化电压会缓慢恢复,端电压缓慢爬升。
这个变化是极化消失,不是SOC变化。
算法会误判为OCV变化,导致SOC飘移抖动。
(3)平台区弱可观测性
dOCV/dSOC→0,电压失去分辨能力,属于病态观测。
3. 电池模型误差原因
BMS真实电压公式:
V终端 = OCV(SOC) - U欧姆 - U极化1 - U极化2
算法是反推OCV:
OCV = V终端 + U欧姆 + U极化1 + U极化2
平台区 OCV 几乎不变,只要模型算错一点点,误差全部当成OCV变化,直接炸SOC。
(1)一阶RC模型精度不足
一阶模型只能模拟单一极化,无法拟合LFP快慢双重极化,残差大。
(2)R0、RC参数固定不更新
内阻、极化参数随温度、SOC、老化变化,固定参数必然拟合不准。
(3)OCV表格简陋
- 无温度维度
- 无充放电滞回区分
- 平台区表格点太少导致阶梯跳变
4. EKF卡尔曼算法不匹配
EKF核心更新公式:
K = P·H / (H·P·H + R)
- K:卡尔曼增益(修正力度)
- R:观测噪声(电压可信度)
- H = dOCV/dSOC(平台区H极小)
(1)R固定且过小(90%项目抖动原因)
R小 = 算法极度相信电压
平台区电压全是噪声,越相信电压,SOC抖得越狠。
(2)逐帧无条件更新观测
平台区本就不准,每一帧都用噪声电压修正SOC,持续注入抖动。
(3)无SOC修正量限幅
噪声会产生虚假大误差ΔSOC,算法不做限制,直接跳变。
(4)残差不判断
电压偏差在噪声范围内,本来不需要修正,算法依然强制修正。
5. 工况诱发原因
- 长期卡在20%~80%平台区
- 小电流工况:极化小、信噪比极低,噪声占比大
- 电流频繁正负换向(储能PCS、混动、轻载负载)
- 频繁启停、短暂静置引发电压弛豫
四、对应全套根治方案
1. 信号预处理:从源头减少噪声
措施1:硬件RC滤波 + 软件二阶IIR滤波
原理:降低ΔV噪声,从误差公式源头减小SOC放大误差
措施2:电流零点在线校准
静置时修正电流偏置,减少安时积分漂移,减少不必要的电压校正。
措施3:温度平滑滤波
避免温度跳变导致OCV查表突变。
2. 电池模型层优化
措施1:使用二阶RC模型(必做)
精准拟合快慢极化,大幅减少极化残差,杜绝「极化误差当成OCV变化」。
措施2:增加滞回OCV模型(LFP刚需)
- 充电状态用充电OCV表
- 放电状态用放电OCV表
原理:彻底解决电流换向几十mV固有电压跳变导致的SOC抖动
措施3:增加温度二维OCV查表
补偿温度带来的微小OCV偏移。
措施4:平台区OCV表格加密
提高插值平滑度,杜绝阶梯跳变。
3. EKF算法核心防抖策略
措施1:平台区自适应R(AEKF核心)
根据SOC区间动态调整观测噪声R:
-
平台区20%~80%:放大R
- R变大 → 卡尔曼增益K变小
- 电压修正力度变弱
- 算法主要信任安时积分,彻底杜绝电压噪声抖动
-
非平台区(两端):减小R
- 恢复电压校正能力
- 修正安时积分长期漂移
白话原理:平台电压不准就少信它,两端电压准就多信它
措施2:EKF单次SOC更新量限幅
约束:
|ΔSOC| ≤ 1% ~ 3%
物理上SOC不可能一帧跳变很大,截断噪声产生的虚假跳变。
措施3:自适应Q调整
平台区工况平稳,减小过程噪声Q,提高积分预测可信度。
4. 观测更新逻辑重构
措施1:平台区关闭无条件观测更新
- 平台区:只跑安时积分预测,不做电压观测修正
- 仅在:满充、放空、长时间静置、退出平台区 才校正
原理:弱可观测区,无效修正只会引入噪声
措施2:残差阈值判断更新
电压残差小于噪声门限时,判定为噪声,不修正SOC
只有真实偏差才修正。
5. 工况自适应防抖
识别:平台区 + 小电流 + 频繁换向
自动策略:
- 进一步放大R
- 收紧SOC修正限幅
- 暂时关闭观测更新
专治储能脉动、轻载抖动问题。
6. 输出层兜底优化
区分两个SOC:
- 内部算法SOC(真实计算状态,不能乱滤波)
- 输出显示SOC(可平滑)
对外输出做:
- 变化率限制
- 单向滤波(充电只增、放电只减)
注意:只能优化显示,不能根治内部抖动!
五、工程调试优先级
- 基础层:信号滤波 + 二阶RC模型 + 滞回OCV + 温度OCV
- 核心层:平台区自适应R + SOC修正限幅
- 逻辑层:条件式观测更新、平台区禁止无效修正
- 工况层:小电流换向特殊防抖策略
- 兜底层:输出SOC平滑滤波
2382

被折叠的 条评论
为什么被折叠?



