机器学习(深度学习)轴承故障诊断分类(提供故障数据和python代码实现)

news2024/11/26 21:22:55

机器学习(深度学习)故障诊断分类(提供故障数据和python代码实现)
轴承故障数据集和python代码自取:https://mbd.pub/o/bread/ZZWTm5hw

摘要:机器学习广泛的应用于机械故障诊断和故障分类问题,本研究利用机器学习的卷积神经网络对滚动轴承内圈损坏尺寸的分类,利用凯斯西储实验室提供的数据,整理出滚动轴承内圈损坏尺寸分别为0.14cm和0.21cm的数据集,通过机器学习实现对两个损坏尺寸的分类训练模型,通过数据测试模型的有效性。
关键词: 机器学习;神经网络;机械故障诊断;训练模型;数据集

机器学习(Machine Learning)是一种人工智能领域的技术和方法,机器学习的基本思想是利用数据来构建一个模型,该模型可以从数据中学习并进行预测[1]。为了实现这一目标,机器学习使用了大量的训练数据集,其中包含输入数据和对应的输出结果或标签。通过对这些数据进行分析和学习,机器学习算法可以自动发现数据中的模式和关联性,并从中构建出一个能够对新的输入数据进行预测的模型[2]。
1 基本理论介绍
1.1 卷积神经网络
卷积神经网络(Convolutional Neural Networks)是神经网络的一种,卷积神经网络通常由卷积层、池化层和全连接层组成[3],典型的CNN模型如图1所示。输入层一般是某一尺寸的二维数据,通常是三通道的彩色图像或单通道的灰度图像; 卷积层和池化层是 CNN 的核心层,卷积层通过一系列的卷积核对输入层的图像进行卷积从而获得相应数量的特征图,即特征提取[4][5]。池化层对卷积层得到的特征图进行最大值池化或平均值池化等操作,从而大幅减少卷积层的空间维度,降低计算成本,控制过拟合; 经过若干次的卷积和池化层,紧接着将池化操作后的数据展开并输入到全连接层,全连接层连接一个隐藏层,最后由 softmax 函数将数据映射到输出层[6][7]。
在这里插入图片描述

图1 典型的卷积神经网络结构图
1.2 轴承故障机理
轴承是工业设备中常见的关键组件,用于支撑和转动机械部件。轴承故障是工业运行中常见的问题之一,轴承通常由外圈、内圈滚动体和保持架组成[8][9]。结构如图2所示。
在这里插入图片描述

图2 轴承结构图
了解轴承故障的机理对于预防和维护至关重要。下面是一些常见的轴承故障机理:(1)疲劳故障:疲劳是最常见的轴承故障机理之一。在长时间的运转过程中,轴承承受着来自负载和振动的应力,这可能导致材料的疲劳损伤。疲劳故障通常表现为裂纹、剥落和断裂等。(2)磨损:磨损是轴承故障的常见原因之一。磨损可能由于轴承内部零件之间的摩擦、颗粒污染或润滑不足等引起。磨损故障可能导致轴承内部间隙的增加,降低了其性能和寿命。(3)过热:过热是轴承故障的常见指标之一。过高的温度可能是由于摩擦、润滑不足、轴承损伤或环境条件等因素引起的。过热会导致轴承润滑剂的失效,损害轴承表面,并加速磨损和疲劳。(4)锈蚀和腐蚀:环境中的湿度和腐蚀性物质可能导致轴承的锈蚀和腐蚀。这会破坏轴承表面的润滑膜,加速磨损和损坏。(5)轴承安装不当:轴承安装不当也可能导致故障。例如,不正确的安装力、轴向间隙不合适或使用不当的工具等都可能对轴承的性能和寿命产生负面影响[10]。
本研究的是轴承内圈的裂纹故障,根据凯斯西储实验室公开的数据,损伤尺寸数据集为0.14cm和0.21cm两类,本文整理这两类故障作为神经网络训练数据集,训练出的模型能够将测试数据分类为0.14cm和0.21cm的损伤尺寸故障。
在这里插入图片描述

