梁華鋒,梁國偉,馬文濤,孫 斌
(中國計量學院 計量測試工程學院,浙江 杭州 310018)
油品流量測量結(jié)果表明,油品粘度變化對油流量儀表的儀表特性有著顯著的影響,但是該影響程度到底如何尚未能得到很好的研究.為了深入研究粘度對油流量儀表特性的影響,可變粘度油流量標準裝置的研制就成為了必然.該裝置采用帶光柵尺的活塞式體積管作為標準器,具有DN15、DN25、DN50三個口徑的試驗管道,能夠?qū)崿F(xiàn)油品粘度在1.5~40cSt范圍內(nèi)的調(diào)節(jié),流量上限可以達到25m3/h,主要用于粘度對脈沖型油流量儀表流量特性影響的試驗研究[1,2].
對于精度等級為0.1級的流量儀表,為了保證儀表系數(shù)的檢定精度,計數(shù)器的計量準確度至少要達到±0.01%,也就是說計數(shù)器的計數(shù)誤差為±1個脈沖的情況下,要達到這樣的計數(shù)精度,檢定過程中計數(shù)器采集的脈沖數(shù)至少需要10000個[3,4].但由于場地大小等種種原因的限制,變粘度油流量標準裝置不能加工得過大,其標準體積管的容積只有31.4L,也就是說在25m3/h的流量下,有效檢定時間不足4.5s,采用傳統(tǒng)的計數(shù)方式無法滿足計數(shù)精度要求.
針對這一問題,本文選擇NI公司的FPGA作為控制器,采用可以在較短的檢定時間內(nèi),用較小體積的檢定容器,實現(xiàn)計數(shù)總脈沖數(shù)小于10000仍能保證±0.01%計數(shù)精度的雙時間脈沖插值法作為計數(shù)法,設計了一套基于FPGA硬件的計時計數(shù)器,實現(xiàn)對標準體積管光柵尺和被檢表的兩路信號的脈沖計數(shù),實驗結(jié)果表明效果良好.
雙時間法的測量原理[5]如圖1,圖中K1、K2為起始信號開關(guān).
圖1 雙時間法計數(shù)原理Figure 1 Principle of two-time counting method
當流量穩(wěn)定后,體積管活塞在介質(zhì)的推動下運行,活塞觸到K1時,K1發(fā)出信號使得計數(shù)器開始計時、計數(shù),活塞觸到K2時,計數(shù)器停止計時、計數(shù).啟停時間內(nèi)的實際脈沖數(shù)可以通過式(1)計算得到.
式(1)中:N為經(jīng)雙時間法插值后的脈沖信號數(shù);N1為計數(shù)器記錄下的脈沖信號數(shù);T為檢測啟停信號間的時間間隔;T1為從K1發(fā)出信號后第一個脈沖上升沿到K2發(fā)出信號后第一個脈沖上升沿之間整脈沖周期對應的時間間隔.
圖1中,若控制開始信號在1位置,控制結(jié)束信號在1′位置,則是在差不多相同的控制時間T內(nèi),記錄脈沖數(shù)最少的情況.控制開始信號到來時,被檢信號的第一個脈沖上升沿剛好沒有被記到,停止信號到來后的第一個脈沖上升沿又尚未到達,恰好又沒被記到,這樣在差不多相同控制時間內(nèi)幾乎少計了一個脈沖.若控制開始信號在2位置,控制結(jié)束信號在2′位置,則是在差不多相同的控制時間T內(nèi),記錄脈沖數(shù)最多的情況.此時,緊接著開始信號,被檢信號的第一個脈沖上升沿到來,被記錄;最后一個脈沖上升沿剛被記錄,停止信號就到了,這樣在差不多的控制時間內(nèi)又幾乎多計了一個脈沖.
所以,在相同的計數(shù)脈沖情況下,采用傳統(tǒng)的計時方式最大會帶來一個脈沖周期的誤差,若信號的脈沖頻率較低,脈沖周期變長,帶來的誤差也更加明顯.
根據(jù)以上雙時間法原理,設計的計數(shù)系統(tǒng)的基本結(jié)構(gòu)如圖2.它主要由工控機、下位機、數(shù)字輸入模塊、及標準的脈沖信號發(fā)生器M1和M2組成.
圖2 計數(shù)系統(tǒng)結(jié)構(gòu)Figure 2 Sructure of counting system
下位機選擇了NI公司以FPGA作為控制核心的cRIO-9073系統(tǒng),該系統(tǒng)由帶FPGA控制器及C系列模塊兩部分組成.FPGA是一種可編程門陣列,通過編譯軟件程序,可以形成特定功能的硬件電路[6].由于變粘度油流量標準裝置的標準體積管容積很小,為保證檢定過程的計數(shù)精度,需要分別對體積管光柵尺和被檢表脈沖信號進行雙計時,也就是要求同時實現(xiàn)3路計時,2路計數(shù),一般的控制器很難完成這樣的任務.cRIO-9073具有32位的計數(shù)長度,硬件時鐘頻率高達40MHz,且可以通過軟件編程的方式定義足夠多的計時、計數(shù)器,結(jié)合數(shù)字輸入模塊就能夠?qū)崿F(xiàn)所需計時、計數(shù)功能[7].該控制器既可以通過C系列模塊輕松實現(xiàn)各種數(shù)字、模擬量的輸入輸出,還可以通過網(wǎng)線實現(xiàn)與上位機通訊,用于顯示采集的數(shù)據(jù).
由于變粘度油流量標準裝置的機械結(jié)構(gòu)尚未完成加工,光柵尺與被檢表的脈沖信號分別通過兩臺標準脈沖信號發(fā)生器M1、M2來模擬,設定M1的信號頻率為10kHz,M2的信號頻率為40Hz.兩路脈沖信號通過數(shù)字輸入模塊NI9423實現(xiàn)與控制器的連接,控制器再通過Ethernet實現(xiàn)與工控機通訊.
計數(shù)系統(tǒng)的軟件功能通過虛擬儀器開發(fā)平臺LabVIEW來實現(xiàn),其功能結(jié)構(gòu)如圖3所示.
圖3 程序功能結(jié)構(gòu)Figure 3 Functional structure of the program
計時器T、T標、T被是根據(jù)控制信截取FPGA板上時鐘的一個時間段.當開始信號脈沖(第一個控制脈沖)到達時,觸發(fā)器D1的Q端輸出高電平,計時器T的選擇結(jié)構(gòu)對應邏輯真,立即開始計時[8].此時,觸發(fā)器D2、D3雖未立即開始工作,但它們的D端均已變?yōu)楦唠娖剑坏┕鈻懦吆捅粰z表各自在開始信號延后的第一個信號上升沿到來就觸發(fā)這兩個DQ觸發(fā)器的Q端輸出高電平,計時器T標、T被就立即開始計時.當停止信號脈沖(第二個控制脈沖)到來時,觸發(fā)器D1再次被觸發(fā)而使Q端變低電平,計時器T的選擇結(jié)構(gòu)立即停止計時.但D2、D3觸發(fā)器的Q端卻仍保持高電平,直到分別被光柵尺和被檢表在停止信號延后的第一個信號上升沿再次觸發(fā),才使得Q端輸出低電平,繼而使得計時器T標、T被停止工作[9,10],計時器T、T標、T被記錄了控制信號間的時間間隔.
FPGA的計數(shù)器與傳統(tǒng)的硬件計數(shù)器有所區(qū)別,它們采用的是軟件計數(shù)的方式.該計數(shù)器由一個三與門、一個大于號、一對移位寄存器和兩個選擇功能塊組成,用于實現(xiàn)對被測信號的上升沿進行判斷、記錄.這里要解決的主要問題是應嚴格保證計數(shù)器只記錄開始信號與結(jié)束信號之間的脈沖上升沿個數(shù)或下降沿個數(shù)(一般使用上升沿),而不受方波信號高低電平的影響.控制信號的時序邏輯如圖4.
圖4 信號時序邏輯Figure 4 Temporal logic of the signal
當開始信號到來,在1位置,D1的Q端跳變成高電平,D2、D3的Q端還是低電平,不論被測信號此時是否為高電平,三與門的輸出端始終為低電平,大于號的右端為邏輯假,選擇結(jié)構(gòu)對應邏輯假的操作使計數(shù)器N標保持原來的值,初值為0.等到控制開始信號到來后,被測信號的第一個上升沿觸發(fā)D2、D3的Q端輸出高電平,此時由于三與門的輸入端均為高電平,如位置2,它的輸出也為高電平.與移位寄存器中保存的低電平相比較,大于號輸出邏輯真,選擇結(jié)構(gòu)對應邏輯真的操作使計數(shù)器N標、N被加1,此后對輸入信號的每一個上升沿作加1操作.等到結(jié)束控制信號到來后,D1的Q端變?yōu)榈碗娖?,位?這個信號脈沖被記錄,而位置4的脈沖由于D1的Q端已經(jīng)處于低電平而未被記錄.計數(shù)器N標、N被記錄的數(shù)據(jù)就是對應控制信號的脈沖數(shù).
將記錄的數(shù)據(jù)T、T標、N標代入公式(1)即可得出光柵尺的插值脈沖數(shù).同理,根據(jù)T、T被、N被可以計算得到被檢表的插值脈沖數(shù).
假定標準體積管的有效檢定容積為30L,最大流量為27m3/h,最大流量下檢定時間為4s,光柵尺發(fā)出的最大脈沖頻率為50kHz,則標準體積管的流量系數(shù)K標為6666.667L;被檢表最大流量為27m3/h,最大流量對應的脈沖頻率為200Hz,則被檢表的儀表系數(shù)K被為26.667L.
假設標準體積管與被檢表信號完全線性,即在全流量范圍內(nèi)儀表系數(shù)為常數(shù).實驗采用高穩(wěn)定度的信號發(fā)生器Tektronix AFG3101和Agilent 33250A分別模擬標準體積管的光柵尺脈沖信號和被檢表脈沖信號.設定Tektronix AFG3101的頻率為10kHz,相當于通過標準器的流量為5.4m3/h.在該流量下被校表的輸出頻率應為40Hz,由Agilent 33250A模擬輸出.測量結(jié)果如表1.T表示控制信號之間的時間;N標、T標分別表示光柵尺脈沖數(shù)和對應脈沖數(shù)的完整周期時間;N被、T被表示被檢表的脈沖數(shù)和對應脈沖數(shù)的完整周期時間;F標(N標/T標)、F被(N被/T被)分別表示檢測得到的標準信號和被檢表信號頻率,Q被為被檢表的流量.
從表1中可見,經(jīng)計時計數(shù)器測量得到的兩臺信號發(fā)生器的頻率非常穩(wěn)定.對于相同脈沖數(shù)的完整周期測量時間,計時誤差最多相差1μs,且啟??刂茣r間T的值與T標、T被的值相比有比T標、T被大的,也有比T標、T被小的,呈隨機性分布,符合啟??刂菩盘柺请S機發(fā)出的規(guī)律.鑒于上述兩點可以說明硬件控制邏輯的正確性與實驗數(shù)據(jù)的可靠性.
觀察實驗數(shù)據(jù)可得,第11組數(shù)據(jù),被檢表在相同控制時間的情況下采用傳統(tǒng)計數(shù)方式比采用脈沖插值計數(shù)方式多計了0.49個脈沖;第14組數(shù)據(jù),被檢表在相同控制時間的情況下采用傳統(tǒng)計數(shù)方式比采用脈沖插值計數(shù)方式少計了0.57個脈沖.理論上,差不多相同控制時間內(nèi)最大計數(shù)誤差可以接近一個脈沖,但實驗碰到這種情況的概率較小,表中被檢表計數(shù)誤差最大的是第14組數(shù)據(jù),相差0.57個脈沖.如前面的假定,標準體積管的有效檢定容積為30L,最大流量為27m3/h,光柵尺輸出的最大脈沖頻率為50kHz,標準體積管的流量系數(shù)K標為6666.667L.對應第14組數(shù)據(jù),算得排出的標準體積為18.959L,標準流量為5.400m3/h.在27m3/h的流量下,被檢表的脈沖頻率為200Hz,則被檢表的儀表系數(shù)K被為26.667L,對應第14組數(shù)據(jù)計算得到未經(jīng)插值和插值后的流量分別為5.394m3/h和5.400m3/h.與標準流量相比,未經(jīng)插值的被檢表流量誤差為-0.116%,經(jīng)過插值之后被檢表流量則幾乎完全消除了誤差,說明雙時間插值收到了明顯的效果.
這是在被檢表脈沖數(shù)為500左右的檢測結(jié)果,理論上可能產(chǎn)生最大計數(shù)誤差為±0.2%(1/500).假如被檢表信號頻率更低或檢測時間更短,記錄的脈沖數(shù)就會更少,雙時間插值的效果也將更加明顯.
表1 標準信號測試結(jié)果Table 1 Test result of standard signal
采用FPGA控制器設計的雙路雙時間脈沖計數(shù)系統(tǒng)具有較高的計數(shù)精度,成功解決了由于計數(shù)脈沖數(shù)不夠造成檢定誤差增加的問題.該系統(tǒng)在變粘度油流量標準裝置上的應用,可以實現(xiàn)以較小的體積管容積來獲得對被檢表較高精度的檢定,用于準確分析得到粘度對脈沖型容積式流量儀表特性的影響.這對研究容積式流量儀表的適用環(huán)境,提高其計量精度具有重要的意義.
[1]冷 林,張吉祥.溫度對油品計量交接的影響[J].中國科技信息,2008,18:48-56.
[2]梁華鋒,梁國偉,朱 躍,等.油品混合粘度合成方法的試驗研究[J].中國計量學院學報,2010,21(3):218-221.
[3]梁國偉.脈沖型流量傳感器儀表系數(shù)準確性研究[J],計量技術(shù),1998,11:26-28.
[4]國家技術(shù)監(jiān)督局.JJG 667-1997液體容積式流量計檢定規(guī)程[S].北京:中國計量出版社,1998.
[5]蘇彥勛,梁國偉,盛 健.流量計量與測試[M].北京:中國計量出版社,2007:275-277.
[6]朱 昊,劉化君,宋宇飛.FPGA在復雜開關(guān)邏輯系統(tǒng)中的應用研究[J].機電產(chǎn)品開發(fā)與創(chuàng)新,2011,24(1):152-154.
[7]陳樹學,劉 萱.LabVIEW寶典[M].北京:電子工業(yè)出版社,2011:568-572.
[8]閻 石.數(shù)字電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2006:232-236.
[9]梁國偉.脈沖型流量傳感器檢定儀的設計和應用[J].自動化儀表,2003,24(8):14-16.
[10]梁國偉,趙蓓茁.雙時間法在脈沖型流量傳感器檢定中的應用[J].中國計量學院學報,2002,13(1):51-55.