[0050] 以下结合对本发明作进一步的解释说明;
[0051] 如图1所示,考虑内阻的数据驱动算法估算锂电池SOC的方法,具体包括以下步骤:
[0052] 步骤一、数据采集
[0053] 分别在0℃、25℃和45℃温度下对Samsung INR 18650‑20R锂离子电池进行充放电试验,并记录试验过程中电池的电压、电流、温度以及内阻,采样间隔时间为1s。其中电流采用在美国环境保护署(EPC,United States Environmental Protection Agency)制定的标准工况下的放电电流;锂离子电池通过ITECH公司生产的IT8818B可编程电子负载放电;爱斯佩克Espec GMC‑71高低温试验箱可以得到电池的环境温度参数;使用HIOKI BT3562电池测试仪得到放电实验过程中的电压和内阻两组数据。试验过程为:首先对单节电池恒流2A充电至额定电压4.2V,接着恒压充电,直至电流下降到100mA。此时认为该电池处于满电状态。将满电电池放电至截止电压3.6V时结束试验,认为此时电池的剩余电量为0。
[0054] 步骤二、数据预处理
[0055] 构建一个监督学习神经网络,需要对数据进行预处理,创建标签值。将步骤一采集得到的数据,使用安时积分法计算t时刻电池的剩余电量SOC(t):
[0056]
[0057] 其中,SOC(t0)为初始电池电量,η表示库仑效率,Cn表示电池的额定容量,I(t)为电池的瞬时放电电流。通过对放电电流进行积分得到电池在t‑t0这段时间放出的电量,用初始荷电状态减去放出电量即为当前时刻电池的剩余电量。对步骤一采集到的数据进行归一化处理,将其缩放到[0,1]之间,以去除数据单位,便于对不同单位或量级的数据进行比较加权,提高网络训练速度。
[0058] 所述归一化处理的方法为:
[0059]
[0060] 其中,xi为待处理数据,xmin和xmax分别为待处理数据的最小值和最大值。
[0061] 最后将归一化处理后的数据划分为训练集和测试集,其中训练集和测试集的划分比例分别为70%和30%。
[0062] 步骤三、构建SOC估计模型
[0063] 搭建一个双向GRU网络,其中包括3个隐含层,每层由200个神经元构成,网络的学习率为0.01;
[0064] 所述的双向GRU网络,在t时刻,输入xt同时提供给两个方向相反的隐含层,输出yt,由这两个单向隐含层共同决定,前向GRU层具有输入序列中t时刻以及之前时刻的信息,而后向GRU层中具有输入序列中t时刻以及之后时刻的信息。双向GRU的隐层状态传播过程为:
[0065]
[0066]
[0067]
[0068] 其中 分别表示前向推算和后向推算的隐层状态; 分别表示输入在前向推算和后向推算的权重; 分别表示前一时刻隐含层状态在前向推算和后向推算的权重; 分别表示前向推算和后向推算的偏置;σ函数用于合并这两个输出。
[0069] 双向GRU网络的更新门zt、重置门rt、候选输出状态 以及GRU的输出ht的计算方法为:
[0070] zt=σ(Wz·[ht‑1,xt]+bz)
[0071] rt=σ(Wr·[ht‑1,xt]+br)
[0072]
[0073]
[0074] Wz和bz分别为重置门的权重矩阵和偏置;Wr和br分别为重置门的权重矩阵和偏置;Wh和bh分别为候选输出状态 的权重矩阵和偏置。
[0075] 步骤四、模型训练优化
[0076] 将向量x=[T,I,V,R]作为步骤四构建的双向GRU网络模型的输入,对模型进行训练,其中T=[T1,T2,…Tt,…Tn],I=[I1,I2,…It,…In],V=[V1,V2,…Vt,…Vn],R=[R1,R2,…Rt,…Rn];从模型的输出端获得电池的剩余容量SOC=[SOC1,SOC2,…SOCt,…SOCn]。其中Tt,It,Vt,Rt分别表示电池在t时刻的环境温度、放电电流、端电压和内阻;SOCt表示电池在t时刻电池的剩余电量。
[0077] 使用NAG算法对训练后的双向GRU网络模型参数进行优化;NAG算法的更新计算公式为:
[0078] m0=0
[0079]
[0080] θt+1=θt‑mt
[0081] 将双向GRU网络模型的双向结构看作两个具有GRU单元的、信息传递方向相反的隐含层,针对模型的双向传输结构,将NAG算法公式改写为:
[0082]
[0083]
[0084] 其中,θt’=θt‑γmt,θt为t时刻的网络参数;η代表网络的学习率; 代表损失函数的梯度矩阵;mt为动量项;γ为超参数,表示历史梯度的影响力;L(·)代表网络的损失函数:
[0085]
[0086] 使用NGA算法优化双向GRU网络模型参数的具体步骤为:
[0087] s4.1初始化GRU单元zt、rt、ht的权重和偏置:Wzh,0,Wzx,0,bz,0;Wrh,0,Wrx,0,br,0;Wh,0,Wx,0,bh,0;初始化输出层的权重和偏置:Wo,0,bo,0;
[0088] s4.2计算损失函数L(θ’);
[0089] s4.3计算损失函数对隐藏层权重和偏置的梯度:
[0090]
[0091] s4.4计算损失函数对输出层权重和偏置的梯度:
[0092]
[0093] s4.5计算隐藏层权重和偏置的动量项:
[0094]
[0095] s4.6计算输出层权重和偏置的动量项:
[0096]
[0097] s4.7更新隐藏层权重和偏置:
[0098]
[0099]
[0100]
[0101] s4.8更新输出层权重和偏置:
[0102]
[0103] 步骤五、模型性能测试
[0104] 使用测试集测试步骤四中训练完成的双向GRU网络模型的性能,评价指标选用RMSE(Root Mean Square Error)和MAE(Mean Absolute Error)。RMSE表示样本的分散程度,RMSE越大表示样本越分散。MAE表示估计值和真实值之间的误差的平均值,MAE越大表示估计的误差越大。
[0105]
[0106]
[0107] 其中,SOCt和SOCt’分别代表电池剩余电量的真实值和网络的预测值,真实值由电池充放电试验得到。
[0108] 下表为不同温度下的RMSE、MAE以及误差值:
[0109]
[0110] 图2中a、b、c分别为0℃、24℃、45℃条件下电池剩余电量真实值与网络输出的预测值及其误差。
[0111] 步骤六、保存模型,输出SOC
[0112] 判断模型的性能测试结果是否达到所设定的要求,若未达到要求,则调整参数重新训练。达到要求后,保存训练好的模型,用于电池SOC估计。
[0113] 上述具体实施方式用来解释说明本发明,并不以限制本发明,在本发明的精神和权利要求的保护范围内,对本发明作出的任何修改、等同替换和改进等,都落入本发明的保护范围。