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

一、项目简介

本文主要介绍如何使用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)
上一篇 2024年11月22日
下一篇 2024年11月22日

相关推荐

  • 美国大学航空航天专业排名_美国大学航空航天专业排名榜

    航空航天业帮助了世界,让人类出行更便捷。航空航天科技使得人们可以在几分钟或几小时内环游世界。如果没有航空航天技术,在几分钟和几小时内到达这些地方需要很多小时甚至几天的时间。 航空航天工程还在研究如何进行太空旅行和探索以及进行其他太空进步的方式。多年来,我们看到的新闻和其他进步表明航空航天科技一直很重要。此外,这是一个令人兴奋的领域,设计和制造飞机和航天器技术…

    2024年4月22日
  • 台湾的大学有哪些学校

    以下是台湾省主要高等教育院校的汇总(按地区分类),涵盖公立、私立大学及技职院校供参考: 一、北部地区(台北/新北/桃园/新竹)公立大学国立台湾大学(NTU)台湾顶尖综合性大学,QS世界百强特色领域:医学、工程、社会科学、农业国立清华大学(NTHU)以理工见长,半导体研究全球知名校区:新竹校本部、台北政经学院国立阳明交通大学(NYCU)2021年由阳明大学与交…

    2025年8月6日
  • 清华大学11月28日凌晨

    中青报·中青网记者 叶雨婷 通讯员 安妮 工作中的志愿者。清华大学供图 “目前学校正在准备防疫物资,急需志愿者帮忙配合装袋。能去的同学直接扫码入群,到即上岗!” “我可以!” “我也可以!” 前不久的一天,随着手机一次次震动,清华大学一个刚刚拉起来的志愿服务微信群在两个小时内便集结了200余名学生志愿者。 高校疫情防控工作具有特殊性和重要性。核酸检测、反馈问…

    2025年1月4日
  • 迪拜美国学校

    据menafn网11月28日报道,迪拜美国大学(AUD)近日宣布推出人工智能理学硕士(MSAI)项目,旨在培养该地区AI领域的专业人才,推动各行业经济发展。该项目将于2025年1月13日开始授课,现已开放申请。 在发布会上,AUD校长Kyle Long博士表示,AUD一直致力于创新,通过MSAI项目将为阿联酋的人工智能愿景作出贡献。MSAI项目主任Nejib…

    2025年5月7日
  • 加拿大金工专业好就业吗

    包邮区双非一本毕业,GPA3.82,本科应用数学专业。在经历一番努力之后,我如愿拿到了哥伦比亚大学的offer,很荣幸在这里和大家分享我是如何一步步斩获名校的offer的,希望我的个人经验可以帮助到更多的学弟学妹。 我的迷茫期比较长,大二的时候还没有方向,只有一个模糊的出国留学想法,至于读什么专业、想去哪个国家读,完全没有思路。但因为我的父母是从事金融工作,…

    2024年1月10日
  • 加州理工学院金融工程

    加州理工学院金融专业是以融通货币和货币资金的经济活动为研究对象,具体研究个人、机构、政府如何获取、支出以及管理资金以及其他金融资产的学科专业,是从经济学中分化出来的。 加州理工学院金融专业硕士申请条件 1.正规大学本科毕业,取得相关专业领域的学士学位,本科最后两年GPA要达到3.5以上; 2.托福纸考不低于600分,机考不低于250分,网考不低于100分,或…

    2024年11月18日
  • 怎么考进沙特国王大学

    铭博留学:沙特国王大学。 沙特国王大学又译苏欧德国王大学,是位于沙特阿拉伯利雅得的一所公立大学,由沙特·本·阿卜杜勒创立于1957年,当时称利雅得大学,是该国第一个非宗教主导的大学,最初目的是为了解决沙特技术工人短缺问题。 1982年改现名大学,兼收两性人数接近四万。虽然如此,女性学员还是有自己的戒律组织,男女学员的活动都有监控系统监视。学校课程包括自然科学…

    2024年9月5日
  • 土木工程最好的学校是哪个

    说实话,能考入这些学校的土木工程专业,那可都是实打实的学霸!为什么这么说呢?且听我慢慢道来。 首先压轴出场的就是同济大学。提到土木工程,就不得不提同济。它可是咱们国内土木工程的"老大哥",在全国土木工程专业评估中获得了A+的最高等级。同济的土木工程专业师资力量雄厚,实验设备先进,科研能力一流,培养出了无数业界精英。难怪这么多考生挤破头都想…

    2024年11月25日
  • 普通本科能申请新加坡国力大学研究生

    本报记者 周姝芸 就读于国际学校的林默默想留学新加坡学习计算机。谈到为什么选择新加坡,林默默说原因有两点:“一方面新加坡华人多,文化不陌生,同时又能接触来自世界各地的学生,开阔眼界。另一方面,新加坡治安好,爸妈比较放心,而且离中国近,假期回家也相对方便。” 选择理工科,是林默默认真考量的结果。他说:“据我所知,新加坡南洋理工大学、国立大学理工科在全球排名靠前…

    2025年8月22日
  • 普渡大学药学院排名

    美国普渡大学 建造管理技术系 招收计算流体力学方向 全奖博士/博后 招生介绍 美国普渡大学建造管理技术系Dr. Tao招收计算流体力学方向全奖博士/博后。 招收时间:2024秋季、2025年春季/秋季入学,招满截止 导师介绍 陶澄澄博士是普渡大学建造管理技术系的助理教授,博士毕业于佛罗里达大学土木工程系,在加入普渡大学之前,陶博士曾在美国能源部国家能源技术实…

    2025年2月12日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信