旋转机械振动监测及故障诊断(机械故障诊断及工业工程故障诊断若干例子(第5篇))

Posted

篇首语:别裁伪体亲风雅,转益多师是汝师。本文由小常识网(cha138.com)小编为大家整理,主要介绍了旋转机械振动监测及故障诊断(机械故障诊断及工业工程故障诊断若干例子(第5篇))相关的知识,希望对你有一定的参考价值。

旋转机械振动监测及故障诊断(机械故障诊断及工业工程故障诊断若干例子(第5篇))

Python环境下基于多传感器数据和周期性采样的滚动轴承故障诊断方法

算法程序运行环境为Python,采用pytorch深度学习模块

ReadData_2.py : Channel fusion and periodic sampling.

model_2_view.py : the code of training and testing, and it provides functions to evaluate the performance changes under different stripe and sample length.

Python环境下基于注意力机制的小样本轴承故障诊断

算法程序代码运行环境为Python,采用Pytorch深度学习模块,执行基于注意力机制的小样本轴承故障诊断,附带参考文献。

Python环境下基于1D-CNN、2D-CNN和LSTM的一维信号分类

算法程序运行环境为Python,采用tensorflow深度学习模块,执行基于1D-CNN、2D-CNN和LSTM的一维信号分类(轴承故障诊断),可迁移至其他一维信号。

所使用的模块如下

import scipy.io import numpy as npfrom sklearn.model_selection import train_test_split, KFoldfrom sklearn.metrics import confusion_matriximport tensorflow as tffrom tensorflow.keras import layers, modelsimport matplotlib.pyplot as pltimport seaborn as sns import pandas as pd

MATLAB环境下基于机器学习的旋转机械故障诊断方法

算法程序运行环境为MATLAB R2018a,从旋转机械振动信号中提取相关特征,然后使用 KNN 算法进行故障聚类。

旋转机械故障包括轴承故障(bearing)、齿轮啮合故障(gearmesh)、不平衡故障(imbalance)、不对中故障(misalignment)、多点故障(multifault)、共振故障(resonance)

首先,观察一下各故障的时域波形及对应的频谱图

 plot_frequency_domain('bearing.mat') plot_frequency_domain('gearmesh.mat') plot_frequency_domain('imbalance.mat') plot_frequency_domain('misalignment.mat') plot_frequency_domain('multifault.mat') plot_frequency_domain('resonance.mat')

然后对信号进行特征提取(只提取轴承故障、齿轮啮合故障、不平衡故障、不对中故障、谐振故障状态的信号)

x_gear=segment_data('bearing.mat');x_normalised_gear=normalize(x_gear);f1_bearing=calculate_f1(x_normalised_gear);f2_bearing=calculate_f2(x_normalised_gear);  f3_bearing=calculate_f3(x_normalised_gear);f4_bearing=calculate_f4(x_normalised_gear);%=================  Gearmesh    ========================%x_gearmesh=segment_data('gearmesh.mat');x_normalised_gearmesh=normalize(x_gearmesh);f1_gearmesh=calculate_f1(x_normalised_gearmesh);f2_gearmesh=calculate_f2(x_normalised_gearmesh);f3_gearmesh=calculate_f3(x_normalised_gearmesh);f4_gearmesh=calculate_f4(x_normalised_gearmesh);%================== Imbalance   ========================%x_imbalance=segment_data('imbalance.mat');x_normalised_imbalance=normalize(x_imbalance);f1_imbalance=calculate_f1(x_normalised_imbalance);f2_imbalance=calculate_f2(x_normalised_imbalance);f3_imbalance=calculate_f3(x_normalised_imbalance);f4_imbalance=calculate_f4(x_normalised_imbalance);%=================  misalignment    ======================%x_misalignment=segment_data('misalignment.mat');x_normalised_misalignment=normalize(x_misalignment);f1_misalignment=calculate_f1(x_normalised_misalignment);f2_misalignment=calculate_f2(x_normalised_misalignment);f3_misalignment=calculate_f3(x_normalised_misalignment);f4_misalignment=calculate_f4(x_normalised_misalignment);%=================  resonance   ==========================%x_resonance=segment_data('resonance.mat');x_normalised_resonance=normalize(x_resonance);f1_resonance=calculate_f1(x_normalised_resonance);f2_resonance=calculate_f2(x_normalised_resonance);f3_resonance=calculate_f3(x_normalised_resonance);f4_resonance=calculate_f4(x_normalised_resonance);bearing_fault=[f1_bearing;f2_bearing;f3_bearing;f4_bearing]';gearmesh_fault=[f1_gearmesh;f2_gearmesh;f3_gearmesh;f4_gearmesh]';misalignment_fault=[f1_misalignment;f2_misalignment;f3_misalignment;f4_misalignment]';imbalance_fault=[f1_imbalance;f2_imbalance;f3_imbalance;f4_imbalance]';resonance_fault=[f1_resonance;f2_resonance;f3_resonance;f4_resonance]';G=[bearing_fault;gearmesh_fault;misalignment_fault;imbalance_fault;resonance_fault];save 'fault_data_merged' G bearing_fault gearmesh_fault misalignment_fault imbalance_fault resonance_fault;

