引入PID反馈的SHAEKF算法估算电池SOC
2024-03-11向丽红徐青山
蔡 黎,向丽红*,晏 娟,徐青山
(1.重庆三峡学院电气工程系,重庆 404000;2.东南大学电气工程学院,江苏 南京 210000)
电池组、驱动电机和电控系统是电动汽车的三大重要组成部分。电池组的荷电状态(SOC)[1]是电池组管理系统的重要控制指标,也是电控系统的重要输入来源。它的准确性直接决定电动汽车电池组和电控系统的稳定性。
目前,扩展卡尔曼滤波算法(EKF)及改进、衍生算法[2]是基于状态空间电池模型的SOC 预估方法中的主流,也是目前学术界、工程界研究的热点,代表算法有强跟踪扩展卡尔曼滤波(STEKF)算法、基于极大似然准则的自适应扩展卡尔曼滤波(AEKF)算法、Sage-Husa 扩展卡尔曼滤波(SHEKF)算法等[3]。它们的本质是单目标最优Bayes 滤波器。这些算法的优点是在时间域内的递推形式构成的“预测-修正”的循环过程,可根据电池组状态的改变得到理想的预测结果,计算量小、实时性好;缺点是在系统噪声和量测噪声明显时,系统鲁棒性差,预估结果不理想。
本文作者在二阶RC 等效电路模型的基础上,提出一种改进的融合算法,分别使用两种自适应算法对系统噪声和量测噪声进行自适应预估,降低噪声对SOC 估计的影响,从而提高SOC 估计精度,并引入比例积分微分(PID)反馈环节对误差进行补偿。在动态应力测试(DST)、北京动态应力测试(BJDST)和美国联邦城市驾驶(FUDS)等工况下,对改进算法和其他同类型算法进行比较、分析。
1 电池建模
电池模型精度的高低会直接影响后续SOC 的估算精度。基于一阶RC 模型,实验在充分考虑电极的极化特性的同时,增加RC 网络的数量,改善模型的精度。
图1 中:Uoc是与SOC 相关的开路电压;Ub是端电压;R0是考虑了电池充放电过程差异的欧姆内阻;R1、C1分别是欧姆极化电阻与电容;R2、C2分别是电化学极化电阻与电容;I是电流。
图1 二阶RC 等效电路模型Fig.1 Second-order RC equivalent circuit model
根据基尔霍夫电压定律,可得状态方程:
电池端电压可表示为:
2 参数辨识
为减小系统的计算负担,采用离线参数辨识方法来获得电池模型参数。进行参数辨识前,必须获得准确的开路电压(OCV)与SOC 的关系曲线。在电池内电化学系统处于平衡状态后,开路电压能反映电池的电量状况,因此提高等效电路模型精度和SOC 估计准确性的前提,是获得精确的OCVSOC 曲线。综合考虑拟合精度、实验获取数据量和计算复杂度,选择式(3)所示的8 阶多项式进行拟合。
式(3)中:Os是不同SOC 值(SOC)对应的OCV;p1~p9是需要拟合的参数,具体取值依次为-3.45、1.95、9.04、-21.29、13.02、3.92、-5.87、2.02 和3.34。
在获得OCV-SOC 曲线后,还需要对R0、R1、R2、C1和C2等二阶RC 等效电路模型参数进行辨识。采用粒子群优化(PSO)算法[4]获得上述参数的值。在采用PSO 算法进行模型参数辨识时,首先要确定目标函数。采用测量得到的电池系统的端电压与电池模型仿真输出的端电压之间的累积误差作为目标函数fitness,数学表达式见式(4)。
式(4)中:G是时间采样间隔总数;Um,k是测量得到的电池系统的端电压;Ut,k是电池模型仿真输出的端电压。
所识别的参数是否可行,是由电压输出估算值与实际的电池电压输出值的累积误差的幅值来判定的。当残差平方和值最小时,辨识的结果即为最优参数值。
3 SOC 估算
3.1 AEKF
首先,将电池非线性系统的状态方程和量测方程设为:
式(5)中:xk、zk+1、uk分别是电池系统的状态向量、输出向量和输入向量;f(xk+1,uk+1)是系统在k+1 时刻的观测方程函数;wk是系统在k时刻的系统噪声,对应的协方差矩阵为Qk;vk+1是系统在k+1 时刻的量测噪声序列,对应的协方差矩阵为Rk+1;Ak、Bk和Dk+1是状态空间模型的系统矩阵。
上述各变量具体定义为:
式(9)中:η是电池充放电效率;Ts是采样时间,1 s;Ccap是电池额定容量。
AEKF 算法的核心公式与传统的EKF 算法相比,增加了式(11)-(13)。
3.2 SHEKF 算法
SHEKF 算法引入遗忘因子后,较新数据项的权重系数增大,较旧数据项的权重系数减小,因此在估计噪声均值和协方差时,可逐步削弱较旧数据的影响,增强较新数据的作用[5]。此方法估计SOC 的具体流程,可划分为标准EKF 估计和噪声估计两大步骤。与AEKF 算法不同,噪声估计过程为:
3.3 改进SHAEKF
文献[5]认为,应该取消式(16)和(17)的计算,原因是出现较大变化的量测噪声往往会引起较大的估计偏差。后续有关SHEKF 算法对SOC 的估算采取了同样的做法。
过大的估计窗会使电池的动态性能变差;过小的估计窗不能保证滤波过程的无偏性,严重时会造成滤波的发散。AEKF 算法没有具体的计算公式来衡量估计窗的大小,为确保SOC 估算精度满足实际需求,预估电池SOC 之前,需要设置合适大小的估计窗。
综上所述,对量测噪声的自适应估计选用SHEKF 算法。为防止量测噪声协方差矩阵变成非正定的,用式(20)替换式(18)。另外,以EKF 算法状态变量修正过程为基础,引入PID 环节,消除静差,抑制建模误差[6]。为确保算法在系统稳定的前提下获取足够的SOC 状态信息,将卡尔曼滤波增益K加到比例积分环节中,而传统微分环节用于稳定系统振荡,因此不做更改,修正方程为式(23)。此外,通过使用估计窗的方式来估计系统噪声,具体估计过程见式(21)、(22)。
式(20)-(23)中:Hp是PID 参数中的比例增益;Hi是积分增益;Hd是微分增益。
根据临界比例度法,通过实验得出PID 控制器的最优参数分别为0.120、0.024、0.033。自适应窗口大小M关系到算法灵敏度与稳定性的平衡,需根据实际动态范围在两者之间进行折中,提出如果k≤M,则M=k×(k+1)/5;否则k>M,M=M×(k+1)/5。
4 实验仿真与分析
将马里兰大学公开发布的电池数据集[7]用作实验验证。研究对象是此数据集中额定容量为2 Ah 的INR 18650 型电池(深圳产)。为检验模型和估算算法的预测性能,实验用最大误差(ME,ME)和平均绝对误差(MAE,MAE)进行评估。
评估指标的值越小,提出的模型和算法的估算效果越好。
4.1 模型验证
DST、BJDST 和FUDS 等3 种不同工况[8]下的电压对比结果如图2所示。
图2 在各工况下的仿真电压与实际电压对比Fig.2 Comparison of simulated voltage and actual voltage at each working condition
从图2 可知,无论在何种工况下,模型仿真电压都能很好地跟随实际电压的变化而变化,表明PSO 算法对模型的参数辨识结果可满足实际需求。在每个工况的放电末期,由于电池内部化学反应的强度减弱,从而导致电压的预测值不准确,出现了最大误差。
为了更直观地判断模型是否满足要求,整理模型验证的全部评估指标数据,见表1。
表1 端电压误差对比 %Table 1 Terminal voltage error comparison %
从表1 可知,随着工况电流数据变化得愈加剧烈,模型输出的端电压的最大误差变大,但平均绝对误差都在1%以下,表明使用PSO 算法辨识出的模型参数结果的精度很高,可用于后续的SOC 估算。
4.2 算法验证
在所提出的对比方法中,SHAEKF 算法只是融合了两种自适应算法,与所提出的改进SHAEKF 的区别在于对量测噪声的自适应估计以及没有加PID 策略。安时积分法在仿真环境中不存在累积误差,短时间内的估计结果比较可靠,因此作为参考值。
4.2.1 鲁棒性分析
当系统受到干扰时,仍可保持真实的估算能力,常被称为算法具有鲁棒性。
SOC 的估算精度与电池环境温度的高低相关,DST 工况下,采用代表低温(0 ℃)、常温(25 ℃)和高温(45 ℃)的3种环境温度下的电池数据,可以有效检验算法的鲁棒性,实验结果如图3所示。
图3 不同环境温度下各算法的估算结果对比Fig.3 Comparison of the estimation results of each algorithm under different ambient temperatures
从图3 可知,改进算法相较于其他对比算法更加接近参考值。改进算法的误差曲线的波动范围更接近0,说明改进算法在估算精度方面相较于其他算法有一定的优势。改进算法对温度具有鲁棒性,因此在不同温度下都能得到较好的估算结果。
4 种算法的估计误差见表2。
表2 4 种算法在各温度下的估算误差 %Table 2 Estimation errors of the four algorithms at each temperature %
从表2 可知,改进算法与SHAEKF 算法相比,最大误差减小了5%。SHAEKF 算法的MAE 都在10%以内,但最大误差在低温环境下达到了88.5%,超过了国标要求的10%。对算法进行分析,发现造成这种现象的原因是SHAEKF 算法对量测噪声的估计采用的是式(18)。式(18)的后半部分因为有负号的存在,在滤波过程中很容易让量测噪声的协方差矩阵成为负数,进而影响滤波估计。对比表2 中各数据可知,改进算法的误差都比其他算法的小,表明改进算法即使在低温环境下也能较好地对SOC 进行估计。
4.2.2 有效性分析
标准GB/T 38661—2020《电动汽车用电池管理系统技术条件》[9]明确指出,一个值得信赖的SOC 估算算法需要兼具高精度和强鲁棒性。通过模拟车辆的加速、减速、匀速、急加速、滑行、制动以及不同的功率、不同的持续时间对电池进行充电和放电的工况数据,可很好地检验算法。BJDST、FUDS两种工况的估算结果见图4。
图4 不同工况下各算法估算对比Fig.4 Comparison of the estimation of each algorithm under different working conditions
从图4 可知,改进算法的估算曲线能很好地追踪到参考曲线,且改进算法的误差曲线与其他算法相比变化得最为平稳,表明改进算法在不同工况下都能很好地对电池SOC 进行估算。
两种工况下的估算误差见表3。
表3 两种工况下的估算误差 %Table 3 Estimation errors of two operating conditions %
从表3 可知,改进算法的最大误差和平均误差无论在何种工况、温度下,都比SHAEKF 算法、AEKF 算法和SHEKF 算法小。所提出的改进算法相较于其他同类型的3 种算法而言,鲁棒性和有效性更好。
5 结论
本文作者在融合AEKF 和SHEKF 两种自适应估计算法的基础上,增加了PID 反馈环节,提出改进SHAEKF 算法。改进后的算法与单一算法相比,在DST、BJDST 和FUDS 工况中都有更高的精度和稳定性,最大误差都在3%以下。低温和高温都会导致各个算法的估算精度相对降低,但改进算法较于其他算法受温度影响的程度最小。该算法目前仅通过实际运行工况数据进行了验证,今后的工作还应考虑在实车测试中所需要耗费的估算成本,以及估算时间问题。