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

news2025/1/17 0:12:40

适用平台: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.coloradmin.cn/o/1442275.html

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

相关文章

幻兽帕鲁服务器创建私服教程(新版教程更简单)

幻兽帕鲁官方服务器不稳定?自己搭建幻兽帕鲁服务器,低延迟、稳定不卡,目前阿里云和腾讯云均推出幻兽帕鲁专用服务器,腾讯云直接提供幻兽帕鲁镜像系统,阿里云通过计算巢服务,均可以一键部署,鼠标…

二维差分---三维差分算法笔记

文章目录 一.二维差分构造差分二维数组二维差分算法状态dp求b[i][j]数组的二维前缀和图解 二.三维前缀和与差分三维前缀和图解:三维差分核心公式图解:模板题 一.二维差分 给定一个原二维数组a[i][j],若要给a[i][j]中以(x1,y1)和(x2,y2)为对角线的子矩阵中每个数都加上一个常数…

金融信贷风控评分卡模型

评分卡模型概念 评分模型是根据借款人的历史数据,选取不同维度的数据类型,通过计算而得出的对借款人信用情况打分的模型。不同等级的信用分数代表了借款人信用情况的好坏,以此来分析借款人按时还款的可能性。 评分卡模型分类 A卡&#xff…

【linux系统体验】-archlinux折腾日记

archlinux 一、系统安装二、系统配置及美化2.1 中文输入法2.2 安装virtualbox增强工具2.3 终端美化 三、问题总结3.1 终端中文乱码 一、系统安装 安装步骤人们已经总结了很多很全: Arch Linux图文安装教程 大体步骤: 磁盘分区安装 Linux内核配置系统(…

过渡效果的艺术:CSS transition 让网页交互更平滑(下)

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

JavaWeb:调出Maven面板

问题描述 情况说明:IDEA中找不到Maven面板,Maven面板如下图所示: 解决方案 选择 View > Appearance > Tool Window Bars: 然后就会出现Maven面板了。

5G技术对物联网的影响

随着数字化转型的加速,5G技术作为通信领域的一次重大革新,正在对物联网(IoT)产生深远的影响。对于刚入行的朋友们来说,理解5G技术及其对物联网应用的意义,是把握行业发展趋势的关键。 让我们简单了解什么是…

力扣hot100 -- 双指针

目录 &#x1f382;移动零 &#x1f319;盛最多水的容器 &#x1f33c;三数之和 &#x1f33c;接雨水 前缀和 辅助数组 双指针 单调栈 &#x1f382;移动零 283. 移动零 - 力扣&#xff08;LeetCode&#xff09; 关于swap #include <iostream> #include <vec…

FastJson、Jackson使用AOP切面进行日志打印异常

FastJson、Jackson使用AOP切面进行日志打印异常 一、概述 1、问题详情 使用FastJson、Jackson进行日志打印时分别包如下错误&#xff1a; 源码&#xff1a; //fastjon log.info("\nRequest Info :{} \n"&#xff0c; JSON.toJSONString(requestInfo)); //jackson …

ubuntu22.04安装部署03: 设置root密码

一、前言 ubuntu22.04 安装完成以后&#xff0c;默认root用户是没有设置密码的&#xff0c;需要手动设置。具体的设置过程如下文内容所示&#xff1a; 相关文件&#xff1a; 《ubuntu22.04装部署01&#xff1a;禁用内核更新》 《ubuntu22.04装部署02&#xff1a;禁用显卡更…

剑指offer——二维数组中的查找(杨氏矩阵)

目录 1. 题目描述2. 常见错误思路3. 分析3.1 特例分析3.2 规律总结 4. 完整代码 1. 题目描述 在一个二维数组中&#xff0c;每一行都按照从左到右递增的顺序排序&#xff0c;每一列都按照从上到下递增的顺序排序。请完成一个函数&#xff0c;输入这样的一个二维数组和一个整数&…

黄金交易策略(Nerve Nnife):大K线对技术指标的影响

我们使用heiken ashi smoothed来做敏感指标&#xff08;大趋势借助其转向趋势预判&#xff0c;但不是马上转变&#xff09;&#xff0c;has默认使用6根k线的移动平均值来做计算的。若在6根k线规范内有一个突变的行情&#xff08;k线很长&#xff09;&#xff0c;那么整个行情的…

基于鲲鹏服务器的LNMP配置

基于鲲鹏服务器的LNMP配置 系统 Centos8 # cat /etc/redhat-release CentOS Linux release 8.0.1905 (Core) 卸载已经存在的旧版本的安装包 # rpm -qa | grep php #查看已经安装的PHP旧版本# rpm -qa | grep php | xargs rpm -e #卸载已经安装的旧版&#xff0c;如果提示有…

CSP-202112-1-序列查询

CSP-202112-1-序列查询 提示&#xff1a;若存在区间[i,j) 满足&#xff1a;f(i)f(i1)…f(j-1)&#xff0c;使用乘法运算 f(i)x(j-i)代替将 f()到 f(j- 1)逐个相加,或可大幅提高算法效率。 一定要看提示&#xff01;单纯的模拟时间会超限&#xff01;算法也是根据提示设计的。 …

【Spring】Bean 的生命周期

一、Bean 的生命周期 Spring 其实就是一个管理 Bean 对象的工厂&#xff0c;它负责对象的创建&#xff0c;对象的销毁等 所谓的生命周期就是&#xff1a;对象从创建开始到最终销毁的整个过程 什么时候创建 Bean 对象&#xff1f;创建 Bean 对象的前后会调用什么方法&#xf…

项目02《游戏-10-开发》Unity3D

【完成本集功能后共享1-10集整套代码】 基于 项目02《游戏-09-开发》Unity3D &#xff0c; 任务&#xff1a;传送至其他场景&#xff0c; 首先在场景中加入传送门&#xff0c; 设置人物标签&#xff0c; using UnityEngine; using UnityEngine.SceneManagement; u…

Tomcat 原理分析

1、Tomcat 的组成 如下图&#xff1a; Tomcat组成 Server&#xff1a; Tomcat 封装的、对外提供完整的、基于组件的 web 服务&#xff0c;包含 Connectors、Container 两个核心组件&#xff0c;以及多个功能组件&#xff0c;各个 Service 之间是独立的&#xff0c;但是共享 同…

C#,十进制展开数(Decimal Expansion Number)的算法与源代码

1 十进制展开数 十进制展开数&#xff08;Decimal Expansion Number&#xff09;的计算公式&#xff1a; DEN n^3 - n - 1 The decimal expansion of a number is its representation in base -10 (i.e., in the decimal system). In this system, each "decimal place…

2024牛客寒假算法基础集训营2部分题解

Tokitsukaze and Bracelet 链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述 《绯染天空》是一款由 key 社与飞机社共同开发的角色扮演游戏&#xff0c;剧情内容由著名的剧本作家麻枝准编写。它是一款氪金手游&#xff0c;但也有 st…

C++自定义函数详解

个人主页&#xff1a;PingdiGuo_guo 收录专栏&#xff1a;C干货专栏 铁汁们新年好呀&#xff0c;今天我们来了解自定义函数。 文章目录 1.数学中的函数 2.什么是自定义函数 3.自定义函数如何使用&#xff1f; 4.值传递和引用传递&#xff08;形参和实参区分&#xff09; …