BMS-SOC算法——安时积分法
作者:mmseoamin日期:2024-03-04

安时积分法是一种电池电量计量的基础方法,它采用AH累积的方法,对动态的锂电池进行实时的SOC估算。安时积分法的计算公式如下:

SOC(t)=SOC0​+CE1​∫0t​I(τ)dτ

其中,SOC0​是电池电荷状态的初始电量值;CE是电池的额定容量;I(t)为电池在t时刻的充放电电流;t为充放电的时间。安时积分法的优点是受电池自身情况的限制相对较小,计算方法简单、可靠,能够对电池的荷电状态进行实时的估算。其缺点是由于安时计量法在控制中属于开环的检测,如果电流的采集精度不高,给定的初始荷电状态有一定误差,伴随着系统运行时间的延伸,之前产生的误差会逐渐累积,从而影响荷电状态的预测结果。

以下是一个简单的C语言代码并注解1:

#include 
#include 
#include 
#include 
#define CE 2000 //mAh
#define I 100 //mA
int main()
{
    float soc = 0;
    float time = 0;
    float delta_t = 1; //s
    float soc_0 = 50; //%
    while (time <= 3600) //s
    {
        soc = soc_0 + (I * delta_t) / CE;
        soc_0 = soc;
        time += delta_t;
        printf("Time: %.2f s, SOC: %.2f%%\n", time, soc);
    }
    return 0;
}

注解:

  • CE:锂电池额定容量,单位mAh。
  • I:锂电池充放电电流,单位mA。
  • soc:锂电池荷电状态(State of Charge),单位%。
  • soc_0:锂电池初始荷电状态。
  • delta_t:时间步长,单位s。
  • time:时间,单位s。
  • SOC是指电池的电荷状态,通常以百分比的形式表示。BMS中的SOC算法有很多种,其中一种是安时积分法。安时积分法是一种电池电量计量的基础方法,它采用AH累积的方法,对动态的锂电池进行实时的SOC估算。安时积分法的计算公式如下:

    SOC(t)=SOC0​+Ce​∫t0​t​I(τ)dτ​

    其中,SOC0​ 是电池电荷状态的初始电量值;Ce​是电池的额定容量;I(t)为电池在t时刻的充放电电流。12

    以下是一个简单的Python代码实现安时积分法的SOC算法,并注释了代码:3

    def soc_ah(integral_current, capacity, soc_initial):
        """
        :param integral_current: 安时积分值
        :param capacity: 电池容量
        :param soc_initial: 初始SOC
        :return: SOC
        """
        soc = soc_initial + integral_current / capacity
        return soc
    

    希望这可以帮到你。