劉 文 ,徐科軍,2 ,樂 靜 ,徐浩然 ,張 倫 ,黃 雅 ,劉陳慈
(1.合肥工業(yè)大學電氣與自動化工程學院,安徽 合肥 230009;2.工業(yè)自動化安徽省工程技術(shù)研究中心,安徽 合肥 230009)
科氏質(zhì)量流量計可以直接測量質(zhì)量流量,測量精度高、重復(fù)性好[1]??剖腺|(zhì)量流量計有模擬和數(shù)字兩種驅(qū)動方式。測量氣液兩相流時,模擬驅(qū)動可能導(dǎo)致流量管停振。此時,必須采用數(shù)字驅(qū)動[2-5]。
數(shù)字驅(qū)動中,許多學者利用現(xiàn)場可編程門陣列(field programmable gate array,FPGA)和數(shù)字信號處理器(digital signal processor,DSP)執(zhí)行驅(qū)動任務(wù)。這兩種方法都存在著一些問題,例如成本較高[6]、沒有具體細節(jié)和驅(qū)動效果[7-8]、兩相流下無法避免流量管停振[9]和驅(qū)動效果欠佳[10-13]等。
為了更好地對流量管執(zhí)行控制,本文利用FPGA設(shè)計數(shù)字驅(qū)動系統(tǒng),由FPGA負責全部的驅(qū)動任務(wù),并使用DSP計算質(zhì)量流量。在單相流工況下進行水流量標定試驗,以驗證是否滿足精度要求。在氣液兩相流下將本文設(shè)計的系統(tǒng)與基于DSP的數(shù)字驅(qū)動進行比較,以驗證驅(qū)動效果是否提升。
在科氏質(zhì)量流量計中,變送器需要完成的任務(wù)有采集速度傳感器信號、更新驅(qū)動信號、計算質(zhì)量流量和控制外設(shè)等。為了同時利用FPGA并行執(zhí)行的優(yōu)勢和DSP計算能力強的優(yōu)勢,變送器將圍繞這兩個核心研制。將耗費大量時間的信號采集任務(wù)交給FPGA,時序不會與其他任務(wù)沖突。驅(qū)動任務(wù)和質(zhì)量流量計算任務(wù)最為重要,最好可以同步執(zhí)行。為此,將驅(qū)動任務(wù)交由FPGA處理,將精度要求更高的質(zhì)量流量計算任務(wù)交由DSP處理。由于外設(shè)控制一般與質(zhì)量流量計算任務(wù)都相關(guān),所以外設(shè)控制也交由DSP處理。本文以FPGA執(zhí)行的任務(wù)為研究對象,闡述驅(qū)動系統(tǒng)的執(zhí)行方案。
整個硬件系統(tǒng)以Altera公司的FPGA芯片EP4CE115F23I7N和TI公司的DSP芯片TMS320F28335為核心,包括放大濾波電路、模/數(shù)轉(zhuǎn)換器(analog-to-digital converter,ADC)1、ADC2、電壓基準源、電壓跟隨器、ADC3、直接數(shù)字式頻率合成器(direct digital synthesizer,DDS)、乘法數(shù)/模轉(zhuǎn)換器(multiplying digital-to-analog converter, MDAC)、功率放大電路、單向訪問隨機存取存儲器(single access RAM,SARAM)、鐵電存儲器(ferro electric fandom access memory,F(xiàn)RAM)、人機接口、4~20 mA電流、串口通信和脈沖輸出等。
硬件系統(tǒng)如圖1所示。
圖1 硬件系統(tǒng)框圖
驅(qū)動系統(tǒng)軟件流程如圖2所示。
圖2 驅(qū)動系統(tǒng)軟件流程圖
系統(tǒng)工作時,可以并行執(zhí)行數(shù)據(jù)通信、計算更新驅(qū)動信號幅值信息,以及計算驅(qū)動信號頻率、相位信息等任務(wù)。
由圖2可以看出,F(xiàn)PGA控制兩個ADC采樣信號,并將兩路信號存至片內(nèi)隨機存儲器(random access memory,RAM),與DSP通信。與此同時,F(xiàn)PGA取一路ADC采樣值用于驅(qū)動控制。FPGA對所取信號進行無限沖擊響應(yīng)(infinite impulse response,IIR)數(shù)字濾波,繼而檢測信號的過零點。對于驅(qū)動信號的頻率、相位參數(shù),計算檢測到正過零點和負過零點,并利用DDS輸出初始驅(qū)動信號。對于幅值參數(shù),只在檢測到負過零點計算,并利用MDAC控制驅(qū)動信號的幅值。對于固有頻率為102 Hz的科氏質(zhì)量流量計來說,驅(qū)動信號頻率、相位參數(shù)的更新頻率為204 Hz,幅值參數(shù)更新的頻率為102 Hz。系統(tǒng)通信、頻率、相位參數(shù)計算和幅值參數(shù)計算可以并行執(zhí)行。相較于順序執(zhí)行的處理器,用FPGA處理驅(qū)動任務(wù)可以加快驅(qū)動信號更新速度。
FPGA控制外部ADC采集到速度傳感器信號后,需要與DSP通信和計算驅(qū)動參數(shù)。其中,與DSP通信需及時、有效,方可保證質(zhì)量流量計算的精度。計算驅(qū)動參數(shù)時,可只選用一路速度傳感器信號。ADC采集的數(shù)據(jù)難免混入噪聲。為此,計算驅(qū)動參數(shù)前需對數(shù)據(jù)預(yù)濾波。驅(qū)動信號為正弦波,需采用有效方法求取驅(qū)動信號的頻率、相位和幅值信息。
為了盡可能地加快數(shù)據(jù)傳輸?shù)乃俣?,F(xiàn)PGA與DSP之間的通信采用并行方式,傳輸24位數(shù)據(jù)。另外,由兩個信號線START和READY控制通信,時鐘為CLK信號。由于運算速度的限制,DSP可以處理采樣率為7.5 kHz的信號,而FPGA控制的ADC采樣率為15 kHz。所以,需對傳輸給DSP的數(shù)據(jù)抽樣,即每2個采樣點抽取一個。
通信時,F(xiàn)PGA先將抽樣后數(shù)據(jù)存至片內(nèi)RAM中,待DSP需要時再傳送出去。開始傳輸數(shù)據(jù)時,DSP會向FPGA發(fā)送START信號。若此時FPGA已將數(shù)據(jù)存至RAM中,則FPGA會向DSP發(fā)送READY信號。DSP檢測到READY信號后向FPGA發(fā)送CLK信號,F(xiàn)PGA會在每一個CLK的上升沿,將預(yù)存的一個24位數(shù)據(jù)以并行方式發(fā)送給DSP。
由于各種干擾,ADC采到的信號難免混入噪聲,需要對信號作預(yù)處理。速度傳感器信號正常工作時有一個固有頻率,所以應(yīng)設(shè)置帶通濾波器對信號濾波。而IIR濾波器可以用較少的運算量完成濾波算法。在此,采用三階IIR帶通數(shù)字濾波器。
(1)
式中:b1、b2、b3、a1、a2、a3為待定系數(shù)。
運算時需采用浮點小數(shù)。雖然FPGA具有并行執(zhí)行的優(yōu)勢,但是數(shù)據(jù)處理能力較弱。需要計算小數(shù)時,F(xiàn)PGA一般用整數(shù)解決。但是,對精度的要求使得本系統(tǒng)必須作小數(shù)處理。小數(shù)可分為定點小數(shù)和浮點小數(shù)。浮點小數(shù)具有表示更加靈活的特點,其又可進一步分為單精度浮點小數(shù)和雙精度浮點小數(shù)。浮點數(shù)計算要比整數(shù)計算消耗更多的資源。出于對計算精度和資源消耗的考慮,本系統(tǒng)在進行小數(shù)運算時一般采用單精度浮點數(shù)的方式。
在Verilog HDL語言中,需先將要計算的數(shù)轉(zhuǎn)換成符合電氣和電子工程師協(xié)會(IEEE)標準的二進制單精度浮點數(shù)格式后再作浮點數(shù)運算。計算單精度浮點數(shù)時可先調(diào)用Altera公司的綜合開發(fā)工具Quartus Ⅱ中用于數(shù)據(jù)轉(zhuǎn)換的IP函數(shù),將待處理的數(shù)轉(zhuǎn)換成符合IEEE標準的單精度浮點數(shù)表示格式,再調(diào)用計算用的IP函數(shù)執(zhí)行相關(guān)運算。
順序執(zhí)行的處理器,如DSP等,由于對時序有要求,在正常工作時一般一次只能對一段數(shù)據(jù)執(zhí)行濾波算法。而FPGA具有并行執(zhí)行的特性,可以對采樣點進行實時處理。只要有新的采樣點傳來,F(xiàn)PGA就可立即對其濾波,提高了數(shù)據(jù)處理的實時性,為驅(qū)動信號的快速更新奠定基礎(chǔ)。
驅(qū)動信號需追蹤速度傳感器信號的頻率。速度傳感器信號為正弦波。為了以最快的速度更新驅(qū)動信號、提升驅(qū)動控制效果,選擇信號的正過零點和負過零點來更新驅(qū)動信號,每半周期更新一次。
計算頻率時需去除信號偏置的影響。假設(shè)速度傳感器信號經(jīng)過調(diào)理電路后,偏置為負。有偏置的速度傳感器信號如圖3所示。
圖3 有偏置的速度傳感器信號
圖3中:t1、t2、t3、t4分別為信號實際過零點。假設(shè)在t2時刻計算t1~t2之間正半周信號的頻率,在t3時刻計算t2~t3之間負半周信號的頻率。可以明顯看出,這兩個半周信號的頻率不相同,這種方法得到的不是信號的真實頻率。此外,由于制作工藝的原因,在沒有偏置的情況下,有些科氏質(zhì)量流量計速度傳感器信號的正半周期和負半周期的時間不一樣,若取半周期計算頻率也不合適。
為了消除偏置,可取整周期信號計算頻率。在t3時刻計算t1~t3之間一個周期信號的頻率,在t4時刻計算t2~t4之間一個周期信號的頻率。這兩次計算的頻率相同,都是真實信號頻率。
采用三點反向Lagrange插值算法進行曲線擬合尋找過零點,從而計算頻率。選取實際過零點之前的兩個點和之后的一個點進行擬合。三點正向Lagrange插值算法的公式為:
(2)
式中:x為需要擬合求取的信號值;x(n-2)、x(n-1)和x(n)為采樣信號的數(shù)值;t為x對應(yīng)的時刻值。
若用式(2)執(zhí)行插值算法,擬合的曲線是二階的,需解二階方程求出t值,F(xiàn)PGA不易實現(xiàn)。
在此運用逆向思維,將采樣信號的數(shù)值與其對應(yīng)的時刻值交換過來進行插值運算,即采樣值由因變量變?yōu)樽宰兞?,時刻值由自變量變?yōu)橐蜃兞?。相?yīng)的三點反向Lagrange插值公式為:
(3)
由式(3)可知,實際處理時只需要直接令x=0,再代入相應(yīng)的采樣點的數(shù)值,即可求出過零時刻t。
擬合出過零點后再與相應(yīng)整周期內(nèi)的采樣點數(shù)結(jié)合,即可計算出信號頻率。
驅(qū)動信號還需追蹤到速度傳感器信號的相位。每計算出一次頻率值,就可得到一個相位補償值。相位信息半周期更新一次。
追蹤相位的原因在于驅(qū)動信號與速度傳感器信號同相時,驅(qū)動效率最高。速度傳感器信號的相傳關(guān)系如圖4所示。
圖4 速度傳感器信號與驅(qū)動信號的相位關(guān)系圖
驅(qū)動信號1為不進行相位補償?shù)姆绞?,檢測到過零點后,由于相位的滯后,在t4時刻才能更新驅(qū)動信號,并且相位從零開始??梢钥闯?,速度傳感器信號與驅(qū)動信號顯然不同相,驅(qū)動效果欠佳。驅(qū)動信號2進行了相位補償,在t4時刻更新驅(qū)動信號時,其初始相位不從0開始??梢钥闯觯俣葌鞲衅餍盘柵c驅(qū)動信號處在同相狀態(tài),驅(qū)動效果較佳。
用FPGA驅(qū)動時,由速度傳感器的信號計算出驅(qū)動信號的頻率、相位進而輸出到電磁激振器,需經(jīng)過以下步驟。①進入ADC前的硬件延時以及ADC模數(shù)轉(zhuǎn)換造成的延時。②3階IIR數(shù)字濾波器造成的非線性相位滯后。③檢測過零點時,檢測出的離散信號的過零點與實際過零點之間的時間差。④DDS的數(shù)模轉(zhuǎn)換延時及其輸出后級硬件造成的延時。⑤系統(tǒng)程序運行造成的時鐘延時。
其余部分造成的相位差與信號頻率呈線性關(guān)系,根據(jù)比例關(guān)系計算即可。
FPGA采用非線性幅值控制算法對流量管振動幅值靈活控制,并且在檢測到負過零點時,單周期更新一次驅(qū)動信號的幅值信息。
采用比例積分(proportional integrat,PI)控制器控制幅值。它是一種常用的控制器,特點是既能及時控制,又能消除余差。其輸出表達式為:
u(k)=KPe(k)+KITsame(k)+uI(k-1)
(4)
式中:Tsam為采樣周期;KP為比例系數(shù);KI為積分系數(shù)。
設(shè)速度傳感器信號期望幅值為A0,實際幅值為Ak,引入自然對數(shù),求取PI控制器的輸入誤差,即e(k)=lnA-lnAk,以滿足對動態(tài)特性和穩(wěn)態(tài)特性的要求。
為了驗證本文研制的驅(qū)動系統(tǒng)在不同流型下都有良好的驅(qū)動效果,首先在單相流工況下對基于FPGA驅(qū)動系統(tǒng)的變送器進行水流量標定試驗,繼而在氣液兩相流工況下進行FPGA驅(qū)動與基于DSP的數(shù)字驅(qū)動,并對比驅(qū)動效果。
科氏質(zhì)量流量計試驗裝置包括可編程邏輯控制器(programmable logic controuer,PLC)控制柜、水箱、水泵、氣液混合器、科氏質(zhì)量流量計、電動換向器、稱重裝置、空壓機、浮子流量計、羅茨流量計、管道和閥門等,如圖5所示。
圖5 試驗裝置
試驗裝置可以進行單相流和兩相流試驗,通過PLC控制相應(yīng)器件動作,協(xié)調(diào)完成整個試驗流程。在進行單相流試驗時,水泵汲取水箱中的水,依次流經(jīng)氣液混合器、氣動閥1、科氏質(zhì)量流量計、手動調(diào)節(jié)閥和球閥2。若需稱重,電動換向器切換到2路,水流進稱重裝置;稱重完成后,由氣動閥2流向水箱。若無需稱重,電動換向器切換到1路,水直接流進水箱。當進行氣液兩相流試驗時,單向閥開啟,空壓機壓縮氣體,經(jīng)由浮子流量計或羅茨流量計控制進氣量后,在氣液混合器處與水路通道中的水混合形成氣液兩相流,繼而從氣液混合器開始,按照單相流試驗下水的流向流動。
將研制的基于FPGA數(shù)字驅(qū)動系統(tǒng)的變送器與艾默生公司生產(chǎn)的DN25 Ω形一次儀表相匹配,并安裝于試驗裝置上;采用稱重法進行單相流水流量標定試驗,以檢測本變送器的質(zhì)量流量測量精度。其中,標定裝置的不確定度為0.05%。根據(jù)國家質(zhì)量流量計標定流程,先從最大流量點開始標定,每個流量點標定3次;待標定完最小流量點后,再返回最大流量點,以測試變送器是否存在漂移。
標定數(shù)據(jù)如表1所示。
從表1可以看出:在20∶1的量程比范圍內(nèi),本變送器的相對誤差小于0.1%,重復(fù)性優(yōu)于0.05%。
表1 標定數(shù)據(jù)
氣液兩相流工況下,流量管的固有頻率劇烈變化,需要驅(qū)動信號快速跟蹤速度傳感器信號以維持流量管振動。在FPGA驅(qū)動系統(tǒng)中,半周期更新驅(qū)動信號的頻率、相位信息,單周期更新驅(qū)動信號的幅值信息。為驗證在氣液兩相流工況下,驅(qū)動信號的快速更新是否能更好地維持流量管振動,將FPGA驅(qū)動系統(tǒng)的驅(qū)動效果與基于DSP的驅(qū)動系統(tǒng)的驅(qū)動效果進行對比。采用DSP執(zhí)行驅(qū)動任務(wù)時,約14個周期更新一次驅(qū)動信號[10-13]。將基于FPGA驅(qū)動的變送器和基于DSP驅(qū)動的變送器,分別與艾默生DN25 Ω形一次儀表相匹配,在水流量為60 kg/min、含氣量變化的情況下,進行驅(qū)動效果對比試驗。兩種驅(qū)動方法中,驅(qū)動電壓最高可輸出幅值都為24 V。計算含氣量時,控制進氣量的浮子流量計和羅茨流量計測量精度較低。為此,引入密度降的概念,通過變送器測得的速度傳感器信號頻率值間接反映含氣量[14-17]。
密度降為:
(5)
式中:D0為單相流體的實際密度;D1為混合流體的密度,其計算方法如式(6)所示。
(6)
式中:a1~a4為待標定密度系數(shù);f為速度傳感器信號頻率;ΔT為流體溫度變化值。
采集到速度傳感器信號后,以每段信號中所有峰值的平均值,以及峰值方差來表征驅(qū)動效果。若其中一種驅(qū)動方法得到平均值越高,則其輸入能量轉(zhuǎn)化率越高。為此,以峰值平均值表征驅(qū)動效率。另外,流量管的振動幅值越穩(wěn)定,越有利于質(zhì)量流量測量。為此,以峰值方差來表征波動性。方差越大,說明波動性越大。不同流體狀態(tài)下的驅(qū)動效果對比如表2所示。
表2 驅(qū)動效果對比
由表2可以看出,不同密度降下,使用FPGA驅(qū)動得到的信號平均值一直高于DSP驅(qū)動,方差一直小于DSP驅(qū)動。由此說明,相較于DSP驅(qū)動,采用FPGA驅(qū)動的效率更高,速度傳感器信號的波動性更小。
在30%密度降下,繪制使用不同驅(qū)動方法得到的速度傳感器信號峰值曲線對比圖,如圖6所示。
圖6 峰值曲線對比圖(密度降30%)
由圖6可以看出,該密度降下,用DSP驅(qū)動得到的速度傳感器信號峰值波動程度很大,使用FPGA驅(qū)動得到的速度傳感器信號峰值波動程度較小。
對兩種驅(qū)動方法的驅(qū)動信號和速度傳感器信號的頻率、相位匹配情況進行分析。FPGA驅(qū)動方法中,每半周期更新一次驅(qū)動信號的頻率、相位信息。頻率、相位匹配程度一直處于較佳狀態(tài),使得速度傳感器信號的峰值波動程度更小。在30%密度降下,用FPGA驅(qū)動的匹配效果如圖7所示。由圖7可以看出,兩種信號的頻率、相位匹配效果較佳。
圖7 FPGA驅(qū)動的匹配效果
在DSP數(shù)字驅(qū)動方法中,驅(qū)動周期更新較長(約14個周期),驅(qū)動信號與速度傳感器信號的頻率、相位匹配結(jié)果較差,驅(qū)動效果欠佳。在30%密度降下,用DSP驅(qū)動匹配效果如圖8所示。由圖8可以看出,兩種信號的頻率、相位匹配效果欠佳。
圖8 DSP驅(qū)動的頻率、相位匹配效果
本文從快速更新驅(qū)動信號的角度出發(fā),設(shè)計了基于FPGA的數(shù)字驅(qū)動系統(tǒng)。用IIR數(shù)字濾波器對單路速度傳感器信號進行預(yù)處理,采用三點反向Lagrange插值算法計算頻率和跟蹤相位,通過非線性幅值控制算法控制幅值。利用FPGA的并行特性對驅(qū)動信號進行處理,實現(xiàn)了對頻率、相位控制和對幅值控制的并行執(zhí)行,從而每半周期計算出一次驅(qū)動信號頻率、相位參數(shù),并用DDS更新;每單周期計算出一次驅(qū)動信號的幅值參數(shù),并用MDAC更新。驅(qū)動信號更新的頻率是以速度傳感器信號的頻率為依據(jù)的,即速度傳感器信號的頻率越大,驅(qū)動信號更新得越快。
將基于FPGA驅(qū)動系統(tǒng)的變送器與艾默生DN25型一次儀表相匹配,在單相流下進行標定試驗。試驗結(jié)果表明,變送器具有較高的測量精度。在氣液兩相流工況下,將FPGA驅(qū)動與DSP驅(qū)動的驅(qū)動效果進行對比。對比結(jié)果表明,由于驅(qū)動信號更新速度的提升,F(xiàn)PGA驅(qū)動系統(tǒng)可以更好地維持流量管的振動。