滚动轴承故障诊断、预测与分类综合数据集

news2024/11/14 21:39:28

独家整理 滚动轴承数据集 故障诊断,预测、分类 最全套数据集 可做对比实验 拍就发自动发货 1.CWRU西储大学轴承数据集 2.MFPT机械故障协会数据集 3.XJTU西安交通大学数据集 4.渥太华变速轴承轴承数据集 5.江南大学轴承数据集

滚动轴承故障诊断、预测与分类综合数据集

数据集描述

该数据集是一个全面的滚动轴承故障诊断、预测与分类的数据集合,旨在帮助研究人员和开发者训练和评估基于深度学习的故障检测、预测和分类模型。数据集涵盖了多个知名机构和大学的研究成果,包括CWRU西储大学轴承数据集、MFPT机械故障协会数据集、XJTU西安交通大学数据集、渥太华变速轴承数据集以及江南大学轴承数据集。通过高质量的数据和详细的标注信息,该数据集为开发高效且准确的故障检测和诊断系统提供了坚实的基础。

数据规模

  • 总数据量:根据各子数据集的具体内容而定
  • 数据类型
    • 时间序列数据(振动信号、声发射信号等)
    • 标签数据(故障类型、故障程度等)

数据特性

  • 多样化场景:覆盖了多种类型的滚动轴承在不同工况下的运行数据。
  • 高质量手工标注:每条数据都有详细的标签信息,支持直接用于训练故障检测和诊断模型。
  • 多类别支持:涵盖多种故障类型和不同程度的故障,丰富了数据集的多样性。
  • 无需预处理:数据集已经过处理,可以直接用于训练,无需额外的数据预处理步骤。

应用场景

  • 智能监控:自动检测滚动轴承的故障情况,辅助管理人员及时发现并采取应对措施,提高设备的安全性和可靠性。
  • 故障诊断:通过分析轴承的运行数据,进行详细的故障诊断,提前预警潜在的故障风险。
  • 科研分析:用于研究时间序列分析算法在特定工业应用场景中的表现,特别是在复杂背景和噪声条件下的鲁棒性。
  • 教育与培训:可用于安全相关的教育和培训项目,帮助学生和从业人员更好地识别和理解滚动轴承的故障模式。
  • 自动化管理:集成到工业系统的管理系统中,实现对设备状态的自动化监测和管理,预防设备故障。

数据集结构

典型的数据集目录结构如下:

1rolling_bearing_fault_dataset/
2├── CWRU/
3│   ├── data/
4│   │   ├── vibration_signal_001.mat
5│   │   └── ...
6│   ├── labels/
7│   │   ├── fault_labels_001.csv
8│   │   └── ...
9├── MFPT/
10│   ├── data/
11│   │   ├── vibration_signal_001.mat
12│   │   └── ...
13│   ├── labels/
14│   │   ├── fault_labels_001.csv
15│   │   └── ...
16├── XJTU/
17│   ├── data/
18│   │   ├── vibration_signal_001.mat
19│   │   └── ...
20│   ├── labels/
21│   │   ├── fault_labels_001.csv
22│   │   └── ...
23├── Ottawa/
24│   ├── data/
25│   │   ├── vibration_signal_001.mat
26│   │   └── ...
27│   ├── labels/
28│   │   ├── fault_labels_001.csv
29│   │   └── ...
30├── Jiangnan_University/
31│   ├── data/
32│   │   ├── vibration_signal_001.mat
33│   │   └── ...
34│   ├── labels/
35│   │   ├── fault_labels_001.csv
36│   │   └── ...
37├── README.txt  # 数据说明文件

各子数据集介绍

1. CWRU 西储大学轴承数据集
  • 数据来源:Case Western Reserve University (CWRU)
  • 数据内容:包含正常和故障状态下滚动轴承的振动信号。
  • 故障类型:内圈故障、外圈故障、滚动体故障。
  • 采样频率:12,000 Hz 或 48,000 Hz
  • 数据格式:MAT 文件
  • 特点:广泛应用于滚动轴承故障诊断研究,是业界标准数据集之一。
