第1章:状态估计算法入门
大家好,我是老张。在储能行业摸爬滚打了十几年,今天咱们来聊聊状态估计算法。说白了,这就是BMS的大脑——你得知道电池还剩多少电(SOC)、电池健康程度如何(SOH)、以及还能输出多大功率(SOP)。
这三个参数,缺一个都不行。我刚开始做项目时,就吃过SOC不准的亏——明明显示还有20%电量,结果系统突然就停机了。嗯,从那以后,我对状态估计算法就格外上心。
4.1 SOC估算方法
SOC,全称State of Charge,就是电池的荷电状态。你可以把它理解成手机上的电量百分比。但实际做起来,远没手机那么准。
4.1.1 安时积分法
这是最基础的方法,也是我入行时第一个学会的。原理很简单:
SOC(t) = SOC(0) - (1/Qn) * ∫η*I(t)dt
其中:
- SOC(0) 是初始电量
- Qn 是额定容量
- η 是库仑效率
- I(t) 是电流(放电为正)
说白了,就是不断累加电流,算出用了多少电。但这里有个坑——初始SOC怎么定?
安时积分法的优缺点很明显:
| 优点 | 缺点 |
|---|---|
| 实现简单,计算量小 | 误差会累积,需要定期校准 |
| 适合短时间估算 | 对电流采样精度要求高 |
| 实时性好 | 无法修正初始误差 |
4.1.2 卡尔曼滤波法
卡尔曼滤波,听起来高大上,其实核心思想就一句话:用模型预测,用测量修正。我刚开始学的时候也觉得难,后来发现就是个“预测-校正”的循环。
基本流程是这样的:
- 预测阶段:根据上一时刻的状态,预测当前时刻的状态
- 校正阶段:用当前测量值,修正预测值
- 更新阶段:更新协方差矩阵,准备下一轮
// 简化版卡尔曼滤波SOC估算
// 状态方程:SOC(k) = SOC(k-1) - (Δt/Qn)*I(k-1) + w(k-1)
// 观测方程:V(k) = OCV(SOC(k)) - R*I(k) + v(k)
// 预测
x_pred = x_est + (-dt/Qn) * I_meas;
P_pred = P_est + Q;
// 校正
K = P_pred * H' / (H * P_pred * H' + R);
x_est = x_pred + K * (V_meas - H * x_pred);
P_est = (1 - K * H) * P_pred;
卡尔曼滤波的好处是能自动修正误差,不像安时积分法那样越跑越偏。但计算量确实大,对MCU性能有要求。我做过一个项目,用STM32F4跑扩展卡尔曼滤波,CPU占用率直接飙到40%。
4.2 SOH估算方法
SOH,State of Health,就是电池的健康度。新电池SOH是100%,用到一定程度就该换了。怎么定义“一定程度”?业内一般以容量衰减到80%为界。
SOH估算主要有三种方法:
- 容量法:直接测当前最大可用容量,除以额定容量
- 内阻法:通过内阻变化来推算SOH
- 循环次数法:根据充放电循环次数估算
我个人最常用的是容量法,因为它最直观。但容量法有个问题——你得把电池充满再放空,这在运行中很难做到。所以实际项目中,我一般用内阻法做在线估算,再用容量法定期校准。
4.3 SOP估算方法
SOP,State of Power,就是电池能输出的最大功率。这个参数对储能系统特别重要——你想想看,电网调度突然要你充放电,你得知道能不能扛得住。
SOP估算的核心约束有三个:
- 电压约束:不能超过充放电截止电压
- 电流约束:不能超过最大允许电流
- SOC约束:不能过充过放
实际计算时,我会用查表法加实时修正。先根据当前SOC和温度,查表得到基础SOP值,再根据电压和电流限制做动态调整。
// SOP估算简化示例
float calc_SOP(float soc, float temp, float v_cell, float i_now) {
// 查表得到基础SOP
float sop_base = lookup_SOP_table(soc, temp);
// 电压限制
float sop_v_limit = (v_max - v_cell) * i_max;
// 电流限制
float sop_i_limit = v_cell * i_max;
// SOC限制
float sop_soc_limit = (soc - soc_min) / (soc_max - soc_min) * sop_base;
// 取最小值
return min(sop_base, min(sop_v_limit, min(sop_i_limit, sop_soc_limit)));
}
知识体系总览
说了这么多,咱们用一张图来总结一下状态估计算法的整体结构:
这张图把咱们今天讲的内容串起来了。SOC、SOH、SOP三者相互关联——SOC不准,SOH就估不准;SOH下降,SOP就得跟着降。做系统设计时,一定要把它们当成一个整体来考虑。
好了,这一章就聊到这儿。状态估计算法是个大话题,后面咱们还会深入每个方法的细节。记住一句话:没有完美的算法,只有适合工程的方法。
公众号:蓝海资料掘金营,微信deep3321