0 引言
最近朋友喊帮忙做一个仿真程序,遂接触了用小波包变换结合BP神经网络的方法来分析发电机齿轮箱故障类型,查阅了几篇文献后,觉得这种方法很是巧妙,竟然能够分析出齿轮箱发生了哪种故障。经过仔细的研究后,对该方法有了更深刻的理解,这里把文章中没有讲到的一些细节做一个简单分享。
1 小波包变换
在分析现实工程中的故障信号时,往往采用傅里叶变换、小波变换或小波包变换来分析。小波变换被认为是傅里叶变换的一次突破,而小波包变换又是小波变换的一次提升。小波包分析能够实现对信号各频段的划分,对低频和高频信号都能分析,能显著地提高信号的分辨率。应用小波包分析信号的流程图如下图所示。
1.1 小波包分解
小波包变换能够将信号分解为近似信号和细节信号,而在下一层分解中再次将两种信号进行进一步分解,经过 NNN 层分解后,能够得到 2N2^N2N 个频段信号,小波包分解树如下图所示。
其中顶层节点(0,0)代表原始信号,最底层的节点则代表最终分解后得到的各频段信号,并设 Xi,jX_{i,j}Xi,j 为第 iii 层第 jjj 个节点的分解系数。i=1,2,...,ni=1,2,...,ni=1,2,...,n,j=1,2,...,2n−1j=1,2,...,2^n-1j=1,2,...,2n−1,nnn为分解的层数。
1.2 小波包信号重构
由1.1小节得到的 2N2^N2N 个小波包分解系数 Xi,jX_{i,j}Xi,j ,再对这些分解系数分别进行重构,进而得到重构后的信号 Si,jS_{i,j}Si,j 。则原始信号就可由重构后的信号进行表示
S=Si,0+Si,1+Si,2+⋯Si,2i−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 求解频带能量并归一化
得到重构信号 Si,jS_{i,j}Si,j 后,可得到各个重构信号对应的频段能量值。设与 Si,jS_{i,j}Si,j 相对应频段的能量为
Ei,j=∫∣Si,j∣2dt=∑j=12i−1∣Xi,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根据上式可依次求得各个频段的能量值,将这些能量值组成一个向量 TTT ,且单位化后可得到
Ej=Ei,j∑j=02i−1∣Ei,j∣2T=[E0,E1,E2,...,E2i−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∣2Ei,jT=[E0,E1,E2,...,E2i−1] 通常来说,小波包分解层数一般设为3层,也就是将初始信号的频率范围划分为8个部分,再分别对各部分的信号进行重构,最终得到单位化后的特征向量 TTT 。
1.4 利用matlab进行小波包变换
matlab自带了小波包变换的一系列函数,包括wpdec、wpfrqord、wprcoef等,函数的具体使用可查看官方帮助文档。
2 BP神经网络
BP神经网络的核心算法为BP算法,它是一种按照误差逆传播训练的多层前馈网络。BP网络由输入层、隐含层、输出层组成,其是一种监督学习算法,通过给定的输入输出样本,根据误差不断调整权值进行训练,最终达到和输出数据尽量吻合的结果。由于其具有较强的并行分布式处理能力和自学习能力,在故障检测中得到了广泛的应用。BP神经网络结构如下图所示。
2.1 各层神经元个数分析
输入层神经元个数:经过小波包分析和特征值提取的特征向量作为BP网络的输入向量,由小波包分解确定的特征值的向量维数作为BP网络的输入个数,即输入个数为 2N2^N2N 个。
隐含层神经元个数:隐含层神经元的个数可根据经验公式选择,如 l=2m+1l=2m+1l=2m+1,其中 mmm 代表输入层的神经元个数。
输出层神经元个数:输出层神经网络的输出个数为故障类型个数。例如,当需要识别的故障类型为 nnn 个时,神经网络的输出向量则为 y=[y1,y2,...,yn]T\boldsymbol{y}=\left[ y_1, y_2,..., y_n \right] ^{\mathrm{T}}y=[y1,y2,...,yn]T ,向量 y\boldsymbol{y}y 中最接近1的元素则对应了故障发生的类型。
确定好神经网络的结构后,即可对神经网络进行训练,训练好后的神经网络此时具备了记忆能力和预测能力,将测试数据输入到BP神经网络中,可对故障类型进行预测,神经网络的训练流程如下图所示。
2.2 利用matlab工具箱训练神经网络
matlab也自带了BP神经网络的工具箱,即Neural Net Fitting工具箱,利用此工具箱可设置神经网络的输入输出训练样本、神经元的个数、训练算法等,其可直接进行样本的训练,当训练样本的均方误差逐渐收敛时便自动停止迭代,此时神经网络便训练完成了,就可用来预测数据。
3 仿真分析
为了验证本文方法在齿轮箱故障识别中的可靠性,采用matlab软件进行仿真,用实验数据和数据预测来验证该方法。结合小波包和BP神经网络的实验流程如下图所示。
原始数据来源于凯斯西储大学轴承数据中心,通过在电机驱动机械系统上安装一个加速度传感器来采集振动信号,采样频率为12 kHz。本次实验中,数据集A、B、C分别包含了17500个训练样本和2500个测试样本。分别采集数据集A、B、C在负载为1、2、3 hp下的样本,每种数据集均包含10种不同的故障条件。
利用小波包对信号进行分解以提取有效信号特征,可得到原始信号对应的特征向量。在本次研究实验中,故障类型个数为10个,用二进制状态表示BP神经网络输出向量的样本类别,“1”表示该样本类型起作用,向量 [101×9]T\left[ \begin{matrix} 1& \mathbf{0}_{1\times 9}\\ \end{matrix} \right] ^{\mathrm{T}}[101×9]T 表示正常,向量 [0101×8]T\left[ \begin{matrix} 0& 1& \mathbf{0}_{1\times 8}\\ \end{matrix} \right] ^{\mathrm{T}}[0101×8]T 表示故障类型为直径0.007mm的球故障,向量 [01×2101×7 ]T\left[ \begin{matrix} \mathbf{0}_{1\times 2}& 1& \mathbf{0}_{1\times 7}\\ \end{matrix}\,\, \right] ^{\mathrm{T}}[01×2101×7]T 表示故障类型为直径0.014mm的球故障,向量 [01×3101×6 ]T\left[ \begin{matrix} \mathbf{0}_{1\times 3}& 1& \mathbf{0}_{1\times 6}\\ \end{matrix}\,\, \right] ^{\mathrm{T}}[01×3101×6]T 表示故障类型为直径0.021mm的球故障,向量 [01×4101×5 ]T\left[ \begin{matrix} \mathbf{0}_{1\times 4}& 1& \mathbf{0}_{1\times 5}\\ \end{matrix}\,\, \right] ^{\mathrm{T}}[01×4101×5]T 表示故障类型为直径0.007mm的内圈故障,依此类推。因此,神经网络输出层的个数设置为10,神经网络隐含层的神经元个数设为17,训练算法采用贝叶斯正则化训练。其中,正常工况和0.007mm的各类故障时域波形如下图所示。
对原始数据进行分析,原始数据经小波包分解后可得到多组特征向量,将其作为神经网络的输入值,其中,80%的数据作为训练样本,20%的数据作为测试样本。训练时,最大训练次数设置为1000次,神经网络的训练结果如下图所示,其中,横坐标代表训练次数,纵坐标代表均方误差,当训练次数达到643次时,均方误差为0.01238,此时误差已经收敛至较小误差内,神经网络模型建立完成。
任选4组样本数据作为验证样本集,将样本集数据输入到训练好后的BP神经网络中,每组样本均对应着某一个故障模型,将神经网络的实际输出结果和标准信号进行对比,比较结果如下表所示。
结论
在分析网络的实际输出向量时,分量最大的值表明了对应的故障类型。从表2中可以看出,BP神经网络的实际输出和期望输出是比较一致的,其误差在可接受的范围内,预测准确率能达到95%以上,这说明训练好的神经网络具有很好的泛化能力,能够准确地对故障模式进行预测。
4组案例信号的分析都对齿轮箱状态信号作出了正确地分类,与实验设置的故障状态类型保持一致。由此可得,小波包神经网络能够对齿轮箱故障类型进行预测。
参考文献
- 王皓,周峰. 基于小波包和BP神经网络的风机齿轮箱故障诊断[J]. 噪声与振动控制,2015(2):154-159. DOI:10.3969/j.issn.1006-1335.2015.02.035.
- 刘漫,段勇强,樊姗,等. 基于小波降噪和BP神经网络的风力发电机组 齿轮箱故障诊断研究[J]. 湖北民族学院学报(自然科学版),2019,37(1):116-120. DOI:10.13501/j.cnki.42-1569/n.2019.03.025.
- 刘志刚,赵晓燕,张涛,等. 基于小波包-神经网络的电厂发电机组故障诊断研究[J]. 机械传动,2018,42(8):179-182. DOI:10.16578/j.issn.1004.2539.2018.08.035.
本文介绍了一种基于小波包变换与BP神经网络的发电机齿轮箱故障诊断方法。通过小波包变换提取故障特征,并利用BP神经网络进行故障类型识别,实现了对不同故障类型的准确预测。
714






