蔣青松,張志杰
(中北大學(xué) 儀器科學(xué)與動(dòng)態(tài)測(cè)試教育部重點(diǎn)實(shí)驗(yàn)室,太原 030051)
渦流檢測(cè)技術(shù)是工業(yè)領(lǐng)域使用最廣泛的無(wú)損檢測(cè)技術(shù)之一[1-4],也是探測(cè)導(dǎo)電元件表層缺陷最合適的方法,對(duì)高速軌道,航空發(fā)動(dòng)機(jī)葉片,飛機(jī)鉚接件,油氣管道,核電站蒸汽發(fā)生器等的在役檢測(cè)都可取得很好的檢測(cè)效果[5-9]。此外渦流檢測(cè)也大量應(yīng)用于復(fù)合材料的檢測(cè)。
Xilinx公司的Zynq7000 系列產(chǎn)品為第一代可擴(kuò)展處理平臺(tái),是一種可編程片上系統(tǒng)[10-11]。Zynq-7020芯片內(nèi)部集成了FPGA(現(xiàn)場(chǎng)可編程邏輯門(mén)陣列)和ARM處理器資源,使其擁有了FPGA的硬件可編程性和ARM的軟件可編程性,具有較高的穩(wěn)定性和靈活性[12-14],可以對(duì)感應(yīng)信號(hào)進(jìn)行實(shí)時(shí)處理和計(jì)算,未來(lái)也可以提高系統(tǒng)的擴(kuò)展性。
數(shù)字相敏檢波算法的核心是利用加減乘除基本運(yùn)算實(shí)現(xiàn)復(fù)雜的數(shù)學(xué)運(yùn)算,假設(shè)激勵(lì)線圈的電壓信號(hào)為Uj,幅值為UA,感應(yīng)線圈的電壓信號(hào)為Ug,幅值為UB。由于數(shù)模轉(zhuǎn)換芯片利用DDS(直接數(shù)字式頻率合成器)結(jié)構(gòu)輸出正弦波給激勵(lì)線圈,所以感應(yīng)線圈的信號(hào)是同頻率正弦波,二者可表示為
Uj=UAcos(ωt)
(1)
Ug=UBcos(ωt+θ)
(2)
二者相乘可得到
(3)
式中:ω為角頻率;t為信號(hào)時(shí)間;θ為感應(yīng)信號(hào)與激勵(lì)信號(hào)的相位差。
式(3)中cos(2ωt+θ)是一個(gè)周期和為0的高頻分量,如果不用數(shù)字濾波器將其濾除,將消耗大量FPGA部分的片內(nèi)資源,不利于系統(tǒng)未來(lái)的擴(kuò)展,因此利用這個(gè)特性可以通過(guò)周期累加的方式濾掉高頻分量,最終得到有效值電壓值Uiy,即
(4)
將激勵(lì)線圈的電壓信號(hào)相位偏移90°,得到Uj90,即
Uj90=UAcos(ωt+90°)=UAsin(ωt)
(5)
將Uj90和模數(shù)轉(zhuǎn)換芯片接收的信號(hào)Ug相乘,可得Ui90為
Ui90=Uj90×Ug=UAsin(ωt)×UBcos(ωt+θ)=
(6)
同樣利用累加周期和為0去掉高頻分量得到有效電壓值Ui90y為
(7)
阻抗分解如圖1所示,可由信號(hào)的實(shí)部I和虛部Q推出幅值和相位。實(shí)部和虛部也可以由幅值和相位進(jìn)行正交分解得到。數(shù)字相敏檢波算法就是利用實(shí)部和虛部計(jì)算出幅值和相位的。
圖1 阻抗分解示意
復(fù)阻抗的實(shí)部是電阻分量,虛部是電抗分量,通過(guò)實(shí)部和虛部就可以推斷出阻抗的變化情況。感應(yīng)線圈的阻抗受多種因素影響,利用控制變量法可對(duì)各因素進(jìn)行分析。
對(duì)Ui90y和Uiy各進(jìn)行平方后求平方根得Uy。
(8)
相位θ可以通過(guò)反正切函數(shù)求得。
(9)
坐標(biāo)旋轉(zhuǎn)數(shù)字計(jì)算機(jī)算法(CORDIC)是針對(duì)FPGA在數(shù)字信號(hào)處理應(yīng)用中計(jì)算三角函數(shù)相關(guān)的算法。FPGA利用坐標(biāo)旋轉(zhuǎn)數(shù)字計(jì)算機(jī)算法(CORDIC)可以計(jì)算均方根和反正切。
CORDIC算法的向量幅度計(jì)算應(yīng)用了QR算法,要求輸入的向量進(jìn)行吉文斯旋轉(zhuǎn),初始向量(x,y)經(jīng)過(guò)n次旋轉(zhuǎn)后得到向量(xn,yn)的期望如下
(10)
yn→0
(11)
式中:Kn的值受迭代次數(shù)影響,迭代次數(shù)會(huì)影響CORDIC算法的精度。
x,y的迭代式為
(12)
xi+1=xi-di(2-iyi)
(13)
yi+1=yi+di(2-ixi)
(14)
(15)
CORDIC算法計(jì)算相角的公式為
zi+1=zi-diarctan(2-i)
(16)
(17)
式中:Kn為伸縮因子;i,n均表示旋轉(zhuǎn)次數(shù);di用以表示不同的旋轉(zhuǎn)方向;di=±1;zi為相位累加器。
該系統(tǒng)AD模數(shù)轉(zhuǎn)換芯片的數(shù)據(jù)位寬達(dá)14位,在此基礎(chǔ)上進(jìn)行算法處理,數(shù)據(jù)位數(shù)只會(huì)大于14位,因此算法精度不會(huì)影響系統(tǒng)的算法精度。
AD 9240芯片輸出數(shù)字量為14位,采樣率為10 MSPS,為單電源模擬電壓供電,AVDD引腳采用5 V電源供電,數(shù)字引腳DVDD為3.3 V電壓供電,其中AD 9240的輸入范圍是2 V的基準(zhǔn)電壓,通過(guò)將SENSE引腳與REFCOM引腳連接在一起,VREF引腳就能提供2.5 V的基準(zhǔn)電壓。由于AD 9240只能采集正電壓信號(hào),通過(guò)將VREF引腳連接到VINA和VINB引腳,可以得到一個(gè)2.5 V的偏置電壓,這樣采集信號(hào)為-2.5 V~2.5 V。
AD 9240需要一個(gè)CLOCK時(shí)鐘信號(hào),這個(gè)時(shí)鐘的最小周期為100 ns,在FPGA部分提供時(shí)鐘信號(hào)后,AD 9240可以在數(shù)字端輸出14個(gè)數(shù)字信號(hào),幅值由DVDD引腳的電源輸入確定,用AD 620作為信號(hào)采集的儀表運(yùn)放,提供高共模抑制比并將模擬信號(hào)傳輸給AD 9240。
受激勵(lì)頻率影響,線圈的感抗會(huì)發(fā)生變化,無(wú)法確保AD 9240芯片接收到的信號(hào)一直處于-2.5 V~2.5 V之間,因此選用THS7001作為程控增益運(yùn)放,其具有-22 dB~20 dB的增益范圍。AD 9767輸入為14位數(shù)字信號(hào),采樣率為125 MSPS,具有2通道高速數(shù)模轉(zhuǎn)換芯片,其中AVDD引腳用5 V電源供電,DVDD的引腳的供電需要根據(jù)數(shù)字信號(hào)的幅值進(jìn)行確定。由于FPGA部分的LVCMOS33或LVTTL最大能提供的電壓只有3.3 V,而數(shù)字信號(hào)的輸出高電平與DVDD引腳的電壓一致,因此DVDD的電源輸入不應(yīng)選用3.3 V以上的電源。
AD 9767輸出引腳接電阻再接地,將電流轉(zhuǎn)化為電壓后接AD 8066運(yùn)放,可以將差分電壓信號(hào)變?yōu)閱味穗妷盒盘?hào),以給激勵(lì)線圈提供激勵(lì)信號(hào),AD 9767需提供一個(gè)時(shí)鐘信號(hào)和一個(gè)輸入寫(xiě)信號(hào),寫(xiě)信號(hào)可以提前于時(shí)鐘信號(hào)或與時(shí)鐘信號(hào)一致,用于觸發(fā)AD 9767的轉(zhuǎn)換過(guò)程。
由于用到了高速率并行的AD和DA轉(zhuǎn)換,所以極大地增加了所用的Zynq核心板的引腳數(shù)量。多引腳連接件如圖2所示,由于多引腳連接件的存在,高頻信號(hào)的走線距離變長(zhǎng),且信號(hào)大多平行。這會(huì)干擾高頻信號(hào)引入串?dāng)_,因此為提高系統(tǒng)的穩(wěn)定性,選用74ALVC162244緩沖器,74ALVC162244緩沖器有16個(gè)通道,當(dāng)輸入電壓為3.3 V時(shí),緩沖器可以將輸入高電平提升到約3.3 V,相當(dāng)于提高了信號(hào)的負(fù)載能力,加強(qiáng)了系統(tǒng)抵抗電磁干擾的能力,增加了系統(tǒng)的穩(wěn)定性。
圖2 多引腳連接件
采用Altium Designer軟件設(shè)計(jì)硬件的原理圖和PCB圖,考慮到布線和噪聲的影響以及成本控制,PCB設(shè)計(jì)采用四層布局。
利用直接數(shù)字式頻率合成器可以將所需要的數(shù)字量存儲(chǔ)到ROM(只讀存儲(chǔ)器)中,ROM再將存儲(chǔ)的數(shù)字量發(fā)送到DA中,完成波形的輸出。DDS程序框圖如圖3所示。DDS輸出波形如圖4所示。
圖3 DDS程序框圖
圖4 DDS輸出波形
仿真驗(yàn)證數(shù)字相敏檢波算法的正確性,使得AD輸入和DA輸出一致,計(jì)算相角和幅值。
AD 9767是14位輸入,因此輸出也設(shè)定為14位,將無(wú)符號(hào)14位數(shù)字量轉(zhuǎn)化為有符號(hào)14位數(shù)字量得到信號(hào)da_data,設(shè)采集信號(hào)ad_data的數(shù)字量幅值和相位與da_data的一致,經(jīng)計(jì)算得阻抗實(shí)部為33554432。由于移位會(huì)導(dǎo)致精度下降,因此得到的實(shí)際阻抗實(shí)部為33540267。
用實(shí)部和虛部賦值到CORDIC算法中,得到相位的計(jì)算量約為0 rad,試驗(yàn)結(jié)果符合驗(yàn)證規(guī)律。
利用所構(gòu)建的渦流無(wú)損檢測(cè)系統(tǒng),用信號(hào)發(fā)生器作為標(biāo)準(zhǔn)信號(hào)源代替感應(yīng)線圈的感應(yīng)信號(hào),檢驗(yàn)設(shè)計(jì)的硬件系統(tǒng)輸出激勵(lì)和接收感應(yīng)信號(hào)的能力以及數(shù)字相敏檢波算法的正確性。整個(gè)系統(tǒng)包括信號(hào)發(fā)生器、電源、示波器、Zynq核心板、采集系統(tǒng)板等模塊。檢測(cè)系統(tǒng)試驗(yàn)平臺(tái)如圖5所示。利用邏輯分析儀抓取信號(hào)發(fā)生器與DA輸出信號(hào)進(jìn)行相位計(jì)算并與數(shù)值相敏檢波算法計(jì)算的相位進(jìn)行對(duì)照。
圖5 檢測(cè)系統(tǒng)試驗(yàn)平臺(tái)
AD 9767輸出的信號(hào)周期接近120 μs,Zynq-7020中的FPGA部分設(shè)定了一個(gè)計(jì)數(shù)器(數(shù)值為6)用于降低時(shí)鐘頻率,而系統(tǒng)時(shí)鐘頻率為50 MHz,一個(gè)頻率需要輸出1 024個(gè)點(diǎn),因此波形驗(yàn)證無(wú)誤。根據(jù)使能開(kāi)關(guān)的信號(hào)就可自由選取激勵(lì)通道。
通過(guò)信號(hào)發(fā)生器給任意一個(gè)通道施加激勵(lì),選定接收通道后,用邏輯分析儀抓取AD采樣信號(hào)和DA激勵(lì)信號(hào),計(jì)算出信號(hào)的相位差,與算法實(shí)際輸出的相位差進(jìn)行比較。
經(jīng)過(guò)數(shù)字相敏檢波算法處理后得到的相位為50°,即采集的輸入信號(hào)與DA激勵(lì)輸出的信號(hào)相位差約為50°。
相位可以描述實(shí)部和虛部之間的比例,相位的正確性即驗(yàn)證了實(shí)部和虛部間的比例計(jì)算是正確的,即在金屬表面缺陷試驗(yàn)中,該系統(tǒng)可以正確表現(xiàn)感應(yīng)信號(hào)的實(shí)部或虛部的變化規(guī)律。
介紹了基于Zynq的多通道渦流無(wú)損檢測(cè)系統(tǒng)的設(shè)計(jì)過(guò)程,利用Zynq的FPGA部分進(jìn)行算法設(shè)計(jì),捕捉渦流無(wú)損檢測(cè)系統(tǒng)板的通道數(shù)據(jù)。將試驗(yàn)結(jié)果與邏輯分析儀得到的圖形進(jìn)行對(duì)照,發(fā)現(xiàn)數(shù)值相敏檢波算法計(jì)算的相位值是正確的。
設(shè)計(jì)的多通道渦流無(wú)損檢測(cè)系統(tǒng)可以對(duì)激勵(lì)線圈進(jìn)行信號(hào)激勵(lì),并采集感應(yīng)線圈的微小信號(hào)進(jìn)行放大,激勵(lì)通道和感應(yīng)通道可以更改,而采集到的線圈電壓被分解成幅值、相位、實(shí)部和虛部值,通過(guò)實(shí)部或虛部的變化可以對(duì)線圈復(fù)阻抗的變化予以量化顯示。