技术中心
 
 

基于虚拟仪器技术的电磁超声数据采集分析

   日期:2014-07-11    
核心提示:介绍电磁超声数据采集和分析软件的设计和实现,该软件基于虚拟仪器技术,以高速数据采集卡获取电磁超 声接收线圈中的电压信号,采集到的数据采用计算机进行分析、处理和存储,具有简洁、友好的用户界面和包括频谱分析、与MATLAB交互和自动化极值连续测 量在内的丰富的功能,简化了电磁超声信号的采集和测量步骤。

0 引言

电磁超声(EMAT,电磁声传感器)技术是用于导体和铁磁材料检测的非接触无需耦合剂的超声发生技术,这种非接触的独特优点使其在无损检测领域 具有良好的应用前景。电磁超声最初见于20世纪60~70年代国外的文献中[1-4],国内关于电磁超声的研究始于20世纪70年代钢铁研究总院张广纯的 工作[5],目前在国内主要应用于管材、板材等材料的出厂质量检测和火车车轮踏面的检测[6-8]。

图1为电磁超声检测装置的系统框图,采用了双线圈(一发一收)检测方式。激励线圈部分采用正弦脉冲串作为激发,接收线圈根据布置情况接收直接到达和各次反射超声波信号。

 

 

1 程序结构和实现

EMAT数据采集和分析软件的开发工作采用“项目浏览器”工具进行管理。LabVIEW软件从8. 0版本开始引进了这一工具,使用该工具可以方便地实现对所开发的VI的管理,同时也包含了生成. exe可执行程序和安装包的功能。该软件包含EMATMain. vi、ScanMap. vi、SignalView. vi和SignalViewOpera-tion. vi共4个子VI和EMATGloba.l vi一个全局变量。

EMATMain. vi是主VI(程序运行后第一个运行的VI),提供了软件的基本界面(如图2所示),完成数据采集和功能调度等;该VI结构框图在图3中给出。主程序主要 包含3块代码,初始化部分最先执行,完成一次性的环境初始化工作;包含事件结构的While循环(循环A)响应用户对界面的操作;并行运行的数据采集 While循环(循环B)在循环A的控制下完成数据连续采集工作;初始化部分引出一根数据线接在两个循环的边框作为伪输入,这样LabVIEW的数据流驱 动机制决定了初始化部分最先执行而两个While循环结构随后并行运行。

 

 

 

 

数据采集部分采用了PCI接口的9812采集卡,该采集卡最高采样率为20MS/s,足以实现该检测设备使用过程中频率范围(几百 kHz~1MHz)的目标超声信号的采集。随该采集卡提供的LabVIEW接口函数库可以直接用于LabVIEW开发环境使用。函数库中的函数或子VI与 LabVIEW自带的传统DAQ VI非常相似,便于学习和使用。

电磁超声响应信号的采集不是涉及循环缓冲的连续采集的过程,而是以响应信号的开火噪声作为触发的有限数据的采集,即每次触发后采集一段时间的连 续数据并进行处理,处理完成后才根据用户选择决定是否开始捕捉下一次触发,两次读取数据之间的数据都被舍弃。这种工作模式和示波器的触发采集相似。主程序 提供了单次触发采集和连续触发采集功能供用户选择,其区别在于单次触发采集捕捉一次触发并读取和处理数据后不再采集数据,在连续触发采集下,捕捉一次触发 并读取和处理数据后自动开始捕获新的触发并采集和处理数据。从实现角度看,单次采集代码置于循环A中的事件结构的“单次采集”按钮的“值改变”事件分支 内,这样将锁住用户界面直到采集和处理完成;连续触发采集代码置于循环B内,在循环A中的“开始采集”和“结束采集”按钮动作响应的控制下进行采集,这种 控制采用几个布尔类型的全局变量加以实现。采集到的响应信号是有正有负的近似正弦脉冲串信号,一般更关注信号的包络。包络检测使用了如下简单算法:

 

 

即包络等于原始信号和原始信号的希尔伯特变换(FastHilbertTransform. vi)的平方和再开方。