2. MFPT 机械故障协会数据集
  • 数据来源:Machinery Failure Prevention Technology (MFPT) Society
  • 数据内容:包含正常和故障状态下滚动轴承的振动信号。
  • 故障类型:内圈故障、外圈故障、滚动体故障。
  • 采样频率:20 kHz
  • 数据格式:MAT 文件
  • 特点:提供了丰富的实验数据,适用于多种故障诊断方法的验证。
3. XJTU 西安交通大学数据集
  • 数据来源:Xi'an Jiaotong University (XJTU)
  • 数据内容:包含正常和故障状态下滚动轴承的振动信号。
  • 故障类型:内圈故障、外圈故障、滚动体故障。
  • 采样频率:25.6 kHz
  • 数据格式:MAT 文件
  • 特点:数据集包含了长时间运行的轴承数据,适用于寿命预测和故障演化研究。
4. 渥太华变速轴承数据集
  • 数据来源:University of Ottawa
  • 数据内容:包含正常和故障状态下滚动轴承的振动信号,特别是在变速条件下。
  • 故障类型:内圈故障、外圈故障、滚动体故障。
  • 采样频率:20 kHz
  • 数据格式:MAT 文件
  • 特点:数据集涵盖了不同转速下的轴承数据,适用于研究转速变化对故障诊断的影响。
5. 江南大学轴承数据集
  • 数据来源:Jiangnan University
  • 数据内容:包含正常和故障状态下滚动轴承的振动信号。
  • 故障类型:内圈故障、外圈故障、滚动体故障。
  • 采样频率:10 kHz
  • 数据格式:MAT 文件
  • 特点:数据集提供了多种故障类型的详细数据,适用于多种故障诊断方法的验证和比较。

数据说明

  • 数据内容
    • 每个子目录下包含相应的轴承数据。
    • data/ 目录下存放的是原始传感器数据,通常为MAT文件格式。
    • labels/ 目录下存放的是对应的标签数据,通常为CSV文件格式。
  • 标签类型
    • 故障类型
    • 故障程度
    • 其他相关特征
  • 数据增广:数据集未做数据增广,用户可以根据需要自行进行数据增广。
  • 无需预处理:数据集已经过处理,可以直接用于训练,无需额外的数据预处理步骤。

示例代码

以下是一些常用脚本的示例代码,包括加载数据、数据可视化、特征提取、模型训练和评估。

脚本1: 加载数据
1import scipy.io as sio
2import pandas as pd
3import os
4
5def load_data(data_dir, label_dir):
6    data_files = [f for f in os.listdir(data_dir) if f.endswith('.mat')]
7    label_files = [f for f in os.listdir(label_dir) if f.endswith('.csv')]
8
9    data_list = []
10    label_list = []
11
12    for data_file, label_file in zip(data_files, label_files):
13        data_path = os.path.join(data_dir, data_file)
14        label_path = os.path.join(label_dir, label_file)
15
16        data = sio.loadmat(data_path)['vibration_signal']
17        labels = pd.read_csv(label_path)
18
19        data_list.append(data)
20        label_list.append(labels)
21
22    return data_list, label_list
23
24# 示例
25data_dir = 'path/to/CWRU/data'
26label_dir = 'path/to/CWRU/labels'
27data, labels = load_data(data_dir, label_dir)
脚本2: 数据可视化
1import matplotlib.pyplot as plt
2
3def visualize_data(data, labels):
4    fig, ax = plt.subplots(figsize=(10, 5))
5    ax.plot(data, label='Vibration Signal')
6    ax.set_xlabel('Time (samples)')
7    ax.set_ylabel('Vibration (m/s^2)')
8    ax.legend()
9    plt.show()
10
11# 示例
12visualize_data(data[0], labels[0])
脚本3: 特征提取
 

