轴承故障:交叉注意力机制融合时域、频域特征的FFT + CNN-BiLSTM-CrossAttention识别模型

作品简介

此代码已经继续加入 轴承故障—交叉注意力创新模型 全家桶:轴承故障—交叉注意力创新模型全家桶 (mbd.pub)

全家桶包括以下内容:

  1. 轴承故障:基于交叉注意力特征融合的VMD+CNN-BiLSTM-CrossAttention故障识别模型 (mbd.pub)
  2. 轴承故障:交叉注意力机制融合时域、频域特征的FFT + CNN-BiLSTM-CrossAttention识别模型 (mbd.pub)
  3. 轴承故障:交叉注意力机制融合时域、频域特征的FFT + CNN-Transform-CrossAttention识别模型 (mbd.pub)
  4. Python轴承故障诊断 (14)高创新故障识别模型 (mbd.pub)
  5. Python轴承故障诊断 (16)高创新故障识别模型(二) (mbd.pub)
  6. Python轴承故障诊断 (20)高创新故障识别模型(三) (mbd.pub)
  7. Python轴承故障诊断 | 多尺度特征交叉注意力融合模型 (mbd.pub)

推荐--全家桶,性价比更高!!

论文创新!!!

交叉注意力机制能够对不同特征之间的关联程度进行建模,从故障信号频域、时域特征中属于提取出对模型识别重要的特征,效果明显

包括 完整的轴承故障数据集, 以及已经生成制作好的故障信号数据集、分类数据和标签集,对应代码均可以运行,还有快速傅里叶变换FFT示例

50个epoch,准确率100%,用FFT+CNN-BiLSTM-CrossAttention网络分类效果显著,模型能够充分提取轴承故障信号的空间和时序特征和频域特征,收敛速度快,性能优越, 迄今为止,是目前往期文章方法中精度最高的方法。创新度也有!!!

包括数据预处理的代码,和FFT+CNN-BiLSTM-CrossAttention分类代码

环境:python 3.9

任何环境安装或者代码问题,请联系作者沟通交流,对于购买者,作者免费解决后续问题,关注微信公众号[建模先锋],联系作者;



创新点:利用交叉注意力机制融合模型!

前言

本文基于凯斯西储大学(CWRU)轴承数据,进行快速傅里叶变换(FFT)的介绍与数据预处理,最后通过Python实现基于FFT的CNN-BiLSTM-CrossAttention模型对故障数据的分类。


模型整体结构

模型整体结构如下所示,一维故障信号经过FFT变换的频域特征以及信号本身的时域特征分别经过CNN卷积池化操作,提取全局特征,然后再经过BiLSTM提取时序特征,使用交叉注意力机制融合时域和频域的特征, 通过计算注意力权重 ,使得模型更关注重要的特征再进行特征增强融合,最后经过全连接层和softmax输出分类结果。

封面1.png

时域和频域特征提取:

  • 对时域信号应用FFT,将信号转换到频域。
  • 利用CNN对频域特征进行学习和提取。
  • CNN的卷积层可以捕捉频域特征的局部模式。

BiLSTM网络:

  • 将时域信号输入BiLSTM网络。
  • BiLSTM(双向长短时记忆网络)可以有效地捕捉时域信号的长期依赖关系。

交叉注意力机制:

  • 使用交叉注意力机制融合时域和频域的特征。
  • 这可以通过计算注意力权重,使得模型更关注重要的特征


1 快速傅里叶变换FFT原理介绍


傅里叶变换是一种信号处理和频谱分析的工具,用于将一个信号从时间域转换到频率域。而快速傅里叶变换(FFT)是一种高效实现傅里叶变换的算法,特别适用于离散信号的处理。


公式.png


第一步,导入部分数据

from scipy.io import loadmat

import numpy as np

import matplotlib.pyplot as plt

import matplotlib

matplotlib.rc("font", family='Microsoft YaHei')


# 读取MAT文件  

data1 = loadmat('0_0.mat')  # 正常信号

data2 = loadmat('21_1.mat') # 0.021英寸 内圈

data3 = loadmat('21_2.mat') # 0.021英寸 滚珠

data4 = loadmat('21_3.mat') # 0.021英寸 外圈

# 注意,读取出来的data是字典格式,可以通过函数type(data)查看。


第二步,故障信号可视化

故障可视化.png


第三步,故障信号经过FFT可视化

FFT可视化.png


2 轴承故障数据的预处理

2.1 导入数据

参考之前的文章,进行故障10分类的预处理, 凯斯西储大学轴承数据 10分类数据集:

10分类故障图.png


train_set、val_set、test_set 均为按照7:2:1划分训练集、验证集、测试集,最后保存数据

数据预处理思路.png

上图是数据的读取形式以及预处理思路


2.2 制作数据集和对应标签

数据集制作.png


3 交叉注意力机制


交叉注意力机制.png


3.1 Cross attention概念

  • Transformer架构中混合两种不同嵌入序列的注意机制
  • 两个序列必须具有相同的维度
  • 两个序列可以是不同的模式形态(如:文本、声音、图像)
  • 一个序列作为输入的Q,定义了输出的序列长度,另一个序列提供输入的K&V

3.2 Cross-attention算法 

  • 拥有两个序列S1、S2
  • 计算S1的K、V
  • 计算S2的Q
  • 根据K和Q计算注意力矩阵
  • 将V应用于注意力矩阵
  • 输出的序列长度与S2一致

公式222.png


在融合过程中,我们将经过FFT变换的频域特征作为查询序列,时序特征作为键值对序列。通过计算查询序列与键值对序列之间的注意力权重,我们可以对不同特征之间的关联程度进行建模。


4 基于FFT+CNN-BiLSTM-CrossAttention的轴承故障识别模型

4.1 网络定义模型

模型定义.png

注意:输入故障信号数据形状为 [32, 1024], batch_size=32, ,1024代表序列长度。


4.2 设置参数,训练模型

模型训练.png


50个epoch,准确率100%,用FFT+CNN-BiLSTM-CrossAttention融合网络模型分类效果显著,模型能够充分提取轴承故障信号的空间和时序特征和频域特征,收敛速度快,性能优越,精度高,交叉注意力机制能够对不同特征之间的关联程度进行建模,从故障信号频域、时域特征中属于提取出对模型识别重要的特征,效果明显。


4.3 模型评估

准确率、精确率、召回率、F1 Score

模型评估.png

故障十分类混淆矩阵:

混淆矩阵.png

面包多.png









1. 版权声明:原创不易,转载请注明转自微信公众号[建模先锋]

2. 喜欢的朋友可以点个关注,给文章点个“在看”,分享朋友圈或讨论群

3. 关注微信公众[建模先锋], 回复”轴承故障“免费获取凯斯西储大学轴承数据集




创作时间: