基于通道注意机制联合多尺度卷积神经网络的滚动轴承故障诊断

本文提出一种基于多尺度卷积神经网络的滚动轴承故障诊断方法。利用凯斯西储大学的SKF型轴承数据集,通过多尺度特征提取及通道注意力机制增强故障特征,实现高精度的故障分类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、数据来源

实验数据采用的是美国凯斯西储大学(CWRU)轴承数据中心的SKF型轴承的DE驱动端加速度数据,其中选用采样频率为48kHz,载荷为1hp的加速度数据进行实验分析,根据损伤部位的不同,分为滚动体、内圈、外圈六点钟方向故障,故样本共有10类。其次,对所选择的数据进行划分,首先根据转速以及采样频率确定每类样本的长度为1024个数据点,对数据进行分段处理构建数据集;然后选择80%的样本数据作为训练集,20%的样本数据作为测试集;最后对数据进行均值和标准差的数据标准化处理。具体信息如下:
在这里插入图片描述

二、模型结构

所提出的模型总体结构如下图所示,整个模型可分为多尺度特征提取、多尺度特征融合和故障分类三部分。多尺度特征采用的是三个网络分支对数据进行不同尺度的特征提取,由于传统的卷积运算忽略了不同通道特征对判断预测结果的重要程度,故在网络分支最后一层引入了通道注意力机制模块(ECA),对不同滤波器学习到的特征进行自适应的赋予不同的权重,增强与故障信息相关的特征,抑制无效的特征,提高网络性能,通道注意块的框架如图所示。然后融合每个网络分支通过学习获得不同尺度的特征,最后通过全连接层进行分类。
模型结构
ECA结构

三、实验验证

使用构建的数据集对模型进行验证,训练过程中的准确率曲线和损失函数曲线如下图所示,从整个训练阶段可以看到,准确率曲线没有明显的波动现象,随着迭代次数的增加,数值趋于平稳;损失率曲线快速下降,在迭代次数10次以后,损失值接近于0。从准确率曲线和损失函数曲线可以看出,明显训练效果良好,没有存在过拟合的情况。
在这里插入图片描述
为更进一步考察模型对故障的识别和故障误判情况,引入了混淆矩阵对故障诊断结果进行详细的量化分析。从混淆矩阵可以看到只有部分样本识别错误,大部分样本还是完全的被识别出来。综合来看,模型对滚动轴承故障具有优越的识别能力和较高的诊断准确率。
在这里插入图片描述

四、可视化分析

为了更直观地了解数据在模型中分布变化过程,加深对多尺度卷积神经网络故障诊断的理解,采用t-SEN方法对轴承健康状态分类的整个过程进行可视化。模型学习的特征分布如下图所示。图 (a)为原始信号的分布,图 (b)、(c)、d)为网络各分支的特征分布,图 (e)为最终多尺度融合特征的分布和全连接层的特征分布。从可视化图中可以看出,不同类型信号的初始分布比较混乱,随着网络的深入,学习到的特征变得越来越可分割。融合后的多尺度特征使信号类别基本完全分离,证明了不同尺度特征的互补性,提高了网络诊断的可靠性,也证明了多尺度特征融合通道注意力机制思想的正确性。
在这里插入图片描述
代码和数据集:https://mbd.pub/o/bread/ZpWbm5hv

### 领域自适应迁移学习在故障诊断中的应用 #### 方法概述 领域自适应迁移学习旨在解决源域和目标域之间的数据布差异问题,在故障诊断场景下尤为有用。当源域拥有大量标注良好的样本而目标域仅有少量甚至无标注样本时,这种方法能够有效提升模型性能[^1]。 #### 实现流程 为了实现这一过程,通常会采取以下几个方面的工作: - **特征提取**:选择合适的神经网络架构来抽取设备运行状态的有效表征向量。例如,可以采用DarkNet19这样的卷积神经网络作为基础框架来进行初步的特征捕捉[^2]。 - **特征对齐**:通过特定算法使来自不同领域的特征表示尽可能相似,从而减少因环境变化带来的负面影响。这可以通过最小化两个布间的距离度量函数(如MMD最大均值差异)来达成。 - **标签预测**:对于未标记的目标域数据,训练后的模型可以直接用来进行故障类型的类判断;而对于部已知类别的情况,则可通过半监督学习的方式进一步增强泛化能力。 #### 技术细节说明 针对具体的工业应用场景,还可以加入更多高级组件以改善整体效果: - **时间序列建模**:鉴于机械设备工作过程中产生的振动信号往往具有较强的时间依赖特性,因此可以在原有CNN基础上叠加GRU单元,以便更好地理解动态模式的变化趋势。 - **注意机制引入**:考虑到某些局部区域可能蕴含着更为重要的健康状况指示信息,故而在顶层融入多头自我注意层有助于突出这些关键要素的影响权重。 - **优化策略定制**:借助诸如麻雀搜索法之类的启发式寻优手段调整超参数配置,确保最终构建出既稳定又高效的检测体系。 ```python import torch.nn as nn class FaultDiagnosisModel(nn.Module): def __init__(self, num_classes=7): super(FaultDiagnosisModel, self).__init__() # DarkNet19 backbone for feature extraction self.backbone = darknet.DarkNet([1, 2, 8, 8, 4]) # GRU layer to handle sequential data self.gru = nn.GRU(input_size=1024, hidden_size=512, batch_first=True) # Multi-head Self Attention mechanism self.attention = multihead_attn.MultiHeadAttention(d_model=512, n_heads=8) # Fully connected layers for classification task self.fc = nn.Linear(512, num_classes) def forward(self, x): features = self.backbone(x) gru_out, _ = self.gru(features.unsqueeze(dim=1)) attn_output = self.attention(gru_out)[0] logits = self.fc(attn_output[:, -1, :]) # Use the last time step output return logits ```
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值