特征提取部分用到了matlab时频图变换工具箱,故障诊断分类部分用的是pytorch0.4
传统轴承故障诊断是采用各种特征提取方法对一维轴承信号进行特征提取,如HHT包络谱,FFT频谱,小波能量谱等,变换后的特征依旧是一维数据。本文采用小波时频图将一维轴承信号转换为2维(3通道真彩图)的时频图,然后以64*64*3作为CNN的输入,实现分类,运气好的话,测试集精度有99.5%(因为每次训练之后的结果都不一样)。
1,数据准备
采用西储大学轴承故障诊断数据集,48K/0HP数据,共10类故障(正常作为一类特殊的故障类型),划分后每个样本的采样点为864(据说是因为这样含两个故障周期),每类故障各200个样本,因此一共2000个样本,然后7:2:1划分训练集,验证集,与测试集。
2,小波时频图
本文采用小波时频图作为轴承信号的特征(其实我也不知道怎么看这个图的好坏,是看到别人论文这么用过),然后在pytorch里面构建CNN网络,采用的依旧是Lenet结构,但是参数不一样。
3 CNN故障诊断分类
下图是训练过程中训练集与验证集的损失曲线与正确率曲线
这里测试集的正确率为99%
4,对比
对比小波能量谱+MLP,小波能量谱+CNN,HHT边际谱+MLP,HHT边际谱+CNN,小波时频图+CNN的精度最高。
另外还可以对比我其他博客,如原始数据+CNN+SVM,这个采用了10000个样本,但是精度也没有这个高。具体的可以看我的GITHUB: