基于XGboost模型的锂离子电池荷电状态估算的制作方法

文档序号:22623629发布日期:2020-10-23 19:30阅读:79来源:国知局
基于XGboost模型的锂离子电池荷电状态估算的制作方法

本发明涉及到锂离子电池预测领域,更具体的说,是涉及基于xgboost模型的锂离子电池荷电状态估算。



背景技术:

锂离子电池具有高效率,长寿命,大容量,无记忆效应,环境友好性而被广泛应用于新能源电动汽车上。不仅如此,锂离子电池还被广泛应用于手机、各种便携式信息处理终端等高科技产品中,然而锂离子电池的使用寿命和锂离子电池的使用、推广密切相关。荷电状态(soc)是锂离子电池的一个至关重要的指标,它表示当前状态下电池的剩余电量。高精度锂离子电池的soc估算,可避免电池过充电,过放电和过热,从而延长电池的使用寿命,但是锂离子电池的充放电过程是一个极其复杂的电化学反应过程,具有非线性和时变性且对温度和老化极度敏感。因此,锂离子电池的soc精确而又稳健地估算显得异常困难。

针对上述问题,目前对锂离子电池的soc估算有库仑计数法,开路电压法,卡尔曼滤波法,内阻法等。库仑计数法是一种原始的方法,具有简单、可靠的优点,但是该方法比较依赖初始的荷电状态,容易忽略充放电过程中电池内部的温度、内阻等因素的变化,存在初始误差和累积误差效应。开路电压法估算结果精确且易于操作,但是该方法必须要求电池停止工作几个小时甚至几十个小时,不易于在线估计soc。卡尔曼滤波法已广泛应用于soc的估算,但是由于充放电过程中温度的变化和电池系统的高度非线性,导致其估算结果不理想。内阻法由于电池内阻不易测量,导致无法建立内阻与soc之间的关系,所以没有普及应用。



技术实现要素:

本发明需要解决的技术问题是提供一种基于xgboost(extremegradientboosting)模型的锂离子电池荷电状态预测方法,既解决了预测过程中锂离子电池的非线性和时变性且对温度和老化极度敏感等问题,也解决了预测精度低等问题,相对于上述方法,xgboost在目标函数的每轮迭代中都加入了正则项,从而控制模型的复杂度,防止过拟合。xgboost对目标函数进行了二阶泰勒展开,可以支持自定义代价函数;xgboost对每个特征进行分块(block)并排序,使得在寻找最佳分割点时能够并行化计算,同时,通过设置合理的block的大小,充分利用了cpu缓存进行读取加速,数据读取的速度更快。

为解决上述技术问题,本发明所采用的技术方案是:一种基于xgboost的锂离子荷电状态预测方法,首先选取来自于nasa艾姆斯研究中心的锂离子电池放电数据,对其进行数据预处理,计算出真实的soc,并将数据集中的电压、电流、温度作为特征输入,来描述锂离子电池的放电过程,然后将数据集划分为训练数据集和测试数据集,对xgboost的参数进行设置,利用训练数据集对xgboost模型进行训练,直至输出最优参数,结束训练,最后利用该模型的最优参数对测试集数据进行预测,本发明通过xgboost对训练数据集进行训练,得到最优参数,利用训练好的xgboost模型对测试集数据进行预测,本发明有更高的预测精度,保证了soc预测的精确性和可靠性。具体技术内容如下。

基于xgboost模型的锂离子电池荷电状态估算,包括以下步骤:

步骤a,数据预处理:将锂离子电池放电的数据划分为训练数据集和测试数据集,得到训练数据集真实的soc,并将训练数据集数据集中的电压、电流、温度作为特征输入xgboost模型,来描述锂离子电池的放电过程;

步骤b,设置xgboost模型参数:设置xgboost模型的参数;

步骤c,训练xgboost模型:利用xgboost模型对训练数据集进行训练,获得训练数据集的预测soc;

步骤d,输出最优参数:判定训练数据集的预测soc与训练数据集真实的soc误差,若误差不是最小,则返回步骤b重新设置各项参数,再进行步骤c利用xgboost模型对训练数据集进行训练,重新拟合出训练数据集的预测soc;若误差最小,设置的xgboost模型参数为最优参数;

