西储大学轴承数据处理--附MATLAB代码

关于西储大学数据介绍的文章,已经有很多很多了。本篇文章旨在采用matlab语言,实现对西储大学数据处理,由原数据直接变成可供大家直接用来故障识别的数据。

9469c8834fd94fa0bc3c886924142009.png

首先附上一张西储大学数据集介绍的图片,从图中可以看出,西储大学每个数据分别对应哪个故障类型。一般在进行故障诊断的时候,习惯于对同一转速下的数据进行诊断。例如,
105.mat  是直径0.007英寸,转速为1797时的  内圈故障
118.mat  是直径0.007,转速为1797时的  滚动体故障
130.mat  是直径0.007,转速为1797时的  外圈故障
169.mat  是直径0.014英寸,转速为1797时的  内圈故障
185.mat  是直径0.014英寸,转速为1797时的  滚动体故障
197.mat  是直径0.014英寸,转速为1797时的  外圈故障
209.mat  是直径0.021英寸,转速为1797时的  内圈故障
222.mat  是直径0.021英寸,转速为1797时的  滚动体故障
234.mat  是直径0.021英寸,转速为1797时的 外圈故障

因此在诊断的时候习惯于将这几种数据放在一起,送入机器学习模型进行识别。

说一下本篇处理步骤:

  1. 一共加载10种数据,然后取每个数据的DE_time(%DE是驱动端数据 FE是风扇端数据 BA是加速度数据 选择其中一个就行)
  2. 设置滑动窗口w,每个数据的故障样本点个数s,每个故障类型的样本量m
  3. 将所有的数据滑窗完毕之后,综合到一个data变量中
  4. 对每个故障种类的数据加标签。

程序的结果会输出一个带标签的excel和一个不带标签的excel,大家写程序的时候也可以采用save命令将data变量存储起来,方便以后使用!

 给大家看结果图。

4f997a1bb1c14ad7938a0b3a961c1532.png

带标签的数据整理:这里将第一列设置为标签,一共有s+1列

4fa6fa23cbc94259a8bd31f5e9da2e24.png

 不带标签的数据整理:一共有s列

1b609327a4d04f1b8a6c19b934109977.png

 代码如下:

clc;
clear;
addpath(genpath(pwd));
%DE是驱动端数据 FE是风扇端数据 BA是加速度数据 选择其中一个就行
load 97.mat  %正常
load 105.mat  %直径0.007英寸,转速为1797时的  内圈故障
load 118.mat   %直径0.007,转速为1797时的  滚动体故障
load 130.mat  %直径0.007,转速为1797时的  外圈故障
load 169.mat   %直径0.014英寸,转速为1797时的  内圈故障
load 185.mat    %直径0.014英寸,转速为1797时的  滚动体故障
load 197.mat    %直径0.014英寸,转速为1797时的  外圈故障
load 209.mat   %直径0.021英寸,转速为1797时的  内圈故障
load 222.mat  %直径0.021英寸,转速为1797时的  滚动体故障
load 234.mat  %直径0.021英寸,转速为1797时的 外圈故障
% 一共是10个状态,每个状态有120组样本,每个样本的数据量大小为:1×2048
w=1000;                  % w是滑动窗口的大小1000
s=2048;                  % 每个故障表示有2048个故障点
m = 120;            %每种故障有120个样本
D0=[];
for i =1:m
    D0 = [D0,X097_DE_time(1+w*(i-1):w*(i-1)+s)];
end
D0 = D0';
D1=[];
for i =1:m
    D1 = [D1,X105_DE_time(1+w*(i-1):w*(i-1)+s)];
end
D1 = D1';

D2=[];
for i =1:m
    D2 = [D2,X118_DE_time(1+w*(i-1):w*(i-1)+s)];
end
D2 = D2';
D3=[];
for i =1:m
    D3 = [D3,X130_DE_time(1+w*(i-1):w*(i-1)+s)];
end
D3 = D3';
D4=[];
for i =1:m
    D4 = [D4,X169_DE_time(1+w*(i-1):w*(i-1)+s)];
end
D4 = D4';
D5=[];
for i =1:m
    D5 = [D5,X185_DE_time(1+w*(i-1):w*(i-1)+s)];
end
D5 = D5';
D6=[];
for i =1:m
    D6 = [D6,X197_DE_time(1+w*(i-1):w*(i-1)+s)];
end
D6 = D6';
D7=[];
for i =1:m
    D7 = [D7,X209_DE_time(1+w*(i-1):w*(i-1)+s)];
end
D7 = D7';
D8=[];
for i =1:m
    D8 = [D8,X222_DE_time(1+w*(i-1):w*(i-1)+s)];
end
D8 = D8';
D9=[];
for i =1:m
    D9 = [D9,X234_DE_time(1+w*(i-1):w*(i-1)+s)];
end
D9 = D9';
data = [D0;D1;D2;D3;D4;D5;D6;D7;D8;D9];
ceshi_data = data;
save data data
folder='测试数据汇总/'; %%定义变量
if exist(folder)==0 %%判断文件夹是否存在
    mkdir(folder);  %%不存在时候,创建文件夹
end

xlswrite('/测试数据汇总/转速1797_测试数据汇总.xlsx',ceshi_data);

dd = [];
for i = 0:size(data,1)/m-1
    dd(1+m*i:m+m*i) = i+1;
end
zj = [dd;data'];
ceshi_data = zj';
xlswrite('/测试数据汇总/转速1797_测试数据汇总带标签.xlsx',ceshi_data);
rmpath(genpath(pwd))

如何整理好的code和数据,下方小卡片。关键词:西储大学,任选其一回复。

欢迎大家评论区留言,需要什么类型的代码,欢迎告诉博主!

猜你喜欢

转载自blog.csdn.net/woaipythonmeme/article/details/131214489