位置: IT常识 - 正文

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

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

推荐整理分享基于深度学习的轴承寿命预测实践,开发CNN、融合LSTM/GRU/ATTENTION,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

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

首先看下数据集如下:

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

Learning_set为训练集

Test_set为测试集

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

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

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

样例数据内容如下:

9,11,19,1.1879e+05,0.059,-0.3729,11,19,1.1883e+05,0.603,-0.0859,11,19,1.1887e+05,0.613,0.1129,11,19,1.1891e+05,0.465,0.1859,11,19,1.1894e+05,-0.216,-0.2569,11,19,1.1898e+05,-0.806,0.1779,11,19,1.1902e+05,-0.653,0.1139,11,19,1.1906e+05,-0.007,0.3989,11,19,1.191e+05,0.888,0.1459,11,19,1.1914e+05,1.037,-0.5429,11,19,1.1918e+05,0.299,-0.2019,11,19,1.1922e+05,-0.552,-0.0229,11,19,1.1926e+05,-1.237,0.2649,11,19,1.193e+05,-1.059,0.1559,11,19,1.1934e+05,-0.269,0.1639,11,19,1.1937e+05,0.662,0.2699,11,19,1.1941e+05,0.949,0.0789,11,19,1.1945e+05,0.403,-0.0659,11,19,1.1949e+05,-0.279,-0.4119,11,19,1.1953e+05,-0.856,0.0339,11,19,1.1957e+05,-0.736,0.2019,11,19,1.1961e+05,0.098,0.3269,11,19,1.1965e+05,0.718,-0.1839,11,19,1.1969e+05,0.61,-0.0389,11,19,1.1973e+05,0.201,0.0929,11,19,1.1976e+05,-0.3,0.019,11,19,1.198e+05,-0.378,0.4479,11,19,1.1984e+05,0.149,-0.1899,11,19,1.1988e+05,0.499,-0.4219,11,19,1.1992e+05,0.325,0.0249,11,19,1.1996e+05,-0.265,0.499,11,19,1.2e+05,-0.708,0.4879,11,19,1.2004e+05,-0.443,0.1579,11,19,1.2008e+05,-0.042,-0.4379,11,19,1.2012e+05,0.238,-0.0259,11,19,1.2016e+05,0.46,0.1939,11,19,1.202e+05,0.192,0.0369,11,19,1.2023e+05,-0.093,0.1189,11,19,1.2027e+05,-0.344,0.1489,11,19,1.2031e+05,-0.174,0.1179,11,19,1.2035e+05,-0.029,-0.0269,11,19,1.2039e+05,0.026,0.469基于深度学习的轴承寿命预测实践,开发CNN、融合LSTM/GRU/ATTENTION

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

%% 批量读取IEEE PHM 2012轴承全寿命数据clcclear allclose 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));% 显示正在处理的文件名endend% 合并矩阵 时间*通道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})';endfprintf('%d %d %s\n',csv_temp_num,j,strcat(file_path,csv_temp_name));% 显示正在处理的文件名fclose(csv_temp_fileID);endend% 合并矩阵 时间*通道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_datafigure;subplot 211;plot(csv_acc_data(:,5));title('水平振动信号');subplot 212;plot(csv_acc_data(:,6));title('竖直振动信号');figure;plot(csv_temp_data(:,5));title('温度信号')

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

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

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

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

效果如下:

loss曲线如下所示:

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

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

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

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

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

后续有时间话会考虑将一些集成测量加入进来尝试构建更加高效的模型。

本文链接地址:https://www.jiuchutong.com/zhishi/297627.html 转载请保留说明!

上一篇:猿创征文 |【高级篇】Java 进阶之JVM实战(猿创部落科技有限公司)

下一篇:ChatGPT从入门到精通(附PDF文档)(chatcters)

  • 企业取得被投资单位的长期股权可以享有
  • 如何开局增值税发票
  • 档案室图书应该做哪个会计科目
  • 教育培训学校怎么翻译
  • 中兴通技术维护费
  • 煤矿企业维简费税务规定
  • 网站服务器使用什么IP地址
  • 城建税如何纳税申报
  • 远程认证是什么意思
  • 国有划拨地是否能转让土地
  • 一般纳税人销售自己使用过的物品
  • 计提本月银行借款
  • 电脑中毒如何处理
  • regsvc32.exe - regsvc32是什么进程 有什么用
  • 处理车辆违章送什么证件
  • 企业养老金有几个档次
  • yii2框架优秀在哪里
  • 2023前端面试题百度云
  • 房租违约金怎么开发票
  • Smarty实现页面静态化(生成HTML)的方法
  • 前端解决跨域问题的8种方案(最新最全)
  • lama羊驼
  • 西安微信公众号开发
  • apache trace
  • Google C++ Style中允许使用的Boost库(1) 程序即人生 博客频道 CSDN.NET
  • 以摊余成本计量的金融资产会计处理
  • 境外捐赠入账
  • js原型链的用处
  • 关于进项票少的解决方案
  • 保险中介手续费规定最新
  • 工业企业会计核算中常见的会计核算程序有哪些?
  • 补缴以前年度附加税怎么申报
  • 本年度的进项可以结转到下一年度吗
  • 税务信用级别A有什么好处
  • 长期股权投资投资损益的确认
  • 企业所得税季度预缴纳税申报表
  • 小规模纳税人出售使用过固定资产
  • 折旧与摊销会计分录
  • 增值税专用发票几个点
  • 职工薪酬纳税调整明细表税收金额
  • 开具信用证的费用能开专票吗
  • 进项税怎么记账
  • 应收票据到期收回的会计分录
  • 汇算清缴补税的凭证后面需要附件吗
  • 处置子公司利润表怎么合并
  • 流动性比率过小什么意思
  • 认缴制下实收资本可以减少吗
  • 上家失控发票补税补不起
  • 企业计提任意盈余公积的比例
  • 公司账户可以转个人支付宝吗
  • 企业收到微信和企业微信
  • 包工包料如何核算成本
  • 退票费收入按什么征税
  • 服务外包离岸业务是什么
  • 应付暂估余额很大怎么办
  • 销项发票导出为什么是乱码
  • 城镇土地使用税减免税政策
  • 商业银行的固定资产
  • 新准则房地产企业收入确认时间
  • sql merge函数
  • 新装mysql设置密码
  • mysql 5.6.23 winx64.zip安装详细教程
  • hyper-v怎么样
  • Linux系统中uniq命令的基本使用教程
  • 清除桌面应用软件
  • reminder.exe - reminder是什么进程 有什么用
  • win10关闭metro界面
  • 检查linux是否安装了,可用哪些命令
  • win7电脑关机后自动开机怎么回事
  • windows和linux的区别
  • bat 截取字符串
  • unity 位图字体
  • 批处理文件可用记事本
  • 计算字符串的长度使用哪个函数?
  • node.js的exports、module.exports与ES6的export、export default深入详解
  • android 侧滑页面
  • jQuery插件是什么
  • jquery获取多个元素
  • python中import导入模块的方法
  • 已知税率怎么求政府税收
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设