数据集概览

来源:美国 凯斯西储大学(Case Western Reserve University, CWRU)机械工程学院 Bearing Data Center

用途:用于 滚动轴承故障诊断、振动分析、信号处理和机器学习建模

特点:高信噪比、结构清晰、公开可获取,学术论文中被广泛引用(上千篇文献)

实验平台

主电机:2 马力(≈1.5 kW)感应电机

测试轴承:

驱动端(Drive End, DE):SKF 6205

风扇端(Fan End, FE):SKF 6203

传感器:加速度传感器安装在驱动端和风扇端

采样频率:

12 kHz

48 kHz(高采样版本)

故障设置

状态类别:

正常(Normal)

内圈故障(Inner Race Fault)

外圈故障(Outer Race Fault)

滚动体故障(Ball Fault)

故障程度(缺陷直径):常见为 0.007″、0.014″、0.021″

工况负载:0 hp、1 hp、2 hp、3 hp、负载不同转速不同(约1797–1730 rpm)

数据文件

文件格式:.mat (MATLAB 数据文件)

常见变量:

DE:驱动端加速度信号(Drive End)

FE:风扇端加速度信号(Fan End)

BA:基座信号(Base)

RPM:转速信息

研究价值

被广泛用于:

振动信号时域、频域、小波变换分析

机器学习 / 深度学习故障分类(CNN、RNN、Transformer 等)

剩余寿命预测(PHM)

是机械故障诊断领域的标准基准数据集

获取方式

官方地址:
Case Western Reserve University Bearing Data Center Case Western Reserve University Bearing Data Center

在 GitHub 上有许多关于 CWRU(Case Western Reserve University)轴承数据集 的 Python 封装库,它们可以帮助你更轻松地加载、预处理及用于机器学习研究。以下是几个高质量、备受关注的项目推荐:

推荐 GitHub 项目

  1. srigas/CWRU_Bearing_NumPy
    将原始 .mat 文件转换为更易读写的 .npz 格式,清理了冗余与不一致的元数据,并只保留重要的时间序列数据,便于深度学习模型直接加载使用。

数据文件命名清晰(如 RPM_Fault_Diameter_End),只包含加速度信号(DE、FE、BA)。

适合偏好 NumPy 格式、专注训练数据处理的研究者或模型开发者。
GitHub

  1. ryanjung94/cwru_py3
    用 Python3 重写封装(原版为 Python2),提供一套简单 API:支持加载指定实验类型(如 “12DriveEndFault”、“48DriveEndFault”)、转速(如 “1797”)、信号切片长度。

自动从官方站点下载数据并缓存到本地,返回 X_train, y_train, X_test, y_test, labels, nclasses 等属性,适合快速集成 ML/深度学习流程。
GitHub

  1. JvdHoogen/multivariate_cwru
    支持多传感器数据提取与预处理,返回结构化数据,包括三维数组格式的训练和测试集(x_train, y_train, x_test, y_test),特别适合使用多个加速度通道(如DE、FE、BA)构建多变量模型。

参数灵活,包括实验类型、序列长度、训练集比例、随机种子、传感器数量、转速选择,以及是否包含正常状态等。
GitHub

  1. XiongMeijing/CWRU-1
    主要示例项目,用 1D CNN 进行轴承故障分类,提供数据预处理、训练脚本、Pytorch 模型及 Jupyter 示例。

效果优异,通常可达 99%以上分类精度,是学习深度学习应用流程的好资源。
GitHub

  1. SNBQT/Limited-Data-Rolling-Bearing-Fault-Diagnosis-with-Few-shot-Learning
    针对少样本学习场景,整合了 Few-shot 学习方法(包括 Siamese 网络、WDCNN 等),并提供自动下载 CWRU 数据集的脚本 cwru.py。

非常适合研究样本匮乏、无法获取大量故障数据时的容错诊断模型开发。
GitHub

Python 包管理安装(PyPI)
除了 GitHub,以下 Python 包支持 pip 安装,更便于快速引入使用:

py-cwru

提供直接加载 CWRU 数据为 NumPy 数组的接口,支持常见实验类型和转速参数。

第一次调用时可自动下载 .mat 文件(推荐在网络稳定时手动下载备用)。
PyPI

bearing-python

支持多个轴承数据集(CWRU、Paderborn、JNU 等),提供统一接口,适合做跨数据集研究与模型训练。
PyPI

项目 / 包 名称 主要特点 适合用途与用户
CWRU_Bearing_NumPy 清洗后的 .npz 格式数据 直接用 NumPy 训练、数据整洁型工作流程
cwru_py3 自动下载,提供 train/test 分割,Python3 支持 快速 ML/深度学习实验集成
multivariate_cwru 多传感器支持,结构化输出(3D 数组) 多变量模型、复杂信号融合任务
CWRU-1 1D CNN 模型示例 + 数据处理 快速学习深度学习诊断模型流程
Few-shot Learning Repo 少样本诊断方法 + 自动数据加载 少样本学习、模型对少故障数据的泛化能力研究
py-cwru (pip 包) pip 安装,NumPy 接口直接加载全数据 快速调试、原型快速开发
bearing-python (pip 包) 多源数据集支持,统一接口 泛化训练、多数据集研究

快速上手:尝试 pip install py-cwru 或 bearing-python;

流程化训练:选用 cwru_py3 或 multivariate_cwru;

深入学习:可参考 CWRU-1 的 CNN 架构;

研究少样本诊断场景:建议查看 Few-shot 学习项目。

实际数据处理流程(已下载数据)

import numpy as np
import pandas as pd
from scipy.io import loadmat

file_names = ['0_0.mat','7_1.mat','7_2.mat','7_3.mat','14_1.mat','14_2.mat','14_3.mat','21_1.mat','21_2.mat','21_3.mat']

for file in file_names:
    # 读取MAT文件
    data = loadmat(f'matfiles\\{file}')
    print(list(data.keys()))
# 采用驱动端数据
data_columns = ['X097_DE_time', 'X105_DE_time', 'X118_DE_time', 'X130_DE_time', 'X169_DE_time',
                'X185_DE_time','X197_DE_time','X209_DE_time','X222_DE_time','X234_DE_time']
columns_name = ['de_normal','de_7_inner','de_7_ball','de_7_outer','de_14_inner','de_14_ball','de_14_outer','de_21_inner','de_21_ball','de_21_outer']
data_12k_10c = pd.DataFrame()
for index in range(10):
    # 读取MAT文件
    data = loadmat(f'matfiles\\{file_names[index]}')
    dataList = data[data_columns[index]].reshape(-1)
    data_12k_10c[columns_name[index]] = dataList[:119808]  # 121048  min: 121265
print(data_12k_10c.shape)
data_12k_10c
data_12k_10c.set_index('de_normal',inplace=True)
data_12k_10c.to_csv('data_12k_10c.csv')
data_12k_10c.shape
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