python

深色版本

1from scipy.signal import welch
2
3def extract_features(data, fs=12000):
4    f, Pxx_den = welch(data, fs, nperseg=1024)
5    features = {
6        'mean': data.mean(),
7        'std': data.std(),
8        'max': data.max(),
9        'min': data.min(),
10        'psd_mean': Pxx_den.mean(),
11        'psd_std': Pxx_den.std(),
12        'psd_max': Pxx_den.max(),
13        'psd_min': Pxx_den.min()
14    }
15    return features
16
17# 示例
18features = extract_features(data[0])
19print(features)
脚本4: 训练模型
1import tensorflow as tf
2from sklearn.model_selection import train_test_split
3from sklearn.preprocessing import StandardScaler
4
5def prepare_data(data, labels):
6    X = []
7    y = []
8
9    for d, l in zip(data, labels):
10        features = extract_features(d)
11        X.append(list(features.values()))
12        y.append(l['fault_type'][0])
13
14    X = np.array(X)
15    y = np.array(y)
16
17    scaler = StandardScaler()
18    X = scaler.fit_transform(X)
19
20    return X, y
21
22def build_model(input_shape, num_classes):
23    model = tf.keras.Sequential([
24        tf.keras.layers.Dense(64, activation='relu', input_shape=input_shape),
25        tf.keras.layers.Dropout(0.2),
26        tf.keras.layers.Dense(32, activation='relu'),
27        tf.keras.layers.Dropout(0.2),
28        tf.keras.layers.Dense(num_classes, activation='softmax')
29    ])
30
31    model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
32    return model
33
34def train_model(X, y):
35    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
36
37    num_classes = len(np.unique(y))
38    input_shape = (X_train.shape[1],)
39
40    model = build_model(input_shape, num_classes)
41    history = model.fit(X_train, y_train, epochs=50, batch_size=32, validation_split=0.2)
42
43    return model, history
44
45# 示例
46X, y = prepare_data(data, labels)
47model, history = train_model(X, y)
脚本5: 评估模型
 

python

深色版本

1import matplotlib.pyplot as plt
2
3def evaluate_model(model, X_test, y_test):
4    loss, accuracy = model.evaluate(X_test, y_test)
5    print(f'Test Loss: {loss:.4f}')
6    print(f'Test Accuracy: {accuracy:.4f}')
7
8    y_pred = model.predict(X_test)
9    y_pred_classes = np.argmax(y_pred, axis=1)
10
11    from sklearn.metrics import confusion_matrix, classification_report
12    cm = confusion_matrix(y_test, y_pred_classes)
13    cr = classification_report(y_test, y_pred_classes)
14
15    print('Confusion Matrix:')
16    print(cm)
17    print('Classification Report:')
18    print(cr)
19
20    return cm, cr
21
22# 示例
23X, y = prepare_data(data, labels)
24X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
25cm, cr = evaluate_model(model, X_test, y_test)

改进方向

如果您已经使用上述方法对该数据集进行了训练,并且认为还有改进空间,以下是一些可能的改进方向:

  1. 数据增强

    • 进一步增加数据增强策略,例如添加噪声、改变采样频率、插值等,以提高模型的泛化能力。
    • 使用混合增强技术,如MixUp、CutMix等,以增加数据多样性。
  2. 特征工程

    • 尝试更多的特征提取方法,例如小波变换、傅里叶变换、时频分析等,以提取更丰富的特征。
    • 结合领域知识,设计更具针对性的特征。
  3. 模型优化

    • 调整模型超参数,例如学习率、批量大小、优化器等,以找到最佳配置。
    • 尝试使用不同的网络架构,例如LSTM、GRU、CNN等,以提高模型性能。
    • 引入注意力机制,如SENet、CBAM等,以增强模型对关键区域的关注。
  4. 损失函数

    • 尝试使用不同的损失函数,例如Focal Loss、Dice Loss、IoU Loss等,以改善模型的收敛性能。
    • 结合多种损失函数,例如分类损失和回归损失的组合,以平衡不同类型的任务。
  5. 后处理

    • 使用非极大值抑制(NMS)的改进版本,如Soft-NMS、DIoU-NMS等,以提高检测结果的质量。
    • 引入边界框回归的改进方法,如GIoU、CIoU等,以提高定位精度。
  6. 迁移学习

    • 使用预训练模型进行微调,利用大规模数据集(如COCO、ImageNet)上的预训练权重,加快收敛速度并提高性能。
  7. 集成学习

    • 使用多个模型进行集成学习,通过投票或加权平均的方式提高最终的检测效果。

