Bootstrap

保姆级教程之连续小波变换-CNN,ResNet,CNN-SVM,CNN-BiGRU,CNN-LSTM的故障诊断,MATLAB代码...

本次为大家带来:

采用连续小波变换时频图作为故障特征提取的手段,并构建多种机器学习诊断方法,可以自行搭配。包含的有:

CWT-CNN,CNN-SVM,CWT-ResNet,CWT-CNNBiGRU,CWT-CNNLSTM。

内容简介

①对官方下载的西储大学数据进行处理。处理的方法参考往期文章:西储大学轴承诊断数据处理,matlab免费代码获取

②通过连续小波变换 (Continuous Wavelet Transform,CWT)将轴承 数据集转换为时频图,以提取频域和时域信息, 并为后续的故障诊断提供更详细的特征;

③为了方便模型的训练,以及考虑到计算机的内存,将时频图重新调整为64×64×3的尺寸,并保存提取到的特征数据。

④分别搭建:CNN,ResNet,CNNBiGRU,CNNLSTM,CNNSVM模型,将特征数据送入模型,将70%的数据作为训练集,30%作为测试集,对模型展开训练与测试。

CWT-CNN模型结构如下:

b4cbb9345ce13dde951d20b20e76210b.png

内容详解

一,对官方下载的西储大学数据进行处理,步骤如下:

  1. 一共加载10种数据,然后取每个数据的DE_time(%DE是驱动端数据 FE是风扇端数据 BA是加速度数据 选择其中一个就行)

  2. 2.设置滑动窗口w,每个数据的故障样本点个数s,每个故障类型的样本量m

  3. 将所有的数据滑窗完毕之后,综合到一个data变量中

  4. 有关西储大学数据的处理之前有文章也讲过,大家可以看这篇文章:西储大学轴承诊断数据处理,matlab免费代码获取

    最后得到的数据是一个1000*2048的矩阵,其中1000是样本量,2048是特征。1000又等于100*10,10是指10种故障状态,100是指每种状态有100个样本。在代码中是data_total_1797.mat

二,采用连续小波变换将数据进行时频图转换

连续小波变换时频图:

dfc3a29a6b0595971a85e243993122ad.png

三,将构建好的特征向量送入不同模型进行训练与测试

将每种状态的前70组用于训练,后30组用于测试。得到的结果如下:

1cb39848e6bc48fe165970cd3cda2678.png

73bedda2b4aa68f7f315696699ae792f.png

e08ddee89d5f1cfb8203be8c7b4fa737.png

803c2d84f2788123432d9325bfb4397c.png

ResNet结构:

1a959c0a1fcdbc2598d38944d2fcf57c.jpeg

ff31586d4f0ef232a6cf54b95e78764c.png

721501c9c19d2ba5a4a21bbe3b6f91c3.png

添加了T-sne降维前后分布图:

fee1437974100dab1393e21b7e930a86.png

585b585e7703dad81cc5ddc1b967e693.png

所有代码目录截图:

ba926c3568e3a2281f77a682ad40af08.jpeg

按照程序步骤一步步执行即可,说明.txt对程序的执行步骤进行了说明。

以上所有图片均可运行出来。

代码获取

链接:https://mbd.pub/o/bread/ZZyZmJpy

a23c7b76001c526e357a5cab04768972.png

已将此代码添加至故障诊断全家桶中,

已购买全家桶的小伙伴,可以直接跳转以下链接下载哦!

故障诊断全家桶获取链接:

https://mbd.pub/o/bread/ZJ2Ym5ts

16cc613b9331c12bdc19c468dbada050.png

参考文献:

[1]宋乾坤,周孟然.基于CWT-CNN的滚动轴承故障诊断[J].重庆工商大学学报(自然科学版),2023,40(03):42-47.

[2]卓识,战利伟,白晓峰等.基于CWT-AT-CNN的航空滚动轴承故障诊断方法[J/OL].轴承,1-9[2024-03-17].

;