基于卷积神经网络(CNN)的深度迁移学习在声发射(AE)监测螺栓连接状况的应用

     螺栓结构在工业中用于组装部件,它们在多种机械系统中扮演着关键角色。确保这些连接结构的健康状态对于航空航天、汽车和建筑等各个行业至关重要,因为螺栓连接的故障可能导致重大的安全风险、经济损失、性能下降和监管合规问题。

     在早期阶段检测到螺栓松动或退化可以及时进行维护或修理,从而最小化昂贵的停机风险。因此,这有助于优化维护计划并有助于延长设备和结构的使用寿命。在役使用期间,有效的结构完整性监测系统的实施是强制性的,因为螺栓可能会自行松动,导致潜在的灾难性故障。

     螺栓自行松动的一个原因是由于振动周期中接触表面之间的粘滑引起的微观损伤的连续累积。这种损伤形式逃避了旨在评估螺栓结构整体和全局行为的主动技术的检测。然而,这种微观损伤本身会耗散能量,这可以通过一种名为声发射(AE)的被动技术来记录。AE定义为检测由材料完整性的突然和永久性变化产生的瞬态弹性波引起的材料表面亚纳米级位移。这些波的短暂性质要求使用压电传感器连续收集数据,典型的频率范围在几十kHz到1MHz之间,将位移转换为电压信号。

    不管应用如何,使用AE的一个重大挑战是提取具有代表性的和鲁棒的特征,这对于状态监测至关重要。因此,本文旨在解决以下问题:哪些特征对于紧固程度分类最相关?这些特征如何通过几次测量活动泛化?

1 ORION-AE 数据集

