轴承故障诊断这个题目,说大不大,说小不小。你要是刚入行,可能觉得无非是测测振动、看看频谱;你要是干过几年现场,会发现这里面的坑比想象中多得多——传感器装哪儿、采样参数怎么定、特征频率怎么算、包络谱怎么解,每一步都藏着经验。我自己这些年做过风电齿轮箱、电机、泵类设备的故障诊断,也在实验室里泡过不少时间,这篇就把轴承故障诊断从原理到实操的完整思路捋一遍,把该说的干货和踩过的坑都写进去。不管你是设备维护工程师、状态监测新手,还是做故障诊断算法研究的同学,应该都能从中找到能直接用的东西。
1. 轴承故障诊断到底在解决什么问题
1.1 为什么轴承会成为设备故障的“重灾区”
滚动轴承是旋转机械里最常用的支撑部件,也是故障率最高的部件之一。行业内统计过,旋转机械的故障中大约30%到40%与轴承相关,在电机、泵、风机、齿轮箱这类设备里,这个比例还要更高。原因不难理解:轴承长期承受交变载荷,转速高、接触应力大,润滑条件一旦恶化,磨损和疲劳剥落很快就跟上来了。
更麻烦的是,轴承故障往往是从微小损伤开始的。初期可能只是一个几平方毫米的剥落坑,这时候设备运转听起来没什么异常,振动幅值也没有突破报警线,但如果不干预,损伤会迅速扩展。我见过最典型的例子:一台离心泵的轴承外圈剥落,从初期故障到保持架断裂,前后不到两个星期。所以轴承故障诊断的核心目标,不是等设备坏了去分析原因,而是在故障早期就抓住信号,给维修留出时间窗口。
这里要先理解故障的发展阶段。学术界和工程界通常把轴承故障分成四个阶段:
- 第一阶段:故障初期,损伤尺寸极小,振动信号中开始出现微弱的冲击成分,但时域波形和频谱总体变化不大,普通振动总值基本看不出异常。
- 第二阶段:冲击成分明显增强,故障特征频率及其谐波开始出现在频谱中,峭度、峰值因数等无量纲指标明显上升。
- 第三阶段:特征频率周围出现大量边带,高频振动能量显著增加,轴承磨损加剧,温升明显。
- 第四阶段:故障波长扩展到保持架,产生宽频随机振动,振动幅值猛烈上升,设备随时可能失效。
不同阶段对应不同的诊断策略。早期阶段靠常规频谱没用,必须用包络谱或高频解调技术;到了中后期,直接看频谱幅值变化就够了。这也是为什么很多老工程师说“频谱只能确认故障,包络才能发现故障”。
1.2 常见轴承故障类型与失效模式
轴承故障的失效模式大致可以分成几类:疲劳剥落、磨损、腐蚀、电蚀、断裂、塑性变形。实际现场中以疲劳剥落和磨损最为常见。
疲劳剥落是轴承滚道或滚动体表面在交变接触应力作用下产生裂纹,裂纹扩展后材料剥落,形成凹坑。剥落坑一旦出现,每次滚动体滚过坑位时就会产生一个冲击脉冲,这就是振动信号里周期性冲击的来源。磨损则是异物进入、润滑不良导致表面材料缓慢损耗,特征表现为振动噪声升高、温度上升,但不像剥落那样有强烈的冲击特征。
不同类型的故障,在振动信号里对应着不同的特征频率。这些频率不是拍脑袋想的,而是由轴承的几何参数和转速决定。计算公式如下:
- 外圈故障频率(BPFO):(BPFO = \frac{N \cdot f_r}{2} \cdot (1 - \frac{B_d}{P_d} \cos\theta))
- 内圈故障频率(BPFI):(BPFI = \frac{N \cdot f_r}{2} \cdot (1 + \frac{B_d}{P_d} \cos\theta))
- 滚动体故障频率(BSF):(BSF = \frac{P_d \cdot f_r}{2 \cdot B_d} \cdot (1 - (\frac{B_d}{P_d} \cos\theta)^2))
- 保持架故障频率(FTF):(FTF = \frac{f_r}{2} \cdot (1 - \frac{B_d}{P_d} \cos\theta))
其中,(N)是滚动体数量,(f_r)是转频(转速除以60,单位Hz),(B_d)是滚动体直径,(P_d)是节圆直径,(\theta)是接触角。
以一台转速1500rpm(转频25Hz)的电机,配6205深沟球轴承为例,假设滚动体数量9个,节圆直径约39mm,滚动体直径约8mm,接触角约0°,可以算出:
- 外圈故障频率约为89.9Hz
- 内圈故障频率约为135.1Hz
- 滚动体故障频率约为58.5Hz
- 保持架故障频率约为10Hz
这些特征频率和理论值的关系,是轴承振动分析的基本功。实际频谱图中,故障频率不会是精确的单根谱线,而是会围绕着特征频率出现一个窄带分布,因为滚动体与滚道接触时滑动、转速波动、滑差等都会导致频率偏移,一般会有±1%到±2%的偏差。这个容差在后期用频谱搜索故障频率时非常重要。
内圈故障还有一个特点:因为内圈随轴一起旋转,故障点相对于载荷区的位置不断变化,所以故障特征频率的幅值会被转频调制,在频谱上表现为BPFI周围出现以转频(f_r)为间隔的边带。这个现象在诊断时可以用来区分内圈故障和外圈故障。
2. 信号采集:诊断的“眼睛”怎么选
2.1 振动信号为什么是首选
轴承故障诊断最常用的信号是振动信号,其次是温度、声发射、电流等。振动信号信息量最大,故障引起的冲击、磨损、松动都会在振动中有所体现,而且加速度传感器频率范围宽、体积小、安装方便,价格也不算贵,所以实际工程中最普及。
振动传感器的类型主要有三种:
- 加速度传感器:测量加速度,频响范围宽(通常0.5Hz到10kHz以上),适合捕捉高频冲击成分,是轴承诊断的主力。
- 速度传感器:一般用于中低频振动测量,适合做振动烈度评价,但对早期故障的高频成分不敏感。
- 电涡流位移传感器:非接触式测量轴的相对位移,多用于滑动轴承和大机组轴振监测,滚动轴承上用得少。
如果用加速度传感器测轴承振动,得到的是加速度信号。需要留意的是,加速度信号在高频段信噪比好,但低频成分幅值很小;如果直接积分成速度信号,高频冲击会被削弱。所以做包络分析时,我喜欢直接对原始加速度信号处理,不做积分,避免多余误差。
2.2 传感器安装与采样参数设置
传感器的安装方式直接影响信号质量,这是一个在教科书里容易被忽略、在现场却极其重要的问题。
安装方式的优先顺序大致是:螺纹安装 > 胶粘安装 > 磁座安装 > 手持探针。
螺纹安装是最可靠的,在轴承座上打孔攻丝,传感器与测点完全贴合,频响特性最真实。胶粘(用氰基丙烯酸酯类快干胶)也还不错,适合不能打孔的场合。磁座安装最方便,但对高频信号的衰减很严重,通常最高只能用到2kHz到5kHz,超过这个频率后测量结果就不太可信了。手持探针基本只能定性听听,量化分析意义不大。
我实际测过同一个测点上,磁座和螺纹安装的高频振动差异能达到5到10倍,这在判据判断时会带来很大偏差。所以如果能打孔,果断用螺纹;不能打孔,至少也要用胶粘,别图方便用磁座去测轴承故障。
采样参数的设置同样关键。做频谱分析时,采样频率至少要满足奈奎斯特采样定理,也就是最高分析频率不能超过采样频率的一半。工程上通常留出余量,采样频率设为最高分析频率的2.56倍。比如要分析到10kHz,采样频率至少设为25.6kHz,一般直接设到51.2kHz或更高。
具体参数上还要考虑这几项:
- 采样时长:至少要覆盖足够的转数,才能看到周期的故障冲击。对于低频故障诊断,建议至少采集几十转的数据;做高分辨率频谱时,数据长度越长,频率分辨率越高,但存储和计算成本也相应增加。
- 转速信号:分析转速变化工况下的轴承信号时,必须同步记录转速脉冲,否则转频飘移会让频谱模糊。
- 频率分辨率 (\Delta f = f_s / N),其中(f_s)是采样频率,(N)是FFT点数。比如采样频率25.6kHz,取102400个点做FFT,分辨率只有0.25Hz,足够区分相邻的故障边带。
注意:采样时一定要先搞清楚设备的最高转速和最高关心频率。别把采样频率设低了,否则高频冲击成分被折叠到低频段,再好的算法也白搭。
3. 特征提取:把噪声里的故障“捞”出来
3.1 时域特征与无量纲参数
拿到振动信号之后,第一个能看的维度是时域波形。健康轴承的振动波形接近随机噪声,幅值平稳;一旦出现早期剥落,波形上会周期性出现明显的冲击脉冲。时域冲击的间隔如果对应上了故障特征频率的倒数,那基本就能锁定故障部位。
时域特征参数有很多,最常用的有均方根值、峰值、峭度、峰值因数、波形因数。
- 均方根值(RMS)反映振动总体能量,也是设备状态评价的基础指标,但早期故障对RMS影响不大。
- 峰值反映最大瞬态冲击,对单点剥落比较敏感,但受噪声干扰也大。
- 峭度是四阶统计量归一化后的结果,正常轴承振动接近正态分布,峭度约等于3;出现冲击时分布尾部变厚,峭度明显升高。早期故障阶段,峭度是最灵敏的指标之一。
- 峰值因数是峰值除以RMS,正常轴承一般在2到3之间,出现冲击时能升到5以上。
我自己经验是,在轴承故障初期,RMS还没怎么动,峰值因数和峭度已经开始报警了。但也别光盯着峭度,润滑不良、外界敲击、瞬态冲击都会让峭度升高,必须结合频谱确认。
3.2 频域分析:包络谱是绝招
频谱分析是轴承故障诊断的常规武器。直接对振动信号做FFT,如果故障已经发展到中后期,频谱中会出现明显的特征频率谱线。但在早期阶段,故障冲击的能量被分散到整个频带,直接看FFT往往只有一条起伏的宽带,找不到特征频率。
这时候就要用包络分析(也叫解调分析)。包络分析的核心思路是:故障冲击会激励起轴承系统或传感器安装结构的高频共振,冲击能量是以高频共振为载波、以故障特征频率为调制的。所以先选一个包含共振成分的频带做带通滤波,滤掉低频干扰,然后用希尔伯特变换提取信号的幅值包络,再对包络做FFT,就能在包络谱中看到清晰的故障特征频率。
用Python实现包络谱的流程大致如下:
import numpy as np from scipy.signal import hilbert, butter, sosfilt import matplotlib.pyplot as plt # 假设 fs 是采样频率, data 是振动加速度信号 fs = 25600 data = np.loadtxt('bearing_vibration.csv', delimiter=',') # 设计带通滤波器,选一个包含结构共振的频带,比如3000-6000Hz sos = butter(4, [3000, 6000], btype='bandpass', fs=fs, output='sos') filtered = sosfilt(sos, data) # 希尔伯特变换求包络 analytic = hilbert(filtered) envelope = np.abs(analytic) # 对包络做FFT N = len(envelope) win = np.hanning(N) spectrum = np.fft.rfft(envelope * win) freqs = np.fft.rfftfreq(N, 1/fs) # 观察包络谱中故障特征频率处的幅值 plt.plot(freqs[:fs//2//10], np.abs(spectrum)[:fs//2//10]) plt.xlabel('Frequency (Hz)') plt.ylabel('Amplitude') plt.show()这个代码里最关键的是带通滤波的频带选择。频带选得好,包络谱干净清晰;选得不好,包络谱里全是噪声。实际做法是先看原始信号的频谱,找出明显的高频能量集中区域,再把带通滤波中心设在那附近。更高级的做法是用快速峭度图(Kurtogram)自动寻找最优频带,这是现场很实用的工具。
包络谱里除了故障特征频率本身的谱线,还要看谐波和边带。外圈故障的特征频率整数倍谐波常常都能看到,内圈故障则伴随转频边带。如果出现了谐波和边带同时丰富的情况,说明故障已经比较严重了。
3.3 时频域方法
轴承在变转速、变负载工况下运行时,传统的FFT会让频率信息在时间轴上糊成一片。这时候需要时频分析方法。
短时傅里叶变换(STFT)是最直观的时频方法,把信号分窗做FFT,得到“频率-时间-幅值”的三维图。STFT的时间分辨率和频率分辨率互斥,窗口越短时间分辨率越高,频率分辨率越低,使用时要折中。
小波变换可以看作STFT的改进,用不同尺度的基函数对信号做时频分解,在低频段有窄带宽、高频段有窄时间窗,更适合捕捉轴承故障信号的瞬态冲击。连续小波变换(CWT)得到时频图后,可以观察到故障冲击在一段时间内周期性出现,间隔正好等于故障特征频率的倒数。
经验模态分解(EMD)和集合经验模态分解(EEMD)是另一种思路,把信号分解成若干本征模态函数(IMF)。轴承故障冲击能量往往会集中在某个IMF中,对这个IMF做包络谱,更容易提取特征。但EMD有端点效应和模态混叠的问题,实际使用时需要结合完整性检查。
我的看法是:稳态工况下优先用包络谱,运算快、结果直观;变转速工况下用时频图或者阶比跟踪;EMD这类方法在论文里很有用,现场诊断作为辅助手段即可,别把它当成万能药。
4. 诊断决策:从特征到结论
4.1 阈值报警与趋势管理
特征提取之后,要判断轴承是否故障、故障有多严重,就涉及诊断决策问题。
传统做法是设置报警阈值。国际标准ISO 10816对旋转机械的振动烈度给出了分类区间,比如电机类设备,振动速度有效值在2.8mm/s以下可以认为运行良好,超过4.5mm/s就要重点关注。但这些标准是面向整机振动评价的,对局部轴承故障的早期诊断并不敏感。所以现场往往还会结合轴承故障特征频率的幅值做趋势管理。
比单次测量更重要的是趋势。轴承故障发展是渐变过程,定期测量振动数据,把RMS值、峭度、包络谱特征频率幅值记录成趋势曲线。一旦发现某个指标持续上升,即使还没超过报警线,也说明故障在发展中。我一般建议设备维护团队至少每月测一次关键设备,一旦发现异常趋势,缩短到每周一次。
对于轴承专项监测,比较实用的一个经验法则是:包络谱中故障特征频率处的幅值如果持续上升且超过正常基线的3倍以上,基本可以确认故障在发展。如果特征频率的谐波数量从1个增加到3个以上,说明故障已经进入到中后期。
4.2 机器学习与深度学习辅助
近几年,机器学习在轴承故障诊断中的应用越来越多。传统路线是“特征工程+分类器”:先手动提取时域、频域、时频域的多种特征,再训练支持向量机、随机森林、梯度提升树等模型做故障类型识别。
这条路线的优点是可解释性强,特征的含义明确。缺点是要花大量精力做特征工程,而且模型泛化能力受特征选择的直接影响。我见到的很多研究实验精度能达到99%,但在现场换一台设备、换一个工况,准确率立刻掉下来。
深度学习路线是端到端学习,用卷积神经网络(CNN)直接输入原始振动信号或者时频图,自动学习特征并分类。一维CNN可以处理一维振动序列,二维CNN常配合STFT或小波时频图使用。LSTM等循环神经网络适合处理时间序列,但轴承故障诊断中样本长度不算特别长,效果跟CNN差不多。
深度学习在现场落地需要注意几个问题:
- 样本不平衡:正常样本总是远多于故障样本,训练出来的模型倾向于把所有样本都判为正常。解决办法包括过采样、合成少数类样本(SMOTE)、或者改用异常检测思路。
- 过拟合:轴承故障数据采集通常来自实验室,和现场信号差异很大。模型在实验室数据上精度高,在现场数据上可能失灵。缓解手段是数据增强(加噪、变转速模拟)、迁移学习,或者用无监督域适应。
- 可解释性:深度学习模型是个黑箱,工程上需要给出诊断依据,否则维修人员不敢信。可以用Grad-CAM等可视化方法,看看模型关注的是哪些频段,跟包络谱结论是否一致。
我个人目前的态度是:深度学习作为自动筛选工具很有前途,但现场最终结论还是要结合包络谱和故障特征频率来确认。人负责判断,模型负责提效。
5. 一个完整的故障诊断实操流程
5.1 案例背景与数据采集
光讲理论容易飘,我拿一个实际做过的案例来串一遍完整流程。
某化工厂有一台引风机,转速约1300rpm(转频21.67Hz),电机与风机之间通过联轴器连接,风机侧轴承型号为SKF 6312,滚动体数量8个,节圆直径约85mm,滚动体直径约22mm,接触角约0°。现场反映风机噪声比之前大,振动监测系统显示振动总值略有上升,但没到停机阈值,工艺人员不确定是不是轴承问题。
先把理论特征频率算出来。转频(f_r = 1300/60 \approx 21.67)Hz。
- 外圈故障频率:(BPFO = 8 \times 21.67 / 2 \times (1 - 22/85) \approx 64.2)Hz
- 内圈故障频率:(BPFI = 8 \times 21.67 / 2 \times (1 + 22/85) \approx 107.6)Hz
采样设置:加速度传感器安装在风机轴承座径向位置,螺纹安装,采样频率25600Hz,每次采样时长4秒,采集3组数据,同时用测速仪记录转速。
5.2 时域与包络谱分析步骤
拿到数据后,我习惯按这个顺序处理:
第一步,看时域波形和统计参数。计算RMS、峰值、峭度。实测数据RMS约为1.8m/s²,比正常状态的1.2m/s²高了一些,但幅度不大;峭度达到了6.1,明显高于正常值3附近。这引起警觉,说明信号里有明显的非高斯冲击成分。
第二步,看原始频谱。直接对信号做FFT,频谱在20Hz附近有一个明显的转频谱线,但在60Hz附近的特征频率位置并没有看到明显峰值,反而在1000Hz到4000Hz的高频段有一片能量隆起。这说明高频区域存在共振,但故障特征还不够强,直接看频谱发现不了。
第三步,做包络分析。根据原始频谱中的高频能量集中区域,选3000Hz到5000Hz做带通滤波,然后用希尔伯特变换提取包络,再做FFT。包络谱中64.2Hz处出现明显谱线,幅值约为0.12m/s²,同时128.4Hz、192.6Hz处出现二倍频和三倍频谐波。
代码上可以直接复用前面那个包络分析脚本,需要调整的是带通滤波范围和FFT分辨率。由于故障特征频率大约64Hz,而相邻边带间隔可能较小,为了保证频率分辨率足够,我取4秒的数据,共102400个点,FFT分辨率为25600/102400=0.25Hz,足够看清边带结构。
第四步,判断故障部位。包络谱中BPFO及其谐波清晰,且没有明显的转频边带,可以判定为外圈故障。为什么没有边带?因为外圈固定在轴承座内,故障点相对载荷方向固定,所以不会产生明显的转频调制,频谱会直接出现BPFO及其整数倍谐波,这正是外圈故障的典型特征。如果是内圈故障,BPFI周围会有以转频为间隔的边带。
5.3 诊断结论与验证
综合时域峭度、包络谱特征频率和谐波,我给出的结论是:风机侧轴承存在外圈早期剥落,故障处于第二阶段到第三阶段之间,建议近两周内安排检修更换。
后来工厂停机检修,拆开轴承一看,外圈滚道表面果然有一个约2mm×3mm的剥落坑,与诊断结论完全一致。更换新轴承后,振动峰值和峭度回到正常水平,包络谱中的特征频率消失。
这个案例的启示是:诊断流程不是只靠某一种方法,而是多维度相互印证。时域统计发现异常,频域定位问题,包络谱锁定具体部位,三个步骤缺一不可。
6. 常见问题与排查技巧实录
6.1 常见问题速查表
在实际做轴承故障诊断时,新手特别容易踩一些典型的坑。我把常见现象、可能原因和排查方法整理成了一张表,方便对照。
| 现象 | 可能原因 | 排查方法 |
|---|---|---|
| 频谱中找不到特征频率 | 特征频率计算错误、转速不准、频率分辨率不足 | 核对轴承型号和几何参数,用测速仪实测转速,增加FFT点数 |
| 包络谱特征频率幅值低 | 带通滤波频带选择不当、传感器安装不良 | 用快速峭度图找最佳频带,改用螺纹或胶粘安装 |
| 多个轴承都显示高频振动 | 设备存在共振、齿轮啮合干扰、外界冲击 | 做停机模态测试,对比齿轮箱特征频率,检查附近机械冲击源 |
| 峭度始终很高但没有故障 | 传感器松动、数据截断、环境噪声干扰 | 检查传感器固定扭矩,查看原始波形是否被削顶,延长采样时间 |
| 内圈故障误判为外圈 | 故障后期边带错乱、频谱混叠 | 先确认是否出现转频间隔边带,结合包络谱谐波数量综合判断 |
| 诊断结论时好时坏 | 工况不稳定、负载变化大 | 固定工况采集数据,或引入转速同步采集与阶比分析 |
| 机器学习模型现场失效 | 训练数据与现场数据分布不同 | 用迁移学习或现场数据微调模型,增加数据增强手段 |
6.2 独家避坑技巧
这些坑我在现场和实验室都踩过,写出来供大家参考。
第一个坑是转速不准确导致故障频率算错。很多时候现场转速表不准,或者设备本身存在转差,尤其电机驱动的设备,实际转速可能比铭牌值低2%到5%。如果直接用铭牌转速算特征频率,频谱里可能出现一个靠近理论值但没对上的峰值,容易误判。解决办法是尽量用转速表实测,或者从频谱中找到啮合频率等确定性频率反推实际转频。
第二个坑是包络分析时带通滤波频带选错。早期盲目选固定频带,比如2kHz到5kHz,但实际共振频带往往是3000Hz到6000Hz,或者500Hz到1500Hz,选错了特征信号全被滤掉,包络谱一片混乱。后来我习惯先用快速峭度图快速扫描最佳频带,再结合原始频谱确认,成功率大大提高。对没有快速峭度图工具的场景,可以把频谱放大,看看高频段哪个区域有明显的“鼓包”,那个鼓包就是共振峰,带通滤波就围绕它设置。
第三个坑是传感器松动。表面上看传感器固定得很牢固,但实际使用中接触面氧化、螺纹滑丝,都会导致测量阻抗变化,测得的高频信号幅值忽高忽低。这种情况下的特征是频谱中多个频段幅值同时异常,尤其是高频段出现很多杂散谱线。遇到这种异常现象,第一步先检查传感器,别急着往故障上靠。
第四个坑是忽略负载和工况的影响。同一台设备的轴承,在满负荷和低负荷下,振动幅值差异巨大。如果每次采集数据时的工况不同,趋势分析就完全没意义。我建议在数据采集记录里同步记录转速、负载、温度等工况参数,做趋势分析时只对比相同工况的数据。
第五个坑是只看故障频率幅值不看带宽。有些分析说包络谱峰值超过阈值就是故障,但实际现场存在很多干扰谱线。更可靠的做法是看故障特征频率周围的能量积分值,或者统计多个谐波的平均幅值,比单纯看单根谱线更稳定。我在报告里提供特征频率处峰值的同时,总会附带一组窗口内能量,比如±1Hz范围内的平均幅值,这样判断起来更有底气。
最后多说一句,轴承故障诊断不是一锤子买卖,不要指望一次测完就能永远判断准确。好的做法是建立设备振动基线库,每个测点保存一组合格状态下的频谱和特征值,后续测量先跟基线比对,变化趋势比绝对数值更有说服力。毕竟每台设备安装在什么位置、结构如何、邻接什么部件,其振动特点都有差异,拿别人的标准套自己的设备,很容易出错。
诊断这件事,本质上是用信号反推机械状态,既要懂机械原理,也要懂信号处理,更要有现场经验。理论再丰富,到了机房里装传感器、调参数、判故障,才知道纸上谈兵和实际操作的差距。这些年做下来,我的切身体会是:先把包络谱玩明白,再回来算清楚每个特征频率,最后带着问题去学机器学习,这条路是最稳的。碰到无法确认的异常,宁可多测一次、多看一遍时域波形,也别急着下结论。设备不会跑,故障也不会一夜之间毁掉一切,但判断失误会。