至于提取的啥子特征,以calculate_f1为例,看一下

function [f1] = calculate_f1(x_normalised)[P,f]=pwelch(x_normalised,[],[],[],1000);f1=rms(P);end

即calculate_f1提取的是功率谱密度相关特征

最后进行KNN聚类

load fault_data_merged.mat;c=corrcoef(G); % Calculates a correlation coefficient matrix c of G[v,d] =eig(c); % Find the eigenvectors v and the eigenvalues d of GT=[ v(:,end)';v(:,end-1)']; % Create the transformation matrix T from% the first two principal componentsz=T*G'; % Create a 2-dimensional feature vector za=0:50:250;color='or' 'or' 'sg' 'dc' '^k' '<b';figure();for i=2:6    plot(z(1,a(i-1)+1:a(i)),z(2,a(i-1)+1:a(i)),colori) % Scatter plot of the 2-dimensional features    hold onend title('fault clusters for LAB')


MATLAB环境下基于CNN的轴承故障诊断及特征可视化

算法程序运行环境为MATLAB R2018a,使用 CNN 进行滚动轴承故障诊断,原始数据来自西储大学轴承数据中心,包含3种故障工况(内圈故障,外圈故障和滚动体故障)和1种正常工况。

首先从数据中心下载如下文件

然后建立4个文件夹,并运行pic函数导入各工况图像

folder_name1 = 'set1_inner';folder_name2 = 'set2_normal';folder_name3 = 'set3_outer';folder_name4 = 'set4_roll';pic(2000,200,106,folder_name1);pic(2000,200,98,folder_name2);pic(2000,200,131,folder_name3);pic(2000,200,119,folder_name4);

导入数据

digitDatasetPath = fullfile('.') imds = imageDatastore(digitDatasetPath, ...    'IncludeSubfolders',true,'LabelSource','foldernames');

计算每个标签的图像数量

Count_of_Lable = countEachLabel(imds)

划分训练集

number_of_each_train_test = 150;[imds_of_train_set,imds_of_validation_set]= splitEachLabel(imds,number_of_each_train_test, 'randomize');

定义CNN网络

layers = [    imageInputLayer([64 86 3])        convolution2dLayer(3,8,'Padding','same')    batchNormalizationLayer    reluLayer        maxPooling2dLayer(2,'Stride',2)        convolution2dLayer(3,16,'Padding','same')    batchNormalizationLayer    reluLayer        maxPooling2dLayer(2,'Stride',2)        convolution2dLayer(3,32,'Padding','same')    batchNormalizationLayer    reluLayer        fullyConnectedLayer(4)    softmaxLayer    classificationLayer];

确定训练参数

options = trainingOptions('sgdm', ...    'InitialLearnRate',0.01,...    'LearnRateSchedule','piecewise',...    'LearnRateDropFactor',0.1,...    'LearnRateDropPeriod',10,...    'MaxEpochs',16, ...    'Shuffle','every-epoch',...    'ValidationData',imds_of_validation_set,...    'ValidationFrequency',10,...    'Verbose',false, ...    'Plots','training-progress');  

训练与测试

CNN_network = trainNetwork(imds_of_train_set,layers,options);Prediction_of_validation_set = classify(CNN_network,imds_of_validation_set);True_lable_of_validation_set = imds_of_validation_set.Labels;accuracy = sum(Prediction_of_validation_set == True_lable_of_validation_set)/numel(True_lable_of_validation_set)

