杜宇石, 琚长江, 杨根科
(上海交通大学 宁波人工智能研究院, 浙江 宁波 315000; 上海交通大学 自动化系, 上海 200240)
超级电容器作为一种新型的储能元件, 具有充放电迅速、功率密度高、循环寿命长以及能量转换效率高等优点, 在混合动力汽车等领域有越来越广泛的应用. 为了汽车安全可靠运行, 判断可行驶路程等信息, 需要对其剩余电量, 即荷电状态(State of Charge, SOC)进行估算. SOC估计方法分安时法和电压软测量两类. 安时法[1]是一种基于直接电流测试的SOC估计方法, 具有较高的精度, 是实验室中最常用的SOC估计方法. 但从长时运维来看, 由于自放电现象和电流传感器精度的影响, 如果不定期进行校正, 误差会越来越大; 基于模型的电压软测量方法是机理或半机理或无机理的, 具有精度高和鲁棒性强等优点, 被广泛用于SOC 的实时估计[2]. 本文主要研究基于模型的SOC估算方法.
超级电容器的软测量模型基本可以分为4种: 电化学模型、等效电路模型、智能模型和分数阶模型. 电化学模型能够描述超级电容器内部真实的反应过程, 具有精度高的优点, 但是耦合偏微分方程带来了很大的计算量, 某些参数也是不可测量的[3]. 等效电路模型是根据经验和实验数据建立的, 具有良好的准确性和实用性, 但也存在物理意义缺失和易受老化影响等不足[4]. 智能模型能够描述自变量和因变量之间的复杂非线性关系, 而不需要详细了解其潜在机制和原理, 具有很好的建模能力, 但是对训练数据的质量和数量要求高, 非机理模型鲁棒性也不强[5]. 分数阶模型引入了分数阶微积分, 有较好的拟合实验数据的能力, 但计算成本大, 嵌入式实施难度高[6]. 等效电路模型结构简单且建模精度高, 在实时能量管理系统中得到了广泛的应用. 因此, 本文深入研究基于等效电路模型的SOC估计算法.
Pavkovic等[7]基于一阶非线性模型提出了基于扩展卡尔曼滤波的SOC估计算法. 此外, 还有如无迹卡尔曼滤波[8]等一系列改进方法. 基于卡尔曼滤波的SOC估计器虽然具有较高的精度, 但是此类方法需要精确的模型以及噪声的统计信息, 并且计算成本较高. Ceraolo等[9]基于线性RC串联电路模型采用Luenberger型观测器来计算SOC, 但单一的线性RC 串联电路不能完全模拟超级电容器的充放电特性. 以上算法虽然原理不同, 但在估计SOC时, 皆用等效电路模型中的非线性电容存储的电荷近似代替总电荷, 忽略了模型中其余的定值电容存储的电荷, 这在一定程度上会降低算法的精度.
为了得到更加准确的SOC估计值, Fan等[10]将SOC的定义扩充到所有电容存储的电荷, 利用滑模观测器来估计SOC, 在降低计算量的同时取得了较高的精度. 但是文中讨论的模型未考虑由于自放电现象产生的泄漏电流的影响, 这在短期内忽略是合理的, 而在长期使用或静置时可能会带来一定的累积误差. 另外, 超级电容器在充电和放电工况下的特性并不一致, 在不同的工况下建立不同的模型参数来表征其充放电特性可提高模拟精度[11].
本文在二分支等效模拟电路模型[12]的基础上, 建立内部多电容端电压的状态空间模型, 将超级电容器的电流和电压分别作为可控制输入和可观测输出, 来计算内部多电容的端电压值; 再根据非线性观测器[13]的思想, 用内部多电容的端电压来重构SOC. 针对充电和放电两种工况分别辨识模型参数, 每个模型包括有泄漏和无泄漏两种情况. 最后, 通过充放电实验讨论区分充放电不同工况以及泄漏电流对SOC估计精度的影响, 并验证非线性观测器的性能.
超级电容器有一对金属箔电极, 每个电极表面都有活性炭, 多孔的活性炭表面在电解液中与离子形成电双层, 可以决定超级电容器的容性. 超级电容器的物理化学特性比较复杂, 单一的电路器件不足以描述其充放电行为. 因此, 研究人员通常利用一些简化的等效电路模型来代替超级电容器[14].
本文综合考虑了超级电容单体等效电路模型的准确性和实用性, 选用Faranda[12]提出的二分支等效模拟电路模型, 如图1所示. 图中:R0为等效串联电阻;R2为电荷再分配电阻;C1为微分电容;C2为小孔隙电容(电荷再分配电容);Rl为泄漏电阻;i1为短期支路电流;i2为中长期支路电流;i3为泄漏电流;i为输入的充放电电流;v1为微分电容C1两端的电压;v2为小孔隙电容C2两端的电压;v为单体的端电压.
图1 二分支等效模拟电路模型Fig.1 Two-branch equivalent analog circuit model
利用Kirchhoff定律, 建立了基于图1所示的二阶非线性系统的状态空间模型:
(1)
式中:状态变量x1=v1和x2=v2为电容器内部多电容的端电压;电容器的可控输入u=i为充放电电流, 可测输出y=v为端电压.
(2)
式中:k为微分电容C1随两端电压v1线性变化的斜率;C0为微分电容C1两端电压为0时的初始电容. 这些参数因超级电容器的型号及规格而不同.
流过泄漏电阻Rl的电流是自放电现象产生的泄漏电流, 一般都比较小.由于泄漏电阻Rl远大于R0和R2, 所以泄漏电流比较小, 在某些情况下也可以忽略. 电容器的状态空间模型式(1)在无泄漏电阻情况下[15]的各参数为
(3)
注意到无泄漏效应对应模型式(3)并非式(2)的特例.
文献[11]针对模型参数选取不准给扩展卡尔曼滤波SOC估计带来误差的问题, 设计了变电流放电工况和变电流充电工况实验, SOC估计结果显示: 对于变电流充电工况, 使用充电模型参数的扩展卡尔曼滤波SOC 估计值更接近真实值, 而使用放电模型参数的SOC估计值则偏离真实值; 反之亦然. 因此, 电池充电模型参数和放电模型参数是不同的, 如果单独使用一种模型的参数进行SOC估计就会增大误差.
本文针对充电和放电两种不同的工况, 分别辨识不同的模型参数来表征超级电容器不同的物理特性.
以某型号为UCK42V28000的超级电容器单体为测试研究对象. 对超级电容单体进行100 A恒定电流的充放电实验, 规定充电电流为正, 放电电流为负, 直到超级电容端电压达到额定电压3.8 V为止, 分别记录电流i和端电压v的测试数据, 如图2和图3所示. 图中:t为时间.
图2 充电工况的输入电流和端电压Fig.2 Input current and terminal voltage of charging conditions
图3 放电工况的输入电流和端电压Fig.3 Input current and terminal voltage of discharging conditions
参考Liu等[16]使用遗传算法辨识等效电路模型相关参数的方法, 分别对充电和放电两种不同场景下的模型参数进行辨识. 对比不区分充放电工况[8], 即仅一组参数来表征超级电容器的充放电特性, 辨识了单一模型的参数. 各模型参数如表1所示.
表1 辨识的模型参数Tab.1 Model parameters identified
在MATLAB R2020a/Simulink环境中, 保持和实验一致的条件, 对式(1)进行仿真. 设置带噪声的100 A电流作为输入, 仿真时间与试验数据一致, 即272.6 s. 分别记录有泄漏和无泄漏情况下输出的端电压值, 并与实验得到的端电压值作对比, 如图4所示.
图4 充电时端电压的仿真值和实测值比较Fig.4 Comparison of simulated value and measured value of terminal voltage during charging
不引入泄漏电阻情况下的端电压仿真值与实测值间的误差会越来越大, 整体最大误差为 0.075 V. 而引入泄漏电阻情况下的端电压仿真值与实测值在中间部分的误差比较大, 但在两端的误差都比较小, 整体最大误差为0.048 V. 在充电起始阶段和接近结束时误差变小, 而在充电中间过程误差较大, 这是由于超级电容器端电压的非线性变化以及模型中RC电路的滞后特性引起的. 在起始阶段和结束阶段, 模型能够比较准确地反映端电压的变化情况;而在中间过程, 模型准确性相对较低. 在实际工程应用场景中, 超级电容器模型在接近充电结束时的准确度更加重要, 这对精确估计SOC值从而判断超级电容器是否充满电具有非常重要的意义. 在充电场景下, 考虑泄漏电流因素, 即引入泄漏电阻情况下的模型能够提高约0.03 V的精度.
类似地, 设置带噪声的 -100 A 电流作为输入(规定充电电流为正,放电电流为负), 测试时间为272.4 s. 分别记录有泄漏和无泄漏情况下输出的端电压值, 并与实验得到的端电压值作对比, 如图5所示.
图5 放电时端电压的仿真值和实测值比较Fig.5 Comparison of simulated value and measured value of terminal voltage during discharging
在放电初始阶段, 无泄漏电阻和有泄漏电阻两种情况的端电压基本一致. 随着放电过程的进行, 无泄漏电阻情况下的端电压误差先增大再减小, 最大误差为0.06 V, 在接近结束的时候误差会变小, 但与实测值仍然有0.038 V的误差. 有泄漏电阻情况下的端电压仿真值与实测值的误差较小, 仅在放电中间阶段误差比较大, 最大误差为0.036 V, 在接近结束时误差会变得很小, 最终为0.004 V. 类似地, 端电压在放电中间过程误差较大, 在起始和结束时的误差较小, 这也是由于超级电容器端电压的非线性变化和模型中RC电路的滞后特性导致的. 与无泄漏电阻的模型相比, 引入泄漏电阻能够把端电压最大误差从1.60%降低到0.96%, 将接近放电结束时的端电压误差从1.02%降低到0.11%. 另外, 超级电容器内部存在自放电现象, 故需要在建模时引入泄漏电阻来描述这一特性. 因此, 在放电场景下, 考虑泄漏电流, 即引入泄漏电阻情况下的模型有更好的准确性.
综上所述, 在充电和放电不同场景下, 考虑泄漏效应的模型有更高的模拟精度.
引入文献[10]的SOC, 定义为
(4)
式中:Qn为超级电容器的额定容量, 即存储的最大电荷量.本文的Qn为 25 200 C. 系统模型式(1)是非线性的, 因此利用非线性观测器来观测内部电压, 进而估计SOC.
对式(1)构造非线性状态观测器:
(5)
非线性观测器式(5)的全局渐近稳定性的证明过程如下.
设控制输入信号是有界的, 即存在uM>0, 对于任意的t, 有|u(t)|≤uM.
定义饱和函数:
(6)
式中:xM是充分大的正常数.
由于状态变量电压xk非负, 将其代入式(6)可得:
σ(xk)=xk,k=1, 2
且所得函数σ(xk)具有Lipschiz性质, 即对于任意的n维向量x,y∈Rn, 有
|σ(x)-σ(y)|≤|x-y|
定义函数:
φσ(x,u)=φ1(x1)φ2(x,u)
φ2(x,u)=a11σ(x1)+a12σ(x2)+b1u
注意到函数φσ(x,u)对x满足Lipschiz性质, 即存在实数γ>0, 有
(7)
对任意的t≥0, 定义Lyapunov函数:
此函数关于t求导, 得:
(8)
将(7)式代入(8)式得:
(9)
由于φσ具有Lipschitz性, 所以存在γ≥0, 有
(10)
根据杨氏不等式, 存在设计常数ε>0, 使得
(11)
将式(11)代入式(10)得:
(12)
式(12)代入式(9), 并整理可得:
因此, 可观测到系统内部状态x1=v1,x2=v2的信息, 代入式(4)从而求得SOC的估计值.
通过实验数据来验证式(5)的有效性. 参考文献[13], 考虑到非线性观测器的鲁棒性和收敛速度, 选择观测器增益为λ1=7,λ2=9,充电电流和放电电流均与第2节中的保持一致. 在恒流的模式下进行充放电, 采用安时法得到的SOC作为实际参照值.
在充电工况下, 为了研究区分充放电不同工况对SOC估计的影响, 把基于充电模型的SOC估计值与参照值之间的误差和基于充放电单一模型[8]的SOC估计值与参照值之间的误差作对比, 如图6所示. 图中:SOCE为SOC估计误差. 计算充电模型和单一模型的最大误差(ME)、平均绝对误差(MAE)和均方根误差(RMSE), 如表2所示.
图6 充电模型与单一模型的SOCE比较Fig.6 Comparison of SOCE between charging model and single model
表2 单一模型和充电模型的SOC估计误差Tab.2 SOC estimation error of single model and charging model %
由图6和表2可知, 不区分充放电的模型得到的SOC估计误差是逐渐增大的, 并不收敛.本文建立的充电模型得到的估计误差波动范围很小. 因此在充电时, 基于充电模型估计的SOC值比基于不区分充放电模型估计的SOC值更加准确.
把仿真得到的观测器估计的SOC值(包括基于有泄漏的模型和基于无泄漏的模型[10]两种情况) 与参照值进行比较, 如图7所示. 计算有泄漏模型和无泄漏模型的ME、MAE和RMSE, 结果如表3所示.
表3 充电工况下不同模型的SOC估计误差Tab.3 SOC estimation errors of different models under charging conditions %
图7 充电时有无泄漏估计的SOC值与参照值比较Fig.7 Comparison of estimated SOC value with reference value when charging with or without leakage
无泄漏电流情况下非线性观测器估计的SOC值与实际参照值的误差会越来越大, 到充电后期, 甚至会超过1, 这是很不合理的. 而在考虑有泄漏电阻情况下估计的SOC值与实际参照值吻合程度非常好, 均方根误差降低了4%. 因此, 考虑泄漏会提高SOC的估计精度.
在放电工况下, 将基于原充放电单一模型和放电模型得到的SOCE进行对比, 如图8所示. 计算其ME、MAE和RMSE, 如表4所示.
由图8和表4可知, 基于单一模型估计的SOC范围并没有包含0%~2%之间的部分, 这会损失一部分的SOC信息. SOC估计误差是逐渐增大的, 并不收敛. 而基于放电模型估计的SOC在合理的范围内, 均方根误差比基于单一模型的小4倍左右. 因此, 基于放电模型的估计效果更好.
图8 放电模型与单一模型的SOCE比较Fig.8 SOCE comparison of discharging model and single model
表4 单一模型和放电模型的SOC估计误差Tab.4 SOC estimation error of single model and discharging model %
将基于无泄漏和有泄漏的模型仿真得到的SOC估计值进行对比, 如图9所示. 计算其ME、MAE和RMSE, 如表5所示.
图9 放电时有无泄漏估计的SOC值与参照值比较Fig.9 When discharging with or without leakage, the estimated SOC value is compared with the reference value
表5 放电工况下不同模型的SOC估计误差Tab.5 SOC estimation errors of different models under discharging conditions %
无泄漏情况下非线性观测器估计的SOC值甚至会低于0, 这在实际应用中不可能发生, 且SOC估计误差逐渐增大. 而有泄漏情况下估计的SOC最大误差和均方根误差都比无泄漏情况下的小一个数量级. 所以, 考虑泄漏会提高SOC估计结果的可靠性.
综上所述, 非线性观测器算法具有良好的估计能力, 考虑泄漏因素会提高模型的准确度, 而区分充放电不同工况进行建模可以更加准确地表征超级电容器的充放电特性, 从而显著降低SOC的估计误差.
以超级电容器单体的二分支等效模拟电路模型为基础, 推导了以电容器模型中多电容端电压为状态的二阶非线性系统的状态空间方程. 针对充电和放电工况不同, 辨识了充电和放电各自的模型参数集. 讨论了自放电现象产生的泄漏电流对模型精度的影响. 实际的充放电实验数据表明, 与不考虑泄漏相比, 考虑泄漏能够降低约1%的电容器端电压模型预测误差. 依托电容器模型中多电容端电压, 设计了非线性观测器来估计SOC的值, 并通过仿真和实验对观测器进行了验证. 结果表明, 非线性观测器算法具有稳定的跟踪能力. 与不区分充电放电相比, 区分充电放电能够降低SOC的估计误差, 最大误差降低了一个数量级, 故基于区分充电放电的模型能够更好模拟实际充放电特性, 显著提高了SOC的估计精度. 不考虑泄漏得到的SOC估计值在充放电后期会偏离实际参照值, 甚至不在合理范围内, 所以考虑泄漏会降低SOC估计值的误差, 提高结果的可靠性. 本文提出的考虑泄漏因素且区分充电放电不同工况估计SOC的方法具有一定的理论价值和实用性, 后续将进一步在车辆加速、匀速、减速等不同工况下开展深入研究和应用.