一、分析结果

电池容量衰减曲线

(左边#5、6、7、18,右边#25、26、27、28的)

电池阻抗曲线

数据分析

电池循环老化过程中会出现容量衰减和阻抗上升的现象。是由于电化学反应活性逐渐下降曲线下降过程中突然回升再继续下降:容量增生和恢复现象。是由于在循环周期中的静置阶段时,电极附近的反应物有机会消散使得容量恢复;也可能是由于SEI层的修复改善了锂离子传输通道,或是电极材料的结构重组或改变孔隙使得锂离子嵌入和脱嵌效率短暂提高。

  

二、数据准备

NASA官方所有数据库链接:Prognostics Center of Excellence Data Set Repository - NASA

更多锂电池数据链接转:锂离子电池开源数据集-汇总-不断更新_锂电池数据集-CSDN博客

注:笔者使用的是第5条美国宇航局卓越预测中心PCoE提供的B0005等型号电池充放电数据

该数据集下载链接:https://data.nasa.gov/download/brfb-gzcv/application%2F.zip

数据说明:

电池数据被分为9组,组内3~4节电池,额定容量均为2Ah

充电过程:这是一组四节锂离子电池(型号B#5、6、7 和 18)在室温下运行得到 3 种不同的曲线(充电charge、放电discharge和阻抗impedance)运行。在1.5A的恒流(CC)模式下进行充电至4.2V,然后继续以恒压(CV)模式进行充电,直到充电电流降至20mA。放电过程:在2A的恒流(CC)水平下进行放电,直到电池5、6、7和18的电池电压分别降至2.7V、2.5V、2.2V和2.5V。阻抗测量:是通过电化学阻抗谱(EIS)从0.1Hz到5kHz的频率扫描进行的。重复的充电和放电循环会导致电池加速老化,而阻抗测量可以深入了解随着老化过程而变化的电池内部参数。当电池达到寿命终止(EOL)标准时,实验停止,即额定容量下降30%(从2Ahr下降到1.4Ahr)。考虑到EIS测量对容量的影响,#5、6、7做了278次EIS测量,#18只做了53次。

        该数据集可用于预测剩余电荷(对于给定的放电循环)和剩余使用寿命(RUL)

数据结构:

充电数据

放电数据

阻抗数据

三、Matlab程序

注:若要绘制不同数据曲线,只需将if最后一行语句的最后一个单词改为上述数据结构的名称即可

解压第一个文件夹,将B0005,B0006,B0007,B00018数据放在总文件夹目录下,可以像我这样进如Matlab,打开文件夹路径,空白处右键新建脚本,命名test程序如下,为了方便理解,不太熟悉软件的用以下代码即可,熟悉的可以试试Cell

clear clc

load('B0005.mat');

load('B0006.mat');

load('B0007.mat');

load('B0018.mat');

load('B0025.mat');

load('B0026.mat');

load('B0027.mat');

load('B0028.mat');

capacity_B5 = [];

capacity_B6 = [];

capacity_B7 = [];

capacity_B18 = [];

capacity_B25 = [];

capacity_B26 = [];

capacity_B27 = [];

capacity_B28 = [];

for i = 1:length(B0005.cycle)

if strcmp(B0005.cycle(i).type,'discharge')

capacity_B5 = [capacity_B5, B0005.cycle(i).data.Capacity];

end

end

for i = 1:length(B0006.cycle)

if strcmp(B0006.cycle(i).type,'discharge')

capacity_B6 = [capacity_B6, B0006.cycle(i).data.Capacity];

end

end

for i = 1:length(B0007.cycle)

if strcmp(B0007.cycle(i).type,'discharge')

capacity_B7 = [capacity_B7, B0007.cycle(i).data.Capacity];

end

end

for i = 1:length(B0018.cycle)

if strcmp(B0018.cycle(i).type,'discharge')

capacity_B18 = [capacity_B18, B0018.cycle(i).data.Capacity];

end

end

for i = 1:length(B0025.cycle)

if strcmp(B0025.cycle(i).type,'discharge')

capacity_B25 = [capacity_B25, B0025.cycle(i).data.Capacity];

end

end

for i = 1:length(B0026.cycle)

if strcmp(B0026.cycle(i).type,'discharge')

capacity_B26 = [capacity_B26, B0026.cycle(i).data.Capacity];

end

end

for i = 1:length(B0027.cycle)

if strcmp(B0027.cycle(i).type,'discharge')

capacity_B27 = [capacity_B27, B0027.cycle(i).data.Capacity];

end

end

for i = 1:length(B0028.cycle)

if strcmp(B0028.cycle(i).type,'discharge')

capacity_B28 = [capacity_B28, B0028.cycle(i).data.Capacity];

end

end

figure

plot(capacity_B5)

hold on

grid on

plot(capacity_B6,'color',[1,0.1,0.1])

plot(capacity_B7,'color',[1,0.5,0])

plot(capacity_B18,'k-')

legend('B0005','B0006','B0007','B0018')

xlabel('循环次数')

ylabel('容量')

figure

plot(capacity_B25)

hold on

plot(capacity_B26)

plot(capacity_B27)

plot(capacity_B28)

legend('B0025', 'B0026', 'B0027', 'B0028');

xlabel('循环次数')

ylabel('容量')

grid on;

部分内容参考:

锂电池数据集介绍:NASA_哔哩哔哩_bilibili

深度学习分析NASA电池数据(1 数据读取)_nasa电池数据集-CSDN博客

NASA电池数据集信息提取(ICA曲线) - 简书 (jianshu.com)

推荐阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: