电池荷电状态 (SOC) 是介于 0 和 1 之间的归一化量,表示当前时刻电池中的荷电水平。SOC 为 1 表示电池充满电,而 SOC 为 0 表示电池完全放电。
电动汽车的 SOC 类似于传统内燃机车辆中的燃油表,向驾驶员指示电池剩余能量;SOC 越高,意味着行驶里程越长。了解电池 SOC 使驾驶员能够更高效地规划行程和使用充电桩。电池 SOC 的计算方式如下:

其中
SOC(t1)是在时间t1(秒)处的电池 SOC。
SOC(t0)是在时间t0(秒)处的电池 SOC。
i(t)是电池电流,单位为 A,电池放电时带负号。
η是无单位的库仑效率因子。
Ctotal是电池总容量 (Ah)。它定义为从充满电状态 (SOC = 1) 到完全放电状态 (SOC = 0) 从电池中流失的电荷。在电池随时间退化的过程中,电池总容量也会随之减少。
准确估计电池荷电状态的重要性
电池管理系统 (BMS) 使用 SOC 估计来提示用户下次充电前的预期使用量,保证电池处于安全运行时间范围内,实现控制策略,并最终在包括电动汽车 (EV) 和储能系统在内的许多应用中延长电池寿命。例如,健康状态 (SOH) 估计需要 SOC 信息来准确估计电池 SOH。BMS 在电芯平衡算法中使用估计的 SOC。
准确估计电池荷电状态面临的挑战
准确估计 SOC 对于电池电力系统的有效管理和运行至关重要。然而,这面临着几个相关挑战:
非线性放电曲线:电池通常具有非线性放电特性,使得难以仅基于电压测量估计 SOC。
电流测量误差:准确的 SOC 估计通常依赖精确的电流测量。电流感测中的误差可能导致 SOC 估计中的累积误差,特别是在库仑计数等方法中。
老化、退化和 SOH 依赖:SOC 通常依赖电池的健康状态。随着时间的推移,电池会退化,这会影响其容量和内阻。如果不适当考虑,这种退化可能导致 SOC 估计不准确。
自放电:即使在不使用时,电池也会随时间失去电荷。如果不考虑这一点,可能导致 SOC 估计出现偏差。
动态负载曲线:波动的负载会使 SOC 估计复杂化,因为它们可能导致电池电压和电流快速变化,从而难以跟踪真实的荷电状态。
电池模型参数化:电池模型是典型的等效电路模型。准确的 SOC 估计需要准确的模型拟合和调节协方差(如果使用卡尔曼滤波器)。模型参数化可能耗时且具有挑战性。
如何计算电池荷电状态
估计 SOC 的方法有多种,既有简单的电流积分(库仑计数)和电压监测,也有复杂的基于模型和数据驱动的方法,如卡尔曼滤波器和神经网络。
对于开发电池管理系统中基于模型的 SOC 估计的算法,精确的电池模型至关重要。电池管理系统中 SOC 估计的传统方法,例如开路电压 (OCV) 查找和电流积分(库仑计数),在某些情况下易于实现且相对准确。然而,基于 OCV 的方法要求进行 OCV 测量,这需要在测量前经过长时间的静置期。而库仑计数存在初始化不良和电流测量噪声累积的问题。事实证明,扩展卡尔曼滤波器 (EKF) 和无迹卡尔曼滤波器 (UKF) 方法能以合理的计算工作量在真实的 BMS 实现中提供准确的结果。
Simscape Battery[1]是用于设计和仿真电池和储能系统的建模软件,它为 BMS 开发提供了若干 SOC 估计器并支持代码生成:
SOC 估计器(库仑计数):具有库仑计数的荷电状态估计器[2]
SOC 估计器(库仑计数,可变容量):具有库仑计数和可变容量的荷电状态估计器[3]
SOC 估计器(卡尔曼滤波器):具有卡尔曼滤波器的荷电状态估计器[4]
SOC 估计器(卡尔曼滤波器,可变容量):具有卡尔曼滤波器和可变容量的荷电状态估计器[5]
SOC 估计器(自适应卡尔曼滤波器):具有自适应卡尔曼滤波器的荷电状态和终端电阻估计器[6]
SOC 估计器(自适应卡尔曼滤波器,可变容量):具有自适应卡尔曼滤波器和可变容量的荷电状态和终端电阻估计器[7]
与卡尔曼滤波器 SOC 估计器相比,自适应卡尔曼滤波器 SOC 估计器将终端电阻作为一个额外状态。自适应卡尔曼滤波器 SOC 估计器和卡尔曼滤波器 SOC 估计器都可以选择使用 EKF 或 UKF 来开发 SOC 估计观测器。在电池管理系统中,此类观测器通常包括一个非线性电池系统的模型和一个递归算法。该模型使用 BMS 从电池测得的电流和电压作为输入,该算法根据一个两步式(预测和纠正)过程来计算系统(其中包括 SOC)的内部状态。

SOC 的实际值和使用 EKF 与内置 BMS 模块的估计值的比较。(请参阅 Simscape Battery 示例。[8])
使用深度学习网络估计电池荷电状态
电池管理系统也可以使用神经网络等数据驱动方法来估计 SOC,而不必使用卡尔曼滤波器。此方法不需要关于电池或其非线性行为的大量信息,而是使用电流、电压和温度数据来训练网络并将 SOC 作为响应。您可以使用投影压缩神经网络[9],这样,在 CPU 上运行或利用无库的 C 或 C++ 代码生成部署到 BMS 嵌入式硬件时,可以实现更快的前向传播。

在电池管理系统中使用神经网络进行 SOC 估计。(请参阅 Deep Learning Toolbox 示例。[10])

在两种不同温度下,电池管理系统中的真实 SOC 与使用深度学习网络估计的 SOC 的比较。(请参阅 MATLAB 代码。[11])
文中相关示例与链接
[1]https://ww2.mathworks.cn/products/simscape-battery.html
[2]https://ww2.mathworks.cn/help/simscape-battery/ref/socestimatorcoulombcounting.html
[3]https://ww2.mathworks.cn/help/simscape-battery/ref/socestimatorcoulombcountingvariablecapacity.html
[4]https://ww2.mathworks.cn/help/simscape-battery/ref/socestimatorkalmanfilter.html
[5]https://ww2.mathworks.cn/help/simscape-battery/ref/socestimatorkalmanfiltervariablecapacity.html
[6]https://ww2.mathworks.cn/help/simscape-battery/ref/socestimatoradaptivekalmanfilter.html
[7]https://ww2.mathworks.cn/help/simscape-battery/ref/socestimatoradaptivekalmanfiltervariablecapacity.html
[8]https://ww2.mathworks.cn/help/simscape-battery/ug/battery-state-of-charge-estimation.html
[9]https://ww2.mathworks.cn/help/deeplearning/ug/compress-neural-network-using-projection.html
[10]https://ww2.mathworks.cn/help/deeplearning/ug/battery-state-of-charge-estimation-using-deep-learning.html
[11]https://ww2.mathworks.cn/help/deeplearning/ug/test-network-for-battery-state-of-charge-estimation.html
我要赚赏金