最后进行deepDream可视化,看看CNN学到了些啥玩意

以上项目的代码https://mbd.pub/o/GeBENHAGEN

此外,接受知乎咨询:哥廷根数学学派

擅长现代信号处理(改进小波分析系列,改进变分模态分解,改进经验小波变换,改进辛几何模态分解等等),改进机器学习,改进深度学习,机械故障诊断,改进时间序列分析(金融信号,心电信号,振动信号等)

相关参考

机械设备振动故障检测与诊断(滚动轴承的振动测量与简易诊断)

...振动信号对其进行监测诊断时,除了参考前面已经介绍的旋转机械、往复机械的振动测试方法以外,还应根据其振动特点,有针对性地采取一些措施和方法。一、测点的选择滚动轴承因故障引起的冲击振动由冲击点以半球面波方...

故障诊断有哪几种方法(机械故障诊断及工业工程故障诊断若干例子(第3篇))

Pytorch环境下基于WDCNN的滚动轴承故障诊断算法程序运行环境为Python,采用Pytorch深度学习模块,也可用于地震信号,机械振动信号,语音信号,声信号等一维时间序列信号。算法程序对WDCNN进行了改进,搭建了卷积核大小逐层递减...

振动测试仪(振动检测仪故障状态监测方法)

随着信息技术和计算机技术的发展,振动检测仪被应用到机械系统状态监测和故障诊断技术的研究当中,比如近年来兴起的神经网络技术和数据融合技术正在故障诊断领域中得到广泛的应用。而与此同时,信息技术和计算机技术...

振动检测仪(振动检测仪对风机故障的诊断)

风机是一种典型的旋转机械,广泛应用于石油、化工、电力、冶金等行业,对国民经济的发展有重要的意义。通常,风机尤其是大中型风机振动比较强烈,噪声较大,容易发生故障。一旦出现故障,将会引起生产线上主机的停产...

测轴承振动用什么测(轴承故障检测、诊断、分析技巧,一文搞定)

...备来讲,平时的检测跟踪尤为重要,检测项目包括轴承的旋转音、振动、温度、润滑剂的状态等,根据检测结果,设备维护人员可以准确地判断设备的问题点,提早作出预防和解决方案。一、异常旋转音分析诊断异常旋转音检测...

测轴承振动用什么测(轴承故障检测、诊断、分析技巧,一文搞定)

...备来讲,平时的检测跟踪尤为重要,检测项目包括轴承的旋转音、振动、温度、润滑剂的状态等,根据检测结果,设备维护人员可以准确地判断设备的问题点,提早作出预防和解决方案。一、异常旋转音分析诊断异常旋转音检测...

滚动混凝土振动台(滚动轴承的振动测量与简易诊断)

...振动信号对其进行监测诊断时,除了参考前面已经介绍的旋转机械、往复机械的振动测试方法以外,还应根据其振动特点,有针对性地采取一些措施和方法。一、测点的选择滚动轴承因故障引起的冲击振动由冲击点以半球面波方...

滚动混凝土振动台(滚动轴承的振动测量与简易诊断)

...振动信号对其进行监测诊断时,除了参考前面已经介绍的旋转机械、往复机械的振动测试方法以外,还应根据其振动特点,有针对性地采取一些措施和方法。一、测点的选择滚动轴承因故障引起的冲击振动由冲击点以半球面波方...

机械设备振动故障诊断(图解:15类39个机械振动故障及其特征频谱)

...障及其特征频谱:不平衡、不对中、偏心转子、弯曲轴、机械松动、转子摩擦、共振、皮带和皮带轮、流体动力激振、拍振、偏心转子、电机、齿轮故障、滚动轴承、滑动轴承。一、不平衡不平衡故障症状特征:振动主频率等于...

机械设备故障诊断的内容包括(机床也要健康监测?AI博士回国创业成为机器设备“保健员”)

...法在生产过程中及时发现异常的痛点,运用博士就读期间机械设备故障诊断、健康管理和运筹优化等专业知识,并在百度飞桨深度学习平台开源时序建模算法库PaddleTS的加持下,推出了汽车零部件制造场景的精密制造在线异常监...