亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

科羚深度學堂-Swin-transformer結合CBAM+GRU故障診斷模型創新

標簽:
人工智能

代码数据下载:
代码下载后有两种 运行方式, 第一种是基于 Pycharm 编辑器的
第二种 基于 Jupyter的(也可以安装VSCode)

二、代码文件介绍

  1. 数据集介绍,必看教程(特别详细)
    在轴承故障数据集振动信号的时域表示中,通常将时间作为横轴,振动信号的幅值作为纵轴。具体来说:
  • 横轴(X轴)代表时间:时间是指振动信号采集的时刻或时间序列中的时间点。它表示了信号采集的顺序和时间间隔。横轴上的单位通常是秒(s)或毫秒(ms),取决于信号采集的频率和持续时间。
  • 纵轴(Y轴)代表振动信号的幅值:振动信号的幅值表示了在特定时间点或时间段内的振动强度或振幅。它反映了振动信号的能量或振幅大小。在轴承故障数据集中,纵轴(Y轴)代表的是轴承的振动信号的幅值,以加速度(Acceleration)作为单位。纵轴上的数值表示轴承在特定时间点或时间段内的振动加速度值。

振动加速度是指物体在振动过程中的加速度变化,它是描述振动强度和振动频率的重要指标之一。在轴承故障数据集中,通过对轴承进行传感器测量,可以获取到轴承在运行过程中产生的振动信号,其幅值通过加速度来表示。
通过时域显示,我们可以观察到振动信号随时间的变化情况,包括振动的周期性、幅值的变化、脉冲或波形的形状等。这有助于分析信号中的特征、频率成分、周期性或随机性等,并对振动信号的特征进行故障诊断、频谱分析、波形分析等进一步处理和解释。
1.2 凯斯西储大学轴承数据集 描述的是什么数据?该数据集是一个常用的轴承故障数据集,用于故障诊断和预测的研究。该数据集包含了来自不同故障模式和工作条件下的轴承振动数据。
数据集描述的是在旋转机械系统中使用的轴承的振动信号数据。轴承是旋转机械中的重要组件,常常承受着高速和高负荷的工作环境,因此容易发生故障。自身内部的缺陷有很多种像在加工生产时产生的或者在组装过程中导致的形变,外部环境所导致的故障也有很多种例如变形、磨损、裂变等。通过监测轴承的振动信号,可以获得关于轴承运行状态的信息,进而进行故障诊断和预测。
该实验台如图所示,其组成为:

  • 一个1.5KW(2马力)的电动机(图左侧);
  • 一个扭矩传感器/ 译码器(图中间连接处);
  • 一个功率测试计(图右侧);
  • 电子控制器(图中没显示) 。
    待测轴承:
  • 基座数据
  • 电机驱动端
  • 电机风扇端

1.4 以上三个不同位置的振动数据的区别解读通过在电机壳体的驱动端、风扇端和基座上放置加速度计,可以获取到三个不同位置的振动数据。这些数据的区别在于它们所测量的振动信号反映的是不同的物理现象和特征,因而可以提供不同的信息用于故障诊断和监测。

  • 驱动端数据:位于电机壳体的驱动端的加速度计测量的是电机驱动端的振动信号。这个位置上的振动信号主要受到电机转子的旋转和传动系统的激励影响,因此可以提供关于电机传动系统和驱动端的故障信息,例如轴承故障、齿轮啮合故障等。
  • 风扇端数据:位于电机壳体的风扇端的加速度计测量的是电机风扇端的振动信号。这个位置上的振动信号主要受到风扇叶片的旋转和风扇系统的激励影响,因此可以提供关于风扇系统的故障信息,例如风扇叶片失衡、风扇轴承故障等。
  • 基座数据:位于电机底座的加速度计测量的是整个电机系统的振动信号。这个位置上的振动信号受到电机整体结构和运行状态的影响,可以提供关于整个电机系统的故障信息,例如电机不平衡、底座松动等。

