本發(fā)明涉及流量測(cè)量領(lǐng)域,為一種氣體超聲波流量變送器,特別是一種采用同時(shí)激勵(lì)兩路換能器和同時(shí)接收兩路回波信號(hào)的雙發(fā)雙收模式、采用八路換能器激勵(lì)與八路回波信號(hào)數(shù)字信號(hào)處理相分離模式的四聲道氣體超聲波流量變送器。
背景技術(shù):
氣體超聲波流量計(jì)(又稱氣體超聲流量計(jì))具有測(cè)量精度高、無壓損、量程比大、適用于大口徑等優(yōu)點(diǎn)而被廣泛地應(yīng)用于天然氣流量測(cè)量領(lǐng)域。氣體超聲波流量計(jì)由一次儀表和二次儀表組成,一次儀表包括氣體超聲波換能器、流量管和安裝部件。二次儀表(又稱變送器)包括驅(qū)動(dòng)信號(hào)生成和調(diào)理部分、回波信號(hào)調(diào)理和數(shù)字處理部分、人機(jī)交互部分和軟件。
合肥工業(yè)大學(xué)研制了雙聲道氣體超聲波流量計(jì)(徐科軍,方敏,汪偉,朱文姣,沈子文。一種基于FPGA和DSP的氣體超聲流量計(jì),申請(qǐng)中國(guó)發(fā)明專利,公開號(hào)CN104697593A,申請(qǐng)日2015.06.10)。雙聲道氣體超聲波流量計(jì)由一次儀表和二次儀表組成,一次儀表包括氣體超聲換能器和傳感器單元;二次儀表包括發(fā)射/接收信號(hào)通道切換電路、驅(qū)動(dòng)信號(hào)生成與放大電路、回波信號(hào)調(diào)理與采集電路、FPGA最小系統(tǒng)、DSP最小系統(tǒng)、人機(jī)接口、串口通訊、電源管理模塊以及FPGA和DSP的軟件。其特征如下:
(1)一次儀表由四個(gè)換能器A、B、C、D、壓力傳感器和溫度傳感器組成,四個(gè)換能器成X型分布方式,即形成兩個(gè)對(duì)射式(又稱直射式)的聲道,換能器A和B組成一個(gè)聲道,換能器C和D組成另外一個(gè)聲道。
(2)采用單發(fā)單收的工作模式,其工作過程為:換能器A作為發(fā)射換能器,發(fā)射超聲波信號(hào),換能器B作為接收換能器,接收超聲波信號(hào)并產(chǎn)生回波信號(hào);DSP對(duì)接收到的回波信號(hào)進(jìn)行數(shù)字信號(hào)處理;處理完成后,再開始激勵(lì)下一個(gè)換能器和處理下一路回波信號(hào)。在一次測(cè)量周期中依次激勵(lì)四個(gè)換能器和處理四路回波信號(hào)。這樣,在整個(gè)測(cè)量過程中數(shù)字信號(hào)處理耗時(shí)較長(zhǎng),因此,每個(gè)通道的激勵(lì)時(shí)刻也間隔時(shí)間較長(zhǎng)。當(dāng)流體流速變化較快時(shí),在一個(gè)測(cè)量周期內(nèi),不同聲道間測(cè)得的氣體流量線速度會(huì)存在偏差,導(dǎo)致采用線速度加權(quán)去求得平均面速度時(shí)存在誤差。
(3)發(fā)射信號(hào)通道切換電路包括四路驅(qū)動(dòng)信號(hào)選通電路。驅(qū)動(dòng)信號(hào)選通電路位于變壓放大電路之前,并采用MOSFET(金屬氧化物半導(dǎo)體場(chǎng)效應(yīng)晶體管)對(duì)驅(qū)動(dòng)信號(hào)進(jìn)行選通,其通道切換控制信號(hào)與驅(qū)動(dòng)信號(hào)采用共地接法,沒有進(jìn)行隔離。在MOSFET關(guān)斷的情況下,漏極和源極之間并非完全斷開,而是存在一個(gè)大電阻,因此,仍然會(huì)有一定的漏電流流過。由于驅(qū)動(dòng)信號(hào)放大電路與4路驅(qū)動(dòng)信號(hào)選通電路同時(shí)相連,因此,當(dāng)某一通道被選通工作時(shí),激勵(lì)信號(hào)會(huì)通過漏電流而影響到其它通道。
技術(shù)實(shí)現(xiàn)要素:
為了提高儀表的測(cè)量精度,增強(qiáng)系統(tǒng)的抗干擾能力,本發(fā)明提供了一種高精度四聲道氣體超聲波流量變送器。
一種高精度四聲道氣體超聲波流量計(jì)由一次儀表和二次儀表(又稱變送器)組成。
所述一次儀表由八個(gè)氣體超聲換能器、流量管和安裝部件組成。所述八個(gè)氣體超聲換能器分別固定在流量管上;每個(gè)換能器既可作為發(fā)射換能器,又可作為接收換能器。
所述二次儀表由兩路驅(qū)動(dòng)信號(hào)生成與放大電路、兩路回波信號(hào)調(diào)理與采集電路、DSP(數(shù)字信號(hào)處理器)最小系統(tǒng)、FPGA(現(xiàn)場(chǎng)可編程門陣列)最小系統(tǒng)、發(fā)射/接收信號(hào)通道切換電路、電源管理模塊、人機(jī)接口、串口通訊模塊以及FPGA軟件和DSP軟件組成。
所述驅(qū)動(dòng)信號(hào)生成與放大電路由高速DAC(數(shù)模轉(zhuǎn)換器)轉(zhuǎn)換電路、驅(qū)動(dòng)信號(hào)電壓放大電路、功率放大電路和變壓器放大電路組成。
所述回波信號(hào)調(diào)理與采集電路由電壓放大電路、帶通濾波電路、自增益放大電路、單端轉(zhuǎn)差分電路和高速ADC(模數(shù)轉(zhuǎn)換器)轉(zhuǎn)換電路組成。
所述發(fā)射/接收信號(hào)通道切換電路由驅(qū)動(dòng)信號(hào)選通電路和回波信號(hào)選通電路組成。
所述DSP最小系統(tǒng)由DSP芯片TMS320F28335、時(shí)鐘電路、外部看門狗和FRAM(鐵電存儲(chǔ)器)組成。
所述FPGA最小系統(tǒng)由FPGA芯片EP4CE10E22C8N、FPGA芯片串行配置器電路FLASH EPCS4、FPGA芯片復(fù)位電路和時(shí)鐘電路組成。
所述FPGA芯片用于暫存回波信號(hào)調(diào)理與采集電路傳送來的轉(zhuǎn)換碼值,當(dāng)延遲時(shí)間到達(dá)后,傳輸至DSP芯片;所述DSP芯片為主控芯片,負(fù)責(zé)數(shù)字信號(hào)處理以及人機(jī)交互、串口通訊,并且與FPGA配合完成整個(gè)系統(tǒng)的時(shí)序控制;DSP芯片采用零相位濾波消除信號(hào)中混雜的噪聲,采用跟蹤回波信號(hào)最大峰值的可變閾值過零檢測(cè)方法,提取特征波,計(jì)算超聲回波的傳播時(shí)間,進(jìn)而獲得氣體流量。
所述FPGA軟件包括分頻模塊、ADC控制模塊、RAM_2PROT模塊、DAC控制模塊、ROM模塊、延遲模塊、判穩(wěn)模塊以及通道切換模塊。
所述DSP軟件由主監(jiān)控程序和各個(gè)子程序模塊組成。所述主監(jiān)控程序?yàn)榭傉{(diào)度程序,所述各個(gè)子程序模塊為初始化模塊、看門狗模塊、FRAM讀寫模塊、串口通信模塊、數(shù)據(jù)傳輸模塊、脈沖輸出模塊、中斷模塊、計(jì)算模塊和液晶顯示模塊;主監(jiān)控程序通過調(diào)用各個(gè)子程序模塊實(shí)現(xiàn)所述氣體超聲流量計(jì)的各項(xiàng)功能。
主監(jiān)控程序的具體操作步驟如下:
(1)電路系統(tǒng)初始化
系統(tǒng)上電后,DSP執(zhí)行初始化程序,包括外設(shè)配置和變量定義。外設(shè)配置包括對(duì)DSP的GPIO(通用輸入輸出)口資源的分配和設(shè)置、SCI(串行通信接口)通信模塊的配置、液晶顯示的初始化、ePWM(增強(qiáng)型脈沖寬度調(diào)制)的初始化、定時(shí)器配置、中斷向量表的配置和中斷使能等。在變量定義環(huán)節(jié)中,定義流量計(jì)算需要的閾值、聲道長(zhǎng)度、聲速、修正系數(shù)等參數(shù)。并且建立8個(gè)隊(duì)列,每個(gè)隊(duì)列由50個(gè)數(shù)據(jù)位組成,用于存放8個(gè)換能器接收到的超聲波的傳播時(shí)間(以下簡(jiǎn)稱傳播時(shí)間);每當(dāng)有一個(gè)新的傳播時(shí)間數(shù)據(jù)進(jìn)入時(shí),每個(gè)隊(duì)列首位的數(shù)據(jù)會(huì)被丟棄,新的傳播時(shí)間數(shù)據(jù)加在隊(duì)列的尾部。在后面的測(cè)量過程中,將根據(jù)這8個(gè)隊(duì)列的數(shù)據(jù),實(shí)時(shí)計(jì)算出四聲道超聲波流量計(jì)順流和逆流的平均傳播時(shí)間。
(2)等待FPGA芯片存儲(chǔ)八路回波信號(hào)
DSP芯片向FPGA芯片發(fā)送“開始測(cè)量”信號(hào)。FPGA芯片立即使能內(nèi)部的延時(shí)模塊,并由DAC控制模塊讀取ROM模塊中存儲(chǔ)的激勵(lì)信號(hào)的波形數(shù)據(jù),傳輸至兩路驅(qū)動(dòng)信號(hào)生成和放大電路;再經(jīng)由FPGA芯片控制的發(fā)射/接收信號(hào)通道切換電路,輸出至直射式四聲道結(jié)構(gòu)的換能器A和換能器C、或者換能器B和換能器D、或者換能器E和換能器G、或者換能器F和換能器H,由換能器A和換能器C、或者換能器B和換能器D、或者換能器E和換能器G、或者換能器F和換能器H發(fā)出兩路超聲波;超聲波經(jīng)過一段渡越時(shí)間后,到達(dá)對(duì)應(yīng)的接收換能器;由換能器E和換能器G、或者換能器F和換能器H、或者換能器A和換能器C、或者換能器B和換能器D接收超聲波,形成兩路回波信號(hào);由FPGA芯片控制的發(fā)射/接收信號(hào)通道切換電路接收由換能器發(fā)出的回波信號(hào),并輸入至兩路回波信號(hào)調(diào)理和采集電路;由回波信號(hào)調(diào)理和采集電路中的高速ADC完成數(shù)據(jù)轉(zhuǎn)換;并將高速ADC的轉(zhuǎn)換碼值存放于FPGA芯片內(nèi)部的RAM_2PORT(又稱雙口RAM)模塊。
將上述過程重復(fù)4次;在每次重復(fù)時(shí),F(xiàn)PGA通過改變I/O(輸入/輸出)口的輸出狀態(tài),按順序切換不同的發(fā)射換能器和接收換能器,切換順序?yàn)椋簱Q能器A和換能器C發(fā)射,換能器E和換能器G接收;換能器E和換能器G發(fā)射,換能器A和換能器C接收;換能器B和換能器D發(fā)射,換能器F和換能器H接收;換能器F和換能器H發(fā)射,換能器B和換能器D接收。重復(fù)4次后,就得到了8路回波信號(hào),并按照回波信號(hào)接收的順序,將回波信號(hào)存儲(chǔ)至FPGA芯片內(nèi)部的RAM_2PORT模塊。當(dāng)延時(shí)時(shí)間到達(dá)后,通過拉高設(shè)定的DSP芯片的GPIO口告知DSP芯片可以開始讀取數(shù)據(jù)。這就是所述的八路換能器激勵(lì)與八路回波信號(hào)數(shù)字信號(hào)處理相分離的模式。
(3)復(fù)制數(shù)據(jù)
DSP芯片檢測(cè)到設(shè)定的GPIO口的高電平后,首先將存放在FPGA芯片內(nèi)部的RAM_2PORT模塊中的一路回波信號(hào)數(shù)據(jù)復(fù)制到DSP芯片的片內(nèi)RAM(隨機(jī)存取存儲(chǔ)器)中,DSP芯片對(duì)其進(jìn)行數(shù)字信號(hào)處理。
(4)DSP芯片對(duì)數(shù)據(jù)進(jìn)行處理,計(jì)算超聲波的傳播時(shí)間。
DSP芯片首先對(duì)回波信號(hào)進(jìn)行帶通濾波,再對(duì)濾波后的回波信號(hào)進(jìn)行幅值歸一化處理,尋找到相應(yīng)的特征波,再找到特征波之后的8個(gè)過零點(diǎn)。超聲波的傳播時(shí)間T可通過式(1)求得:
式中,τi(i=1,2,3…8)為過零點(diǎn)時(shí)間,t'為一個(gè)固定的偏差值。在零流量的情況下計(jì)算得到該偏差值。
(5)計(jì)算瞬時(shí)流量
將步驟(3)~(4)重復(fù)8次,就完成了四聲道順流和逆流傳播時(shí)間的測(cè)量,并將這8個(gè)傳播時(shí)間分別放入步驟(1)中所建立的8個(gè)隊(duì)列中。
執(zhí)行5次這樣的測(cè)量,計(jì)算出四聲道順流和逆流的平均傳播時(shí)間t1、t2、t3、t4、t5、t6、t7、t8后。聲道1和聲道4的瞬時(shí)流量Q1可由式(2)求得,聲道2和聲道3得到的瞬時(shí)流量Q2可由式(3)求得。
式中,L1為聲道1和聲道4的聲道長(zhǎng)度,L2為聲道2和聲道3的聲道長(zhǎng)度,θ1為聲道1和聲道4的聲道角的角度,θ2為聲道2和聲道3的聲道角的角度,所述聲道角為超聲波傳播路徑與管道軸線之間的夾角。D為管道直徑。φ為線速度到面速度的轉(zhuǎn)換參數(shù),通過標(biāo)定實(shí)驗(yàn)得到。
在計(jì)算儀表的瞬時(shí)流量時(shí),Q1所占比重為0.2764,Q2所占比重為0.7236。瞬時(shí)流量Q的計(jì)算公式為
Q=0.2764×Q1+0.7236×Q2 (4)
(6)計(jì)算累積流量
在得到瞬時(shí)流量后,由DSP芯片的內(nèi)部定時(shí)器1的中斷服務(wù)程序計(jì)算累積流量,每隔1秒鐘累積一次;定時(shí)器中斷服務(wù)程序首先讀取主監(jiān)控程序計(jì)算的瞬時(shí)流量結(jié)果,并累加得到累積流量;再根據(jù)瞬時(shí)流量的值更新脈沖輸出模塊的參數(shù),輸出一定頻率的脈沖,表示測(cè)得的瞬時(shí)流量;然后,將定時(shí)器時(shí)間標(biāo)志置為1,以便在主監(jiān)控程序中更新液晶顯示以及進(jìn)行上位機(jī)通信。
本發(fā)明的有益技術(shù)效果是:在雙聲道氣體超聲波流量計(jì)的基礎(chǔ)上,采用雙發(fā)雙收、激勵(lì)換能器和回波信號(hào)處理分離的模式,實(shí)現(xiàn)了四聲道氣體超聲波流量計(jì)兩路換能器的同時(shí)激勵(lì)和兩路回波信號(hào)的同時(shí)采集,縮短了各個(gè)通道間的激勵(lì)時(shí)刻,提高了系統(tǒng)的實(shí)時(shí)性和測(cè)量精度,符合工業(yè)現(xiàn)場(chǎng)應(yīng)用的需求。
附圖說明
圖1是一種高精度四聲道氣體超聲波流量計(jì)聲道分布示意圖。
圖2是一種高精度四聲道氣體超聲波流量變送器硬件框圖。
圖3是驅(qū)動(dòng)信號(hào)生成與放大電路圖。
圖4是驅(qū)動(dòng)信號(hào)選通電路圖。
圖5是回波信號(hào)選通電路圖。
圖6是回波信號(hào)調(diào)理和采集電路圖。
圖7是FPGA芯片(EP4CE10E22C8N)I/O(輸入/輸出)口子模塊圖。
圖8是FPGA芯片(EP4CE10E22C8N)內(nèi)核電壓和I/O口電壓電路子模塊圖。
圖9是FPGA芯片(EP4CE10E22C8N)地子模塊圖。
圖10是FPGA芯片(EP4CE10E22C8N)仿真接口子模塊圖。
圖11是FPGA芯片(EP4CE10E22C8N)鎖相環(huán)電壓電路子模塊圖。
圖12是FPGA芯片(EP4CE10E22C8N)時(shí)鐘輸入子模塊圖。
圖13是FPGA芯片串行配置電路圖。
圖14是FPGA芯片復(fù)位電路圖。
圖15是DSP芯片電路圖。
圖16是DSP芯片引導(dǎo)模式選擇電路圖。
圖17是FPGA軟件組成圖。
圖18是DSP軟件組成圖。
圖19是變送器系統(tǒng)軟件流程圖。
圖20是主監(jiān)控程序流程圖。
圖21是回波信號(hào)波形圖。
圖22是不同流量下回波信號(hào)波形圖。
圖23是線性插值求取過零點(diǎn)示意圖。
圖24是臺(tái)階法示意圖。
圖25是定時(shí)器中斷服務(wù)程序流程圖。
具體實(shí)施方式
參見圖1,本發(fā)明的一次儀表由八個(gè)氣體超聲換能器、流量管和安裝部件組成。所述八個(gè)氣體超聲換能器分別為換能器A、換能器B、換能器C、換能器D、換能器E、換能器F、換能器G和換能器H,每個(gè)換能器既作為發(fā)射換能器,又作為接收換能器。所述八個(gè)超聲換能器形成四個(gè)聲道,分別是換能器A與換能器E(記為聲道1)、換能器B與換能器F(記為聲道2)、換能器C與換能器G(記為聲道3)、換能器D與換能器H(記為聲道4),所述聲道1和聲道4的聲道長(zhǎng)度較短,所述聲道2和聲道3的聲道長(zhǎng)度較長(zhǎng)。
參見圖2,本發(fā)明的二次儀表硬件系統(tǒng)由發(fā)射/接收信號(hào)通道切換電路、驅(qū)動(dòng)信號(hào)生成和放大電路、回波信號(hào)調(diào)理與采集電路、DSP最小系統(tǒng)、FPGA最小系統(tǒng)、人機(jī)接口、串口通信和電源管理模塊組成。
所述發(fā)射/接收信號(hào)通道切換電路由驅(qū)動(dòng)信號(hào)選通電路和回波信號(hào)選通電路組成。其中,驅(qū)動(dòng)信號(hào)選通電路根據(jù)FPGA給出的控制信號(hào)選通對(duì)應(yīng)的發(fā)射換能器,回波信號(hào)選通電路根據(jù)FPGA給出的控制信號(hào)選通對(duì)應(yīng)的接收換能器。
所述驅(qū)動(dòng)信號(hào)生成和放大電路由高速DAC轉(zhuǎn)換電路,驅(qū)動(dòng)信號(hào)電壓放大電路、功率放大電路和變壓器放大電路組成。驅(qū)動(dòng)信號(hào)生成與放大電路實(shí)現(xiàn)驅(qū)動(dòng)信號(hào)的數(shù)模轉(zhuǎn)換、電壓放大、功率放大和變壓器隔離放大。
所述回波信號(hào)調(diào)理與采集電路由電壓放大電路、帶通濾波電路、自增益放大電路、單端轉(zhuǎn)差分電路、高速ADC轉(zhuǎn)換電路組成。回波信號(hào)調(diào)理與采集電路實(shí)現(xiàn)回波信號(hào)的電壓放大、帶通濾波、自增益放大、單端轉(zhuǎn)差分和模數(shù)轉(zhuǎn)換。
所述DSP最小系統(tǒng)由TMS320F28335DSP芯片、時(shí)鐘電路、外部看門狗和FRAM(鐵電存儲(chǔ)器)組成。DSP最小系統(tǒng)主要負(fù)責(zé)數(shù)字信號(hào)處理和傳播時(shí)間的計(jì)算。
所述FPGA最小系統(tǒng)由EP4CE10E22C8NFPGA FPGA芯片、FPGA芯片串行配置器電路FLASH EPCS4、FPGA芯片復(fù)位電路和時(shí)鐘電路組成。FPGA最小系統(tǒng)主要負(fù)責(zé)系統(tǒng)的時(shí)序控制和信號(hào)交互。
本發(fā)明的電路系統(tǒng)按功能分為模擬板和數(shù)字板,模擬板包括發(fā)射/接收信號(hào)通道切換電路、驅(qū)動(dòng)信號(hào)生成與放大電路中的電壓放大電路、功率放大電路、變壓器放大電路、回波信號(hào)調(diào)理與采集電路中的電壓放大電路、帶通濾波電路、自增益放大電路、單端轉(zhuǎn)差分電路,以及電源管理模塊;數(shù)字板包括驅(qū)動(dòng)信號(hào)生成與放大電路中的高速DAC轉(zhuǎn)換電路、回波信號(hào)調(diào)理與采集電路中的高速ADC轉(zhuǎn)換電路、FPGA最小系統(tǒng)、DSP最小系統(tǒng)。
圖3為驅(qū)動(dòng)信號(hào)生成與放大電路,由高速DAC轉(zhuǎn)換電路、電壓放大電路、功率放大電路和變壓器放大電路組成。高速DAC電路將FPGA輸出的數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào);電壓放大電路對(duì)DAC輸出的信號(hào)進(jìn)行I/V(電流/電壓)轉(zhuǎn)換并將轉(zhuǎn)換得到的電壓信號(hào)放大6.1倍;功率放大電路將上級(jí)輸出信號(hào)的電壓幅值同相放大2倍,同時(shí),極大地提高了上級(jí)輸出信號(hào)的電流輸出能力;變壓器放大電路將上級(jí)輸出信號(hào)電壓放大10倍。
圖4為換能器A的驅(qū)動(dòng)信號(hào)選通電路,由SW1、W1、R145、R153、R149、TP10、D26和D22組成。SW1為固態(tài)繼電器,其觸發(fā)LED(發(fā)光二極管)的正向電流最大僅需2mA,輸入側(cè)端子間電容為40pf,動(dòng)作時(shí)間僅為0.1ms。W1為換能器A的連接端。I/O1為FPGA輸出的換能器A的選通信號(hào)。DRIVE1為驅(qū)動(dòng)信號(hào)生成與放大電路的輸出信號(hào)。R145為換能器兩端并聯(lián)電阻。R153為固態(tài)繼電器控制端的限流電阻。R149為固態(tài)繼電器高壓側(cè)的限流電阻。D26和D22為回波信號(hào)輸出雙向鉗位二極管,防止回波信號(hào)選通電路被高壓擊穿。TP10為測(cè)試點(diǎn)。采用繼電器選通驅(qū)動(dòng)信號(hào)減少了通道間的串?dāng)_。換能器B、C、D、E、F、G、H的驅(qū)動(dòng)信號(hào)選通電路與換能器A的驅(qū)動(dòng)信號(hào)選通電路類似。
圖5為回波信號(hào)選通電路,由4個(gè)低阻抗單刀單擲開關(guān)U26、U27、U28、U29,下拉電阻R174、R175、R179、R180、R184、R185、R189和R190和連接電阻R172、R173、R176、R177、R178、R181、R182、R183、R186、R187和R188組成。當(dāng)換能器A、換能器B、換能器C、換能器D、換能器E、換能器F、換能器G和換能器H作為接收換能器時(shí),COM1、COM2、COM3、COM4、COM5、COM6、COM7和COM8分別為該換能器的回波信號(hào)的輸入端。IC_A、IC_B、IC_C、IC_D、IC_E、IC_F、IC_G和IC_H分別是FPGA輸出的回波選通信號(hào)。R181斷開時(shí),可做雙發(fā)雙收模式;R181焊上時(shí),可做單發(fā)單收模式。
圖6為回波信號(hào)調(diào)理和采集電路,由電壓放大電路、帶通濾波電路、自增益放大電路、單端轉(zhuǎn)差分電路和高速ADC轉(zhuǎn)換電路組成。經(jīng)過回波信號(hào)選通電路的回波信號(hào)輸入到電壓放大電路,同向放大11倍;電壓放大電路的輸出信號(hào)輸入至帶通濾波電路,進(jìn)行4階帶通濾波;帶通濾波電路的輸出信號(hào)輸入至自增益放大電路,對(duì)回波信號(hào)的幅值進(jìn)行自增益控制;自增益放大電路的輸出信號(hào)輸入至單端轉(zhuǎn)差分電路,形成兩路差分信號(hào),輸入至高速ADC轉(zhuǎn)換電路,高速ADC轉(zhuǎn)換電路將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)。
圖7為FPGA芯片I/O口子模塊。其中,F(xiàn)PGA芯片的IO105、IO106、IO110、IO111、IO112、IO113、IO114、IO115、IO119、IO120、IO121引腳分別連接至高速DAC轉(zhuǎn)換電路中的DAC芯片的DA_DATA0、DA_DATA1、DA_DATA2、DA_DATA3、DA_DATA4、DA_DATA5、DA_DATA6、DA_DATA7、DA_DATA8、DA_DATA9、DA_CLK引腳,用于控制高速DAC產(chǎn)生驅(qū)動(dòng)信號(hào);FPGA芯片的IO104、IO103、IO101、IO100、IO99、IO98、IO87、IO86、IO85、IO84、IO83、IO80、IO77、IO76、IO75、IO74、IO73、IO_72、IO71、IO70、IO69、IO68、IO67、IO66、IO65引腳分別連接至高速ADC轉(zhuǎn)換電路中的ADC芯片的AD_DA0、AD_DA1、AD_DA2、AD_DA3、AD_DA4、AD_DA5、AD_DA6、AD_DA7、AD_DA8、AD_DA9、AD_DA10、AD_DA11、AD_DB0、AD_DB1、AD_DB2、AD_DB3、AD_DB4、AD_DB5、AD_DB6、AD_DB7、AD_DB8、AD_DB9、AD_DB10、AD_DB11、AD_CLK引腳,用于控制高速ADC以預(yù)定采樣頻率完成回波信號(hào)的采集與轉(zhuǎn)換,并且將轉(zhuǎn)換結(jié)果上傳至FPGA芯片內(nèi)部的RAM_2PROT模塊。FPGA引腳IO34連接至DSP的START引腳,用于接收DSP芯片發(fā)出的開始測(cè)量指令,啟動(dòng)高速DAC輸出驅(qū)動(dòng)信號(hào);FPGA的IO64引腳連接至DSP的INT2DSP引腳,用于當(dāng)FPGA芯片片內(nèi)雙口RAM中存儲(chǔ)的高速ADC轉(zhuǎn)換碼值達(dá)到一定數(shù)量后,向DSP芯片發(fā)送接受請(qǐng)求信號(hào);FPGA的IO32引腳連接至DSP的READ_EN引腳,用于檢測(cè)DSP芯片發(fā)出的讀取指令;FPGA的IO28引腳連接至DSP的READ_CLK引腳,用于控制FPGA芯片和DSP芯片之間的數(shù)據(jù)傳遞速度;FPGA的IO60、IO59、IO58、IO55、IO54、IO53、IO52、IO51、IO50、IO49、IO46、IO44引腳分別連接至DSP的DATA2DSP0、DATA2DSP1、DATA2DSP2、DATA2DSP3、DATA2DSP4、DATA2DSP5、DATA2DSP6、DATA2DSP7、DATA2DSP8、DATA2DSP9、DATA2DSP10、DATA2DSP11,用于將FPGA芯片中暫存的采樣數(shù)據(jù)并行傳輸至DSP芯片。FPGA芯片的IO144、IO143、IO142、IO141、IO138、IO137、IO136、IO135引腳分別連接至回波信號(hào)選通電路的EHCO_switch1、EHCO_switch2、EHCO_switch3、EHCO_switch4、EHCO_switch5、EHCO_switch6、EHCO_switch7、EHCO_switch8端口,用于控制8路回波信號(hào)選通電路;FPGA芯片的IO133、IO132、IO129、IO128、IO127、IO126、IO125、IO124引腳連接至驅(qū)動(dòng)信號(hào)選通電路的DRIVE_switch1、DRIVE_switch2、DRIVE_switch3、DRIVE_switch4、DRIVE_switch5、DRIVE_switch6、DRIVE_switch7、DRIVE_switch8端口,用于控制8路驅(qū)動(dòng)信號(hào)選通電路。
圖8為FPGA芯片內(nèi)核電壓和I/O口電壓子模塊。其中+3.3V電源連接至FPGA引腳17、26、40、47、56、62、81、93、117、122、130、139,為FPGA的I/O口提供工作電壓;+1.2V連接至FPGA引腳5、29、45、61、78、102、116、134,為FPGA內(nèi)核提供工作電壓。
圖9為FPGA芯片地子模塊。其中引腳4、19、22、27、41、57、63、48、79、82、95、118、123、131、140與參考地平面連接。
圖10為FPGA芯片仿真接口子模塊,由U7A、R120、R119、R122、R118、R250、R251、R252、R253、R254、R255組成。其中,U7A的引腳18、16、20、15連接至JTAG接口,引腳12、13連接至串行配置器,引腳14、92、13、12、21連接至AS接口,引腳94、96、97用于配置FPGA工作模式,R120、R119、R122、R118為下拉電阻,R250、R251、R252、R253、R254、R255用于設(shè)置引腳94、96、97的端口電平。
圖11為FPGA芯片鎖相環(huán)電壓子模塊。其中+1.2V電源連接至FPGA引腳37、109,為數(shù)字鎖相環(huán)提供電壓;2.5V電源連接至FPGA引腳35、107,為模擬鎖相環(huán)提供電壓;FPGA引腳36、108接地。
圖12為FPGA芯片時(shí)鐘輸入子模塊。由U9、L4、C82、C97、R115、U7F組成。其中,U9為晶振,L4為磁珠,用于抑制電源傳導(dǎo)噪聲,C82為退耦電容,C97為濾波電容,R115為連接電阻,U7F的引腳24為時(shí)鐘信號(hào)輸入端。
圖7、圖8、圖9、圖10、圖11、圖12中的U7D、U7B、U7C、U7A、U7E、U7F組成了FPGA芯片。
圖13為FPGA芯片串行配置電路,由Flash型串行配置器構(gòu)成。
圖14為FPGA復(fù)位電路,由電阻R111、R112、R113、電容C96、二極管D2和按鍵組成。
圖15所示為DSP芯片電路,DSP芯片的型號(hào)為TMS320F28335;其中,+1.9V電源連接至引腳4、15、23、29、61、101、109、117、126、139、146、154、167,為DSP芯片內(nèi)核供電;+3.3V電源連接至引腳9、71、93、107、121、143、159、170,為DSP芯片IO口供電;引腳3、8、14、22、30、60、70、83、92、103、106、108、118、120、125、140、144、147、155、160、166、171連接至地。引腳80、78、87、79、76、77、85、86為DSP芯片JTAG端口。DSP芯片的152引腳連接至FPGA的START引腳,用于啟動(dòng)流量測(cè)量,通知FPGA芯片啟動(dòng)外部DAC模塊輸出驅(qū)動(dòng)信號(hào);DSP的114引腳連接至FPGA的INT2DSP引腳,用于通知DSP芯片開始接收FPGA芯片內(nèi)部存儲(chǔ)的高速ADC轉(zhuǎn)換碼值;DSP芯片的156引腳連接至FPGA的READ_EN引腳,用于使能FPGA芯片片內(nèi)雙口RAM的讀取;DSP芯片的158引腳連接至DSP的READ_CLK引腳,用于控制數(shù)據(jù)轉(zhuǎn)移的速度,為數(shù)據(jù)傳遞提供時(shí)鐘信號(hào);DSP芯片的115、116、119、122、123、124、127、128、129、130、131、132引腳連接至FPGA的DATA2DSP0~DATA2DSP11引腳,用于并行接收FPGA芯片中暫存的采樣數(shù)據(jù)。DSP芯片的10、11、12、13引腳連接至鐵電存儲(chǔ)器的FRAM_CS、FRAM_SOMI、FRAM_SIMO、FRAM_CLK引腳,用于和外部鐵電存儲(chǔ)器之間的數(shù)據(jù)交換;DSP芯片的65、64、63、62引腳連接至按鍵輸入的KEY0~KEY3引腳,用于接收外部的按鍵輸入信號(hào);DSP芯片的66、67、68引腳連接至外部液晶的LCD_CS、LCD_CLK、LCD_DI引腳,用于控制外部液晶模塊的顯示;DSP芯片的18、20引腳連接至串行通訊的SCITXDB、SCIRXDB引腳,用于和上位機(jī)之間的異步串行通訊。
圖16為DSP芯片引導(dǎo)模式選擇電路,由電阻R49、R50、R51、R52、R53、R54、R55和R56組成。通過配置R49和R50,R51和R52,R53和R54以及R55和R56之間的阻值比,即可修改DSP芯片的引導(dǎo)模式。
圖17為FPGA軟件組成圖。FPGA芯片的主要功能模塊包括:分頻模塊、ADC控制模塊、RAM_2PROT模塊、DAC控制模塊、ROM模塊、延遲模塊、判穩(wěn)模塊以及通道切換模塊,各個(gè)模塊之間采用同步設(shè)計(jì)方案。分頻模塊用于將外部輸入的50MHz時(shí)鐘信號(hào)調(diào)制為輸出至高速ADC的5MHz采樣時(shí)鐘和DAC的20MHz工作時(shí)鐘;ADC控制模塊用于將高速ADC的轉(zhuǎn)換碼值搬運(yùn)至FPGA芯片內(nèi)部的RAM_2PORT模塊;RAM_2PROT模塊則用于存放高速ADC轉(zhuǎn)換碼值,當(dāng)高速ADC的轉(zhuǎn)換碼值存儲(chǔ)達(dá)到一定數(shù)量后,向DSP芯片發(fā)出“請(qǐng)求讀取”信號(hào),然后將存儲(chǔ)的高速ADC轉(zhuǎn)換碼值按照一定的速率傳輸至DSP芯片;DAC控制模塊用于將ROM模塊中存儲(chǔ)的波形數(shù)據(jù)傳輸至高速DAC,產(chǎn)生相應(yīng)的激勵(lì)波形;延遲模塊用于控制在激勵(lì)信號(hào)發(fā)出之后,經(jīng)過預(yù)先設(shè)定的延遲時(shí)間,使能RAM_2PORT模塊開始存儲(chǔ)高速ADC的轉(zhuǎn)換碼值,用于延時(shí)切換驅(qū)動(dòng)信號(hào)通道和回波信號(hào)通道;判穩(wěn)模塊用于判斷FPGA收到的“開始測(cè)量”信號(hào)是否正常;通道切換模塊用于按順序切換驅(qū)動(dòng)信號(hào)通道和回波信號(hào)通道。
圖18所示為DSP軟件組成框圖,軟件設(shè)計(jì)采用了模塊化的設(shè)計(jì)方法。DSP軟件由主監(jiān)控程序和各個(gè)子程序模塊組成;子程序模塊包括初始化模塊、數(shù)據(jù)傳輸模塊、中斷模塊、計(jì)算模塊、FRAM讀寫模塊、串口通訊模塊、脈沖輸出模塊、看門狗模塊以及液晶顯示模塊。主監(jiān)控程序是整個(gè)系統(tǒng)的總調(diào)度程序,通過調(diào)動(dòng)各個(gè)子程序模塊實(shí)現(xiàn)系統(tǒng)的各項(xiàng)功能。各子程序模塊功能如下:
(1)初始化模塊:初始化模塊包括系統(tǒng)初始化、外設(shè)初始化和算法初始化。系統(tǒng)初始化完成系統(tǒng)時(shí)鐘和看門狗的初始化;外設(shè)初始化對(duì)片內(nèi)外設(shè)初始化,主要包括GPIO口、SPI(串行外設(shè)接口)等。算法初始化對(duì)累積流量、儀表參數(shù)進(jìn)行初始化。
(2)FRAM讀寫模塊:變送器選用FRAM來保存一些需要進(jìn)行掉電保存的數(shù)據(jù)。通過DSP的GPIO口模擬串行時(shí)序來實(shí)現(xiàn)對(duì)FRAM的讀寫和控制。
(3)數(shù)據(jù)傳輸模塊:在流量測(cè)量循環(huán)中,DSP需要將“開始測(cè)量”信號(hào)發(fā)送給FPGA來啟動(dòng)流量測(cè)量,F(xiàn)PGA采樣并存儲(chǔ)在雙口RAM中的信號(hào)數(shù)據(jù)需要傳輸給DSP來進(jìn)行數(shù)字信號(hào)處理。
(4)中斷模塊:為了確保順逆流測(cè)量時(shí)間上的準(zhǔn)確性,計(jì)算得到的瞬時(shí)流量不直接累積出流量,而是通過調(diào)用定時(shí)器中斷服務(wù)程序來計(jì)算累積流量,定時(shí)器中斷由DSP的內(nèi)部定時(shí)器1產(chǎn)生,周期為1秒。中斷服務(wù)程序首先讀取主監(jiān)控程序計(jì)算的瞬時(shí)流量結(jié)果,并累加其瞬時(shí)流量得到累積流量。然后根據(jù)瞬時(shí)流量的值更新PWM模塊的參數(shù),使其輸出一定頻率的脈沖來代表測(cè)得的瞬時(shí)流量。然后將定時(shí)器時(shí)間標(biāo)志置為1,以便在主監(jiān)控程序中更新液晶顯示以及上位機(jī)通信。
(5)計(jì)算模塊:計(jì)算模塊主要包括截取采樣信號(hào)從而得到有用信號(hào)、零相位濾波、采用回波信號(hào)幅值歸一化來尋找特征波、通過多零電平交點(diǎn)法計(jì)算過零點(diǎn)和計(jì)算傳播時(shí)間。
采用零相位數(shù)字濾波器,實(shí)現(xiàn)了回波信號(hào)的預(yù)處理;采用跟蹤回波信號(hào)幅值的可變閾值法,實(shí)現(xiàn)了回波信號(hào)特征波的拾??;采用多零電平交點(diǎn)法,得到了超聲波傳播時(shí)間;采用排序加權(quán)法,保證了瞬時(shí)流量計(jì)算的準(zhǔn)確性。
(6)串口通信模塊:串口通信模塊將瞬時(shí)流量、累積流量和采樣數(shù)據(jù)上傳給上位機(jī),方便調(diào)試工程師或者用戶對(duì)數(shù)據(jù)進(jìn)行離線處理。
(7)脈沖輸出模塊:脈沖輸出模塊用與在流量標(biāo)定時(shí),將流量計(jì)測(cè)量的流量以脈沖的形式傳送給其他裝置計(jì)數(shù)。
(8)液晶顯示模塊:顯示模塊將氣體超聲波流量計(jì)計(jì)算的瞬時(shí)流量和累積流量顯示在液晶(LCD)上,DSP通過GPIO模擬串口通信的方式將命令和數(shù)據(jù)傳送給LCD,LCD完成顯示。
(9)看門狗模塊:當(dāng)DSP軟件因?yàn)槟承┰蚨鵁o法正常工作時(shí),外部看門狗可以及時(shí)地對(duì)DSP進(jìn)行復(fù)位操作。
圖19為變送器系統(tǒng)軟件流程圖。工作流程如下:變送器上電之后,DSP芯片首先完成各個(gè)部分的初始化,然后,進(jìn)入主監(jiān)控程序,進(jìn)行流量測(cè)量的循環(huán)。DSP向FPGA發(fā)送“開始測(cè)量”指令。DSP發(fā)出的指令經(jīng)過FPGA判穩(wěn)模塊捕獲后,使能DAC控制模塊,控制ROM模塊將波形數(shù)據(jù)發(fā)送至高速DAC電路,同時(shí)FPGA選通兩對(duì)換能器。經(jīng)過一段延時(shí)時(shí)間之后,外部的高速ADC轉(zhuǎn)換電路依據(jù)FPGA提供的5MHz采樣頻率完成從模擬信號(hào)到數(shù)字信號(hào)的轉(zhuǎn)換。兩路回波信號(hào)數(shù)據(jù)被存儲(chǔ)在FPGA內(nèi)部的雙口RAM中。然后,F(xiàn)PGA切換發(fā)射/回波信號(hào)選通通道,并將以上操作重復(fù)4次,得到8路回波信號(hào)數(shù)據(jù),F(xiàn)PGA將內(nèi)部的雙口RAM空間中八路回波信號(hào)數(shù)據(jù)通過并口線傳輸至DSP。DSP獲得回波信號(hào)后,調(diào)用內(nèi)部的數(shù)字信號(hào)處理算法,計(jì)算出八路信號(hào)的傳播時(shí)間,再加權(quán)得到流速信息。將以上過程循環(huán)五次,對(duì)這五次的流速信息進(jìn)行平均,計(jì)算出瞬時(shí)流量,然后,對(duì)瞬時(shí)流量積分求得累積流量并且定時(shí)輸出。
圖20為DSP軟件的主監(jiān)控程序流程圖,變送器上電后主監(jiān)控程序自動(dòng)運(yùn)行。主監(jiān)控程序的具體操作步驟如下:
(1)電路系統(tǒng)初始化
系統(tǒng)上電后,DSP執(zhí)行初始化程序,包括外設(shè)配置和變量定義。外設(shè)配置包括對(duì)DSP的GPIO口資源的分配和設(shè)置、SCI通訊模塊的配置、液晶顯示的初始化、ePWM的初始化、定時(shí)器配置、中斷向量表的配置和中斷使能等。在變量定義環(huán)節(jié)中,定義流量計(jì)算需要的閾值、聲道長(zhǎng)度、聲速、修正系數(shù)等參數(shù)。并且建立8個(gè)隊(duì)列,每個(gè)隊(duì)列由50個(gè)數(shù)據(jù)空位組成,用于存放8個(gè)換能器接收到的超聲波的傳播時(shí)間(以下簡(jiǎn)稱傳播時(shí)間);每當(dāng)有一個(gè)新的傳播時(shí)間數(shù)據(jù)進(jìn)入時(shí),每個(gè)隊(duì)列首位的數(shù)據(jù)會(huì)被丟棄,新的傳播時(shí)間數(shù)據(jù)加在隊(duì)列尾部。在后面的測(cè)量過程中,將根據(jù)這8個(gè)隊(duì)列的數(shù)據(jù),實(shí)時(shí)計(jì)算出四聲道超聲波流量計(jì)順流和逆流的平均傳播時(shí)間。
(2)等待FPGA芯片存儲(chǔ)八路回波信號(hào)
DSP芯片向FPGA芯片發(fā)送“開始測(cè)量”信號(hào),F(xiàn)PGA芯片立即使能內(nèi)部的延時(shí)模塊,并由DAC控制模塊讀取ROM模塊中存儲(chǔ)的激勵(lì)信號(hào)的波形數(shù)據(jù),傳輸至驅(qū)動(dòng)信號(hào)生成和放大電路;再經(jīng)由FPGA芯片控制的發(fā)射/接收信號(hào)通道切換電路,輸出至直射式四聲道結(jié)構(gòu)的換能器A和換能器C、或者換能器B和換能器D、或者換能器E和換能器G、或者換能器F和換能器H,由換能器A和換能器C、或者換能器B和換能器D、或者換能器E和換能器G、或者換能器F和換能器H發(fā)出兩路超聲波;超聲波經(jīng)過一段渡越時(shí)間后,到達(dá)對(duì)應(yīng)的接收換能器;由換能器E和換能器G、或者換能器F和換能器H、或者換能器A和換能器C、或者換能器B和換能器D接收超聲波,形成兩路回波信號(hào);由FPGA芯片控制的發(fā)射/接收信號(hào)通道切換電路接收由換能器發(fā)出的回波信號(hào),并輸入至回波信號(hào)調(diào)理和采集電路;由回波信號(hào)調(diào)理和采集電路中的高速ADC完成數(shù)據(jù)轉(zhuǎn)換;并將高速ADC的轉(zhuǎn)換碼值存放于FPGA芯片內(nèi)部的RAM_2PORT模塊。
將上述過程重復(fù)4次;在每次重復(fù)時(shí),F(xiàn)PGA通過改變I/O口的輸出狀態(tài),按順序切換不同的發(fā)射換能器和接收換能器,切換順序?yàn)椋簱Q能器A和換能器C發(fā)射,換能器E和換能器G接收;換能器E和換能器G發(fā)射,換能器A和換能器C接收;換能器B和換能器D發(fā)射,換能器F和換能器H接收;換能器F和換能器H發(fā)射,換能器B和換能器D接收。重復(fù)4次后,就得到了8路回波信號(hào),并按照回波信號(hào)接收的順序,將回波信號(hào)存儲(chǔ)至FPGA芯片內(nèi)部的RAM_2PORT模塊。當(dāng)延時(shí)時(shí)間到達(dá)后,通過拉高設(shè)定的DSP芯片的GPIO口告知DSP芯片可以開始讀取數(shù)據(jù)。這就是所述的八路換能器激勵(lì)與八路回波信號(hào)數(shù)字信號(hào)處理相分離的模式。
(3)復(fù)制數(shù)據(jù)
DSP芯片檢測(cè)到設(shè)定的端口的高電平后,首先將存放在FPGA芯片內(nèi)部的RAM_2PORT模塊中的一路回波信號(hào)數(shù)據(jù)復(fù)制到DSP芯片的片內(nèi)RAM中。
(4)DSP芯片對(duì)數(shù)據(jù)進(jìn)行處理,計(jì)算超聲波的傳播時(shí)間
接收到的超聲波回波信號(hào)波形如圖21所示。該信號(hào)波形類似棗核狀,每個(gè)波的峰值逐漸增大再逐漸減小,直至衰減為零。首先采用零相位濾波器對(duì)采樣得到的超聲波回波信號(hào)進(jìn)行數(shù)字濾波。數(shù)字濾波器的通帶頻率為20kHz~380kHz。將濾波后的0m3/h流量和600m3/h流量下的信號(hào)波形對(duì)齊,繪制在同一張圖上,如圖22所示。可見,這兩個(gè)流量下的回波信號(hào)的形狀基本一致。通過大量的實(shí)驗(yàn)數(shù)據(jù)分析,確定了在各個(gè)流量下,回波信號(hào)各個(gè)極值點(diǎn)幅值相對(duì)于最大值點(diǎn)幅值的比值基本不變。由于回波信號(hào)具有這種特征,可以根據(jù)特定的比值來準(zhǔn)確地定位回波信號(hào)中的某一個(gè)特征波。首先,在濾波后的回波信號(hào)中找到最大峰值A(chǔ)max,再根據(jù)最大峰值設(shè)定一個(gè)閾值SW(SW=α·Amax)。其中,α為一個(gè)固定比值,由大量實(shí)驗(yàn)統(tǒng)計(jì)得到。以圖22對(duì)應(yīng)的換能器為例,在0~900m3/h流量范圍之間,每隔100m3/h取一個(gè)流量點(diǎn),在每個(gè)流量點(diǎn)下采集50次回波信號(hào),然后,用MATLAB對(duì)其進(jìn)行分析,計(jì)算回波信號(hào)中各個(gè)峰值與最大峰值的比例。可見,在各個(gè)流量下,第5個(gè)波與第6個(gè)波與最大峰的比值基本上是不變的。第5個(gè)波的波峰與最大峰的比值維持在0.39左右,而第6個(gè)波的波峰與最大峰的比值則維持在0.53左右。所以,取α為兩者的均值,即0.46。用SW去檢測(cè)回波信號(hào),當(dāng)回波信號(hào)的幅值第一次達(dá)到這個(gè)閾值時(shí),所對(duì)應(yīng)的波就是要找的特征波。這種確定回波信號(hào)中特征波的方法稱為可變閾值法。
通過這種可變閾值方法準(zhǔn)確地找到特征波后,就可以根據(jù)這個(gè)特征波計(jì)算所需的過零點(diǎn)。這里采用特征波后8個(gè)過零點(diǎn)的平均值。通過計(jì)算這8個(gè)過零點(diǎn)的平均值,獲得準(zhǔn)確的傳播時(shí)間。這樣可以消除隨機(jī)誤差,提高測(cè)量精度。這8個(gè)過零點(diǎn)按照時(shí)間先后順序排列分別為:τ1,τ2……τ8。在確定過零點(diǎn)時(shí)間時(shí),采用線性插值的方法,如圖23所示。若第n點(diǎn)的幅值為x(n),第n+1點(diǎn)的幅值為x(n+1),且x(n)與x(n+1)數(shù)值的極性相反,那么,第n點(diǎn)和第n+1點(diǎn)的之間必有一個(gè)過零點(diǎn),可通過式(5)進(jìn)行線性插值運(yùn)算,計(jì)算出信號(hào)過零點(diǎn)τi(i=1,2,3…8):
式中,Tc為信號(hào)采樣的周期,因?yàn)椴蓸宇l率是5MHz,這里Tc=0.2μs;n為第i個(gè)過零點(diǎn)對(duì)應(yīng)的點(diǎn)數(shù);x(n)與x(n+1)分別是第n點(diǎn)和第n+1點(diǎn)的幅值。
傳播時(shí)間T可通過式(6)計(jì)算獲得:
式中,τi(i=1,2,3…8)為由式(5)計(jì)算獲得的過零點(diǎn)時(shí)刻,t'為一個(gè)固定的偏差值。該偏差值可以在零流量的情況下計(jì)算出來。
當(dāng)管道內(nèi)氣體不流動(dòng)情況下,首先,依據(jù)測(cè)量聲道的長(zhǎng)度以及實(shí)際聲速計(jì)算出超聲回波的傳播時(shí)間T0;然后,依據(jù)式(5)計(jì)算獲得此時(shí)8個(gè)過零點(diǎn)對(duì)應(yīng)的時(shí)間τ0i(i=1,2,3…8);最后,通過式(7)計(jì)算出該固定偏差值t'。
得到t′后,就可根據(jù)式(6)和(7)實(shí)時(shí)計(jì)算出超聲波的傳播時(shí)間。
(5)計(jì)算瞬時(shí)流量
將步驟(3)~(4)重復(fù)8次,就完成了四個(gè)聲道順流和逆流傳播時(shí)間的測(cè)量,得到一次測(cè)量循環(huán)中的8個(gè)傳播時(shí)間,將這8個(gè)傳播時(shí)間分別放入步驟(1)中所建立的8個(gè)隊(duì)列中。
執(zhí)行5次這樣的測(cè)量,計(jì)算出四個(gè)聲道順流和逆流的平均傳播時(shí)間,并根據(jù)這個(gè)平均傳播時(shí)間計(jì)算出平均流量,并作為瞬時(shí)流量顯示。
為了提高系統(tǒng)測(cè)量的穩(wěn)定性,避免極端情況下出現(xiàn)的粗大誤差,采用判斷“臺(tái)階”的方法剔除異常值,即在計(jì)算平均流量時(shí),首先將某一個(gè)聲道對(duì)應(yīng)的傳播時(shí)間隊(duì)列里的50個(gè)數(shù)據(jù)取出,存放在另外開辟的數(shù)組中,然后,將代表50次測(cè)量的傳播時(shí)間的數(shù)據(jù)從小到大進(jìn)行排序。如果這50次測(cè)量結(jié)果中存在粗大誤差,那么,排序后的傳播時(shí)間值就會(huì)出現(xiàn)明顯的“臺(tái)階”現(xiàn)象,如圖24所示。通過判斷“臺(tái)階”,將數(shù)據(jù)分成若干段,點(diǎn)數(shù)最多的那一段數(shù)據(jù)即為正確的傳播時(shí)間數(shù)據(jù)。以圖24為例,“臺(tái)階”出現(xiàn)在第6點(diǎn)和第40點(diǎn),這50個(gè)傳播時(shí)間數(shù)據(jù),則被分為3小段:1~5點(diǎn)、6~39點(diǎn)以及40~50點(diǎn)。數(shù)據(jù)點(diǎn)數(shù)最多的6~39段為測(cè)量正確的傳播時(shí)間。然后,求正確的傳播時(shí)間數(shù)據(jù)的均值,即可得到該個(gè)通道的平均傳播時(shí)間t。
計(jì)算出四個(gè)聲道順流和逆流的平均傳播時(shí)間t1、t2、t3、t4、t5、t6、t7、t8后??梢愿鶕?jù)公式(8)計(jì)算得到聲道1和聲道4的瞬時(shí)流量Q1,根據(jù)公式(9)計(jì)算得到聲道2和聲道3的瞬時(shí)流量Q2。
式中,L1為聲道1和聲道4的聲道長(zhǎng)度,L2為聲道2和聲道3的聲道長(zhǎng)度,θ1為聲道1和聲道4的聲道角的角度,θ2為聲道2和聲道3的聲道角的角度,所述聲道角為超聲波傳播路徑與管道軸線之間的夾角。D為管道直徑。φ為線速度到面速度的轉(zhuǎn)換參數(shù),通過標(biāo)定實(shí)驗(yàn)得到。
通過公式(10)計(jì)算得到瞬時(shí)流量Q,Q1所占比重為0.2764,Q2所占比重為0.7236。
Q=0.2764×Q1+0.7236×Q2 (10)
式中,Q為瞬時(shí)流量。
(6)計(jì)算累積流量
在得到修正后的瞬時(shí)流量后,由DSP芯片的內(nèi)部定時(shí)器1的中斷服務(wù)程序計(jì)算累積流量,每隔1秒鐘累加一次,圖25為DSP芯片的內(nèi)部定時(shí)器1的中斷服務(wù)程序流程圖。定時(shí)器中斷服務(wù)程序首先讀取主監(jiān)控程序計(jì)算的瞬時(shí)流量結(jié)果,并累加得到累積流量;再根據(jù)瞬時(shí)流量的值更新脈沖輸出模塊的參數(shù),輸出一定頻率的脈沖,表示測(cè)得的瞬時(shí)流量;然后,將定時(shí)器時(shí)間標(biāo)志置為1,以便在主監(jiān)控程序中更新液晶顯示以及進(jìn)行上位機(jī)通信。