强噪声下基于mscnn-bigru-attention深度学习模型CWRU(凯斯西储大学)轴承故障诊断(Python代码,tensorflow框架,很容易替换模型和数据集,同时带诊断界面)
本文介绍了一种基于MSCNN-BiGRU-Attention深度学习模型的轴承故障诊断方法。实验采用CWRU轴承数据集,在四种工况下对十类轴承状态进行分类,并通过添加不同强度高斯白噪声验证模型的抗噪性能。项目包含数据处理、模型训练、可视化分析及GUI诊断界面等功能模块,实验结果显示模型在强噪声环境(-30dB)下仍保持较高诊断准确率。该方法为工业设备故障诊断提供了有效解决方案,尤其适用于噪声干扰严
1.效果视频(以0HP数据集为例,在-30DB下的测试准确率效果)强噪声下基于mscnn-bigru-attention深度学习模型CWRU(凯斯西储大学)轴承故障诊断_哔哩哔哩_bilibili
对原始信号分别添加不同强度的高斯白噪声,以模拟实验数据遇到的实际环境中干扰噪声。
原始信号(以0HP数据为例进行展示,可以明显看出十类原始信号非常纯净,有明显的冲击周期)

添加不同高斯白噪声图(CWRU数据集0hp负载下,内圈故障(IR07)的振动信号加入不同分贝噪声后变化情况)


添加高斯白噪声代码
高斯白噪声定义函数
def add_noise(x, snr):
"""输入原信号,信噪比,输出,加入高斯白噪声的信号
:param x: 原信号
:param snr: 信噪比
:return: 加入高斯白噪声的信号
"""
P_signal = np.sum(abs(x) ** 2) / len(x)
P_noise = P_signal / 10 ** (snr / 10.0)
return x + np.random.randn(len(x)) * np.sqrt(P_noise)
#代码和数据集压缩包下载:https://mbd.pub/o/bread/Zp2Zmp5s
每种负载下均进行了抗噪实验实验结果

2.数据集介绍
2.1.西储大学滚动轴承数据集介绍
西储大学滚动轴承振动信号的实验数据源自美国凯斯西储大学(Case Western Reserve University,CWRU)电气工程实验室,其提供的数据集已经成为轴承故障诊断领域的标准参考之一,并已广泛应用于各类过程控制与故障诊断实验。试验台包括电机、加速度传感器、转矩传感器、编码耦合器和负载构成。在实验中,滚动轴承振动信号数据以多变量振动序列形式存在,并由数据记录仪在采样频率为12kHz和48kHz的环境下收集。根据转速与负载的不同,可以得到4个工况下的滚动轴承数据集,如表1所示。

表 1 4个工况具体数据
表中(0hp)工况指在转速1797r/min,负载0马力下收集的滚动轴承数据,其他符号以此类推。

图2 数据采集试验装置图
数据集处理
CWRU数据集的每种工况共有四种状态:正常状态(N)、内圈故障状态(IF)、外圈故障状态(OF)和滚珠故障状态(BF),同时根据故障部分尺寸的大小可以划分为三种尺寸:小尺寸(0.18毫米)、中尺寸(0.36毫米)和大尺寸(0.53毫米)。因此根据轴承状态和故障尺寸,每个工况中存在十种轴承状态,详见表2。

表2 轴承状态分类
3.项目文件介绍

3.1.checkpoint文件保存的是训练好的模型参数,以供GUI调用,进行对未知数据进行诊断

3.2.CWRU里面就是保存的原始数据

3.3.测试样本文件夹里面保存的样本数据集打乱后,形成的测试样本
每个样本具体形状:1024个点,因为对原始数据进行切割的时候,选择1024个点为一个样本(可以结合具体不同数据集,改变样本长度),也就是只要有1024个点的输入,GUI就可以诊断

3.4.测试样本真实标签:保存的是每个测试样本真实标签,目的是可以验证模型到底对某个样本预测是否正确。

3.5.main是主程序:308行代码,
主要有数据处理部分代码,模型的一些超参数(训练次数,批量,优化器,学习率等设置)代码,有准确率曲线可视化代码,损失曲线可视化代码,混淆矩阵(以样本个数和百分比呈现)代码,tnse可视化代码,梯形图可视化代码,F1-SCORE可视化代码。
3.6.confusion0和confusion1是混淆矩阵图
3.7.credentials是在GUI界面里点注册的时候,保存的注册账号和密码。
3.8.GUI.py文件:247行,主要有登录和注册的界面设计,有时域分析和频域分析( 时域的均值,方差,标准差,最大值和最小值,偏度,峰度指标,并写在时域图上。获取频率均值,频率峰峰值,频率方差,频率最大值,频率最小值并写在频域图上),还有调用保存好的模型对新的数据诊断,并依据诊断出来的类型给出建议代码
3.9.mscnn-bigru-attention.py:保存的是mscnn-bigru-attention模型,目的是为了被code600.py和GUI调用,也可以把模型直接写在main.py和GUI.py里面,但是显得累赘,所以把模型单独写在了一个脚本里。
3.10.add_noise_GUI:95行代码,实现的是对原始信号和添加不同分贝噪声信号进行展示。
4.实验结果
0HP数据集
10DB噪声背景下测试集准确率







-10DB 噪声背景下测试集结果







-20DB 噪声背景下测试集准确率







-30DB 噪声背景下测试集准确率







1HP数据集
-10DB 噪声背景下测试集准确率









-20DB 噪声背景下测试集准确率






-30DB 噪声背景下测试集准确率







2HP数据集(为节省篇幅,只展示-30DB下结果)







3HP数据集(为节省篇幅,只展示-30DB下结果)






魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)