基于深度学习的轴承寿命预测实践,开发CNN、融合LSTM/GRU/ATTENTION

这篇具有很好参考价值的文章主要介绍了基于深度学习的轴承寿命预测实践,开发CNN、融合LSTM/GRU/ATTENTION。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

关于轴承相关的项目之前做的大都是故障识别诊断类型的,少有涉及回归预测的,周末的时候宅家发现一个轴承寿命加速实验的数据集就想着拿来做一下寿命预测。

首先看下数据集如下:

结合 lstm 和 self attention 的滚动轴承 剩余使用寿命预测方法,机器学习,深度学习,人工智能,python,Powered by 金山文档

直接百度即可搜到,这里就不再赘述了。

结合 lstm 和 self attention 的滚动轴承 剩余使用寿命预测方法,机器学习,深度学习,人工智能,python,Powered by 金山文档

Learning_set为训练集

Test_set为测试集

我这里为了简单处理直接使用Learning_set作为总数据集,随机划分指定比例作为测试集。

当然了你也可以选择分别读取加载两部分的数据分别作为训练集和测试集都可以的。

结合 lstm 和 self attention 的滚动轴承 剩余使用寿命预测方法,机器学习,深度学习,人工智能,python,Powered by 金山文档

每个目录下都是一堆csv文件,样例如下:

结合 lstm 和 self attention 的滚动轴承 剩余使用寿命预测方法,机器学习,深度学习,人工智能,python,Powered by 金山文档

样例数据内容如下:

9,11,19,1.1879e+05,0.059,-0.372
9,11,19,1.1883e+05,0.603,-0.085
9,11,19,1.1887e+05,0.613,0.112
9,11,19,1.1891e+05,0.465,0.185
9,11,19,1.1894e+05,-0.216,-0.256
9,11,19,1.1898e+05,-0.806,0.177
9,11,19,1.1902e+05,-0.653,0.113
9,11,19,1.1906e+05,-0.007,0.398
9,11,19,1.191e+05,0.888,0.145
9,11,19,1.1914e+05,1.037,-0.542
9,11,19,1.1918e+05,0.299,-0.201
9,11,19,1.1922e+05,-0.552,-0.022
9,11,19,1.1926e+05,-1.237,0.264
9,11,19,1.193e+05,-1.059,0.155
9,11,19,1.1934e+05,-0.269,0.163
9,11,19,1.1937e+05,0.662,0.269
9,11,19,1.1941e+05,0.949,0.078
9,11,19,1.1945e+05,0.403,-0.065
9,11,19,1.1949e+05,-0.279,-0.411
9,11,19,1.1953e+05,-0.856,0.033
9,11,19,1.1957e+05,-0.736,0.201
9,11,19,1.1961e+05,0.098,0.326
9,11,19,1.1965e+05,0.718,-0.183
9,11,19,1.1969e+05,0.61,-0.038
9,11,19,1.1973e+05,0.201,0.092
9,11,19,1.1976e+05,-0.3,0.01
9,11,19,1.198e+05,-0.378,0.447
9,11,19,1.1984e+05,0.149,-0.189
9,11,19,1.1988e+05,0.499,-0.421
9,11,19,1.1992e+05,0.325,0.024
9,11,19,1.1996e+05,-0.265,0.49
9,11,19,1.2e+05,-0.708,0.487
9,11,19,1.2004e+05,-0.443,0.157
9,11,19,1.2008e+05,-0.042,-0.437
9,11,19,1.2012e+05,0.238,-0.025
9,11,19,1.2016e+05,0.46,0.193
9,11,19,1.202e+05,0.192,0.036
9,11,19,1.2023e+05,-0.093,0.118
9,11,19,1.2027e+05,-0.344,0.148
9,11,19,1.2031e+05,-0.174,0.117
9,11,19,1.2035e+05,-0.029,-0.026
9,11,19,1.2039e+05,0.026,0.469

关于数据处理可以直接使用官方提供的代码:

%% 批量读取IEEE PHM 2012轴承全寿命数据
clc
clear all
close all
%% 文件夹路径
file_path =  'Learning_set/';
%% 全寿命振动信号
csv_acc_path_list = dir(strcat(file_path,'acc*.csv'));
csv_acc_num = length(csv_acc_path_list);%获取文件总数量
if csv_acc_num > 0 %有满足条件的文件
        for j = 1:csv_acc_num %逐一读取文件
            csv_acc_name = csv_acc_path_list(j).name;% 文件名
            csv_acc =  csvread(strcat(file_path,csv_acc_name));
            csv_acc_data(:,:,j)=csv_acc;
            fprintf('%d %d %s\n',csv_acc_num,j,strcat(file_path,csv_acc_name));% 显示正在处理的文件名
        end
end
% 合并矩阵 时间*通道
channel=6;   %信号的通道数
csv_acc_data_change=permute(csv_acc_data,[2 1 3]);
csv_acc_data=reshape(csv_acc_data_change,channel,prod(size(csv_acc_data))/channel)';

