OCSSA-VMD-Transformer轴承故障诊断,特征提取+编码器!
未发表,高水平论文首选!OCSSA-VMD-Transformer轴承故障诊断,特征提取+编码器!
目录
- 未发表,高水平论文首选!OCSSA-VMD-Transformer轴承故障诊断,特征提取+编码器!
- 效果一览
- 基本描述
- 程序设计
- 参考资料
效果一览
基本描述
总体思路
先用OCSSA-VMD提取西储大学轴承诊断数据特征,进而基于Transformer编码器进行故障诊断。其中OCSSA-VMD为减融合鱼鹰和柯西变异的麻雀优化算法优化变分模态分解参数,选取四种适应度函数进行优化,以此确定VMD的最佳k和α参数。四种适应度函数分别是:最小包络熵,最小样本熵,最小信息熵,最小排列熵。代码中可以一键切换
基本介绍
1.Matlab实现OCSSA-VMD-Transformer特征提取+编码器轴承故障诊断,运行环境Matlab2023b及以上。
2.数据为西储大学轴承诊断数据,可在附件下载数据和程序内容。
3.图很多,包括分类效果图,混淆矩阵图。
4.按照步骤依次运行main系列主程序即可一键出图,注意程序和数据放在一个文件夹,运行环境为Matlab2023b及以上。
5.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。可在下载区获取数据和程序内容。
6.输入多个特征,分10类,分类效果如下。
注:程序和数据放在一个文件夹
数据集+程序内容
未发表情况证明
程序设计
- 完整程序和数据获取方式私信回复OCSSA-VMD-Transformer轴承故障诊断,特征提取+编码器!。
%% 构建Transformer分类模型
numClasses = 10; % 分类类别数(10类)
numChannels = size(input,2); % 输入特征维度
maxPosition = 64; % 位置编码的最大位置数
numHeads = 8; % 多头注意力机制的头数
numKeyChannels = numHeads*8; % 键/查询向量的通道数% 定义Transformer网络层
layers = [ sequenceInputLayer(numChannels,Name="input") % 序列输入层positionEmbeddingLayer(numChannels,maxPosition,Name="pos-emb"); % 位置编码层additionLayer(2, Name="add") % 加法层(融合特征和位置编码)selfAttentionLayer(numHeads,numKeyChannels,'AttentionMask','causal') % 带掩码的自注意力层selfAttentionLayer(numHeads,numKeyChannels) % 标准自注意力层fullyConnectedLayer(30) % 全连接层(特征降维)indexing1dLayer("last") % 仅取序列最后一个位置的输出(分类任务)fullyConnectedLayer(numClasses) % 分类全连接层softmaxLayer('Name','softmax') % Softmax激活层classificationLayer('name','output')]; % 分类输出层% 构建层连接关系
lgraph = layerGraph(layers);
lgraph = connectLayers(lgraph,"input","add/in2"); % 连接输入到加法层
参考资料
[1] https://blog.csdn.net/kjm13182345320/article/details/129036772?spm=1001.2014.3001.5502
[2] https://blog.csdn.net/kjm13182345320/article/details/128690229