第4章 信号处理基础:时域与频域分析在故障诊断中的应用
各位工程师朋友,大家好。这一章我们聊聊信号处理。说实话,很多搞设备维护的兄弟一听到“信号处理”就头大,觉得那是搞算法的人的事。但我在现场摸爬滚打这么多年,越来越觉得——不懂信号处理,你连设备在“喊救命”都听不懂。
信号处理说白了就两件事:时域分析和频域分析。一个看波形长什么样,一个看波形里藏着什么频率成分。两者结合,故障诊断的准确率能提升一大截。
核心观点:时域告诉你“设备出问题了”,频域告诉你“问题出在哪”。
4.1 时域分析——看波形,抓异常
时域分析,就是直接看信号随时间变化的波形。你想想看,一个正常运转的轴承,它的振动波形应该是平稳的、有规律的。一旦出现故障,波形就会“变脸”。
均值(Mean)——反映信号的直流分量或趋势。我习惯用均值来判断传感器有没有偏置漂移。有一次在现场,一个加速度传感器测出来的均值从0.02g慢慢飘到了0.15g,我就知道传感器该换了。
实战技巧:均值对早期故障不敏感,但用来做传感器自检非常靠谱。我建议每次采集数据前先算一下均值,超出±0.1g范围就要警惕。
峰值(Peak)——信号的最大绝对值。这个指标对冲击类故障特别敏感。比如齿轮断齿,正常时峰值在5g左右,断齿瞬间能冲到20g以上。但要注意,峰值容易受噪声干扰,单次峰值高不一定是故障。
峭度(Kurtosis)——这个指标有意思。它衡量信号分布的“尖锐程度”。正常设备的振动信号接近正态分布,峭度值在3左右。一旦出现冲击故障,峭度值会飙升到5、6甚至更高。
注意:峭度对早期故障非常敏感,但也是个“双刃剑”。我曾经遇到过一台设备,峭度值从3.2跳到了8.5,我以为是轴承坏了,结果拆开一看——是传感器没拧紧。所以峭度要结合其他指标一起看,别被它骗了。
4.2 频域分析——把信号“拆开”看
时域分析能告诉你“出事了”,但很难告诉你“哪里出事了”。频域分析就是干这个的——把复杂的波形拆解成不同频率的成分。
FFT(快速傅里叶变换)——这是频域分析的核心工具。说白了,就是把时域信号转换到频域,让你看到信号里包含哪些频率成分,每个成分的能量有多大。
# Python示例:对振动信号做FFT分析
import numpy as np
import matplotlib.pyplot as plt
# 假设采集了1秒的振动数据,采样率1024Hz
fs = 1024 # 采样率
t = np.arange(0, 1, 1/fs)
# 模拟一个正常轴承信号(50Hz转频 + 噪声)
signal_normal = 0.5 * np.sin(2 * np.pi * 50 * t) + 0.1 * np.random.randn(len(t))
# 模拟一个故障轴承信号(出现120Hz的故障频率)
signal_fault = 0.5 * np.sin(2 * np.pi * 50 * t) + \
0.3 * np.sin(2 * np.pi * 120 * t) + \
0.1 * np.random.randn(len(t))
# FFT计算
fft_normal = np.fft.fft(signal_normal)
fft_fault = np.fft.fft(signal_fault)
freqs = np.fft.fftfreq(len(t), 1/fs)
# 取正频率部分
half = len(freqs) // 2
freqs = freqs[:half]
amp_normal = np.abs(fft_normal[:half]) * 2 / len(t)
amp_fault = np.abs(fft_fault[:half]) * 2 / len(t)
print("正常信号主要频率成分:", freqs[np.argsort(amp_normal)[-3:]])
print("故障信号主要频率成分:", freqs[np.argsort(amp_fault)[-3:]])
频谱图(Spectrum)——把FFT结果画出来,横轴是频率,纵轴是幅值。我每次做故障诊断,第一件事就是看频谱图。为什么?因为每个机械部件都有自己独特的“频率指纹”。
| 故障类型 | 时域特征 | 频域特征 |
|---|---|---|
| 轴承外圈故障 | 周期性冲击,峭度升高 | 出现BPFO频率及其谐波 |
| 齿轮断齿 | 大幅值冲击,峰值飙升 | 啮合频率两侧出现边频带 |
| 转子不平衡 | 正弦波形态,均值稳定 | 1倍转频幅值异常增大 |
| 松动故障 | 波形杂乱,无规律 | 出现大量高次谐波 |
我的经验:频谱分析最怕“假峰”。有一次我在一个化工厂做诊断,频谱上出现了明显的100Hz峰值,我以为是轴承故障。后来发现是旁边的电机变频器干扰。所以做频谱分析前,一定要先确认哪些频率是“背景噪声”。
4.3 时域+频域:双剑合璧
单独使用时域或频域,就像只用一只眼睛看世界。两者结合,才能看到完整的设备健康画像。
我的诊断流程:
- 先看时域——算均值、峰值、峭度。如果三个指标都在正常范围,大概率设备没问题。
- 再看频谱——如果时域指标异常,立刻做FFT,找异常频率成分。
- 对照故障频率表——把频谱上的峰值频率和轴承、齿轮的故障频率对照,定位具体故障位置。
- 趋势跟踪——把每天的时域指标和频谱峰值画成趋势图,看变化速率。
避坑指南:我曾经只靠峭度值做决策,结果误判了三次。后来我给自己定了个规矩——“三指标确认法”:时域至少两个指标异常 + 频域有对应频率成分,才下诊断结论。准确率从70%提到了95%以上。
4.4 实战案例:离心泵轴承故障诊断
说个我亲身经历的例子。某化工厂一台离心泵,操作工反映声音有点“闷”。我过去测了振动数据:
- 时域:均值0.08g(正常),峰值3.2g(偏高),峭度4.8(明显偏高)
- 频域:在236Hz处出现明显峰值,旁边还有边频带
我查了轴承型号的故障频率表,236Hz正好是外圈故障频率(BPFO)的3倍频。再结合峭度偏高,基本可以断定——轴承外圈已经出现疲劳剥落。
建议立即停机更换。拆开一看,外圈滚道已经有一条2mm宽的剥落带。再晚一周,可能就要烧轴了。
关键点:时域指标(峭度)给了预警信号,频域分析(236Hz峰值)锁定了故障位置。两者缺一不可。
好了,这一章的内容就到这里。信号处理是故障诊断的“眼睛”,把时域和频域用好了,设备在你面前就是“透明”的。下一章我们聊聊更高级的特征提取方法——包络分析和小波变换,到时候见。