这个算法其实就是先用3个能自己调整参数的小波滤波器从振动信号里扒出不同频率的特征,然后把特征拼在一起送进一个叫胶囊网络的东西里。胶囊网络不像普通神经网络那样只给个数字,而是给出一串向量,能更好地描述特征之间的关系,最后根据向量长度判断是哪种故障。整个过程端到端自动完成,不用手动做时频图,小波参数还能根据数据自己优化,所以对不同的故障模式适应性强。
算法步骤:
切数据:把传感器采集的长段振动信号用滑动窗口切成一个个小片段,每个片段作为一个样本。
小波特征提取:用三个可学习的小波卷积层(拉普拉斯、墨西哥帽、Morlet)分别处理每个样本,每个小波层包含16个可调尺度和平移参数的滤波器,自动学习与故障相关的时频特征,输出16张特征图。
特征合并:把三个小波层输出的特征图拼在一起,得到48张特征图,每张图长度64。
胶囊网络第一层:将48个特征看作48条“路线”,每条路线上的64个值作为特征向量,输入到第一层胶囊层。该层通过自注意力机制计算每条路线的重要性权重,加权求和后生成16个胶囊向量(每个向量16维)。
胶囊网络第二层:将16个胶囊向量作为输入,再次通过自注意力路由,生成4个胶囊向量(对应4种故障类型),每个向量8维。
分类输出:计算每个故障胶囊向量的长度(L2范数),长度越大表示该类别的概率越高,最后用softmax得到最终分类结果。