宋卓達(dá), 王志乾, 李建榮, 沈鋮武, 劉紹錦
(1.中國(guó)科學(xué)院 長(zhǎng)春光學(xué)精密機(jī)械與物理研究所,吉林 長(zhǎng)春130033;2.中國(guó)科學(xué)院大學(xué),北京100049)
在高速旋轉(zhuǎn)部件的性能測(cè)試、強(qiáng)度及疲勞試驗(yàn)過(guò)程中,通常采用應(yīng)變測(cè)量技術(shù),實(shí)時(shí)采集旋轉(zhuǎn)部件載荷的應(yīng)變信號(hào),進(jìn)行分析和處理,為旋轉(zhuǎn)部件的結(jié)構(gòu)設(shè)計(jì)提供理論分析數(shù)據(jù)[1]。在應(yīng)變信號(hào)采集的過(guò)程中,應(yīng)變電橋的輸出電壓信號(hào)的變化十分微小,達(dá)到μV級(jí)。為獲得高質(zhì)量的低頻電壓信號(hào),本文采用一種基于FPGA的FIR數(shù)字濾波器進(jìn)行信號(hào)處理,在高轉(zhuǎn)速、氣動(dòng)性復(fù)雜、震動(dòng)環(huán)境惡劣的情況下,提高所采集應(yīng)變信號(hào)的精度。采用軟硬件協(xié)同設(shè)計(jì)技術(shù),利用FPGA定制IP,每一個(gè)模塊都能單獨(dú)完成,又能輕松整合在一起形成一個(gè)系統(tǒng)[2]。
FIR濾波器的實(shí)質(zhì)是將輸入的連續(xù)時(shí)間信號(hào)按照設(shè)定的算法轉(zhuǎn)換成離散時(shí)間信號(hào)的濾波裝置[3],而FPGA內(nèi)含豐富的IP核和LUT表結(jié)構(gòu),能夠完整地將FIR數(shù)字濾波器移植到FPGA上,并且可以根據(jù)實(shí)際需求在線修改濾波器的參數(shù),大幅縮減了產(chǎn)品的設(shè)計(jì)周期,并增強(qiáng)應(yīng)變信號(hào)采集系統(tǒng)本身的集成度和靈活性。
利用可編程邏輯器件和EDA技術(shù)實(shí)現(xiàn)FIR數(shù)字濾波器是現(xiàn)代嵌入式系統(tǒng)信號(hào)處理環(huán)節(jié)普遍采用的手段[4],隨著FPGA邏輯單元數(shù)量和集成度不斷提高,可在 FPGA 上實(shí)現(xiàn)FIR數(shù)字濾波器的算法復(fù)雜程度、量化系數(shù)位寬、階數(shù)等也隨之提高,具有可觀的發(fā)展前景。
應(yīng)變信號(hào)采集系統(tǒng)的總體框架如圖1所示,整個(gè)系統(tǒng)分為模擬部分和數(shù)字部分。
圖1 應(yīng)變信號(hào)采集系統(tǒng)流程框圖Fig.1 Block diagram of strain signal acquisition system
其中模擬部分有4個(gè)應(yīng)變信號(hào)采集通道,每個(gè)采集通道包含對(duì)應(yīng)變電橋的模擬信號(hào)進(jìn)行預(yù)放大、調(diào)理和A/D采集,數(shù)字信號(hào)部分包括對(duì)模擬板前端電壓信號(hào)偏移量修正和溫度補(bǔ)償控制、程控自動(dòng)增益、A/D采集的讀寫(xiě)控制和接收經(jīng)過(guò)A/D采集后的信號(hào),并對(duì)其進(jìn)行緩存和處理[5]。最后將信號(hào)通過(guò)UART串行總線傳輸至PC端顯示[6]。
FIR數(shù)字濾波器為單位脈沖響應(yīng)有限長(zhǎng)序列[7],是非遞歸性線性時(shí)不變因果系統(tǒng),對(duì)于N階FIR濾波器輸入時(shí)間序列x(n)的輸出表達(dá)式為:
(1)
系統(tǒng)傳遞函數(shù)可表示為:
(2)
式中:h(n)為濾波器第級(jí)n抽頭系數(shù),x(n-i)為延時(shí)i個(gè)抽頭輸入。
FIR濾波器按構(gòu)成形式主要有直接型、級(jí)聯(lián)型、線性相位FIR濾波器等[8]。其中直接型結(jié)構(gòu)如圖2所示,該結(jié)構(gòu)需要N個(gè)乘法器,每次采樣y(n)都需要進(jìn)行n次乘法和n-1次加法實(shí)現(xiàn)乘累加之和[9]。
圖2 直接型FIR濾波器網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Network structure of direct FIR filter
對(duì)于線性相位FIR濾波器,其單位響應(yīng)是對(duì)稱或反對(duì)稱的,即h(n) = ±h(N-1-n),利用其對(duì)稱性可以簡(jiǎn)化網(wǎng)絡(luò)結(jié)構(gòu),當(dāng)h(n)為偶對(duì)稱且N為偶數(shù)時(shí):
(3)
其線性網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示,僅需要N/2個(gè)乘法器。FIR濾波器實(shí)際上是一個(gè)分節(jié)的延時(shí)線,把每一節(jié)的輸出加權(quán)累加得到濾波器的輸出[10]。本設(shè)計(jì)采用線性相位FIR數(shù)字濾波器。
圖3 FIR濾波器線性相位網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Linear phase network structure of FIR filter
FIR數(shù)字濾波器設(shè)計(jì)流程如圖4所示,整個(gè)FIR數(shù)字濾波器的設(shè)計(jì)可以分為濾波器系數(shù)設(shè)計(jì)和濾波器在FPGA上實(shí)現(xiàn)兩個(gè)部分。利用Matlab軟件設(shè)計(jì)出FIR數(shù)字濾波器各級(jí)抽頭系數(shù),并將FIR數(shù)字濾波器的功能移植到FPGA上。
圖4 FIR濾波器設(shè)計(jì)流程圖Fig.4 Flow chart of FIR filter design
通過(guò)使用Matalb中FDA Tool工具箱設(shè)計(jì)出一個(gè)15階低通線性相位FIR數(shù)字濾波器,其采樣頻率為20 kHz,截止頻率為3 kHz,長(zhǎng)度為16位,并采用布萊克曼窗實(shí)現(xiàn),將濾波器浮點(diǎn)系數(shù)量化為12位。運(yùn)行所編輯的濾波器,并將量化后的濾波器系數(shù)寫(xiě)入FIRCOE.TXT文件中。濾波器設(shè)計(jì)界面如圖5所示。
圖5 FDAtool濾波器設(shè)計(jì)界面Fig.5 Design interface of FDATool filter
將Simulink中正弦波信號(hào)產(chǎn)生模塊sine wave、高斯白噪聲模塊AWGN通過(guò)多信號(hào)疊加模塊add生成一個(gè)采樣頻率為20 kHz的信號(hào)干擾源,并生成12位量化系數(shù),再與2 kHz和8 kHz的正弦波信號(hào)合成作為FPGA的輸入信號(hào)。信號(hào)發(fā)生模塊如圖6所示。
圖6 合成信號(hào)發(fā)生模塊Fig.6 Schematic diagram of synthetic signal generating module
進(jìn)入QuartusⅡ IP核設(shè)置界面,設(shè)計(jì)一個(gè)15階低通線性濾波器,將4.2中的FIRCOE系數(shù)文件導(dǎo)入到Coefficient set中[11],配置好濾波器各項(xiàng)參數(shù),生成FIR數(shù)字濾波器模塊,并將其實(shí)例化引用。數(shù)字濾波器RTL級(jí)原理如圖7所示,其中ast _sink_ data[11..0]和ast_ source _data[25..0]分別為信號(hào)輸入端口和數(shù)據(jù)輸出端口。整個(gè)模塊只占用2 199個(gè)邏輯元,占用率不到10%。
圖7 數(shù)字濾波器RTL級(jí)原理圖Fig.7 RTL level schematic diagram of digital filter
搭建FPGA與Simulink聯(lián)合實(shí)時(shí)環(huán)路平臺(tái),在Simulink創(chuàng)建測(cè)試模塊,通過(guò)測(cè)試模塊產(chǎn)生信號(hào),再傳送到FPGA,F(xiàn)PGA將信號(hào)處理后返回Simulink顯示[12]。首先在Simulink中創(chuàng)建用戶板卡,配制板卡上FPGA芯片信息,本設(shè)計(jì)FPGA采用的是CycloneⅣ系列EP4CE6E22C8N。然后采用JTAG連接方式,設(shè)置JTAG接口類型、時(shí)鐘信號(hào)頻率、引腳號(hào)、時(shí)鐘類型、復(fù)位信號(hào)引腳、復(fù)位電平等信息,并將配置的信息保存在logic_board.xml文件中。創(chuàng)建Simulink模型,將配置好的logic board.xml文件導(dǎo)入,加載RTL文件即Verilog代碼文件,并將其設(shè)置為頂層文件,自動(dòng)配置IO口,將數(shù)據(jù)傳送到Simulink中。仿真結(jié)果如圖8、圖9所示。
圖8 合成信號(hào)濾波前(a)后(b)時(shí)域波形圖Fig.8 Time domain waveform before (a) and after (b) filtering of synthetic signal
(a)濾波前合成信號(hào)頻域波形(a) Frequency domain waveform of synthesized signal before filtering
(b)濾波后合成信號(hào)頻域波形(b) Frequency domain waveform of filtered synthetic signal圖9 合成信號(hào)濾波前后頻域波形圖Fig.9 Frequency domain waveform before and after filtering of synthetic signal
由圖8、圖9可知,濾波后的合成信號(hào)在時(shí)域和頻域上趨于緩和,毛刺噪聲已經(jīng)濾除,并且同時(shí)濾除了8 kHz高頻信號(hào)分量,濾波后的信號(hào)已形成規(guī)則平滑的頻率為2 kHz的單頻正弦信號(hào),因此,F(xiàn)IR線性相位低通濾波功能在FPGA上已經(jīng)實(shí)現(xiàn)。
將應(yīng)變信號(hào)采集系統(tǒng)的4個(gè)應(yīng)變采集通道分別對(duì)高速旋轉(zhuǎn)部件的4個(gè)點(diǎn)進(jìn)行應(yīng)變測(cè)量,并且通過(guò)串口將FIR數(shù)字濾波前后量化結(jié)果的文本文件導(dǎo)入Matlab中,進(jìn)行數(shù)據(jù)處理,得到FIR數(shù)字濾波前后的均方差,如表1所示。
表1 FIR數(shù)字濾波前后均方差Tab.1 Mean square deviation before and after FIR digital filtering
由表1FIR數(shù)字濾波前后量化信號(hào)均方差的對(duì)比可知,經(jīng)過(guò)FIR數(shù)字濾波器后,信號(hào)的均方差大幅度下降,4個(gè)通道的采集信號(hào)均方差平均下降28.5%,具有良好的濾波效果。
為了能夠?qū)?個(gè)應(yīng)變采集通道中的最終采樣結(jié)果通過(guò)串口在PC端實(shí)時(shí)顯示,使用Matlab中GUI工具箱設(shè)計(jì)出顯示界面,并且通過(guò)式(4)將采樣結(jié)果轉(zhuǎn)化為對(duì)應(yīng)的電壓值。
(4)
式中:Vref為ADC參考電壓、GND為輸出結(jié)果為0時(shí)的最低電壓,ADCReselt為采樣結(jié)果,N為ADC位數(shù)。同時(shí)根據(jù)式(5),在全橋測(cè)量的情況下將電壓轉(zhuǎn)換成相應(yīng)的應(yīng)變量。
Uo=EKε
(5)
式中:E為電橋電壓,K為應(yīng)變靈敏系數(shù),ε為應(yīng)變量。顯示界面如圖10所示。
圖10 界面顯示Fig.10 Interface display
本文針對(duì)應(yīng)變信號(hào)采集系統(tǒng)提出一種基于FPGA的FIR線性相位低通數(shù)字濾波器方案,構(gòu)建了數(shù)字濾波器設(shè)計(jì)與仿真體系,最終在FPGA上實(shí)現(xiàn),而且仿真系統(tǒng)可以任意改變合成信號(hào)的類型、數(shù)字濾波器的種類和各項(xiàng)參數(shù),相比傳統(tǒng)的通過(guò)編寫(xiě)testbentch腳本仿真文件導(dǎo)入Modelsim來(lái)實(shí)現(xiàn)仿真結(jié)果,簡(jiǎn)化了復(fù)雜的仿真步驟,不需要在FPGA上增添信號(hào)發(fā)生模塊,同時(shí)保證了實(shí)驗(yàn)可靠性。通過(guò)高速旋轉(zhuǎn)部件的多次應(yīng)變測(cè)量,結(jié)果表明數(shù)字濾波前后量化信號(hào)的均方差下降28.5%,具有良好的濾波效果。增加顯示界面,便于觀察采樣結(jié)果的動(dòng)態(tài)變化。
對(duì)于接觸式應(yīng)變信號(hào)采集系統(tǒng)而言,將整個(gè)FIR數(shù)字濾波器的功能移植在FPGA上,增強(qiáng)功能的同時(shí),系統(tǒng)的體積、質(zhì)量、電路復(fù)雜程度均不受影響,從而不會(huì)影響直升機(jī)在飛行測(cè)試中旋翼系統(tǒng)的動(dòng)態(tài)平衡。