当前位置:   article > 正文

极易录用!并行结构!GAF-PCNN-AT格拉姆角场和双通道PCNN融合注意力机制的分类/故障识别程序!Excel导入,直接运行_格拉姆角场的原理

格拉姆角场的原理

适用平台:Matlab2023版本及以上

本程序参考中文EI期刊《电力自动化设备》12月29号网络首发文献:《基于格拉姆角场与并行CNN的并网逆变器开关管健康诊断》,此外,在此基础上进一步对模型进行复现并改进,该论文推出时间短,复现及改进还没有人应用到其他研究方向,如轴承、变压器、电能质量等方向,这种并行结构区别与传统的搭积木式结构,极易录用!

文献解读:这篇文献中,首先,采集一维故障电压与电流信号的时序序列;其次,利用格拉姆角场对其进行变换,将两种一维时序信号转化为格拉姆求和场和格拉姆差场,最后,将生成的两组图像同时送入CNN进行并行学习训练,实现逆变器故障诊断。

格拉姆角场的原理:格拉姆角场(GAF)是一种将一维序列转化为图像的方法,分为格拉姆求和(GASF)场和格拉姆差场(GADF)。它对笛卡尔坐标系下的时间序列进行极坐标编码,再通过三角运算生成格拉姆矩阵,从而将一维时间序列转化为二维图像。转换后的图像可以保留数据的时间依赖性和潜在联系特征,同时具有较大的稀疏性,剔除了多模态间的冗余信息。

模型改进:我们提出的模型在上述模型基础上作出改进:采用双支路结构,仅需原始故障波形数据,即可根据波形数据,将一维序列转化为二维格拉姆角场图像。①一路为GASF求和场输入经CNN提取和场图像特征,②另一路为GADF格拉姆差场,输入经CNN提取差场图像特征,实现两类高维图像特征融合。③融合多头注意力机制有效把握提取特征的贡献程度,将特征进行重点强化,提高故障识别的准确率,并计算精确度、召回率、精确率、F1分数等评价指标。故障识别流程如下:

创新点:

1、多通道输入:将二维GASF和GADF图像融合,可以综合利用不同格拉姆角场的信息,从而更全面地描述数据的特征。这有助于提取更丰富、更有区别性的特征,从而提高分类和识别的准确性。

2、空间特征学习:CNN(卷积神经网络)在图像处理中表现出色,能够有效地学习图像的空间特征和局部模式。将CNN用于图像数据的处理可以帮助提取图像的纹理、形状和边缘等特征,有助于更准确地进行分类和故障识别。

3、融合优势:通过融合不同图像模态的信息,算法可以弥补两种二维图像各自的局限性。例如,GASF图像可能对于某些故障模式更敏感,而GADF则对于其他模式更敏感。将它们结合起来,可以增强算法的鲁棒性和泛化能力。

4、多头自注意力机制:融合多头注意力机制有效把握提取特征的贡献程度,将特征进行重点强化,提高故障识别的准确率。

6、提高泛化能力:多模态融合可以帮助算法更好地理解数据的本质特征,从而减少过拟合的风险,提高算法在新数据上的泛化能力。

适用领域:适用于各种数据分类场景,如滚动轴承故障、变压器油气故障、电力系统输电线路故障区域、绝缘子、配网、电能质量扰动,等领域的识别、诊断和分类。

直接替换数据就可以,使用Excel表格直接导入,不需要对程序大幅修改。程序内有详细注释,便于理解程序运行。

数据格式:一行一个样本,最后一列为样本所属的故障类型标签

程序结果:(由上述一维序列自动转化为格拉姆图像)

