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

一、项目简介

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

相关推荐

  • 去国外读研究生需要什么条件

    出国留学读研需满足多方面的条件,包括学术成绩、语言能力、经济证明、住宿条件、交通出行、科研潜力和社会实践等,在准备过程中小茶君留学建议要充分了解学校的申请要求,展示自己的优势和独特性,保持积极的心态和耐心 一、学术成绩 需具备优秀的学术成绩,要求本科阶段平均绩点(GPA)达到一定标准,如3.0/4.0或更高 学术背景应与所申请的研究生专业相关,有相关课程学习…

    2024年7月3日
  • 新加坡留学中介费用(新加坡留学中介费用一览表)

    新加坡留学越来越受欢迎,有不少家庭开始把目光转向新加坡留学,但是,作为一个普通人家也对留学相关项目不了解就会想要寻求一个留学中介的帮助,那么新加坡留学中介哪家好?推荐哪家? 事实上,新加坡留学市场中的留学中介很多,但是并不是所有公司都是值得信赖的。下面是一些建议,可以帮助留学生选择一家靠谱的留学中介。 首先,选择一家合法注册的留学中介。在新加坡,任何从事咨询…

    2023年11月28日
  • 新加坡留学私立大学申请条件

    1、新加坡私立大学本科专业申请 留学新加坡的私立学校与本科学校相比,申请条件要宽松许多,只要留学生达到高二以上的学习经历,就可以提出申请。申请新加坡私立学校对学生的语言不做硬性要求,留学生可以通过语言课程的学习来免除提供雅思成绩。2、新加坡私立大学硕士研究生申请 申请人需要提供本科毕业证书,雅思成绩达到6.5分即可(也可以通过语言课程学习免试)。 1、新加坡…

    2025年3月15日
  • 美国范德堡大学排名

    2020年QS世界大学排名美国范德堡大学排名第200,在2020年泰晤士高等教育世界大学排名第116,2020年Niche美国最佳大学排名范德堡大学排名第12 范德堡大学热门专业 法学、医学、护理学、工程学、商科、特殊教育、听觉学、临床医学与药理学、生命科学与农学、社会科学、数学与自然科学、人力资源管理、比较文学、英语、西班牙语; 范德堡大学奖学金申请 范德…

    2025年10月20日
  • 澳洲昆士兰大学简介_澳洲昆士兰大学百度百科

    昆士兰大学(英语:The University of Queensland;简称昆大、UQ),是一所位于澳大利亚昆士兰州首府布里斯班的公立研究型大学,于1909年12月10日由昆士兰州议会成立。为昆士兰的第一所大学,也是澳大利亞最古老、规模最大的学府之一,在全澳拥有四个校区和若干研究中心。根据四大全球大学评比机构的平均排名,昆士兰大学在澳大利亚位列第三。 昆…

    2024年2月23日
  • 中国前10名大学排名分数

    近日,自然指数官网更新最新排名(统计时间节点为2023.11.1-2024.10.31)。最新自然指数排名中,哈佛大学位居全球高校第1,中国科学技术大学位居全球高校第2。 自然指数(Nature Index)在2014年11月首次发布,是依托于全球顶级期刊(《自然》系列,《科学》《细胞》,医学等145种期刊),统计各高校、科研院所(国家)在国际上最具影响力的…

    2025年3月21日
  • 澳洲维多利亚大学毕业证

    中新网2月27日电 据澳洲网报道,澳大利亚维多利亚州高考(VCE)有望迎来历史上规模最大的一场变革。维州政府正考虑针对所有学生设立最低读写和数学标准,只有达到这一标准的学生才有资格从高中毕业。 维州拟设最低能力标准 据报道,有关学生学术能力出现持续倒退的报道在澳引发热议。在此之际,维州教育厅长马连劳(James Merlino)敦促维州课程与评估管理局(VC…

    2025年3月13日
  • 日语入门学习视频

    大家都知道,日文跟中文是有着非常深的渊源,在各自的书写系统上,部分日文和现在我国的现行汉字的区别是很小的,这就是中国人学习和自学日语相较于欧美等地而言最大的优势。这意味着你完全不用记许多汉字的写法,因为你的幼儿园老师已经教给你了,当然,读音的类似也会对记忆这些词有所帮助。 那么大家是从什么地方开始对日语感兴趣的呢?是从日剧,日综,日漫日本偶像,日式游戏,日本…

    2023年12月4日
  • 宾汉姆顿大学野鸡

    美国大学那么多,学生和家长在申请选校的时候容易犯迷糊,不仅分不清“university”和“college”,还弄不懂“主校”和“分校”的区别。 在我们的传统思维里,主校是好的,而分校远不如主校专业与权威。但事实上,这种想法比较适用于国内,美国大学的主校与分校的区别与国内大不相同。 但是对于大多数美国大学来说,总校和分校是可以被看作两所不同的学校,他们资源、…

    2024年10月13日
  • 犹他大学计算机专业排名_犹他大学计算机科学专业

    编辑:好困 拉燕 David 【新智元导读】最近,U.S.News又发新榜单了!学校的评价通常会包括,投入(教育等品质)和产出(毕业生的成就)等。不过,对于科学领域来说,标准就有些不一样了。 3月29日,2023 U.S.News全美研究生院排名正式发布。 今年除了以往的商科、法律、医学、护理、工程和教育这6大学科以外,还新增了纯粹依据学术专家对项目进行打分…

    2024年4月29日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信