通过上述方法,可以进一步提升模型在滚动轴承故障检测任务上的性能。如果您需要具体的代码示例或更详细的指导,请告诉我,我可以为您提供更多的帮助。

 

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

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

相关文章

CORS解决浏览器跨域请求(同源策略)限制原理、后端springboot CROS跨域解决方案

文章目录 1 浏览器的同源策略1.1 什么是源(origin)?1.2 跨域请求?1.3 同源策略(跨域限制)是什么?1.3.1 同源策略的具体限制?1.3.2 浏览器CORS校验 2 CORS解决Ajax跨域问题2.1 CORS概…

周家庄智慧旅游小程序

项目概述 周家庄智慧旅游小程序将通过数字化手段提升游客的旅游体验,依托周家庄的自然与文化资源,打造智慧旅游新模式。该小程序将结合虚拟现实(VR)、增强现实(AR)和人工智能等技术,提供丰富的…

Java 中的垃圾回收综合讲解

Java 垃圾收集综合指南 Java 中的垃圾收集 (GC) 是 Java 虚拟机 (JVM) 通过删除应用程序中不再可访问的对象来自动回收内存的过程。这有助于防止内存泄漏并优化活动对象的可用内存,从而保持 Java 应用程序的性能和效率。 在 Java 中配置垃圾收集器 要在 Java 中…

Java语言程序设计基础篇_编程练习题***18.33 (游戏:骑士旅途的动画)

目录 ***18.33 (游戏:骑士旅途的动画) 习题思路 代码示例 动画演示 ***18.33 (游戏:骑士旅途的动画) 为骑士旅途的问题编写一个程序,该程序应该允许用户将骑士放到任何一个起始正方形,并单击Solve按钮,用动画展示骑士沿着路径的移动&…

2024年信息安全企业CRM选型与应用研究报告

数字化的生活给人们带来便利的同时也带来一定的信息安全隐患,如网络侵权、泄露用户隐私、黑客攻击等。在互联网高度发展的今天,信息安全与我们每个人、每个组织甚至每个国家都息息相关。 信息安全行业蓬勃发展。根据智研咨询数据,2021年&…

3DMAX乐高建筑生成器插件LegoBuilding使用方法详解

3DMAX乐高建筑生成器插件LegoBuilding使用教程 3DMAX乐高建筑生成器插件LegoBuilding,一键批量生成随机的乐高积木样式建筑群,可作为配景楼建模使用。可根据闭合样条线画定范围或地形(网格)对象表面范围和起伏批量生成随机形状的乐…

深入理解音视频pts,dts,time_base以及时间数学公式

引入 首先介绍一下基础名词 DTS(Decoding Time Stamp):即解码时间戳,这个时间戳的意义在于告诉播放器该在什么时候解码这一帧的数据。当数据没b帧时,dts pts,有兴趣可参阅我前面视频知识类文章。 PTS&a…

MyBatis - 动态SQL

前言 我们在某网站填写个人信息时,时常会遇到可以选填的空(即可填,可不填),由于之前讲过的Java中的SQL语句都是固定的,且我们不可能对所有情况都写出与之对应的插入语句(太过繁琐)&…

虚幻引擎的三种输入模式和将控件显示到屏幕上

