凯斯西储大学轴承故障数据

一、项目简介

本文主要介绍如何使用python搭建:一个基于深度学习的滚动轴承故障诊断系统

项目中涉及使用了多种方法对比检测结果,包括:

传统机器学习方法:随机森林深度学习方法:CNN增加残差模块后的深度学习方法:CNN+ResBlock

如各位童鞋需要更换训练数据,完全可以根据源码将图像和标注文件更换即可直接运行。

博主也参考过网上故障检测的相关文章,但大多是理论大于方法。很多同学肯定对原理不需要过多了解,只需要搭建出一个基于深度学习的轴承故障预测系统即可。

也正是因为我发现网上大多的帖子只是针对原理进行介绍,功能实现的相对很少。

如果您有以上想法,那就找对地方了!

不多废话,直接进入正题!

二、数据介绍

本次项目的数据是使用的凯斯西储大学(Case Western Reserve University)轴承数据中心的开源数据集。

数据文件采用Matlab格式。每个文件都包含风扇和驱动端振动数据以及电机转速。对于所有文件,变量名称中的以下项表示:

DE – 驱动端加速计数据

FE – 风扇端加速计数据

BA – 基础加速计数据

time – 时间序列数据

RPM- 测试期间的转速

2.1 故障类型图示2.2 数据图示2.3 查看单个数据文件情况2.4 数据分布情况

博主对:

正常

内圈故障

外圈故障

滚动体故障

四种不同情况下轴承的数据分布进行了可视化展示,由于图示较多,这里只展示内圈故障的一个文件的数据分布情况,其他情况感兴趣的同学可以下载完整代码运行看看。

三、数据预处理

通过可视化观察发现数据波长周期基本上为100-200左右,博主这边使用1000作为采样长度,对所有轴承数据进行采样,并构建label。我们这次需要学习并预测的是输入的轴承数据是为:正常、内圈故障、外圈故障、滚动体故障。中哪一类,因此是一个4分类的任务。处理后数据分布如下:

正常样本:1696个

内圈故障样本:1455个

滚动体故障样本:1457个

外圈故障样本: 1457个

然后对数据进行采样,保证每类数据1400个。

data_train = np.asarray(data_normal[:1400] + data_inner[:1400] + data_ball[:1400] + data_outer[:1400],dtype = 'float64')label = np.asarray(label_normal[:1400] + label_inner[:1400] + label_ball[:1400] + label_outer[:1400],dtype = 'int64')print("处理后样本shape:",data_train.shape)print("处理后数据类别分布:",Counter(label))# 保存数据np.save("train_data/train_data.npy",data_train)np.save("train_data/label.npy",label)print("数据保存成功,位置:/train_data/")

四、模型训练及评估4.1 加载数据

def load_data(): # 读取数据 x = np.load('train_data/train_data.npy') y = np.load('train_data/label.npy') num = len(Counter(y)) print("类别数量为:", num) return x, y, num # 读取数据data, label, label_count = load_data()# 生成训练集测试集,70%用作训练,30%用作测试train_data, train_label, val_data, val_label = create_train_data(data, label, 0.7)print("*"*10)print("训练集数量:",len(train_label))print("测试集数量:",len(val_label))

4.2 随机森林

# 模型参数设置rfc = RandomForestClassifier(n_estimators = 50,min_samples_split = 5,min_samples_leaf = 4,max_depth = 5)# 模型准确率和损失值acc_list = []loss_list = []train_acc_list = []print("开始训练")for i in range(1,epoch +1): # 模型训练 rfc.fit(m_train,train_label) # # 训练集 # y_train = rfc.predict(m_train) # 测试集 y_pred = np.asarray(rfc.predict(m_val),dtype = 'int64') # 计算准确率 acc = round(accuracy_score(val_label, y_pred),3) # 训练集 y_pred = np.asarray(rfc.predict(m_train),dtype = 'int64') # 计算准确率 train_acc = round(accuracy_score(train_label, y_pred),3) # print('测试集准确率:', round(accuracy_score(val_label, y_pred),3)) acc_list.append(acc) train_acc_list.append(train_acc) # 计算损失值 # 使用one-hot编码计算损失值 noe_hot = OneHotEncoder(sparse = False) y_pred_o = noe_hot.fit_transform(y_pred.reshape(1, -1)) val_label_o = noe_hot.fit_transform(val_label.reshape(1, -1))# loss = round(log_loss(val_label_o,y_pred_o),3) # print("loss:",round(log_loss(val_label,y_pred),3))# loss_list.append(loss) print("完成第",i,"轮训练,测试集准确率:",acc)

