极易录用!并行结构!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表格直接导入,不需要对程序大幅修改。程序内有详细注释,便于理解程序运行。

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

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

部分代码:

完整代码:https://mbd.pub/o/bread/ZZqYm59v
%% 训练数据
% GASF训练数据
Train_GASF = imageDatastore('GASF训练输入图像',...
 'IncludeSubfolders',true,'LabelSource','foldernames');

% GADF训练数据
Train_GADF = imageDatastore('GADF训练输入图像',...
 'IncludeSubfolders',true,'LabelSource','foldernames');

% 训练数据标签
trainLables = Train_GADF.Labels;                                                              
TrainLables = arrayDatastore(trainLables,"ReadSize",1,"OutputType","cell");

NumTypes = numel(unique(trainLables)); % 故障类别数

%% 测试数据
% GASF测试数据
Test_GASF = imageDatastore('GASF测试输入图像',...
 'IncludeSubfolders',true,'LabelSource','foldernames');

% GADF测试数据
Test_GADF = imageDatastore('GADF测试输入图像',...
 'IncludeSubfolders',true,'LabelSource','foldernames');

% 测试数据标签
testLables = Test_GADF.Labels;                                                              
TestLables = arrayDatastore(testLables,"ReadSize",1,"OutputType","cell");

%% 构建 双通道PCNN-Attention输入网络
lgraph = layerGraph();

% 添加层分支
% 将网络分支添加到层图中。每个分支均为一个线性层组。
tempLayers = [
    imageInputLayer([227 227 3],"Name","输入支路1","Normalization","zscore")
    convolution2dLayer([7 7],64,"Name","卷积1","BiasLearnRateFactor",0,"Padding",[3 3 3 3],"Stride",[2 2])
    batchNormalizationLayer("Name","BN1")
    reluLayer("Name","Relu1")
    maxPooling2dLayer([3 3],"Name","池化1","Padding",[1 1 1 1],"Stride",[2 2])
    fullyConnectedLayer(128,"Name","全连接1")
    flattenLayer("Name","展平1")];
lgraph = addLayers(lgraph,tempLayers);

tempLayers = [
    imageInputLayer([227 227 3],"Name","输入支路2","Normalization","zscore")
    convolution2dLayer([7 7],64,"Name","卷积2","BiasLearnRateFactor",0,"Padding",[3 3 3 3],"Stride",[2 2])
    batchNormalizationLayer("Name","BN2")
    reluLayer("Name","Relu2")
    maxPooling2dLayer([3 3],"Name","池化2","Padding",[1 1 1 1],"Stride",[2 2])
    fullyConnectedLayer(128,"Name","全连接2")
    flattenLayer("Name","展平2")];
lgraph = addLayers(lgraph,tempLayers);

tempLayers = [
    additionLayer(2,"Name","融合")
    selfAttentionLayer(4,128,"Name","自注意力")
    fullyConnectedLayer(8,"Name","全连接3")
    softmaxLayer("Name","Softmax")
    classificationLayer("Name","输出层")];
lgraph = addLayers(lgraph,tempLayers);

% 清理辅助变量
clear tempLayers;

% 连接层分支
% 连接网络的所有分支以创建网络图。
lgraph = connectLayers(lgraph,"展平1","融合/in1");
lgraph = connectLayers(lgraph,"展平2","融合/in2");
%% 网络选项

options = trainingOptions('adam', ...
    'MiniBatchSize',15, ...
    'InitialLearnRate',0.005, ...
    'MaxEpochs',10, ...
    'Shuffle','every-epoch', ...
    'Verbose',false, ...
    'Plots','training-progress');

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/364570.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HTML -- 常用标签

标签 表示HTML网页内容的一个最基本的组织单元,类似于语文中的标点符号, 标签的作用:告诉浏览器当前标签中的内容是什么,以什么格式在页面中进行呈现 单标签 单标签(只有一个标签名的标签)的标签格式&…

Open CASCADE学习|球面上曲线长度计算

球和球面是数学和物理学中非常重要的概念,它们在许多领域都有广泛的应用。 球面是指所有与固定点等距离的点的集合,这个固定点被称为球心,而这个等距离的长度就是球的半径。球面是一个二维曲面,它是三维空间中点与距离之间关系的…

2024年美赛F题Problem F Reducing Illegal Wildlife Trade减少非法野生动物贸易的完整思路代码分享

非法的野生动物贸易会对我们的环境产生负面影响,并威胁到全球的生物多样性。据估计,它每年涉及高达265亿美元,被认为是全球第四大非法交易。[1]你将开发一个由数据驱动的5年项目,旨在显著减少非法野生动物贸易。你的目标是说服一个…

IP协议(2) 和 数据链路层协议基础

IP协议续 1.路由选择 在复杂的网络结构中,我们需要找到一个通往终点的路线,这就是路由选择 举个例子:我们在没有手机导航之前,想去一个地方得是到一个地方问一下路的方式最终找到目的地 路由的过程,其实就是样子问路的过程 1.当IP数据包到达路由器的时候,会查看目的IP 2.路由器…

oracle 19c上安装样例数据库

