基于
Simscape搭建的锂电池模型
1、引言
为了保证电池储能系统安全、可靠运行,电池管理系统需对储能系统中锂电池的多种状态做出估计和预测,如荷电状态(State of Charge,SOC)、健康状态、内阻等,而实现这些功能的前提是建立精确、可靠的锂电池模型,同时,也是电池管理系统亟待解决的技术关键。动力锂电池的非线性特性使得许多方法难以得到准确的估计结果。因此,必须建立一个合适的数学模型来表征电池的特性。本期就给大家讲解一下如何通过Simscape建立精准的电池模型。
锂电池建模的方法有很多,比如:Simulink模型、Simscape模型等。本文采用Simscape组件搭建锂电池模型。Matlab/Simscape语言支持定义物理建模组件、域和库,提供了一个自然、高效的方法来构建物理系统的数学模型,可以通过物理连接来创建多域原理图,其中的Simscape组件就可以直接代表物理原件,模型组件之间的连线直接对应物理中的实际连接,进行能量传递。除此之外,Simscape还提供有Parameter Estimation Toolbox,可以用于建立模型后,在相同输入下将仿真输出匹配实验数据以估计模型中的参数。该模型在不同充放电情况下的运行情况可得出电池单体的电流、电压、温度及SOC随时间变化的数据。该模型可应用到电池管理系统或电动汽车的整车模型中,可缩短研发周期及成本。
常用的等效电路模型有Rint模型、Thevenin模型、PNGV模型和RC模型等。通过综合比较各个模型的优缺点,本文选择Simscape建模搭建二阶RC等效电路模型。
2、电池测试试验
选择好合适的电池模型以后,接下来就需要进行电池充放电试验,对电池内部的一些参数进行辨识。在电池充放电的过程中,其内部参数会随着荷电状态的变化而动态变化,这是造成仿真结果与实际值之间的偏差的主要因素。由于内部参数无法直接通过测量获得,因此对电池进行充放电试验,利用试验测得的电压数据对这些参数进行辨识,从而减少电池参数动态变化所造成的估计误差。
实验选用三元锂电池,选用Arbin电池充放电试验台对三元锂电池进行间歇充/放电试验及混合动力脉冲能力特性试验(hybrid pulse power characteristic,HPPC),试验步骤如下所示。
2.1、间歇充/放电试验
步骤1:将电池放空/充满;
步骤2:以1C放电倍率放电6min,若6min内电池电压低于3.0V/高于4.2V,进入步骤4,否则进入步骤3;
步骤3:静置1h,之后回到步骤2;
步骤4:以0.02C小电流将电池放空/充满。
2.2、HPPC试验
步骤1:在室温条件下,以1C的充电电流充满电池,此时SOC为100%,静置1h;
步骤2:以1C的放电电流放电6 min,静置1h;
步骤3:以1C脉冲电流放电10s,静置40s;充电10s,静置40s(完成1次HPPC试验);
步骤4:重复步骤2、3进行循环试验直至电池的SOC=0%。
3、电池参数辨识
通过间歇充/放电试验和HPPC试验的结果就可以对电池进行参数辨识了,具体的方法知网里面很多文献都提及了,这里就不赘述了。
3.1、开路电压辨识结果
SOC/% | OCV/V |
---|---|
0 | 3.23 |
10 | 3.66 |
20 | 3.74 |
30 | 3.81 |
40 | 3.83 |
50 | 3.86 |
60 | 3.91 |
70 | 3.94 |
80 | 4.06 |
90 | 4.11 |
100 | 4.20 |
这样一来,开路电压的结果就辨识出来了。接下来利用Matlab拟合工具箱对表1中的辨识结果进行n阶多项式拟合。得到不同时刻SOC与开路电压OCV之间的关系。
3.2、电阻电容辨识结果
根据基尔霍夫定律,可以得到二阶RC模型中数学关系式:
式中,R0为电池欧姆内阻,R1和C1是极化电阻和电容,R2和C2是浓差电阻和电容,U1、U2分别为R1、R2的端电压。
由于电池在静置时电压变化主要是由欧姆电阻所导致,因此根据放电瞬间的电压变化值,以及充电结束瞬间的电压变化值,可求得欧姆电阻的大小。
而在静置过程中,由于电池内部极化电阻与极化电容的影响,电压会出现回弹特性,其表达式如下所示:
于是,根据脉冲放电试验所得的数据,将每个SOC点处的脉冲功率特性测试放电数据导入Matlab拟合工具箱中,采用Custom Equations自定义二阶指数函数拟合,将拟合结果代入上两式中进行计算,可辨识得到不同SOC下的等效电路模型参数值,如下表所示。
SOC/% | R0/mΩ | R1/mΩ | R2/mΩ | C1/× 1 0 2 10^2 102F | C2/× 1 0 3 10^3 103F |
---|---|---|---|---|---|
10 | 8.52 | 2.82 | 8.16 | 0.70 | 0.58 |
20 | 7.82 | 2.75 | 7.81 | 1.03 | 1.88 |
30 | 7.26 | 2.70 | 7.19 | 1.39 | 2.40 |
40 | 6.64 | 2.28 | 6.82 | 3.95 | 1.98 |
50 | 6.14 | 2.12 | 6.12 | 4.01 | 1.84 |
60 | 5.93 | 2.06 | 5.50 | 3.84 | 2.00 |
70 | 5.97 | 2.18 | 5.32 | 4.97 | 2.84 |
80 | 6.19 | 2.47 | 6.58 | 2.44 | 1.72 |
90 | 6.14 | 2.58 | 7.17 | 1.77 | 1.55 |
由表2的参数辨识结果可知,当电池的SOC减小的过程中,电阻R0、R1及R2会有所波动,但波动不是特别明显。而电容C1及C2的值则先会明显升高,当SOC减小至0.4左右时出现峰值,随后再下降,这主要是由于在不同SOC下,电池的电学极化及浓差极化等极化效应强度发生变化所导致。(注意:大家进行参数辨识的时候需要留意阻容系数的单位!)
4、Simscape电池模型的建立
确定锂电池的等效电路模型后,利用Matlab中的Simscape模块对二阶RC等效电路模型进行搭建。Simscape模块描述的是系统的物理结构,各组件代表物理元件。由于Uoc、R0、R1、R2、C1、C2 这6个等效电路组件,除了需要具有相应的物理特性外,参数还会随着电流充放电过程不断变化,因此,基于Simscape所搭建的二阶RC等效电路模型如下图所示。(本文使用的是Matlab2019a版本)
上图为Simscape环境下搭建的电池等效电路原理图,蓝色线连接的是物理模型元件,黑色连接的是Power System下的模块,这样有利于模型构造。本文需要建立一个精确的参数动态模型,根据输入、输出测试数据,在Simulink中进行仿真优化。
受控电压源(Controlled Voltage Source)的受控端接一个查表模块Em Lookup,表示电池的电动势随着SOC的变化取不同的值。电压源的负极接一个电流表,电流表将电路中的电流信息传给SOC计算模块,由SOC计算模块得出当前时刻的电池SOC。
在该模型中有两个输入,分别是测试脉冲电流和测试电压,脉冲电流作为模型的输入,通过模型输出得到的仿真电压与测量电压做匹配。具体的图像如下所示:
5、电池模型精度验证
使用脉冲放电进行了参数估计之后,如何评价参数估计结果的优劣,就需要对模型参数进行实验验证。具体的做法先是对电池进行放电试验,记录电池的端电压数据,然后以同样的电流作为模型的输入,设置仿真时间与实验时间一致,获得模型的电压估计结果。
验证所建立的 Simscape 模型的准确性,主要是分析在相同的输入值下,所产
生的仿真输出结果与测量值相匹配情况。偏差在脉冲开始及瞬时电压突变阶段时较大,主要是由于此时负载电流在瞬间发生突变所导致,但最大偏差未超过 2%。在静置阶段偏差则趋于平稳,这是因为电池电压具有回弹特性,在停止放电瞬间,电池两端电压会缓慢上升,并趋于稳定。
总结,通过Simscape中搭建的恒压源、电容、电阻等物理模型,建立锂离子电池的仿真模型。通过电池充/放电试验获得电池的测试数据,采用非线性最小二乘法对电池测试数据拟合,完成模型中电池所需的性能参数辨识。通过实验验证,整体误差精度在2%以内,模型精度较高,能为整车分析提供基础。(备注:需要本期文章试验数据和模型的同学可以私信我)
下期给大家带来代温度系数的Simscape的锂电池模型的搭建方法。