# faultdiagnostics_pytorch **Repository Path**: phm720/faultdiagnostics_pytorch ## Basic Information - **Project Name**: faultdiagnostics_pytorch - **Description**: Pytorch框架搭建简单CNN网络实现一维振动信号四分类实现故障诊断 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2024-10-01 - **Last Updated**: 2025-08-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # faultdiagnostics_pytorch ## 1. 项目介绍 用Pytorch框架搭建简单`CNN`网络实现一维振动信号四分类进行故障诊断 ## 2. 项目结构介绍 本项目包含以下5个文件/文件夹 **- dataset文件夹
** dataset文件夹内包含4个`xlsx`文件:`InnerFault1000.xlsx`,`InnerOutterFault1000.xlsx`,`Normal1000.xlsx`,`RollFault1000.xlsx`,分别存储了某型号轴承在内圈故障、内外圈混合故障、正常和滚动体故障等4种状态下的加速度信号。 **- ExcelProcessor.py
** 用于读取/写入xlsx文件,按照用户自己的需求,修改样本划分的方式等 **- Models.py
** 定义了3个类,分别是`CNN_Diagnostics`, `CNN`,`Transformer`,用户可在这个文件里定义自己的模型 **- utils.py
** 存放了一个用户打印TSNE降维图的函数 **- main
** 整个程序的入口文件 ## 3. 安装教程 用到的库详见`requirements.txt`文件,可采用`pip install -r requirements.txt`命令一键安装所有库(确保在正确的环境下) ## 4. 数据集说明 - 每一个`xlsx`文件包含2个`sheet`,分别命名为`sheet1`和`raw`,其中`raw`记录的是原始数据,`sheet1`记录的是经过`ExcelProcessor.py`文件处理后生成的数据,用户可修改样本划分的参数``sample_size`,修改后可重复执行`ExcelProcessor.py`,将覆盖原有的`sheet1`中数据 - raw中的数据为50000行3列,三列分别记录了加速度传感器`XYZ`三个方向上的加速度信号,50000为数据长度 - 在当前程序中,具体的,在`ExcelProcessor.py`中,设置了参数`sample_size = 100`,含义为每100个数据点划分为一个样本(即特征维度是100),因此50000个数据点共分为了500个样本。划分后的样本写入`sheet1`,因此`sheet1`中数据为500行100列,每行为一个样本 - 在当前程序中,具体的,在`main.py`中,有参数`height = 10`, `width = 10`, 含义为将每个样本(100个数据点)重塑(reshape)成10行10列,这里参照了图像处理中的做法,即将100个数据点看做是高度为10,宽度为10的“图像”,用户可自定义样本划分参数`sample_size`,`height`, `width`,将会影响样本的数量 - 当`sample_size = 100`,`height = 10`, `width = 10`,并且假设`batch_size=32`时,`torch.nn.Conv2d`所接收的张量的形状为`(batch_size, C, H, W)`,其中C为通道数,对于RGB图像,`C=3`,对于本项目,`C=1`,`H`和`W`分别为`height`和`width`,因此本项目的输入张量形状为`(32,1,10,10)`,可以用以下代码生成张量以测试模型每层的输出:`x = torch.randn(size=(32, 1, 10, 10))`