news 2026/4/16 15:54:41

融合CBMA注意力机制的TCN-SVM故障诊断模型,江南大学、西储大学轴承数据为例---MATLAB代码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
融合CBMA注意力机制的TCN-SVM故障诊断模型,江南大学、西储大学轴承数据为例---MATLAB代码

概述

本期在TCN网络种融合CBAM注意力机制,以增强TCN网络的特征提取能力,使模型在信号形态变化较大处,能有选择性地关注具有关键信息的通道,能通过动态调整每个通道内和空间位置上的加权系数,突出关注目标的细节信息, 减少特征提取中的冗余信息,,加强模型的特征表达能力。

同时为了进一步提升网络的分类能力,采用经典的SVM分类器替换原始的Softmax分类器。分别在西储大学、江南大学的轴承数据集进行测试,实验表明,本期提出的CBAM-TCN-SVM模型具有较高的分类能力。



CBAM机制通过引入通道注意力和空间注意力机制,CBAM能够有效地聚焦在最重要的特征上,帮助网络在处理复杂任务时取得更高的精度。因此很多学者论文都有提及。方向为机器学习、故障分类的小伙伴不妨借鉴一下这个模型,可以帮助你快速入门故障诊断。

TCN网络介绍

时间卷积神经网络(TCN)是一种可以对时间 序列数据进行处理的神经网络架构,与传统的卷积 神经网络相比,它可以更有效地提取时序数据的特 征。 在 TCN 的网络结构中,采用因果卷积提取 时间序列数据中的特征,能够使网络层间具有因果 关系,实现时序建模。 通过扩张因果卷积扩大感受 野,一个卷积能够学习到更多的特征,可以适应不 同尺度的时间依赖关系。 引入残差连接能够增加 TCN 层数,有效解决梯度消失和爆炸问题,保持稳 定的网络性能。

TCN 网络是由多个残差块叠加构成,TCN 接受域受扩张因子、滤波器大小和网络深度的影响,而且在网络层数增多的过程中,会出现 梯度消失或梯度爆炸的情况。 所以必须要加入残差模块,简化深层网络的训练,使深层网络运行稳 定,保持较好的性能。 残差模块如图结构如下:

CBAM注意力机制介绍

混合注意力机制(CBAM)包括通道注意力机制和空间注意力机制,CAM(channel attention module) 模块执行通道注意力,SAM(spatial attention mo modu)模块执行空间注意力,CBAM通过串联方式将通道和空间注意力机制结合在一起,全方位关 注输入特征的通道和空间两个方面,它使用空间注意力机制来定位目标区域,获取权重进行调整, 通过通道注意力机制优化卷积通道之间的资源分配,提升目标区域的特征表现能力,提升TCN对输 入数据的关注程度,从而提高模型性能。CBAM网络框架图如下:

CBAM-TCN网络

在基本TCN模块中,因为有效的故障特征会被 全局平均池化层忽略,造成局部故障特征信息丢 失。 当全连接层接收到所获得信息时,不能将与故 障有关的信息进行有效的合理组合。 因此,为了提 高故障诊断准确率,TCN需要增强对局部特征信息 的提取能力,通过充分表示特征,更准确地捕获数 据中的信息,提高模型的性能和泛化能力。

在基本TCN模块中第二个扩张因果卷积层后嵌入CBAM注意力机制模块,通过CBAM模块自适应地学习通道注意力和空间注意力的权重,提高诊断模型的特征表达能力,进一步获取局部有效信息,抓取与故障特征相关的信息。其可以看作成是 在不同维度上捕获特征之间的相关性,从而提高模型性能。在基本TCN模块中引入软阈值函数,保留 有效的特征。阈值函数利用注意力机制训练的自 网络进行自适应学习,阈值不是确定值。在TCN的 结构中创建一个子网络,该子网络经过注意力机制 进行训练。在训练过程中,通过优化来动态调整阈 值函数的值,以减少模型输出与原始输入之间的差 异。基本CBAM-TCN模块如图所示:

CBAM-TCN整体结构:

结果展示

本期采用MATLAB搭建的CBAM-TCN网络结构如下:

分别在西储大学轴承数据和江南大学轴承数据进行实验。

一、西储大学轴承数据实验结果

对工况0的10种故障状态进行数据划分,每种状态收集200个样本,每个样本大小为1×1024,训练集:验证集:测试集=7:2:1。

FFT-CBAM-TCN-SVM模型诊断结果:

在西储大学数据上的诊断结果可达到100%的诊断效果。

江南大学轴承数据实验结果

江南大学数据共12种故障状态,每种状态收集200个样本,每个样本大小为1×1024,训练集:验证集:测试集=7:2:1。江南大学数据的难度较大,准确率能达到95%以上的模型真不常见!

代码目录

按照程序步骤一步步执行即可。注释详细,以上所有图片均可运行出来。

提示:此代码用到了 trainnet函数,此函数只有在2023b以上MATLAB才能用,下载链接附在代码包里边了。

本文代码获取

链接:https://mbd.pub/o/bread/aJeVmpZq

已将本文代码添加至故障诊断全家桶中,

已购买全家桶的小伙伴,可以直接跳转以下链接下载哦!

故障诊断全家桶获取链接:

https://mbd.pub/o/bread/ZJ2Ym5ts

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 13:04:59

别再踩RAG的坑了!小白程序员必备的优化方案,看完直接起飞

“ RAG的本质就是快速和准确的召回文档,但由于各种原因会导致其召回质量不尽人意,因此我们需要从多个方面来优化其召回结果。” 虽然说现在大模型的主流应用方向是智能体——Agent;但也不能否则RAG在其中扮演的重大作用,因此RAG也…

作者头像 李华
网站建设 2026/4/16 10:53:25

使用Miniconda-Python3.9镜像按需购买GPU算力和Token资源

使用 Miniconda-Python3.9 镜像实现高效、弹性的 AI 开发 在当前 AI 模型快速迭代的背景下,研究者和工程师面临一个共同挑战:如何在不牺牲开发效率的前提下,兼顾环境稳定性、资源成本与团队协作?传统的本地开发模式常因“我这里能…

作者头像 李华
网站建设 2026/4/16 16:12:12

2026最新企业微信服务商哪家好?微盛·企微管家深度评测

选对企业微信服务商为何这么难? 企业微信已连接14亿微信用户,成为企业私域运营的核心入口。但市场上服务商数量超千家,功能同质化、AI工具落地难、合规风险高、服务陪跑缺失等问题普遍存在——数据显示,跨渠道客户信息割裂导致转化…

作者头像 李华
网站建设 2026/4/16 15:53:17

Python自动化软件测试怎么学?路线和方法都在这里了

Python自动化测试是指使用Python编程语言和相关工具,对软件系统进行自动化测试的过程。学习Python自动化测试需要掌握以下技术: Python编程语言:学习Python自动化测试需要先掌握Python编程语言的基础知识,包括语法、数据类型、函…

作者头像 李华