西储大学轴承数据集

西储大学轴承数据集_第1张图片

(此图出自,官方数据集里,自带的说明文件)

1.轴承数据解释:

第一列表示的数据的直径,有的人用的单位是毫米,也有的人用的是多少密尔(1英寸等于1000密尔),总共有四种,但是第四种,缺少外圈故障所以只取前三种,故障数据

第二和第三列表示的 数据是电机负载和电机转速(工况),一种负载对应一种转速,总共有四种,0马力/1797r/min,1马力/1772r/min,2马力/1750r/min,3马力/1730r/min。大多数人,都用前三种,因为三种和四种效果差不多,都可以解决问题。

第四、五、六到八列分别为内圈、滚动体、和外圈的三种位置不同时的故障数据,一般只取六点钟的,因为数据差别不大

综上:三种直径数据和三种故障数据,所以每个工况共有3*3+1(正常数据)=10种数据。所以根据工况的不同可以把数据分为A、B、C三种。每个工况有10种数据。

2.数据处理:

文件放置部分:

首先通过简单整理,生成三个文件夹代表着三种工况。

西储大学轴承数据集_第2张图片

每个工况,有十个文件夹,分别代表着,不同情况下的故障数据和正常数据

 西储大学轴承数据集_第3张图片

通过上图,分别找到不同 工况的数据放进文件夹。

西储大学轴承数据集_第4张图片

我这里已经找好了,大家可以复制对应的代码段。如果实在需要完整代码的,请私信。

#文件修改部分
#分别对应三种工况,1797,1772,1750转/分
#异常文件修改
A = ['105','118','130','169','185','197','209','222','234']
B = ['106','119','131','170','186','198','210','223','235']
C = ['107','120','132','171','187','199','211','224','236']

文件读入部分: 

遍历各个文件,通过scio.loadmat()函数读入mat文件,再读取某个端的数据。大部分人都是读取DE端的数据。之后通过划窗取值(大多数窗口大小为2048)。之后可以利用FFT变换,将时域数据转化成频域数据,彰显特征。

name = "_DE_time"  # 仅仅获取DE数据
    for j in mat_filename_list:
        data_name.append(os.listdir(j))  # 找到每个文件名

    for i, j in zip(mat_filename_list, data_name):
        n = i + "\\" + str(j)[2:-2]  # 文件名切片切片,获取可读的文件名
        matdata = scio.loadmat(n)  # 读取mat文件

        if len(n) == 50:  # 有时数据名大于三位数,有的小于三位数,例如105和97
            data_name = "X" + str(j)[2:5] + name
        else:
            data_name = "X0" + str(j)[2:4] + name

        data = matdata[data_name]  # 读取mat文件中的某个端的信号
        datalist.append(data)
  while True:
        if (start + sw_width) > new_rows:  # 如果窗口结束索引超出最大索引,结束截取;
            return
        yield start, start + sw_width
        start += sw_steps
def FFT1(x, N, fs):
    if N % 2 > 0:
        N -= 1
    if N > len(x):
        xs = np.append(x, np.zeros(N - len(x)))
    else:
        xs = x[:N]
    xf = np.fft.rfft(xs) / N
    freq = np.linspace(0, fs / 2, int(N / 2 + 1))
    xf = np.abs(xf) * 2
    return xf, freq

你可能感兴趣的:(python,开发语言,人工智能)