步骤e,测试xgboost模型:并将测试数据集中的电压、电流、温度作为特征输入xgboost模型,利用得到xgboost模型的最优参数对测试数据集进行预测,获得测试数据的预测soc。

进一步地,所述的锂离子电池放电数据采用nasa艾姆斯研究中心的稳态下锂离子电池的充放电数据,有b0005、b0006、b0007、b0018、b0029等5组。

进一步地,所述的训练数据集为1c放电倍率下的锂离子电池b0006数据集中第9组至第14组的放电数据集;所述的测试数据集为1c放电倍率下的锂离子电池b0006数据集中第15组的放电数据集。

进一步地,所述的训练数据集为2c放电倍率下的锂离子电池b0029数据集中第8组至第12组的放电数据集;所述的测试数据集为2c放电倍率下的锂离子电池b0029数据集中第13组的放电数据集。

进一步地,真实的soc通过以下方式获得:

其中,剩余容量为锂离子电池在1.5a恒定电流模式下达到4.2的电压后,在4.2恒定电压水平下继续充电至电流降至2a,在2a的恒定电流下放电至电压降到2.7v时的容量;

额定容量为锂离子电池在1.5a恒定电流模式下达到4.2的电压后,在4.2恒定电压水平下继续充电至电流降至2a时的容量。

进一步地,所述的电压、电流、温度,是锂离子电池稳态放电过程中真实的电压、电流、温度。

进一步地,设置xgboost模型的参数包括:

eta表示学习率;

max_depth表示模型中树的最大深度;

min_child_weight表示模型中最小叶子权重和;

seed表示随机种子数;

colsample_bytree表示每棵树随机采样的列数占比;

gamma表示惩罚项和叶子节点结合项;

max_leaf_nodes表示树上叶子节点数;

n_tree表示模型中树的数量。

进一步地,所述的利用xgboost模型获得预测的soc的具体步骤如下:

d1、建立树的模型

其中,是模型在第t轮的预测值;

d2、构建目标函数

其中,为损失函数,yi表示真实值,表示预测值。

正则项为:

其中,t表示叶子节点的个数,w表示叶子节点的分数,γ可以控制叶子节点的个数,γ可以控制叶子节点的分数;

d3、训练目标函数

将目标函数进行二阶泰勒展开:

其中,gi和hi被定义为:

将常数项移除,得到第t步的目标函数:

新的目标函数可以定义为:

其中,

可以计算出叶节点j的最优权重

最佳的目标函数解obj(*)

由于不可能枚举所有可能的树的结构q,改为使用贪婪算法迭代地将分支添加到树中,计算相应的增益:

至此,基于xgboost模型的锂离子电池荷电状态预测训练完毕。

由于采用上述方案,本发明取得的技术进步是:

1、本发明提出的基于xgboost的锂离子荷电状态预测方法,充分考虑到锂离子电池的锂离子电池的充放电过程是一个极其复杂的电化学反应过程,具有非线性和时变性且对温度和老化极度敏感,不易预测荷电状态且预测精度低等问题,将电压、电流、温度作为特征输入,来描述锂离子电池的放电过程,将soc作为输出,建立xgboost模型,解决了预测过程中锂离子电池的非线性和时变性且对温度和老化极度敏感等问题。同时,提高估算精度和鲁棒性;

2、本发明提出的基于xgboost的锂离子荷电状态预测方法,在目标函数的每轮迭代中都加入了正则项,从而控制模型的复杂度,防止过拟合。xgboost对目标函数进行了二阶泰勒展开,可以支持自定义代价函数;xgboost对每个特征进行分块(block)并排序,使得在寻找最佳分割点时能够并行化计算,同时,通过设置合理的block的大小,充分利用了cpu缓存进行读取加速,数据读取的速度更快。

附图说明

图1是本发明xgboost模型预测锂离子荷电状态的系统流程图;

图2是本发明基于xgboost的锂离子荷电状态预测方法的算法实施例1和实施例2的放电数据图;

图3是本发明基于xgboost的锂离子荷电状态预测方法的算法流程图。

