数据集官网
本文不做数据集的基本描述,只说明可能遇到的疑惑
关于数据集的具体解读参考链接:https://www.cnblogs.com/gshang/p/10712809.html
Normal Baseline Data(12k)
12k Drive End Bearing Fault Data
48k Drive End Bearing Fault Data
Fan-End Bearing Fault Data(12k)
12k Drive End Bearing Fault Data是驱动端轴承故障数据,它包含如下的数据,
X105_DE_time:表示的是驱动端轴承故障数据的情况下,驱动端的传感器测得的数据。
数据读取代码可以看如下两篇文章。
https://zhuanlan.zhihu.com/p/448901398
https://zhuanlan.zhihu.com/p/448210993
def envelope_spectrum1(data1, fs):
'''
fun: 绘制包络谱图
param data: 输入数据,1维array
param fs: 采样频率
param xlim: 图片横坐标xlim,default = None
param vline: 图片垂直线,default = None
'''
# ----去直流分量----#
data = np.array(data1)
data = data - np.mean(data)
# ----做希尔伯特变换----#
xt = data
ht = fftpack.hilbert(xt)
at = np.sqrt(xt ** 2 + ht ** 2) # 获得解析信号at = sqrt(xt^2 + ht^2)
am = np.fft.fft(at) # 对解析信号at做fft变换获得幅值
am = np.abs(am) # 对幅值求绝对值(此时的绝对值很大)
am = am / len(am) * 2
am = am[0: int(len(am) / 2)] # 取正频率幅值
freq = np.fft.fftfreq(len(at), d=1 / fs) # 获取fft频率,此时包括正频率和负频率
freq = freq[0:int(len(freq) / 2)] # 获取正频率
am[0] = 0
return freq, am
if __name__ == '__main__':
upperurl = "F:\\tempture\\信号分析-全部\\CRWU\\"
class_all1, mapdata_all1, rotate_all = extract_path_drive()
(x, y) = load_data(upperurl, class_all1)
freq, am = envelope_spectrum1(x[0][:12000], 12000)
plt.figure()
plt.plot(freq[:100], am[:100])
plt.show()
envelope_spectrum1(x[0][:12000], 12000)的第二个参数是采样频率。
x[0]是负载为0,驱动端的数据。
电机在负荷0下的转速为1797r/min,转频为1797/60,约为30Hz,符合下图所观测到的结果。
设置采样频率为48k,即envelope_spectrum1(x[0][:12000], 48000),可获得下图。
设置采样点的个数为10000 ,即envelope_spectrum1(x[0][:10000], 12000),可获得下图。
Normal Baseline Data里面的数据的采样频率是12k。
每个.mat文件下,都包含在该故障下,或驱动端或风扇端或基座采集到的数据。