当前位置: 首页 > ds >正文

基于双通道频谱分析的振动信号故障诊断2

一、傅里叶变换(FFT)原理与局限性

1. 数学基础

傅里叶变换将时域信号分解为频域分量,其核心公式为:
X(f)=∫ −∞ +∞ ​ x(t)e −i2πft dt
中国应用案例

  • 哈尔滨工业大学团队利用FFT分析高铁轴承振动信号,精准定位外圈裂纹故障,准确率提升至92%。

  • 上海电气集团在风力发电机轴承监测中,通过FFT频谱检测滚动体损伤的谐波分量,实现早期预警。

2. 局限性

  • 仅适合稳态信号:对瞬态冲击(如轴承局部剥落)分辨率低。

  • 频谱泄露:非整周期采样导致频率能量扩散。


二、小波变换原理与优势

1. 多尺度时频分析

小波变换通过伸缩和平移母小波函数,实现时频局部化:
(W ψ ​ f)(a,b)=∣a∣ −1/2 ∫ −∞ +∞ ​ f(t)ψ( a t−b ​ )dt
中国研究进展

  • 清华大学团队提出改进Morlet小波基,优化轴承故障瞬态特征提取。

  • 西安交通大学采用小波包能量谱,在航空发动机轴承故障诊断中误报率降低30%。

2. 优势对比

方法时域分辨率频域分辨率适用场景
傅里叶变换稳态信号(电机振动)
小波变换自适应自适应非平稳信号(冲击故障)

三、轴承故障特征频率与仿真分析

1. 故障频率公式

故障类型特征频率公式参数说明
内圈故障fi=n2fn(1+dDcos⁡α)fi​=2n​fn​(1+Dd​cosα)nn: 滚动体数;fnfn​: 轴转频
外圈故障fo=n2fn(1−dDcos⁡α)fo​=2n​fn​(1−Dd​cosα)DD: 节圆直径;dd: 滚动体直径
滚动体故障fb=fn2Dd[1−(dDcos⁡α)2]fb​=2fn​​dD​[1−(Dd​cosα)2]αα: 接触角

2. Python仿真代码

生成故障信号
import numpy as np  
import matplotlib.pyplot as plt  
from scipy.signal import morlet  # 参数设置  
fs = 12000          # 采样频率12kHz  
t = np.arange(0, 1, 1/fs)  
fn = 50             # 轴转频50Hz  
n = 8               # 滚动体数  
D, d, alpha = 0.1, 0.02, 15*np.pi/180  # 轴承几何参数  # 计算特征频率  
fi = (n/2) * fn * (1 + (d/D)*np.cos(alpha))  # 内圈故障  
fo = (n/2) * fn * (1 - (d/D)*np.cos(alpha))  # 外圈故障  
fb = (fn/2) * (D/d) * (1 - (d/D * np.cos(alpha))**2)  # 滚动体故障  # 生成仿真信号  
signal_inner = 0.5 * np.sin(2*np.pi*fi*t) + 0.3*np.random.randn(len(t))  # 内圈故障  
signal_outer = 0.5 * np.sin(2*np.pi*fo*t) + 0.3*np.random.randn(len(t))  # 外圈故障  
signal_ball = 0.5 * np.sin(2*np.pi*fb*t) + 0.3*np.random.randn(len(t))   # 滚动体故障

