凯斯西储大学轴承故障数据集解读(新手版)

3 篇文章 2 订阅
1 篇文章 1 订阅

最近真是学到一头雾水,光理解凯斯西储大学的轴承数据集就花了好长时间,下载干巴巴的数据集,啥也看不懂,对着论文就更加迷茫(翻白眼儿)。
下面就把我理解的整理一下:
CWRU
提取码:dkjd
适合新手进行简单的故障识别实验
在这里插入图片描述
打开是这样婶儿的:
12DriveEndFault是12KHZ的驱动端故障数据,
1797代表点电机转速1797转/min,
NormalBaseline就是正常的数据,
.mat格式可以用MATLAB打开
在这里插入图片描述

下面是故障数据:
在这里插入图片描述
因为轴承主要有三类故障,内圈(InnerRace),外圈(OuterRace)还有滚动体(Ball),那其实和上面的英文是对应的。

0.007,0.014还有0.021代表不同的故障体量级别,也就是故障直径为7密耳,14密耳,21密耳(以密耳为单位),这样一组合就有了九种不同的故障+1种正常的。

还有就是由于外圈故障相对来说是比较固定的,其损伤点一般来说就是它载荷的位置,因此会在外圈3点钟,6点和12点放置损伤点。OuterRace6就是6点钟方向的故障。

再来用MATLAB打开它们:
打开0.007-Ball.mat
在这里插入图片描述

BA - base accelerometer data 基座加速度数据(正常)
DE - drive end accelerometer data 驱动端加速度数据
FE - fan end accelerometer data 风扇端加速度数据
time - time series data 时间序列数据
RPM- rpm during testing 转每分钟

因为使用加速度计收集振动数据,加速度计会被放置在电机壳体的驱动端和风扇端,还有基座上,因此就会有三类不同传感器位置上测的数据。

会有人问X118是啥吗?会吗会吗?

咳,这个就是一个编号,给每一类故障单独做出区分的编号,因为我搜到这个:

在这里插入图片描述
都是按照顺序排的,没啥其他意思,害,找了半天。

  • 96
    点赞
  • 435
    收藏
    觉得还不错? 一键收藏
  • 52
    评论
以下是使用 PyTorch 实现 GRU 模型对美国凯斯西储大学轴承故障数据集进行故障诊断的示例代码: ```python import torch import torch.nn as nn import numpy as np import pandas as pd from sklearn.preprocessing import MinMaxScaler # 读取数据 data = pd.read_csv('K001_1_48k_0_12hp_B_C3_0.csv', header=None) data = data.values[:, 1] data = data.reshape(-1, 1) # 数据预处理 scaler = MinMaxScaler(feature_range=(-1, 1)) data_scaled = scaler.fit_transform(data) # 定义超参数 input_size = 50 hidden_size = 32 num_layers = 2 output_size = 1 learning_rate = 0.001 num_epochs = 100 # 创建训练数据集 X = [] y = [] for i in range(input_size, len(data_scaled)): X.append(data_scaled[i-input_size:i]) y.append(data_scaled[i]) X, y = np.array(X), np.array(y) # 划分训练集和测试集 train_size = int(len(data_scaled) * 0.8) X_train, X_test = X[:train_size], X[train_size:] y_train, y_test = y[:train_size], y[train_size:] # 创建数据加载器 train_data = torch.utils.data.TensorDataset(torch.from_numpy(X_train).float(), torch.from_numpy(y_train).float()) train_loader = torch.utils.data.DataLoader(train_data, batch_size=32, shuffle=True) # 定义 GRU 模型 class GRU(nn.Module): def __init__(self, input_size, hidden_size, num_layers, output_size): super(GRU, self).__init__() self.hidden_size = hidden_size self.num_layers = num_layers self.gru = nn.GRU(input_size, hidden_size, num_layers, batch_first=True) self.fc = nn.Linear(hidden_size, output_size) def forward(self, x, h0): out, h = self.gru(x, h0) out = self.fc(out[:, -1, :]) return out, h model = GRU(input_size, hidden_size, num_layers, output_size) # 定义损失函数和优化器 criterion = nn.MSELoss() optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate) # 训练模型 for epoch in range(num_epochs): for i, (inputs, labels) in enumerate(train_loader): # 前向传播 outputs, _ = model(inputs, None) loss = criterion(outputs, labels) # 反向传播和优化 optimizer.zero_grad() loss.backward() optimizer.step() if (i+1) % 10 == 0: print('Epoch [{}/{}], Step [{}/{}], Loss: {:.4f}'.format(epoch+1, num_epochs, i+1, len(train_loader), loss.item())) # 预测测试集 with torch.no_grad(): inputs = torch.from_numpy(X_test).float() outputs, _ = model(inputs, None) predicted = scaler.inverse_transform(outputs.numpy()) actual = scaler.inverse_transform(y_test) # 计算 R2 得分 from sklearn.metrics import r2_score print('R2 score:', r2_score(actual, predicted)) ``` 在上述代码中,我们首先读取了凯斯西储大学轴承故障数据集,并进行了数据预处理。然后,我们定义了超参数,包括输入大小、隐藏层大小、层数、输出大小、学习率和训练轮数。接着,我们创建了训练数据集和数据加载器,并定义了 GRU 模型、损失函数和优化器。在训练循环中,我们对每个 mini-batch 执行前向传播、损失计算、反向传播和优化。在预测测试集时,我们使用训练好的模型进行前向传播,并将预测结果反归一化。最后,我们计算模型在测试集上的 R2 得分。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 52
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值