一、CWRU数据集介绍
凯斯西储大学轴承实验台如图1所示。实验台由电机、扭矩传感器和测力机组成。驱动端使用SKF6205型号轴承,并采用电火花加工技术,在轴承的内圈、外圈表面和滚动体上分别设置直径为0.007、0.014和0.021英寸的单点故障。
CWRU官网数据下载链接:
下载数据文件|凯斯工程学院 --- Download a Data File | Case School of Engineering
图1 凯斯西储大学轴承实验台
12k/48k表示采样率;Ball/Inner Race/Outer Race表示故障位置;7/14/21/28表示电火花加工模拟的故障直径;0/1/2/3表示电机负载的马力。
DE - 驱动端加速度计数据
FE - 风扇端加速度计数据
BA - 基座加速度计数据
time - 时间序列数据
RPM - rpm during testing 转每分钟
0.007英寸=7 mils =0.177 8 mm
0.014英寸=14 mils =0.355 6 mm
0.021英寸=21 mils =0.533 4 mm
0.028英寸=28 mils =1.016 mm
正常基线数据
电机负载(马力) Motor Load(HP) | 近似电机转速(rpm)Approx.Motor Speed(rpm) | 正常基线数据 Normal Baseline Data |
0 | 1797 | Normal_0 |
1 | 1772 | Normal_1 |
2 | 1750 | Normal_2 |
3 | 1730 | Normal_3 |
12k驱动端轴承故障数据
故障直径 | 电机负载(马力) | 近似电机转速(rpm) | 内圈(Inner Race) | 滚珠(Ball) | 外圈(Outer Race) 相对于负载区的位置 负载区以6:00为中心 | ||
6:00 | 3:00 | 12:00 | |||||
0.007 | 0 | 1797 | IR007_0 | B007_0 | OR007_6_0 | OR007_3_0 | OR007_12_0 |
1 | 1772 | IR007_1 | B007_1 | OR007_6_1 | OR007_3_1 | OR007_12_1 | |
2 | 1750 | IR007_2 | B007_2 | OR007_6_2 | OR007_3_2 | OR007_12_2 | |
3 | 1730 | IR007_3 | B007_3 | OR007_6_3 | OR007_3_3 | OR007_12_3 | |
0.014 | 0 | 1797 | IR0014_0 | B0014_0 | OR0014_6_0 | ||
1 | 1772 | IR0014_1 | B0014_1 | OR0014_6_1 | |||
2 | 1750 | IR0014_2 | B0014_2 | OR0014_6_2 | |||
3 | 1730 | IR0014_3 | B0014_3 | OR0014_6_3 | |||
0.021 | 0 | 1797 | IR021_0 | B021_0 | OR021_6_0 | OR021_3_0 | OR021_12_0 |
1 | 1772 | IR021_1 | B021_1 | OR021_6_1 | OR021_3_1 | OR021_12_1 | |
2 | 1750 | IR021_2 | B021_2 | OR021_6_2 | OR021_3_2 | OR021_12_2 | |
3 | 1730 | IR021_3 | B021_3 | OR021_6_3 | OR021_3_3 | OR021_12_3 | |
0.028 | 0 | 1797 | IR028_0 | B028_0 | OR028_6_0 | ||
1 | 1772 | IR028_1 | B028_1 | OR028_6_1 | |||
2 | 1750 | IR028_2 | B028_2 | OR028_6_2 | |||
3 | 1730 | IR028_3 | B028_3 | OR028_6_3 |
二、CWRU数据集可视化
取0hp工况下每个mat文件的前2048个数据点绘制CWRU数据信号示意图
import os
import numpy as np
import scipy.io
import matplotlib.pyplot as plt
# 文件名和列名
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']
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']
# 采样率和数据长度
sampling_rate = 12000 # 采样率为12000Hz
num_samples = 2048 # 取前2048个数据点
# 创建文件夹,如果不存在
output_dir = 'CWRU信号示意图'
if not os.path.exists(output_dir):
os.makedirs(output_dir)
# 设置字体为 Times New Roman 并加粗
plt.rcParams['font.family'] = 'Times New Roman' # 设置字体为 Times New Roman
plt.rcParams['font.weight'] = 'bold' # 设置字体加粗
plt.rcParams['axes.unicode_minus'] = False # 防止负号显示异常
plt.rcParams['axes.labelsize'] = 12 # 设置坐标轴标签的字体大小
plt.rcParams['axes.titlesize'] = 12 # 设置标题字体大小
plt.rcParams['axes.labelweight'] = 'bold' # 设置坐标轴标签字体加粗
plt.rcParams['axes.titleweight'] = 'bold' # 设置标题字体加粗
# 绘制信号时域图
plt.figure(figsize=(12, 10)) # 设置画布大小
for i, file_name in enumerate(file_names):
# 加载.mat文件
mat_data = scipy.io.loadmat(file_name)
# 获取对应的信号数据
signal_data = mat_data[data_columns[i]].flatten() # 转换为一维数组,防止数据为二维
# 取前2048个数据点
signal_data = signal_data[:num_samples]
# 创建时间轴
time = np.arange(num_samples) / sampling_rate # 时间轴以秒为单位
# 绘制信号时域图
plt.subplot(5, 2, i + 1) # 将图表分成5行2列的网格,选择第i+1个位置
plt.plot(time, signal_data, color='#2632cd') # 设置信号的颜色为 #2632cd
plt.title(columns_name[i], fontsize=12) # 设置标题并加粗字体
plt.xlabel('Time (s)', fontsize=12) # 设置横坐标标签并加粗字体
plt.ylabel('Amplitude', fontsize=12) # 设置纵坐标标签并加粗字体
# 调整布局
plt.tight_layout()
# 保存为 .png 格式(DPI 为 600)
plt.savefig(os.path.join(output_dir, 'CWRU_Time_domain_signals.png'), dpi=600)
# 保存为 .tif 格式(DPI 为 300)
plt.savefig(os.path.join(output_dir, 'CWRU_Time_domain_signals.tif'), dpi=300)
# 保存为 .svg 格式
plt.savefig(os.path.join(output_dir, 'CWRU_Time_domain_signals.svg'))
# 保存为 .pdf 格式
plt.savefig(os.path.join(output_dir, 'CWRU_Time_domain_signals.pdf'))
# 显示图形(如果需要查看)
plt.show() # 如果你希望查看图形,可以添加这个行