齿轮故障诊断的实验数据集及python处理

本文首发于“52phm”公众号,未经授权,严禁转载!

1.摘要

该试验台在不同小齿轮条件下进行测试,并通过加速度计进行振动信号采集,加速度计采样率为10KHz、采样时长为10s,采样数据共3包,每一包数据对应着不同故障类型,分别是健康状态、齿轮断齿、齿轮磨损状态下的数据集。该数据集被授权于用于任何学术和研究目的。

2.试验台结构

试验台装置整体传动系统主要由电机作为驱动输入,通过皮带带动齿轮箱,而齿轮箱输出端通过皮带带动刹车系统。具体试验台装置、原理图及加速度计安装示意图如下图所示。

试验台设置

齿轮故障诊断的实验数据集及python处理_第1张图片

测试原理图

齿轮故障诊断的实验数据集及python处理_第2张图片

加速度计的方向及位置

齿轮故障诊断的实验数据集及python处理_第3张图片

3.数据集解读

  1. 数据集有3包数据,每包数据采样率为10kHz,采样时长为10s;

  2. 电机转速1420rpm/min,小齿轮15齿数、大齿轮110齿数;

  3. 啮合频率=(1420/60)*15=355Hz,在进行频谱分析中来看,实际啮合频率是365Hz左右;

  4. 数据与故障对应关系

  • 断齿 

Gearbox_a_chipped_tooth_full_load_03_December_2009_10kHz_pos1

  • 正常  

Gearbox_no_fault_full_load_01_December_2009_10kHz_pos1

  • 3个齿磨损  

Gearbox_three_worn_teeth_full_load_13_December_2009_10kHz_pos1

齿轮磨损和脱落

齿轮故障诊断的实验数据集及python处理_第4张图片

4.振动分析

这里使用python写了一个数据处理的程序,将mat数据保存到csv文件、以及给出振动原始波形、频谱图的计算方法。简单提供一个baseline,方便大家使用数据集和做一些分析学习。

数据处理

"""
@日期:2022-08-06
@作者:xiaozhi
@网站:http://www.52phm.cn
@数据来源:https://www.researchgate.net/publication/303792317_EXPERIMENTAL_DATASET_FOR_GEAR_FAULT_DIAGNOSIS
"""
import pandas as pd
from scipy import io
​
​
if __name__ == '__main__':
    df = pd.DataFrame()
    data1 = io.loadmat("./Gearbox_a_chipped_tooth_full_load_03_December_2009_10kHz_pos1.mat")
    data1_acc = data1['acc'].flatten() * 9.8605
    df['Gearbox_a_chipped_tooth_full_load_03_December_2009_10kHz_pos1'] = data1_acc
​
    data1 = io.loadmat("./Gearbox_three_worn_teeth_full_load_13_December_2009_10kHz_pos1.mat")
    data1_acc = data1['acc'].flatten() * 9.8605
    df['Gearbox_three_worn_teeth_full_load_13_December_2009_10kHz_pos1'] = data1_acc
​
    data1 = io.loadmat("./Gearbox_no_fault_full_load_01_December_2009_10kHz_pos1.mat")
    data1_acc = data1['acc'].flatten() * 9.8605
    df['Gearbox_no_fault_full_load_01_December_2009_10kHz_pos1'] = data1_acc
​
    df.to_csv("齿轮箱数据集转速1420主动轴15齿从动轮110齿啮合频率比实际355Hz有偏差在365Hz左右.csv", index=False)
​
​
​

振动分析

这里涉及到时域波形和频谱分析,本次baseline提供快速傅里叶变换的频谱分析,具体实现如下代码所示。

"""
@日期:2022-08-06
@作者:xiaozhi
@网站:http://www.52phm.cn
@数据来源:https://www.researchgate.net/publication/303792317_EXPERIMENTAL_DATASET_FOR_GEAR_FAULT_DIAGNOSIS
"""
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
​
​
def get_wav(data, fs, title):
    plt.clf()
    plt.title(title)
    t = np.arange(len(data)) * (1/fs)
    plt.plot(t, data)
    plt.xlabel("时间[s]")
    plt.ylabel("幅值[m/s^2]")
    plt.savefig(title + '_wav.png')
    # plt.show()
​
​
def get_spec(data, fs, title):
    plt.clf()
    plt.title(title)
    f = np.fft.rfftfreq(len(data), 1/fs)
    amp = abs(np.fft.rfft(data)) * 2 / len(data)
    plt.plot(f, amp)
    plt.xlabel("频率[Hz]")
    plt.ylabel("幅值[m/s^2]")
    plt.savefig(title + '_spec.png')
    plt.show()
​
​
if __name__ == '__main__':
    df = pd.read_csv("齿轮箱数据集转速1420主动轴15齿从动轮110齿啮合频率比实际355Hz有偏差在365Hz左右.csv")
    for col in df.columns.tolist():
        data1 = df[col].values
        # get_wav(data1, fs=10000, title=col)
        get_spec(data1, fs=10000, title=col)
​
​
​
  • 正常齿轮

齿轮故障诊断的实验数据集及python处理_第5张图片

齿轮故障诊断的实验数据集及python处理_第6张图片

  • 齿轮断齿

齿轮故障诊断的实验数据集及python处理_第7张图片

  • 齿轮磨损

齿轮故障诊断的实验数据集及python处理_第8张图片

5.数据和代码获取

关注公众号“52phm”,回复“齿轮箱”或“齿轮箱数据集”即可获取本文数据集和代码。

齿轮故障诊断的实验数据集及python处理_第9张图片

6.参考资料

https://www.researchgate.net/publication/303792317_EXPERIMENTAL_DATASET_FOR_GEAR_FAULT_DIAGNOSIS

52phm社区,http://www.52phm.cn,与工业互联网人一起成长,社区能够提供学习到真实工业场景技术知识以及落地案例,其中涵盖工业数据集、工业标准库、机理模型、设备知识、机器学习、 深度学习、特征工程、振动分析、工业视觉、边缘硬件及传感器等技术知识!

 齿轮故障诊断的实验数据集及python处理_第10张图片

 

关注公众号“52phm”,回复“齿轮箱”或“齿轮箱数据集”即可获取本文数据集和代码。

你可能感兴趣的:(python,齿轮箱,齿轮箱数据集,振动分析,齿轮故障诊断)