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