1.效果运行视频:四通道信息融合下的齿轮箱故障诊断(Python代码,SVM模型和CNN模型进行对比实验)_哔哩哔哩_bilibili
用到的库:
2.数据集介绍:数据免费下载链接(不要积分):https://download.csdn.net/download/qq_40840797/88380869?spm=1001.2014.3001.5501
齿轮箱故障诊断数据集包括使用SpectraQuest的齿轮箱故障诊断模拟器记录的振动数据集。 数据集使用4个振动传感器在四个不同的方向上记录,采样频率为3000hz并在负载从0%到90%的变化下进行记录。包括两种不同的情景:
- 健康状态:文件夹Healthy
- 齿轮破损故障状态:文件夹BrokenTooth
总共有20个文件(每个文件夹下10个文件),其中10个用于健康的齿轮箱,另外10个用于破损的齿轮箱。每个文件对应于从0%到90%负载的逐步增加。
Healthy文件夹打开如图所示(每个表格对应于从0%到90%负载的逐步增加,因此一共10个表格):
BrokenTooth 文件夹打开如下图所示(每个表格对应于从0%到90%负载的逐步增加,因此一共10个表格):
这里以正常状态下的第一个表格(h30hz0.csv文件为例)展示
开始位置(数据集使用4个振动传感器在四个不同的方向上记录,)
截止位置(数据集使用4个振动传感器在四个不同的方向上记录):
这里以故障状态下的第一个表格(b30hz0.csv文件为例)展示
开始位置(数据集使用4个振动传感器在四个不同的方向上记录)
截至为止(数据集使用4个振动传感器在四个不同的方向上记录)
2。项目流程(有四份代码)
第一份代码data_plot.py,功能是原始数据展示:
以传感器1(其它3个传感器跟传感器1采集时间和采样频率均相同)为例,所有数据展示(b:蓝色柱子为破损文件夹下的数据集,y轴为负载,横轴为采集点的个数)
传感器1下负载为0和90%时,分别展示故障和健康的信号。
传感器2下负载为0和90%时,分别展示故障和健康的信号。
传感器3下负载为0和90%时,分别展示故障和健康的信号。
传感器4下负载为0和90%时,分别展示故障和健康的信号。
10种负载下健康和故障的数据总展示图(第一行是传感器1,第二行是传感器2,第三行是传感器3,第四行是传感器4)
一共是10列(每列里面有蓝色和黄色,蓝色为故障状态,黄色为健康状态),从负载0-负载90%。
因为要把20个表格,每个表里又有4个传感器的数据同时绘制出来,所以每个信号显示的较小。
a1传感器下的数值分布图(蓝色为故障状态,黄色为健康状态)
a2传感器下的数值分布图(蓝色为故障状态,黄色为健康状态)
a3传感器下的数值分布图(蓝色为故障状态,黄色为健康状态)
a4传感器下的数值分布图(蓝色为故障状态,黄色为健康状态)
第二份代码SVM.py
以512的固定长度切割信号,一共生成3941个样本(故障状态1960个样本,正常状态1981个样本,如下图所示)
故障状态样本集(最左侧为序列号0-1959,一共1960个样本)
正常状态样本集
总的样本集
样本数据归一化处理后,划分训练集与测试集(3:2)
测试集的准确率如下
第三份代码CNN.py
以512的固定长度切割信号,一共生成3941个样本(故障状态1960个样本,正常状态1981个样本,如SVM章节所示)
样本数据归一化处理后,划分训练集与测试集(3:2),epoch为100
测试集的准确率如下
对整个项目感兴趣的,可以关注最后一行
import os
import numpy as np
import tensorflow as tf
from tensorflow.keras import layers, models
from sklearn.model_selection import train_test_split
import pandas as pd
from matplotlib import pyplot as plt
#数据及代码的压缩包:https://mbd.pub/o/bread/ZJ6amJ9y