1. 项目背景与核心价值
轴承作为旋转机械的核心部件,其健康状态直接影响设备运行安全。传统振动分析依赖专家经验,而基于双路神经网络的智能诊断方法,能自动提取时频特征并实现端到端故障分类。我们团队在冶金生产线风机机组上实测发现,该方法对早期点蚀故障的识别准确率比传统FFT频谱分析提升37%。
2. 技术方案设计
2.1 双路网络架构设计
采用并行双分支结构:
- 时域分支:5层1D-CNN(kernel_size=64, stride=8)处理原始振动信号
- 频域分支:STFT转时频图后接入ResNet18 特征融合层使用注意力机制加权拼接,实测比直接拼接提升3.2%准确率
2.2 数据增强策略
针对工业场景样本少的问题:
- 时域加噪:SNR=15dB的高斯白噪声
- 频域增强:随机擦除时频图像20%区域 实验证明该策略使小样本训练准确率提升19%
3. 关键实现细节
3.1 信号预处理流程
- 采样设置:SKF振动传感器,12kHz采样率
- 降噪处理:改进的小波阈值去噪(db8小波,5层分解)
- 样本分割:2048点/样本,50%重叠率
3.2 网络超参配置
optimizer = AdamW(lr=3e-4, weight_decay=1e-3) scheduler = CosineAnnealingLR(T_max=50) loss_fn = FocalLoss(gamma=2, alpha=[0.1, 0.3, 0.3, 0.3]) # 四分类任务4. 工业部署优化
4.1 轻量化改进
- 时域分支改用MobileNetV3块结构
- 频域分支采用深度可分离卷积 模型体积从186MB压缩到23MB,推理速度提升4倍
4.2 在线诊断实现
class StreamingDiagnosis: def __init__(self): self.buffer = np.zeros(4096) def update(self, new_data): self.buffer = np.roll(self.buffer, -len(new_data)) self.buffer[-len(new_data):] = new_data if trigger_condition(): return self.model.predict(self.buffer[-2048:])5. 实测效果对比
在钢厂风机数据集上的表现:
| 方法 | 准确率 | F1-score | 推理时延 |
|---|---|---|---|
| 传统SVM | 82.3% | 0.796 | 8ms |
| 单路CNN | 89.7% | 0.882 | 15ms |
| 本文方法 | 93.5% | 0.921 | 21ms |
| 轻量化版本 | 91.2% | 0.902 | 6ms |
6. 工程经验总结
频域分支输入建议采用Mel谱图而非STFT,在齿轮箱数据上测试显示能提升2-3%准确率
实际部署时发现,传感器安装位置对高频成分(>5kHz)影响显著,建议:
- 在轴承座垂直方向安装
- 使用磁性底座固定
- 采样前做通道一致性校验
遇到样本不平衡时,可尝试:
- 时域分支采用梯度反转层
- 频域分支使用类别敏感注意力
- 混合使用Focal Loss和Label Smoothing
关键提示:工业现场振动信号常含冲击干扰,建议在网络前端加入自适应的脉冲噪声抑制模块,我们开发的基于形态学滤波的预处理方法可有效提升模型鲁棒性