超高创新模型,不妨试试3DCNN故障诊断!MATLAB代码

作品简介

本期推出一种《基于多分辨率mel分析的3DCNN轴承故障诊断方法》,

思路大致就是:利用梅尔频谱分析,将一维故障数据转换为三维数据(至于如何做到的,这里不便公开!)然后送入3DCNN模型训练与测试,本实验分别在西储大学轴承数据和东南大学齿轮箱数据上进行了验证,准确率均可达到100%

同时为了使得文章不显单薄,我们还融合了3DCNN-SVM经典网络,你可以选择用或不用。

此方法为淘个代码独创,不要问,问就是肯定没有人用过!

还在冥思苦想创新点的童鞋,尽快看过来了!


本期代码实现功能:


①西储大学与东南大学齿轮箱两种数据的处理

②将处理得到的一维数据,采用梅尔频谱分析的方法,转换为三维数据

③采用3DCNN训练

④采用TSEN降维分析,结果可视化

⑤采用3DCNN-SVM训练和预测

模型结构图如下(visio格式):

内容详解

一、数据处理

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

  1. 一共加载10种数据,然后取每个数据的DE_time(%DE是驱动端数据 FE是风扇端数据 BA是加速度数据 选择其中一个就行)
  2. 设置滑动窗口w,每个数据的故障样本点个数s,每个故障类型的样本量m
  3. 将所有的数据滑窗完毕之后,综合到一个data变量中
  4. 有关西储大学数据的处理之前有文章也讲过,大家可以看这篇文章:西储大学轴承诊断数据处理,matlab免费代码获取
  5. 最后得到的数据是一个1000*2048的矩阵,其中1000是样本量,2048是特征。1000又等于100*10,10是指10种故障状态,100是指每种状态有100个样本。在代码中是data_total_1797.mat

②对官方下载的东南大学数据进行处理,步骤如下:

  1. 一共加载5种齿轮箱数据,选取的是转速为20Hz(1200rpm)-负载0V(0Nm) 下的5种故障数据:
  2. 缺损(Chipped tooth,齿轮上有裂纹)
  3. 正常运行(Health working state)
  4. 断齿(Missing tooth)
  5. 在齿轮根部的裂纹(Root fault)
  6. 齿面磨损(Surface fault)
  7. 设置滑动窗口w,每个数据的故障样本点个数s,每个故障类型的样本量m
  8. 将所有的数据滑窗完毕之后,综合到一个data变量中
  9. 最后得到的数据是一个1000*2048的矩阵,其中1000是样本量,每个故障取了200个样本,2048是特征。1000又等于200*5,5是指5种故障状态,200是指每种状态有200个样本。在代码中是data_total.mat



二,对数据进行梅尔频谱变换


变换后的数据为一系列的3D数据,第一行为数据本身,第二行为标签列



三,结果展示


西储大学轴承数据诊断结果(每组的前70个样本用于训练,后30个用于测试):


东南大学齿轮箱数据诊断结果(每组的前140个样本用于训练,后60个用于测试):


此照程序代码每个文件夹都包含了一个说明.txt,请运行前仔细阅读,会帮助你更好的理解程序。步骤一步步执行即可。

附带文档说明



创作时间: