带界面下的基于mscnn-bigru-attention深度学习模型江南大学轴承故障诊断(Python代码,很容易替换数据集)
本文介绍了基于MSCNN-BiGRU-Attention深度学习模型的轴承故障诊断系统。系统使用江南大学采集的轴承数据集(采样频率50kHz,转速600/800/1000rpm),针对内圈、外圈、滚动体故障及正常状态进行诊断。数据集按转速分类,每个样本包含1024个数据点,采用7:3的训练测试比例。系统提供GUI界面,包含时域/频域分析功能,可计算均值、方差等统计指标。模型准确率通过混淆矩阵、t-
·
1。效果视频:基于mscnn-bigru-attention深度学习模型江南大学轴承故障诊断带界面_哔哩哔哩_bilibili

2.江南大学轴承数据集介绍
采样频率:50khz,采样时间:10s
转速:600 800 1000/rpm
内圈故障:ib
外圈故障:ob
滚动体故障:tb
正常:N

以600转速下的内圈故障数据为例展示:
开始数据

截止数据



3.文件夹
按照不同转速分成了三份数据集

以600转速为例,在600转速数据集里

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

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

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



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

3.5.code600是主程序:287行代码
主要有数据处理部分代码,模型的一些超参数(训练次数,批量,优化器,学习率等设置)代码,有准确率曲线可视化代码,损失曲线可视化代码,混淆矩阵(以样本个数和百分比呈现)代码,tnse可视化代码,梯形图可视化代码,F1-SCORE可视化代码。
3.6.confusion0和confusion1是混淆矩阵图
3.7.credentials是在GUI界面里点注册的时候,保存的注册账号和密码。
3.8.GUI.py文件:247行,主要有登录和注册的界面设计,有时域分析和频域分析( 时域的均值,方差,标准差,最大值和最小值,偏度,峰度指标,并写在时域图上。获取频率均值,频率峰峰值,频率方差,频率最大值,频率最小值并写在频域图上),还有调用保存好的模型对新的数据诊断,并依据诊断出来的类型给出建议代码
# 计算时域统计指标
mean_time = np.mean(data)
var_time = np.var(data)
std_time = np.std(data)
max_time = np.max(data)
min_time = np.min(data)
skewness = scipy.stats.skew(data)
kurtosis = scipy.stats.kurtosis(data)
#频域指标
magnitude = np.abs(fft_result)
magnitude_half = magnitude[:len(frequencies)//2]
mean_freq = np.mean(magnitude_half)
peak_to_peak = np.max(magnitude_half) - np.min(magnitude_half)
var_freq = np.var(magnitude_half)
max_freq = np.max(magnitude_half)
min_freq = np.min(magnitude_half)
3.9.mscnn-bigru-attention.py:保存的是mscnn-bigru-attention模型,目的是为了被code600.py和GUI调用,也可以把模型直接写在code600.py和GUI.py里面,但是显得累赘,所以把模型单独写在了一个脚本里。
4.效果
600rpm数据集下,总样本数:8000个样本,训练集与测试集比例:7:3






800rpm数据集下,总样本数:8000个样本,训练集与测试集比例:7:3





1000rpm数据集下,总样本数:8000个样本,训练集与测试集比例:7:3






代码运行环境要求(可以用向日葵或者todesk远程)
tensorlfow==2.4.0
python==3.7.9,
其他库版本无要求
更多推荐
所有评论(0)