Page 103 - 《软件学报》2021年第8期
P. 103

刘立  等:基于 1D-CNN 联合特征提取的轴承健康监测与故障诊断                                              2385


                                              Q(C a ,C o ;S a ,S o )=||f a (C a ,S a )−f o (C o ,S o )||  (21)
                    由于两数据集同源,两个自动编码器的耦合能够很快捕获两者间的相似性,弥补缺失信息.f a 与 f o 分别是数
                 据集 p 和 F o 的映射函数,C a 和 C o 是输入的数据,S a 和 S o 是权重和偏置的集合,所以更新损失函数为
                                     L(C a ,C o ;S a ,S o )=μ 1 L a (C a ;S a )+μ 2 L 0 (C 0 ;S 0 )+μ 3 Q(C a ,C o ;S a ,S o )  (22)
                 其中,μ i 是控制重构误差和相似性度量的参数且 ∑              3  μ = 1.训练过程依旧由反向传播和梯度下降进行,在模型
                                                         i= 1  i
                 最后加入 softmax 层进行分类.本文针对两个同源数据集开展特征耦合:一类数据剔除了采样周期内受噪声影
                 响,包含故障重叠信息的部分,保留特定工况信息最丰富的区域;一类具有强相关性、稀疏性,通过自动编码器耦
                 合之后能够发挥出两类数据的优势,故障分类的准确度优于其中的任何一类数据.本文所提基于 1D-CNN 联合
                 特征提取的轴承健康监测与故障诊断算法伪代码如下.
                    Input: V s :轴承的振动信号.   //对健康状态的特征域采样点进行存储
                    Output: F k :故障类型的结果.
                    Pseudocode:
                    1.   if collected.V s =On;  //传感器采集到的振动信号
                    2.      forselectSP=Sampling(circle);   //按旋转机械旋转一圈采样点的数量为一个样本存储数据
                    3.      {
                    4.      CutSP circle =Pseudo-feature(i);   //将每个样品裁剪成 i 个伪特征
                    5.      Conv1Dz(Pseudo-feature(i),n);  //一维卷积并行训练 i 个伪特征,并取 n 个样本
                    6.      Select(Feature domain(Pseudo-feature(i),j,);l);   //为 l 个工况分别选择 j 个区域组成特征域
                    7.      }
                    8.      Conv1Dz((Feature domain(health),h),n);  //利用一维卷积训练健康状态特征域实现监测模型
                    9.      AE Coupling(Feature domain(fault(i),i),Sampling(circle));  //自动编码器耦合特定工况特征域和原始
                                                                         信号
                    10.     Softmax(AE Coupling.fault);   //Softmax 做故障分类
                    11.     if (Collected.V s .Feature domain(health)=Conv1D((Feature domain(health),h),n));
                         //判断实时收集的数据是否健康
                    12.     Continue;
                    13. Else if
                    14.     Temporary=Collected.V s .Feature domain(fault,i);   //收集 i 个故障所需要的特征域
                    15.     fault=Softmax(Temporary);   //Softmax 分类故障
                    16.     DeleteTemporary;  //删除存储的采样点
                    17. End if;

                 3    实验仿真与性能评估

                 3.1   参数设置
                    实验采用凯斯西储大学(Case Western Reserve University)轴承数据中心提供的轴承数据进行实验,数据以
                 12 000 个采样点每秒从机械的加速度计上收集,采样点/圈数=采样频率×60/旋转速度=12000×60/1797=400,因
                 此固定单位周期的振动信号长度为 400 个采样点,即每个样本由 400 个采样点组成.轴承健康状态及不同故障
                 状态各选取 1 000 个样本,训练与测试所用数据比例为 9:1.实验所用 1D-CNN 的激活函数为 Relu,而网络层数包
                 括 5 层卷积、5 层池化以及 2 层完全连接层,卷积核大小为 10,数量分别是 27,27,27,36,36.
                    如图 4(a)~图 4(d)所示为轴承正常运转、内圈故障、外圈故障、滚珠故障下产生的一个样本长度的振动信
                 号时域波形图.
   98   99   100   101   102   103   104   105   106   107   108