部分代码:

  1. 完整代码:https://mbd.pub/o/bread/ZZqYm59v
  2. %% 训练数据
  3. % GASF训练数据
  4. Train_GASF = imageDatastore('GASF训练输入图像',...
  5. 'IncludeSubfolders',true,'LabelSource','foldernames');
  6. % GADF训练数据
  7. Train_GADF = imageDatastore('GADF训练输入图像',...
  8. 'IncludeSubfolders',true,'LabelSource','foldernames');
  9. % 训练数据标签
  10. trainLables = Train_GADF.Labels;
  11. TrainLables = arrayDatastore(trainLables,"ReadSize",1,"OutputType","cell");
  12. NumTypes = numel(unique(trainLables)); % 故障类别数
  13. %% 测试数据
  14. % GASF测试数据
  15. Test_GASF = imageDatastore('GASF测试输入图像',...
  16. 'IncludeSubfolders',true,'LabelSource','foldernames');
  17. % GADF测试数据
  18. Test_GADF = imageDatastore('GADF测试输入图像',...
  19. 'IncludeSubfolders',true,'LabelSource','foldernames');
  20. % 测试数据标签
  21. testLables = Test_GADF.Labels;
  22. TestLables = arrayDatastore(testLables,"ReadSize",1,"OutputType","cell");
  23. %% 构建 双通道PCNN-Attention输入网络
  24. lgraph = layerGraph();
  25. % 添加层分支
  26. % 将网络分支添加到层图中。每个分支均为一个线性层组。
  27. tempLayers = [
  28. imageInputLayer([227 227 3],"Name","输入支路1","Normalization","zscore")
  29. convolution2dLayer([7 7],64,"Name","卷积1","BiasLearnRateFactor",0,"Padding",[3 3 3 3],"Stride",[2 2])
  30. batchNormalizationLayer("Name","BN1")
  31. reluLayer("Name","Relu1")
  32. maxPooling2dLayer([3 3],"Name","池化1","Padding",[1 1 1 1],"Stride",[2 2])
  33. fullyConnectedLayer(128,"Name","全连接1")
  34. flattenLayer("Name","展平1")];
  35. lgraph = addLayers(lgraph,tempLayers);
  36. tempLayers = [
  37. imageInputLayer([227 227 3],"Name","输入支路2","Normalization","zscore")
  38. convolution2dLayer([7 7],64,"Name","卷积2","BiasLearnRateFactor",0,"Padding",[3 3 3 3],"Stride",[2 2])
  39. batchNormalizationLayer("Name","BN2")
  40. reluLayer("Name","Relu2")
  41. maxPooling2dLayer([3 3],"Name","池化2","Padding",[1 1 1 1],"Stride",[2 2])
  42. fullyConnectedLayer(128,"Name","全连接2")
  43. flattenLayer("Name","展平2")];
  44. lgraph = addLayers(lgraph,tempLayers);
  45. tempLayers = [
  46. additionLayer(2,"Name","融合")
  47. selfAttentionLayer(4,128,"Name","自注意力")
  48. fullyConnectedLayer(8,"Name","全连接3")
  49. softmaxLayer("Name","Softmax")
  50. classificationLayer("Name","输出层")];
  51. lgraph = addLayers(lgraph,tempLayers);
  52. % 清理辅助变量
  53. clear tempLayers;
  54. % 连接层分支
  55. % 连接网络的所有分支以创建网络图。
  56. lgraph = connectLayers(lgraph,"展平1","融合/in1");
  57. lgraph = connectLayers(lgraph,"展平2","融合/in2");
  58. %% 网络选项
  59. options = trainingOptions('adam', ...
  60. 'MiniBatchSize',15, ...
  61. 'InitialLearnRate',0.005, ...
  62. 'MaxEpochs',10, ...
  63. 'Shuffle','every-epoch', ...
  64. 'Verbose',false, ...
  65. 'Plots','training-progress');

部分图片来源于网络,侵权联系删除!

欢迎感兴趣的小伙伴联系小编获得完整版代码哦~,关注小编会继续推送更有质量的学习资料、文章程序代码~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/284642
推荐阅读
相关标签
  

闽ICP备14008679号