具体实施方式

下面结合实施例对本发明做进一步详细的说明。

实施例1

如图1所示,基于xgboost模型的锂离子电池荷电状态估算,包括以下步骤。

步骤a,数据预处理:将nasa艾姆斯研究中心的稳态下锂离子电池放电数据划分为训练数据集和测试数据集,训练数据集为1c放电倍率下的锂离子电池b0006数据集中第9组至第14组的放电数据集,测试数据集为1c放电倍率下的锂离子电池b0006数据集中第15组的放电数据集;

得到训练数据集真实的soc:

其中,剩余容量为锂离子电池b0006数据集中第9组至第14组在1.5a恒定电流模式下达到4.2的电压后,在4.2恒定电压水平下继续充电至电流降至2a,在2a的恒定电流下放电至电压降到2.7v时的容量;额定容量为锂离子电池b0006数据集中第9组至第14组在1.5a恒定电流模式下达到4.2的电压后,在4.2恒定电压水平下继续充电至电流降至2a时的容量;

将测试数据集1c放电倍率下的锂离子电池b0006数据集中第9组至第14组的稳态放电过程中真实的电压、电流、温度作为特征输入xgboost模型,来描述锂离子电池的放电过程。

步骤b,设置xgboost模型参数:

eta表示学习率;

max_depth表示模型中树的最大深度;

min_child_weight表示模型中最小叶子权重和;

seed表示随机种子数;

colsample_bytree表示每棵树随机采样的列数占比;

gamma表示惩罚项和叶子节点结合项;

max_leaf_nodes表示树上叶子节点数;

n_tree表示模型中树的数量。

步骤c,训练xgboost模型:利用xgboost模型对训练数据集进行训练,获得训练数据集的预测soc;预测的soc的具体步骤如下:

d1、建立树的模型

其中,是模型在第t轮的预测值;

d2、构建目标函数

其中,为损失函数,yi表示真实值,表示预测值。

正则项为:

其中,t表示叶子节点的个数,w表示叶子节点的分数,γ可以控制叶子节点的个数,γ可以控制叶子节点的分数;

d3、训练目标函数

将目标函数进行二阶泰勒展开:

其中,gi和hi被定义为:

将常数项移除,得到第t步的目标函数:

新的目标函数可以定义为:

其中,

可以计算出叶节点j的最优权重

最佳的目标函数解obj(*)

由于不可能枚举所有可能的树的结构q,改为使用贪婪算法迭代地将分支添加到树中,计算相应的增益:

步骤d,输出最优参数:判定训练数据集的预测soc与训练数据集真实的soc误差,若误差不是最小,则返回步骤b重新设置各项参数,再进行步骤c利用xgboost模型对训练数据集进行训练,重新拟合出训练数据集的预测soc;若误差最小,设置的xgboost模型参数为最优参数。

步骤e,测试xgboost模型:将测试数据集1c放电倍率下的锂离子电池b0006数据集中第15组的稳态放电过程中真实的电压、电流、温度作为特征输入xgboost模型,利用步骤d得到xgboost模型的最优参数对测试数据集进行预测,获得测试数据的预测soc。

测试数据集得到的预测的soc的具体步骤如下:

d1、建立树的模型

其中,是模型在第t轮的预测值;

d2、构建目标函数

其中,为损失函数,yi表示真实值,表示预测值。

正则项为:

其中,t表示叶子节点的个数,w表示叶子节点的分数,γ可以控制叶子节点的个数,γ可以控制叶子节点的分数;

d3、训练目标函数

将目标函数进行二阶泰勒展开:

其中,gi和hi被定义为:

将常数项移除,得到第t步的目标函数:

新的目标函数可以定义为:

其中,

可以计算出叶节点j的最优权重

最佳的目标函数解obj(*)

由于不可能枚举所有可能的树的结构q,改为使用贪婪算法迭代地将分支添加到树中,计算相应的增益:

至此,基于xgboost模型的锂离子电池荷电状态预测训练完毕。

实施例2

如图1所示,基于xgboost模型的锂离子电池荷电状态估算,包括以下步骤。

