当前位置:   article > 正文

滚动轴承故障检测---基于希尔伯特变换解调(python实现)_希尔伯特解调方法

希尔伯特解调方法

一、基本原理

        请转向这里查看

二、方法实现

2.1 加载故障数据

        下面先以轴承外圈故障数据进行分析。原始数据为mat文件,是matlab文件,定义一个函数进行数据读取

  1. from scipy.io import loadmat
  2. import matplotlib.pyplot as plt
  3. import math
  4. import numpy as np
  5. import scipy
  6. plt.rcParams['font.sans-serif']=['SimHei']
  7. plt.rcParams['axes.unicode_minus']=False
  8. def data_acquision(file_path):
  9. """
  10. fun: 从cwru mat文件读取加速度数据
  11. param file_path: mat文件绝对路径
  12. return accl_data: 加速度数据,array类型
  13. """
  14. file = loadmat(file_path) # 加载mat数据
  15. file_keys = file.keys()
  16. for key in file_keys:
  17. if 'DE' in key:
  18. files = file[key].ravel()
  19. return files
  20. if __name__ == "__main__":
  21. # step1: 获取测试数据
  22. path = r'D:\360安全浏览器下载\轴承故障检测\数据源\西储大学\CWRU轴承数据\cwru_data\0HP\12k_Drive_End_OR007@6_0_130.mat'
  23. data = data_acquision(path) #获取原始数据
  24. plt.figure(figsize=(12,3))
  25. plt.title('原始数据')
  26. plt.plot(data)
  27. print(data)

2.2 包络谱分析

  1. # step2: 截取数据 符合实际检测要求
  2. xt = data[:2000]
  3. plt.figure(figsize=(12,3))
  4. plt.title('截取数据')
  5. plt.plot(xt)
  6. print(xt)
  7. # step3: 做希尔伯特变换
  8. ht = scipy.fftpack.hilbert(xt)
  9. plt.figure(figsize=(12,3))
  10. plt.title('希尔伯特变换')
  11. plt.plot(ht)
  12. print(ht)
  13. # step4: 获取包络信号
  14. # z(t)=x(t)+jh(t)=a(t)ejφt
  15. # 对z(t)取模,得到其幅值a(t). a(t)即为包络信号,也叫解析信号
  16. at = np.sqrt(ht**2+xt**2) # at = sqrt(xt^2 + ht^2) 实部
  17. plt.figure(figsize=(12,3))
  18. plt.title('包络信号')
  19. plt.plot(at)
  20. print(at)
  21. # step5: 获取包络谱
  22. sampling_rate = 12000
  23. at = at - np.mean(at) # 去直流分量
  24. am = np.fft.fft(at) # 对希尔伯特变换后的at做fft变换获得幅值
  25. am = np.abs(am) # 对幅值求绝对值(此时的绝对值很大)
  26. am = am/len(am)*2
  27. am = am[0: int(len(am)/2)]
  28. freq = np.fft.fftfreq(len(at), d=1 / sampling_rate) # 获取fft频率,此时包括正频率和负频率
  29. freq = freq[0:int(len(freq)/2)] # 获取正频率
  30. plt.figure(figsize=(12,3))
  31. plt.title('包络谱')
  32. plt.plot(freq, am)
  33. plt.xlim(0,500)

2.3 特征频率计算

        2.3.1 轴承故障的特征频率


                内圈故障特征频率:F_{BPFI} = \tfrac{nf_{r}}{2} (1+ \tfrac{d}{D} Cos\alpha )

                外圈故障特征频率:F_{BPFO} = \tfrac{nf_{r}}{2} (1- \tfrac{d}{D} Cos\alpha )

                滚动体故障特征频率:F_{BSF} = \tfrac{Df_{r}}{2d} (1- (\tfrac{d}{D} Cos\alpha) ^{2})

                保持架故障特涨频率:F_{FTF} = \tfrac{f_{r}}{2}(1-\tfrac{d}{D}Cos\alpha )

                其中, n: 滚动体个数;f_{r}轴转速;d: 滚珠(子)直径;D: 轴承节径

        2.3.2 轴承故障特征频率计算函数

  1. def bearing_fault_freq_cal(n, d, D, alpha, fr=None):
  2. '''
  3. 基本描述:
  4. 计算滚动轴承的故障特征频率
  5. 详细描述:
  6. 输入4个参数 n, fr, d, D, alpha
  7. return C_bpfi, C_bpfo, C_bsf, C_ftf, fr
  8. 内圈 外圈 滚针 保持架 转速
  9. Parameters
  10. ----------
  11. n: integer
  12. 滚珠数量
  13. fr: float(r/min)
  14. 转速
  15. d: float(mm)
  16. 滚珠直径
  17. D: float(mm)
  18. 轴承直径
  19. alpha: float(°)
  20. 接触角
  21. fr::float(r/min)
  22. 转速
  23. Returns
  24. -------
  25. BPFI: float(Hz)
  26. 内圈故障频率
  27. BPFO: float(Hz)
  28. 外圈故障频率
  29. BSF: float(Hz)
  30. 球体故障频率
  31. FTF: float(Hz)
  32. 保持架频率
  33. '''
  34. C_bpfi = n*(1/2)*(1+d/D*np.math.cos(alpha))
  35. C_bpfo = n*(1/2)*(1-(d/D)*np.math.cos(alpha))
  36. C_bsf = D*(1/(2*d))*(1-np.square(d/D*np.math.cos(alpha)))
  37. C_ftf = (1/2)*(1-(d/D)*np.math.cos(alpha))
  38. if fr!=None:
  39. return C_bpfi*fr/60, C_bpfo*fr/60, C_bsf*fr/60, C_ftf*fr/60, fr/60
  40. else:
  41. return C_bpfi, C_bpfo, C_bsf, C_ftf, fr

        2.3.3 轴承特征频率计算

        轴承型号为:6205-2RSL JME SKF 深沟球滚珠轴承
        d = 7.94mm, D = 39.04mm, \alpha = 0, n = 9

        下面计算CWRU在转速1797rpm时的故障特征频率

  1. # step 6
  2. bpfi, bpfo, bsf, ftf, fr = bearing_fault_freq_cal(n=9, alpha=0, d=7.94, D=39.04, fr=1797)
  3. print('内圈故障特征频率',bpfi)
  4. print('外圈故障特征频率',bpfo)
  5. print('滚动体故障特征频率',bsf)
  6. print('保持架故障特征频率',ftf)
  7. print('当前转速',fr)

2.4 理论与实际验证

  1. plt.vlines(x=bpfo, ymin=0, ymax=0.2, colors='r') # 一倍频
  2. plt.vlines(x=bpfo*2, ymin=0, ymax=0.2, colors='r') # 二倍频

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/781373
推荐阅读
相关标签
  

闽ICP备14008679号