[導(dǎo)讀] 給出了一種基于頻譜分析信號(hào)處理的渦街流量計(jì)的設(shè)計(jì),分析了采用頻譜分析信號(hào)處理與帶通濾波相結(jié)合的去噪方法。硬件上分析了核心控制器件MSP430F5438、壓電傳感器信號(hào)的放大與低通濾波、多通道的可選帶通濾波器、程控放大及峰值檢測(cè)模塊、信號(hào)的整形輸入,軟件上分析了頻率估算、FFT算法實(shí)現(xiàn)、峰值檢測(cè)與放大、帶通選擇、頻率計(jì)數(shù),最后,在氣體標(biāo)準(zhǔn)裝置上進(jìn)行了檢定驗(yàn)證。結(jié)果表明,該流量計(jì)采用頻譜分析信號(hào)處理和帶通濾波,大大提高了液體流量測(cè)量的精度和抗干擾性。
0 引言
渦街流量計(jì)是基于卡門渦街原理制成的一種流體振蕩性流量計(jì),漩渦頻率信號(hào)容易受到流體流動(dòng)、旋渦分離、機(jī)械振動(dòng)、信號(hào)衰落或間歇、電磁干擾等各種噪聲影響,并且現(xiàn)場(chǎng)條件的不同,噪聲的頻率、幅值及變化規(guī)律也會(huì)隨之而變[1]。
為了解決渦街流量計(jì)的干擾問(wèn)題和提高精度,采用頻譜分析信號(hào)處理與脈沖計(jì)數(shù)相結(jié)合的方法,從軟、硬件兩方面來(lái)考慮,并在鐘罩式氣體檢定裝置上得到了驗(yàn)證[2-3]。
1 硬件設(shè)計(jì)
系統(tǒng)硬件設(shè)計(jì)時(shí)必須綜合考慮低功耗和頻譜分析的性能要求。采用總線供電,支持HART通信,智能流量計(jì)表頭的工作電流從4~20mA的總線上截取,系統(tǒng)工作電流必須小于3.5mA。所選的單片機(jī)要實(shí)現(xiàn)FFT、功率譜的估計(jì),這需要大量的數(shù)據(jù)運(yùn)算,所以單片機(jī)要滿足幾個(gè)基本要求:a)要具有一定的儲(chǔ)存空間,以用于存儲(chǔ)大量的運(yùn)算數(shù)據(jù);b)要有較高的時(shí)鐘頻率,以提高運(yùn)算的實(shí)時(shí)性;c)含有硬件乘法器,以提高運(yùn)算速度。
綜合考慮,單片機(jī)選擇MSP430F5438,主要因?yàn)樗哂幸韵聝?yōu)點(diǎn):a)功耗較低。超低功耗低至:0.1μARAM保持模式、2.5μA實(shí)時(shí)時(shí)鐘模式、165μA/MIPS工作模式、在5μs之內(nèi)快速?gòu)拇龣C(jī)模式喚醒。b)相對(duì)較高的時(shí)鐘頻率。在1.8V-3.6V的工作電壓范圍內(nèi)性能高達(dá)25MIPS。c)儲(chǔ)存空間大。閃存高達(dá)256KB、RAM高達(dá)16KB。d)豐富的外圍設(shè)備。DMA、硬件乘法器、RTC、USCI、12位DAC等,使單片機(jī)的性能更有所提升,滿足系統(tǒng)的需求。
該流量計(jì)硬件上主要由MSP430F5438單片機(jī)、電荷放大器、程控放大器、低通濾波器、電壓跟隨器、帶通濾波器組、多路選擇開(kāi)關(guān)、峰值檢測(cè)電路、脈沖整形電路、溫壓補(bǔ)償模塊等組成,硬件總體框圖如圖1所示。
圖1 系統(tǒng)硬件框圖
硬件上信號(hào)處理模塊主要包括以下幾個(gè)部分:
(1)壓電傳感器信號(hào)的放大、低通濾波
壓電傳感器可等效為一個(gè)與電容器并聯(lián)的電荷源,其輸出為低幅值的小信號(hào),采用一種三運(yùn)放差分電荷放大器將其轉(zhuǎn)換為電壓信號(hào)。在電荷放大器后加上一個(gè)可控的程控放大器,根據(jù)流量信號(hào)的大小自動(dòng)調(diào)節(jié)放大系數(shù),從而提高AD轉(zhuǎn)換的精度。這里采用AD5160BRJ數(shù)字電位器,其串行控制接口與MSP430的SPI接口相連。程控放大器的放大比例由峰值檢測(cè)出來(lái)的信號(hào)幅度與當(dāng)前的放大系數(shù)確定,然后在程控放大器的后級(jí)進(jìn)行低通濾波,濾去渦街信號(hào)中的高頻噪音。
(2)多通道的可選擇帶通濾波
帶通濾波器采用高通濾波器與低通濾波器串聯(lián)的方式構(gòu)成,與多路選擇開(kāi)關(guān)一起就構(gòu)成渦街信號(hào)的濾波環(huán)節(jié)。采用8路選擇器,將信號(hào)頻率分成8個(gè)頻段,每個(gè)頻段之間有疊加,保證信號(hào)的無(wú)縫連接。多路選擇開(kāi)關(guān)采用MC74VHC4051ADR2,由ABC三位組成的二進(jìn)制數(shù)進(jìn)行選擇。
(3)峰值檢測(cè)
為了保證信號(hào)不產(chǎn)生誤觸發(fā)和不觸發(fā)的情況,必須將信號(hào)的幅值控制在一定的范圍內(nèi)。因此需要對(duì)帶通濾波后的信號(hào)幅值進(jìn)行檢測(cè)。
峰值檢測(cè)電路由兩級(jí)運(yùn)算放大器、限流電阻、二極管、MOSFET和充電電容構(gòu)成。
(4)信號(hào)的整形輸入
為了實(shí)現(xiàn)單片機(jī)對(duì)交變的渦街信號(hào)進(jìn)行頻率計(jì)算,要將濾波后的信號(hào)轉(zhuǎn)換成等同頻率的脈沖信號(hào)。采用滯回比較器電路可以方便簡(jiǎn)單的把渦街正弦信號(hào)整形為矩形脈沖波形。出于低功耗的考慮,選擇TI公司的TLV3491。門限電壓分別為1.088V和1.3585V,滯回電壓為0.27V。
此外,硬件設(shè)計(jì)上還有其它電路模塊,包括電源及HART模塊、人機(jī)交互模塊等等,在此不做詳細(xì)分析。
2 軟件設(shè)計(jì)
系統(tǒng)軟件由以下模塊組成:主程序、定時(shí)中斷模塊、初始化模塊、頻率估算模塊、峰值檢測(cè)模塊、程控放大調(diào)整模塊、帶通濾波器選擇模塊,脈沖頻率計(jì)算模塊,流量計(jì)算模塊、人機(jī)接口模塊及HART通信模塊。
系統(tǒng)采用模塊化的運(yùn)行方式,利用定時(shí)器B產(chǎn)生中斷,在中斷中設(shè)置各模塊的標(biāo)志位,程序循環(huán)運(yùn)行時(shí),如果該模塊的標(biāo)志位置1,則運(yùn)行該模塊程序。定時(shí)器B產(chǎn)生系統(tǒng)基準(zhǔn)時(shí)間,每0.1s產(chǎn)生一次中斷。
2.1 渦街頻率估算
數(shù)據(jù)采樣和基于FFT的頻譜分析如下:
系統(tǒng)使用A0模擬通道,作為渦街信號(hào)的采樣通道,采用2.5V的參考電壓。程序中設(shè)置兩個(gè)數(shù)組分別存放FFT運(yùn)算中的實(shí)部和虛部,采樣得到的數(shù)據(jù)由DMA直接存放在兩個(gè)數(shù)組中,因?yàn)椴捎玫氖菃渭?jí)性運(yùn)放,所以信號(hào)要被偏置提高1.235V,使數(shù)據(jù)在0V以上,數(shù)據(jù)處理前要減去2047(1.235V),然后定標(biāo)到13位。值得注意的是,采樣數(shù)據(jù)量的大小與單片機(jī)RAM的大小相關(guān),根據(jù)RAM的16KB大小,選擇采樣的數(shù)據(jù)為512個(gè)。
為提高FFT的運(yùn)算速度,F(xiàn)FT算法用匯編語(yǔ)言編寫。采樣數(shù)據(jù)都是實(shí)數(shù)序列,所以采用實(shí)數(shù)運(yùn)算和原位計(jì)算去完成蝶形運(yùn)算,旋轉(zhuǎn)因子采用了預(yù)先計(jì)算的方法,將計(jì)算好的正弦值、余弦值放在表中,使用時(shí)直接查用。正余弦值在(-1~1)之間,儲(chǔ)存的時(shí)候可先擴(kuò)大14倍,待做乘法運(yùn)算后整體左移,再取高16位。程序采用了13位的數(shù)據(jù)定標(biāo),在每次蝶形運(yùn)算后,需要進(jìn)行判斷是否超過(guò)8192,超出后,對(duì)整級(jí)數(shù)據(jù)進(jìn)行向右移2位。FFT算法實(shí)現(xiàn)流程圖如圖2所示。
圖2 FFT算法實(shí)現(xiàn)流程圖
根據(jù)渦街信號(hào)最大的原則,對(duì)N個(gè)點(diǎn)的功率譜進(jìn)行排序,找出功率譜最大的點(diǎn),由于采用了FFT運(yùn)算使數(shù)據(jù)的排列順序發(fā)生了改變,倒序后為n,由式(1)即可求出渦街頻率f。然后根據(jù)估算頻率,選擇最合適的帶通濾波器。
(1)
式中:n為功率譜最大的點(diǎn),F(xiàn)s為采樣頻率。
在通常情況下,所分析的頻譜在采樣的兩條譜線中間,沒(méi)有對(duì)正主瓣中心,可以通過(guò)主瓣內(nèi)的譜線來(lái)求取主瓣中心的坐標(biāo),從而求得比較準(zhǔn)確的頻率值。由于FFT計(jì)算信號(hào)頻譜的時(shí)候,采用的是矩形窗進(jìn)行截?cái)啵圆捎弥匦男Uǖ木匦未靶拚健?/div>
FFT的速度要受到數(shù)據(jù)點(diǎn)的個(gè)數(shù)、時(shí)鐘頻率的影響。FFT的模塊的執(zhí)行時(shí)間從(0.1-0.6)s延遲為(0.1-0.9)s,同時(shí)通過(guò)減少峰值檢測(cè)的次數(shù),來(lái)壓縮其相應(yīng)模塊的時(shí)間,來(lái)保證在2s的周期中可以運(yùn)行完整個(gè)模塊。
2.2 峰值檢測(cè)及程控放大
由多次檢測(cè)的峰值求平均值,得到渦街信號(hào)的幅值,根據(jù)幅值的大小來(lái)調(diào)整數(shù)字電位器的電阻值,從而實(shí)現(xiàn)程控放大器放大倍數(shù)的調(diào)整。這樣處理保證小幅值的渦街信號(hào)也能被整形器觸發(fā)。
在程序運(yùn)行時(shí)只有通過(guò)不斷的充放電才能準(zhǔn)確的測(cè)量信號(hào)的幅值,測(cè)量的頻率必須與信號(hào)的頻率相對(duì)應(yīng),信號(hào)頻率低時(shí),充放電的頻率也要降低,信號(hào)頻率高時(shí),充放電的頻率也可以相應(yīng)的加快。
2.3 帶通選擇
由于液體(0~500Hz)、氣體(0~2300Hz)的頻率不同,帶通濾波器的頻段設(shè)置也不同。其頻段為液體((0,16),(10,42),(35,82),(65,141),(77,213),(101,274),(138,388),(226,642)),氣體為((0,44),(35,88),(73,196),(179,376),(348,798),(735,1074),(1025,1824),(1687,2500))。為了防止當(dāng)信號(hào)處于通道邊緣,由頻率波動(dòng)而造成的頻率切換通道的問(wèn)題,使通道在設(shè)置上存有一定寬度的重疊,通過(guò)軟件也減少切換的次數(shù)。
2.4 頻率計(jì)數(shù)
對(duì)頻率的計(jì)數(shù)采用的是多周期等精度測(cè)量。設(shè)定定時(shí)器TA為渦街信號(hào)脈沖計(jì)數(shù)器,設(shè)置定時(shí)器TB為填充脈沖計(jì)數(shù)器,讓TA的PWM模塊定時(shí)發(fā)觸發(fā)捕獲信號(hào),TA和TB根據(jù)相鄰的兩次觸發(fā)捕獲信號(hào)之間的時(shí)間間隔,分別捕獲渦街信號(hào)脈沖的個(gè)數(shù)和填充脈沖的個(gè)數(shù),根據(jù)TA和TB捕獲得到脈沖數(shù)以及TB的工作時(shí)鐘頻率計(jì)算出渦街信號(hào)的頻率。
渦街信號(hào)頻率:
(2)
Nx為定時(shí)器A捕獲的渦街脈沖的個(gè)數(shù);Ns為填充脈沖定時(shí)器B計(jì)數(shù)的個(gè)數(shù);TBf為定時(shí)器B脈沖的個(gè)數(shù)。
3 測(cè)試結(jié)果
將渦街流量計(jì)安裝在耐德流量實(shí)驗(yàn)室的管道上,管道直經(jīng)為50mm,采用鐘罩式氣體標(biāo)準(zhǔn)裝置進(jìn)行檢定。依據(jù)《JJG1029-2007渦街流量計(jì)檢定規(guī)程》在量程流量范圍內(nèi)分段檢測(cè)各流量點(diǎn),其中一臺(tái)實(shí)驗(yàn)結(jié)果如表1,測(cè)試得瞬時(shí)流量的線性度為0.97%,最大示值誤差為0.595%。
表1 50mm口徑渦街流量計(jì)的氣體流量標(biāo)定實(shí)驗(yàn)結(jié)果
4 結(jié)束語(yǔ)
本文給出了一種基于頻譜分析信號(hào)處理的渦街流量計(jì)的設(shè)計(jì),結(jié)合軟、硬件,選用MSP430F5438作為核心控制器件,硬件上主要分析了壓電傳感器信號(hào)的程控放大與低通濾波、多通道的可選擇帶通濾波、峰值檢測(cè)、信號(hào)的整形輸入,軟件上分析了頻率估算、峰值檢測(cè)與放大、帶通選擇、頻率計(jì)數(shù),最后,在柴油標(biāo)準(zhǔn)裝置上進(jìn)行了檢定驗(yàn)證。結(jié)果表明,該流量計(jì)設(shè)計(jì)采用基于FFT的頻譜分析和帶通濾波,大大提高了液體流量測(cè)量精度和抗干擾性。