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)所示为轴承正常运转、内圈故障、外圈故障、滚珠故障下产生的一个样本长度的振动信
号时域波形图.