本期给大家介绍东华大学细纱机罗拉轴承数据,含人工植入故障、企业生产实际产生故障。
论文题目: A Multisource–Multitarget Domain Adaptation Method for Rolling Bearing Fault Diagnosis
机构: College of Mechanical Engineering, Donghua University, Shanghai 201620, China
实验台如图1所示,由细纱机小样机、数据采集仪、加速度传感器及电脑组成。该细纱机小样机专用于纺纱试验,即将粗纱经过牵伸、加捻、卷绕三个工艺流程后纺制成具有一定规格(捻向、捻系数、线密度)的细纱。细纱机小样机将纤维束进行牵伸并通过三罗拉双区加捻成细纱。罗拉是指在纺织机械中起喂给、牵伸、输出等作用的圆柱形回转零件。罗拉轴承是用于支撑细纱机上罗拉旋转的部件。纤维束的牵伸是通过罗拉之间的速度差来实现的。前区牵伸的牵伸倍数较大,是通过前罗拉与中罗拉之间较大的速比来实现的。后区牵伸是通过中罗拉与后罗拉之间较小的速比来实现的。牵伸罗拉机械波,又称条干不匀,是影响牵伸质量的主要因素之一,主要是由前罗拉造成的。加捻是通过前罗拉和主轴的共同作用实现的。因此,保持前罗拉的健康至关重要。一旦罗拉轴承发生故障,前罗拉的健康状态就会受到影响。因此,本文旨在对前罗拉的罗拉轴承进行故障诊断。加速度传感器通过磁力吸附在前罗拉轴承座上,如图2所示。振动信号由数据采集仪采集传输到笔记本电脑上。
图1 东华大学细纱机罗拉轴承数据集。(1)电脑,(2)数据采集仪,(3)被测轴承,(4)加速度传感器,(5)细纱机小样机,(6)传感器线缆
图2 加速度传感器安装图示。(1)被测轴承,(2)加速度传感器,(3)传感器线缆,(4)前罗拉,(5)中罗拉,(6)后罗拉
东华大学细纱机罗拉轴承数据集采用的罗拉轴承的型号为LZ2822。该数据集包含了从人工植入的故障轴承(图3)、某企业生产实际中产生的故障轴承(图4)和正常(NM)轴承(图5,编号#0)中采集的振动信号。人工植入的故障轴承包括了外圈裂纹(OC)故障轴承、滚针裂纹(RC)故障轴承、滚针缺失(RM)故障轴承、卡纱线(YS)故障轴承,分别编号#1~#12。OC故障和RC故障通过电火花加工得到,故障裂纹直径有0.2mm、0.4mm和0.6mm三种,分别代表不同的故障程度。滚针缺失故障通过从NM轴承上分别取下1根、2根、5根滚针进行模拟。卡纱线故障分别将纱线横着卡、竖着卡、横竖卡进行模拟。某企业生产实际中产生的故障轴承包括了RM故障轴承、YS故障轴承和滚针偏斜(RD)故障轴承,分别编号#1~#9。细纱机小样机的转速范围为30r/min~350r/min,该数据集共采集了8种不同转速下的振动信号,分别为30、57、100、163、200、269、300、350r/min。每个轴承以20.48kHz的采样频率采集一次数据,采样时间为60s或20s。由于保存的文件格式问题,采样时间为60s的文件中仅保存了51.2s的数据。
图5 正常轴承
链接中共有3个文件夹,一个包含了实验台及轴承相关图片,一个包含了人工植入故障轴承和正常轴承的状态监测信号(5个子文件夹对应不同健康状态的轴承),另一个包含了某企业生产实际中产生的故障轴承和正常轴承的状态监测信号(4个子文件夹对应不同健康状态的轴承)。数据文件的命名格式为"轴承编号_转速_采样时间.xls",是个xls类型文件,需要用python里pandas包进行读取。
# 导入需要用到的包并定义字体
import pandas as pd
import numpy as np
from scipy import fftpack
import matplotlib.pyplot as plt
import math
plt.rc('font',family='Times New Roman', size=30) #将全局字体设置为新罗马
# 定义计算故障特征频率的函数,在绘制包络谱图时调用。
def bearing_fault_freq_cal(n, d, D, alpha, fr):
'''
fun:计算滚动轴承的故障特征频率
n: 滚动体数量
d: 滚动体直径(mm)
D: 节圆直径(mm)
alpha: 接触角(°)
fr: 转速(r/min)
return C_bpfi, C_bpfo, C_bsf, C_ftf
内圈 外圈 滚动体 保持架
'''
C_bpfi = n*(1/2)*(1+d/D*math.cos(alpha))
C_bpfo = n*(1/2)*(1-(d/D)*math.cos(alpha))
C_bsf = D*(1/(2*d))*(1-np.square(d/D*math.cos(alpha)))
C_ftf = (1/2)*(1-(d/D)*math.cos(alpha))
return C_bpfi*fr/60, C_bpfo*fr/60, C_bsf*fr/60, C_ftf*fr/60
# 定义一个读取某个文件的函数,即读取时域信号。
def data_aquisition(file_path, fig_path, fs = 20480):
'''
fun: 读取时域数据并绘制时域图
file_path: 数据文件路径
fig_path: 时域图保存路径
fs: 采样频率(Hz)
return: 一维时域信号
'''
# 读取指定文件的数据
data = pd.read_csv(file_path, encoding='gbk', sep='\t')
# 读取某向数据
# data = data.iloc[0:,3] #周向
# data = data.iloc[0:,4] #轴向
data = data.iloc[0:,5] #径向
data = np.array(data)
# 绘制时域图
plt.figure(figsize=(16,5))
length = len(data)
t = np.linspace(0, length/fs, length)
plt.plot(t, data)
plt.xlabel('Time(s)')
plt.ylabel('Amptitude($m/s^2$)')
plt.title('Time domain')
plt.tight_layout()
plt.savefig(fig_path, dpi=300, bbox_inches = 'tight')
plt.show()
return data
# 定义一个绘制包络谱图的函数。
def envelope_spectrum(data, fig_path, fs = 20480, xlim=None, vline=None):
'''
fun: 绘制包络谱图
data: 时域数据
fig_path: 包络谱图保存路径
fs: 采样频率(Hz)
xlim: 截取频域数据的范围
vline: 垂直线的位置
'''
# 希尔伯特变换
h = fftpack.hilbert(data)
at = np.sqrt(data**2+h**2)
at = at - np.mean(at) # 去直流分量
xfp = np.fft.fftfreq(len(at), d=1 / fs) # 频率
xfp = xfp.flatten()
xfp = xfp[0:int(len(xfp)/2)]
xf = np.fft.fft(at)/len(at)
xf = 2 * abs(xf)
xf = xf[0:int(len(xf)/2)] # 幅值
# 绘制包络谱图
plt.figure(figsize=(16,5))
plt.plot(xfp, xf)
if vline:
plt.vlines(x=vline, ymin=np.min(xf), ymax=np.max(xf), linestyle='--', colors='r')
plt.xlabel('Frequency(Hz)')
plt.ylabel('Amptitude($m/s^2$)')
plt.title('Envelope spectrum')
plt.tight_layout()
if xlim: # 截取部分数据
plt.xlim(0, xlim)
plt.savefig(fig_path, dpi=300, bbox_inches = 'tight')
plt.show()
return xf
该函数需要的时域数据通过调用上面定义的data_aquisition函数读取。
fr = 350
path = r'D:\#3_350rpm_collect20s.xls'
C_bpfi, C_bpfo, C_bsf, C_ftf = bearing_fault_freq_cal(n = 17, d = 2, D = 22, alpha = 0, fr = fr)
fig_path1 = r'D:\人工植入故障#3_350rpm时域信号.png'
time_data = data_aquisition(path, fig_path1)
fig_path2 = r'D:\人工植入故障#3_350rpm包络谱.png'
envelope_data = envelope_spectrum(time_data, fig_path2, xlim=500, vline=C_bpfo)
fr为所读取的文件的转速,path为所要读取的文件的路径,fig_path1为时域图的保存路径,fig_path2为包络谱图的保存路径。根据自己所需替换即可。n = 17, d = 2, D = 22, alpha = 0为LZ2822轴承的相关参数。
2.2.1 RC(滚针裂纹)故障轴承
图6 RC故障轴承在30rpm下的包络谱
图8 RC故障轴承在100rpm下的包络谱
图9 RC故障轴承在173rpm下的包络谱
图10 RC故障轴承在200rpm下的包络谱
图11 RC故障轴承在269rpm下的包络谱
图12 RC故障轴承在300rpm下的包络谱
图13 RC故障轴承在350rpm下的包络谱
从包络谱数据中可知,RC(滚针裂纹)故障没有明显的滚动体的故障特征频率。
2.2.2 RM(滚针缺失)故障轴承
图14 RM故障轴承在30rpm下的包络谱
图16 RM故障轴承在100rpm下的包络谱
图17 RM故障轴承在173rpm下的包络谱
图18 RM故障轴承在200rpm下的包络谱
图19 RM故障轴承在269rpm下的包络谱
图20 RM故障轴承在300rpm下的包络谱
图21 RM故障轴承在350rpm下的包络谱
从包络谱数据中可知,RM(滚针缺失)故障没有明显的滚动体的故障特征频率。
2.2.3 YS(卡纱线)故障轴承
图22 YS故障轴承在30rpm下的包络谱
图24 YS故障轴承在100rpm下的包络谱
图25 YS故障轴承在173rpm下的包络谱
图26 YS故障轴承在200rpm下的包络谱
图27 YS故障轴承在269rpm下的包络谱
图28 YS故障轴承在300rpm下的包络谱
图29 YS故障轴承在350rpm下的包络谱
没有卡纱线相关的故障特征频率计算公式,无法直接通过包络谱分析。
2.2.4 OC(外圈裂纹)故障轴承
图30 OC故障轴承在30rpm下的包络谱
图32 OC故障轴承在100rpm下的包络谱
图33 OC故障轴承在173rpm下的包络谱
图34 OC故障轴承在200rpm下的包络谱
图35 OC故障轴承在269rpm下的包络谱
图36 OC故障轴承在300rpm下的包络谱
图37 OC故障轴承在350rpm下的包络谱
从OC(外圈裂纹)故障包络谱数据中可知,在转速达到173rpm及以上时,外圈故障特征频率清晰可见。
2.3.1 RD(滚针偏斜)故障轴承
图38 RD故障轴承在30rpm下的包络谱
图40 RD故障轴承在100rpm下的包络谱
图41 RD故障轴承在173rpm下的包络谱
图43 RD故障轴承在269rpm下的包络谱
图44 RD故障轴承在300rpm下的包络谱
图45 RD故障轴承在350rpm下的包络谱
从包络谱数据中可知,RD(滚针偏斜)故障没有明显的滚动体的故障特征频率。
2.3.2 RM(滚针缺失)故障轴承
图46 RM故障轴承在30rpm下的包络谱
图48 RM故障轴承在100rpm下的包络谱
图49 RM故障轴承在173rpm下的包络谱
图50 RM故障轴承在200rpm下的包络谱
图51 RM故障轴承在269rpm下的包络谱
图52 RM故障轴承在300rpm下的包络谱
图53 RM故障轴承在350rpm下的包络谱
从包络谱数据中可知,RM(滚针缺失)故障没有明显的滚动体的故障特征频率。
2.3.3 YS(卡纱线)故障轴承
图54 YS故障轴承在30rpm下的包络谱
图56 YS故障轴承在100rpm下的包络谱
图57 YS故障轴承在173rpm下的包络谱
图58 YS故障轴承在200rpm下的包络谱
图59 YS故障轴承在269rpm下的包络谱
图60 YS故障轴承在300rpm下的包络谱
图61 YS故障轴承在350rpm下的包络谱
没有卡纱线相关的故障特征频率计算公式,无法直接通过包络谱分析。
参考文献:
[1] Y. Chen and L. Xiao, "A Multisource–Multitarget Domain Adaptation Method for Rolling Bearing Fault Diagnosis," in IEEE Sensors Journal, vol. 24, no. 3, pp. 3406-3419, 1 Feb.1, 2024, doi: 10.1109/JSEN.2023.3342891.
[2] 李正平.细纱机罗拉轴承故障诊断方法研究[D].东华大学,2022.
[3] 陈宇航,李正平,肖雷.基于FFT-1D-CNN的细纱机罗拉轴承故障诊断[J].棉纺织技术,2023,51(01):16-21.
编辑:陈宇航
校核:李正平、陈凯歌、赵栓栓、曹希铭、赵学功、白亮、任超、海洋、Tina、陈莹洁、王金
该文资料搜集自网络,仅用作学术分享,不做商业用途,若侵权,后台联系小编进行删除