大家好,欢迎来到IT知识分享网。
CWRU数据集解读及python数据预处理代码免费获取
1.CWRU数据集介绍
1.试验台介绍
CWRU(凯斯西储大学)轴承数据集为使用2马力Reliance Electric电动机进行实验,并且在靠近和远离电动机轴承的位置处测量加速度数据。
如上图所示,试验台由2马力的电动机(左),扭矩传感器/编码器(中心),测功机(右)和控制电子设备(未示出)组成。 测试轴承支撑电机轴。
2.轴承故障介绍
使用EDM对电机轴承造成故障,在轴承内圈、滚动体、外圈上分别造成直径为0.007英寸,0.014英寸,0.021英寸,0.028英寸和0.040英寸的故障。并记录0至3马力(电机速度为1797至1720 RPM)的电机负载时的轴承两端的振动数据。SKF轴承有0.007,0.014和0.021英寸直径的故障,NTN轴承有0.028英寸和0.040英寸的故障。
3.故障信息采集介绍
使用加速度计收集振动数据,加速度计用磁性底座连接到壳体上。 加速度计放置在电机壳体的驱动端和风扇端的12点钟位置。 在一些实验期间,加速度计也连接到马达支撑基板。 使用16通道DAT记录仪收集振动信号,并在Matlab环境中进行后处理。 所有数据文件都是Matlab(* .mat)格式。 以每秒12,000个样本收集数字数据,并且还以每秒48,000个样本收集数据以用于驱动端轴承故障。 使用扭矩传感器/编码器收集速度和马力数据并手动记录。
4.数据文件介绍
CWRU数据集解压后共有4个文件夹,12k和48k分别代表采样频率是12kHz和48kHz。Drive End代表在驱动端采集的数据,Fan End代表在风扇端采集的数据。”Normal Baseline Data”文件夹中存储的是轴承没有故障时的运行数据(即正常状态下的轴承的运行数据)。
“Normal Baseline Data”文件夹中只有四个数据文件,分别为不同负载、不同转速下采集得到的数据。如下表:
Motor Load (HP) | rpm | Normal Baseline Data |
---|---|---|
0 | 1797 | Normal_0(97.mat) |
1 | 1772 | Normal_1(98.mat) |
2 | 1750 | Normal_2(99.mat) |
3 | 1730 | Normal_3(100.mat) |
97.mat文件代表负载为0、转速为1797rpm时采集得到的数据,98.mat、99.mat、100.mat依次类推。(奇怪的是,没有给出采样频率)
下表为文件”12k Drive End Bearing Fault Data”中的数据集介绍。可以从表中得出以下信息
- “Fault Diameter” :故障直径
- “Motor Load”:负载
- “rpm”:转速
- “Inner Race”:故障处于内圈
- “Ball”:故障处于滚动体
- “Outer Race”:故障处于外圈
需要注意的是轴承试验台中,轴承的外圈是固定在轴承座上,因此轴承转动是内圈和滚动体在转动,而外圈是固定不动的,负载是作用于轴承的,因此其作用中心点位于6点钟方向即垂直向下。
- “Position Relative to Load Zone (Load Zone Centered at 6:00)”:轴承外圈故障点相对于力作用点的位置
- “Centered @6:00 “:即和力作用点处于同一方向(6点钟方向)。
因此105.mat数据就是在负载为0、转速为1797rpm,内圈故障直径为0.007英寸时采集得到的数据。
以最简单的故障诊断数据集选取为例,选取105.mat、118.mat、130.mat以及97.mat可以组成最简单的故障位置判别数据集。
分别为内圈故障、滚动体故障、外圈故障以及正常。
- “*”:代表没有该种类的数据,因此选择数据集做实验时也要注意该类型的数据是否齐全。
Fault Diameter | Motor Load (HP) | rpm | Inner Race | Ball | Outer Race Position Relative to Load Zone (Load Zone Centered at 6:00) | |||
---|---|---|---|---|---|---|---|---|
Centered @6:00 | Centered @3:00 | Centered @12:00 | ||||||
0.007″ | 0 | 1797 | 105.mat | 118.mat | 130.mat | 144.mat | 156.mat | |
1 | 1772 | 106.mat | 119.mat | 131.mat | 145.mat | 158.mat | ||
2 | 1750 | 107.mat | 120.mat | 132.mat | 146.mat | 159.mat | ||
3 | 1730 | 108.mat | 121.mat | 133.mat | 147.mat | 160.mat | ||
0.014″ | 0 | 1797 | 169.mat | 185.mat | 197.mat | * | * | |
1 | 1772 | 170.mat | 186.mat | 198.mat | * | * | ||
2 | 1750 | 171.mat | 187.mat | 199.mat | * | * | ||
3 | 1730 | 172.mat | 188.mat | 200.mat | * | * | ||
0.021″ | 0 | 1797 | 209.mat | 222.mat | 234.mat | 246.mat | 258.mat | |
1 | 1772 | 210.mat | 223.mat | 235.mat | 247.mat | 259.mat | ||
2 | 1750 | 211.mat | 224.mat | 236.mat | 248.mat | 260.mat | ||
3 | 1730 | 212.mat | 225.mat | 237.mat | 249.mat | 261.mat | ||
0.028″ | 0 | 1797 | 3001.mat | 3005.mat | * | * | * | |
1 | 1772 | 3002.mat | 3006.mat | * | * | * | ||
2 | 1750 | 3003.mat | 3007.mat | * | * | * | ||
3 | 1730 | 3004.mat | 3008.mat | * | * | * |
5.”mat”文件介绍
在matlab中任意打开一个.mat文件,可以看到里面共含有”X097RPM”、“X097_DE_time”、”X097_FE_time”三个变量。
“X097RPM”:里面是该数据集的转速数据
“X097_DE_time”:里面是驱动端的振动加速度数据
“X097_FE_time”:里面是风扇端的震动加速度数据
在使用时要统一使用驱动端或风扇端的数据。
2.python数据读取及预处理代码
1.导入包
from scipy.io import loadmat#加载mat文件 import numpy as np # 关注VX公众号:“慢慢的不急”,免费获取代码 from sklearn.preprocessing import MinMaxScaler#数据归一化
mat文件使用python打开后是字典的格式,如下图:
我们需要的仅为第四和第五个key对应的value,分别对应驱动端数据和风扇端数据。
2.数据预处理流程
1.截取数据,将数据进行分段,每一段代表一个样本。
2.对分段后的数据进行最大最小归一化,可选择[0,1]或[-1,1]归一化。
3.生成标签,此标签可代指故障类型。
4.给每一个样本赋予标签。
5.输出带标签的样本数据。
所有过程被打包成一个函数,仅需输入以下参数即可输出带标签的数据。
""" :param path: 文件路径E:\98.mat :param max: 归一化的最大值 :param min: 归一化的最小值 :param loc: 对应CWRU数据的两个传感器位置。3或4.分别为驱动端和风扇端数据 :# 关注VX公众号:“慢慢的不急”,免费获取代码 :param len: 选取数据长度 :param index: reshape的行 :param col: reshape的列 :param tar: 标签 :return: 一份打完标签的数据 """
3.代码获取
关注”慢慢的不急”回复“cwru预处理”免费获取代码。
ex: reshape的行
:param col: reshape的列
:param tar: 标签
:return: 一份打完标签的数据
“””
3.代码获取 关注vx"慢慢的不急"回复“cwru预处理”免费获取代码。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/141447.html