专门用于螺栓连接结构健康监测(SHM)的声发射(AE)数据集。它由法国 Besançon 的 Institut FEMTO-ST 的研究人员收集和创建,旨在评估和比较不同螺栓紧固度检测方法的性能。数据集具有以下特点:

  • 多传感器数据: 数据集包含来自三个不同频率范围的声发射传感器(mu80, F50A, mu200HF)的测量数据,提供了互补信息。
  • 多实验战役: 数据集包含五个独立的实验测量活动(#B, #C, #D, #E, #F),每个测量活动在螺栓连接结构上施加不同的紧固扭矩水平,并记录相应的声发射信号和激光测振仪信号。
  • 多紧固扭矩水平: 每个实验活动中,螺栓连接结构上的紧固扭矩水平从 60 cNm 逐渐降低到 5 cNm,共 7 个水平,每个水平对应一个类别。
  • 高噪声水平: 由于螺栓连接结构在振动过程中产生的声发射信号非常微弱,因此数据集中存在大量的噪声,信噪比约为 2.3 dB。
  • 声发射信号处理: 数据集中的声发射信号经过连续小波变换(CWT)处理,转换为图像格式,以便于深度学习模型进行特征提取和分类。

2 方法论

方法论由三个主要模块组成,如下图所示,即信号处理、数据准备和紧固级别识别。

2.1 信号处理

信号处理的目标是将原始的声发射信号转换为可用于深度学习的图像数据。详细步骤如下:

2.1.1 数据分段

声发射信号首先被分割成多个块,以便进行后续处理。分割方式包括:

  • 击中检测: 检测信号中显著的事件,并将其作为块的开始和结束。
  • 滑动窗口: 以固定的时间间隔将信号分割成多个重叠的块。
  • 利用其他传感器: 例如,在本研究中,利用激光测振仪信号检测振动周期,并将声发射信号分割成与振动周期相对应的块。

2.1.2 数据加窗

为了避免声发射事件在相邻周期之间的重叠影响,每个周期信号被乘以汉宁窗。汉宁窗是一种加权窗函数,可以减小信号边缘的影响,从而将分析重点放在周期的中心部分。

2.1.3 声发射信号转换为图像

  • 将每个周期的声发射信号通过连续小波变换 (CWT) 转换为图像。CWT 可以将信号分解为不同的频率成分,并将其表示为时间-频率图,即图像。
  • CWT 使用 Morse (3, 60) 小波,其具有局部化频率特性,并使用 12 个滤波器对尺度进行离散化。
  • 图像尺寸为 224 × 224 × 3,其中 3 代表 RGB 通道,对应于 CWT 的实部、虚部和模值。

2.1.4 数据增强 (可选)

为了提高模型的泛化能力,可以采用数据增强技术,例如旋转、缩放、翻转等,对图像进行变换。

2.2 数据准备

数据准备模块的目标是将信号处理模块生成的图像数据转换为可用于深度学习的格式,并进行必要的预处理。详细步骤如下:

2.2.1 图像编码

由于深度学习模型通常使用浮点数进行计算,因此需要将 CWT 图像的整数编码转换为浮点数编码。这可以通过归一化或使用浮点数进行编码来实现。

2.2.2 数据集划分

将图像数据集划分为训练集、验证集和测试集。通常,训练集占 80%,验证集占 10%,测试集占 10%。

2.2.3 数据增强 (可选)

为了提高模型的泛化能力,可以采用数据增强技术,例如旋转、缩放、翻转等,对图像进行变换。

2.2.4 批处理

为了提高训练效率,将图像数据组织成批次进行训练。每个批次包含多个图像,并使用随机梯度下降算法进行更新。

2.2.5 数据加载

将图像数据加载到深度学习框架中,并进行必要的预处理,例如归一化、裁剪等。

2.3 紧固级别识别

紧固级别识别模块是螺栓连接结构健康监测方法的核心部分,其目标是通过深度学习模型对 CWT 图像进行分类,从而识别螺栓的紧固级别。详细步骤如下:

2.3.1 模型选择

选择合适的深度学习模型进行分类。本研究中使用了四种不同的模型架构:

  • GoogleNet: 一种具有“inception 模块”的深度卷积神经网络,能够有效地提取图像特征。
  • ResNet18: 一种具有残差连接的深度卷积神经网络,能够有效地解决梯度消失问题。
  • MobileNetV2: 一种轻量级的深度卷积神经网络,适合在移动设备上进行部署。
  • EfficientNetB5: 一种具有高效网络结构的深度卷积神经网络,能够在保证精度的同时减少计算量。

2.3.2 模型训练

使用训练集对深度学习模型进行训练。训练过程中,模型会不断学习 CWT 图像的特征,并将其与螺栓的紧固级别进行关联。训练过程中需要设置以下参数:

  • 学习率: 控制模型更新参数的速度。
  • 学习率调度器: 动态调整学习率,例如 1cycle 调度器。
  • 优化器: 例如 AdamW 或 SGD,用于更新模型的参数。
  • 损失函数: 用于评估模型的预测结果与真实标签之间的差异,例如交叉熵损失或序数损失。
  • 批大小: 每个批次包含的图像数量。
  • 迭代次数: 模型训练的次数。

2.3.3 模型评估

  • 使用验证集评估模型的性能,并根据评估结果选择最优的模型参数。
  • 使用测试集评估模型的泛化能力,并计算模型的准确率等指标。

2.3.4 紧固级别识别

使用训练好的深度学习模型对新的 CWT 图像进行分类,从而识别螺栓的紧固级别。

3 结论

  • 以往针对同质群体开发的基于深度神经网络和冻结层的方法未能泛化,使它们不适合使用AE技术的螺栓连接的SHM目的。
  • 在计算CWT之前对AE数据进行去噪是不必要的。
  • 使用mu80传感器就足以获得高性能,无需传感器融合
  • 比较了不同的损失函数,特别是序数损失和标准交叉熵(CRE),POM1b的损失在所有网络中整体上带来了最佳结果,而CRE在准确性和标准差方面表现最差。
  • 超收敛现象首次在SHM数据上展示,探索了一种名为1cycle调度器的学习率调度策略,它允许在几次迭代中获得高准确率。
  • 就准确性和收敛速度而言,两个最佳配置是:EfficientNetB5和Resnet18,都使用POM1b损失,分别在五个测量活动#B、#C、#D、#E和#F中准确度为78.8%、86.4%、86.3%、78.8%、86.1%。

4 相关知识

4.1  POM1b 损失函数

   POM1b 损失函数是一种 ordinal loss 函数,它旨在通过惩罚相邻类别的误分类来提高分类的准确性。POM1b 损失函数的计算公式如下:

POM1b(T, P) = − ∑_{i,k} T_{i}(k) · ∑_{l∈{−1,0,1}}^{0<k−l<=K} log P_{i}(k − l)

其中:

  • T: 真实标签矩阵,元素 T_{i}(k) 表示第 i 个样本属于第 k 个类别的概率。
  • P: 预测标签矩阵,元素 P_{i}(k) 表示模型预测第 i 个样本属于第 k 个类别的概率。
  • K: 类别总数。
  • l: 遍历相邻类别时使用的索引,取值为 -1, 0, 1。

4.2  mu80 传感器

Physical Acoustics 公司生产的一款声发射传感器,用于检测材料表面亚纳米级的位移。它具有以下特点:

  • 频率范围: 200 kHz - 900 kHz,能够有效捕捉螺栓连接结构在振动过程中产生的声发射信号。
  • 灵敏度: 高灵敏度,能够检测到微小的声发射信号,例如由于表面微滑引起的能量释放。
  • 类型: 压电传感器,将声发射信号转换为电压信号,便于后续处理和分析。
  • 安装方式: 将传感器粘贴在螺栓连接结构的下梁上,使用硅脂作为耦合剂,以提高传感器的灵敏度和可靠性。

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

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

相关文章

四、利用启发式算法进行特定数据集的残差网络结构搜索【框架+源码】

背景&#xff1a;工作之后干的事情跟算法关联甚少&#xff0c;整理下读书期间的负责和参与的work&#xff0c;再熟悉学习下。 边熟悉边整理喽~ CV Tradictional workCV AI based work机械臂视觉抓取项目机器学习全流程 Pipeline训练平台OCR生产线喷码识别三维重建(SfM)ROS机器人…

springboot项目通过jar包部署到服务器

1. 将springboot项目打包成jar包 方式一&#xff1a;IDEA为例 出现 BUILD SUCCESS 证明打包成功&#xff0c;自动生成了 target 目录&#xff0c; jar 包就在目录里边 方式二&#xff1a;命令行&#xff08;得配置好maven环境变量&#xff09; 切换到项目目录下&#xff0c;…

springboot管理的各依赖版本查看

找一个springboot相关的依赖&#xff0c;比如这里我找mybatis 鼠标点击artifactId名称&#xff0c;图中蓝色字段&#xff0c;跳转到springboot依赖&#xff08;鼠标悬停在上面变成蓝色表示可点击跳转&#xff09;&#xff0c; 点击spring-boot-dependencites&#xff0c;跳转到…

基于FPGA的SystemVerilog练习

文章目录 一、认识SystemVerilogSystemVerilog的语言特性SystemVerilog的应用领域SystemVerilog的优势SystemVerilog的未来发展方向 二、流水灯代码流水灯部分testbench仿真文件 三、用systemVerilog实现超声波测距计时器测距部分led部分数码管部分采样部分顶层文件引脚绑定效果…

QT入门知识回顾

1 QT简介 1.1 Qt模块: Qt Core模块: 是QT类库的核心&#xff0c;所有其他模块都依赖这个模块 Qt Gui模块: 提供GUI程序的基本功能 Qt Network模块:提供跨平台的网络功能 Qt Widgets模块:提供创建用户界面的功能 1.2Qt的signal/slot机制 任何一个类只要类体前部书写 Q_OBJ…

TH方程学习 (6)

一、内容介绍 本节旨在使用优化算法的方法&#xff0c;旨在利用最小的燃耗实现目标的交会&#xff0c;变量为目标的转移时间。整个问题描述为&#xff1a; 本节拟采取粒子群优化的算法&#xff0c;matlab中自带的粒子群函数为particleswarm&#xff0c;其用法不详细介绍&#…

LeetCode:环形链表II

文章收录于LeetCode专栏 LeetCode地址 环形链表II 题目 给定一个链表&#xff0c;返回链表开始入环的第一个节点。如果链表无环&#xff0c;则返回null。   为了表示给定链表中的环&#xff0c;我们使用整数pos来表示链表尾连接到链表中的位置&#xff08;索引从0开始&#…

C++青少年简明教程:数组

C青少年简明教程&#xff1a;数组 C数组是一种存储固定大小连续元素的数据结构。数组中的每个元素都有一个索引&#xff0c;通过索引可以访问或修改数组中的元素。 在C中&#xff0c;数组中的元素数据类型必须一致。数组是一个连续的内存区域&#xff0c;用于存储相同类型的元…

std::shared_ptr,reset()函数

感慨&#xff1a;不深入阅读源代码&#xff0c;真的心虚&#xff0c;也用不好。 上代码&#xff1a; class A01 { public://std::weak_ptr<B0> b_ptr;int data{ 1234 };~A01() {std::cout << "A01 deleted\n";}void Print() { std::cout << &quo…

C++进阶:C++11

C11简介 在 2003 年 C 标准委员会曾经提交了一份技术勘误表 ( 简称 TC1) &#xff0c;使得 C03 这个名字已经取代了 C98 称为 C11 之前的最新 C 标准名称。不过由于 C03(TC1) 主要是对 C98 标准中的漏洞 进行修复&#xff0c;语言的核心部分则没有改动&#xff0c;因此人们习…

初始操作系统

概念&#xff1a; 1.系统资源的管理者&#xff1a;实质控制和管理整个计算机系统的硬件和软件资源&#xff0c;并合理地组织调度计算机地工作和资源的分配 2.向上层提供方便易用的服务&#xff1a;以提供给用户和其他软件方便接口和环境 封装思想&#xff1a;操作系统把一些丑…

小熊家务帮day10- 门户管理

门户管理 1 门户介绍1.1 介绍1.2 常用技术方案 2 缓存技术方案2.1 需求分析2.1.1 C端用户界面原型2.1.2 缓存需求2.1.3 使用的工具 2.2 项目基础使用2.2.1 项目集成SpringCache2.2.2 测试Cacheable需求Service测试 2.1.3 缓存管理器&#xff08;设置过期时间&#xff09;2.1.4 …

React@16.x(17)Portals

目录 1&#xff0c;使用2&#xff0c;事件冒泡 一句话总结&#xff1a;和 Vue3 的 Teleport 一个效果。 1&#xff0c;使用 import React, { PureComponent } from "react"; import ReactDOM from "react-dom";// 返回一个 React 元素&#xff08;ReactNo…

【Go语言精进之路】构建高效Go程序:零值可用、使用复合字面值作为初值构造器

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 引言一、深入理解并利用零值提升代码质量1.1 深入Go类型零值原理1.2 零值可用性的实践与优势1.2.1 切片(Slice)的零值与动态扩展1.2.2 Map的零值与安全访问1.2.3 函数参数与零值 二、使用复合字面值作为初值构造器2.1 结构体…

十分钟快速搭建检索、排序的大模型RAG系统

以上为实现效果 RAG是目前最火的大模型应用之一&#xff0c;如何能快速实现一个不错的demo呢&#xff1f; 参考 https://github.com/LongxingTan/open-retrievalshttps://colab.research.google.com/drive/1fJC-8er-a4NRkdJkwWr4On7lGt9rAO4P?uspsharing#scrollTo2Hrfp96UY…

【算法】一文搞懂归并排序

概念 归并排序利用了分治思想&#xff0c;将待排序的数组范围层层划分&#xff0c;每次划分会得到两个大小相近的区间。当无法划分时&#xff0c;递归结束&#xff0c;自下而上进行区间合并merge操作&#xff0c;合并操作依次比较两个区间的元素&#xff0c;进而使合并后的区间…

开发和渗透偷懒利器utools

目录 1.前言 1.1 工具简介 1.2 核心特性 1.3 使用场景 1.4 安装与使用 1.4.1 下载&#xff1a; 1.4.2 安装&#xff1a; 1.4.3 配置&#xff1a; 1.4.4 插件市场&#xff1a; 2.懒狗插件介绍 基本介绍 2.1 数据模拟 2.2 随机生成虚假数据 2.3 API市场 2.4 Hoppscot…

学习小心意——简单的循坏语句

for循坏 基本语法格式 for 变量 in 序列:代码块 示例代码如下 for i in range(10):print(i)#输出结果:0 1 2 3 4 5 6 7 8 9 简单案例代码如下 利用for语句遍历序列 # 遍历字符串打印每个字母 for letter in "python":print(letter)# 遍历列表并打印每个元素 a …

Spring Boot API 编写的十个最佳实践,你知道几个?

一个好的 API 不仅能提高开发效率&#xff0c;还能确保系统的安全性和稳定性。 第一部分&#xff1a;RESTful API 设计 资源名称&#xff1a;使用名词表示资源&#xff0c;比如 /users。 HTTP 方法&#xff1a;GET、POST、PUT、DELETE 分别对应查询、创建、更新和删除操作。 …

SaaS 电商设计 (十一) 那些高并发电商系统的限流方案设计

目录 一.什么是限流二.怎么做限流呢2.1 有哪些常见的系统限流算法2.1.1 固定窗口2.1.1 滑动窗口2.1.2 令牌桶2.1.3 漏桶算法 2.2 常见的限流方式2.2.1 单机限流&集群限流2.2.2 前置限流&后置限流 2.3 实际落地是怎么做的2.3.1 流量链路2.3.2 各链路限流2.3.2.1 网关层2…