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