具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种电池剩余电量的处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种电池剩余电量的处理方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,根据第一预设算法,得到电池的当前时刻的电量,其中,第一预设算法通过电池的电流值计算得到当前时刻的电量。
具体地,上述的第一预设算法可以是安时积分法,通过安时积分法可以在电池动态放电的情况下,实时对电池的电量进行计算。
步骤S104,获取上一时刻的学习因子和上一时刻的剩余电量。
具体地,上述的上一时刻的学习因子可以是上一个剩余电量的处理过程中,计算得到的学习因子,并且,初始学习因子可以是1;上述的上一时刻的剩余电量可以是在上一个剩余电量的处理过程中,计算得到的剩余电量。
步骤S106,根据当前时刻的电量和上一时刻的学习因子对上一时刻的剩余电量进行校正,得到当前时刻的剩余电量。
在一种可选的方案中,现有技术中通过安时积分法实时对电池电量进行计算,并根据初始剩余电量SOC0,计算得到当前时刻的剩余电量SOCt,也即,现有技术中根据SOC0和当前电池电量,计算得到SOCt。而在本发明实施例中,在每一次完整的放电循环(每一次完整的放电循环可以包括多个剩余电量的处理过程)中,可以根据上一时刻的学习因子、当前时刻的电量,计算得到当前时刻的剩余电量,即SOCt,即可以在通过安时积分法计算SOCt的过程中,引入学习因子,通过学习因子对SOCt进行校正,减少SOCt的误差,在计算得到SOCt之后,可以将当前时刻的SOCt进行存储,从而可以在下一个剩余电量的处理过程中,作为上一时刻的剩余电量SOCt-1。
根据本发明上述实施例,根据第一预设算法,得到电池的当前时刻的电量,获取上一时刻的学习因子和上一时刻的剩余电量,根据当前时刻的电量和上一时刻的学习因子对上一时刻的剩余电量进行校正,得到当前时刻的剩余电量,从而实现实时计算电池剩余电量。容易注意到的是,由于获取上一时刻的学习因子和上一时刻的剩余电量,并根据当前时刻的电量和上一时刻的学习因子对上一时刻的剩余电量进行校正,得到当前时刻的剩余电量,可以通过学习因子对剩余电量进行校正,逐步修正误差,从而克服随着时间的推移,硬件采样和时钟温漂等因素积累的误差,进而解决了现有技术中电池剩余电量的处理方法准确度低且复杂度高的技术问题。因此,通过本发明上述实施例提供的方案,可以达到降低算法复杂度,提高处理准确度,降低成本,提升可靠性的技术效果。
可选地,在本发明上述实施例中,步骤S106,根据当前时刻的电量和上一时刻的学习因子对上一时刻的剩余电量进行校正,得到当前时刻的剩余电量,包括:
步骤S1062,获取电池的上一时刻的总电量和额定容量。
具体地,上述的上一时刻的总电量可以是在之前多个剩余电量的处理过程中,累积得到的历史总电量;上述的额定容量可以是根据实际使用需求,预先设定的电池能够放出的最低电量。
步骤S1064,计算当前时刻的电量和上一时刻的总电量之和,得到当前时刻的总电量。
在一种可选的方案中,可以在根据安时积分法计算得到的当前时刻的电量之后,可以计算当前时刻的电量与上一时刻的总电量的和值,即在历史总电量的基础上,叠加当前时刻的电量,从而得到当前时刻的总电量。
步骤S1066,根据上一时刻的学习因子,当前时刻的总电量和额定容量,计算得到校正参数。
步骤S1068,根据校正参数对上一时刻的剩余电量进行校正,得到当前时刻的剩余电量。
可选地,在本发明上述实施例中,通过如下公式计算得到当前时刻的剩余电量:
SOCt=SOCt-1-Q*Kt-1/CN,其中,SOCt为当前时刻的剩余电量,SOCt-1为上一时刻的剩余电量,Q*Kt-1/CN为校正参数,Q为当前时刻的总电量,Kt-1为上一时刻的学习因子,CN为额定容量。
在一种可选的方案中,可以将获取到的上一时刻的剩余电量SOCt-1、上一时刻的学习因子Kt-1、计算得到的当前时刻的总电量Qt和额定容量CN代入上述公式,从而计算得到当前时刻的剩余电量SOCt,即在现有的安时积分法的计算公式中,引入学习因子,通过学习因子对SOCt进行校正,得到校正后的SOCt。
通过上述步骤,当前时刻的剩余电量的计算公式简单,从而减低了处理复杂度和运算量,进一步降低对处理器的要求,与现有技术相比,更加容易实现。
可选地,在本发明上述实施例中,在步骤S106,根据当前时刻的总电量和上一时刻的学习因子对上一时刻的剩余电量进行校正,得到当前时刻的剩余电量之后,该方法还包括如下步骤:
步骤S108,判断当前时刻的剩余电量是否为零,且电池是否处于过放电保护状态。
在一种可选的方案中,通过安时积分法和学习因子计算得到的当前时刻的剩余电量SOCt与电池的实际SOCt有可能不符合,因此,可以首先判断SOCt是否为零,进一步判断电池是否处于过放保护状态。
需要说明的是,如果判断出电池处于过放保护状态,则确定此次完整的放电循环结束,对学习因子进行更新,并开始下一次完整的放电循环。
步骤S110,如果判断出当前时刻的剩余电量不为零,且电池处于过放电保护状态,则根据当前时刻的总电量和当前时刻的剩余电量,得到当前时刻的学习因子。
步骤S112,如果判断出当前时刻的剩余电量为零,且电池处于过放电保护状态,则根据当前时刻的总电量,得到当前时刻的学习因子。
在一种可选的方案中,可以首先判断当前时刻的剩余电量SOCt是否为零,在判断出SOCt不为零之后,可以进一步判断电池是否处于过放保护状态,如果电池处于过放保护状态,则根据当前时刻的总电量和SOCt,计算得到当前时刻的学习因子Kt,并进行存储,作为下一个剩余电量的处理过程中的上一时刻的学习因子Kt-1;如果电池未处于过放保护状态,则直接进入下一个剩余电量的处理过程,无需对学习因子进行重新计算。在判断出SOCt为零之后,可以存储当前时刻的总电量Q,作为下一个剩余电量的处理过程中,上一时刻的总电量,然后在判断电池是否处于过放电保护状态,如果电池处于过放保护状态,则根据计算得到的当前时刻的电量Qt和当前时刻的总电量Q,计算得到当前时刻的学习因子Kt,并进行存储,作为下一个剩余电量的处理过程中的上一时刻的学习因子Kt-1;如果电池未处于过放保护状态,则直接进入下一个剩余电量的处理过程,无需对学习因子进行重新计算。
需要说明的是,在一次完整的放电循环过程中,学习因子不发生改变,直至开始下一次完整的放电循环过程。
可选地,在本发明上述实施例中,步骤S110,根据当前时刻的总电量和当前时刻的剩余电量,得到当前时刻的学习因子,包括:
步骤S1102,获取电池的额定容量和多个历史学习因子。
具体地,上述的多个历史学习因子可以是前几次完整的放电循环结束时计算得到的学习因子,在实际使用过程中,可以根据精度要求,确定多个历史学习因子的数量。
步骤S1104,根据当前时刻的总电量、当前时刻的剩余电量和额定容量,计算得到第一学习因子。
可选地,在本发明上述实施例中,通过如下公式计算得到第一学习因子:
其中,K′
t为第一学习因子,SOC
t为当前时刻的剩余电量,Q为当前时刻的总电量,C
N为额定容量。
在一种可选的方案中,在计算得到当前时刻的电量、当前时刻的总电量以及当前时刻的剩余电量SOCt之后,可以将当前时刻的总电量Q、SOCt以及额定容量CN代入上述公式,从而计算得到第一学习因子。
步骤S1106,对第一学***均值计算,得到当前时刻的学习因子。
在一种可选的方案中,为了减少温度等随机误差对学***均值,作为当前时刻的学习因子,并进行保存。
可选地,在本发明上述实施例中,步骤S112,根据当前时刻的总电量,得到当前时刻的学习因子,包括:
步骤S1122,获取多个历史学习因子。
步骤S1124,计算当前时刻的电量和当前时刻的总电量的比值,得到第一学习因子。
步骤S1126,对第一学***均值计算,得到当前时刻的学习因子。
在一种可选的方案中,在计算得到当前时刻的电量和当前时刻的总电量之后,可以计算当前时刻的电量Qt和当前时刻的总电量Q的比值,得到第一学***均值,作为当前时刻的学习因子,并进行保存。
通过上述步骤,在确定电池放电完成,即完成一个完整的放电循环之后,可以根据电池的不同状态,计算得到不同的第一学习因子,并开始下一次完整的放电循环,从而学习因子可以在不断的循环过程中,逐渐趋近于***的误差系数,对剩余电量进行校正,进而提高处理准确度。
可选地,在本发明上述实施例中,步骤S102,根据第一预设算法,得到电池的当前时刻的电量,包括:
步骤S1022,采集电池的电流值。
步骤S1024,根据电流值,计算得到当前时刻的电量。
在一种可选的方案中,在电池动态放电时,可以采集电流值,并利用安时积分法计算得到当前时刻的电量。
可选地,在本发明上述实施例中,步骤S102,根据第一预设算法,得到电池的当前时刻的电量之前,该方法还包括如下步骤:
步骤S114,判断电池是否处于放电状态。
步骤S116,如果电池处于放电状态,则根据第一预设算法,得到当前时刻的电量。
步骤S118,如果电池未处于放电状态,则根据第二预设算法,得到电池的初始剩余电量,其中,第二预设算法通过电池的端电压计算得到初始剩余电量。
具体地,上述的第二预设算法可以是开路电压法。
在一种可选的方案中,由于安时积分法无法获取到电池的初始剩余电量SOC0,因此,首先可以判断电池是否处于放电状态,如果电池未处于放电状态,即电池未开始放电,则可以根据开路电压法,计算得到电池的SOC0,从而在电池处于放电状态之后,即在第一个剩余电量的处理过程中,可以根据安时积分法计算得到当前时刻的电量,根据SOC0,初始学习因子K0,当前时刻的电量Qt(由于第一次进行放电循环,总电量未进行累积,当前时刻的总电量等于当前时刻的电量)和额定容量CN,计算得到当前时刻的剩余电量SOCt,从而可以继续下一个剩余电量的处理过程,直至完成整个放电循环。
可选地,在本发明上述实施例中,步骤S118,根据第二预设算法,获取电池的初始剩余电量,包括:
步骤S1182,采集电池的端电压和当前温度。
具体地,上述的当前温度可以是在起始时刻采集到的温度。
可选地,可以通过电池管理***BMS(是Battery Management System的简称)上的温度传感器,采集起始时刻的当前温度。
步骤S1184,根据当前温度,计算得到温度系数。
在一种可选的方案中,可以通过查表得出温度系数。温度与SOCt具有非线性关系,不同的温度,对应不同的SOCt曲线。
步骤S1186,根据端电压和温度系数,计算得到初始剩余电量。
在一种可选的方案中,电池在静态非放电状态时,电池端电压OCV(是OpenCircuit Voltage的简称)可以直接反映出SOCt值,可以预先将大量SOC-OCV曲线数据,存储在处理器的EEPROM(电子可擦除可编程只读存储器,是Electrically-ErasableProgrammable Read-Only Memory的简称)里,通过实时查表即可得到SOCt,并根据温度系数对SOCt进行补偿,得到SOC0。
图2是根据本发明实施例的一种可选的电池剩余电量的处理方法的流程图,下面结合图2对本发明一种优选的实施例进行详细说明,如图2所示,该方法可以包括如下步骤:
步骤S201,判断电池是否放电。
可选地,在进入一个剩余电量的处理过程之后,首先判断电池是否放电,如果确定电池未放电,即电池处于静态非放电状态,则进入步骤S202,通过开路电压法计算得到初始剩余电量SOC0;如果确定电池放电,即电池处于放电状态,则进入步骤S206,利用安时积分法和学习因子,得到当前时刻的剩余电量SOCt。
步骤S202,读取当前温度,并查表得到温度***。
可选地,电池在静态非放电时,可以在起始时刻读取当前温度,并得出温度系数。
步骤S203,测量电池端电压。
步骤S204,根据温度系数和端电压对SOCt进行补偿。
步骤S205,计算出SOCt。
可选地,可以测量电池的端电压OCV,根据温度系数和OCV,查表得到SOCt并作为SOC0。
步骤S206,利用安时积分法,计算出当前电量Qt。
步骤S207,累积总电量Q,查询上一时刻的学习因子Kt-1。
步骤S208,计算SOCt=SOCt-1-Q*Kt-1/CN。
可选地,电池在动态放电时,可以采集电流值,并用安时积分法计算当前的电量Qt。计算累积的总电量Q,并读取上一时刻的学习因子Kt-1。计算出当前时刻的剩余电量SOCt的数值,公式如下:SOCt=SOCt-1-Q*Kt-1/CN,其中,SOCt为当前时刻的剩余电量数值,SOCt-1为上一时刻的剩余电量数值,Q为累积的总电量,Kt-1为上一时刻学习因子,CN为电池的额定容量。
步骤S209,保存SOCt。
可选地,在计算得到当前时刻的剩余电量SOCt的数值之后,可以将SOCt保存在处理器的EEPROM中,方便下一次剩余电量的计算。
步骤S210,判断SOCt是否为零。
可选地,在计算得到当前时刻的剩余电量SOCt之后,可以判断SOCt是否变为零,如果未变为零,则进入步骤S211;如果变为零,则进入步骤S214。
步骤S211,判断电池是否过放电保护。
可选地,如果判断出当前时刻的剩余电量SOCt未变为零,则进一步判断电池是否处于过放电保护状态,如果否,则无需对学习因子进行改变,直接进入下一个剩余电量的处理过程,如果是,则确定完成一个完整的放电循环,可以进入步骤S212,对学习因子进行调整。
步骤S212,计算第一学***均值。
步骤S213,SOCt清零。
可选地,在电池过放电保护后,计算出第一学***均值Kt,同时将当前SOCt清零。
步骤S214,保存当前电量Qt。
步骤S215,判断电池是否过放电保护。
可选地,在当前时刻的剩余电量SOCt变为零之后,可以首先保存当前电量Qt,并继续判断电池是否过电保护,如果否,则继续累积总电量,直至电池过放电保护为止,如果是,则进入步骤S216。
步骤S216,计算第一学***均值。
可选地,在电池过电保护之后,可以计算出自学***均值Kt。
通过上述步骤,提供了一种电池剩余电量的处理方法,在开路电压法和安时积分法的基础上,引入电池自学***台硬件的基础上,通过软件算法的优化,引入学***台和软件平台,可大量推广应用的优点,并且可以运用于能源、动力、储能等领域的电池应用,准确估算剩余电量,可以有效保护电池,防止电池过充电或者过放电,提高电池的使用寿命和利用率,同时,可以掌握电池的剩余电量,及时了解电池的续航时间,进一步规划后期的充放电工作。
实施例2
根据本发明实施例,提供了一种电池剩余电量的处理装置的实施例。
图3是根据本发明实施例的一种电池剩余电量的处理装置的示意图,如图3所示,该装置包括:
第一处理模块31,用于根据第一预设算法,得到电池的当前时刻的电量,其中,第一预设算法通过电池的电流值计算得到当前时刻的电量。
具体地,上述的第一预设算法可以是安时积分法,通过安时积分法可以在电池动态放电的情况下,实时对电池的电量进行计算。
获取模块33,用于获取上一时刻的学习因子和上一时刻的剩余电量。
具体地,上述的上一时刻的学习因子可以是上一个剩余电量的处理过程中,计算得到的学习因子,并且,初始学习因子可以是1;上述的上一时刻的剩余电量可以是在上一个剩余电量的处理过程中,计算得到的剩余电量。
第二处理模块35,用于根据当前时刻的电量和上一时刻的学习因子对上一时刻的剩余电量进行校正,得到当前时刻的剩余电量。
在一种可选的方案中,现有技术中通过安时积分法实时对电池电量进行计算,并根据初始剩余电量SOC0,计算得到当前时刻的剩余电量SOCt,也即,现有技术中根据SOC0和当前电池电量,计算得到SOCt。而在本发明实施例中,在每一次完整的放电循环(每一次完整的放电循环可以包括多个剩余电量的处理过程)中,可以根据上一时刻的学习因子、当前时刻的电量,计算得到当前时刻的剩余电量,即SOCt,即可以在通过安时积分法计算SOCt的过程中,引入学习因子,通过学习因子对SOCt进行校正,减少SOCt的误差,在计算得到SOCt之后,可以将当前时刻的SOCt进行存储,从而可以在下一个剩余电量的处理过程中,作为上一时刻的剩余电量SOCt-1。
根据本发明上述实施例,根据第一预设算法,得到电池的当前时刻的电量,获取上一时刻的学习因子和上一时刻的剩余电量,根据当前时刻的电量和上一时刻的学习因子对上一时刻的剩余电量进行校正,得到当前时刻的剩余电量,从而实现实时计算电池剩余电量。容易注意到的是,由于获取上一时刻的学习因子和上一时刻的剩余电量,并根据当前时刻的电量和上一时刻的学习因子对上一时刻的剩余电量进行校正,得到当前时刻的剩余电量,可以通过学习因子对剩余电量进行校正,逐步修正误差,从而克服随着时间的推移,硬件采样和时钟温漂等因素积累的误差,进而解决了现有技术中电池剩余电量的处理方法准确度低且复杂度高的技术问题。因此,通过本发明上述实施例提供的方案,可以达到降低算法复杂度,提高处理准确度,降低成本,提升可靠性的技术效果。
可选地,在本发明上述实施例中,第二处理模块包括:
第一获取子模块,用于获取电池的上一时刻的总电量和额定容量。
第一计算子模块,用于计算当前时刻的电量和上一时刻的总电量之和,得到当前时刻的总电量。
第一处理子模块,用于根据上一时刻的学习因子,当前时刻的总电量和额定容量,计算得到校正参数。
校正子模块,用于根据校正参数对上一时刻的剩余电量进行校正,得到当前时刻的剩余电量。
可选地,在本发明上述实施例中,第一处理子模块还用于通过如下公式计算得到当前时刻的剩余电量:
SOCt=SOCt-1-Q*Kt-1/CN,其中,SOCt为当前时刻的剩余电量,SOCt-1为上一时刻的剩余电量,Q*Kt-1/CN为校正参数,Q为当前时刻的总电量,Kt-1为上一时刻的学习因子,CN为额定容量。
可选地,在本发明上述实施例中,该装置还包括:
第一判断模块,用于判断当前时刻的剩余电量是否为零,且电池是否处于过放电保护状态。
第三处理模块,用于如果判断出当前时刻的剩余电量不为零,且电池处于过电保护状态,则根据当前时刻的总电量和当前时刻的剩余电量,得到当前时刻的学习因子。
第四处理模块,用于如果判断出当前时刻的剩余电量为零,且电池处于过电保护状态,则根据当前时刻的总电量,得到当前时刻的学习因子。
可选地,在本发明上述实施例中,第三处理模块包括:
第二获取子模块,用于获取电池的额定容量和多个历史学习因子。
第二计算子模块,用于根据当前时刻的总电量、当前时刻的剩余电量和额定容量,计算得到第一学习因子。
可选地,在本发明上述实施例中,第二计算子模块用于通过如下公式计算得到第一学习因子:
其中,K′
t为第一学习因子,SOC
t为当前时刻的剩余电量,Q为当前时刻的总电量,C
N为额定容量。
第三计算子模块,用于对第一学***均值计算,得到当前时刻的学习因子。
可选地,在本发明上述实施例中,第四处理模块包括:
第三获取子模块,用于获取多个历史学习因子。
第四计算子模块,用于计算当前时刻的电量和当前时刻的总电量的比值,得到第一学习因子。
第五计算子模块,用于对第一学***均值计算,得到当前时刻的学习因子。
可选地,在本发明上述实施例中,第一处理模块包括:
第一采集子模块,用于采集电池的电流值。
第二处理子模块,用于根据电流值,计算得到当前时刻的电量。
可选地,在本发明上述实施例中,该装置还包括:
第二判断模块,用于判断电池是否处于放电状态。
第一处理模块还用于如果电池处于放电状态,则根据第一预设算法,得到当前时刻的电量。
第五处理模块,用于如果电池未处于放电状态,则根据第二预设算法,得到电池的初始剩余电量,其中,第二预设算法通过电池的端电压计算得到初始剩余电量。
可选地,在本发明上述实施例中,第五处理模块包括:
第二采集子模块,用于采集电池的端电压和当前温度。
第六计算子模块,用于根据当前温度,计算得到温度系数。
第七计算子模块,用于根据端电压和温度系数,计算得到初始剩余电量。
需要说明的是,本实施例中的优选实施方式可以参见实施例1中的相关描述,此处不再赘述。
实施例3
根据本发明实施例,提供了一种计算机可读存储介质的实施例,计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行上述实施例1中的电池剩余电量的处理方法。
实施例4
根据本发明实施例,提供了一种处理器的实施例,处理器用于运行程序,其中,程序运行时执行上述实施例1中的电池剩余电量的处理方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。