4.2.1 模型训练4.2.2 模型测试4.3 CNN

构建一个CNN网络,结构如下:

4.3.1 模型训练4.3.2 模型测试

可以看到,使用原始cnn模型训练后准确率只有83。类标2即“内圈故障”的召回率较低,无法准确有效识别。

4.4 CNN+ResBlock

模型构建:

import n_model as mdimport tensorflow as tf# 模型参数model_param = { "a_shape": 1000, "b_shape": 2, "label_count": 4, "num_b":5}data_shape=(model_param['a_shape'],model_param['b_shape'])# 模型实例化model = md.CNN_ResNet_model(model_param['label_count'] , model_param['num_b'] , data_shape=data_shape)# 使用学习率进行训练res_model = model.model_create(learning_rate = 1e-4)# 模型网络结构print("实例化模型成功,网络结构如下:")print(res_model.summary())# 设置模型log输出地址log_dir = os.path.join("logs/ResNet")if not os.path.exists(log_dir): os.mkdir(log_dir)

4.4.1 模型训练4.4.2 模型测试

可以看到,增加了残差模块的CNN网络已经能准确对不同故障类型进行分类,准确率和召回率均在95分以上。

五、完整代码地址

由于项目代码量和数据集较大,感兴趣的同学可以下载完整代码,使用过程中如遇到任何问题可以在评论区评论或者私信我,我都会一一解答。

完整代码下载:

点击即可获取→→→→→AI鈥斺€擹iLiaoHuoQu←←←←←←

声明:壹贝网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者wangteng@admin所有,原文出处。若您的权利被侵害,请联系 756005163@qq.com 删除。

本文链接:https://www.ebaa.cn/36550.html

(0)
上一篇 1天前
下一篇 1天前