步骤a,数据预处理:将nasa艾姆斯研究中心的稳态下锂离子电池放电数据划分为训练数据集和测试数据集,训练数据集为2c放电倍率下的锂离子电池b0029数据集中第8组至第12组的放电数据集;所述的测试数据集为2c放电倍率下的锂离子电池b0029数据集中第13组的放电数据集;

得到训练数据集真实的soc:

其中,剩余容量为锂离子电池2c放电倍率下的锂离子电池b0029数据集中第8组至第12组在1.5a恒定电流模式下达到4.2的电压后,在4.2恒定电压水平下继续充电至电流降至2a,在2a的恒定电流下放电至电压降到2.7v时的容量;额定容量为锂离子电池2c放电倍率下的锂离子电池b0029数据集中第8组至第12组在1.5a恒定电流模式下达到4.2的电压后,在4.2恒定电压水平下继续充电至电流降至2a时的容量;

将测试数据集2c放电倍率下的锂离子电池b0029数据集中第8组至第12组的稳态放电过程中真实的电压、电流、温度作为特征输入xgboost模型,来描述锂离子电池的放电过程。

步骤b,设置xgboost模型参数:

eta表示学习率;

max_depth表示模型中树的最大深度;

min_child_weight表示模型中最小叶子权重和;

seed表示随机种子数;

colsample_bytree表示每棵树随机采样的列数占比;

gamma表示惩罚项和叶子节点结合项;

max_leaf_nodes表示树上叶子节点数;

n_tree表示模型中树的数量。

步骤c,训练xgboost模型:利用xgboost模型对训练数据集进行训练,获得训练数据集的预测soc;预测的soc的具体步骤如下:

d1、建立树的模型

其中,是模型在第t轮的预测值;

d2、构建目标函数

其中,为损失函数,yi表示真实值,表示预测值。

正则项为:

其中,t表示叶子节点的个数,w表示叶子节点的分数,γ可以控制叶子节点的个数,γ可以控制叶子节点的分数;

d3、训练目标函数

将目标函数进行二阶泰勒展开:

其中,gi和hi被定义为:

将常数项移除,得到第t步的目标函数:

新的目标函数可以定义为:

其中,

可以计算出叶节点j的最优权重

最佳的目标函数解obj(*)

由于不可能枚举所有可能的树的结构q,改为使用贪婪算法迭代地将分支添加到树中,计算相应的增益:

步骤d,输出最优参数:判定训练数据集的预测soc与训练数据集真实的soc误差,若误差不是最小,则返回步骤b重新设置各项参数,再进行步骤c利用xgboost模型对训练数据集进行训练,重新拟合出训练数据集的预测soc;若误差最小,设置的xgboost模型参数为最优参数。

步骤e,测试xgboost模型:将测试数据集2c放电倍率下的锂离子电池b0029数据集中第13组的稳态放电过程中真实的电压、电流、温度作为特征输入xgboost模型,利用步骤d得到xgboost模型的最优参数对测试数据集进行预测,获得测试数据的预测soc。

测试数据集得到的预测的soc的具体步骤如下:

d1、建立树的模型

其中,是模型在第t轮的预测值;

d2、构建目标函数

其中,为损失函数,yi表示真实值,表示预测值。

正则项为:

其中,t表示叶子节点的个数,w表示叶子节点的分数,γ可以控制叶子节点的个数,γ可以控制叶子节点的分数;

d3、训练目标函数

将目标函数进行二阶泰勒展开:

其中,gi和hi被定义为:

将常数项移除,得到第t步的目标函数:

新的目标函数可以定义为:

其中,

可以计算出叶节点j的最优权重

最佳的目标函数解obj(*)

由于不可能枚举所有可能的树的结构q,改为使用贪婪算法迭代地将分支添加到树中,计算相应的增益:

至此,基于xgboost模型的锂离子电池荷电状态预测训练完毕。

实施例1和实施例2中的电压、电流、温度和真实的soc如图2所示;如图3所示,所述xgboost模型的输入量包括电压、电流、温度,利用训练好的xgboost模型对测试集数据进行预测输出量为预测的soc,本发明有更高的预测精度,保证了soc预测的精确性和可靠性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1