蒋青松,张志杰
(中北大学 仪器科学与动态测试教育部重点实验室,山西 太原 030051)
阵列涡流检测技术作为一种新型的无损检测技术,不但具有常规涡流检测技术的优点,还克服了常规涡流传感器检测速度慢的缺点。随着计算机、传感器技术和信号处理技术的进步,阵列涡流检测技术已趋于成熟[1−2]。阵列涡流技术的检测原理是将通入交变电流的激励线圈放置在导电部件上,导体表面会产生涡流,导体中的缺陷会干扰涡流路径,这种干扰可以通过检测线圈来测量[3]。阵列涡流传感器探头结构灵活多变,能适应复杂工况,针对某些特殊结构工件的缺陷检测有着独特优势,阵列探头的不同布置方案会对输出信号产生影响,阵列探头会有多个线圈,通过分时复用芯片进行通道采集[4−6]。阵列涡流检测的一个重要应用是磁感应成像,磁感应成像的原理是利用高频磁场在不接触被测组织的情况下测量组织的电导率,从而重构组织内部电导率的分布情况以及检测电导率的变化情况[7−8]。阵列探头的信号可以利用可编程门阵列(FPGA)进行多路信号的采集和控制[9]。Zynq-7020 包含一片FPGA 和双核ARM Cortex-A9 处理器,利用ZYNQ 可以方便扩展系统的功能[10]。
硬件设计部分是为满足所设定的功能而搭建的底层硬件系统,芯片的选用和PCB 的设计是完成硬件设计的关键。
设计一个基于ZYNQ 的阵列涡流无损检测系统,系统拥有信号激励、多通道采集,信号处理等模块可以实现高负载信号发生器、阻抗分析仪、通道采集、无损检测等多功能集成的系统。此系统连接阵列涡流传感器可以采集包含试件电导率分布的电压信号,设计思路如图1 所示。
图1 系统总体设计
阵列探头8 个线圈的激励会由FPGA 利用直接数字式频率合成技术(DDS)生成数字量正弦波,数字量正弦波会通过AD9767 数模转换芯片转换为模拟量并对激励线圈进行激励,感应线圈在周围磁场的影响下会感应出感应信号,系统采集模块会对8 个线圈的电压信号进行采集并通过AD240 模数转换芯片将模拟信号转换为数字信号,数据处理模块会将信号分解成复数和相位差,并通过DMA 传输到DDR 存储器中,便于数据的可视化及软件处理算法的实现。
由于阵列涡流传感器有8 个线圈,要将这8 个线圈的电压信号采集到一片AD9240 模数转换芯片中,对AD9240 进行分时复用需要依靠ADG408 模拟开关进行通道选取,ADG408 的控制地址如表1 所示。
表1 ADG408 模拟开关通道控制
通过状态机控制数字信号,可以达到对通道进行分时选取的功能。通过控制数字量A2、A1、A0分别打开通道1、通道2、…、通道8,并不断循环上述操作。
ADG408 模拟开关的控制信号在0.8 V 以下默认为低电平,2.4 V 以上默认为高电平,因此可以利用LVCMOS33 或3.3 V LVTTL 作为ADG408 模拟开关的驱动电压。
ADG408 模拟开关的最大通道转换速度受ttransition影响,ttransition是A2、A1、A0数字量驱动电压达到标准值50%的时间点taddress50%开始到通道的电压输出达到输入电压90%电平的时间点toutput90%为止所消耗的时间。
在±15 V 电源供电下,ADG408 模拟开关 的ttransition标准值为120 ns,ttransition的最大值为250 ns。因此系统驱动ADG408 模拟开关地址位的周期不应该小于250 ns。
如图2 所示,通过编写case 状态机,将每一个要考虑的因素都通过拟定的时钟进行输出,便于灵活控制通道的开关。
图2 ADG408 状态机控制
每一个状态机状态的改变不应超过250 ns,即ADG408 模拟开关的地址转换频率不应超过4 MHz。实际上,IC 芯片和布线的存在会导致信号从模拟开关输出后到达FPGA 引脚仍然具有极高时延tshiy,因此从FPGA输出ADG408 地址控制信号到FPGA 的输入寄存器IBUF(IBUF 是FPGA 接收外设I/O 接口信号的输入缓冲器)接收到指定通道的信号是存在大量时延tzongshiy的。
如果没有考虑IC 芯片的信号延迟tshiy,只考虑ttransition会对后续的算法模块产生影响,因为此时算法模块获得的是延时tshiy的信号,这增加了算法的误差。经过测试150 ns 对系统板进行8 通道测试,将信号发生器输出一个正弦波接到仪表运放,其中ADG408 模拟开关的地址位不变,图3 表明此时FPGA 的IBUF 寄存器接收AD 模数转换芯片的值与信号发生器的输出值是一致的。 图3 模拟开关选定一个通道后寄存器的输入值 为验证系统板通道采集能力而做的区别实验如图3所 示,multich_ad_data_unsigned_IBUF[13:0]是FPGA 采集14 位AD 模数转换芯片的输入寄存器,ad_ch6_o[13:0]、ad_ch7_o[13:0]、ad_ch8_o[13:0]分别是6、7、8 通道的寄存器。由于此时ADG408 模拟开关的地址位不发生变化,此时的状态机相当于把图2 的地址ch_sa 保持在了一个值,模拟开关通道的选取和信号发生器接入系统板的通道是一致的,因此8 个通道寄存器都会将IBUF的值赋给自己,且由于ADG408 模拟开关的地址位没有进行更改,multich_ad_data_unsigned_IBUF[13:0]的值没有受到模拟开关的影响,其呈现为一条不含明显噪声的正弦波。 将2 通道和3 通道的仪表运放接信号发生器的正弦输出,ch_sa 的变换情况依照图4 状态机从0~7 循环变化,FPGA 的IBUF 输入寄存器和通道寄存器数值的变化情况如图4 所示。 图4 模拟开关变换通道下寄存器的值 multich_ad_...IBUF[13:0]是FPGA 保 存14 位AD 模数转换芯片所输出14 位数字量的寄存器,图3 和图4 的multich_ad_...IBUF[13:0]并不同,图4 的IBUF 值夹杂了大量噪声,这是ADG408 模拟开关的地址改变所导致的通道关断带来的噪声和其他通道没有输入导致的数值不确定引起的噪声,ad_ch2_o[13:0]和ad_ch3_o[13:0]分别是2 通道和3 通道寄存器,从图4 可以看出,程序所考量的系统时延tzongshiy是正确的,因此系统可以消除模拟开关不稳定和IC 时延带来的影响从而可以正确读取相应通道的数据。 数字相敏检波算法在涡流检测里的应用是可以通过相位偏移,相乘和累加运算实现对特定信号的正交分解,实现原理如图5 所示。 图5 数字相敏检波算法 系统板所采集感应线圈的电压信号会通过数字相敏检波算法与数字滤波器过滤后输出一个相对于激励电压信号的实部和虚部值。在这里数字相敏检波算法的基础是电磁感应信号的频率相等,因此信号可以转换为复数,复数的运算是极其方便的。数字相敏检波算法分解出的信号包含测量目标的电导率σ信息,通过改变激励线圈通道数,并用阵列探头检测相位变化的数据信息,就可以搭建求解电磁场逆问题的算法体系,重构目标的电导率分布及变化情况。 阵列涡流传感器拥有8 个线圈,线圈之间的关系等效于变压器,测量线圈之间互感是通过对激励线圈施加正弦激励并测量感应线圈的感应电压信号得出的。 阵列涡流传感器中的激励线圈和金属试件的电磁感应原理所等效的变压器电路如图6 所示,激励线圈的正弦激励信号由功率运放驱动,这个功率运放是电压反馈型运放,只要功率运放的带负载能力足够强,此时可以将功率运放看成是电压源。 图6 激励线圈与金属试件之间的变压器等效电路 激励线圈作为输入端口,接入电压源后,激励线圈可以等效为电阻R1和电感L1的组合,金属试件作为输出端口所形成的电路可以等效为电阻R2和电感L2的组合,M为线圈之间的互感,U1为电压源,在正弦稳态下,此等效电路的双网孔方程为: 式(3)和式(4)为线圈与金属试件之间等效电路的公式。激励线圈的阻抗和金属试件的阻抗分别为: 将式(5)和式(6)带入式(3)和式(4)得式(7)和式(8): 其中,ZM为互感抗: 从式(7)和式(8)可以得到激励端阻抗变化情况: 由式(8)可以得出试件电流I2: 很明显,由式(11)可得出,在一个真正的实验环境下当电压源的输出频率恒定时,互感抗ZM和试件的固有阻抗Z22不变,此时试件的电流I2只与激励线圈的电流I1有关,激励线圈的电流I1只和功率运放等效的电压源电压U1有关,此时试件的电流I2也就只和电压源电压U1有关。 设计的阵列涡流传感器由8 个线圈组成,8 个线圈的结构相等,线圈的结构为圆柱体,线圈绕制紧密,无缝隙,线圈直径为4 cm,如图7 所示。 图7 线圈绕制 线圈结构等效为圆柱体,8 个等效圆柱体以正八边形进行布局,图8 为阵列线圈的布局结构。 图8 阵列线圈的空间布局 8 个线圈组成的传感器阵列其工作方式有很多种,其中一种工作方式是选择一个通道作为激励通道,此时激励通道对应的线圈为激励线圈,其他7 个线圈为感应线圈。激励线圈会施加正弦激励,此时激励线圈会产生交变电流,交变电流会使得激励线圈周围产生交变磁场,交变磁场的存在会使其他线圈产生感应电压信号。 金属试件的外径为4.2 cm,内径为3.1 cm,高3.5 cm,样品如图9 所示。在阵列传感器中心放置金属试件,金属试件会产生涡流,反过来又会影响其他感应线圈产生的感应电压信号,实物图如图10 所示。 图9 金属试件测试样品 图10 涡流阵列传感器实物图 线圈1~8 的电压分别为U1~U8,线圈1~8 的电流分别为I1~I8,试件的感应涡流为I9,Mij是线圈i与线圈j之间的互感,Mij与Mji的数值是相等的。 在电路设计部分,把线圈的一端接地,以便线圈在获得激励时线圈能形成回路产生电流,当此线圈没有转换为激励线圈而是感应线圈时,即便感应线圈有感应电压也是不存在电流的。假设线圈1 为激励线圈,则式(12)~式(18)可以更改为式(20)~式(27): 从式(20)~式(27)可以得出感应线圈的感应电压与激励线圈的电流和试件产生的涡流有关。 Zynq-7020 集成866 MHz 的双核ARM Cortex-A9 和一片Artix-7 FPGA,拥有53 200 个Look-Up Tables(LUTs)、106 400 个Flip-Flops、4.9 Mb Total Block RAM和220 个DSP Slices。 XILINX 公司的Look-Up Tables(LUTs)是6 输入的,每一个LUTs 可以配置为一个6 输入(26bit ROMs)或两个5 输入的LUTs(25bit ROMs),由于每一个LUTs 输出都可以占用一个触发器,因此FPGA 片内触发器(Flip-Flops)的数量一般都是6 输入LUTs 的2 倍。 图11 是一个slice 的结构图包含4 个6 输入LUTs 和8 个触发器Flip-Flops,再加上多路复用开关和算术携带逻辑组成了FPGA 的slice 单元。 图11 Artix-7 FPGA slice 的结构图 针对阵列涡流检测系统所设计的算法模块利用VIVADO 软件综合、实现后的Zynq-7020 片内资源使用情况如图12 所示。 图12 algorithm 模块所消耗的逻辑资源 algorithm 模块主要负责对采集的信号进行数字信号处理,algorithm 模块消耗了27 684 个LUTs、29 215 个Slice Registers、8 218 个Slice 和48 个DSPs,所消耗LUTs的数量超过了Zynq-7020 LUTs 的50%,对算法进行优化可以减少FPGA 的片内资源消耗以利于后续的滤波算法实现和功能扩展。 阵列涡流检测试验平台包括电源、示波器、ZYNQ 核心板、采集激励模块、阵列涡流传感器等模块。阵列涡流检测系统检测原理是通过FPGA 输出正弦波作为激励信号激励阵列涡流传感器的一个线圈,其他7 个线圈的感应信号被采集模块接收并通过数字相敏检波算法分解得到相位差,验证阵列涡流检测系统检测传感器内部有无金属试件的能力。阵列涡流传感器通过网口与系统采集激励模块连接,阵列涡流传感器有8 个线圈、16个连接点,一个网口有8 个连接点,用棕绿蓝红线分别连接4 个线圈,用两个网口完成8 线圈阵列涡流传感器与系统采集激励板的数据连接。 将激励线圈两端接示波器,激励线圈的激励信号是峰峰值电压为4.875 V、频率为10 kHz 的正弦波。 激励采集板有两片AD9240 模数转换芯片,一片AD9240 用来采集AD9767 数模转换芯片的激励信号,另一片AD9240 用来采集8 个通道的电压信号,为了采集微小信号,程控增益运放调节的电压放大倍数比较高会让采集的激励信号直接截幅,因此需要另一片AD9767监控激励信号。 图13 中的IBUF 输入寄存器的值为第一片AD9240模数转换芯片采集的激励信号,这片AD9240 在测量时引入了未知噪声,且未加低通滤波器,所以图13 激励信号多了噪声,其余ad_chi_o[13:0]信号指的是i通道线圈电压信号,这些电压信号是第二片AD9240 通过分时复用芯片采集的信号。图4 测试表明,第二片AD9240 采集的通道信号是在数据稳定后采集的,测试数据是不含明显噪声的,因此在激励信号作用下,图13 的结果表明所采集的阵列线圈感应信号的噪声是传感器本身扰动引起的,并不是硬件电路窜入的噪声,因此阵列线圈的感应信号夹杂噪声,但是变化规律与激励信号是一致的,即感应信号可以看成是与激励信号频率相同的正弦波。在阵列探测线圈中心放置金属试件,感应线圈信号变化情况如表2 所示。 图13 阵列探头采集信号 表2 表明,阵列线圈探头在激励线圈不变、激励频率和幅度恒定的情况下,感应线圈的信号在阵列线圈探头中心放置金属试件的情况下幅度会有增大的趋势。至于感应信号的实部和虚部,需要将信号滤波成一条平滑的正弦波或者滤波成一条有些许噪声的正弦波再通过数字相敏检波算法得出感应电压的实部、虚部等信息。 表2 阵列涡流检测系统试验结果 本文介绍了基于Zynq-7020 的阵列涡流无损检测系统的设计工作,利用DDS 输出正弦信号以激励阵列探头并采集陈列探头的感应信号。结果表明,研制的系统满足对阵列探头的适配工作,搭配MATLAB 对数据进行频谱分析和滤波,以确定感应信号与激励信号的关系,进一步验证了阵列涡流探头的感应输出和系统各模块正常工作的能力,为后续硬件实现数字相敏检波算法奠定基础。1.3 数字相敏检波算法
2 阵列涡流传感器
3 程序设计
4 系统试验平台搭建
5 结论