格拉姆角场GAF将时序数据转换为图像并应用于东南大学轴承故障诊断(Python代码,CNN模型)

 1.运行效果:格拉姆角场GAF将时序数据转换为图像并应用于东南大学轴承故障诊断(Python代码,CNN模型)_哔哩哔哩_bilibili

环境库

只要tensorflow版本大于等于2.4.0即可运行 

2.GAF的内容

GAF是一种用于时间序列数据可视化和特征提取的技术,通常用于时间序列分类和分析。

GAF的基本思想是将时序数据转换为角度矩阵,然后将这个矩阵可视化为图像。这种可视化方式有助于人们更好地理解和分析时间序列数据。GAF的一种常见用法是在机器学习任务中,将时间序列数据转换为图像特征,然后使用这些特征进行分类、回归或聚类等任务。

3.数据集

 1.东南大学采集数据平台

图片

 数据

该数据集包含2个子数据集,包括轴承数据和齿轮数据,这两个子数据集都是在传动系动力学模拟器(DDS)上获取的。(第一个文件夹是轴承数据,第二个文件夹是齿轮数据,本次是针对轴承数据进行故障诊断)

 

 本实验主要是利用轴承数据(第一个文件夹的数据)进行故障诊断,轴承具体数据

有两种工况,转速-负载配置设置为20-0和30-2。

每种工况下有:ball(滚动体故障)、health(健康)、inner(内圈故障)、outer(外圈故障)

​ 20-0工况文件夹

picture_CNN.py主要功能:首先利用1024的固定长度不重叠切割原始数据,生成一维样本,然后利用GAF将一维样本转变成二维图像的程序,然后利用CNN进行故障诊断。

images文件夹(每类300张,一共1200张照片)

 随意选取一张展示

运行结果(训练集与测试集为:4:1)

 

测试集混淆矩阵 

 20_0工况下跑3次实验,测试集平均准确率为97.89%

30-2工况文件夹 

picture_CNN.py主要功能:首先利用1024的固定长度不重叠切割原始数据,生成一维样本,然后利用GAF将一维样本转变成二维图像的程序,然后利用CNN进行故障诊断。

images文件夹(每类300张,一共1200张照片)

随意选取一张

 

运行结果(训练集与测试集为:4:1)

 

 

测试集混淆矩阵 

 30_2工况下跑3次实验,测试集平均准确率为97.58%

对项目感兴趣的,可以关注最后一行 


from scipy.io import loadmat
import matplotlib.pyplot as plt
from sklearn.preprocessing import MinMaxScaler
import numpy as np
import tensorflow as tf
import pickle
import numpy as np
import matplotlib.pyplot as plt
import scipy.signal as scisig
from mpl_toolkits.axes_grid1 import make_axes_locatable
from pyts.datasets import load_gunpoint
#代码和数据集的压缩包:https://mbd.pub/o/bread/ZJ6bmZlr

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

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

相关文章

LLM-TAP随笔——大语言模型基础【深度学习】【PyTorch】【LLM】

文章目录 2.大语言模型基础2.1、编码器和解码器架构2.2、注意力机制2.2.1、注意力机制(Attention)2.2.2、自注意力机制(Self-attention)2.2.3、多头自注意力(Multi-headed Self-attention) 2.3、transforme…

Leetcode 2871. Split Array Into Maximum Number of Subarrays

Leetcode 2871. Split Array Into Maximum Number of Subarrays 1. 解题思路2. 代码实现 题目链接:2871. Split Array Into Maximum Number of Subarrays 1. 解题思路 这一题实现上其实还是比较简单的,就是一个贪婪算法,主要就是思路上需要…

【未解决问题】opencv 交叉编译 ffmpeg选项始终为NO

opencv 打不开视频的原因 在交叉编译时候,发现在 pc 端能用 opencv 打开的视频,但是在 rv1126 上打不开。在网上查了很久,原因可能是 ffmpeg 造成的。 解决opencv源代码编译找不到ffmpeg-CSDN博客 交叉编译 ffmpeg 尝试了一天还是第二个博客…

Linux编程——经典链表list_head

1. 关于list_head struct list_head是Linux内核定义的双向链表,包含一个指向前驱节点和后继节点的指针的结构体。其定义如下: struct list_head {struct list_head *next, *prev; //双向链表,指向节点的指针 };1.1 链表的定义和初始化 有两…

XML-Based Configuration Beans for Ioc Container

XML-Based Configuration XML-based configuration is the traditional way of configuring beans in Spring. <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"h…

【C++】笔试训练(三)

目录 一、选择题二、编程题1、字符串中找出连续最长的数字串2、数组中出现次数超过一半的数字 一、选择题 1、以下程序的输出结果是&#xff08;&#xff09; #include <stdio.h> int main() {char a[10] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }, * p;int i;i 8;p a i;p…

【Java】方法重写

概述 子类中出现了和父类一模一样的方法 当子类需要父类的功能&#xff0c;而功能主体中&#xff0c;子类有自己独特的内容&#xff0c;就可以通过重写父类中的方法&#xff0c;这样即延续了父类的功能&#xff0c;又定义了自己的特有内容 Override 是一个注解&#xff0c;可以…

【JVM】双亲委派模型

双亲委派模型 1. 什么是双亲委派模型2. 双亲委派模型的优点 1. 什么是双亲委派模型 提到 类加载 机制&#xff0c;不得不提的一个概念就是“双亲委派模型”。 双亲委派模型指的就是 JVM 中的类加载器如何根据类的全限定名找到 .class 文件的过程 类加载器: JVM 里面专门提供…

【ESP32 + Edge Impulse平台】运行AI算法模拟多传感器数据融合实现异常检测

本篇博文主要以ESP32+MQ Sensor 气体传感器为例,通过连接 Edge Impulse 平台,实现数据的实时采集和训练,进而实现在嵌入式设备上部署 ML 机器学习。本教程介绍如何使用 Edge Impulse 和机器学习来实现ESP32 异常检测系统,系统使用一个机器学习模型,检测气体何时出现异常。…

OpenCV查找和绘制轮廓:findContours和drawContours

1 任务描述&#xff1a; 绘制图中粗线矩形的2个边界&#xff0c;并找到其边界的中心线 图1 原始图像 2.函数原型 findContours( InputOutputArray image, OutputArrayOfArrays contours, OutputArray hierarchy, int mode, …

移动端 [Android iOS] 压缩 ECDSA PublicKey

移动端 [Android & iOS] 压缩 ECDSA PublicKey AndroidiOS 使用 Android KeyStore 和 iOS 的 Secure Enclave 提供的安全能力使用 P-256 来对 API 请求进行签名&#xff0c;服务器端再进行验证。 但是发现不论是 iOS 还是安卓都没有提供一个便捷的方式从 iOS 的SecKeyCopyE…

0/1背包问题

例题HDU-2602 Problem Description Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like to collect varies of bones , such as dog’s , cow’s , also he went to the grave … The bone collector had a big bag wi…

2021-06-11 51蛋骗鸡用小数点作秒指示,分钟计时.(怎么用二个数码管做分的倒计时,DP亮灭来计秒)

缘由怎么用二个数码管做分的倒计时&#xff0c;DP亮灭来计秒,求思路 - 24小时必答区 #include "REG52.h" sbit K1 P1^5; sbit K2 P1^6; sbit K3 P1^7; sbit BUZ1P1^0; bit k0; unsigned char code SmZiFu[]{63,6,91,79,102,109,125,7,127,111,128};//0-9. unsign…

RPC协议

问题一&#xff1a;如何规定远程调用的语法&#xff1f;客户端如何告诉服务端&#xff0c;我是一个加法&#xff0c;而另一个是乘法。我是用字符串“add”传给你&#xff0c;还是传给你一个整数&#xff0c;比如 1 表示加法&#xff0c;2 表示乘法&#xff1f;服务端该如何告诉…

mysql json字段使用以及常用json函数,配合springBoot和mybatis-plus简化开发

Mysql JSON 类型分享 Mysql json字段了解&#xff1a; MySQL 中的 JSON 类型是一种用于存储和处理 JSON&#xff08;JavaScript Object Notation&#xff09;数据的数据类型。JSON 是一种轻量级的数据交换格式&#xff0c;常用于表示结构化的数据。MySQL 的 JSON 类型提供了以…

Fragment之间进行通信的最佳实现方式

前言 在Android应用程序中&#xff0c;片段&#xff08;Fragments&#xff09;是一种组件&#xff0c;用于构建灵活且可重用的用户界面。然而&#xff0c;当在应用程序中使用多个片段时&#xff0c;它们之间的通信变得非常重要。本文将介绍在Android应用程序中实现片段之间和片…

Polygon Miden:扩展以太坊功能集的ZK-optimized rollup

1. 引言 Polygon Miden定位为zkVM&#xff0c;定于2023年Q4上公开测试网。 zk、zkVM、zkEVM及其未来中指出&#xff0c;当前主要有3种类型的zkVM&#xff0c;括号内为其相应的指令集&#xff1a; mainstream&#xff08;WASM, RISC-V&#xff09;EVM&#xff08;EVM bytecod…

Java:正则表达式的命名捕获组

命名捕获组格式 (?<year>.*)-(?<month>.*)-(?<date>.*)完整示例 package com.example.demo;import java.util.regex.Matcher; import java.util.regex.Pattern;public class RegexTests {public static void main(String[] args) {String text "2…

3.css的各种选择器

元素选择器 body中的形式 <span class"cls" id"time">2023年03月02日 21:50</span> <span class"cls">央视网</span>head中的形式 <style>h1 {color: #4D4F53;}/* 元素选择器 */span {color: red;} }</styl…

Kubernetes 学习总结(38)—— Kubernetes 与云原生的联系

一、什么是云原生&#xff1f; 伴随着云计算的浪潮&#xff0c;云原生概念也应运而生&#xff0c;而且火得一塌糊涂&#xff0c;大家经常说云原生&#xff0c;却很少有人告诉你到底什么是云原生&#xff0c;云原生可以理解为“云”“原生”&#xff0c;Cloud 可以理解为应用程…