当前位置: 首页 > news >正文

强心剂!EEMD-MPE-KPCA-LSTM、EEMD-MPE-LSTM、EEMD-PE-LSTM故障识别、诊断

强心剂!EEMD-MPE-KPCA-LSTM、EEMD-MPE-LSTM、EEMD-PE-LSTM故障识别、诊断

目录

    • 强心剂!EEMD-MPE-KPCA-LSTM、EEMD-MPE-LSTM、EEMD-PE-LSTM故障识别、诊断
      • 效果一览
      • 基本介绍
      • 程序设计
      • 参考资料

效果一览

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

基本介绍

EEMD-MPE-KPCA-LSTM(集合经验模态分解-多尺度排列熵-核主元分析-长短期记忆网络)用于故障识别、诊断(Matlab完整源码和数据)运行环境matlab2023b

1.所用数据集为西安交通大学轴承故障数据集4个故障类别分别为

35HZCage(122条样本)35HZOuter race(123条样本)37.5HZOuter race(161条样本)40HZOuter race(114条样本)

选取每个故障的水平信号并截取前2000个信号点,即共520条样本每条样本长度为2000

更换数据后运行顺序main1EEMD.m、main2KPCA.m、EEMD_MPE_KPCA_LSTM.m

2.程序流程

(1)对520条样本分别采用EEMD进行分解通过判定所有分解信号样本熵值,并重构为高中低3个频段信号

(2)对高中低信号分解进行多尺度排列熵计算并合成,最后得到每条样本的特征向量

(3)对每条样本特征向量进行kpca降维

(4)将数据导入至LSTM进行分类/故障识别

3.对照组

eemd-pe-lstm、eemd-mpe-lstm

精度对比有分类散点图、混淆矩阵、精确率、召回率、调和平均数

在这里插入图片描述
参考文献

在这里插入图片描述

程序设计

  • 完整程序和数据下载私信博主回复Matlab实现EEMD-MPE-KPCA-LSTM、EEMD-MPE-LSTM、EEMD-PE-LSTM故障识别、诊断
%%  清空环境变量
warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行%% EEMD-PE-lstm
load ('eemddata','X1','X2')
load('kpcadata','Y')data = X1;%%生成pe数据集
%输入输出数据
input=data(:,1:end-1);    %data的第一列-倒数第二列为特征指标
output=data(:,end);  %data的最后面一列为标签类型N=length(output);   %全部样本数目
testNum=0.2*N;   %设定测试样本数目
trainNum=N-testNum;    %计算训练样本数目%训练集、测试集
P_train = input(1:trainNum,:)';
T_train =output(1:trainNum)';
P_test =input(trainNum+1:trainNum+testNum,:)';
T_test =output(trainNum+1:trainNum+testNum)';
num_class = length(unique(data(:, end)));  % 类别数(Excel最后一列放类别) t_train =  categorical(T_train)';
t_test  =  categorical(T_test )';% 数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input );
%  格式转换
for i = 1 : trainNumpp_train{i, 1} = p_train(:, i);
endfor i = 1 : testNumpp_test{i, 1} = p_test(:, i);
end%  创建网络
numFeatures = size(P_train, 1);               % 特征维度
numResponses = num_class;layers = [ ...sequenceInputLayer(numFeatures)                  % 输入层lstmLayer(150, 'OutputMode', 'last')         %  lstm层%%调整神经元个数reluLayer                                    % Relu 激活层fullyConnectedLayer(numResponses)               % 全连接层数等于分类数softmaxLayer                                 % 损失函数层classificationLayer];                        % 分类层% 参数设置
checkpointPath = pwd;
options = trainingOptions('adam', ...                 % 优化算法Adam'MaxEpochs', 200, ...                             % 最大训练次数'GradientThreshold', 1, ...                       % 梯度阈值'InitialLearnRate', 0.03, ...                    % 初始学习率'LearnRateSchedule', 'piecewise', ...             % 学习率调整'LearnRateDropPeriod', 200, ...                   % 训练700次后开始调整学习率'LearnRateDropFactor',0.2, ...                    % 学习率调整因子'ExecutionEnvironment', 'cpu',...                 % 训练环境'Verbose', 0, ...                                 % 关闭优化过程'Plots', 'training-progress');                    % 画出曲线

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/128163536?spm=1001.2014.3001.5502
[2] https://blog.csdn.net/kjm13182345320/article/details/128151206?spm=1001.2014.3001.5502


http://www.mrgr.cn/news/56344.html

相关文章:

  • 搭建自己的Docker(容器)镜像加速器
  • Virtuoso Layout无法显示元件,出现pcellEvalFailed错误问题解析
  • 在wpf 中 用mvvm 的方式 绑定 鼠标事件
  • STM32软件模拟I2C的实现方式(一)
  • 《Redis实战》note-8 构建简单的社交网站
  • Yolo目标检测:Yolo v1简介
  • 10.22学习
  • vue中实现css布局
  • 西门子 SMART PLC 扫码串口通讯
  • 【不要离开你的舒适圈】:猛兽才希望你落单,亲人总让你回家,4个维度全面构建舒适圈矩阵
  • Shell重定向输入输出
  • 数据库表的创建
  • 如何自定义一个自己的 Spring Boot Starter 组件(从入门到实践)
  • 算法的学习笔记—数组中的逆序对(牛客JZ51)
  • 安全测试概述和用例设计
  • Modbus协议缺陷(Modbus缺陷)(一次性可读取的寄存器数量有限、不支持寄存器位级写入操作)
  • 【C++】踏上C++学习之旅(三):“我“ 与 “引用“ 的浪漫邂逅
  • 每日算法一练:剑指offer——数组篇(3)
  • IO进程_day4
  • HomeAssistant自定义组件学习-【一】
  • 个税自然人扣缴客户端数据的备份与恢复(在那个文件夹)
  • 当小程序学会‘读心术’:表单处理的神秘法则
  • 【西电电路实验】示波器没波形的解决方法
  • hiveserver与beeline
  • eIQ笔记(UI介绍+Loss曲线+OpenART例程)
  • 『 Linux 』HTTPS