因此,通过收集不同位置上的振动数据,可以综合分析不同位置所提供的故障特征,从而更全面地了解电机系统的健康状况和故障状态。这有助于提高故障检测的准确性和针对性,以便及时采取适当的维护和修复措施。
1.4 官网数据集介绍这是西储大学轴承数据中心网页下载数据的界面

  1. Swin-CBAM+GRU故障诊断模型代码
    这个文件是创新模型的 pycharm 代码
    正式代码运行:
    (1)matfiles_to_csv.py
    先按照此文件 运行 制作 轴承数据
    (2)make_GADF_img_dataset.py
    运行,对特征的预处理,生成时频图像数据集
    (3)train.py
    运行,加载数据,定义网络,参数训练,
    (4)test.py
    模型评估

  2. 时频图像可视化与参数选取 代码文件
    [图片]
    是juputer 格式,这是创新模型的jupyter代码,推荐下载VSCode运行!

  3. 其他中间文件
    关于 提供的数据和代码文件:
    这样的属于 中间结果保存文件,不需要打开!!!
    不要在意,它 保留 是什么格式,要想 它保留前 是什么类型的数据,读取后 就是什么类型的数据。保存,就好比:一个黑箱子,你数据本来是什么格式,放进去,拿出来还是什么格式的,但是不要关心这个 黑箱子 是什么形状 。
    格式都是 中间二进制文件的,不用管,读取使用就行 。

[图片]

三、其他问题:

  • 关于环境问题,直接参考前面 环境安装教程,如果代码跑不通,绝对是自己设备电脑环境问题,因为代码测试很多遍了,在很多新的设备上运行过,没有问题的;建议按照我们的教程,重新创建新的环境,然后安装我们所需的包,我们教程提供 批量安装包的方法,速度很快!

  • 很多细节问题:参考代码运行必看文档!!!

四、模型结构和原理讲解

4.1 SwinTransformer 介绍
SwinTransformer是一种通用视觉任务的Backbone而存在的模型,以替代CNN:
[图片]

  • 层次化设计:Swin Transformer引入了层次化特征表示的概念,类似于CNNs中常见的金字塔结构。这使得它在处理高分辨率图像时更加高效,能够逐步聚合信息,并以多尺度特征应对不同的视觉任务。

  • 滑动窗口机制:Swin Transformer通过滑动窗口的方式计算注意力,使得每个窗口内部的注意力计算复杂度大幅降低。这种局部注意力机制有效地解决了ViT在高分辨率图像处理时的计算瓶颈问题。

  • 移位窗口策略:为了增强不同窗口间的信息交流,Swin Transformer采用了移位窗口策略(Shifted Window)。这种策略通过在相邻层中移动窗口的位置,实现了跨窗口的信息交互,从而提升了模型的表达能力

4.2 模型简介
[图片]
将时频图像和一维时序信号相结合,并使用CBAM注意力机制优化的SwinTransformer和GRU多模态特征融合模型,来进行故障信号分类,能够有效地结合时频图像空间特征和一维信号时间序列特征,能够充分利用多模态特征的优势。
4.3 创新点介绍
创新一:多模态融合
本模型将时频图像和一维时序信号进行多模态融合,充分利用这两类数据的互补性。时频图像通过格拉姆角场GAF,将信号的频率和时间特征可视化。而一维时序信号则保留了原始时间依赖信息,适合使用递归神经网络(RNN)或GRU进行处理。通过融合这两种特征:

  • 时频图像捕捉了信号中的高频、低频变化趋势,有助于识别频域中的故障特征。
  • 一维时序信号保留了信号的时间依赖特性,能够反映出故障在时间上的动态演化。
    这种双通道的数据融合使得模型能够同时利用时间、频率和图像特征,从而大幅提升了故障分类的准确性。

创新二:基于CBAM注意力机制优化的SwinTransformer
[图片]
CBAM(Convolutional Block Attention Module)是一种用于卷积神经网络(CNN)的注意力机制,旨在提高模型的表示能力。CBAM通过结合通道注意力(Channel Attention)和空间注意力(Spatial Attention)来增强特征表示,从而提升模型性能。
将 CBAM 模块插入到 SwinTransformer 的之后,以增强特征表示:CBAM 提供了通道注意力和空间注意力两个模块。这两个模块分别从特征图的通道维度和空间维度增强特征表示。通过在 SwinTransformer后插入 CBAM,网络可以更好地捕捉不同特征的重要性,从而在更深的层次上进行有效的信息提取和聚合。

