机械振动故障分类基础:振动信号特征、常见故障类型与分类任务定义
机械振动故障分类是设备状态监测与智能运维的核心环节。在旋转机械中,振动信号携带了设备运行状态的丰富信息,不同故障类型会在频域、时域及时频域表现出特定的模式。本章将系统梳理振动信号的关键特征、常见机械故障(不平衡、不对中、轴承故障等)的振动表征,并明确分类任务的定义与边界,为后续基于ONNX Runtime的端侧部署奠定数据与任务基础。
核心原理:振动信号如何反映机械故障
旋转机械在运行过程中,由于转子质量分布不均、轴线不对中、轴承元件损伤等原因,会产生周期性的激励力,进而引发壳体或轴承座的振动响应。振动信号本质上是多种频率成分的叠加,包括与转速相关的转频及其谐波、轴承特征频率、齿轮啮合频率以及随机噪声。故障诊断的基本逻辑是:不同的机械故障会改变振动信号的幅值分布、频率结构或调制特性,通过提取这些变化特征,即可实现故障类型的判别。
从信号处理角度看,振动信号通常被划分为三个分析域:
- 时域分析:直接统计振动波形的幅值特征,如均方根值(RMS)反映振动能量水平,峰值反映瞬时冲击强度,峭度(Kurtosis)对冲击性故障敏感。时域指标计算简单,适合端侧实时计算,但信息粒度较粗。
- 频域分析:通过快速傅里叶变换(FFT)将时域信号转换为频谱,识别特定频率处的幅值峰值。例如,不平衡故障在1倍转频(1×)处有明显峰值,不对中故障则在2倍转频(2×)处出现较大峰值。频域分析是故障定位的主要手段。
- 时频域分析:当设备转速变化或故障产生非平稳信号时,短时傅里叶变换(STFT)或小波变换能够同时提供时间与频率信息,适用于变转速工况下的故障诊断。
在端侧部署场景中,考虑到计算资源与功耗限制,通常优先选择时域统计特征与FFT频谱特征作为模型输入,必要时辅以包络谱(通过Hilbert变换解调)提取轴承故障特征。
常见故障类型与振动特征
机械振动故障分类任务中,最常见的故障类型包括转子不平衡、轴不对中、滚动轴承故障、齿轮故障以及机械松动。每种故障在振动信号中都有相对明确的特征频率与幅值模式,下表总结了典型故障的振动特征对照:
| 故障类型 | 特征频率 | 振动幅值特征 | 方向性 | 典型频谱形态 |
|---|---|---|---|---|
| 转子不平衡 | 1×转频 | 径向振动增大,幅值与转速平方成正比 | 径向为主 | 1×处单一高峰,谐波较少 |
| 轴不对中 | 2×转频为主,常伴1× | 轴向振动显著增大,联轴器附近明显 | 轴向+径向 | 2×幅值接近或超过1×,伴有高次谐波 |
| 轴承外圈故障 | BPFO(外圈通过频率) | 冲击脉冲,幅值随载荷增大 | 径向为主 | 包络谱中BPFO处峰值,伴有边带 |
| 轴承内圈故障 | BPFI(内圈通过频率) | 冲击脉冲,受转频调制 | 径向为主 | 包络谱中BPFI处峰值,边带间隔为1× |
| 滚动体故障 | BSF(滚动体自转频率) | 冲击较弱,位置不固定 | 径向+轴向 | BSF处峰值,幅值较低 |
| 机械松动 | 1×及高次谐波(0.5×, 1.5×等) | 振动不稳定,幅值波动大 | 方向不定 | 频谱杂乱,出现分数谐波 |
轴承故障特征频率的计算依赖于轴承几何参数与转速,其公式如下:
BPFO = (n/2) × fr × (1 - d/D × cosα)
BPFI = (n/2) × fr × (1 + d/D × cosα)
BSF = (D/(2d)) × fr × (1 - (d/D × cosα)²)
FTF = (1/2) × fr × (1 - d/D × cosα)
其中:n为滚动体数量,fr为转频(Hz),d为滚动体直径(mm),D为节圆直径(mm),α为接触角(°)
分类任务定义与建模思路
机械振动故障分类任务可以形式化定义为:给定一段振动信号(或其特征表示),预测设备当前所处的健康状态类别。根据标签的粒度,可分为二分类(正常/异常)、多分类(正常/不平衡/不对中/轴承故障等)以及细粒度分类(区分轴承故障的具体元件位置)。
从模型输入的角度,有两种主流方案:
- 特征工程+传统机器学习:从振动信号中提取统计特征(RMS、峰值、峭度、波形因子等)和频域特征(各频带能量、特征频率幅值),构成特征向量,输入到随机森林、XGBoost或支持向量机分类器。该方案计算开销小,模型体积小,适合部署在MCU等资源受限设备。
- 端到端深度学习:将原始振动波形(一维时间序列)或时频图(二维图像)直接输入卷积神经网络(CNN)或循环神经网络(RNN),由模型自动学习特征。该方案精度上限更高,但模型参数量大,需要经过ONNX Runtime的量化与优化才能在端侧高效运行。
在ONNX Runtime端侧部署场景中,需要综合考虑模型精度、推理延迟、内存占用和功耗。通常建议:先通过特征工程建立基线模型,再根据精度需求决定是否引入深度学习模型。同时,分类任务的输出层应使用Softmax激活函数,输出各故障类别的概率分布,便于后续设置置信度阈值进行决策。
案例拆解:离心泵振动故障分类任务设计
某化工厂一台离心泵频繁出现振动超标问题,设备工程师采集了泵轴承座处的加速度振动信号,采样率为12.8kHz,每次采集时长为2秒,共采集了正常运行、不平衡、不对中、轴承外圈故障四种状态下的样本各200组。目标是构建一个分类模型,能够在现场边缘设备上实时判断当前设备状态。
初始现象与目标:泵的振动速度有效值(RMS)在2.8~4.5 mm/s之间波动,超过ISO 10816-3标准中2.8 mm/s的报警限。工程师需要区分故障类型,以便制定针对性的维修计划。
关键输入数据与特征提取:对每段2秒的振动信号(25600个采样点)进行如下处理:
- 计算时域特征:RMS、峰值、峭度、波形因子、脉冲因子;
- 进行FFT变换,提取1×、2×、3×转频处的幅值(转频fr=25Hz);
- 计算轴承外圈特征频率BPFO(理论值约91.3Hz)附近±5Hz带宽内的频谱能量;
- 对信号进行Hilbert包络解调,提取包络谱中BPFO处的幅值。
最终每个样本形成一个10维特征向量。将800个样本按7:3划分为训练集和测试集,使用随机森林分类器进行训练。
分析判断过程:初步观察发现,不平衡样本的1×幅值平均为2.1mm/s,明显高于正常状态的0.4mm/s;不对中样本的2×幅值达到1.8mm/s,且轴向振动显著;轴承故障样本的包络谱BPFO处幅值突出,而原始频谱中该频率处幅值并不明显。这验证了包络解调对轴承故障诊断的必要性。
实际操作与结果:使用Python的scikit-learn库训练随机森林模型(200棵树,最大深度10),在测试集上取得了96.5%的准确率。混淆矩阵显示,不平衡与不对中之间存在少量混淆(约3%),原因是两者在1×和2×幅值比例上存在重叠区域。通过增加轴向振动特征后,混淆率降至1.2%。
部署与代价:将训练好的模型导出为ONNX格式,模型大小仅85KB,在ARM Cortex-A53处理器上单次推理耗时约0.8ms,完全满足实时监测需求。但工程师也发现,当泵转速波动超过±5%时,固定频率带宽的特征提取方式会导致精度下降,需要引入转速归一化处理。
常见误区与总结复盘
在机械振动故障分类任务的设计与实施中,初学者常犯以下错误:
- 误区一:忽视采样率与抗混叠滤波。采样率过低会导致高频故障特征混叠到低频段,造成误判。应确保采样率至少为最高分析频率的2.56倍,并在ADC前使用抗混叠滤波器。
- 误区二:直接使用原始波形训练深度学习模型而不做预处理。原始振动信号包含大量噪声和工况干扰,直接训练容易过拟合。建议先进行带通滤波(如10Hz~5kHz)和幅值归一化。
- 误区三:混淆特征频率与故障频率。例如,轴承故障的特征频率是滚动体通过损伤点时的冲击频率,而非转频的整数倍。需要根据轴承参数精确计算,不能简单套用1×或2×。
- 误区四:忽略模型在端侧的推理效率。一个在PC上精度很高的深度学习模型,可能因为参数量大、计算密集而无法在嵌入式设备上实时运行。应优先考虑模型量化(INT8)和剪枝技术。