【小波神经网络】关于用小波包变换+BP神经网络分析齿轮箱故障的研究

0 引言

  最近朋友喊帮忙做一个仿真程序,遂接触了用小波包变换结合神经网络的方法来分析发动机齿轮箱故障类型,查阅了几篇文献后,觉得这种方法很是巧妙,竟然能够分析出齿轮箱哪个部位发生了故障。经过仔细的研读后,成功对文章的内容进行了复现,这里把文章中没有讲到的一些细节做一个分享。

1 小波包变换

  在分析现实工程中的故障信号时,往往采用傅里叶变换、小波变换小波包变换来分析。小波变换被认为是傅里叶变换的一次突破,而小波包变换又是小波变换的一次提升。小波包分析能够实现对信号各频段的划分,对低频和高频信号都能分析,能显著地提高信号的分辨率。应用小波包分析信号的流程图如下图所示。

【小波神经网络】关于用小波包变换+BP神经网络分析齿轮箱故障的研究

1.1 小波包分解

  小波包变换能够将信号分解为近似信号和细节信号,而在下一层分解中再次将两种信号进行进一步分解,经过 N N N 层分解后,能够得到 2 N 2^N 2N 个频段信号,小波包分解树如下图所示。

【小波神经网络】关于用小波包变换+BP神经网络分析齿轮箱故障的研究

其中顶层节点(0,0)代表原始信号,最底层的节点则代表最终分解后得到的各频段信号,并设 X i , j X_{i,j} Xi,j​ 为第 i i i 层第 j j j 个节点的分解系数。 i = 1 , 2 , . . . , n i=1,2,...,n i=1,2,...,n, j = 1 , 2 , . . . , 2 n − 1 j=1,2,...,2^n-1 j=1,2,...,2n−1, n n n为分解的层数。

1.2 小波包信号重构

  由1.1小节得到的 2 N 2^N 2N 个小波包分解系数 X i , j X_{i,j} Xi,j​ ,再对这些分解系数分别进行重构,进而得到重构后的信号 S i , j S_{i,j} Si,j​ 。则原始信号就可由重构后的信号进行表示
S = S i , 0 + S i , 1 + S i , 2 + ⋯ S i , 2 i − 1 S=S_{i,0}+S_{i,1}+S_{i,2}+\cdots S_{i,2^i-1} S=Si,0​+Si,1​+Si,2​+⋯Si,2i−1​

1.3 求解频带能量并归一化

  得到重构信号 S i , j S_{i,j} Si,j​ 后,可得到各个重构信号对应的频段能量值。设与 S i , j S_{i,j} Si,j​ 相对应频段的能量为
E i , j = ∫ ∣ S i , j ∣ 2 d t = ∑ j = 1 2 i − 1 ∣ X i , j ∣ 2 E_{i,j}=\int{\left| S_{i,j} \right|^2dt}=\sum_{j=1}^{2^i-1}{\left| X_{i,j} \right|^2} Ei,j​=∫∣Si,j​∣2dt=j=1∑2i−1​∣Xi,j​∣2根据上式可依次求得各个频段的能量值,将这些能量值组成一个向量 T T T ,且单位化后可得到
E j = E i , j ∑ j = 0 2 i − 1 ∣ E i , j ∣ 2 T = [ E 0 , E 1 , E 2 , . . . , E 2 i − 1 ] E_j=\frac{E_{i,j}}{\sqrt{\sum_{j=0}^{2^i-1}{\left| E_{i,j} \right|^2}}} \\ \boldsymbol{T}=\left[ E_0, E_1, E_2,...,E_{2^i-1} \right] Ej​=∑j=02i−1​∣Ei,j​∣2 ​Ei,j​​T=[E0​,E1​,E2​,...,E2i−1​]  通常来说,小波包分解层数一般设为3层,也就是将初始信号的频率范围划分为8个部分,再分别对各部分的信号进行重构,进而可得到单位化后的特征向量 T T T 。

2 BP神经网络

  BP神经网络的核心算法为BP算法,它是一种按照误差逆传播训练的多层前馈网络。BP网络由输入层、隐含层、输出层组成,其是一种监督学习算法,通过给定的输入输出样本,根据误差不断调整权值进行训练,最终达到和输出数据尽量吻合的结果。由于其具有较强的并行分布式处理能力和自学习能力,在故障检测中得到了广泛的应用。BP神经网络结构如下图所示。

【小波神经网络】关于用小波包变换+BP神经网络分析齿轮箱故障的研究

2.1 各层神经元个数分析

  输入层神经元个数:经过小波包分析和特征值提取的特征向量作为BP网络的输入向量,由小波包分解确定的特征值的向量维数作为BP网络的输入个数,即输入维数为 2 N 2^N 2N 。

  隐含层神经元个数:隐含层神经元的个数可根据经验公式选择,即 l = 2 m + 1 l=2m+1 l=2m+1,其中 m m m 代表输入层的神经元个数。

  输出层神经元个数:输出层神经网络的输出个数为故障类型个数。例如,当需要识别的故障类型为 n n n 个时,神经网络的输出向量则为 y = [ y 1 , y 2 , . . . , y n ] T \boldsymbol{y}=\left[ y_1, y_2,..., y_n \right] ^{\mathrm{T}} y=[y1​,y2​,...,yn​]T ,向量 y \boldsymbol{y} y 中最接近1的元素则对应了故障发生的原因。

  确定好神经网络的结构后,可对神经网络进行训练,训练好后的神经网络此时具备了记忆能力和预测能力,将测试数据输入到BP神经网络中,可对故障类型进行预测,神经网络的训练流程如下图所示。