主程序的Tab控件包含4个Tab页,第一页为“采集参数”,设置设备号、缓冲大小、采样点数、采样率和各种触发参数,这些设置将直接传送给 9812采集卡提供的数据采集VI;第二页为“扫描图操作”,在该页中将采集到的曲线或者曲线包络记录在ScanMap. vi窗口的波形图和强度图控件中;第三页为“Matlab交互”功能,使用MATLAB ScriptNode将检测数据保存为可供Matlab直接读取的格式,可由用户决定保存原始信号、原始信号包络、滤波后信号和滤波后信号包络这4个信号 中的部分或全部,保存文件名可以根据当前日期和时间自动生成,或者由用户自定义。此外还可以直接调用Matlab的绘图功能绘制数据曲线。提供 “Matlab交互”功能的原因是方便利用Matlab这一更为专业的科学计算工具处理数据。第四页是“滤波和信号分析”,由用户指定带通滤波器的低和高 截止频率,采用“滤波器”ExpressVI实现。此外还有求取原始信号和滤波后信号频谱的功能,采用“频谱测量”ExpressVI实现。

ScanMap. vi提供了数据的对比显示功能,可以采用曲线图或者CScan图的方式同时显示多次测量数据。进行基于电磁超声方法的裂纹缺陷量化的初步研究时,应首先假 设加工生成的标准裂纹缺陷无限长,对裂纹的深度进行量化,检测探头不需移动;对于不能认为无限长的缺陷,需要进行空间等间隔的多次采样,以此生成缺陷的整 体检测图像,即在一个位置采集后移动一小段距离进行采集,此后重复这种移动-采集-移动的过程。这样采集到的数据绘制到一起就形成缺陷的全貌,这正是 ScanMap. vi要实现的功能。这种缺陷图像实际上是三维数据:第一个维度是作为x轴的信号采集的时间轴,第二个维度是作为y轴的前进距离或空间距离,第三个维度是特 定时间和位置处超声信号的幅度。使用二维图表示三维数据需要特别的处理。如前所述,ScanMap. vi中提供了曲线图和CScan图2种显示方式,前者采用“波形图”实现,纵轴具有各次采集位置空间距离和信号幅度2个含义,必须为各次采集加上垂直偏 移,才能使各条曲线在波形图的纵向分布开来;后者采用“强度图”实现,以颜色表示幅度大小。两种图在ScanMap. vi的窗口内占据相同的空间,当用户选择显示其中一种图时另外一种图被自动隐藏。需要注意的是,信号特征的时间位置并不直接代表其空间位置。

图4所示的SignalView. vi用于放大观察采集到的数据曲线,并提供了丰富的基于游标的测量功能;单击主程序的“响应信号”波形图将自动打开该VI的前面板。该VI前面板的放大响 应信号波形图上提供了6个游标,移动任何一个游标时该游标的新坐标值都会在数值指示器控件中给出;游标分为2组, 1~3号为一组, 4~6号为另一组。第一和第四个游标都设置为跟随包络曲线;第二和三号游标具有距离测量功能,即随时返回2个游标的x坐标和y坐标差值的绝对值。一个重要 的功能是根据2和3号游标所确定的x范围自动求取包络曲线在该范围内的局部极大值,并将该极大值的x坐标赋值给跟随包络的1号游标使其位于局部极大值点 处。这对于电磁超声信号包络峰值的自动测量非常重要,可以明显降低测量工作的强度。同样,4号游标可以自动设置在5和6号游标所确定的x范围中的局部极大 值点处。其他游标功能包括将指定游标置于波形图中心或者左上角等。这些游标操作都由用户操作VI前面板控件完成。连续测量功能在后面介绍。

 

 