2 代码实现
代码实现流程如图3所示。
图3 代码实现流程图
从"故障数据集.csv"文件中读取轴承故障数据集,该数据集包含轴承故障样本和对应的内圈损伤尺寸标签。将特征数据存储在X中,使用np.expand_dims将数据维度转换为(样本数, 特征数, 1),以适应一维卷积神经网络的输入要求。对标签数据进行数字编码,使用LabelEncoder将标签转换为数字形式,并使用np_utils.to_categorical将数字编码的标签转换为二进制矩阵形式。
使用train_test_split将数据集划分为训练集和测试集,其中70%的数据用于训练,30%的数据用于测试。
定义一维卷积神经网络模型,使用Sequential模型初始化一个线性堆叠模型。添加一维卷积层Convolution1D,设置卷积核数量、卷积核大小、步长和输入形状。添加激活函数层Activation,使用’tanh’作为激活函数。添加池化层MaxPooling1D,设置池化窗口大小和步长。添加批归一化层BatchNormalization,进行数据归一化处理。添加Flatten层,将多维输入展平为一维。添加Dropout层,进行随机失活以避免过拟合。添加全连接层Dense,设置神经元数量和激活函数。添加输出层Dense,设置输出类别数量和激活函数。使用compile方法配置模型的损失函数、优化器和评估指标。
在训练和评估模型中,使用KerasClassifier包装模型,以便在Scikit-learn中进行交叉验证。使用fit方法训练模型,指定训练集和相关参数。通过绘制曲线可视化模型的损失和准确率,如图4所示。程序实现了对卷积层输出的可视化,其中使用keras.backend.function获取指定层的输出,然后绘制特征图。绘制了混淆矩阵的可视化图,如图5所示,使用confusion_matrix计算混淆矩阵,并使用plot_confusion_matrix函数绘制图像。
最后收集测试数据集,将保存和加载的模型预测该测试集,预测部分结果如图6所示,标签为0表示轴承内圈损伤尺寸为0.14cm, 标签为1表示轴承内圈损伤尺寸为0.21cm
在这里插入图片描述

图4 损失和准确率图
在这里插入图片描述

图5 混淆矩阵图
在模型保存和加载中,将模型保存为JSON格式,使用model.to_json将模型结构保存到文件。保存模型权重,使用model.save_weights将模型权重保存到文件。加载模型时,使用model_from_json加载模型结构,然后使用load_weights加载模型权重。对加载的模型进行编译和评估,计算分类准确率。
在这里插入图片描述

图6 测试集预测结果
3 结束语
本文实现了一个基于机器学习的滚动轴承内圈损坏尺寸的二分类模型。研究使用了由凯斯西储实验室提供的滚动轴承内圈损坏尺寸为0.14cm和0.21cm的样本数据,通过训练神经网络模型,实现对两种损坏尺寸的分类训练模型,通过测试数据测试模型的有效性。