%% 全寿命温度信号
csv_temp_path_list = dir(strcat(file_path,'temp*.csv'));%获取该文件夹中所有csv格式的文件
csv_temp_num = length(csv_temp_path_list);%获取文件总数量
delimiter = ',';
formatSpec = '%s%s%s%s%s%s%[^\n\r]';
if csv_temp_num > 0 %有满足条件的文件
        for j = 1:csv_temp_num %逐一读取文件
            csv_temp_name = csv_temp_path_list(j).name;% 文件名
            csv_temp_fileID = fopen(strcat(file_path,csv_temp_name),'r');
            csv_temp = textscan(csv_temp_fileID, formatSpec, 'Delimiter', delimiter);
            for i=1:size(csv_temp{1,1},1)
                csv_temp_data(i,:,j)=str2num(csv_temp{1,1}{i,1})';
            end
            fprintf('%d %d %s\n',csv_temp_num,j,strcat(file_path,csv_temp_name));% 显示正在处理的文件名
            fclose(csv_temp_fileID);
        end
end

% 合并矩阵 时间*通道
channel=5;   %信号的通道数
csv_temp_data_change=permute(csv_temp_data,[2 1 3]);
csv_temp_data=reshape(csv_temp_data_change,channel,prod(size(csv_temp_data))/channel)';

%% 全寿命振动信号和温度信号的时域图
clearvars -except csv_acc_data csv_temp_data
figure;subplot 211;plot(csv_acc_data(:,5));title('水平振动信号');
       subplot 212;plot(csv_acc_data(:,6));title('竖直振动信号');
figure;plot(csv_temp_data(:,5));title('温度信号')

这里我不是很懂数据背景所以就不多解释了,有懂行的可以交流一下。

为了直观分析数据这里对其进行了可视化如下:

结合 lstm 和 self attention 的滚动轴承 剩余使用寿命预测方法,机器学习,深度学习,人工智能,python,Powered by 金山文档
结合 lstm 和 self attention 的滚动轴承 剩余使用寿命预测方法,机器学习,深度学习,人工智能,python,Powered by 金山文档
结合 lstm 和 self attention 的滚动轴承 剩余使用寿命预测方法,机器学习,深度学习,人工智能,python,Powered by 金山文档

完成数据处理之后就可以搭建所需要的模型了,这里出于做实验的目的开发了很多种不同的模型:CNN、CNN-LSTM、CNN-GRU、CNN-LSTM-ATTENTION、CNN-GRU-ATTENTION等,这里以CNN为例简单看下实际的结构:

结合 lstm 和 self attention 的滚动轴承 剩余使用寿命预测方法,机器学习,深度学习,人工智能,python,Powered by 金山文档

只使用了两层的卷积来实现特征提取。

效果如下:

结合 lstm 和 self attention 的滚动轴承 剩余使用寿命预测方法,机器学习,深度学习,人工智能,python,Powered by 金山文档

loss曲线如下所示:

结合 lstm 和 self attention 的滚动轴承 剩余使用寿命预测方法,机器学习,深度学习,人工智能,python,Powered by 金山文档

为了整体方便使用不同系列的模型这里开发了界面将所有模型整合到了一起,如下:

结合 lstm 和 self attention 的滚动轴承 剩余使用寿命预测方法,机器学习,深度学习,人工智能,python,Powered by 金山文档

支持训练/测试两种不同的计算模式如下:

结合 lstm 和 self attention 的滚动轴承 剩余使用寿命预测方法,机器学习,深度学习,人工智能,python,Powered by 金山文档

支持自定义测试数据占比计算,如下:

结合 lstm 和 self attention 的滚动轴承 剩余使用寿命预测方法,机器学习,深度学习,人工智能,python,Powered by 金山文档

支持不同模型自由切换选择,如下:

结合 lstm 和 self attention 的滚动轴承 剩余使用寿命预测方法,机器学习,深度学习,人工智能,python,Powered by 金山文档

支持不同可视化选项,如下:

结合 lstm 和 self attention 的滚动轴承 剩余使用寿命预测方法,机器学习,深度学习,人工智能,python,Powered by 金山文档

后续有时间话会考虑将一些集成测量加入进来尝试构建更加高效的模型。文章来源地址https://www.toymoban.com/news/detail-782761.html

