一、研究背景與挑戰
軸承作為旋轉機械的核心部件,其健康狀態直接影響設備運行的安全性和可靠性。傳統的故障診斷方法(如振動分析、油液檢測)依賴人工經驗,效率低且易受主觀因素影響。近年來,基于深度學習的數據驅動方法憑借強大的特征提取能力,成為軸承故障診斷的主流方案。然而,現有方法普遍存在以下痛點:
- ?高計算成本?:復雜模型(如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,適合邊緣設備實時推理。
- ?抗干擾強?:在強噪聲下仍保持高準確率。
- ?適應性強?:跨負載場景性能穩定。
?