基于MPA-DKF的单液流锌镍电池荷电状态估计
2023-03-11宋春宁郑少耿凌旗金苏有平
宋春宁,郑少耿,凌旗金,苏有平
(广西大学电气工程学院,广西 南宁 530004)
1 引言
单液流锌镍电池[1]是一种较为新型的储能电池,其具有结构简单、充放电迅速、循环性能好、成本造价低等优点,在储能领域具有广阔的应用前景[2]。当前,单液流锌镍电池仅发展了十余年,其仍具有较大的研究空间。
电池荷电状态(SOC)是表征电池剩余电量的关键指标,其准确估计是电池安全使用及能量管理的基础[3]。其中,卡尔曼滤波(KF)法在电池SOC估计上取得了显著的效果,并衍生了许多改进方法,如适用于非线性系统的扩展卡尔曼滤波(EKF)算法[4],经无迹变换处理的无迹卡尔曼滤波(UKF)算法[5],结合了粒子滤波的卡尔曼粒子滤波(EKPF)算法[6]等均在SOC估计上得到了有效的应用。
传统的单线路卡尔曼滤波在估计电池SOC时,其基于固定电池模型,忽略了模型参数在电池充放电过程的变化,无法准确反映电池SOC[7]。同时,卡尔曼滤波法的估计性能严重依赖于噪声统计特性(过程噪声协方差、量测噪声协方差)以及状态误差协方差初值的选取,但其通常以经验选取为主并难以获得最优值[8]。
当前单液流锌镍电池在SOC估计领域的研究较少,且以单线路卡尔曼滤波估计方法为主,本文基于单液流锌镍电池二阶RC等效电路模型,采用具有双线路的双卡尔曼滤波(DKF)算法联合估计电池SOC与模型参数,在估算电池SOC的同时,也对模型参数进行了实时跟踪,降低了模型时变对SOC估计的影响。同时,引入海洋捕食者优化(MPA)算法[9]对DKF算法的过程噪声协方差、量测噪声协方差及状态误差协方差初值进行参数寻优以发挥DKF算法的估算性能。并设计脉冲放电实验进行仿真测试所提出的MPA-DKF算法的有效性。
2 单液流锌镍电池模型
电池等效电路模型的选取需考虑模型的复杂程度和精度两个因素。通常模型的阶次越高,越能反映电池内部动态特性,且模型的精度更高,但其增加了计算的复杂程度,实时性较差。因此,为简单准确的反映单液流锌镍电池的动态变化,本文采用如图1所示的二阶RC等效电路模型。
图1中,Uoc、U分别描述电池开路电压、端电压;R0描述电池欧姆内阻,R1、C1描述电池电化学极化效应;R2、C2描述电池浓差极化效应;UR1C1描述电化学极化电压,UR2C2描述浓差极化电压,i为充放电电流。
图1 单液流锌镍电池等效电路模型
由基尔霍夫电压、电流定律建立电路方程,如式(1)所示
(1)
式(1)中:SOC定义为当前剩余电量占额定容量的比例,其定义表达式见式(2)
(2)
式(2)中:SOC(0)为SOC初始值;t表示第t时刻;Cn为电池额定容量;η为库伦效率。
利用脉冲特性试验(MPPT)及MATLAB的cftool曲线拟合工具箱即可完成对电池欧姆内阻(R0)、极化电阻(R1、R2)和极化电容(C1、C2)的初始参数辨识,具体可参考文献[10]。
3 基于MPA-DKF的SOC估计
3.1 DKF算法估算电池SOC
DKF滤波器[11]由两级卡尔曼滤波器组成,即在扩展卡尔曼滤波器的基础上,增加一级卡尔曼滤波器。两个卡尔曼滤波器交替运行,实时在线估计电池荷电状态及模型参数,使得模型能较好的描述电池动态特性,同时提高SOC估计精度。
由于欧姆内阻R0是影响电池外特性的主要参数,为了简化卡尔曼估计模型且降低算法复杂度,本文不考虑除欧姆内阻外其余参数时变特性对电池SOC估计的影响。综上所述,使用DKF估算单液流锌镍电池SOC流程如下:
1)建立第一级卡尔曼估计模型
根据图1所示电路,以电池荷电状态SOC、电化学极化电压UR1C1、浓差极化电压UR2C2为系统状态量,电池端电压U为输出观测量建立系统状态空间方程,如式(3)所示
(3)
式(3)中:T为电池采样周期;k表示第k时刻;wk为过程噪声,表征建模及参数不精确的误差;vk为量测噪声,表征测量不精确的误差。
定义第一级卡尔曼估计模型系数矩阵为
(4)
2)建立第二级卡尔曼估计模型
以欧姆内阻R0作为状态变量,电池端电压U为输出观测量建立欧姆内阻空间方程,如式(5)所示
(5)
式(5)中:ek为系统噪声,rk为量测噪声。
定义第二级卡尔曼估计模型系数矩阵为
(6)
3)DKF算法迭代更新估计
①初始化状态变量及误差协方差矩阵
(7)
②状态变量先验估计及误差协方差矩阵更新
(8)
③卡尔曼增益计算
(9)
④状态变量后验估计
(10)
⑤误差协方差更新
(11)
算法在完成状态变量、过程噪声协方差阵、量测噪声协方差阵、误差协方差矩阵等初始化后,循环步骤②至步骤⑤即可得到不同时刻的状态估计值x+k与模型参数R+k。
3.2 MPA算法原理
MPA算法是由Afshin Faramarzi等人于2020年提出的一种模拟海洋捕食者与猎物最佳觅食策略的群智能优化算法。算法基于两种随机行走策略:Levy飞行与布朗运动(读者可参考文献[9]了解这两种策略,本文不做详细说明)。
算法按猎物与捕食者的移动速度比例分为高速度比例、单位速度比例、低速度比例三个阶段,各阶段均占算法最大迭代次数的三分之一。算法具体流程如下:
1)设置猎物规模N、搜索空间维数D、迭代终止条件Max_iter等参数。并按式(12)随机初始化猎物位置。
Preyi=Xmin+rand(1,D)⊗(Xmax,Xmin)
(12)
式(12)中:Preyi代表第i头猎物的位置;rand(1,D)为[0,1]范围的D维随机数向量;‘⊗’表示点乘;Xmax、Xmin分别为D维搜索空间的上下限。
2)计算每头猎物的适应度如式(13)所示。定义猎物的适应度越小,所寻得的食物更丰富,并记录当前猎物个体历史最优位置,即迄今为止该猎物寻到的食物最丰富的位置。
fitnessi=f(Preyi)
(13)
式(13)中:fitnessi为第i头猎物的适应度。捕食者与猎物都在寻找食物,且捕食者的位置即为当前所寻得食物最丰富的位置。构造捕食者矩阵Elite,其中Elite矩阵包含N个捕食者的位置信息,且每个捕食者的位置都定义为当前最优猎物的位置。
3)高速度比例阶段。在该阶段中捕食者保持不动,猎物都进行布朗运动以寻找食物更丰富的位置,同时猎物有趋向当前食物最丰富区域移动的趋势。该阶段的数学描述如下
(14)
式(14)中:new_Preyi代表猎物的新位置;RB为D维布朗运动随机数向量;P为固定常数,通常取0.5;R为[0,1]范围的随机数。
4)单位速度比例阶段。在该阶段中一半的捕食者进行布朗运动在当前食物最丰富区域附近探索,且一半的猎物跟随这些捕食者移动。另一半的猎物以levy飞行搜索其近邻或跳跃性地寻找食物更丰富的位置。该阶段的数学描述如下:
前一半猎物的位置更新
(15)
后一半猎物的位置更新
(16)
式(15)、(16)中:RL为D维levy飞行随机数向量;CF是控制捕食者运动步长的自适应参数,其定义如下
(17)
式(17)中:iter描述当前迭代次数。
5)低速度比例阶段。在该阶段中全体捕食者进行levy飞行以搜索其近邻或跳跃性地寻找食物更丰富的位置,全体猎物跟随着捕食者移动。该阶段的数学描述如下
(18)
6)计算更新后的猎物适应度new_fiti,并重新构造捕食者矩阵如步骤2)所示。另外,猎物若本次搜索未能寻得食物更丰富的位置,则回到原位置,数学描述如下
(19)
7)猎物的觅食策略会受到涡流与鱼类聚集效应(FADs)的影响,猎物大部分时间在其附近寻找食物,但存在一定概率选择到另一环境中寻找食物。该过程的数学描述如下
(20)
式(20)中:FADs为FADs事件触发的概率,通常取0.2;V是包含零和一的D维随机向量;r为[0,1]范围的随机数;Preyr1、Preyr2为随机选取的两头猎物的位置。
完成步骤1)的初始化后,算法在步骤2)至步骤7)循环迭代,直至满足迭代终止条件时输出最优猎物。
3.3 MPA-DKF算法
使用MPA优化DKF算法时,首先应确定优化对象,将所优化对象组成向量组,并作为MPA算法中猎物的位置信息;其次是建立猎物的适应度函数,以作为该猎物的评价指标。
在MPA-DKF算法中,优化对象即为DKF算法的噪声统计特性及误差协方差矩阵初始值,因此,可将猎物的位置定义为DKF算法中的过程噪声协方差、量测噪声协方差以及误差协方差初值中的有效参数所组成的一组向量,由3.1节可知,这组向量共10个维度参数,即D=10。而猎物适应度则定义为:将猎物位置信息作为DKF算法的初始算法参数参与电池SOC估计,并以估计结果中的SOC预测值与参考值的差值平方和作为猎物适应度,其表达式如式(21)所示
(21)
式(21)中:L为最大采样点数,Yk为第k时刻的SOC预测值,SOCk为第k时刻的SOC参考值。综上,MPA-DKF伪代码如下所示。
输入:电池端电压、电流样本、
输出:DKF算法最优噪声统计特性参数及状态误差协方差初值、最优SOC估计值
1)初始化电池模型初始参数、MPA算法参数(N、D、Max_iter)
2) 根据式(12)初始化猎物种群
3)while iter < Max_iter
4) 根据式(13)计算猎物适应度并进行优胜劣汰,保留个体历史最优猎物,且确定最优猎物以构建捕食者矩阵
5) if iter < Max_iter/3
6)高速度比例阶段:猎物根据式(14)更新位置
7) else if Max_iter/3 < iter < 2×Max_iter/3
8) 单位速度比例阶段:猎物根据式(15)、(16)更新位置
9) else if iter > 2×Max_iter/3
10)低速度比例阶段:猎物根据式(18)更新位置
11)end if
12)根据式(13)计算猎物适应度并根据式(19)进行优胜劣汰,保留个体历史最优猎物,且确定最优猎物以构建捕食者矩阵
13)FADs效应:根据式(20)更新猎物位置
14)iter=iter+1
15)end while
16)提取最优猎物位置作为DKF算法的最优噪声统计特性参数及状态误差协方差初值,并提取SOC最优估计值
4 实验验证及结果分析
本次实验对象为某公司生产的单液流锌镍电池原型机,其电池单体参数为:额定容量210 Ah,平均电压1.705 V,充电截止电压2.1 V,放电截止电压1.2 V。使用新威电池测试系统BTS-3000(深圳产)进行测试。
在室温下以恒定电流100 A对单液流锌镍电池进行恒流脉冲放电,单次脉冲放电容量为10.5 Ah(占额定容量的5%),搁置时间为5 min,采样时间为1 s。实验取电池SOC于95%至5%的放电数据(18个放电脉冲)做SOC估计仿真测试,其端电压变化曲线如图2所示。
图2 放电过程端电压变化曲线
4.1 OCV-SOC曲线
开路电压(OCV)与电池SOC具有非线性函数关系,本文采用恒流恒容量脉冲放电试验来标定该关系曲线,在单个脉冲放电结束后静置至端电压稳定(60 min左右)时的值即为电池此时的开路电压,通过这种方式即可获取电池不同SOC点处的开路电压,从而利用MATLAB的cftool曲线拟合工具箱进行多项式拟合,结果如式(22)所示。
UOC(SOC)=2.218SOC5-6.55SOC4-7.638SOC3
-4.121SOC2+1.129SOC+1.55
(22)
4.2 基于MPA-DKF算法的SOC估计仿真与分析
图3 SOC初值0.95时估计结果
从图3、图4可以看出,依赖于固定模型参数的EKF算法在放电后期估计精度逐渐下降,而DKF算法弥补了EKF算法的缺陷,通过实时跟踪模型欧姆内阻参数缓解了模型时变所带来的影响,使其在估算后期仍有较高的估算精度。
图4 SOC初值0.50时估计结果
另外,相较于依据经验设置系统噪声统计特性与误差协方差矩阵初值参数的DKF算法,经过参数寻优的MPA-DKF算法估算精度明显得到了提升。同时鲁棒性也明显增强,在SOC初值错误下,MPA-DKF算法仅需在20 s内即可收敛至实际值附近,相比与EKF与DKF算法,其收敛性得到了大幅度提升。为了清晰直观的对比各个算法的估算性能,本文设置稳定后最大估算误差及均方根误差作为各算法评价指标如表2所示。
表2 各算法估算SOC的评价指标
由表2可以看出,MPA-DKF算法无论SOC初值是否有偏差,其估计精度都要明显优于DKF与EKF算法,最大估算误差不超过1%;且均方根误差小于0.5%,表明误差分布较为均匀,估计效果平稳。
为进一步检验MPA-DKF算法对欧姆内阻初值的依赖性,本文在SOC为错误初值0.5的条件下,设置欧姆内阻R0初值分别为1.05 mΩ、1.25 mΩ、1.55 mΩ做SOC估计测试,得到的欧姆内阻R0变化曲线如图5所示。
从图5可以看出,即使欧姆内阻初值不同,算法仍能在短时间内使其收敛于同一稳定值附近,这说明MPA-DKF算法对模型参数的依赖程度较小,可有效克服模型参数误差对估计性能的影响,体现了MPA-DKF算法的优越性。
图5 欧姆内阻R0变化曲线
5 结论
本文提出了一种基于MPA-DKF算法的单液流锌镍电池的SOC估计方法。MPA-DKF算法通过联合估计电池SOC及欧姆内阻参数,降低了模型时变对SOC估计精度的影响,同时引入MPA算法对影响DKF算法估算性能的过程噪声协方差、量测噪声协方差及误差协方差初值进行寻优。经实验表明,MPA-DKF算法有效提高了SOC估算精度,同时对SOC初值与模型初值偏差具有较强的适应性,具有一定的研究意义。
本文做SOC估计时默认电池额定容量保持不变,而实际电池额定容量会随电池温度变化及老化而改变,后续可考虑这一因素做进一步的研究。