一、研究背景与挑战
轴承作为旋转机械的核心部件,其健康状态直接影响设备运行的安全性和可靠性。传统的故障诊断方法(如振动分析、油液检测)依赖人工经验,效率低且易受主观因素影响。近年来,基于深度学习的数据驱动方法凭借强大的特征提取能力,成为轴承故障诊断的主流方案。然而,现有方法普遍存在以下痛点:
- 高计算成本:复杂模型(如VGG、ResNet)参数量大,难以在工业边缘设备部署。
- 抗噪声能力弱:工业现场采集的振动信号常伴随强噪声,传统模型易受干扰。
- 领域适应性差:模型在工况变化(如负载突变)时性能急剧下降。
二、LEFE-Net核心原理与创新
1. 模型架构
LEFE-Net由振动特征提取器(VFE)、特征图处理器(FMP)和分类器三部分组成,整体架构如下图所示:
1)振动特征提取器(VFE)
- 功能:将原始振动信号转换为多通道特征图。
- 实现:采用一维卷积(1-D CNN),逐步扩大通道数(8→16→32→64),捕捉不同频率的振动模式。
- 公式:VFE输出=ReLU(Conv1D(X,K=9,Cout))其中X为输入信号(形状:1024×1),Cout为输出通道数。
(2)特征图处理器(FMP)
- 功能:通过轻量化卷积和注意力机制优化特征表达。
- 核心模块:
- Split CNN:将输入特征图按通道分组,对每组独立卷积后融合。
- 空间注意力机制(SAM):通过像素相关性加权特征图。
- 动态权重调整:类似动态卷积,自适应分配卷积核权重。
SAM architecture.
- 公式:SAM输出=Softmax(zc)⊙Conv2D(X)其中zc为通道权重,⊙表示逐元素相乘。
(3)分类器
- 功能:将优化后的特征映射到故障类别。
- 实现:两层全连接网络(FC),激活函数分别为ReLU和SoftMax。
2. 创新点
-
轻量化设计
- 特征图分割:将输入特征图按通道分组卷积,减少参数量(对比传统2-D CNN,参数减少50%)。
- 动态权重分配:通过注意力机制抑制冗余特征,提升计算效率。
-
强鲁棒性
- 抗噪声能力:在SNR=-4dB噪声下,准确率仍达94.12%(对比VGG16的9.66%误差)。
- 领域适应:通过批量归一化(BN)标准化特征分布,跨负载场景准确率提升20%+。
-
高效推理
- 单次预测耗时<1ms(RTX 2060 GPU),满足工业实时性需求。
三、核心代码实现(PyTorch)
import torch.nn as nn
import torch.nn.functional as Fclass LEFE_Net(nn.Module):def __init__(self, num_classes=10):super(LEFE_Net, self).__init__()# 振动特征提取器(VFE)self.vfe = nn.Sequential(nn.Conv1d(1, 8, 9, padding=4),nn.ReLU(),nn.Conv1d(8, 16, 9, padding=4),nn.ReLU(),nn.Conv1d(16, 32, 9, padding=4),nn.ReLU(),nn.Conv1d(32, 64, 9, padding=4),nn.ReLU())# 特征图处理器(FMP)self.fmp = nn.Sequential(SplitCNN(64, 8), # 分组数=8SplitCNN(64, 8),SplitCNN(64, 8),SplitCNN(64, 8))# 分类器self.classifier = nn.Sequential(nn.Linear(64 * 64, 256),nn.ReLU(),nn.Linear(256, num_classes))def forward(self, x):# x: [B, 1, 1024]x = self.vfe(x) # [B, 64, 64]x = self.fmp(x) # [B, 64, 64]x = x.view(x.size(0), -1) # [B, 64 * 64]x = self.classifier(x) # [B, num_classes]return xclass SplitCNN(nn.Module):def __init__(self, in_channels, groups):super(SplitCNN, self).__init__()self.groups = groupsself.convs = nn.ModuleList([nn.Conv2d(in_channels//groups, in_channels//groups, (3,3), padding=1)for _ in range(groups)])self.sam = SAM()self.bn = nn.BatchNorm2d(in_channels//groups)self.relu = nn.ReLU()self.maxpool = nn.MaxPool2d(2)def forward(self, x):# x: [B, C, H, W]split_x = torch.split(x, self.groups, dim=1)outputs = []for conv in self.convs:outputs.append(conv(split_x.pop(0)))x = torch.cat(outputs, dim=1)x = self.sam(x) # 空间注意力x = self.bn(x)x = self.relu(x)x = self.maxpool(x)return xclass SAM(nn.Module):def __init__(self):super(SAM, self).__init__()def forward(self, x):# x: [B, C, H, W]avg_pool = F.avg_pool2d(x, (H,W)) # 全局平均池化attn = torch.sigmoid(avg_pool)return x * attn.unsqueeze(2).unsqueeze(3)
四、实验结果与对比
1. 数据集与指标
- 数据集:CWRU、Paderborn、Southeast University(共3类噪声场景)。
- 评估指标:准确率(Accuracy)、FLOPs(浮点运算量)、参数量(Params)。
2. 对比实验
模型 | 参数量 (M) | FLOPs (G) | CWRU Acc (%) | Paderborn Acc (%) | SEU Acc (%) |
---|---|---|---|---|---|
LEFE-Net | 0.056 | 0.145 | 94.12 | 95.62 | 92.08 |
CNN | 0.234 | 0.562 | 83.22 | 88.11 | 81.25 |
MobileNet | 0.412 | 0.389 | 79.38 | 73.83 | 65.16 |
VGG16 | 138.3 | 173.66 | 95.99 | 96.75 | 98.84 |
3. 抗噪声能力
- 测试条件:SNR=-8dB至8dB。
- 结果:LEFE-Net在SNR=-4dB时仍保持94.68%准确率,显著优于传统模型(如SVM仅41.75%)。
4. 领域适应性
- 测试场景:负载突变(如CWRU负载从3hp→1hp)。
- 结果:LEFE-Net平均准确率96.54%,远超VGG16(79.59%)和MobileNet(79.34%)。
五、总结与展望
LEFE-Net通过轻量化设计、空间注意力机制和领域适应技术,在轴承故障诊断任务中实现了高精度、低延迟和高鲁棒性。其核心优势在于:
- 部署友好:参数量仅0.056M,适合边缘设备实时推理。
- 抗干扰强:在强噪声下仍保持高准确率。
- 适应性强:跨负载场景性能稳定。