A382-基于CNNtransformer和小波去噪实现的小样本故障诊断
导出时间:2026/1/6 12:47:40
1、项目描述
小样本故障分类深度学习模型
对小样本条件下的 故障数据进行分类。结合CNN与Transformer 的思想为基础
2、数据集描述
一、原始数据来源与基本格式说明
本数据集来源于私有数据:高速数据采集/示波器采样的信号记录文件(CSV 格式)。
每个 CSV 文件包含一次完整的连续采样记录,文件由头部元信息和时序采样数据两部分组成。
数据来自于真实采集,非公开,共13个G,8个故障分类:
采样与记录参数(文件头)
每个 CSV 文件头部包含如下关键信息:
- Record Length (Analog):5,000,000 表示单次记录包含 500 万个连续采样点
- Sample Rate:50,000,000 Hz(50 MHz) 表示信号以 50 MHz 的采样率进行采样
- Vertical Scale (CH3):+10 V 表示通道 CH3 的电压量程
- Vertical Offset (CH3):0 V 表示通道的直流偏置
- Horizontal Scale:0.01 s 表示时间轴的显示尺度(用于示波器显示)
这些信息用于描述数据采集条件,本项目在训练过程中不直接参与模型输入,但用于说明信号的物理意义和采样精度。
二、时序数据结构说明
在文件头之后,CSV 文件进入正式的数据区域,每一行对应一个采样点,主要包含两列:
Second, Volt
示例数据如下:
Second,Volt,
-4.999998E-002, +1.176471E-001
-4.999996E-002, +7.058824E-002
-4.999994E-002, +4.705882E-002
各字段含义说明:
- Second 表示采样点对应的时间戳(单位:秒),为相对时间轴
- Volt 表示该时间点对应的模拟电压值(单位:伏特)
在本项目中:
- 仅使用 Volt 列作为模型输入信号
- 时间列未显式作为特征输入,而是隐含在采样顺序中
三、数据规模与时间长度说明
根据采样参数可以得到:
- 采样率:50 MHz
- 单文件采样点数:5,000,000
因此,单个 CSV 文件对应的时间长度约为:
5,000,000/50,000,000=0.1 s
即:每个 CSV 文件包含约 100 ms 的高频连续时域信号
3、模型描述
小波去噪模块(Wavelet Denoising Module)
针对高采样率一维时序信号(如振动、电流、声学信号等),实际采集过程中常伴随不同形式噪声,包括但不限于:传感器热噪声、工况波动导致的宽带扰动、电磁干扰以及非目标机械结构的耦合成分。噪声会导致故障特征(如冲击、调制、局部突变)被掩盖,从而降低模型对弱故障、早期故障或跨工况数据的识别能力。
为提升模型对噪声干扰的鲁棒性,本文在数据预处理阶段引入基于离散小波变换(Discrete Wavelet Transform, DWT)的小波去噪模块。该模块利用小波在时频局部化表达方面的优势,将信号分解为多尺度的近似分量与细节分量,通过对细节系数进行阈值化抑制高频噪声,再重构得到去噪后的时域信号。该过程既能抑制随机噪声,又能较好地保留局部瞬态故障特征。
给定长度为 N 的一维信号片段 x[n],小波去噪通常包含三步:
(1)小波分解(Multi-level DWT)
对输入信号进行 LLL 层离散小波分解:
其中:
- aL:第 L 层近似系数(低频/趋势成分)
- dl:第 l 层细节系数(高频细节,多包含噪声与突变信息)
小波基(例如 db 系列、sym 系列、coif 系列)决定了分解滤波器的形状与时频特性;分解层数 L 决定尺度划分的粒度。
(2)阈值化(Thresholding)
去噪的核心是对细节系数 dl 施加阈值函数,抑制噪声主导的高频分量。本文采用常见的软阈值或硬阈值策略:
该估计对异常值鲁棒,适用于含冲击类故障特征的振动信号。
(3)信号重构(Inverse DWT)
将近似系数与阈值化后的细节系数重构回时域信号:
得到去噪后的信号片段 x~[n],并保持与原信号相同的长度(或通过边界处理确保长度一致)。
(4)模块在整体流程中的位置
本文的小波去噪模块属于输入端预处理,在模型端到端学习之前执行。其典型位置如下:
- 原始信号窗口化(固定长度切片)
- (可选)数据增强:加性噪声注入(仅用于训练集)
- 小波去噪(可选开关)
- 归一化/标准化
- 输入 CNN–Transformer 分类模型
这样的顺序有两个工程优势:
- 去噪发生在标准化前,可避免标准化把噪声能量“扩散”到整体尺度;
- 去噪模块作为可配置组件,不改变分类模型结构,便于做消融实验(with/without denoise)。
深度学习模型总体架构
针对高采样率一维时序信号的故障分类问题,本文提出一种基于卷积神经网络与 Transformer 编码器相结合的端到端分类模型。模型以固定长度的时域信号片段作为输入,通过卷积层提取局部时序特征,再利用 Transformer 捕获长程时间依赖关系,最终实现对不同故障类别的判别。
模型整体结构,主要由以下三部分组成:
- 一维卷积特征提取模块(Convolutional Backbone)
- Transformer 编码模块
- 全连接分类模块
4、运行结果
## 环境依赖
* Python 3.8
* `pandas`, `numpy`, `scikit‑learn` 用于数据处理和评估
可以通过以下命令安装依赖(若您的环境尚未安装 PyTorch,请根据官方指南选择合适版本):
```bash
pip install torch pandas numpy scikit-learn
```
运行命令:
python train_wavelet.py --data-dir ./小样本故障数据 --epochs 15 --batch-size 128 --seq-length 1024 --add-noise-std 0.001 --add-noise-prob 0.001 --enable-wavelet-denoise