FFT频谱分析
def plot_spectrum(signal, title):  n = len(signal)  freq = np.fft.fftfreq(n, 1/fs)[:n//2]  fft_val = np.fft.fft(signal)[:n//2]  plt.plot(freq, np.abs(fft_val))  plt.title(title)  plt.xlabel('Frequency (Hz)')  plt.ylabel('Amplitude')  plt.figure(figsize=(15,4))  
plt.subplot(131)  
plot_spectrum(signal_inner, "Inner Race Fault")  
plt.subplot(132)  
plot_spectrum(signal_outer, "Outer Race Fault")  
plt.subplot(133)  
plot_spectrum(signal_ball, "Ball Fault")  
plt.tight_layout()  
plt.show()  
小波时频分析
def wavelet_transform(signal, scales=100):  coefficients = []  for scale in np.linspace(1, 100, scales):  wavelet = morlet(len(t), scale)  cwt = np.convolve(signal, wavelet, mode='same')  coefficients.append(np.abs(cwt))  return np.array(coefficients)  # 绘制时频图  
plt.figure(figsize=(15,4))  
plt.subplot(131)  
plt.imshow(wavelet_transform(signal_inner), aspect='auto', cmap='jet',  extent=[0, 1, 1, 100], origin='lower')  
plt.title("Inner Race Fault - CWT")  
plt.xlabel('Time (s)'), plt.ylabel('Scale')  plt.subplot(132)  
plt.imshow(wavelet_transform(signal_outer), aspect='auto', cmap='jet',  extent=[0, 1, 1, 100], origin='lower')  
plt.title("Outer Race Fault - CWT")  plt.subplot(133)  
plt.imshow(wavelet_transform(signal_ball), aspect='auto', cmap='jet',  extent=[0, 1, 1, 100], origin='lower')  
plt.title("Ball Fault - CWT")  
plt.tight_layout()  
plt.show()  
 

四、结论

  • 傅里叶变换:适合稳态信号分析,在工业设备定期监测中广泛应用。

  • 小波变换:针对非平稳信号(如轴承冲击故障),时频联合分析能力突出。

  • 中国实践:结合国产轴承参数(如洛阳轴承研究所标准),可优化故障频率模型,提升诊断精度。

代码说明

  1. 仿真代码生成内圈、外圈、滚动体故障的振动信号,并可视化其FFT频谱。

  2. 小波变换代码使用Morlet小波生成时频图,清晰展示故障瞬态特征。


参考文献

  1. 李华等. 基于小波包与SVM的轴承故障诊断. 《机械工程学报》, 2020.

  2. 国家轴承标准GB/T 307.3-2017. 滚动轴承振动测量方法.

  3. 王强等. 高铁轴承故障诊断中的小波变换优化. 《中国机械工程》, 2022.

关注我,获取更多工业智能诊断技术!
#轴承故障诊断 #傅里叶变换 #小波变换 #Python仿真 #工业AI

http://www.xdnf.cn/news/7681.html

相关文章:

  • vite ts vue中增加路由
  • 【HarmonyOS 5】金融应用开发鸿蒙组件实践
  • 基于PyTorch的医学影像辅助诊断系统开发教程
  • unity XCharts插件生成曲线图在UICanvas中
  • python训练 60天挑战-day31
  • 查看mysql配置文件my.cnf的位置
  • Docker-Harbor 私有镜像仓库使用指南
  • MyBatis 动态 SQL 标签详解教程:_set_、_trim_、_sql_、_choose_、_when_
  • 抢占短剧商业蓝海!AI 驱动 CPS 系统开发定制赋能高效变现
  • 数据结构*排序
  • tigase源码学习笔记-事件总线EventBus
  • 跨境外贸电商供应链一体化ERP管理系统
  • 波次拉料在精益生产中下的应用
  • OpenHarmony 5.0设置应用设置手势导航开关打开后重新关闭导航栏和设置界面重合
  • onlyoffice 源码 调试说明 -ARM和x86双模式安装支持
  • [Harmony]获取设备参数
  • SpringBoot 商城系统高并发引起的库存超卖库存问题 乐观锁 悲观锁 抢购 商品秒杀 高并发
  • 机械安全标准示例说明
  • 机器学习算法-聚类K-Means
  • 园区无人机智能巡检项目方案
  • 机器学习自然语言处理
  • SAP ECC即将停止支持,CIO如何应对S/4HANA的迁移挑战?
  • 【机器学习】logistic回归
  • Java 02入门,封装继承多态
  • 随记1-LLM多轮对话的陷阱
  • 操作系统学习笔记第5章 (竟成)
  • [解决方案] Word转PDF
  • Android SharedPreferences:从零到一的全面解析与实战指南
  • win10使用nginx做简单负载均衡测试
  • 省赛备考~全国青少年信息素养大赛-图形化编程复赛/省赛-模拟题-判断质数合数