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

一、项目简介

本文主要介绍如何使用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日

相关推荐

  • 高中毕业去美国留学的条件

    高中申请出国留学的需具备良好的学术成绩。大部分学校会要求提供高中三年的成绩单,平均分数需要达到一定标准,顶尖大学的要求则更高。比部分顶尖大学要求高中平均成绩达到85分或更高,甚至要求GPA达到95分以上,以下是小茶君留学整理的一些高中留学相关条件和要求。 完成本国高中的学业,取得相应的高中学历证书或毕业证书,满足目标国家和所报考大学的最低学历资格要求。 提供…

    2025年11月18日
  • 在美国留学一年要花多少钱

    “回国四个月,简历还没投出去一份。 \r\r ” \r\r 昨晚刷到这条帖子,我直接截图甩进大学舍友群,瞬间炸出五个“同款”。 \r 有人正给猫拍写真,有人窝在崇明租的民房里学木工,还有人替家里小卖部\rredesign 门头。 \r 共同点:全是去年刚毕业的“海归”,口袋里揣着百万学费,就是不急着上班。 \r 教育部刚发的数据也佐证了——2023 年回国留…

    2025年10月30日
  • 香港dse课程国际学校

    一考通全球的“香港高考”DSE考试,近两年受到越来越多准留学家庭的关注。 相较于三大国际课程,DSE课程有何优势?申请海外名校或香港院校,怎样的DSE成绩具有竞争力?什么样的学生适合DSE课程? 本期节目我们邀请到了独课留学创始人徐志坚老师为大家解读为何DSE课程会成为升学领域的“新宠”。 点击观看直播回放⬇️ 海外路路通 | 热度飙升的香港DSE课程,你了…

    2024年12月17日
  • 墨尔本大学留学费用明细清单

    墨尔本大学留学一年费用包含学费和生活费,学费一年大约在4万澳元-5.5万澳元左右,生活费在3.5万澳元-4.5万澳元左右,留学一年费用约7.5万澳元-10万澳元,约合人民币36万元/年-48万元/年。 以下是墨尔本大学留学一年费用盘点—— 一、学费 1、墨尔本大学不同课程的学费不同,大部分课程学费约4万澳元-5.5万澳元,约合人民币19万元/年-26.5万元…

    2025年8月8日
  • alevel课程辅导_alevel课程辅导机构有哪些

    (此处已添加小程序,请到今日头条客户端查看) 数学是一门非常重要的学科,它在各个领域都有着广泛的应用。A-level数学辅导是为了帮助学生更好地掌握这门学科,提高学生的数学水平,从而更好地应对未来的学习和工作挑战。 A-level数学辅导的内容非常丰富,主要包括三个核心模块:Pure Mathematics、Mechanics和Statistics。在Pur…

    2024年3月21日
  • 澳大利亚留学费用_澳大利亚留学费用一年多少人民币

    澳大利亚这个太平洋上的岛国逐渐成为了众多学生和家长的新“重点考虑”地区,那么今天就来总结一下澳大利亚各个地区的留学指南吧! 澳洲留学一直以来备受青睐,其丰富的教育资源,优良的社会环境在各方面都吸引着众多的学子。 澳洲留学性价比最高的几个地区指南,今天114留学网老师为大家介绍一下澳洲各地区的留学费用,希望同学们能够选择适合自己的留学目的地。 澳洲留学各个区的…

    2024年3月9日
  • 2025日语n1报名时间

    12月17日,2025年11月(第二回)考试成绩公布,日本学生支援机构(JASSO)最新公布了《2025年度日本留学試験(第2回)実施結果の概要》。 根据日本学生支援机构(JASSO)统计:截至2025年12月,日本共有945所院校利用EJU成绩进行选拔,包括77所国立大学、59所公立大学、366所私立大学。 01 25年11月EJU考试人数 2025年11…

    2025年12月29日
  • h1b签证

    每年的4月1日,是美国移民局开始接受处理H1B工作签证的第一天,每年的10月1日,是H1B的持有者可以开始工作的第一天。也就是说,即便留学生们是4月1日提交了H1B签证申请,次月获得了批准,但还不能以这个H1B身份去工作,而是要等到10月1日。 好在留学生的OPT身份和H1B身份有交集,所以在10月1日之前,可以继续以OPT身份去给H1B的雇主工作。直到10…

    2023年11月16日
  • 出国留学中心(北京新东方出国留学中心)

    近日,上海外国语大学贤达经济人文学院新加坡留学中心正式成立。该中心是上外贤达学院在与中国留学服务中心嘉华世达共建“国际课程2+2出国留学项目”基础上,联合新加坡当地三大私立院校——新加坡管理学院、新加坡PSB Academy、新加坡KAPLAN高等教育学院成立的。 “新加坡留学中心的成立,将在教育国际化领域结成全面战略合作伙伴关系,进一步促进我校十四五规划中…

    2023年10月13日
  • 吉林大学莱姆顿学院教室

    开设的本科专业: 一、理科类专业: (1) 通信工程专业 (2) 计算机工程技术专业 二、文科类专业: (3)计算机信息系统专业 (4)工商管理专业 ① 通用商业管理专业方向 ② 银行与金融专业方向 ③ 国际会计专业方向 ④ 国际商务专业方向 ⑤ 汽车行业管理专业方向 ⑥ 市场学专业方向 (5)酒店与旅游管理专业 各专业执行教学计划: 1、通信工程、计算机工…

    2024年10月24日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信