第2章:电池建模基础:锂离子电池等效电路模型、参数辨识方法、SOC估算原理
做储能系统这么多年,我越来越觉得电池建模是整条技术链的基石。你想想看,能量管理策略再漂亮,如果电池模型不准,那仿真结果就是空中楼阁。今天咱们就聊聊锂离子电池建模这件事,我会结合自己踩过的坑,把等效电路模型、参数辨识和SOC估算这几个核心问题讲透。
2.1 为什么要给电池建模?
说白了,电池是个高度非线性的系统。它的电压、电流、温度、SOC之间互相耦合,很难用简单的数学公式描述。我刚开始做储能项目时,直接用开路电压法估算SOC,结果误差大到20%以上,被现场工程师追着问怎么回事。
后来我明白了——我们需要一个既能反映电池动态特性,又足够简洁的模型。等效电路模型(ECM)就是这样的工具。它用电阻、电容这些基本元件来模拟电池的电气行为,计算量小,适合嵌入式实现。
核心观点:模型不是越复杂越好。在工程实践中,我们追求的是「足够好」的精度,而不是「完美」的精度。一个二阶RC模型,配合好的参数辨识算法,完全能满足储能EMS的需求。
2.2 锂离子电池等效电路模型
常见的等效电路模型有好几种,我按复杂度排个序:
- Rint模型:最简单的,一个内阻串联一个电压源。精度太差,我基本不用。
- 一阶RC模型:加了一个RC并联环节,能模拟极化效应。适合对精度要求不高的场景。
- 二阶RC模型:两个RC环节,分别模拟电化学极化和浓差极化。这是工程中最常用的。
- PNGV模型:在二阶RC基础上加了电容描述开路电压变化。精度高,但参数多。
我个人习惯用二阶RC模型。为什么呢?因为它在精度和计算量之间取得了很好的平衡。下面这个图展示了二阶RC模型的结构:
这个模型的数学表达式其实不复杂:
U(t) = Uoc(SOC) - I(t)·R₀ - U₁(t) - U₂(t)
其中:
dU₁/dt = I/C₁ - U₁/(R₁·C₁)
dU₂/dt = I/C₂ - U₂/(R₂·C₂)
Uoc是开路电压,它和SOC有固定的映射关系。R₀是欧姆内阻,R₁C₁和R₂C₂分别对应两个极化过程。嗯,这里要注意——R₀对电流突变响应最快,你测电压瞬间的跳变,基本就是R₀在起作用。
2.3 参数辨识方法
模型搭好了,参数怎么来?这就涉及到参数辨识。我常用的方法有两种:
2.3.1 离线辨识(HPPC测试法)
这是最经典的方法。具体做法是:
- 把电池充满电,静置2小时以上
- 以1C电流放电10秒,记录电压响应
- 静置40秒,再以0.75C充电10秒
- 重复上述步骤,每放10% SOC做一次
从电压响应曲线中,你可以提取出:
- 电压瞬间跳变 → 算出R₀
- 电压缓慢变化 → 拟合出R₁、C₁、R₂、C₂
我的经验:HPPC测试时,采样频率至少要10Hz以上。我曾经用1Hz采样,结果电压跳变点根本抓不准,R₀的误差大到离谱。后来改成20Hz,数据才靠谱。
2.3.2 在线辨识(递推最小二乘法)
离线辨识的缺点是——电池老化后参数会变。你想想看,用了两年的电池和全新的电池,内阻能一样吗?所以在线辨识就派上用场了。
递推最小二乘法(RLS)的核心思想是:
1. 建立参数化的差分方程模型
2. 实时采集电压、电流数据
3. 用RLS算法递推更新参数
4. 每步计算增益矩阵和协方差矩阵
代码实现大概长这样:
function [theta_hat, P] = rls_update(y, phi, theta_hat_prev, P_prev, lambda)
% y: 当前观测值(电压)
% phi: 回归向量(历史电压、电流)
% lambda: 遗忘因子(通常0.95~0.99)
K = P_prev * phi' / (lambda + phi * P_prev * phi');
e = y - phi * theta_hat_prev;
theta_hat = theta_hat_prev + K * e;
P = (P_prev - K * phi * P_prev) / lambda;
end
避坑指南:遗忘因子lambda的选择很关键。lambda太大(接近1),参数更新慢,跟不上电池老化;lambda太小,参数波动大,容易发散。我一般取0.98,然后根据实际效果微调。
2.4 SOC估算原理
SOC是电池管理的核心参数。说白了,就是电池还剩多少电。但直接测量SOC是不可能的,只能通过其他可测参数来估算。
2.4.1 安时积分法
这是最直观的方法:
SOC(t) = SOC(0) - ∫I(t)dt / Q_n
其中Q_n是电池额定容量。这个方法简单,但误差会累积。我记得有一次做长周期仿真,安时积分跑了200个循环,SOC误差漂到了15%。
2.4.2 开路电压法
利用Uoc和SOC的映射关系。但问题是——电池必须静置足够长时间,电压才能稳定到Uoc。你想想看,储能系统在运行中,哪有时间让你静置?
2.4.3 卡尔曼滤波法(推荐)
这是目前工程中最主流的方法。它把安时积分和电压校正结合起来,既利用了电流积分的长处,又用电压测量来修正误差。
扩展卡尔曼滤波(EKF)的步骤:
- 预测步:用安时积分预测SOC
- 更新步:用电压测量值修正预测值
- 计算卡尔曼增益:权衡预测和测量的可信度
核心公式:
状态方程:x(k+1) = A·x(k) + B·I(k) + w(k)
观测方程:U(k) = Uoc(SOC(k)) - I(k)·R₀ - U₁(k) - U₂(k) + v(k)
其中:
x = [SOC, U₁, U₂]ᵀ (状态向量)
w ~ 过程噪声
v ~ 观测噪声
我做过对比测试:纯安时积分法,100个循环后SOC误差约8%;加了EKF后,误差控制在2%以内。差距很明显。
2.4.4 几种方法的对比
| 方法 | 精度 | 计算量 | 适用场景 | 我的评价 |
|---|---|---|---|---|
| 安时积分 | 低(误差累积) | 极低 | 短时间、高精度电流传感器 | 不推荐单独使用 |
| 开路电压法 | 中(需静置) | 低 | 启停工况、初始SOC标定 | 适合做初始化 |
| 卡尔曼滤波 | 高(2%以内) | 中 | 动态工况、长期运行 | 强烈推荐 |
| 神经网络 | 高(需训练) | 高 | 数据充足、算力充裕 | 适合研究,工程慎用 |
实用建议:我现在的做法是「安时积分+卡尔曼滤波」组合。安时积分做快速预测,卡尔曼滤波做定期校正。这样既保证了实时性,又控制了误差。另外,初始SOC一定要用开路电压法标定好,否则卡尔曼滤波也得花好一阵子才能收敛。
2.5 本章小结
电池建模这件事,说难不难,说简单也不简单。关键是要理解每个参数背后的物理意义,而不是盲目套公式。我见过太多人把模型参数调得漂漂亮亮,但一上实际系统就崩了——为什么?因为模型没有考虑温度影响,没有考虑老化效应。
如果你刚开始做电池建模,我建议你从二阶RC模型入手,用HPPC数据做离线辨识,再用EKF做SOC估算。这套组合拳打好了,储能EMS的底层基础就稳了。至于更高级的模型(比如考虑滞回效应、温度耦合),那是后面章节的事。
公众号:蓝海资料掘金营,微信deep3321