Realistic fault detection of li-ion battery via dynamical deep learning

news2024/11/26 19:49:58

昇科能源、清华大学欧阳明高院士团队等的最新研究成果《动态深度学习实现锂离子电池异常检测》,用已经处理的整车充电段数据,分析车辆当前或近期是否存在故障。

思想步骤:

  1. 用正常电池的充电片段数据构造训练集,用如下的方式构造损失函数训练模型。
    损失函数构造:
    (1)计算mean_pred(由encoder输出)和里程之间的mse损失;
    (2)计算log_p(由decoder输出)和(“min_temp”, “max_single_volt”, “max_temp”, “min_single_volt”, “volt”)之间的SmoothL1Loss损失;
    (3)计算log_v和mean的kl损失。
    (4)最终的损失由(1)(2)(3)加权得出。
  2. 用1中的模型计算训练集和部分故障车充电数据(result)的误差(这里的误差指的是如上(2)所示)。
  3. 获得误差阈值,误差阈值的选取方式为:误差排序后((2)所示)的第千分之n的result数据所对应的误差值,n是使得result数据中故障车的比例最高时的取值。
  4. 按照真实故障标签和同一辆车前百分比误差均值计算auroc,按照误差阈值计算混淆矩阵、召回率等。
  5. 用剩余正常电池的充电片段数据和剩余故障电池的充电片段数据构建测试集
  6. 用3中所述误差阈值计算5中测试集的故障标签,计算混淆矩阵、召回率等,按照真实故障标签和同一辆车前百分比误差均值计算auroc

数据介绍

  1. 文章发布了从清华大学EV数据平台收集的三个大规模数据集,这些数据集包括来自347辆电动汽车的69万多个LiB充电片段,包括55辆异常车辆(LiB故障车辆)和292辆正常车辆(LiB无故障车辆),为相同品牌的车辆。
  2. 车级故障标签由驾驶员报告生成,工程师根据镀锂、续航里程过低、温度过高或电压异常变化(过低、电池间不一致等)的识别进行确认。这些标签是逐案创建的,不能用基于规则的数据表达式来描述。
  3. 电池故障时或故障附近的异常数据被删除。
  4. 发布的数据已经被清洗过,数值的大小不能再反映电池本身的特性,但数据变化的趋势仍然符合电池的规律,每个样本数据(对应于作者给的每个pkl文件)具有(128, 8)的时序数据。
  5. 字段名称:包含两部分,第一部分的列名为:volt, current, soc, max_single_volt, min_single_volt, max_temp, min_temp, timestamp;第二部分的列名为:fault label, car number, charge segment number and mileage
    timestamp:时间戳
    fault label:故障标签,多种故障类型在数据中统一标注为1
    样本数据案例:
(array([[  -1.54891411, -107.14166667,   46.97083333, ...,   29.        ,
          26.        ,    0.        ],
       [  -1.54891411, -107.1625    ,   47.16875   , ...,   29.        ,
          26.        ,   10.        ],
       [  -1.54891411, -107.18333333,   47.36666667, ...,   29.        ,
          26.        ,   20.        ],
       ...,
       [   1.59613311,  -90.29166667,   72.91666667, ...,   34.        ,
          31.        , 1250.        ],
       [   1.62806252,  -90.02083333,   73.08333333, ...,   34.        ,
          31.        , 1260.        ],
       [   1.65999193,  -89.6875    ,   73.25      , ...,   34.        ,
          31.        , 1270.        ]]), OrderedDict([('label', '00'), ('car', 168), ('charge_segment', '122'), ('mileage', 1728.670740234375)]))
        
        样本案例中取出第一条数据:
        [  -1.54891411 -107.14166667   46.97083333    3.76328125    3.74908854
      29.           26.            0.        ]

模型