参考文献
[1] 基于多通道一维卷积神经网络特征学习的齿轮箱故障诊断方法[J]. 叶壮;余建波.振动与冲击,2020(20)
[2] Parity recognition of blade number and manoeuvre intention classification algorithm of rotor target based on micro-Doppler features using CNN[J]. WANG Wantian;TANG Ziyue;CHEN Yichang;SUN Yongjian.Journal of Systems Engineering and Electronics,2020(05)
[3] 自适应卷积神经网络在旋转机械故障诊断中的应用[J]. 李涛;段礼祥;张东宁;赵赏鑫;黄辉;毕彩霞;袁壮.振动与冲击,2020(16)
[4] 滚动轴承多状态特征信息的改进型卷积神经网络故障诊断方法[J]. 周陈林;董绍江;李玲;汤宝平;贺坤;穆书锋;张潇汀.振动工程学报,2020(04)
[5] 基于优化变分模态分解和卷积神经网络的齿轮故障诊断[J]. 杨同光;于晓光.组合机床与自动化加工技术,2020(07)
[6] 采用HHT算法与卷积神经网络诊断轴承复合故障[J]. 施杰;伍星;刘韬.农业工程学报,2020(04)
[7] 卷积神经网络多变量过程特征学习与故障诊断[J]. 陈淑梅;余建波.哈尔滨工业大学学报,2020(07)
[8] 深度学习在旋转机械设备故障诊断中的应用研究综述[J]. 吴春志;冯辅周;吴守军;陈汤;王杰.噪声与振动控制,2019(05)
[9] 基于改进3D卷积神经网络的行为识别[J]. 张小俊;李辰政;孙凌宇;张明路.计算机集成制造系统,2019(08)
[10] 无标签数据下基于特征知识迁移的机械设备智能故障诊断[J]. 郭亮;董勋;高宏力;李长根.仪器仪表学报,2019(08)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1170524.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全志H6-LicheePi调试记录

LPDDR3:K4E6E304ED-EGCG和K4E6E304ED-EGCF 最高速率不一样,CG是2133MHz,CF是1866MHz

【leetcode】27. 原地移除元素(图解)

目录 1. 思路(图解)2. 代码 题目链接:leetcode 27. 移除元素 题目描述: 需要注意的是,返回的是新数组长度,但是输出的是数组元素。 1. 思路(图解) 思路一:空间换时间…

基于SSM的流浪动物领养系统网站设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

自动化测试框架知识详解

自动化测试因其节约成本、提高效率、减少手动干预等优势已经日渐成为测试人员的“潮流”,从业人员日益清楚地明白实现自动化框架是软件自动化项目成功的关键因素之一。本篇文章将从什么是真正的自动化测试框架、自动化脚本如何工作以及自动化测试框架会如何在测试过…

手机转接器实现原理,低成本方案讲解

USB-C PD协议里,SRC和SNK双方之间通过CC通信来协商请求确定充电功率及数据传输速率。当个设备需要充电时,它会发送消息去给适配器请求充电,此时充电器会回应设备的请求,并告知其可提供的档位功率,设备端会根据适配器端…

newstarctf2022week2

Word-For-You(2 Gen) 和week1 的界面一样不过当时我写题的时候出了个小插曲 连接 MySQL 失败: Access denied for user rootlocalhost 这句话印在了背景,后来再进就没了,我猜测是报错注入 想办法传参 可以看到一个name2,试着传参 发现有回显三个字段…

深入理解WPF中的依赖注入和控制反转

在WPF开发中,依赖注入(Dependency Injection)和控制反转(Inversion of Control)是程序解耦的关键,在当今软件工程中占有举足轻重的地位,两者之间有着密不可分的联系。今天就以一个简单的小例子&…

692. 前k个高频单词(map)

目录 一、题目 二、代码 一、题目 692. 前K个高频单词 - 力扣&#xff08;LeetCode&#xff09; 二、代码 class Solution {class KV_sort{public:bool operator()(const pair<string,int> kv1, const pair<string,int> kv2){if(kv1.first kv2.first )//两个对…

MyBatis 操作数据库

一、什么是 MyBatis&#xff1f; MyBatis 是是一个ORM 框架&#xff0c;ORM&#xff08;Object Relational Mapping&#xff09;&#xff0c;即对象关系映射。底层实现是基于 JDBC 的&#xff0c;但是 MyBatis 隐藏了 JDBC 的复杂性&#xff0c;提供了简单易用的 API&#xff…

MedianFlow 跟踪算法详解

在技术日新月异的时代&#xff0c;今天的技术可能在明天就会被新的技术取代&#xff0c;例如现在爆火的大模型。但目前看来&#xff0c;大模型还不能做到无所不能。 所以这篇博客还是来考古一下&#xff0c;写一下传统的跟踪算法。这里不是为了怼大模型而为了写一篇传统算法而…

