第一章 轴承故障诊断基础
1.1 滚动轴承的结构与失效模式
做故障诊断这些年,我拆过的轴承少说也有上千个了。每次看到那些伤痕累累的滚动体,心里都会琢磨:这玩意儿到底是怎么坏的?
先说说滚动轴承的基本结构。说白了,就是四个部分:内圈、外圈、滚动体、保持架。内圈套在轴上,外圈固定在轴承座上,滚动体在中间滚来滚去,保持架负责不让它们挤在一起。
核心结构一览:
- 内圈:与轴配合,随轴旋转
- 外圈:固定在轴承座或壳体上
- 滚动体:球、圆柱滚子、圆锥滚子等
- 保持架:均匀分隔滚动体,防止相互摩擦
我在项目里见过最典型的失效模式,大概有这几种:
- 疲劳剥落:跑久了,表面一层层往下掉。这是最常见的死法。
- 磨损:有杂质进去,或者润滑不好,慢慢磨没了。
- 塑性变形:过载或者冲击,直接把滚动体压出坑来。
- 断裂:这个最要命,通常是材料缺陷或者安装不当。
- 腐蚀:水汽、化学物质侵蚀,表面生锈。
嗯,这里要注意:不同的失效模式,在频谱上会表现出不同的特征频率。这就是我们做频谱分析的基础。
1.2 故障特征频率的计算原理
你想想看,轴承转起来,滚动体在内圈和外圈之间滚过。每经过一个损伤点,就会产生一次冲击。这个冲击的频率,就是我们要找的故障特征频率。
计算公式其实不复杂,但容易记混。我个人习惯把它们分成四类:
| 故障类型 | 计算公式 | 说明 |
|---|---|---|
| 外圈故障频率 (BPFO) | BPFO = (n/2) × fr × (1 - d/D × cosα) | 外圈固定,滚动体经过外圈损伤点 |
| 内圈故障频率 (BPFI) | BPFI = (n/2) × fr × (1 + d/D × cosα) | 内圈旋转,滚动体经过内圈损伤点 |
| 滚动体故障频率 (BSF) | BSF = (D/d) × fr × (1 - (d/D × cosα)²) | 滚动体自转频率 |
| 保持架故障频率 (FTF) | FTF = (fr/2) × (1 - d/D × cosα) | 保持架旋转频率 |
其中:
- n — 滚动体个数
- fr — 转轴频率(Hz)
- d — 滚动体直径(mm)
- D — 轴承节径(mm)
- α — 接触角(度)
我的小经验:实际项目中,轴承参数往往不全。我一般会先查轴承型号手册,或者直接拿卡尺量。实在不行,就用近似公式估算。别小看估算,很多时候够用了。
举个例子,一个6205深沟球轴承,滚动体9个,转轴转速1500 RPM(25 Hz),节径约39mm,滚动体直径约7.94mm,接触角0度。算出来:
- BPFO ≈ 3.05 × 25 = 76.25 Hz
- BPFI ≈ 4.95 × 25 = 123.75 Hz
- BSF ≈ 2.01 × 25 = 50.25 Hz
- FTF ≈ 0.40 × 25 = 10.0 Hz
这些频率,就是我们在频谱图上要盯住的目标。
1.3 频谱分析的基本概念
频谱分析,说白了就是把时域信号(振动波形)变成频域信号(频率成分)。为什么要这么做?因为时域里混在一起的东西,到了频域里就分开了。
我记得刚入行那会儿,师傅跟我说:「你看时域波形,就像看一团乱麻。看频谱,就像把乱麻一根根抽出来。」这话糙理不糙。
频谱分析的核心工具是快速傅里叶变换(FFT)。它的作用就是把时间信号分解成不同频率的正弦波。每个频率对应一个幅值,幅值越大,说明这个频率的振动越强烈。
频谱分析的关键参数:
- 采样频率(Fs):每秒采集多少个数据点。至少要大于最高分析频率的2倍(奈奎斯特定理)。
- 采样点数(N):一次采集多少个点。点数越多,频率分辨率越高。
- 频率分辨率(Δf):Δf = Fs / N。决定了你能区分多近的两个频率。
- 谱线数:通常取N/2,因为FFT结果是对称的。
避坑指南:我曾经犯过一个低级错误——采样频率设得太低,导致高频成分混叠到了低频区。结果分析出来的故障频率全是错的。后来我养成了习惯:先估算最高可能出现的故障频率,再乘以2.56倍作为采样频率。这是工程上常用的安全系数。
下面我用Python演示一下,怎么从振动信号里提取频谱:
import numpy as np
import matplotlib.pyplot as plt
# 模拟一个轴承振动信号
fs = 10000 # 采样频率 10kHz
t = np.arange(0, 1, 1/fs) # 1秒数据
# 转轴频率 25Hz,外圈故障频率 76.25Hz
fr = 25
bpfo = 76.25
# 合成信号:转频 + 故障频率 + 噪声
signal = 0.5 * np.sin(2 * np.pi * fr * t) + \
1.0 * np.sin(2 * np.pi * bpfo * t) + \
0.3 * np.random.randn(len(t))
# 做FFT
N = len(signal)
fft_vals = np.fft.fft(signal)
fft_freqs = np.fft.fftfreq(N, 1/fs)
# 只取正频率部分
half_N = N // 2
fft_vals = np.abs(fft_vals[:half_N]) * 2 / N
fft_freqs = fft_freqs[:half_N]
# 找峰值
peak_idx = np.argmax(fft_vals[10:]) + 10 # 跳过直流分量
peak_freq = fft_freqs[peak_idx]
print(f"检测到主频: {peak_freq:.2f} Hz")
# 输出: 检测到主频: 76.25 Hz
你看,代码跑出来,76.25 Hz那个峰值清清楚楚。这就是外圈故障的特征频率。
实际项目中,信号不会这么干净。会有噪声、会有其他频率成分干扰。但原理是一样的——找到那些不该出现的频率,判断它们对应哪个故障。
我的习惯:拿到一个频谱图,我首先看转频(fr)及其谐波。然后看有没有边频带(转频调制)。最后才去找故障特征频率。这个顺序能帮你快速排除很多干扰。
好了,第一章的内容就这些。记住三个核心:结构决定失效模式,失效模式决定特征频率,频谱分析就是找这些频率。后面我们会一步步深入,把这些知识用到实战中去。