超聲波流量計多聲道氣體測量技術探討 九十
超聲波流量計因為流速變化引起這些過零點時刻不同,當過零時刻測量值有偏差時,就需要重新發射3 次超聲波信號來計算。由于單片機計時會產生1 個計數的誤差,因此當這些過零點測量值的差值在在-1~+1 之間時,可以認為是相同流速下的超聲波回波信號,否則這3 次測量值需要作廢,重新發射3 次超聲波信號并進行以上相同的的處理方法,直到判斷出3 次超聲波回波信號是在相同流速下的過零點時刻值為止。
程序實現中開辟數組fir[]、first[]、sec[]、second[]、fin[]、final[]來存儲這些值,其中前兩個數組分別用來存儲記錄到的回波信號過零點值的上升沿和下降沿時刻,第三個和第四個數組用來存儲中間變量,后兩個數組分別用來存儲相與運算后的回波信號過零點的上升沿和下降沿時刻值。第一次和第二次的回波信號過零點時刻值存入前兩個數組和預存入第三、四個數組中,進行相與邏輯運算后,其結果送入后兩個數組中,程序流程圖如圖4-25。第一次回波過零點時刻值的計數個數為cl,第二次過零點值的計數個數為c0,最長的記數個數為100 個。
第三次得到的回波信號過零點值存入fir[]、first[]中,與上面結果相與運算后,將結果存入sec[]和second[]中,然后進行圖4-25 中相同的操作,這3 次記錄的過零點時間值相與運算后,便可以和單片機中預存的超聲波標準信號進行相關運算。根據4.2.3 節中討論的改進型數字極性相關算法設計程序,來識別超聲波信號的到達時刻,首先將移位數gap 設置為500~1200,快速找到時刻T0值,程序流程圖如圖4-26。其中兩個信號相與運算的算法可以參考圖4-25 中的方法。
超聲波流量計