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

一、项目简介

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

相关推荐

  • 法国留学排名_法国留学排名前十的学校

    随着10月底USNews发布了其2022全球最佳大学排行榜,四大排行榜的最新世界大学排名全部出炉。今天我们就来总结一下四大排行榜上法国大学的排名情况,以及四大排行榜的优点和不足之处,供小伙伴们选校参考。 // 世界大学排名篇 // 世界上公认的大学排名有四个: 1 THE世界大学排名 泰晤士高等教育世界大学排名,简称THE世界排名。在2004年至2009年间…

    2024年3月26日
  • 德国的医学院

    想来德国留学?但是害怕回国之后找工作发现学校不被国内认可?本期小编给大家整理了已更新的中国教育部认可的德国大学名单(按学校中文首字母划分) 德国高等教育体制介绍 德国的高等教育机构包括综合性大学、高等专业学院、高等师范学院、音乐艺术学院等。 综合性大学, 通常称为Universität,以教学和科研为主。这类学校可授予Bachelor, Magister 及…

    2024年10月11日
  • 留学新加坡需要多少钱

    留学新加坡的费用因学校、专业和地区的不同而差异较大。 首先,学费是留学中最大的开支之一。新加坡的公立大学和私立大学每年的学费都有所不同。一般来说,新加坡公立大学本科学费一年大概在11000到15000新币,折合人民币每年55000到75000元左右。而私立大学的本科课程学费一年大概在10000到18000新币,折合人民币每年50000到80000元。 其次,…

    2024年6月29日
  • 檀国大学被中国承认吗

    很多出国留学的学生最在意的便是该所大学能否得到中国的认可,因为我们出国留学最主要的目标便是获得含金量更高的学历,以此来增强自身的竞争力,那么中国承认的韩国大学有哪些,哪些韩国大学获得了中国的认可呢,下面齐老师为大家整理了相关信息,一起来看看吧。 韩国是一个非常重视教育的国家,为学生设置了很多大学,其中中国承认的韩国大学共有 353 所,主要有首尔大学、高丽大…

    2024年11月10日
  • 伯明翰大学学位比例_伯明翰大学学位比例是多少

    伯明翰大学的本科学位划分分数为: 一等学位:70分及以上; 二等一(2:1)学位:60-69分; 二等二(2:2)学位:50-59分; 三等学位:40分-49分; 图源:伯明翰大学 拿到高分的成绩是所有伯明翰学生的追求。 参考英国高等教育统计局HESA发布的最新数据,一起来看看2021/22学年伯明翰本科学生获得学位的成绩分布情况吧~ 伯明翰本科成绩分布 拿…

    2024年3月6日
  • 日本留学高中生_日本留学高中生可以打工吗

    随着国际化进程的加快,越来越多的高中生选择走出国门,体验不同的文化和教育环境。日本,作为亚洲的教育强国,吸引了众多中国高中生的目光。那么,高中生要如何申请日本留学呢?本文将为您详细解析高中生留学日本的条件和要求。 一、学术成绩与语言要求 首先,申请日本留学的高中生需要具备良好的学术成绩。一般来说,申请者需要提供最近三年的成绩单,并确保平均分达到一定的要求。同…

    2024年3月13日
  • ap科目难度系数排名_ap各科难度

    据很多留学生和家长反馈,大家在AP选课的时候,很多都倾向于多选理科而忽略文科。“多考理科以展现自身优势”、“文科难学耗时性价比不高”似乎已经成了大多数学生和家长的共识。 但事实然相反,已经在康奈尔大学读书的赛思学员最近和老师聊天时候说,高中都学的理科,上了大学就后悔了,懂人文社科的同学很有趣,而且美国教授也都特别喜欢能言善辩的学生! 自己立刻恶补文科,却感觉…

    2024年4月8日
  • 凯斯西储大学排名才100多名

    美国凯斯西储大学2020年《美国新闻与世界报道》世界大学500强排名155,2020年QS世界大学排名179,2020年《泰晤士高等教育》世界大学排名119。 凯斯西储大学工程学院 凯斯西储大学工程学院拥有125年的教学经验,让学生相互协作,进行研究,在体验式的教育模式中不断解决社会的紧迫问题。学院为学生营造了一个创新性的教育环境,提供了包括本科和研究生的5…

    2025年1月8日
  • 利物浦大学排名(利物浦大学排名QS)

    前言 近日,英国杂志The Times & The Sunday Times《泰晤士报》与《星期日泰晤士报》发布了2024年英国大学最新排名,相比于QS世界大学排名这种综合排名,《泰晤士报》发布的英国大学排名更能够反映出在英国本地人心目中各个高校的排名情况。赶快跟着小编探索详情吧! 简介 今年的排名主要根据指标: 1. 教学质量 Teaching q…

    2023年11月15日
  • 西班牙签证所需材料(西班牙签证所需材料清单)

    据国家移民管理局2月7日公布,随着新型冠状病毒感染“乙类乙管”后优化移民管理政策措施落实落地,2月6日全国出入境人员数量达到67.6万人次,创疫情以来新高。 我国出入境新政颁布后,我国出入境人数与日俱增,许多国门重启出国热情。这其中,出国旅游的人数,占据了出国总人数的大部分。随着中国经济的突飞猛进,出国旅行早已不是什么稀奇事,不论是近在眼前的东南亚国家,还是…

    2023年11月23日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信