张坤洋 黄民
(北京信息科技大学,北京 100192)
刀具磨损在线监测的嵌入式系统
张坤洋 黄民
(北京信息科技大学,北京 100192)
随着当代机械工业的发展,机械加工对精度的要求越来越高,高精度的同时也对高自动化,高智能提出了要求。刀具磨损在线监测的嵌入式仪器也就伴随着市场需求应运而生。声发射是刀具磨损在线监测的一种新的方法。它包括AE信号的采集,小波包分析、结果显示等。本文在声发射方法的基础上,研究开发了刀具磨损的在线监测嵌入式系统。
机电电子 嵌入式 声发射 刀具磨损
刀具磨损是在任何的冷加工中都不可避免会出现的问题,这种磨损必然会影响加工精度,而随着加工工件的精度要求不断提升,需要把这种影响降低到尽量低的程度。刀具磨损的在线监测系统提供了可行的方法。从算法上来说,这种磨损监测系统包括直接对刀具测量或通过提取加工信号判断刀具的磨损量。前者会导致刀具频繁的的装夹,影响工作效率。后者即间接监测包括切削力测量法、电流测量法、声发射测量法、振动测量法等。
在众多的间接型的在线监测方法中,声发射的方法因为其高频特性而发展速度比较快。因为声发射信号的信号频率较高,从而能够很好的滤除大部分的低频的干扰信号,能够为后续的信号处理提供很纯净的信号源。另外,声发射信号提取的传感器安装条件要求不高,不会对加工过程产生很大的干扰。但是它对声发射信号对安装位置的敏感度比较大,不同的安装位置可能对提取到的声发射信号的幅值影响很大。
声发射检测技术是利用声发射传感器接受被加工材料中的应力集中源瞬间释放的弹性波来判断刀具的磨损状态的一种无损检测方法。其实验模型如图1所示。
信号处理的方法主要分为:时域分析法、频域分析法、时频域分析法。在信号的时域分析中,能够计算信号的均值、均方值以及概率密度函数等。在本次试验中,通过选取对刀具磨损反应比较敏感的特征值与刀具在没有磨损状态下的信号进行比对,可以判断刀具是否磨损、磨损处于那个阶段。信号的频域分析包括对信号的幅值谱、相位谱、功率谱等进行分析。
图1
对刀具磨损在线监测的研究有很多,算法也有多种多样。比如功率检测的方法、振动信号的方法。但这些方法很少有做成嵌入式的设备,因此这一领域的研究在国内还没有真正的转化成生产力。开发故障诊断的嵌入式设备,基本要素分为三大部分:信号采集、数据处理、结果显示。在本次的嵌入式研究中,由于最终设备可能要对加工系统采集电流、振动、声发射等不同的信号进行处理,而每种信号的采样频率和数据分析方法又不一样,这样就需要完全不同的AD设备驱动和算法程序。基于此,本实验引入基于2440的linux嵌入式操作系统,从而避开了裸机程序功能单一的缺陷。对操作系统的移植就不做过多的论述。
在嵌入式开发中,故障诊断的最初始要考虑的就是信号的提取.声发射一般的采样频率在0.5M~2M之间。本实验使用ARM9的2440作为设备的开发板,采样频率设置在0.5MHz。ARM9的2440采用8通道的10位AD转换器,参考电压3.3V。当外围总线时钟PCLK为50MHz时,设定预分频值49,则10位转换器的转换时间如下:
A/D转换器频率=50MHz/(49+1)=1MHz
转换时间=1/(1MHz/5)=5us
因此,当A/D转换器被设置在最高工作时钟2.5MHz下时,转换率可以达到500KSPS。在这一个阶段,最主要的就是A/D驱动的编写。因为本实验融入了操作系统,不像裸机程序那样只是简单的配置A/D转换器的控制寄存器而已。在A/D的驱动程序中,主要包含以下几个大块:
3.1.1 ADC的初始化
3.1.2 设备文件的操作
在这个结构体中,指定了A/D设备的打开、关闭、读操作等函数,这些函数在驱动程序中都要一一实现。
3.1.3 模块初始化和退出函数
static int __init adc_init(void){}:模块初始化函数,它在模块加载时被调用一次,函数体中包括了设备号的注册、初始化字符设备、ADC的初始化等。static void __exit adc_exit(void){}:这个是模块退出函数,在模块卸载的时候被调用一次。在数据采集过程中,对数据的保存十分重要,因为声发射是在高频率下采集信号,这对读信号的程序执行速率要求十分严格,要确保数据采集期间的信号被完全读取。
驱动程序编写完成后,在PC机上调试通过并模拟运行,得出的模拟结果与PC机的Matlab运算结果相同,程序编写成功后,把它编译进操作系统核中或者作为一个模块编译进文件系统中。
在这个环节,对提取到的信号进行FFT分析,得到的结果即为信号的频谱。非周期离散信号的频谱是连续的周期谱,周期和无限这两个特点在数字信号处理中是无法应对的。而DFT的直接运算又涉及到大量的复数乘法和加法运算。快速傅里叶变换有效的解决了运算量过大的问题。其计算原理如下:
长度为N的数据序列(原始信号x(n))的DFT定义如下:
其中
在DFT的有效算法FFT中,利用了的对称性和周期性:
这样就大量减少了直接DFT的运算量,为信号分析节省了大量的时间,使数据的实时处理成为可能。
本实验中的FFT程序主要包括两部分:
3.2.1 原始数据的排序
这是因为在基2FFT算法中,要对信号进行奇偶排序。以下是对信号排序的C程序:
其中N为信号的点数,也即为FFT的点数,f[]中保存的是信号的时域内的值。
3.2.2 排序后的数值计算
本程序采用的是原位计算,即只使用N个寄存器或者是存储单位就能计算出长度为N的序列的FFT值,这样就不用开辟大量的存储区间来保存运算的中间值。其程序如下:
在FFT计算的主程序中,要把以上两个重要部分涵盖进去,确保运算结果得以存储(注意这里的保存只是保存到RAM区),用作下一步的结果显示的输入。在数据处理部分,要对采集到的数据做时间上间断的处理。因为FFT运算是一项计算量很大的工程,即使是计算机也不能实时地把A/D模块以50万Hz频率采到的数做完全的分析。
在结果显示阶段,要使用到液晶显示屏,所以首先要把LCD驱动编译进Linux核中。在这一部分,使用QT图形库可以简化图形显示程序:
在以上的程序中,只是构造了一个窗口,与这些窗口中按钮信号连接的槽函数在FFT.cpp文件中实现:#include <QLabel>
(把3.2所提到的”数据计算”部分写进一个按钮的槽的实现函数)
致此,一个声发射监测刀具磨损的嵌入式设备基本搭建完毕。这样的一套设备基本能实现声发射信号的在线分析,并能从图像显示部分直观的观察到声发射信号在频域上能量的变化。同时,由于图像每隔两秒便更新显示,能够很好地实现“实时”功能。
本文主要研究了用声发射法监测刀具磨损的数学原理和设备的物理实现。采用算法分析和实验相结合的方法。这项实验研究表明,随着计算机硬件技术不断进步,在不断地完善算法的基础上,很多故障诊断数学原理的算法模型完全可以开发成为在线监测的嵌入式设备并不断地应用到工业生产中。然而,本实验由于受硬件设备的限制,这套嵌入式仪器只能在0.5MHz的频率下采集信号。另外,以上的数据处理部分,只是对采集到的信号进行的频谱图像显示,并没有涉及到模式识别阶段。
[1]姚天任.数字信号处理[M].北京:清华大学出版社,2012,125-144.
[2]John G.Proakis,Dimiyris G.Manolakis. Digital Signal Processing[M].北京:电子工业出版社,2004,327-379.
[3]胡江林,张少文,李亮.基于声发射技术监测刀具磨损的研究[D].南京:南京航空航天大学,2012,1-5.
[4]王彬,于丹,汪洋.MATLAB数字信号处理[M].北京:机械工业出版社,2010,38-51.
[5]范世贵,郭婷.信号与系统[M].西安:西北工业大学出版社,2011,243-268.
[6]孟庆洪,候宝稳.ARM嵌入式系统开发与编程[M].北京:清华大学出版社,2011,314-348.
[7]何永琪,杨红涛,焦悦光,戴无惧.嵌入式Linux系统实用开发[M].北京:电子工业出版社,2010,390-526.
[8]商斌.Linux设备驱动开发入门与编程实践[M].北京:电子工业出版社,2009,271-281.
张坤洋(1990—),河南西平人,硕士,研究方向:故障诊断。
科技重大专项:高档数控机床与基础制造装备,课题编号:2013ZX04011-012.