到了这里,关于基于深度学习的轴承寿命预测实践,开发CNN、融合LSTM/GRU/ATTENTION的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深度学习实战——卷积神经网络/CNN实践(LeNet、Resnet)

          忆如完整项目/代码详见github: https://github.com/yiru1225 (转载标明出处 勿白嫖 star for projects thanks) 本系列博客重点在深度学习相关实践(有问题欢迎在评论区讨论指出,或直接私信联系我)。 第一章  深度学习实战——不同方式的模型部署(CNN、Yolo)_如何部署cnn_

    2023年04月11日
    浏览(33)
  • Python轴承故障诊断 (四)基于EMD-CNN的故障分类

    目录 前言 1 经验模态分解EMD的Python示例 2 轴承故障数据的预处理 2.1 导入数据 2.2 制作数据集和对应标签 2.3 故障数据的EMD分解可视化 2.4 故障数据的EMD分解预处理 3 基于EMD-CNN的轴承故障诊断分类 3.1 训练数据、测试数据分组,数据分batch 3.2 定义EMD-VGG1d网络模型 3.3 设置参数

    2024年04月27日
    浏览(26)
  • 基于FFT + CNN - Transformer 时域、频域特征融合的轴承故障识别模型

    目录 往期精彩内容: 前言 1 快速傅里叶变换FFT原理介绍 2 轴承故障数据的预处理 2.1 导入数据 2.2 制作数据集和对应标签 3 基于FFT+CNN-Transformer的轴承故障识别模型 3.1 网络定义模型 3.2 设置参数,训练模型 3.3 模型评估 Python-凯斯西储大学(CWRU)轴承数据解读与分类处理_cwr

    2024年02月03日
    浏览(45)
  • 基于小波时频图和2D-CNN的滚动轴承故障检测

    目录 一、研究思路  1、基于小波时频图和CNN的滚轴故障诊断方法的研究思路如下: 二、数据集介绍与数据处理   1、数据集介绍 2、数据集分割与合并 3、数据集分析 三、小波时频图导出 四、CNN网络的构建和测试 1、CNN网络构建  2、训练参数的优化 4、训练结果  1、基于小

    2023年04月19日
    浏览(35)
  • 基于Pytorch框架的CNN-LSTM模型在CWRU轴承故障诊断的应用

    目录 1. 简介 2. 方法 2.1数据集 2.2模型架构 1. 简介 CWRU轴承故障诊断是工业领域一个重要的问题,及早发现轴承故障可以有效地减少设备停机时间和维修成本,提高生产效率和设备可靠性。传统的基于信号处理和特征提取的方法通常需要手工设计特征,这在某些情况下可能无法

    2024年04月15日
    浏览(49)
  • Python轴承故障诊断 (11)基于VMD+CNN-BiGRU-Attenion的故障分类

    目录 往期精彩内容: 前言 模型整体结构 1 变分模态分解VMD的Python示例 2 轴承故障数据的预处理 2.1 导入数据 2.2 故障VMD分解可视化 2.3 故障数据的VMD分解预处理 3 基于VMD-CNN-BiGRU-Attenion的轴承故障诊断分类 3.1 定义VMD-CNN-BiGRU-Attenion分类网络模型 3.2 设置参数,训练模型 3.3 模

    2024年01月19日
    浏览(36)
  • Transformer预测 | Pytorch实现基于Transformer的锂电池寿命预测(NASA数据集)

    效果一览 文章概述 Pytorch实现基于Transformer 的锂电池寿命预测,环境为pytorch 1.8.0,pandas 0.24.2 随着充放电次数的增加,锂电池的性能逐渐下降。电池的性能可以用容量来表示,故寿命预测 (RUL) 可以定义如下: SOH(t)=CtC0×100%, 其中,C0 表示额定容量,Ct 表示 t 时刻的容量。等到

    2024年02月07日
    浏览(38)
  • 【轴承RUL预测代码】基于TCN、TCN和多头注意力(TCN和Transformer的encoder结合)、Transformer模型的轴承RUL预测代码(精华)

    这里以PHM2012轴承特征数据集为例,采样频率为25.6kHz,采样持续时间是0.1s,采样点数是2560 原始特征集 类型 振动数据 2560维度 FFT预处理数据 1280维度 STFT预处理数据 1281维度 后续还可以将上述的原始特征集数据作为深度自编网络的输入,进行无监督学习,提取深度特征数据 自

    2024年02月12日
    浏览(30)
  • 基于深度学习的图片上色(Opencv,Pytorch,CNN)

    文末附有源码下载地址。 灰度图自动上色 2.1 RGB 想要对灰度图片上色,首先要了解图像的格式,对于一副普通的图像通常为RGB格式的,即红、绿、蓝三个通道,可以使用opencv分离图像的三个通道,代码如下所示: 代码运行结果如下所示。 2.2 hsv hsv是图像的另一种格式,其中

    2024年02月01日
    浏览(31)
  • 大数据深度学习:基于Tensorflow深度学习卷积神经网络CNN算法垃圾分类识别系统

    随着社会的发展和城市化进程的加速,垃圾分类已经成为了环境保护和可持续发展的重要课题。然而,传统的垃圾分类方法通常依赖于人工识别,效率低下且易出错。因此,本项目旨在利用大数据和深度学习技术,构建一个基于 TensorFlow 深度学习的神经网络 CNN(Convolutional

    2024年04月14日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包