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

一、项目简介

本文主要介绍如何使用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年全国“田家炳杯”全日制教育硕士专业学位研究生(职业技术教育领域)教学技能大赛决赛暨新时代卓越职教师资人才培养专题研讨会在广东技术师范大学举行。进入决赛的31所高校177名参赛代表、领导和评审专家代表出席活动。 开幕式上,天津职业技术师范大学原党委书记、教育硕士专业学位(职业技术教育领域)专家工作小组组长孟庆国简要介绍了“田家炳杯”赛事的历史与…

    2024年12月13日
  • 马来西亚大学研究生申请条件

    最近接到很多同学提问马来西亚留学,似乎因为曾经作为热门留学地的英语系国家因为通胀等问题导致学费连年暴涨,以及国内经济下行等问题,很多学生和家长把目光瞄向了东南亚国家,其中马来西亚由于国际化背景和高性价比逐渐变成了东南亚地区最受欢迎的留学地。据马来西亚教育全球服务(EMGS)的数据显示:2023年该机构共接收了48,199份国际学生签证申请,相较于2022年的…

    2025年9月10日
  • 都柏林大学名单

    爱尔兰都柏林大学(University College Dublin,简称UCD或UC Dublin)建于1851年,位于爱尔兰首都都柏林。都柏林大学为世界大学联盟(WUN)和Universitas 21成员之一,同时属于爱尔兰国立大学下属的四个学院之一。这所大学为学生们提供了进入一个繁荣的、讲英语的欧洲首都的机会。爱尔兰是世界上最安全的城市之一,以其活力和…

    2024年9月26日
  • 留学ap是什么意思

    对于没接触过留学,但有出国留学计划的学生来说,往往会分不清不同的课程体系所对应的难度和申请方向。由于留学方向的不同,会导致对应选择的课程体系也有所不同,只有确定好留学国家和课程体系后,才能根据目标课程体系,缩小择校范围,根据目标有针对性地筛选,找到适合学校。 目前,最主流的三大课程体系分别为IB、AP、A-Level课程,每一种课程体系都有独自的特点,了解哪…

    2024年6月2日
  • 美国结婚证公证(美国结婚证公证认证)

    美国结婚的夫妇,如果在中国境内涉及到办理准生证、修改婚姻状态、离婚诉讼、办理房产交易、回国落户、配偶工作安置,中国永久居留、孩子签证等等情况,国内相关部门就需要当事人提供美国结婚证认证件的,郝先生移民美国多年,在美国结婚,由于工作需要回国内,家人也一起跟着过来,妻子以怀孕,需要在国内办理准生证,在国内相关部门办理手续的时候,告知郝先生的美国籍需要公证认证件才…

    2023年10月31日
  • 大阪大学地址和电话_大阪大学地址和电话区别

    大阪大学 学校简介 大阪大学(日语:大阪大学/おおさか だいがく Ōsaka daigaku;英语译名:Osaka University),简称阪大(はんだい;Handai),是一所本部位于日本大阪府的国立研究型综合大学。阪大前身是旧制帝国大学-大阪帝国大学(1931年)。理科起源于明治时代最大的兰学塾“适塾”(1838年);文科起源于西日本最大的汉学塾“怀…

    2024年3月3日
  • 大学学费一般是多少

    我爹认为只要正规一本学费不会超过10000

    2024年6月24日
  • 美国uci大学世界排名

    近日,被誉为"留学界大众点评"的Niche公布了最新的2026年度全美最佳大学榜单。与其他权威排名不同,该榜单以50万真实用户的亲身体验评价为核心依据,堪称最具公信力的"口碑排行榜"。 除了全美最佳大学排名,Niche还给出了不同的分支参考。本文托普仕留学小助手topsedu2019带大家了解的是Niche 2026全…

    2025年9月30日
  • 美国宾夕法尼亚大学计算机读研

    宾大的计算机与信息科学硕士Master of Science in Engineering in Computer and Information Science (CIS/MSE)开设在工程学院, 是全美顶级的计算机硕士项目之一。CIS / MSE学生可以在他们的课程中追求许多领域,例如AI,建筑,计算生物学,机器人,数据库,图形,安全,编程语言,软件工程…

    2025年3月26日
  • 美国马里兰大学和斯坦福

    近日,2024-2025年度CS Rankings正式发布,这项由麻省州立大学阿姆赫斯特分校计算机与信息科学学院的Emery Berger教授主导整理的榜单,长期以来在全球计算机科学领域拥有较高的认可度。作为国际学术界关注的重要排名之一,它每年定期更新,为高校教学与研究现状提供了可供参考的数据视角,也成为众多学生了解计算机专业发展格局的重要渠道。本次排名有哪…

    2025年8月14日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信