4、二阶RC模型:模型结构对比一阶模型,增加浓度极化,数学方程推导,适用场景分析
说实话,一阶RC模型在很多场景下够用了。但如果你做过高倍率充放电的实验,就会发现——电压响应曲线在后期会慢慢偏离真实值。嗯,这就是浓度极化在作祟。
我个人习惯把电池的极化现象分成两类:电化学极化和浓度极化。一阶RC模型只考虑了前者,而二阶RC模型把后者也纳入了。说白了,就是多了一个RC环节来模拟锂离子在电极内部的扩散过程。
4.1 一阶模型的局限性
先回顾一下一阶RC模型。它用一个电阻R₀描述欧姆内阻,一个RC并联环节描述电化学极化。模型结构是这样的:
Uocv ── R₀ ── (R₁ // C₁) ── 负载
这个模型在恒流放电初期表现不错。但我在做3C倍率放电测试时发现,放电到中后期,模型预测的端电压总是比实测值高。为什么会这样?
因为一阶模型假设极化效应是瞬时建立的。实际上,锂离子在电极内部的浓度梯度是慢慢形成的,这个过程的时间常数比电化学极化大得多。你想想看,离子在电解液里扩散,总得有个过程吧?
4.2 二阶RC模型结构
二阶RC模型的结构其实很好理解——就是在原来一阶模型的基础上,再串联一个RC并联环节。这个新增的环节专门用来描述浓度极化。
模型拓扑如下:
Uocv ── R₀ ── (R₁ // C₁) ── (R₂ // C₂) ── 负载
↑ ↑ ↑
欧姆内阻 电化学极化 浓度极化
这里:
- R₀:欧姆内阻,反映电子和离子的传导阻力
- R₁、C₁:电化学极化参数,时间常数τ₁ = R₁C₁,通常在秒级
- R₂、C₂:浓度极化参数,时间常数τ₂ = R₂C₂,通常在分钟级
我建议你记住一个关键点:τ₂通常比τ₁大一个数量级。这意味着浓度极化的建立和消退都慢得多。
4.3 数学方程推导
嗯,推导过程其实不复杂。我们从基尔霍夫电压定律出发。
设端电压为Ut,开路电压为Uocv,那么:
U_t = U_ocv - I·R₀ - U₁ - U₂
其中U₁和U₂分别是两个RC环节的极化电压。它们各自满足一阶微分方程:
对于第一个RC环节(电化学极化):
dU₁/dt = I/C₁ - U₁/(R₁C₁)
对于第二个RC环节(浓度极化):
dU₂/dt = I/C₂ - U₂/(R₂C₂)
写成离散形式,方便在嵌入式系统里实现:
U₁(k+1) = U₁(k)·exp(-Δt/τ₁) + I(k)·R₁·[1 - exp(-Δt/τ₁)]
U₂(k+1) = U₂(k)·exp(-Δt/τ₂) + I(k)·R₂·[1 - exp(-Δt/τ₂)]
其中τ₁ = R₁C₁,τ₂ = R₂C₂,Δt是采样时间。
我在实际项目中,采样时间通常取0.1秒到1秒。如果采样太快,计算量上去了但精度提升有限;采样太慢,又捕捉不到快速极化过程。这个平衡点需要根据你的硬件算力来调。
4.4 参数辨识方法
参数怎么来?我常用的方法是混合脉冲功率特性(HPPC)测试。具体步骤:
- 给电池一个短时大电流脉冲(比如10秒,1C倍率)
- 记录电压响应曲线
- 用最小二乘法拟合出R₀、R₁、C₁、R₂、C₂
这里有个技巧:R₀可以从电流突变瞬间的电压跳变直接算出。剩下的四个参数,用指数拟合就能搞定。
| 参数 | 典型值范围 | 辨识方法 |
|---|---|---|
| R₀ | 1~10 mΩ | 电压跳变法 |
| R₁ | 0.5~5 mΩ | 指数拟合(短时间常数) |
| C₁ | 1000~5000 F | 指数拟合(短时间常数) |
| R₂ | 1~8 mΩ | 指数拟合(长时间常数) |
| C₂ | 5000~20000 F | 指数拟合(长时间常数) |
4.5 适用场景分析
二阶RC模型不是万能的。我根据实际项目经验,总结了几条适用原则:
- 高倍率充放电场景(>1C):二阶模型优势明显,浓度极化不可忽略
- 低SOC区间(<20%):浓度极化效应显著,二阶模型更准
- 长时间静置后:浓度梯度已消散,一阶模型也够用
- 低温环境(<10°C):扩散系数下降,浓度极化加剧,建议用二阶
说白了,什么时候用二阶?就是当你发现一阶模型在动态工况下误差超过5%的时候。我做过一个对比实验:在UDDS工况下,一阶模型的最大误差是7.2%,二阶模型降到了2.8%。
但也要注意,二阶模型的计算量比一阶大了约一倍。如果你的MCU算力有限,或者采样频率很高(比如100Hz),可能需要权衡一下。
4.6 知识体系总览
下面这张图是我自己整理的二阶RC模型知识框架,帮你快速建立整体认知:
4.7 实际项目中的注意事项
最后,分享几个我在项目中积累的经验:
- 参数初始化要谨慎:刚上电时,U₁和U₂的初始值不能随便设。我一般会根据静置时间来判断——如果静置超过30分钟,就把U₁和U₂都置零。
- 数值稳定性问题:当Δt远小于τ时,exp(-Δt/τ)接近1,容易产生数值误差。我建议用泰勒展开近似,或者直接限制Δt不要太小。
- 模型验证不能偷懒:参数辨识完成后,一定要用另一组工况数据做验证。我见过有人用训练数据验证,结果误差很好看,一上实车就崩了。
公众号:蓝海资料掘金营,微信deep3321