
基于双路神经网络的滚动轴承故障诊断:融合原始振动信号与二维信号时频
轴承故障诊断这活儿,玩过工业数据分析的老铁都知道,振动信号里藏着关键信息。但传统单路神
经网络总感觉差点意思——要么盯着原始波形使劲儿,要么死磕时频图,这不跟人只用一只眼睛看3D电影似
的?
咱们今天整点不一样的,双通道输入直接让模型左右开弓。左边处理原始振动信号,右边解析时频
图像,就跟医生同时看心电图和CT片子一个道理。重点来了:怎么把这两种不同维度的数据喂给模型还不
打架?
先整点硬核的,上代码!咱们用凯斯西储大学的数据搞事情,先加载原始振动信号:
```python
from scipy.io import loadmat
def load_bearing_data(file_path):
raw_data = loadmat(file_path)['X098_DE_time'].flatten()
return raw_data[:3000] # 截取前3秒数据
```
这段代码处理的是驱动端轴承的振动数据,注意我们特意做了等长截取,不然后续做时频转换时会
哭得很惨。
时频转换这块推荐格拉姆角场(GAF),比传统STFT更带感。用pyts库三行代码就能生成彩色时频图:
```python
from pyts.image import GramianAngularField
gaf = GramianAngularField(image_size=64, method='difference')
transformed_data = gaf.fit_transform(segments.reshape(1, -1))
```
生成的64x64图像直接能扔进CNN处理。注意image_size别设太大,不然训练时显卡风扇能给你吹出
直升机音效。
模型架构是重头戏,PyTorch搭的双路网络长这样:
```python
class DualPathNet(nn.Module):
def __init__(self):
super().__init__()
# 波形处理支路