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

一、项目简介

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

相关推荐

  • 收复7.25!谁在继续推高人民币汇率?业内:人民币需求看涨驱动海外资本平仓空头

    境内外人民币汇率正在快速收复7.25一线。 截至2月24日19时,境内在岸市场美元兑人民币汇率(CNY)与境外离岸市场美元兑人民币汇率(CNH)分别徘徊在7.2502与7.2498附近,盘中分别触及日内新高7.2278与7.2252。 这意味着境内外人民币汇率已从两周前的7.3一线明显企稳反弹。 业内人士向记者透露,过去两周人民币汇率呈现回升态势,主要受三大…

    2025年3月12日
  • 新西兰签证(新西兰签证怎么办理)

    1. 准备材料 申请新西兰旅游签证需要准备以下材料: 1.护照:提供护照原件和对应的复印件。 2.照片:一张护照尺寸的照片。 3.签证申请表:下载并填写好签证申请表。 4.机票预订证明:提供机票预订证明。 5.住宿预订证明:提供住宿预订证明。 6.资金证明:提供足够的资金证明,证明您能支付旅费和旅游期间的生活开支。 7.身体检查证明:提供身体检查证明。 2….

    2023年10月23日
  • 华盛顿大学研究生好申请吗

    前言:这是一篇来自公众号达恩留学对华盛顿大学西雅图分校研究生申请难度分析的文章,将从院校实力、专业类别等方面深度解析。 华盛顿西雅图分校在2025年US.News排名世界第7,该校地处西雅图,坐拥广阔的校园与景致宜人的环境,有“公立常春藤”的美誉。紧邻波音航空、微软科技巨头、亚马逊电商巨头以及星巴克咖啡等,这为师生们的学术研究及实习就业搭建了丰富的资源平台。…

    2024年10月25日
  • 出国留学费用最低的学校

    德国的公立大学学费几乎为零,只需支付每学期100至350欧元的费用,相对其他欧洲国家生活费较为合理 法国的公立高等教育机构的学费为每年2700欧元(本科)和每年3700欧元(硕士),生活费相对适中,尤其是巴黎以外的地方 意大利的学士学位的学费每年在900到4000欧元之间,硕士学费在500到4500欧元之间,生活费较为实惠,且有许多奖学金可供申请。 新加坡留…

    2025年4月2日
  • 交大密西根学院_交大密西根学院录取分数线

    上海交通大学密西根学院于2006年在上海正式成立。交大在国内很牛,密歇根大学在美国很牛,毕业的学生,特别是双学位的学生,很容易出国并且拿到好学校的奖学金。 采用全英文教学,课程体系融合了美国密西根大学和上海交通大学的办学特色,所设机械工程和电子与计算机工程两个本科专业获得国际最权威的ABET认证。2019年,学院新开设立了材料科学与工程专业。密西根学院学生可…

    2024年3月18日
  • 马里兰商学院全美排名

    常春藤、新常春藤、公立常春藤…… 那些准留学生不得不知的院校组合 在择校时,同学们往往会看到一些院校组合名称,比如“藤校”“G5”“澳洲G8”“红砖大学”等等,很多大学的介绍里往往提及某某“联盟”“组织”“集团”成员之一。 下面,就让我们一起认识一下常见的海外院校组合。 各种各样的“常春藤” 对于中国的同学和家长们来说,最熟悉的海外高校联盟莫过于“常春藤(I…

    2024年12月10日
  • 全国985大学排名(全国985大学排名最新排名)

    根据2023年ABC中国大学排名结果,985大学排名分别为清华大学(1)、北京大学(2)、中国科学技术大学(3)、复旦大学(3)、浙江大学(5)、上海交通大学(5)、南京大学(5)、中国人民大学(8)、北京航空航天大学(10)、西安交通大学(11)、武汉大学(12)、同济大学(13)、哈尔滨工业大学(14)、华中科技大学(15)、北京师范大学(16)、东南大…

    2023年11月17日
  • alevel课程辅导(alevel课程辅导机构)

    A-level课程辅导是一种为学生提供全面学术支持的教学服务。它能够帮助学生在高中阶段取得优异的成绩,为他们考入理想的大学铺平道路。在这篇文章中,我们将从不同角度来描述A-level课程辅导的重要性和优势。 1.提供个性化学术支持 A-level课程辅导的主要目标之一是提供个性化的学术支持。每个学生都有自己的学习方式和学习需求,因此,辅导老师会根据学生的要求…

    2023年10月5日
  • 悉尼大学和上海大学研究生

    上海大学创办于1922年,是211工程高校,世界一流学科建设高校。学校设有101个本科专业,26个一级学科博士学位授权点、9个交叉学科博士点, 41个一级学科硕士学位授权点(含一级学科博士学位授权点)、1个二级学科硕士学位授权点(一级学科未覆盖)、2个博士专业学位类别、27个硕士专业学位类别(含博士专业学位类别),24个博士后科研流动站。 上海大学2024年…

    2024年12月17日
  • 加拿大约克大学万景分校

    2010年11月9日晚上加拿大的万景市,一名叫潘玲的少女正在自己卧室看着电视、突然听到客厅里有打斗的动静以后、她从门缝中看到了恐怖的一幕,父母正在被三名歹徒疯狂的殴打。并不断逼问钱放在哪里,此刻的她内心几乎崩溃!无助的向后退缩了一下,蹑手蹑脚打算从窗户跳出呼救时,被一名歹徒一脚将门踹开拉下。歹徒揣着她的头发,怒吼到哪里还有钱,她无助的从衣柜里取出了2000加…

    2024年11月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信