【小波神经网络】关于用小波包变换+BP神经网络分析齿轮箱故障的研究

3 仿真分析

  为了验证本文方法在齿轮箱故障识别中的可靠性,采用matlab软件进行仿真,用实验数据和数据预测来验证该方法。结合小波包和BP神经网络的实验流程如下图所示。

【小波神经网络】关于用小波包变换+BP神经网络分析齿轮箱故障的研究

  原始数据来源于凯斯西储大学轴承数据中心,通过在电机驱动机械系统上安装一个加速度传感器来采集振动信号,采样频率为12 kHz。本次实验中,数据集A、B、C分别包含了17500个训练样本和2500个测试样本。分别采集数据集A、B、C在负载为1、2、3 hp下的样本,每种数据集均包含10种不同的故障条件。

【小波神经网络】关于用小波包变换+BP神经网络分析齿轮箱故障的研究

  利用小波包对信号进行分解以提取有效信号特征,可得到原始信号对应的特征向量。在本次研究实验中,故障类型个数为10个,用二进制状态表示BP神经网络输出向量的样本类别,“1”表示该样本类型起作用,向量 [ 1 0 1 × 9 ] T \left[ \begin{matrix} 1& \mathbf{0}_{1\times 9}\\ \end{matrix} \right] ^{\mathrm{T}} [1​01×9​​]T 表示正常,向量 [ 0 1 0 1 × 8 ] T \left[ \begin{matrix} 0& 1& \mathbf{0}_{1\times 8}\\ \end{matrix} \right] ^{\mathrm{T}} [0​1​01×8​​]T 表示故障类型为直径0.007mm的球故障,向量 [ 0 1 × 2 1 0 1 × 7    ] T \left[ \begin{matrix} \mathbf{0}_{1\times 2}& 1& \mathbf{0}_{1\times 7}\\ \end{matrix}\,\, \right] ^{\mathrm{T}} [01×2​​1​01×7​​]T 表示故障类型为直径0.014mm的球故障,向量 [ 0 1 × 3 1 0 1 × 6    ] T \left[ \begin{matrix} \mathbf{0}_{1\times 3}& 1& \mathbf{0}_{1\times 6}\\ \end{matrix}\,\, \right] ^{\mathrm{T}} [01×3​​1​01×6​​]T 表示故障类型为直径0.021mm的球故障,向量 [ 0 1 × 4 1 0 1 × 5    ] T \left[ \begin{matrix} \mathbf{0}_{1\times 4}& 1& \mathbf{0}_{1\times 5}\\ \end{matrix}\,\, \right] ^{\mathrm{T}} [01×4​​1​01×5​​]T 表示故障类型为直径0.007mm的内圈故障,依此类推。因此,神经网络输出层的个数设置为10,神经网络隐含层的神经元个数设为17,训练算法采用贝叶斯正则化训练。其中,正常工况和0.007mm的各类故障时域波形如下图所示。

【小波神经网络】关于用小波包变换+BP神经网络分析齿轮箱故障的研究【小波神经网络】关于用小波包变换+BP神经网络分析齿轮箱故障的研究

  对原始数据进行分析,原始数据经小波包分解后可得到多组特征向量,将其作为神经网络的输入值,其中,80%的数据作为训练样本,20%的数据作为测试样本。训练时,最大训练次数设置为1000次,神经网络的训练结果如下图所示,其中,横坐标代表训练次数,纵坐标代表均方误差,当训练次数达到643次时,均方误差为0.01238,此时误差已经收敛至较小误差内,神经网络模型建立完成。

【小波神经网络】关于用小波包变换+BP神经网络分析齿轮箱故障的研究

  任选4组样本数据作为验证样本集,将样本集数据输入到训练好后的BP神经网络中,每组样本均对应着某一个故障模型,将神经网络的实际输出结果和标准信号进行对比,比较结果如下表所示。

【小波神经网络】关于用小波包变换+BP神经网络分析齿轮箱故障的研究

结论

  在分析网络的实际输出向量时,分量最大的值表明了对应的故障类型。从表2中可以看出,BP神经网络的实际输出和期望输出是比较一致的,其误差在可接受的范围内,预测准确率能达到95%以上,这说明训练好的神经网络具有很好的泛化能力,能够准确地对故障模式进行预测。
  4组案例信号的分析都对齿轮箱状态信号作出了正确地分类,与实验设置的故障状态类型保持一致。由此可得,小波包神经网络能够对齿轮箱故障类型进行预测。

参考文献

  1. 王皓,周峰. 基于小波包和BP神经网络的风机齿轮箱故障诊断[J]. 噪声与振动控制,2015(2):154-159. DOI:10.3969/j.issn.1006-1335.2015.02.035.
  2. 刘漫,段勇强,樊姗,等. 基于小波降噪和BP神经网络的风力发电机组 齿轮箱故障诊断研究[J]. 湖北民族学院学报(自然科学版),2019,37(1):116-120. DOI:10.13501/j.cnki.42-1569/n.2019.03.025.
  3. 刘志刚,赵晓燕,张涛,等. 基于小波包-神经网络的电厂发电机组故障诊断研究[J]. 机械传动,2018,42(8):179-182. DOI:10.16578/j.issn.1004.2539.2018.08.035.
上一篇:图解leetcode378.有序矩阵中第K小的元素(未完)


下一篇:LNK2019 无法解析的外部符号 “class std::basic_ostream<char,struct std::char_traits