机械故障诊断02-基于HHT的轴承振动分析

最近在学习基于HHT的轴承振动分析,遇到了一些麻烦,还望各位看官多多指教。
原料:凯斯西储大学官网(https://csegroups.case.edu/bearingdatacenter/pages/download-data-file)的数据,采样频率12k
工具:python
过程:
1、对数据进行重采样(512Hz)及截断(截取前512个数据)
2、利用pyhht进行emd分解得到imf
3、计算各个imf与原信号的相关系数,然后加权重构得到信号data_fin
4、对data_fin进行希尔伯特变换及FFT(用的scipy里面的函数),此部分代码如下

Nn = 512
fs = 512
yh = hilbert(data_fin)
# yh = hilbert(imfs[0])
# amplitude_envelope = np.abs(analytic_signal)
instantaneous_phase = np.unwrap(np.angle(yh))
instantaneous_frequency = (np.diff(instantaneous_phase) /(2.0*np.pi)) * fs
f = fs*np.linspace(0,1,Nn)
YH = fft(yh, Nn)/Nn
# %figure
plt.subplot(221)
plt.scatter(t[1:],instantaneous_frequency,s=5)
# plt.xlim([0,200])
plt.grid()
plt.title('时频谱')
plt.xlabel('时间t (s)')
plt.ylabel('频率(Hz)')
plt.subplot(222)
plt.scatter(instantaneous_frequency, np.abs(yh[1:]), s=5)
# plt.xlim([0,200])
plt.grid()
plt.title('幅频谱')
plt.xlabel('频率f (Hz)')
plt.ylabel('|YH(f)|')
plt.subplot(223)
plt.plot(f, np.abs(YH))
# plt.xlim([0, 200])
plt.grid()
plt.title('幅频谱')
plt.xlabel('频率f (Hz)')
plt.ylabel('|YH(f)|')
plt.show()

得到的图像如下:
机械故障诊断02-基于HHT的轴承振动分析_第1张图片

图1.正常轴承

机械故障诊断02-基于HHT的轴承振动分析_第2张图片
图2.外圈故障
机械故障诊断02-基于HHT的轴承振动分析_第3张图片
图3.内圈故障
机械故障诊断02-基于HHT的轴承振动分析_第4张图片
图4.滚珠故障

以上几个图并不能直接观察到明显的故障频率,不知道是不是过程中哪一步弄错了,请各位不吝赐教!

你可能感兴趣的:(机械故障诊断02-基于HHT的轴承振动分析)