发文新思路!双流卷积!CWT-DSCNN-MSA基于时序特征、cwt小波时频图的双流卷积融合注意力机制的故障识别程序!直接运行!

适用平台:Matlab2023版本及以上

本程序参考中文EI期刊《电力自动化设备》2023年12月29号网络首发文献:《基于格拉姆角场与并行CNN的并网逆变器开关管健康诊断》,此外,在此基础上进一步对模型进行多重改进,每个人都可以构造属于自己的双流卷积!

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

模型改进:我们提出的模型在上述模型基础上作出多重改进:采用双支路结构,构造双流卷积模型(Dual-Stream Convolutional Neural Network,DSCNN),仅需原始故障波形数据,即可根据波形数据,将一维序列转化为二维小波cwt时频图像。①一路为图像输入经2D-CNN提取小波时频图像特征,②另一路为故障波形直接输入1D-CNN提取时序特征,高维图像特征和一维时序特征融合,构建出1D-CNN和2D-CNN(DSCNN)模型。③融合多头注意力机制有效把握提取特征的贡献程度,将特征进行重点强化,提高故障识别的准确率,并计算精确度、召回率、精确率、F1分数等评价指标。故障识别流程如下:

七重创新点:

1、双流卷积:将一维时序信号和二维图像融合,可以综合利用不同模态的信息,从而更全面地描述数据的特征。这有助于提取更丰富、更有区别性的特征,从而提高故障识别的准确性,仅需原始故障波形数据,即可将一维序列转化为二维cwt时频图像。

2、cwt时频特征:cwt时频图提供了时频局部化的特征,可以确定波形在时间和频率上的局部特征。这对于识别故障信号中的瞬态特征或频率成分的突发变化非常有效,这些特征在单一的时域或频域分析中难以分析。

3、波形特征提取:1D-CNN更适合于捕获局部特征和序列中的局部模式。在故障波形中,许多重要的特征可能集中在特定的时间段内,1D-CNN可以更好地捕获这些时间相关的局部特征。

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

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

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

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

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

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

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

程序结果:(由上述一维序列自动转化为cwt小波时频图像)

双流模型结构:

训练曲线:

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

部分代码:

完整代码:https://mbd.pub/o/bread/ZZqcmphx%% 构建 Dual-Stream Convolutional Neural Network,DCNN-MSA模型
% 创建层图
lgraph = layerGraph();% 添加层分支
tempLayers = [imageInputLayer([227 227 3],"Name","二维时频图输入","Normalization","zscore")convolution2dLayer([3 3],64,"Name","二维卷积","BiasLearnRateFactor",0,"Padding",[3 3 3 3],"Stride",[2 2])batchNormalizationLayer("Name","批量归一化1")reluLayer("Name","Relu激活1")maxPooling2dLayer([3 3],"Name","二维池化","Padding",[1 1 1 1],"Stride",[2 2])fullyConnectedLayer(128,"Name","全连接1")flattenLayer("Name","展平1")];
lgraph = addLayers(lgraph,tempLayers);tempLayers = [imageInputLayer([1 120 1],"Name","一维序列输入","Normalization","zscore")convolution2dLayer([1 3],32,"Name","一维卷积","Padding","same")batchNormalizationLayer("Name","批量归一化2")reluLayer("Name","Relu激活2")averagePooling2dLayer([1 3],"Name","1×3池化","Padding","same")fullyConnectedLayer(128,"Name","全连接2")flattenLayer("Name","展平2")];
lgraph = addLayers(lgraph,tempLayers);tempLayers = [additionLayer(2,"Name","特征融合")selfAttentionLayer(1,50,"Name","多头自注意力","NumValueChannels",50,"OutputSize",100)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");figure
% 绘制层
plot(lgraph);
string={'双流卷积(DSCNN-MSA)结构'};
title(string)%% 网络选项
options = trainingOptions('adam', ...  % 使用 Adam 优化算法进行训练'MiniBatchSize',15, ...            % 每个小批量的样本数量'InitialLearnRate',0.001, ...      % 初始学习率'MaxEpochs',10, ...                % 最大迭代轮数'Shuffle','every-epoch', ...       % 每轮迭代后重新洗牌训练数据'Verbose',false, ...               % 不在命令行中显示详细信息'Plots','training-progress');      % 显示训练进度图analyzeNetwork(lgraph);                % 分析网络结构

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Chrome 沙箱逃逸 -- Plaid CTF 2020 mojo

文章目录 前置知识参考文章环境搭建题目环境调试环境 题目分析附件分析漏洞分析OOBUAF 漏洞利用总结 前置知识 Mojo & Services 简介 chromium mojo 快速入门 Mojo docs Intro to Mojo & Services 译文:利用Mojo IPC的UAF漏洞实现Chrome浏览器沙箱逃逸原文…

【制作100个unity游戏之24】unity制作一个3D动物AI生态系统游戏3(附项目源码)

最终效果 文章目录 最终效果系列目录前言随着地面法线旋转在地形上随机生成动物不同部位颜色不同最终效果源码完结系列目录 前言 欢迎来到【制作100个Unity游戏】系列!本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第24篇中,我们将探索如何用unity制作一…

【Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)】

Linux环境基础开发工具的使用yum、vim、gcc、g、gdb、make/Makefile Linux软件包管理器- yumLinux下安装软件的方式认识yum查找软件包安装软件如何实现本地机器和云服务器之间的文件互传卸载软件 Linux编辑器 - vimvim的基本概念vim下各模式的切换vim命令模式各命令汇总vim底行…

预测模型:MATLAB线性回归

