龍永良,孫洋,楊那
(成都信息工程大學(xué) 電子工程學(xué)院,成都 610225)
?
基于FPGA的固體測速系統(tǒng)的設(shè)計與應(yīng)用
龍永良,孫洋,楊那
(成都信息工程大學(xué) 電子工程學(xué)院,成都 610225)
針對目前工業(yè)生產(chǎn)過程中的固體流速測量問題,提出了一種基于FPGA的固體流速測量系統(tǒng)。該系統(tǒng)以相關(guān)測速算法為理論基礎(chǔ),通過發(fā)射載波信號到測試管道,并采集管道內(nèi)兩個不同位置的流速信號,對這兩路信號進(jìn)互相關(guān)運(yùn)算,尋找峰值點(diǎn),從而間接求得固體流速。該系統(tǒng)包括一套基于FPGA的硬件系統(tǒng)和一套基于C++的上位機(jī)軟件系統(tǒng)。經(jīng)過測試驗(yàn)證,本系統(tǒng)實(shí)現(xiàn)了固體流速的精確測量,性能穩(wěn)定,達(dá)到了設(shè)計目標(biāo)要求。
固體流速;載波信號;互相關(guān)運(yùn)算;FPGA
近些年來,固體物料輸送的自動化控制技術(shù)在工業(yè)生產(chǎn)中的應(yīng)用越來越廣泛,固體物料流速的檢測和計量在工業(yè)過程中的地位也越來越重要。但是,固體流速一直是工業(yè)過程中比較難測的參數(shù)。相對于成熟的流體的流速檢測技術(shù),固體流速流量檢測方法的研究起步晚,技術(shù)不夠成熟[1],目前已有的測量方法存在操作不方便、制作成本高、實(shí)時測量精度難以評價等問題[2]。因此本文根據(jù)相關(guān)測速原理,利用FPGA平臺開發(fā)了一款新型的固體測速系統(tǒng),該系統(tǒng)可以測量固體物料的速度,測量結(jié)果準(zhǔn)確可靠。
本文的固體速度測量方法來源于相關(guān)測速原理[3]。固體顆粒在流動過程會自然產(chǎn)生流動噪聲信號,對固定不變的兩個位置的測試點(diǎn)的流動噪聲信號進(jìn)行采集,采集到的信號則具有相關(guān)的性質(zhì)。利用這一特性,可以將測量固體的速度問題轉(zhuǎn)化為測量固體通過兩個位置的時間間隔問題。
相關(guān)法測量固體速度系統(tǒng)構(gòu)成如圖1所示。
圖1 相關(guān)流速測量系統(tǒng)
(1)
圖2 固體顆粒流動噪聲信號及互相關(guān)函數(shù)圖形
(2)
相關(guān)法測量固體速度是基于檢測兩路信號相似性與信號的幅度值無關(guān),這意味著互相關(guān)法具有以下這些優(yōu)點(diǎn)[5-6]:①采用非接觸測量,降低了設(shè)備損耗,增加了傳感器使用壽命;②測量精度高,量程寬;③與測量對象本身的化學(xué)和物理性質(zhì)無關(guān),固體液體都可以測量;④適用性強(qiáng),與測量環(huán)境變化無關(guān),如溫濕度變化。
正是因?yàn)橄嚓P(guān)測速法有諸多的優(yōu)點(diǎn),所以相比較其他速度測量方法(如光學(xué)法、聲學(xué)法、電磁法等),相關(guān)測速法在測量管道流體流速方面應(yīng)用更廣泛。
本系統(tǒng)依據(jù)相關(guān)測速法原理,在原來互相關(guān)測速法基礎(chǔ)上做了改進(jìn),增加了信號發(fā)射端。這是因?yàn)閭鹘y(tǒng)的相關(guān)測速方法,信號接收端采集的是物料的流動噪聲信號,此信號幅值比較小,通常是高頻信號,且具有很大的隨機(jī)性,直接采集流動噪聲信號作互相關(guān)運(yùn)算,不容易找到正確的峰值點(diǎn),很難正確地求出物料的速度。本系統(tǒng)采用的方案是由信號發(fā)射端發(fā)射大功率低頻載波信號,兩個信號接收端接收攜帶流動噪聲的載波信號,并通過低通濾波器把高頻的流動噪聲信號濾掉。
本方案的系統(tǒng)結(jié)構(gòu)框圖如圖3所示。
圖3 系統(tǒng)結(jié)構(gòu)框圖
其中,A端為信號發(fā)射端,向測試管道發(fā)射載波信號,B、C端為接收端,接收帶有流體信息的回波信號,并送入預(yù)處理電路處理,然后FPGA控制A/D芯片對處理后的兩路信號進(jìn)行采集,再經(jīng)過FIR低通濾波器,濾掉高頻噪聲信號,從而得到兩路良好的相關(guān)信號。對這兩路信號進(jìn)行互相關(guān)運(yùn)算,從而求得此時的流速。
(3)
結(jié)合性能與成本的考慮,主控芯片選擇Xilinx公司的Spattan-6系列的XC6SLX100芯片。該芯片配置有15 822個Slice,930 Kb容量的分布式RAM,182個DSP48E Slice以及482個可用I/O口[8],能夠滿足本系統(tǒng)的資源消耗。
本系統(tǒng)的工作原理是:中心控制器FPGA產(chǎn)生一定頻率的載波信號,經(jīng)波形變化后發(fā)射到測量管道中,接收端采集到的兩路相關(guān)信號經(jīng)前端放大處理、A/D采集后送入中心控制器處理,經(jīng)過互相關(guān)運(yùn)算后即可獲得固體顆粒速度數(shù)據(jù)。如圖4所示,由上圖可以看出本系統(tǒng)主要由信號發(fā)射模塊、信號采集模塊、USB通信模塊、溫度檢測模塊和EEPROM存儲模塊構(gòu)成。
圖4 硬件系統(tǒng)框圖
信號發(fā)射模塊實(shí)現(xiàn)的功能是產(chǎn)生一定形式的載波信號發(fā)送至測量管道。由相關(guān)法測速原理可知,載波信號經(jīng)過測量管道后會帶有物料通過的信息。
信號采集模塊實(shí)現(xiàn)的功能是將接收電極接收到的兩路相關(guān)信號同時進(jìn)行放大濾波,然后同時輸入到A/D芯片進(jìn)行A/D轉(zhuǎn)換,最后輸入到FPGA進(jìn)行處理。本系統(tǒng)采用的A/D轉(zhuǎn)換芯片是ADC122S101。ADC122S101是一款低功耗,雙通道輸入的模擬—數(shù)字轉(zhuǎn)換器,它與控制器之間采用SPI方式進(jìn)行通信,它的輸出數(shù)據(jù)位為12位。與傳統(tǒng)單一采樣率的A/D器件不同,ADC122S101的采樣率可以從500 Ksps~1 Msps,可以滿足本產(chǎn)品的采樣需求。
USB通信模塊實(shí)現(xiàn)的功能是完成硬件系統(tǒng)和上位機(jī)相互通信。USB接口的優(yōu)點(diǎn)是可以實(shí)現(xiàn)即插即用,可以隨時利用電腦進(jìn)行參數(shù)的配置和系統(tǒng)的調(diào)試[9]。USB通信模塊部分選用的芯片是FT232BM。FT232BM是FTDI公司開發(fā)的一款數(shù)據(jù)轉(zhuǎn)換芯片,可將USB數(shù)據(jù)轉(zhuǎn)換成串口數(shù)據(jù)。
溫度檢測模塊負(fù)責(zé)對相關(guān)器板載溫度進(jìn)行實(shí)時采集,以便實(shí)時了解管道環(huán)境溫度情況。溫度檢測裝置采用的是一塊溫度傳感器DS1631,測量范圍為0~70 ℃,測量精度為±0.5 ℃。中心控制器FPGA可通過I2C協(xié)議讀取DS1631測量的溫度數(shù)據(jù)。
EEPROM存儲模塊負(fù)責(zé)對配置參數(shù)存儲。硬件電路需要配置許多參數(shù),主要參數(shù)包括兩相鄰電極之間的間距、發(fā)射信號頻率、信號的數(shù)據(jù)率、硬件系統(tǒng)地址等參數(shù)。由于FPGA斷電重啟后會丟失系統(tǒng)參數(shù),EEPROM可以使得存儲的參數(shù)掉電不丟失。本系統(tǒng)選用的存儲芯片是Atmel公司的AT24C04,存儲容量最大為4 KB,F(xiàn)PGA可以通過I2C協(xié)議讀取和存儲數(shù)據(jù),芯片內(nèi)的資料可以在斷電的情況下保存10年。
本系統(tǒng)FPGA程序設(shè)計主要實(shí)現(xiàn)以下功能:對固體顆粒流速數(shù)據(jù)采集與計算;完成溫度信息的采集;與上位機(jī)系統(tǒng)進(jìn)行數(shù)據(jù)通信;將系統(tǒng)相關(guān)參數(shù)存儲到EEPROM中。
4.1 FPGA互相關(guān)運(yùn)算程序設(shè)計
FPGA互相關(guān)運(yùn)算程序是整個系統(tǒng)的核心,這部分程序的流程圖如圖5所示。
圖5 FPGA互相關(guān)運(yùn)算 程序流程圖
A/D采集完后的兩路數(shù)據(jù),經(jīng)過解調(diào)后送到FIR低通濾波器中進(jìn)行濾波處理,并抽取到合適的數(shù)據(jù)速率。然后,兩路數(shù)據(jù)存儲到RAM中,等待一個FFT周期(4 096點(diǎn))數(shù)據(jù)存儲完成后,便進(jìn)行FFT變換。FFT變換完成后,將其中一路FFT結(jié)果取共軛,并與另一路相乘,將相乘后的結(jié)果進(jìn)行IFFT變換,即完成互相關(guān)運(yùn)算。最后通過一一比較的方法求出最大值和最大值點(diǎn)對應(yīng)的坐標(biāo)(取最大值點(diǎn)的時間τ0),將該坐標(biāo)值點(diǎn)送入速度計算程序求出對應(yīng)的速度。
4.2 FPGA硬件系統(tǒng)與上位機(jī)通信程序
上位機(jī)軟件實(shí)現(xiàn)的功能主要是:與硬件系統(tǒng)進(jìn)行串口通信;給硬件系統(tǒng)發(fā)送命令或參數(shù);接收硬件系統(tǒng)發(fā)送的測量值,并實(shí)時顯示測量值波形。上位機(jī)程序采用C/C++語言編寫,軟件界面采用MFC編寫。
上位機(jī)與硬件系統(tǒng)之間通信步驟如下:
① 上位機(jī)直接將通信數(shù)據(jù)發(fā)送給硬件系統(tǒng)。
② 硬件系統(tǒng)收到數(shù)據(jù)后,進(jìn)行數(shù)據(jù)解析。
③ 硬件系統(tǒng)根據(jù)解析數(shù)據(jù)進(jìn)行相應(yīng)操作。
④ 硬件系統(tǒng)發(fā)送回讀數(shù)據(jù)給上位機(jī)以確保通信成功。
硬件系統(tǒng)與上位機(jī)通信的程序設(shè)計流程如圖6所示。上位機(jī)在與硬件系統(tǒng)通信時是作為通信的發(fā)起者,硬件系統(tǒng)是通信的應(yīng)答者。硬件系統(tǒng)接收到串行數(shù)據(jù)幀并根據(jù)相應(yīng)的命令執(zhí)行對應(yīng)的操作,當(dāng)數(shù)據(jù)接收模塊接收到一幀數(shù)據(jù)時,首先要進(jìn)行CRC效驗(yàn),如果CRC效驗(yàn)正確執(zhí)行下一步操作數(shù)據(jù)解析,否則把這一幀數(shù)據(jù)丟棄。進(jìn)行數(shù)據(jù)解析時,根據(jù)命令判斷數(shù)據(jù)是讀數(shù)據(jù)還是寫數(shù)據(jù),如果是讀數(shù)據(jù),則回復(fù)相應(yīng)的數(shù)據(jù)幀到數(shù)據(jù)發(fā)送模塊,否則判斷是否是配置數(shù)據(jù),如果是配置數(shù)據(jù),則進(jìn)行參數(shù)配置,否則丟棄這幀數(shù)據(jù)。
圖6 硬件系統(tǒng)與上位機(jī)通信FPGA設(shè)計流程圖
為了讓本系統(tǒng)能夠應(yīng)用于實(shí)際工業(yè)生成中,本文針對測量數(shù)據(jù)的準(zhǔn)確性和穩(wěn)定性進(jìn)行實(shí)現(xiàn)測試。如圖7所示,首先搭建測試平臺,將測試管道、硬件系統(tǒng)板和計算機(jī)之間用相應(yīng)的連接線連接好、上電,讓測速系統(tǒng)開始工作。然后持續(xù)下料(測試中選取的物料為大米),通過上位機(jī)觀察測得的速度并進(jìn)行分析。
圖7 相關(guān)器與上位機(jī)和邏輯器通信FPGA設(shè)計流程圖
上位機(jī)顯示界面如圖8所示。
圖8 相關(guān)器上位機(jī)軟件數(shù)據(jù)界面
圖8中框內(nèi)顯示的是大米實(shí)時速度值,可以看出此時大米速度值為3.83 m/s。已知測量管道豎直放置,下料口和傳感器之間的距離h為80 cm,而兩個傳感器之間的距離L為8 mm(相對于h,L數(shù)值較小可忽略)。自由落體公式如下:
(4)
(5)
可以計算出理想情況下,此時的流速ν為4m/s,考慮到空氣阻力因素,可以判斷測速儀測出的結(jié)果是正確的。
實(shí)驗(yàn)過程中也可以通過上位機(jī)軟件波形窗口觀測速度波形圖,如圖9所示。上半部分框內(nèi)顯示的波形為大米實(shí)時速度值波形。
圖9 單通道上位機(jī)速度波形界面
可以看出,此時物料的流速穩(wěn)定在3.60~3.90 m/s。在MATLAB中讀取速度數(shù)據(jù)文檔,并對速度數(shù)據(jù)
Design and Application of Solid Velocity Measurement System Based on FPGA
Long Yongliang,Sun Yang,Yang Na
(Electronic Engineering Institute,Chengdu University of Information Technology,Chengdu 610225,China)
Aiming at the problem of the solid velocity measurement in industrial production process,a new method of measuring system based on FPGA is proposed in the paper.The system takes the related speed algorithm as the theory,it transmits the carrier signal to the test pipeline,and collects the velocity signals of two different locations in the pipeline.The system carries out the cross-correlation operation to the two signals,and then finds the peak.The solid velocity is obtained indirectly in this way.The system includes the hardware system based on FPGA and the software system based on C++.The experiment results show that the system realizes the accurate measurement of the solid flow rate,and the working performance of the system is stable and effective just as expected.
solid flow rate;carrier signal;cross-correlation;FPGA
TH815
A