样例schema的分类 HR: Human Resources OE: Order Entry PM: Product Media IX: Information Exchange SH: Sales History BI: Business Intelligence 安装样例数据库 1:HR的安装,通过dbca时候 2:HR的安装,安装完数据库后&#…

Jenkins+Allure+Pytest的持续集成

一、配置 allure 环境变量 1、下载 allure是一个命令行工具,可以去 github 下载最新版:https://github.com/allure-framework/allure2/releases 2、解压到本地 3、配置环境变量 复制路径如:F:\allure-2.13.7\bin 环境变量、Path、添加 F:\a…

docker中三种常用的持久化数据的方式

文章目录 介绍1.docker run -v2.volumes3.bind mounts 介绍 “前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。” 在Docker中,有以下三种常用的持久化数据的方式,可…

读千脑智能笔记01_新皮质

作者简介 1988年至1992年,创造了平板电脑GridPad,它属于第一批平板电脑 1992年,成立了Palm公司,之后在长达10年的时间内,设计了一些最早的掌上电脑和智能手机,如PalmPilot和Treo 在2002年创立了红木神经科学…

Camunda ScriptTask SendTask ReceiveTask操作

文章目录 开始脚本任务(ScriptTask)发送任务(SendTask)接收任务(ReceiveTask)流程图xml 开始 前面我们已经介绍了Camunda最基本的操作和常见的监听器,如果不熟悉Camunda,可以先看一下,方便搭建环境,亲手测试。 Camunda组件与服务…

编程实例源代码,知识库管理软件源码文件下载及代码说明

编程实例源代码,知识库管理软件源码文件下载及代码说明 一、前言 知识库管理软件是一款图片集查询软件,软件可以使用中文编程工具免费自由版开发完成。 编程工具下载及源码文件下载路径 编程入门视频教程链接 https://edu.csdn.net/course/detail/3…

C++之平衡二叉搜索树查找

个人主页:[PingdiGuo_guo] 收录专栏:[C干货专栏] 大家好,我是PingdiGuo,今天我们来学习平衡二叉搜索树查找。 目录 1.什么是二叉树 2.什么是二叉搜索树 3.什么是平衡二叉搜索树查找 4.如何使用平衡二叉搜索树查找 5.平衡二叉…

EBC金融英国CEO:高波动性周期下,如何寻找市场的稳定性?

利率主导的市场,将在2024年延续。目前,固收市场对于降息的定价,正通过利率传导至不同资产中。尽管市场迫切利用通胀去佐证降息,但各国央行仍囿于通胀目标的政策桎梏。政策和市场预期的博弈将继续牵动市场脉搏,引发价格…

英码科技携手昇腾共建算力底座:推出EA500I超强AI处理能力边缘计算盒子!

在数字经济浪潮中,算力已成为不可或缺的驱动力,为各行各业的数字化转型提供了强大的推动力。面对多元化和供需不平衡的挑战,需要实现从理论架构到软硬件实现的质的飞跃,以满足持续增长的算力需求,华为昇腾在这一方面展…

2024PMP考试新考纲-【业务环境领域】典型真题和很详细解析(2)

华研荟继续分享【业务环境Business Environment领域】在新考纲下的真题,帮助大家体会和理解新考纲下PMP的考试特点和如何应用所学的知识和常识(经验)来解题,并且举一反三,一次性3A通过2024年PMP考试。 2024年PMP考试新…

【每日一题】7.LeetCode——合并两个有序链表

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》|《数据结构与算法》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏小杨水平有限,欢…

网络协议 UDP协议

网络协议 UDP协议 在之前的文章中有对UDP协议套接字的使用进行讲解,本文主要对UDP协议进行一些理论补充。 文章目录 网络协议 UDP协议1. 概念2. UDP协议格式2.1 数据报长度2.2 校验和/检验和2.2.1 CRC校验2.2.2 MD5算法 1. 概念 UDP,即User Datagram P…

使用阿里云的IDaaS实现知行之桥EDI系统的单点登录

,在开始测试之前,需要确定用哪个信息作为“登陆用户的ID字段”。 这个字段用来在完成SSO登陆之后,用哪个信息将阿里云IDaaS的用户和知行之桥EDI系统的用户做对应。这里我们使用了 phonenumber 这个自定义属性。需要在阿里云做如下配置&#x…

[力扣 Hot100]Day20 旋转图像

题目描述 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 出处 思路 旋转时每四个位置为一组进行swap操作,找好对…

暴搜,回溯,剪枝

力扣77.组合 class Solution {List<List<Integer>>retnew ArrayList<>();List<Integer>pathnew ArrayList<>();int n; int k;public List<List<Integer>> combine(int _n, int _k) {n_n;k_k;dfs(1);return ret;}public void dfs(int…

MSVC++远程调试

1. 介绍 MSVC的调试功能非常强大&#xff0c;可以下断点&#xff0c;单步调试&#xff0c;查看堆栈变量信息等。实际用于生产的电脑环境复杂&#xff0c;更容易发生Bug。生产电脑&#xff0c;由于各种原因有些可能无法安装MSVC用来现场调试。基于打印日志&#xff0c;查看日志…