基于一维WDCNN的滚动轴承故障诊断(十分类,Python代码,TensorFlow框架,压缩包包含数据集和代码,解压缩后直接运行)

 

本次项目是在https://github.com/yfshich/wdcnn_bearning_fault_diagnosis-master

开源项目基础上做的迭代曲线和混淆矩阵和特征可视化 

1项目文件

data文件夹装载的是凯斯西楚大学(CWRU)轴承数据集

以0HP文件夹为例,进行展示

main_0HP.py、main_1HP.py、main_2HP.py和main_3HP.py是故障诊断主程序,分别对应不同负载的数据,这四个程序只有数据调取路径这行代码不一样,其它部分都相同,只是担心新手不会修改数据路径,因此分成了四个脚本。preprocess.py是数据预处理程序,将原始数据变成一个个样本,被主程序调用。

效果运行视频:基于WDCNN的滚动轴承故障诊断(十分类,Python代码,压缩包包含数据集和代码,解压缩后直接运行)_哔哩哔哩_bilibili

运行环境库要求:TensorFlow>=2.4.0即可 

2.效果图

0HP数据集

训练集准确率

验证集准确率 

1HP数据集

 

 

 

 

代码

from keras.layers import Conv1D, Dense, Dropout, BatchNormalization, MaxPooling1D, Activation, Flatten
from keras.models import Sequential
from keras.utils import plot_model
from keras.regularizers import l2
import preprocess
from keras.callbacks import TensorBoard
import numpy as np
#代码和数据集:#https://mbd.pub/o/bread/mbd-ZJeXlplv

好的,我可以为您提供一个基于一维CNN滚动轴承故障诊断的示例代码。首先,我们需要下载德国 Paderborn 大学提供的滚动轴承数据集。该数据集包含了四个不同状态下的滚动轴承振动信号,包括正常状态、内圈故障、外圈故障和滚珠故障。接下来,我们需要使用MATLAB或Python读取数据集,并使用一维CNN对数据进行训练和测试。 以下是一个Python示例代码,实现了基于一维CNN滚动轴承故障诊断: ```python import numpy as np import scipy.io as sio import tensorflow as tf from tensorflow.keras import layers # 读取数据集 data = sio.loadmat('dataset.mat') X_train = data['X_train'] y_train = data['y_train'] X_test = data['X_test'] y_test = data['y_test'] # 构建模型 model = tf.keras.Sequential([ layers.Conv1D(32, 3, activation='relu', input_shape=(X_train.shape[1], 1)), layers.MaxPooling1D(2), layers.Conv1D(64, 3, activation='relu'), layers.MaxPooling1D(2), layers.Flatten(), layers.Dense(64, activation='relu'), layers.Dense(4, activation='softmax') ]) # 编译模型 model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) # 训练模型 model.fit(X_train, y_train, epochs=10, validation_data=(X_test, y_test)) # 测试模型 test_loss, test_acc = model.evaluate(X_test, y_test, verbose=2) print('Test accuracy:', test_acc) ``` 在上面的代码中,我们使用了一个包含两个卷积层和两个池化层的一维CNN模型。模型输入是一个滚动轴承振动信号的一维数组,输出是该信号所对应的故障状态。我们使用了Adam优化器和交叉熵损失函数进行模型训练,并在测试集上计算了模型的准确率。 需要注意的是,我们在读取数据时需要将数据转化为一维数组,并且在输入模型前需要将数组转化为三维张量,其中第一维表示样本数,第二维表示信号长度,第三维表示信号通道数(这里我们只有一个通道)。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深度学习的奋斗者

你的鼓励是我努力的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值