model DynamicVAE(
  (encoder_rnn): GRU(7, 128, num_layers=2, batch_first=True, bidirectional=True)
  (decoder_rnn): GRU(2, 128, num_layers=2, batch_first=True, bidirectional=True)
  (hidden2mean): Linear(in_features=512, out_features=8, bias=True)
  (hidden2log_v): Linear(in_features=512, out_features=8, bias=True)
  (latent2hidden): Linear(in_features=8, out_features=512, bias=True)
  (outputs2embedding): Linear(in_features=256, out_features=5, bias=True)
  (mean2latent): Sequential(
    (0): Linear(in_features=8, out_features=64, bias=True)
    (1): ReLU()
    (2): Linear(in_features=64, out_features=1, bias=True)
  )

结果

battery_brand1五折交叉验证后的结果,感觉召回率不理想啊,忧愁。
0)

论文的疑问

  1. 最大的疑问就是召回率咋那么低,该咋调
  2. 训练集是由正常车数据组成的?给的源码我理解是这样的。
  3. 代码和文章不同之处-里程损失定义和模型定义:代码中里程损失是encoder输出结果和真实里程之间计算mse,文章中写的是decoder结果和真实里程之间计算mse;代码中隐藏层是128维,num_layers是2,文章中是32维3层。
    在这里插入图片描述
  4. 正常充电片段数据定义规则,故障片段数据定义规则
    如距故障发生时间点算起,向前推多久的数据算作故障数据?
    数据集中的每辆车只有一个确定的故障标签,在样本数据构造过程中,同一辆车不能同时取故障和正常两个时期的数据吗(文章未明确,数据分析得出)
    epochs超过3,loss就不行了?
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1208003.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SwiftUI - 界面布局知识点

前言 SwiftUI采用的布局方式是和Flutter一样是弹性布局,而不是iOS之前的坐标轴的方式布局,不用准确的设置出位置大小,只需要设置当前视图大小及视图间排布的方式。灵活性增强,布局操作简便,SwiftUI与Flutter布局原理一…

基于SSM的供电所档案管理系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

交换机基础知识之安全配置

交换机在网络基础设施中扮演着重要角色,它促进了设备之间数据包的流动。正因此,采取适当的安全措施来保护网络免受未经授权的访问和潜在攻击至关重要。本文将全面解读交换机基础安全配置知识,并提供实践方案,以保证安全的网络环境…

Istio学习笔记-体验istio

参考Istio 入门(三):体验 Istio、微服务部署、可观测性 - 痴者工良 - 博客园 (cnblogs.com) 在本章中,我们将会学习到如何部署一套微服务、如何使用 Istio 暴露服务到集群外,并且如何使用可观测性组件监测流量和系统指标。 本章教程示例使用…

Vue CLI脚手架安装、搭建、配置 和 CLI项目分析

目录 一、CLI快速入门 1. 官方介绍 : 2.安装Vue CLI : 3.搭建Vue CLI : 4.IDEA配置Vue CLI : 二、Vue CLI项目分析 1.结构分析 : 1.1 config 1.2 node_modules 1.3 src 1.4 static 2.流程分析 : 2.1 main.js 2.2 router/index.js 2.3 components/HelloWorld.vue 2.4 A…

Vue3源码reactive和readonly对象嵌套转换,及实现shallowReadonly

前言 官方文档中对reactive的描述: 响应式转换是“深层”的:它会影响到所有嵌套的属性。一个响应式对象也将深层地解包任何 ref 属性,同时保持响应性。 官方文档中对readonly的描述: 只读代理是深层的:对任何嵌套属性的访问都将是…

城市内涝监测仪的作用有哪些?

城市内涝近几年愈发频繁,它的出现不仅仅会导致财产损失,还可能危及公共安全。所以对路面积水进行实时监测刻不容缓。内涝积水监测仪的早期警报系统,有助于提高城市的紧急响应能力。政府远程监控城市路面水位,实现精准的系统化管理…

SPL机制与使用,组件化技术核心点打法

什么是SPI SPI ,全称为 Service Provider Interface,是一种服务发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类。 SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加…

MySQL索引下推:提升数据库性能的关键优化技术

文章目录 前言索引下推原理MySQL 基础架构传统查询过程ICP 查询过程 使用场景限制参数配置索引下推开启状态查询索引下推开启和关闭 一些问题只有联合索引才能使用索引下推?下面的查询为什么不走索引下推 参考 前言 大家好,我是 Lorin ,今天…

教对象写代码

之前对象工作中需要获取地图上的一些数据, 手工找寻复制 费时费力, 逢此契机, 准备使用代码尽可能简化机械重复操作, 力图一劳永逸. 首选简洁易入门的Python. 下文就是对流程的总结, 及简述每步的意义. 并不Hack,重在感受编程的用途和基本工具的使用. 以百度地图为例,需求如下:…

大模型时代的机器人研究

机器人研究的一个长期目标是开发能够在物理上不同的环境中执行无数任务的“多面手”机器人。对语言和视觉领域而言,大量的原始数据可以训练这些模型,而且有虚拟应用程序可用于应用这些模型。与上述两个领域不同,机器人技术由于被锚定在物理世…

hive更改表结构的时候报错

现象 FAILED: ParseException line 1:48 cannot recognize input near ADD COLUMN compete_company_id in alter table statement 23/11/14 17:59:27 ERROR org.apache.hadoop.hive.ql.Driver: FAILED: ParseException line 1:48 cannot recognize input near ADD COLUMN compe…

身份证照片怎么弄成200k以内?超级好用!

一些网站为了限制大的文件上传,提出了一些大小限制的要求,那么身份证如何弄成200k呢?下面介绍三种方法。 方法一: 使用嗨格式压缩大师 1、在电脑上打开安装好的软件,在首界面中点击“图片压缩”。 2、进入后上传需要…

【MongoDB】索引 – 通配符索引

一、准备工作 这里准备一些数据 db.books.drop();db.books.insert({_id: 1, name: "Java", alias: "java 入门", description: "入门图书" }); db.books.insert({_id: 2, name: "C", alias: "c", description: "C 入…

OpenCV颜色识别及应用

OpenCV是一个开源计算机视觉库,提供了丰富的图像处理和计算机视觉算法,其中包括颜色识别。本文首先介绍了OpenCV库,然后着重描述了颜色识别的基本原理和方法,包括颜色空间的转换、阈值处理、颜色检测等技术。接下来详细探讨了Open…

【ccf-csp题解】第11次csp认证-第三题-Json查询超详细讲解

此题思路来源于acwing ccfcsp认证辅导课 题目描述 思路分析 此题的难点在于对输入的内容进行解析,题目中说除了保证字符串内容不会有空格存在之外,其它的任意地方都可能出现空格,甚至在某些地方还会出现空行,这样的话&#xff0…

spring-cloud-alibaba-nacos

spring cloud nacos 安装和启动nacos # 解压nacos安装包 # tar -zvxf nacos-server-1.4.1.tar.gz# nacos默认是以集群的模式启动,此处先用单机模式 # cd /usr/local/mysoft/nacos/bin # sh startup.sh -m standalone# nacos 日志 # tail -f /usr/local/mysoft/na…

reactive和effect,依赖收集触发依赖

通过上一篇文章已经初始化项目,集成了ts和jest。本篇实现Vue3中响应式模块里的reactive方法。 前置知识要求 如果你熟练掌握Map, Set, Proxy, Reflect,可直接跳过这部分。 Map Map是一种用于存储键值对的集合,并且能够记住键的原始插入顺…

数据结构与算法【链表:一】Java实现

目录 链表 单向链表 哨兵链表 双向链表 环形链表 链表 链表是数据元素的线性集合,其每个元素都指向下一个元素,元素存储上并不连续。 随机访问性能 根据 index 查找,时间复杂度 O(n) 插入或删除性能 起始位置:O(1)结束位…

docker命令大全

1、查看Docker 容器占用的空间 docker ps -s2、查看所有容器 docker ps -a3、启动、关闭、重启一个已存在的容器 docker start <容器ID> docker stop <容器ID> docker restart <容器ID> 4、进入容器&#xff0c;退出终端的时候不会关闭container的ma…