第2章:电池建模基础:锂离子电池等效电路模型、参数辨识方法、SOC估算原理

做储能系统这么多年,我越来越觉得电池建模是整条技术链的基石。你想想看,能量管理策略再漂亮,如果电池模型不准,那仿真结果就是空中楼阁。今天咱们就聊聊锂离子电池建模这件事,我会结合自己踩过的坑,把等效电路模型、参数辨识和SOC估算这几个核心问题讲透。

2.1 为什么要给电池建模?

说白了,电池是个高度非线性的系统。它的电压、电流、温度、SOC之间互相耦合,很难用简单的数学公式描述。我刚开始做储能项目时,直接用开路电压法估算SOC,结果误差大到20%以上,被现场工程师追着问怎么回事。

后来我明白了——我们需要一个既能反映电池动态特性,又足够简洁的模型。等效电路模型(ECM)就是这样的工具。它用电阻、电容这些基本元件来模拟电池的电气行为,计算量小,适合嵌入式实现。

核心观点:模型不是越复杂越好。在工程实践中,我们追求的是「足够好」的精度,而不是「完美」的精度。一个二阶RC模型,配合好的参数辨识算法,完全能满足储能EMS的需求。

2.2 锂离子电池等效电路模型

常见的等效电路模型有好几种,我按复杂度排个序:

  • Rint模型:最简单的,一个内阻串联一个电压源。精度太差,我基本不用。
  • 一阶RC模型:加了一个RC并联环节,能模拟极化效应。适合对精度要求不高的场景。
  • 二阶RC模型:两个RC环节,分别模拟电化学极化和浓差极化。这是工程中最常用的。
  • PNGV模型:在二阶RC基础上加了电容描述开路电压变化。精度高,但参数多。

我个人习惯用二阶RC模型。为什么呢?因为它在精度和计算量之间取得了很好的平衡。下面这个图展示了二阶RC模型的结构:

二阶RC等效电路模型结构图 Uoc + - R₀ R₁ C₁ 电化学极化 R₂ C₂ 浓差极化 负载 I U = Uoc - I·R₀ - U₁ - U₂ 图例: R₀ — 欧姆内阻(导线、电解液、电极接触电阻) R₁C₁ — 电化学极化(电荷转移过程) R₂C₂ — 浓差极化(锂离子扩散过程)

这个模型的数学表达式其实不复杂:

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测试法)

这是最经典的方法。具体做法是:

  1. 把电池充满电,静置2小时以上
  2. 以1C电流放电10秒,记录电压响应
  3. 静置40秒,再以0.75C充电10秒
  4. 重复上述步骤,每放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)的步骤:

  1. 预测步:用安时积分预测SOC
  2. 更新步:用电压测量值修正预测值
  3. 计算卡尔曼增益:权衡预测和测量的可信度

核心公式:

状态方程: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