• 深度学习分析NASA电池数据(1 数据读取)


    1.背景

    Intelligent Systems Division | NASA

    Randomized Battery Usage Data Set: PCoE Datasets

     

    随机(Random Walk,RW)充放电循环的组成:

    1、从{-4.5A,-3.75A,-3A,-2.25A,-1.5A,-0.75A,1.5A,2.25A,3A,3.75A,4.5A}中随机选择一个充电或放电电流。负电流表示充电,正电流表示放电;

    2、应用所选电流充放电5分钟或达到截止电压(3.2V/4.2V);

    3、每个充放电步骤后,有<1秒的休息间隔,用于设定新的充放电电流。

    每重复1500次步骤2、3,进行一次特性测试循环,标记老化状态。

    充放电循环设定:

    1、采用0.04A小电流放电标定OCV;

    2、每1500个RW步骤后,采用标准充放电循环标定电池容量。标准充放电循环先以2A恒流充电至4.2V,再恒压至充电电流小于0.01A。静置,2A放电至3.2V,静置;

    3、每3000个RW循环后,对充满电的电池进行脉冲放电,标记电池动态特性。每段脉冲由10分钟1A负载,20分钟空载组成;

    4、每3000个RW循环后,对电池进行脉冲充电,标记电池动态特性。每段脉冲由10分钟1A负载,20分钟空载组成;

    链接:Intelligent Systems Division | NASA

    本文对室温随机游走充放电数据集的描述进行了python的读取

    数据下载地址

    Battery_Uniform_Distribution_Charge_Discharge_DataSet_2Post
    百度网盘下载链接:https://pan.baidu.com/s/15jloKXS3f_OMYiALwitENg
    提取码:de1d

    2.数据读取与分析

      下载的数据有两个版本,Matlab版本和R语言版,下载的数据文件自带了python和R语言分析处理的程序。自带的m文件,MatlabSamplePlots.m为matlab版的读取例程。本文使用python对数据进行了一个读取和初步分析。

    1. import matplotlib.pyplot as plt
    2. import scipy.io as scio
    3. RW9 = 'mats/RW9.mat' # 需要读取的mat文件路径
    4. matData = scio.loadmat(RW9)
    5. # 注意,读取出来的data是字典格式,可以通过函数type(data)查看。
    6. print(type(matData))
    7. print(list(matData.keys()))
    8. print("\n\n")

    对读取到的类型的返回:

    1. <class 'dict'>
    2. ['__header__', '__version__', '__globals__', 'data']

    有效数据存放在data字段,但是在data中还嵌套了一个step,step又是一个多维数组,需要使用连续三个[0]才能获取实际数据。

    数据共有8个字段,官网文件有一个说明:

     对low current discharge at 0.04A 的电压和电流数据进行一个获取并用matplotlib进行一个绘制,代码和结果如下:

    1. data = matData['data']
    2. datacC = data['step'][0][0][0]
    3. for i in range(0,len(datacC)):
    4. print(datacC[i][0][0])
    5. if(datacC[i][0][0]=='low current discharge at 0.04A'):
    6. print(datacC[i][0][0])
    7. print(datacC[i][3][0])
    8. print(datacC[i][4][0])
    9. plt.plot(datacC[i][3][0]/3600,datacC[i][4][0], c='g')
    10. plt.show()
    11. plt.plot(datacC[i][3][0]/3600, datacC[i][5][0], c='r')
    12. plt.show()
    13. break

     

     

  • 相关阅读:
    C++项目-猜数字游戏
    JWT开发详解
    Django ORM 多表操作
    OC和Swift的区别,发送消息和执行方法的区别
    中职网络安全技能大赛SSH弱口令渗透测试解析
    Java之反射获取和赋值字段
    双冠王!华为云领跑政务市场
    CSS怎么选择除了第一个子元素外的其余同级子元素
    FH8626v100之串口烧录
    解决Redis分布式锁宕机出现不可靠问题-zookeeper分布式锁
  • 原文地址:https://blog.csdn.net/leeyunj/article/details/127104147