首先要知道一个概念 , HUD 和 Input 都是由 PlayerController 来控制的 而虚幻的Input控制模式有三种 Set Input Mode Game Only (设置输入模式仅限游戏): 视角会跟着鼠标旋转 , 就是正常游戏的模式 , 这也是游戏默认输入模式 Set Input Mode UI Only (设置输入模式仅限UI): …

【操作系统强化】王道强化一轮笔记

第一章 计算机系统概述 考点1 操作系统的概念、特征和功能 1. 2. 考点2 内核态与用户态 1. 2.用户态和内核态之间的切换本质上就是应用程序和操作系统对CPU控制器的切换 考点3 中断和异常 1. 2. 考点4 系统调用 1. 2. 3.C 考点5 操作系统引导 1. 2. ①磁盘的物理格式化&…

APP自动化中 ADB Monkey用法

一、monkey是干什么的? 我们可以使用monkey做手机端性能的压力测试,稳定性测试 二、monkey在使用的时候,他的运行特性 monkey默认配置下执行,会在手机中随机的点击或者轻触我们的手机中应用,不过这个时候&#xff0…

在Windows系统上安装的 flatbuffers C++ 库

步骤一 下载:https://github.com/google/flatbuffers git clone gitgithub.com:google/flatbuffers.git步骤二 打开安装目录,然后再打开该目录下的powershell, 新建build目录 cd build cmake ..步骤三 进入步骤二生成的build目录里面,点击FlatBuffers.sln,打开vs2019 补充…

信息安全工程师(13)网络攻击一般过程

前言 网络攻击的一般过程是一个复杂且系统化的行为,其目标往往在于未经授权地访问、破坏或窃取目标系统的信息。 一、侦查与信息收集阶段 开放源情报收集:攻击者首先会通过搜索引擎、社交媒体、论坛等公开渠道获取目标的基本信息,如姓名、地址…

【经验分享】电商api接口——各类商品数据一键获取

目前,双十一促销活动正在火爆预热进行中。大促期间,消费者常常会做攻略以防被坑,而活动期间,品牌商家方也需要有所行动,避免一些不必要的损失。 大促期间,商家前前后后的改价活动往往比较频繁,…

超分之SPIN

Lightweight image super-resolution with superpixel token interaction[C]利用超像素token交互实现轻量级图像超分辨率Zhang A, Ren W, Liu Y, et al.Proceedings of the IEEE/CVF International Conference on Computer Vision. 2023: 12728-12737. 文章目录 摘要1. 引言2. …

【开源免费】基于SpringBoot+Vue.JS体育馆管理系统(JAVA毕业设计)

本文项目编号 T 048 ,文末自助获取源码 \color{red}{T048,文末自助获取源码} T048,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析5.4 用例设计 六、核…

元器件数据手册识别工具

数据手册识别方案,目前有多家厂商实现了这个功能,分别采用不同的技术路线实现。 基于AI方法:使用大量的数据手册进行训练,训练后的将模型文件提供给客户,用户在程序中加载模型文件和数据手册得到手册里面的数据结果。 …

Python中requests模块(爬虫)基本使用

Python的requests模块是一个非常流行的HTTP库,用于发送HTTP/1.1请求。 一、模块导入 1、requests模块的下载: 使用包管理器下载,在cmd窗口,或者在项目的虚拟环境目录下: pip3 install -i https://pypi.tuna.tsingh…

JUC高并发编程1:JUC概述

1 什么是JUC 1.1 JUC简介 JUC就是 java.util .concurrent 工具包的简称。这是一个处理线程的工具包,JDK 1.5 开始出现的。 1.2 进程与线程 进程(Process)和线程(Thread)是操作系统中用于实现多任务处理的两种基本概…

Linux 基本指令的学习

01. ls 指令 语法 : ls [ 选项 ][ 目录或文件 ] 功能 :对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。 常用选项: -a 列出目录下的所有文件,包括以 . 开头的隐含…