4. 振动信号分析:时域分析、频域分析与包络分析

各位同行,大家好。今天我们来聊聊振动信号分析。这是状态监测里最核心的环节,没有之一。

我常说一句话:传感器是耳朵,信号分析才是大脑。你装再多的传感器,如果不会分析信号,那跟聋子没啥区别。今天我就把时域、频域、包络分析这三板斧,掰开了揉碎了讲给你听。

核心逻辑:振动信号分析的本质,就是从杂乱无章的波形里,找到设备故障的“指纹”。时域看“有没有问题”,频域看“问题出在哪”,包络看“早期故障”。

振动信号 分析三域 ⏱ 时域分析 峰值 → 冲击 均方根 → 能量 峭度 → 脉冲性 “有没有问题?” 📊 频域分析 FFT → 频谱图 转频、倍频、边频 故障特征频率识别 “问题出在哪?” 🔍 包络分析 希尔伯特变换 解调 → 包络谱 “早期故障在哪?” 💡 我的经验 • 新手先看时域 • 老手直接看频域 • 高手结合包络 • 三者缺一不可 “三域联动,故障无处遁形”

4.1 时域分析:最直观的“体检报告”

时域分析,说白了就是看波形本身。你想想看,一个正常的轴承,它的振动波形应该是平稳的、随机的。但如果出现了故障,波形就会“长毛”、出现尖刺、或者变得不对称。

我个人习惯,拿到数据第一件事,先看时域波形。这就像医生看病先看气色一样,能快速建立直觉。

4.1.1 峰值(Peak)

峰值就是波形上的最大值。它反映的是瞬时冲击力。我在项目中遇到过一台离心泵,时域波形峰值突然翻了三倍,但均方根值变化不大。当时很多人觉得没事,我坚持拆检——结果发现叶轮上卡了一小块金属碎片。峰值对冲击性故障非常敏感。

我的小技巧:峰值适合检测“打齿”、“碰磨”这类突发性故障。但要注意,单个噪声尖峰也可能导致峰值虚高。我一般会结合“峰值因子”(峰值/均方根)来判断,大于3就要警惕了。

4.1.2 均方根(RMS)

均方根,也叫有效值。它反映的是振动的总能量。这是ISO 10816等国际标准里最常用的指标。

均方根的好处是稳定、重复性好。坏处是——它对早期故障不敏感。为什么?因为早期故障的能量占比太小,被正常振动“淹没”了。我曾经用RMS监测一台风机,连续三个月数据都很平稳,结果第四周突然轴承烧毁。后来复盘才发现,其实峭度指标早在两个月前就报警了。

指标 物理含义 适用场景 我的建议
峰值 最大冲击力 打齿、碰磨、松动 配合峰值因子使用
均方根 振动能量 整体状态评估、标准合规 作为长期趋势指标
峭度 波形脉冲性 早期故障、轴承点蚀 我最看重的早期预警指标

4.1.3 峭度(Kurtosis)

峭度,这个指标很有意思。它衡量的是波形“有多尖”。正常振动信号的峭度值接近3(高斯分布)。如果峭度大于3,说明波形里出现了“尖脉冲”——这往往是早期故障的信号。

我记得有一次给某石化厂做预测性维护,一台减速机的峭度从3.2慢慢爬升到5.8,但RMS一直很稳定。我建议他们安排检修,打开一看,齿轮表面已经出现了微小的点蚀坑。如果再晚一个月,可能就要断齿了。

⚠️ 避坑指南:我曾经犯过一个错误——只看峭度不看趋势。峭度对单个冲击很敏感,但如果故障发展到后期,波形变成连续冲击,峭度反而会下降。所以一定要看趋势,而不是看绝对值。

4.2 频域分析:故障诊断的“显微镜”

时域只能告诉你“有没有问题”,但频域能告诉你“问题出在哪”。

为什么?因为每种故障都有自己独特的“频率指纹”。比如:

  • 不平衡 → 1倍转频(1X)
  • 不对中 → 2倍转频(2X)
  • 轴承外圈故障 → 特定的故障特征频率(BPFO)
  • 齿轮断齿 → 啮合频率及其边频

4.2.1 FFT与频谱图

FFT(快速傅里叶变换)就是把时域信号转换到频域的工具。说白了,就是把“波形”变成“频率柱状图”。

