常见的电池模型有三种,NTGK(热电模型)、等效电路模型(ECM)和电化学模型,笔者曾在前序文章三维软件中的电池模块提到过该三种模型。
今天就展开来讲讲比较复杂的二阶等效模型,主要内容包括其电路原理是什么,如何通过HPPC测试进行参数识别,以及如何将参数与SOC和温度T联立起来使用。
锂电池极化特性导致电池放电或充电时电压随着时间缓慢地变化,而停止充放电时电压又需要比较长的时间恢复到稳定值。这就像电路里的储能单元之一的电容单元与电阻组成RC回路后所表现出来的动态特性。
所以在建立锂电池等效电路模型时采用欧姆内阻与RC对串联来模拟锂电池的外特性。一般地,二阶RC等效电路(即两个RC对)就能满足精度要求又不会带来太多的计算负担。
由于线性电容元件的电荷 q 与电压 u 的关系为:q=Cu, C 就是电容,单位为 F(法拉,简称法)。那么电容的电流就是:
所以,根据电路的KVL和KCL定律,上面的等效电路可以列出方程组:
其中电容两端电压可以写成
此方程为一阶线性非齐次方程,方程的解由非齐次方程的特解和对应的齐次方程的通解两个分量组成,即
最后求得:
同理可得:
最终二阶等效电路方程写成:
该电路的等效内阻即为:根据HPPC测试方法,在一个脉冲测试,即X%SOC,我们能清楚地测得当前SOC的U,OCV和电路i。
另外欧姆内阻Rs也比较容易算得,即
也可以是
或者两者取个平均。同理,充电的直流内阻也按此方法算得。难就难在如何通过非线性U2-U3和U4-U5段识别R1、C1、R2和C2。
学术界已经有N多人提出了很多数学方法用来拟合这两段曲线,笔者就采用现成的商业软件ANSYS Fluent来进行分段拟合说明下。在Fluent界面下使用命令启用MSMD模块。
再继续敲打命令就可以进入识别模式,只要将某SOC下的电压与时间的对应关系制成txt格式的文档让软件读取就可以识别出该SOC下对应的OCV,Rs,R1,C1,R2和C2。
大概在Fluent 2019年版本以后,软件会将识别的结果与原始值做个比对,可以看出识别的精度。从下图看出SOC80%时的充放电电压拟合的精度还是相当高的,两条线基本重合在一起。
那么,这仅仅是一个SOC值下的Rs,R1,C1,R2和C2,针对不同的SOC需要重复以上步骤,分别求出不同SOC下的Rs,R1,C1,R2和C2。最后需要跟SOC联立,一种方法是需要将各个参数再度拟合成以SOC为变量的多项式,这个在excel里就能实现。而笔者喜欢将各个参数做成look-up table的形式,这个比较直观,后期比较容易直接在系统仿真软件中应用。
另外,还需要考虑温度T对这些参数的影响,所以需要不同温度HPPC的测试数据。如上过程还得重复好几遍,最后的最后,会得到各个参数(包括OCV)分别关于SOC,温度T和充放电(Fluent目前无法自动识别电流大小对各个参数的影响,只能区分充电还是放电)的6张3D数据map。
说明下,上图是Rs的最后结果,X1和X2分别代表SOC和温度T,X3的1和0分别表示放电和充电。另外,这里笔者偷个懒,并没有将所有温度进行识别,只是搭了个模板。由此可见,搭建完整的二阶等效电路比较复杂,整个过程也比较费工费时。
最后,我们将这些数据全导入Amesim进行一次完整的脉冲测试进行对比。
可以看到,只有前面一段误差稍大,大概在10mV左右,是因为amesim模型中的OCV曲线是笔者给的完整的测试数据,而非通过参数识别得到的,造成了一定的误差。不过这个误差对于计算发热及温升带来的精度差异基本可以忽略,所以,二阶等效电路的参数识别还是成功的。
RC电路[1]
Fluent ECM 参数识别[2]
Fluent ECM 参数识别[3]
RC电路: 《电路》第5版。
[2]Accurate Electrical battery model capable of predicting runtime and I-V performace: Min_chen_IEEE。
[3]A parameter identification method for a battery equivalent circuir model: Shugang_Jiang_A&D_Technology_Inc。