SignalViewOperation. vi被主VI调用,在其内部使用refer-ence技术操作SignalView. vi前面板控件和数据。如前所述,在SignalView. vi中提供了由用户操作的局部峰值自动测量功能,然而在电磁超声信号检测中,需要对于同一个激励和装置布置情况多次采集响应曲线,然后对采集到的多条曲线 中的感兴趣的特征量(主要是信号包络的局部峰值)进行测量并求取平均值,然后进行进一步的分析处理,采集曲线的条数即同一特征量需要测量的次数可能达到 100次或更多,这一过程即使采用前面提供的自动测量仍然非常麻烦,因为必须手动多次重复“单次采集-自动测量”过程(使用单次采集是为了留给用户测量峰 值的时间,在用户提出采集需求前不采集新数据)。为此,在SignalView. vi前面板还提供了更加自动化的连续多次测量取平均功能。在该功能打开时,每次接收到数据并求取包络后,根据SignalView. vi波形图上自由游标的位置自动求取两个局部极大值,在各次之间累加2个极大值并随时计算平均值,当完成指定次数后最后计算得到总的平均值,因为采用了不 需要人为干预的自动连续测量,可以使用连续触发采集功能加快测量进度,这就进一步减轻了测量的工作量。面板上的进度条显示了求解指定次数平均值的进度。

这部分功能涉及到的控件的操作,实际上在主VI调用的SignalViewOperation. vi内部采用SignalView. vi的VI reference和其中波形图的reference完成。使用reference完成数据传递和通信是因为SignalView. vi和主程序并行工作并在整个程序运行过程中保持运行状态,需要随时进行数据传递并控制前面板控件的细致动作。并不像单纯的主程序的子VI那样可以通过端 子连接器传递数据。

2 其他问题

(1)并行运行的窗口的建立和维持运行。如前所述, Sig-nalView. vi实际上在程序开始运行时就已经打开(尽管并未显示出来),在程序结束时才关闭; ScanMap. vi也是如此。建立这种窗口很简单:在主VI的初始化部分,使用VI名称“Signal-View. vi”作为“VI路径”参数调用“打开VI引用”函数,使用返回的vi reference调用VI的“Run VI”方法开始VI的运行,“WaitUntil Done”参数设置为False以使主调线程立刻返回。

然后vi reference送入“FP.Open”方法,该方法的“State”参数设置为枚举值“Hidden”,这样就可以使VI在后台运行,直到State 被设置为Standard(在主窗口单击响应信号波形图)后显示出来。VI打开后可以采用多种方法与主VI进行通信,比如全局变量、队列或者 reference等。SignalView. vi和ScanMap. vi的关闭操作采用队列实现:用户在主VI界面要求关闭程序时,主VI向SignalView. vi维护的“SigView”队列和ScanMap. vi维护的“ScanMap”发送“Quit”消息,这2个VI在接收到该消息后分别向主VI维护的“EMATMain”队列发送 “SigViewQuitOk”和“ScanMapQuitOk”消息并分别退出自身的执行,主VI从“EMATMain”队列中读取到这2条消息后结束 自身运行,这样整个程序成功退出。

(2)关于某些界面效果的实现。LabVIEW提供的大多数控件都试图模拟真实仪器前面板的旋钮、开关等可操作元素,其风格与传统的W indows程序不同。为了与W indows程序的界面风格相一致并做到界面简洁美观,该程序使用了“系统”子模板的控件。此外,波形图控件的边缘做了透明处理;所有控件的布置充分利用 LabVIEW提供的对齐、分配和自动尺寸调整功能进行设计。

(3)对全局变量使用的讨论。使用全局变量在多个线程间传递数据的好处是编程简单,但是必须注意可能出现的访问冲突的问题。该程序通过仔细规划的执行控制确保全局变量不会在多个线程中同时访问,利用了全局变量编程简单的优点而不会产生冲突问题。

3 结束语

详细介绍了用于电磁超声数据采集和分析软件的开发,该软件采用LabVIEW编写,具有友好易用的用户界面和丰富强大的功能,尤其是自动化极值 连续测量功能能够极大提高信号参数测量效率。该程序的组织结构具有通用性,可以作为采用LabVIEW开发数据采集和分析软件的借鉴。

 
  
  
  
  
 
更多>同类技术
 
全年征稿 / 资讯合作
 
推荐图文
推荐技术
可能喜欢