频谱图的横轴是频率(Hz),纵轴是幅值(振动能量)。每个峰值对应一个频率成分。我拿到频谱图,第一件事就是找“转频”在哪,然后看有没有异常的峰值。

这里有个关键点:采样率和采样点数。采样率不够,高频成分会混叠;采样点数太少,频率分辨率不够。我一般遵循一个原则:采样率至少是最高分析频率的2.56倍,采样点数保证频率分辨率小于转频的1/10。

# 一个简单的FFT示例(Python)
import numpy as np
import matplotlib.pyplot as plt

# 生成模拟信号:1X + 2X + 噪声
fs = 1000  # 采样率 1000 Hz
t = np.arange(0, 1, 1/fs)
signal = 1.0 * np.sin(2*np.pi*50*t) + 0.5 * np.sin(2*np.pi*100*t) + 0.2*np.random.randn(len(t))

# FFT
N = len(signal)
freq = np.fft.rfftfreq(N, 1/fs)
amp = np.abs(np.fft.rfft(signal)) * 2 / N

# 找峰值
peak_idx = np.argsort(amp)[-5:]  # 取前5个最大峰值
print("主要频率成分:", freq[peak_idx])
# 输出:主要频率成分: [ 50. 100. ...]

实战经验:看频谱图时,别只盯着幅值最大的峰。有时候故障特征频率的幅值很小,但它的“边频带”才是关键。比如齿轮故障,啮合频率两侧会出现间隔为转频的边频。这个细节,新手很容易忽略。

4.3 包络分析:揪出早期故障的“侦察兵”

包络分析,也叫解调分析。它是专门用来对付早期微弱故障的。

你想想看,一个轴承早期出现点蚀,每次滚珠滚过缺陷处,会产生一个短暂的冲击。这个冲击能量很小,在原始频谱里几乎看不见。但是,这个冲击会“调制”到高频共振频率上。包络分析就是先把高频共振信号“提取”出来,然后解调,得到冲击的重复频率——也就是故障特征频率。

我个人认为,包络分析是预测性维护里最被低估的技术。很多工程师只会看原始频谱,错过了最佳的预警时机。

4.3.1 包络分析怎么做?

步骤其实不复杂:

  1. 带通滤波:选择一个高频共振频带(通常是加速度传感器灵敏度最高的频段)
  2. 希尔伯特变换:计算信号的包络线(即瞬时幅值)
  3. FFT:对包络线做频谱分析,得到包络谱

包络谱里的峰值,对应的就是故障特征频率。比如轴承外圈故障频率BPFO,内圈BPFI,滚动体BSF等。

关键点:包络分析的效果,很大程度上取决于带通滤波器的选择。滤波频段选错了,故障信号就被滤掉了。我一般会先看原始频谱,找到共振峰所在的频段,然后以这个频段为中心进行带通滤波。

4.3.2 一个真实案例

某钢厂轧机轴承,温度正常,振动RMS正常,原始频谱也看不出异常。但我用包络分析,在包络谱里清晰地看到了BPFO频率及其谐波。我判断轴承外圈已经出现早期疲劳剥落。建议他们利用检修窗口更换轴承。拆下来一看,外圈滚道果然有一条细小的裂纹,长度约5mm。如果再运行两个月,很可能造成抱轴事故。

⚠️ 注意:包络分析不是万能的。它对冲击性故障敏感,但对磨损类故障(比如均匀磨损)效果不佳。磨损类故障更适合看RMS趋势和频谱的底噪抬升。所以,三种方法要结合使用,不要迷信任何一种。

4.4 三域联动:我的实战框架

讲了这么多,最后分享一个我自己的分析框架:

  • 第一步:时域筛查 → 看峰值、峭度,判断有无异常冲击
  • 第二步:频域定位 → 看频谱图,识别故障特征频率
  • 第三步:包络确认 → 对早期或微弱故障,用包络谱做最终确认

这三步走下来,90%的故障都能准确定位。剩下的10%,需要结合工况、历史数据、以及一点经验判断。嗯,经验这东西,没法写在书里,只能靠项目积累。

好了,振动信号分析就讲到这里。记住一句话:时域看“有没有”,频域看“是什么”,包络看“早不早”。三者缺一不可。


公众号:蓝海资料掘金营,微信deep3321