【1++的Linux】之线程(一)

&#x1f44d;作者主页&#xff1a;进击的1 &#x1f929; 专栏链接&#xff1a;【1的Linux】 文章目录 一&#xff0c;Linux线程概念二&#xff0c;线程的优缺点进程和线程类比现实 三&#xff0c; 线程的操作线程的私有资源 && 线程的创建线程的等待线程终止线程分离…

初学Flutter:swiper实现

效果展示&#xff1a; flutter swiper 1、安装 card_swiper 2、引入card_swiper import package:card_swiper/card_swiper.dart;3、使用 这里我主要是对官网例子进行实践&#xff0c;主要是5种常用的swiper 1、普遍的swiper //custom swiper class CustomSwiper extends S…

下载安装各种版本的Vscode以及解决VScode官网下载慢的问题

下载指定版本 在Vscode官网 Vscode官网更新子页 这里的左侧栏点击其中一个会跳转到某个版本&#xff0c;或者在官网子页 https://code.visualstudio.com/updates的后面跟上需要的版本号即可完成目标版本下载页面的跳转 选择Linux里的ARM包不会自动下载而是跳转到另一个页面 …

vue-admin-template 安装遇到的问题

vue-element-admin 是一个后台前端解决方案&#xff0c;它基于 vue 和 element-ui实现。 参考文档&#xff1a; 官网&#xff1a; https://panjiachen.github.io/vue-element-admin-site/zh/guide/#%E5%8A%9F%E8%83%BD遇到的问题&#xff1a; npm ERR! Error while executing…

移动硬盘怎么加密?移动硬盘加密怎么设置?

在工作中&#xff0c;我们经常需要使用移动硬盘来保存重要数据&#xff0c;但是这样却不能保护重要数据的安全。所以&#xff0c;我们可以使用加密来保护移动硬盘。那么&#xff0c;移动硬盘要怎么加密呢&#xff1f; U盘超级加密3000 U盘超级加密3000是一款专业的移动储存设备…

Java类加载机制(类加载器,双亲委派模型,热部署示例)

Java类加载机制 类加载器类加载器的执行流程类加载器的种类加载器之间的关系ClassLoader 的主要方法Class.forName()与ClassLoader.loadClass()区别 双亲委派模型双亲委派 类加载流程优缺点 热部署简单示例 类加载器 类加载器的执行流程 类加载器的种类 AppClassLoader 应用类…

利用maven的dependency插件分析工程的依赖

dependency:analyze https://maven.apache.org/plugins/maven-dependency-plugin/analyze-mojo.html 分析项目的依赖&#xff0c;确定哪些&#xff1a;用了并且声明了、用了但没有声明、没有使用但声明了。 dependency:analyze可以单独使用&#xff0c;所以它总是会执行test-…

【算法练习Day38】零钱兑换完全平方数

​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;练题 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录 零钱兑换完全平方数总结&am…

软件测试:单元测试、集成测试、系统测试详解

实际的测试工作当中&#xff0c;我们会从不同的角度对软件测试的活动进行分类&#xff0c;题主说的“单元测试&#xff0c;集成测试&#xff0c;系统测试”&#xff0c;是按照开发阶段进行测试活动的划分。这种划分完整的分类&#xff0c;其实是分为四种“单元测试&#xff0c;…

TablePlus for Mac 数据库管理工具功能介绍

TablePlus是一款功能强大的数据库管理工具&#xff0c;专为Mac操作系统设计。它支持多种主流数据库&#xff0c;包括MySQL&#xff0c;PostgreSQL&#xff0c;SQLite&#xff0c;Microsoft SQL Server&#xff0c;Amazon Redshift等等。无论您是开发人员、数据库管理员还是数据…