1. 线性回归模型的基本原理 线性回归是统计学中用来预测连续变量之间关系的一种方法。它假设变量之间存在线性关系,可以通过一个或多个自变量(预测变量)来预测因变量(响应变量)的值。基本的线性回归模型可以表示为&…

Android SDK 上传 Maven 喂奶级教程

最近领导给安排了个任务,让我把我们现有的一个 SDK 上传到 Maven 上去,方便客户直接用 gradle 依赖,不再需要拷贝 jar 和 so 了,此前我也看过一些相关的文章我想问题也不大,觉得工作量也就一两天的事情,主要…

2024.2.4 模拟实现 RabbitMQ —— 实现核心类

目录 引言 创建 Spring Boot 项目 编写 Exchange 实体类 编写 Queue 实体类 编写 Binding 实体类 编写 Message 实体类 引言 上图为模块设计图 此处实现核心类为了简便,我们引用 Lombok(可点击下方链接了解 Lombok 的使用) IDEA 配置 L…

读千脑智能笔记08_人工智能的未来(下)

1. 机器智能存在的风险 1.1. “人工智能”这个名字应用到几乎所有涉及机器学习的领域 1.2. 技术专家对人工智能的态度也从“人工智能可能永远不会实现”快速转变为“人工智能可能在不久的将来毁灭所有人类” 1.3. 每一项新技术都可能会被滥用…

面试经典150题——盛最多水的容器(图解从本质看问题)

​"Hardships often prepare ordinary people for an extraordinary destiny." - C.S. Lewis 1. 题目描述 2. 题目分析与解析 2.1 思路一——暴力求解 遇到问题最怕的就是没有思路,就好像人迷茫的时候最怕的就是一直迷茫,不知道怎么干那就…

Lua 教程

Lua 教程 (今天又又又开新坑啦) Lua 教程 手册简介 Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放。 手册说明 Lua是什么? Lua 是一个小巧的脚本语言。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de …

Java stream 流的基本使用

Java stream 的基本使用 package com.zhong.streamdemo.usestreamdemo;import jdk.jfr.DataAmount; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import java.util.ArrayList; import java.util.Comparator; import java.util.Li…

源码梳理(3)MybatisPlus启动流程

文章目录 1,MybatisPlus的使用示例2,BaseMapper方法的执行2,1 MybatisMapperProxy代理对象2.2 InvocationHandler接口(JDK动态代理)2.3 MapperMethodInvoker接口2.4 MybatisMapperMethod 3,SqlSession的执行流程3.1 Sq…

js基础(1)

操作数组 数组.push() 将一个或多个元素添加到数组末尾,返回数组新长度 数组.unshift() 将一个或多个元素添加到数组末尾,返回数组新长度 数组.pop() 删除最后一个元素,返回该元素的值 更灵活的删除方法,删除指定元素 数组.spli…

Github 2024-02-09 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-02-09统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目4Go项目2Scala项目1PLpgSQL项目1Ruby项目1HTML项目1Solidity项目1Lua项目1 开源个人理财应用 Mayb…

如何连接ChatGPT?无需科学上网,使用官方GPT教程

随着AI的发展,ChatGPT也越来越强大了。 它可以帮你做你能想到的几乎任何事情,妥妥的生产力工具。 然而,对于许多国内的用户来说,并不能直接使用ChatGPT,不过没关系,我最近发现了一个可以直接免科学上网连…

【图形图像的C++ 实现 01/20】 2D 和 3D 贝塞尔曲线

目录 一、说明二、贝塞尔曲线特征三、模拟四、全部代码如下​五、资源和下载 一、说明 以下文章介绍了用 C 计算和绘制的贝塞尔曲线(2D 和 3D)。    贝塞尔曲线具有出色的数学能力来计算路径(从起点到目的地点的曲线)。曲线的形…

Java汽车销售管理

技术架构: springboot mybatis Mysql5.7 vue2 npm node 有需要该项目的小伙伴可以私信我你的Q。 功能描述: 针对汽车销售提供客户信息、车辆信息、订单信息、销售人员管理、财务报表等功能,提供经理和销售两种角色进行管理 效果图&…

医院挂号预约|医院挂号预约小程序|基于微信小程序的医院挂号预约系统设计与实现(源码+数据库+文档)

医院挂号预约小程序目录 目录 基于微信小程序的医院挂号预约系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、小程序用户端 2、系统服务端 (1) 用户管理 (2)医院管理 (3)医生管理 &…

Cisco firepower2100系列使用FDM管理FTD

Cisco firepower2100系列使用FDM管理FTD 啥是FDM Firepower Device Manager 当思科Firepower系列运行的FTD镜像时,可以通过2种方式进行管理 第1种方式: FMC (Firepower management Center) 可以进行统一管理,一台FMC可以管理多个FTD&…

[office] 怎么在Excel2003菜单栏自定义一个选项卡 #其他#微信#知识分享

怎么在Excel2003菜单栏自定义一个选项卡 怎么在Excel2003菜单栏自定义一个选项卡 ①启动Excel2003,单击菜单栏--工具--自定义。 ②在自定义界面,我们单击命令标签,在类别中选择新菜单,鼠标左键按住新菜单,拖放到菜单栏…

设计模式巡礼:多板适配案例解析与深度重构

theme: cyanosis 月黑风高,好兄弟发给我一个重构需求,咨询我的意见。 一、 场景分析 开发的产品是需要运行到不同的定制Android板子,不同板子有对应的不同SDK提供的API,目前的业务端,业务流程基本是确定的&#xff0…