基于麻雀搜索算法优化SVR的锂电池寿命预测研究(一) 您所在的位置:网站首页 vr指标最优参数研究 基于麻雀搜索算法优化SVR的锂电池寿命预测研究(一)

基于麻雀搜索算法优化SVR的锂电池寿命预测研究(一)

2023-06-10 12:57| 来源: 网络整理| 查看: 265

目 录

目录

前言

研究介绍

NASA数据集

特征提取(1)

1.容量退化趋势曲线

结尾

前言

本研究是个人的毕设作业,主要是研究锂电池的剩余使用寿命的预测。当时在查找资料时走了不少的弯路,且没多少相关代码可以参考,所以留下一些笔记作为总结,希望对大家有一些启发作用。

研究介绍

锂电池的具有体积小、能量密度高和容量大的特点,被广泛应用于航天航空、新能源汽车等领域。而锂电池的安全性和寿命临近的风险仍然需密切关注,需要对锂电池的运行状态进行管理。锂电池管理系统的剩余寿命预测是确保其安全稳定工作的核心方法。本论文旨在实现对电池剩余寿命的精确预测,从而提高锂电池在使用过程中的安全性和可靠性。

对于锂电池剩余使用寿命预测的研究,选用NASA预测中心的锂电池数据作为数据集,从中提取能作为锂电池性能衰退特征的健康因子。为了使预测模型更适合实际应用场景,采用锂电池的容量数据替代剩余使用寿命数据作为预测模型的输出数据。针对数据的非线性特征和小样本规模问题,构建了支持向量回归(SVR)模型来预测锂电池的剩余使用寿命。为了有效提高锂电池剩余使用寿命的精确性,同时考虑到支持向量回归内核参数选择较为困难,提出麻雀搜索算法(SSA)优化支持向量回归的方法,使用麻雀搜索算法优化SVR参数得到SSA-SVR模型。

利用NASA的原始数据集进行验证分析,SSA-SVR模型能实现比较精确的锂电池的剩余使用寿命预测,与SVR模型相比,其平均绝对误差(MSE)和均方误差(MAE)都有较大的降低。通过多次实验结果证明,SSA-SVR模型的长期预测能力更强,能实现更精确、稳定的预测。、

NASA数据集

使用的锂离子电池数据来源于美国国家航空航天局卓越预测中心(NASA)数据库中的数据 Battery Data Set。 Battery Data Set 被分为六个部分共 9 组数据,每组数据包含 3 块或者 4 块锂电 池。数据类型主要包括充电、放电和阻抗谱测量这三大类。本文根据电池退化特性,对原始数据进行分析,为锂电池剩余寿命的预测做准备。

锂离子电池性能衰退的数据集是 NASA PCoE 的第一批数据集,局部数据如下表。充放电老化测试采用标称容量为 2 Ah 的 18650 锂离子电池。数据集中包含 4 块电池的数据:B0005(B5)、B0006(B6)、B0007(B7)和 B0018(B18)。在相同的室温(24℃)环 境下,以 1.5A 电流进行恒流充电,直到电池电压达到 4.2V,随后转为恒压模式继续对电池充电,直 至充电电流下降至 20mA 以下。放电测试在 2A 恒流模式下进行,直至 B5,B6,B7 和 B18 的电压分 别降至 2.7V,2.5V,2.2V 和 2.5V。

电池型号

初始容量

循环次数

放电截止

电压

充电电流

实验温度

B0005

1.86Ah

168

2.7V

1.5A

24℃

B0006

2.04Ah

168

2.5V

B0007

1.90Ah

168

2.2V

B0018

1.87Ah

132

2.5V

数据集的下载地址如下:https://pan.baidu.com/s/1VCCe9-xg5YnvQDnfXxWjbw  提取码:kar8

特征提取(1)

说明:锂离子电池会随着充放电循环次数的增加而性能逐渐衰退,由于锂电池在使用过程中会受到内外部因素作用,导致容量衰减曲线呈现非线性特征。为了精确预估其(剩余使用寿命)RUL,有必要研究电池的工作原理和退化机理,总结电池容量减少过程中的规律,并从电池衰减过程中提取关键健康因子进行分析,为后续实验中预测模型的构建打下基础。

1.容量退化趋势曲线

为了更好地预测锂电池未来的剩余寿命,我们将分析电池的退化数据并提取初始数据,以获得与电池健康因子有关的信息。具体来说,我们将利用Person相关系数法和数据挖掘技术来分析这些锂电池的退化数据,并使用适当的模型来预测电池的寿命。

通过分析锂电池退化数据,可以获得有关电池容量衰减和放电电压等信息,这些信息有助于研究电池寿命退化的机理,并评估电池的健康状况和可靠性。

原始数据集中每种型号的电池有616组数据,包含放电、充电、阻抗三个方面实验,而放电实验中存在每次循环中容量衰退的数值。锂电池的寿命衰老普遍来讲,与容量退化趋势相关。故研究中在MATLAB中采用 if 语句定位discharge字段,通过遍历方法提取全循环次数中的容量数据,将其作为研究锂电池的RUL的相关值。

 如上图所示,纵轴为电池容量,横轴为放电循环次数。电池容量会因循环次数的增长而递减,并且电池容量与放电次数之间呈现非线性关联。这种现象是由于容量再生所造成的,导致电池容量在降低过程中并非持续平稳地减少。

 提取电池容量代码如下:

%% 清空环境 clear;%清工作区 clc;%清命令 format compact;%压缩空格 tic;%开始计时 %% 5号电池 load('B0005.mat') m1=616; %有616个数据 n1=168; %有168个discharge放电数据 [~,index] = sortrows({B0005.cycle.type}.'); B0005.cycle = B0005.cycle(index); clear index %以上3行为将type排序 A=zeros(168,1); %A矩阵为168行1列的零矩阵 j=1; for i=171:338 A(j,1)=B0005.cycle(i).data.Capacity; i=i+1; j=j+1; end %% 6号电池 load('B0006.mat') m2=616; n2=168; [~,index] = sortrows({B0006.cycle.type}.'); B0006.cycle = B0006.cycle(index); clear index B=zeros(168,1); j=1; for i=171:338 B(j,1)=B0006.cycle(i).data.Capacity; i=i+1; j=j+1; end %% 7号电池 load('B0007.mat') m3=616; n3=168; [~,index] = sortrows({B0007.cycle.type}.'); B0007.cycle = B0007.cycle(index); clear index C=zeros(168,1); j=1; for i=171:338 C(j,1)=B0007.cycle(i).data.Capacity; i=i+1; j=j+1; end %% 18号电池 load('B0018.mat') m4=319; n4=132; [~,index] = sortrows({B0018.cycle.type}.'); B0018.cycle = B0018.cycle(index); clear index D=zeros(132,1); j=1; for i=135:266 D(j,1)=B0018.cycle(i).data.Capacity; i=i+1; j=j+1; end %% 绘图 figure; plot(A) hold on plot(B) plot(C) plot(D) legend('5号电池','6号电池','7号电池','18号电池'); title('NASA电池容量衰减','FontSize',13); xlabel('放电循环次数','FontSize',12); ylabel('电池容量','FontSize',12); grid on; toc;

结尾

以上就是今天边想边打的内容,本文仅仅简单介绍了开始的特征数据处理,如果后续有朋友需要继续填坑吧。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有