超聲波流量計(jì)的高精度算法以及系統(tǒng)詳細(xì)說(shuō)明
經(jīng)查閱大量文獻(xiàn),發(fā)現(xiàn)超聲波流量計(jì)仍然存在著波形檢測(cè)不準(zhǔn)確,到達(dá)時(shí)間檢測(cè)不,運(yùn)行速度慢等缺點(diǎn)[71][72]。本文根據(jù)以上幾點(diǎn),提出以下幾個(gè)方案并進(jìn)行實(shí)施。,針對(duì)波形信號(hào)檢測(cè)不準(zhǔn)確的缺點(diǎn),提出了雙閾值和周期相結(jié)合的邊沿檢測(cè)算法,提高了波形信號(hào)識(shí)別的準(zhǔn)確度[73][74]。第二,針對(duì)到達(dá)時(shí)間檢測(cè)不的特點(diǎn),提出了改進(jìn)的脈沖計(jì)數(shù)算法以實(shí)現(xiàn)在同等的硬件條件下的高精度的時(shí)間檢測(cè)[75][76]。經(jīng)過(guò)計(jì)算(第四章節(jié)將詳細(xì)介紹),超聲波到達(dá)時(shí)間精度***好達(dá)到 MHz 級(jí)別,那么就要求參考計(jì)時(shí)脈沖頻率達(dá)到 GHz 級(jí)別,那么計(jì)數(shù)器的位數(shù)必然很大,消耗更多的內(nèi)部資源[77][78]。本文確定的脈沖計(jì)數(shù)法測(cè)量傳播時(shí)間,通過(guò)邊沿檢測(cè)算法實(shí)現(xiàn)在不增加計(jì)時(shí)脈沖頻率的情況下來(lái)提高測(cè)時(shí)精度[79][80]。第三,針對(duì)運(yùn)行速度慢的缺點(diǎn),提出了單片機(jī)和 FPGA 相結(jié)合的硬件結(jié)構(gòu),其中 FPGA 有較高的晶振頻率并采用的是并行處理結(jié)構(gòu),在高速信號(hào)接收和高速的信號(hào)處理方面有著明顯的優(yōu)勢(shì)。因此,采用 FPGA 作為信號(hào)接收和處理的芯片。
而單片機(jī)有大量的數(shù)據(jù)線和地址線,可以實(shí)現(xiàn)與其它硬件相結(jié)合,作為整個(gè)系統(tǒng)的控制芯片。因此,采用單片機(jī)作為發(fā)射和接收超聲波信號(hào)電路轉(zhuǎn)換、與 PC 機(jī)之間的串口通信的芯片。下面,本文就到達(dá)信號(hào)檢測(cè)算法和到達(dá)時(shí)間檢測(cè)算法進(jìn)行具體的介紹??紤]本文是基于 C8051F122 為主控芯片和和以 FPGA 為檢測(cè)芯片的硬件結(jié)構(gòu)對(duì)超聲波流量計(jì)進(jìn)行改進(jìn)的,因此本文的超聲波流量計(jì)的設(shè)計(jì)的整體方案可設(shè)置為如圖 3.1 所示。
圖 3.1 整體系統(tǒng)結(jié)構(gòu)圖
2 接收信號(hào)處理模塊。 超聲流量計(jì)中的超聲波發(fā)出后經(jīng)過(guò)流體后幅值會(huì)大幅度衰減,因此接收信號(hào)的電路中有信號(hào)放大電路。由于超聲波在傳播過(guò)程中伴隨著噪聲,因此接收信號(hào)的電路中有濾波電路。
3 傳播時(shí)間的測(cè)量。 超聲波傳輸信號(hào)時(shí)間測(cè)量分為順、逆流傳播時(shí)間測(cè)量。傳播時(shí)間是從超聲波發(fā)射時(shí)刻到超聲波接收時(shí)刻之間的時(shí)間,本文設(shè)置發(fā)射電路連續(xù)發(fā)送 8 個(gè)正弦波信號(hào)作為超聲波的發(fā)射信號(hào),接收到的信號(hào)進(jìn)行硬件濾波和軟件濾波后,對(duì)信號(hào)進(jìn)行進(jìn)一步的處理,得到超聲波的到達(dá)時(shí)間。
1、超聲波流量計(jì)高精度算法:
本文采用的 FPGA 芯片具有并行處理特點(diǎn),具有捕獲信號(hào)和迅速處理數(shù)據(jù)的特點(diǎn),因此采用 FPGA 作為信號(hào)檢測(cè)和處理的芯片。不僅如此,流量計(jì)的接收模塊很容易接收到外部環(huán)境、內(nèi)部電路等噪聲信號(hào)。因此,提高超聲波流量計(jì)的測(cè)量精度,必須要做好兩點(diǎn)工作:一是捕獲超聲波信號(hào),確定到達(dá)時(shí)間。二是正確的處理超聲波噪聲信號(hào)以確保回波信號(hào)的準(zhǔn)確性,達(dá)到獲得超聲波信號(hào)的到達(dá)時(shí)間。下面就如何獲取準(zhǔn)確的超聲波信號(hào)和檢測(cè)準(zhǔn)確的到達(dá)時(shí)間進(jìn)行介紹和分析。
2、信號(hào)捕獲算法:
模塊設(shè)計(jì)方案:FPGA 的 8 通道的模擬信號(hào)經(jīng)過(guò)放大、濾波后,再經(jīng)過(guò) A/D 模數(shù)轉(zhuǎn)換電路后將超聲波換能器的聲信號(hào)轉(zhuǎn)變?yōu)殡娦盘?hào)。單片機(jī)通過(guò)前期數(shù)據(jù)采集的長(zhǎng)度和周期自調(diào)當(dāng)前的采集信號(hào)周期。信號(hào)采集的算法是基于超聲波流量計(jì)回波信號(hào)的特點(diǎn)設(shè)置的。超聲波的發(fā)射是基于單片機(jī)的定時(shí)開關(guān)電路設(shè)計(jì)的,因此超聲波的發(fā)射時(shí)間可以準(zhǔn)確的得到。
超聲波信號(hào)的到達(dá)時(shí)間的檢測(cè)是超聲波流量計(jì)的研究的重點(diǎn)。在查閱大量文獻(xiàn)后,發(fā)現(xiàn)以往的算法都是根據(jù)閾值法檢測(cè)超聲波,算法的原理是設(shè)定一定的閾值 A,通過(guò)比較檢測(cè)到的信號(hào)的幅值與 A 相比,一旦大于閾值 A,則認(rèn)為超聲波信號(hào)已經(jīng)到來(lái),進(jìn)行信號(hào)的捕獲與處理,如圖 3.2 所示。閾值算法在一般情況下比較適用,有些情況下則不太適用。比如說(shuō),在超聲波信號(hào)到來(lái)之前,噪聲信號(hào)的幅值大于閾值 A,本文就認(rèn)為超聲波信號(hào)已經(jīng)到來(lái),一旦對(duì)判斷錯(cuò)誤的超聲波信號(hào)進(jìn)行處理,那么測(cè)量結(jié)果肯定存在誤差。本文在此基礎(chǔ)上提出了,雙閾值算法與周期算法相結(jié)合的算法。
圖 3.2 傳統(tǒng)捕獲算法示意圖
圖 3.3 雙閾值與周期相結(jié)合的算法示意圖
3、高精度測(cè)時(shí)算法:
要想提高超聲波流量計(jì)測(cè)量精度,必須提高檢測(cè)到達(dá)時(shí)間的準(zhǔn)確性。脈沖計(jì)數(shù)法是計(jì)算超聲波到達(dá)時(shí)間***基本的方法,適合測(cè)量頻率較低的待測(cè)信號(hào)的。但是脈沖計(jì)數(shù)法因?yàn)槠錅y(cè)量精度的局限性,無(wú)法滿足高精度測(cè)量的要求,因此人們?cè)谔幚泶朔N計(jì)數(shù)方式都采用將誤差量化并將量化誤差變小,實(shí)現(xiàn)高精度測(cè)量。 脈沖計(jì)數(shù)法是用參考時(shí)鐘來(lái)量化待測(cè)時(shí)間,脈沖計(jì)數(shù)法是一種粗測(cè)時(shí)方法,它的精度取決于計(jì)數(shù)脈沖的頻率的大小,當(dāng)頻率大時(shí),脈沖分辨率就高,測(cè)時(shí)精度也就越高。工作原理如圖3.4 所示,待測(cè)時(shí)間長(zhǎng)度為xT ,參考時(shí)鐘周期為0T ,脈沖數(shù)為0N ,那么計(jì)算得到的待測(cè)時(shí)間為: x0 0T ?N T (3.1) 實(shí)際待測(cè)時(shí)間為: x0 0T ?N T ? ?T (3.2)
圖 3.4 脈沖計(jì)數(shù)法
從上面的公式可以看出,脈沖計(jì)數(shù)法的測(cè)量誤差為 ?T ,由圖 3.4 可以看出參考時(shí)鐘周期0T會(huì)影響測(cè)量到達(dá)時(shí)間的精度。從減少計(jì)算得到的時(shí)間和實(shí)際待測(cè)時(shí)間 ?T 的方面著手,方法大致分為兩大類。
圖 3.5 游標(biāo)卡尺法
4、高精度測(cè)時(shí)算法實(shí)現(xiàn)過(guò)程:
邊沿檢測(cè)算法是將檢測(cè)信號(hào)與參考信號(hào)設(shè)置在同一個(gè)時(shí)間點(diǎn)開始,檢測(cè)兩個(gè)信號(hào)是否同步。如果檢測(cè)到的信號(hào)與參考信號(hào)不同步時(shí),則繼續(xù)檢測(cè),直到檢測(cè)到同步信號(hào)為止。通過(guò)此種計(jì)算方法可將誤差轉(zhuǎn)換到參考時(shí)鐘的周期的整數(shù)倍。本文將此種邊沿檢測(cè)算法運(yùn)用到超聲波流量計(jì)的信號(hào)的檢測(cè)中,將得到更加準(zhǔn)確的檢測(cè)結(jié)果。 那么基于 FPGA 的超聲波信號(hào)的邊沿檢測(cè)過(guò)程是:C8051F122 發(fā)射超聲波脈沖的同時(shí),同時(shí)啟動(dòng) FPGA 進(jìn)行超聲波傳播計(jì)數(shù)和發(fā)射次數(shù)計(jì)數(shù)。
超聲波傳播時(shí)間是將參考時(shí)鐘周期乘以傳播計(jì)數(shù)的次數(shù),發(fā)射計(jì)數(shù)器計(jì)數(shù)了總的傳播時(shí)間內(nèi)超聲波發(fā)射的次數(shù)。檢測(cè)分為兩個(gè)方面,一方面是當(dāng)接收端接收到超聲波信號(hào)的時(shí)候,立即通知發(fā)射端使其繼續(xù)發(fā)射超聲波信號(hào)。另一方面是檢測(cè)參考時(shí)鐘與發(fā)射信號(hào)1S ,接收信號(hào)2S 是否同步。如果不同步,則繼續(xù)發(fā)射超聲波,進(jìn)行下一組信號(hào)的邊沿檢測(cè)。圖 3.6 表示了邊沿檢測(cè)算法的具體過(guò)程。
圖 3.6 到達(dá)時(shí)間檢測(cè)算法
假定 P 時(shí)刻,本文檢測(cè)到的發(fā)射信號(hào)2S 與參考時(shí)鐘同步時(shí),那么立刻關(guān)閉超聲波信號(hào)發(fā)射次數(shù)計(jì)時(shí)器和超聲波傳播時(shí)間計(jì)數(shù)器。那么記錄下傳播時(shí)間計(jì)數(shù)器的值為tN ,發(fā)射次數(shù)計(jì)數(shù)器的值為sN ,參考時(shí)鐘 0 的周期為0T 。那么在 P 時(shí)刻,超聲波傳播的總時(shí)間為 ? ?01tN ? ?T ,那么在總的傳播時(shí)間內(nèi),發(fā)射超聲波sN 次,換句話說(shuō),這段時(shí)間其實(shí)是sN 次聲程的總傳播時(shí)間。如果此刻本文用iT 代表超聲波從發(fā)射到接收的單次聲程的時(shí)間差,并且假定在接收到的超聲波后再發(fā)射超聲波的間隔時(shí)間為? ,那么邊沿檢測(cè)到的單程傳播時(shí)間可以表示為式(3.3)。 ? ? ? ?01 1t ssN T NTN? ? ??? (3.3) 邊沿檢測(cè)算法是檢測(cè)參考時(shí)鐘與接收信號(hào)時(shí)鐘的同步性,若不同步則繼續(xù)檢測(cè),直到檢測(cè)到同步為止。根據(jù)多次發(fā)射超聲波時(shí)間和接收超聲波時(shí)間之差,將誤差轉(zhuǎn)換到兩者之差中,進(jìn)一步提高了超聲波流量計(jì)的測(cè)量精度。
本章小結(jié):
本章結(jié)合周期檢測(cè)算法和雙閾值檢測(cè)算法以提高波形檢測(cè)的精度。采用了游標(biāo)卡尺的原理高精度測(cè)量了超聲波的到達(dá)時(shí)間,摒棄傳統(tǒng)的芯片倍頻方法,占用更少的主控芯片內(nèi)存,提高了主控芯片的效率。
相關(guān)文章:
TDC7200高精度超聲波流量計(jì)
基于脈沖群相關(guān)法的時(shí)差式超聲波流量計(jì)
超聲波流量計(jì)結(jié)構(gòu)特點(diǎn)及合理選型
相關(guān)產(chǎn)品: