[導讀] 渦街流量計輸出的頻率信號能夠在較寬流量范圍內保持良好的重復性,但其儀表系數(shù)只能在較窄的范圍內保持恒定,從而制約了其測量范圍。本文提出一種基于CPLD的儀表系數(shù)非線性修正方法,即采用三次樣條插值法對流量-儀表系數(shù)曲線進行逼近,通過優(yōu)化CPLD查找表實現(xiàn)了對儀表系數(shù)的非線性修正。實驗表明,該方法在保證精度的前提下可以有效地擴展量程。對于存在儀表系數(shù)非線性問題的其他流量儀表也同樣適用,易于推廣。
1 引言
渦街、渦輪等頻率信號輸出的流量傳感器在較寬流量范圍內都能獲得具有良好重復性的輸出信號。理想情況下其輸出信號與瞬時流量成正比,而實際上其儀表系數(shù)只在相對較小的范圍內能夠基本保持恒定[1]。傳統(tǒng)的方法是將平均儀表系數(shù)作為傳感器儀表系數(shù)的唯一值來使用,這樣導致流量計在保證測量精度前提下的測量范圍較窄?;诖耍恼箩槍Υ嬖谶@一問題的渦街流量計進行研究,以實現(xiàn)保證精度擴展測量范圍的目的。
渦街流量計在正常流量范圍內,其儀表系數(shù)基本為一常數(shù),但在測量小流量時卻表現(xiàn)出明顯的非線性,制約了渦街流量計測量范圍和測量精度。普通模擬渦街流量計確保儀表系數(shù)線性度在1%以內時的量程比只能達到10:1,遠低于理論量程100:1[2]。隨著工業(yè)技術的發(fā)展和進步,對于寬量程高精度渦街流量計的需求日漸迫切,各種儀表系數(shù)非線性修正方法和應用相繼出現(xiàn)。
最早出現(xiàn)的是采用硬件電路進行修正[3]。在傳感器前置放大電路中增加一些硬件電路,人為摻加(或減少)一個固定頻率信號,從而使傳感器實際輸出信號頻率得到修正,改善其儀表系數(shù)的非線性程度。此方法的缺點是只適用于單調上升(或下降)的曲線形狀,而且硬件補償靈活性差、補償精度不高。但由于是硬件電路設計,保證了良好的穩(wěn)定性和可靠性。隨著電子技術特別是單片機技術的迅猛發(fā)展,這一問題得到了更好的解決。根據(jù)實際標定的結果可以回歸出儀表系數(shù)與頻率的函數(shù)表達式,將表達式存入單片機系統(tǒng)的程序存儲器中。測量時測出傳感器信號頻率,根據(jù)函數(shù)表達式計算出此時的儀表系數(shù)來進行計算,從而達到對儀表系數(shù)非線性的修正[4]。這種方法操作簡單,而且通用性好,補償精度更高、更靈活。但由于該方法是靠軟件補償來實現(xiàn),編程時出現(xiàn)的微小紕漏與應用現(xiàn)場復雜情況造成的不確定性,都易造成程序“跑飛”或者死機的現(xiàn)象,造成使用上的不穩(wěn)定。近年來,隨著FPGA(FieldProgrammableGateArray)與CPLD(ComplexProgrammableLogicDevice)技術的飛速發(fā)展及其廣泛應用,因其具有高度的穩(wěn)定性和可靠性,設計簡單靈活等優(yōu)點[5],本文提出了基于CPLD硬件結構實現(xiàn)渦街流量計儀表系數(shù)非線性修正的方法,該方法綜合了上述兩種方法的優(yōu)點,具有良好的實用價值。①
2 修正算法比較
實現(xiàn)非線性修正的前提是需要得到渦街流量計流量Q與儀表系數(shù)K的關系曲線,再將超出線性度范圍的儀表系數(shù)修正到合理的范圍內。文章對三種常用的曲線逼近方法:線性插值法、三次樣條插值法和最小二乘法進行了比較,具體方法介紹見文獻[6]。
對于渦街流量計來說,由于在小流量時普遍存在著K-Q之間的非線性,即使在線性度范圍內,K也很難保證為常數(shù),這給用數(shù)學公式描述兩者的之間關系帶來很大困難,插值(或曲線擬和)方法能很好地解決這一問題。根據(jù)速度式流量計檢定規(guī)程[7],可以將檢定點作為插值函數(shù)的結點(或曲線擬和的觀測點),即各檢定流量點Qi(i=0,1,…,n),各結點(或觀測點)對應的函數(shù)值為Ki(i=0,1,…,n),即各流量點對應的儀表系數(shù)。根據(jù)這些列表函數(shù),可以利用插值多項式(或擬和多項式)對其他流量點的儀表系數(shù)進行逼近。
為了比較三種方法對渦街流量計K-Q關系描述的準確性,在標準水流量裝置上對DN25渦街流量計進行實驗,其流量測量范圍為1~11m3/h,受裝置條件的限制,最大流量只能做到9.3m3/h。實驗中發(fā)現(xiàn),當流量小于1m3/h時,雖然儀表的線性度已超出1%,但其重復性依然很好,這給儀表系數(shù)的非線性修正奠定了良好基礎,而修正的前提是要得到K-Q關系曲線。因此,對表1中流量點進行了實驗。
其中,渦街流量計平均儀表系數(shù)K:
(1)
式中:(Ki)max——各檢定流量點Qi的儀表系數(shù)Ki中最大值;(Ki)min——各檢定流量點Qi的儀表系數(shù)Ki中最小值。
線性度EL:
(2)
重復性Er:各檢定點重復性的最大值:
(3)
各檢定點重復性(Er)i:
(4)
式中:Ki——每個檢定點平均儀表系數(shù);Kij——第i檢定點第j次檢定的儀表系數(shù)。
選擇流量點0.509、0.997、1.649、2.737、4.41、7.742和9.26m3/h作為插值函數(shù)的結點進行分段插值,采用線性插值法和三次樣條插值法,同時作為最小二乘法的觀測點進行曲線擬和,對剩余流量點0.601、0.696、0.801和0.898m3/h的儀表系數(shù)進行逼近,最后與實驗結果進行比較得到表2與圖1~圖3。
圖1 線性插值法
圖2 三次樣條插值法
圖3最小二乘法,階數(shù)為5
通過比較,利用三次樣條插值法得到的逼近點誤差相對較小,且能夠很好反映曲線變化趨勢。所以在利用CPLD進行儀表系數(shù)非線性修正 時,選擇用三次樣條插值法對各流量點的儀表系數(shù)進行逼近。
3 CPLD程序設計
以上討論的修正算法都要通過CPLD程序語言來實現(xiàn),選擇了美國ALTERA公司最新推出的MAXII系列器件,這是迄今為止成本最低、功耗最小、密度最高的CPLD器件[8]??紤]到功耗和邏輯資源數(shù)兩方面的影響,最終選取EPM570GT100這款芯片。
3.1 軟件總體設計
由于CPLD的程序設計可以同時進行多個進程,因此將程序分為四個模塊,即四個進程,提高了程序運行速度。
(1)時鐘模塊。
各模塊的運行都要有一個時鐘基準,此模塊提供了時鐘頻率c??紤]到時鐘頻率的大小會影響到功耗,這里選擇用一個1MHz的無源晶振經(jīng)32分頻后得到的c=31250Hz作為整個電路的時鐘基準。
(2)頻率采集模塊。
由于渦街信號是一個脈沖信號,因此利用脈沖捕獲方法進行計頻。如圖4所示,渦街信號相鄰脈沖上升沿的時間間隔通過高頻時鐘c來進行計數(shù)。計數(shù)值N、渦街頻率f和時鐘c存在如下關系:
(5)
圖4 脈沖捕獲方法計頻示意圖
這樣,通過對每個脈沖間隔進行計數(shù),就間接獲得了渦街頻率。
(3)頻率修正(查找表)模塊。
對儀表系數(shù)進行修正實際上是對渦街頻率進行修正。由式(5),對頻率的修正可以轉化為對計數(shù)值N的修正,即CPLD頻率采集模塊得到N值,經(jīng)上位機生成查找表后,直接輸出對應的修正值N'((如圖5所示),查找表反映了N-N'的對應關系。此部分為整個程序設計的重點,將在3.2部分進行詳細說明。
(4)脈沖(或PWM波)輸出模塊。
將修正后的計數(shù)值N',根據(jù)式(5),對高頻時鐘c進行N'分頻,最終將修正后的渦街頻率以方波(或PWM波)形式輸出。
各模塊之間關系如圖5所示。
圖5 模塊關系圖
3.2 基于查找表修正方法的設計
查找表法常用于FPGA的設計中。在FPGA設計中常常要實現(xiàn)一些復雜運算(如乘法、除法、三角函數(shù)等),而這些運算會占用大量的邏輯單元,且速度難以滿足信號實時處理的要求,查找表法是解決這一問題的最簡單、有效的方法。其基本原理[9]為:將函數(shù)所有輸入變量的運算結果寫入FPGA的存儲單元中,同時以這些輸入變量作為該存儲單元的地址。當運算時,通過讀取存儲單元地址的方式獲取計算結果,這樣一來,不僅大幅減少了運算所需邏輯單元,又滿足了實時運算的要求。
非線性修正方法的本質其實是對渦街頻率的修正,也可以轉化為對渦街信號周期長度計數(shù)值N的修正,即對于每個輸入的周期長度計數(shù)值N(反映的是渦街頻率的真實大?。?,總有一個修正后的周期長度計數(shù)值輸出N'(反映的是修正后的渦街頻率)與之對應,可見這種方法尤其適宜采用查找表方法來實現(xiàn)。
受CPLD資源數(shù)以及功耗的限制,要求在滿足渦街流量計線性度的前提下,盡可能地利用較少的CPLD資源對儀表系數(shù)進行修正,使渦街流量計的量程可以擴展。而程序中查找表占據(jù)了CPLD的大部分資源,因此對其進行優(yōu)化是十分必要的。
為了說明修正思想及如何優(yōu)化查找表,仍以表1實驗數(shù)據(jù)進行說明,采用三次樣條插值法進行儀表系數(shù)曲線逼近。如圖6所示,在正常流量范圍內1~9.3m3/h(頻率20.41~185.87Hz),線性度在1%以內,在此范圍的流量點不需要儀表系數(shù)修正。流量在0.5~1m3/h(頻率10.86~20.41Hz)時,可以保證良好的重復性,因此可以通過修正將儀表系數(shù)降到正常流量范圍所在的儀表系數(shù)區(qū)間Kmin~Kmax。如式(6),其中K為正常流量范圍1~9.3m3/h得到的平均儀表系數(shù),EL為所要求的線性度誤差即儀表的精度等級,對于液體渦街流量計EL=0.01,氣體渦街流量計EL=0.015。
(6)
為保證各修正點的儀表系數(shù)Ki落在Kmin~Kmax區(qū)間,其計數(shù)值NI必須落在Nimin~Nimax,根據(jù)式(5)可得:
即每一個Ni都對應一個修正空間Nimin~Nimax,只要修正后的Ni'落在此區(qū)域內就可以實現(xiàn)儀表系數(shù)的修正。由于Kmin~Kmax是基于線性度誤差的一個較寬范圍,由式(7)和式(8)可以推測,Nimin~Nimax也應是一個較寬的范圍,因此相鄰幾個修正點的Ni所對應的Ni'的允許范圍一定存在重疊部分,可以將這幾個修正點的查找表合并成一個,輸出同一個修正值N'。這樣既節(jié)約了查找表資源,也降低了功耗。
圖6 儀表系數(shù)修正圖,EL=0.01
基于以上思想,首先利用Matlab在上位機編寫查找表生成程序,再將生成的查找表拷貝到CPLD程序中,最終完成整個CPLD程序的編寫。由于查找表程序是整個程序設計的核心,兼顧著非線性算法實現(xiàn)以及資源優(yōu)化的雙重使命,因此以下將進行詳細介紹。查找表程序流程圖如圖7所示。
圖7 查找表程序流程圖
對每一個步驟作具體說明:
(1)初始化:根據(jù)第一次實驗結果(表1),設置插值結點,選擇線性度范圍內的6個檢定點和最小流量點(圖2);設置新插值點的插值步長sf,在整個量程范圍內每0.01Hz插一個點;高頻時鐘頻率c設置為31250Hz;儀表的精度等級EL=0.01。
(2)根據(jù)實驗結果,計算在EL精度內的K,Kmin,Kmax(式6)。
(3)根據(jù)三次樣條插值方法,對整個量程范圍內步長間隔為sf的頻率點fi進行插值,得到Ki,i=1,2,…,n,n為插值點數(shù)。按照式(5),得到相應的Ni。
(4)各插值點的Ki若要保證在線性度范圍內,必須使Ki落在Kmin~Kmax區(qū)間,相應地,其Ni必須落在Nimin~Nimax(式7,式8)。
(5)若Nimin
對于待修正的Ni,i=1,2,…,m,總有一個滿足線性度條件的區(qū)間Nimin~Nimax與之對應。在計算中發(fā)現(xiàn),相鄰k個Ni的Nimin~Nimax區(qū)間存在重疊部分,因此可以將這k個Ni修正為同一個Ni',使得Ni'落在k個Nimin~Nimax區(qū)間的交集中。這種方法可以大幅度減少查找表的數(shù)量,使CPLD資源得到優(yōu)化。
4 實驗結果
為了檢驗提出的基于CPLD儀表系數(shù)非線性修正方法的測量效果,分別對DN25和DN50渦街流量計在水流量標準裝置上進行實驗,比較修正前后的實驗效果。
DN25修正前的實驗數(shù)據(jù)已在表1中給出,表3列出了修正后的實驗數(shù)據(jù)。
DN50修正前、后的實驗數(shù)據(jù)如表4、表5所示。
可見,兩個口徑在修正后其測量范圍明顯擴大。與DN25情況不同,從DN50實驗數(shù)據(jù)來看,除小流量外,流量上限的重復性也很好,因此有儀表系數(shù)修正的空間,只需要將儀表系數(shù)修正到合理的線性度范圍內即可,說明該方法不僅對擴展下限有很好的效果,在重復性良好的前提下,對于擴展流量上限也同樣適用。由此,經(jīng)CPLD儀表系數(shù)修正后,渦街流量計的測量范圍在保證精度的前提下得到了明顯擴展。
5 總結
本文提出了一種基于CPLD的硬件式儀表系數(shù)非線性修正方法,并將該方法應用于渦街流量計中,擴展其測量范圍,即利用CPLD對超出線性度范圍但重復性較好的流量點進行儀表系數(shù)非線性修正。采用三次樣條插值法對K-Q曲線進行逼近,通過優(yōu)化CPLD查找表資源,不僅實現(xiàn)了儀表系數(shù)的非線性修正,擴展了量程,而且為實現(xiàn)低功耗作足準備。該方法實現(xiàn)簡單,效果明顯,對于存在儀表系數(shù)非線性問題的其他流量儀表也同樣適用,易于推廣。
參考文獻:
[1]姜仲霞,姜川濤,劉桂芳.渦街流量計[M].北京:中國石化出版社,2006.
[2]張濤,段瑞峰,孫宏軍.基于雙核技術的數(shù)字渦街流量計信號處理系統(tǒng)[J].化工自動化及儀表,2004,31(6):71-74.
[3]楊金生,唐懷璞.大口徑低流速插入式切向渦輪流量計的研制[C]//天津電子儀表質量品種效益學術會議論文集.1991.
[4]王翥,佟曉筠,陳曉娟.提高渦街流量計精度的一種補償算法及實現(xiàn)[J].化工自動化及儀表,2005,32(3):78-80.
[5]王道憲.CPLD/FPGA可編程邏輯器件應用與開發(fā)[M].北京:國防工業(yè)出版社,2004.
[6]徐士良.數(shù)值分析與算法[M].北京:機械工業(yè)出版社,2003.
[7]JJG19894.中華人民共和國國家計量檢定規(guī)程——速度式流量計[S].
[8]MAXIIDeviceHandbook[M].AlteraCorporation,2004.
[9]趙曙光,郭萬有.可編程邏輯器件原理、開發(fā)與應用[M].西安:西安電子科技大學出版社,2006.