创新三:基于一维信号序列堆叠的时序特征提取

[图片]
在处理一维时序信号时,我们对一维信号序列数据进行了堆叠,采用了GRU(门控循环单元)来提取时序特征。这一创新设计加快了GRU的计算效率,在处理一维时序信号时,能够更加有效地提取出故障发生时的关键特征,显著提高了信号分类的精度。

创新四:特征融合优势
模型中的多模态融合部分,通过Swin-CBAM提取时频图像特征和GRU处理一维信号特征后,我们采用特征拼接融合的方式,将两种特征结合。相比于仅使用单一模式特征的传统模型,融合后的特征在分类任务中的表现更加优越,主要优势体现在:

  • 时频图像和时序信号各自提供了不同视角的特征信息,前者提供频率域特征,后者保留了时间依赖特性,两者的结合能更加全面地反映信号的故障特征。
  • 通过特征融合,模型在捕捉不同模式下的故障特征时更加鲁棒,尤其在复杂的故障信号环境下,融合的特征能够更好地应对噪声干扰和信号变化。
    这种特征融合策略使得我们的模型在多种故障模式下,依然能够保持高效准确的分类性能,提升了模型在实际应用中的鲁棒性和泛化能力。

轴承故障数据的预处理
[图片]

[图片]
导入数据参考之前的文章,进行故障10分类的预处理,凯斯西储大学轴承数据10分类数据集:
train_set、val_set、test_set 均为按照7:2:1划分训练集、验证集、测试集,最后保存数据
上图是数据的读取形式以及预处理思路

数据预处理,视频图像变换
我们提供了马尔可夫转换场 MTF 、递归图 RP 、格拉姆角场GAF、连续小波变换CWT、短时傅里叶变换STFT五种时频图像变换方法,可灵活替换多模态特征中的时频图像类型!

[图片]

本文采用格拉姆角场 GADF来作为时频图像变换的处理方法,生成的时频图像如下所示:

[图片]

基于多模态融合的轴承故障诊断模型

设置参数,训练模型

[图片]
50个epoch,准确率98%,用1D-GRU+2D-GADF-SwinTransformer-CBAM网络分类效果显著,模型能够充分提取轴承故障信号的空间和时序特征,收敛速度快,性能优越,精度高,效果明显!

模型评估准确率、精确率、召回率、F1 Score
[图片]

故障十分类混淆矩阵:
[图片]
其他可视化图:
(1)分类标签可视化

[图片]
原始数据 t-SNE特征可视化
[图片]
(3)模型训练后的 t-SNE特征可视化:

[图片]

首先,我们从数据的 形状 进行讲解
输入
[32, 1024]
第一个维度 batch_size
第二个维度 特征数\通道数
第三个维度 信号序列长度

首先是对 batch_size讲解:

  • 制作完的数据集 和 送入 网络中的数据集长度 会不一样,比如说 ,测试集有100个样本, 你的 batch_size 设置为16 那么送入网络中的数据集 就是100/16 = 6 …4 就是有6个batch, 共96个样本, 剩下来的4个会被舍弃,就是保留的样本量一定会被 batch_size整除,余量会被舍弃,这里不理解的话,百度再查!!!
  • batch_size 选择,一般为 2 的次数个,比如 8, 16, 32, 64 ,128, 256;样本量多batch_size 就大, 样本量特别少,batch_size 就大就少,这个后面可以通过对比实验进行测试,再选择;

其次序列长度:
我们建议信号序列的采样长度在数据集制作的时候,就设置为1024,我们参考了大量论文,也做了很多对比试验,长度短一点训练效果不好,更长会导致更大的训练量,但是性能提升不明显,边际效益低;

本文由博客一文多发平台 OpenWrite 发布!

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消