长沙定制网站,高邮建设局网站,定制网页设计公司,推广普通话手抄报句子往期精彩内容#xff1a;
Python-凯斯西储大学#xff08;CWRU#xff09;轴承数据解读与分类处理
Python轴承故障诊断 (一)短时傅里叶变换STFT
Python轴承故障诊断 (二)连续小波变换CWT_pyts 小波变换 故障-CSDN博客
Python轴承故障诊断 (三)经验模态分解EMD_轴承诊断 …
往期精彩内容
Python-凯斯西储大学CWRU轴承数据解读与分类处理
Python轴承故障诊断 (一)短时傅里叶变换STFT
Python轴承故障诊断 (二)连续小波变换CWT_pyts 小波变换 故障-CSDN博客
Python轴承故障诊断 (三)经验模态分解EMD_轴承诊断 pytorch-CSDN博客
Pytorch-LSTM轴承故障一维信号分类(一)_cwru数据集pytorch训练-CSDN博客
Pytorch-CNN轴承故障一维信号分类(二)-CSDN博客
Pytorch-Transformer轴承故障一维信号分类(三)-CSDN博客
Python轴承故障诊断 (四)基于EMD-CNN的故障分类-CSDN博客
Python轴承故障诊断 (五)基于EMD-LSTM的故障分类-CSDN博客
Python轴承故障诊断 (六)基于EMD-Transformer的故障分类-CSDN博客
Python轴承故障诊断 (七)基于EMD-CNN-LSTM的故障分类-CSDN博客
Python轴承故障诊断 (八)基于EMD-CNN-GRU并行模型的故障分类-CSDN博客
基于FFT CNN - BiGRU-Attention 时域、频域特征注意力融合的轴承故障识别模型-CSDN博客
基于FFT CNN - Transformer 时域、频域特征融合的轴承故障识别模型-CSDN博客
大甩卖-CWRU轴承故障诊数据集和代码全家桶-CSDN博客
前言
本文基于凯斯西储大学CWRU轴承数据进行变分模态分解VMD的介绍与数据预处理最后通过Python实现VMD-CNN-BiLSTM对故障数据的分类。 凯斯西储大学轴承数据的详细介绍可以参考下文
Python-凯斯西储大学CWRU轴承数据解读与分类处理 1 变分模态分解VMD的Python示例 第一步Python 中 VMD包的下载安装
# 下载
pip install vmdpy# 导入
from vmdpy import VMD
第二步导入相关包进行分解
import numpy as np
import matplotlib.pyplot as plt
from vmdpy import VMD# -----测试信号及其参数--start-------------
t np.linspace(0, 1, 1000)
signal np.sin(2 * np.pi * 5 * t) np.sin(2 * np.pi * 20 * t)
T len(signal)
fs 1/T
t np.arange(1,T1)/T# alpha 惩罚系数带宽限制经验取值为抽样点长度1.5-2.0倍.
# 惩罚系数越小各IMF分量的带宽越大过大的带宽会使得某些分量包含其他分量言号;
alpha 2000#噪声容限一般取 0, 即允许重构后的信号与原始信号有差别。
tau 0
#模态数量 分解模态IMF个数
K 5#DC 合成信号若无常量取值为 0若含常量则其取值为 1
# DC 若为0则让第一个IMF为直流分量/趋势向量
DC 0
#初始化ω值当初始化为 1 时均匀分布产生的随机数
# init 指每个IMF的中心频率进行初始化。当初始化为1时进行均匀初始化。
init 1
#控制误差大小常量决定精度与迭代次数
tol 1e-7
# -----测试信号及其参数--end----------# Apply VMD
# 输出U是各个IMF分量u_hat是各IMF的频谱omega为各IMF的中心频率
u, u_hat, omega VMD(signal, alpha, tau, K, DC, init, tol)
#得到中心频率的数值
print(omega[-1])
# Plot the original signal and decomposed modes
plt.figure(figsize(15,10))
plt.subplot(K1, 1, 1)
plt.plot(t, signal, r)
plt.title(原始信号)
for num in range(K):plt.subplot(K1, 1, num2)plt.plot(t, u[num,:])plt.title(IMF str(num1))plt.show() 2 轴承故障数据的预处理
2.1 导入数据
参考之前的文章进行故障10分类的预处理凯斯西储大学轴承数据10分类数据集 train_set、val_set、test_set 均为按照721划分训练集、验证集、测试集最后保存数据 上图是数据的读取形式以及预处理思路 2.2 故障VMD分解可视化
第一步 模态选取
根据不同K值条件下 观察中心频率选定K值从K4开始出现中心频率相近的模态出现过分解故模态数 K 选为4。 第二步故障VMD分解可视化 2.3 故障数据的VMD分解预处理 3 基于VMD-CNN-BiLSTM的轴承故障诊断分类
下面基于VMD分解后的轴承故障数据先通过CNN进行卷积池化操作提取信号的特征增加维度缩短序列长度然后再送入BiLSTM层提取时序特征实现CNN-BiLSTM信号的分类方法进行讲解
3.1 定义VMD-CNN-BiLSTM分类网络模型 3.2 设置参数训练模型 50个epoch准确率将近97%用VMD-CNN-BiLSTM网络分类效果显著CNN-BiLSTM模型能够充分提取轴承故障信号的空间和时序特征收敛速度快性能优越继续调参可以进一步提高分类准确率。
注意调整参数 可以适当增加CNN层数和隐藏层的维度微调学习率 调整BiLSTM层数和维度数增加更多的 epoch 注意防止过拟合 可以改变一维信号堆叠的形状设置合适的长度和维度 3.3 模型评估
准确率、精确率、召回率、F1 Score 故障十分类混淆矩阵 代码、数据如下