基于FPGA的滚动轴承故障诊断算法应用研究

作者:廖林;李飞龙;王周知;陈诗涵;贾薇 刊名:工业控制计算机 上传者:李珊[1]

【摘要】随着科技的进步,机械设备逐渐朝着精密化的方向发展,如果维护不及时设备就有可能会出现机械故障而没有被察觉(特别是早期故障),严重时会造成经济损失,因此设备运转过程中最好对其进行实时监控。采用FPGA作为处理器,运用相关算法实现故障诊断具有明显的速度优势。主要围绕滚动轴承的故障诊断算法实现展开研究。重点研究了小波变换、希尔伯特变换和FFT变换的FPGA实现方法,并且用实验与轴承故障数据验证了该算法的可靠性。

全文阅读

本文以实际应用为出发点,研究了小波基本理论以及在振动信号处理方面的应用,用嵌入式系统实现滚动轴承的故障诊断。通过大量的数据仿真、对比,验证了本文所用故障诊断算法具有计算精度高,可靠性好,速度快等优点。1故障诊断及其算法结构简述故障诊断的一般流程如图1所示,数据采集模块通过传感器采集故障信号,采集到的信号要进行初步调理,一般先经过低通滤波,然后用电荷放大器对微弱信号进行放大。放大后的信号要经过A/D转换后送到数据处理模块。数据处理模块先进行数据缓存(比如用FIFO、SRAM或SDRAM等),然后运用相关算法进行数据处理,将处理后的数据结合相关理论依据进行故障报警判断,如果判断为故障,则驱动故障报警模块进行报警。图1故障诊断的一般流程本文所用滚动轴承故障诊断算法结构如图2所示。采集到的数据(截取4096点数据)先经过小波分析,提取出我们需要的信号;然后把小波分析后的数据进行希尔伯特变换,对信号进行解调;最后对希尔伯特变换后的信号进行FFT变换,即对信号进行进行包络谱分析。如果轴承出现故障,从FFT变换后的频谱可以找出故障的特征频率,并且该频率对应的幅值较大。图2算法结构图2小波变换及其FPGA实现本文所用小波分析算法结构如图3所示,输入数据先经过延拓后,进行一层小波分解,再重构细节小波系数。图3FPGA实现小波算法示意图该算法在FPGA中的实现过程共有5个模块,依次是数据延拓模块、小波分解乘法模块、小波分解加法模块、小波重构乘法模块、小波重构加法模块。由于FPGA擅长定点数运算,所以本文故障诊断算法所处理的数据用定点数表示。用定点数表示数据,如果处理不当计算结果可能误差较大,所以对FPGA进行小波分解和重构所得到的结果和MATLAB计算结果进行对比,看误差是否能够接受。随机在轴承数据中选取32个点作为原始数据,如图4所示,s1是MATLAB的输入数据,FPGA进行小波分析所用的输入数据是s1四舍五入的数据(由于本文用的定点数处理)。不失一般性,在这里仅比较小波一层分解的细节系数和细节系数重构的结果。图4MATLAB输入数据为了更直观地了解FPGA对数据计算的误差大小,现对计算结果与MATLAB计算结果列表对比,如表1所示。从表1可以看出,Modelsim的仿真结果和MATLAB的计算结果主要是四舍五入之后的误差。引起误差的主要原因与FPGA的输入数据和小波变换的滤波器系数量化为整数有关。数据处理结果和MATLAB计算结果进行分析对比,误差很小,说明了该设计方法的正确性。3希尔伯特变换及其FPGA实现希尔伯特变换(Hilberttransform,即HT)可以把一维时域信号转换成与之唯一对应的二维的解析信号。这个二维信号的实部就是该一维信号,虚部是一维信号经过傅里叶变换和傅里叶反变换的结果。一个信号经希尔伯特变换后将产生90相移。希尔伯特变换的过程如图5所示。在处理振动信号时,常用希尔伯特变换对冲击产生的高频共振响应进行包络谱分析,使之转化为具有故障特征信息的低频波形,然后通过频谱分析找出振动的特征信息。本文用FPGA实现Hibert变换所用的FIR滤波器结构如图6所示。图64抽头FIR滤波器的直接型结构FPGA实现Hilbert变换仿真结果如图7所示,三个波形从左向右以波峰为基准看,信号sin_data(左边波形)是查找表法产生的正弦信号,信号sin(中间波形)是原正弦波(sin_data)群延时之后的正弦信号,信号Hilbert_out(右边波形)是原正弦波(sin_data)希尔伯特变换之后的结果。在图7中,是把3个信号放在一起进行比较,在图中可

参考文献

引证文献

问答

我要提问