基于VMD-CNN-BiGRU时空特征提取的滚动轴承故障诊断

  • 数据集:CRWU数据集
  • 框架:pytorch

一、数据集

​ CWRU轴承数据集采集实验台由1.5kW的电机、驱动端轴承、风扇端轴承、扭矩传感器、测功机、加速度传感器和电子控制器组成。待检测的轴承支撑着电动机的转轴,驱动端轴承型号为SKF6205,风扇端轴承型号为SKF6203,本文中使用驱动端轴承数据集。通过电火花加工模拟轴承的多种健康状况,电动机风扇端和驱动端的轴承座上方各放置一个加速度传感器用来采集故障轴承的振动加速度信号。振动信号通过16通道的数据记录仪采集得到,采样频率为12kHz,功率和转速通过扭矩传感器测得。

采样率12K的部分数据

二、VMD分解

变分模态分解(variational mode decomposition)VMD是2014年提出的一种非递归信号处理方法,通过将时间序列数据分解为一系列具有有限带宽的本征模态函数(IMF),迭代搜寻变分模态的最优解。VMD可以自适应更新各IMF的最优中心频率和带宽。

 相较于EMD,VMD具有更强大的性能:在进行EMD分解时,我们需要利用信号的极大值和极小值来计算包络,而信号的极值很有可能收到噪声干扰,因此EMD对噪声比较敏感;EMD还存在端点效应的问题,即在信号的端点处由于没有前后帧的信息,求得的包络面可能不准确,在后期分解的过程中,可能会得到不准确的IMF分量。而VMD不存在这方面问题,其具有较好抗噪能力,能解决频率混叠问题。

在python中实现

from vmdpy import VMD
import numpy as np



signal = np.random.rand(1000)
alpha = 2000        # 带宽约束参数
tau = 0     # 噪声容忍度参数
DC = 0      # 直流分量参数
K = 4       # 模态数量参数
init = 1    # 初始频率估计方法参数
u, u_hat, omega = VMD(signal, alpha, tau, K, DC, init, tol)
print(u.shape)
# (4, 1000)

三、模型架构

四、效果评估

五、代码获取

感兴趣的朋友可以关注最后一行

import numpy as np
import pandas as pd
from scipy.io import loadmat
from sklearn.utils import shuffle
import os
from matplotlib import pyplot as plt
import torch
import time
from torch import nn
import torch.nn.functional as F
from torch.utils.data import TensorDataset, DataLoader
from pytorch_lightning import seed_everything
import seaborn as sns
from sklearn import metrics 


plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

%matplotlib inline
seed_everything(100)  # 设置随机种子,以使实验结果具有可重复性
%% https://mbd.pub/o/bread/mbd-ZpmUmJ9p

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值