相关推荐

  • 杜克大学专业排名世界排名_杜克大学专业排名世界排名第几

    杜克大学专业排名 2019年《美国新闻与世界报道》世界大学化学专业排名第146。 2019年《美国新闻与世界报道》世界大学材料科学专业排名第124。 2019年《美国新闻与世界报道》世界大学地球科学专业排名第138。 2019年《美国新闻与世界报道》世界大学环境/生态专业排名第8。 2019年《美国新闻与世界报道》世界大学计算机科学专业排名第186。 201…

    2024年4月21日
  • 临床医学有哪些课程

    临床医学专业主要课程: 无机及分析化学、有机化学、细胞生物学、、分子生物学、人体解剖学、组织胚胎学、生物化学、生理学、免疫学、微生物学、病理学、病理生理学、药理学、预防医学、诊断学、内科学、外科学、妇产科学、儿科学、神经病学、精神病学、传染病学等。 临床医学专业培养目标: 培养具有扎实的医学基本理论、知识和技能,具有较高综合素质、较强实践能力和初步科研基础的…

    2024年5月31日
  • 波特兰大学_波特兰大学qs世界排名

    俄勒冈州顶尖大学推荐 1,Reed College: 里德学院(Reed College)成立于1908年,是美国俄勒冈州波特兰市东南部的一所私立、自主的文理学院,也是前美国苹果公司总裁乔布斯的母校。里德专注学术,以奇多的博士校友著称,其博士所占毕业生比例在美国大学中排名第三,仅次于加州理工学院和哈维穆德学院。 里德学院极其注重课堂参与,认为《美国新闻与世界…

    2024年3月15日
  • 签证过期怎么回国

    在上篇攻略性的文章中和大家分享了如何将外国驾照转换为中国驾照,并自驾外国车牌的车辆到中国旅行或参加活动的具体操作流程,有需要的小伙伴速去补课《如何自驾外国车牌的车辆到中国旅行,外国驾照如何转换为中国驾照》! 因为新冠疫情滞留申根国之一的匈牙利第58天了,90天有效期和90天停留期的短期多次申根签证在上个月13号也已过期。如果你和我一样,因为新冠疫情之类的自然…

    2024年4月29日
  • 电子商务研究生院校排名_电子商务专业考研方向

    排 名 学校名称 等 级 学校数 1 山东财经大学 5★+ 502 2 对外经济贸易大学 5★+ 502 3 广东财经大学 5★+ 502 4 中央财经大学 5★+ 502 5 北京邮电大学 5★+ 502 6 杭州师范大学 5★ 502 7 西安交通大学 5★ 502 8 浙江工商大学 5★ 502 9 厦门大学 5★ 502 10 云南财经大学 5★ 5…

    2024年4月11日
  • 科隆大学和汉堡大学

    大家好,我是绝不缺大德的大德。 大学排名对于选择留学院校至关重要,特别是对于计划前往德国的同学们而言,德国本土的大学排名更是不可忽视的重要参考依据。 今天大德再来分析另一个备受关注的排名: 2024年度德国经济周刊WiWo大学排名 。 WiWo大学排名聚焦于 市场认可度 ,与英美系排名注重科研成果有所不同,WiWo主要评估各大学毕业生在 德国就业市场的受欢迎…

    2024年8月19日
  • 德国艺术留学价格表图片

    德国是一个非常受欢迎的艺术专业留学目的地。那么德国艺术专业申请费用和生活费用是多少呢?下面我们就介绍一下德国艺术专业的申请费用和生活费用。 申请费用: 德国的大学通常不收取申请费。但是如果您想申请某些艺术专业,如音乐、戏剧和舞蹈等专业,可能需要参加面试和试演。在这种情况下,您可能需要支付面试费用,通常在50欧元至100欧元之间。此外,如果您需要向德国艺术学院…

    2024年1月12日
  • 加拿大圭尔夫大学世界排名_加拿大圭尔夫大学世界排名326名,相当于国内什么大学

    圭尔夫大学世界排名 QS世界大学排名 1、2017 QS World Ranking: Veterinary Science第6 2、2017 QS World Ranking: Agriculture & Forestry第25 3、2017 QS World Ranking: Development Studies第50 USnews世界大学排名…

    2024年3月16日
  • 加拿大定居(加拿大定居满足的条件)

    本文素材来自于网络,若与实际情况不相符或存在侵权行为,请联系删除。 改写后的文章: 前言 众所周知,娱乐圈是一个巨大的财富之池,不为人知的小演员有时仅一部电影片酬就可媲美普通人几年的收入,更别提那些顶级巨星了。演艺事业相较于我们普通人来说,蕴含着难以想象的机遇和利益,尽管这个行业变幻莫测,仍有大部分人愿意不惜一切冲刺其中,只为获得娱乐圈的一席之地。然而,有些…

    2023年10月31日
  • 临床专业学什么

    很多高考考生考的成绩不错,对于医疗事业非常热爱,就选择了临床医学专业,但是显然本科阶段就意味着要多读一年,同时呢,将来的就业一般都不成问题,收入也不错,社会上受人尊敬。那么临床医学在大学时会学哪些课程呢,将来的就业主要是哪些方向,今天就站在旁观者角度,结合我所知的,写一篇广谱文章,供大家参考。 知名院校医学院的教学楼 临床医学专业要学的主要课程 临床医学这个…

    2024年5月30日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信