摘要:基于msp430f1611單片機,采用數(shù)字頻譜分析與模擬帶通濾波器組相結(jié)合的方式,研制新型兩線制數(shù)字蒸汽流量計,以擴展量程比,保證現(xiàn)場測量精度,并實現(xiàn)低功耗工作,解決目前此類流量計存在的關(guān)鍵性技術(shù)問題。采用低功耗運放和數(shù)字電位器組成程控放大器,以適應(yīng)蒸汽傳感器輸出信號強度較大范圍的變化;根據(jù)少點數(shù)fft計算結(jié)果,選擇帶通濾波器組,既滿足蒸汽傳感器信號頻率范圍變化大的需要,又對蒸汽信號進行佳濾波;設(shè)計有效的電源管理模塊和電流輸出電路,為儀表兩線制工作提供足夠的電流。
0引言
蒸汽流量計具有測量介質(zhì)廣泛、無活動部件、壓力損失低、輸出信號頻率與狀態(tài)體積流量成正比等優(yōu)點,獲得較為廣泛的應(yīng)用。但是,蒸汽流量計的現(xiàn)場測量精度有待改進,量程比有待擴展。為此,國內(nèi)外有關(guān)公司和學(xué)者將數(shù)字信號處理方法應(yīng)用于蒸汽信號的處理,有效地保證現(xiàn)了場測量精度和擴展量程比。由于以上的算法都比較復(fù)雜,需要進行大量的運算,而儀表有實時性的要求,所以,必須采用dsp(數(shù)字信號處理器)才能完成任務(wù)。但是,dsp芯片的功耗大,一般工作電流都在100ma以上,不能滿足兩線制儀表4~20ma的要求。而這種兩線制、低功耗的儀表是許多過程工業(yè)所需要的?;赿sp的信號處理系統(tǒng)無法滿足這些要求。雖然,國內(nèi)一些學(xué)者采用低功耗單片機開發(fā)低功耗、兩線制蒸汽流量計,如:文獻[4]用pic單片機開發(fā)了兩線制蒸汽流量計,文獻[5]用msp430單片機設(shè)計了低功耗蒸汽流量計,但是,他們?nèi)匀徊捎玫氖浅R?guī)的信號處理模式,即放大、整形和計數(shù),所以,無法有效地從噪聲中提取蒸汽信號。若采用低功耗單片機去實現(xiàn)數(shù)字信號處理算法,也無法做到低功耗和兩線制,因為用單片機實現(xiàn)數(shù)字信號處理算法,單片機必須總是全速運行,任何低功耗工作模式無法使用。例如,文獻[6]采用小波變換消除信號中的噪聲,用msp430單片機去實現(xiàn)系統(tǒng),但是,測試結(jié)果表明,無法做到低功耗和兩線制,因為儀表本身的工作電流超過4ma。國外的一些公司為蒸汽流量計一些信號處理模塊設(shè)計了的集成電路(asic),用硬件的方式來對蒸汽信號進行處理,以便實現(xiàn)低功耗和實時工作。
采取用低功耗單片機msp430f1611做少點數(shù)fftr結(jié)合硬件模擬濾波器組的信號處理方式,來實現(xiàn)蒸汽信號的處理,再設(shè)計有效的電流管理和電流輸出模塊,既能從噪聲中提取蒸汽信號,保證現(xiàn)場測量精度,擴展量程比,又能做到低功耗和兩線制工作。
1硬件設(shè)計
1.1總體方案
設(shè)計的目標是既采用數(shù)字信號處理方法,又要保證儀表是低功耗工作,所以,采用低功耗單片機進行少點數(shù)快速傅立葉變換(fft),實現(xiàn)周期圖譜分析,確定蒸汽信號的頻率值;設(shè)計一組硬件帶通濾波器,其通帶覆蓋蒸汽信號所在的頻帶,根據(jù)譜分析結(jié)果來選擇具體的帶通濾波器,進行佳濾波,大限度地消除各種諧波和現(xiàn)場噪聲對測量的影響,提高測量精度。采用數(shù)字電位器和運算放大器組成程控放大器,通過峰值檢測確定蒸汽信號的幅值,調(diào)整程控放大器的放大倍數(shù),使信號的幅值達到佳范圍,適應(yīng)大流量和小流量的測量的需要,擴展量程比。選用低功耗的單片機芯片,并設(shè)計與之配套的輸出電路和電源管理電路,保證儀表工作電流小于4ma,輸出電流為4~20ma,實現(xiàn)兩線制工作。
1.2硬件框圖
該系統(tǒng)的硬件框圖如圖1所示,包括壓電傳感器、差分電荷放大器、電壓放大器、程控放大器、低通濾波器、電壓跟隨器、帶通濾波器組、帶通選擇開關(guān)電路、峰值檢測電路、整形電路、單片機、人機接口電路、4~20ma輸出與電源管理電路、恒流源、溫度傳感器、壓力傳感器、差分放大器、16位模數(shù)轉(zhuǎn)換器。
1.3工作過程
壓電傳感器輸出的電荷信號經(jīng)過差分電荷放大器轉(zhuǎn)變?yōu)殡妷盒盘枺捎诜捣浅P?,所以,再?jīng)過一級固定的電壓放大器和一級程控放大器。放大后的信號經(jīng)過低通濾波器,濾除信號中的高頻干擾,然后分為2路。第1路信號由電壓跟隨器(緩沖器)輸出,被單片機自帶的adc采樣和轉(zhuǎn)換,變成數(shù)字量。單片機對信號進行少點數(shù)的fft,做周期圖譜分析,得到信號的頻率值,來選擇帶通濾波器組的通道。第2路信號送至帶通濾波器組,進行濾波;由單片機的頻譜分析結(jié)果來決定輸出某路濾波后的信號。經(jīng)過帶通濾波器組的輸出信號分為2路。第1路送至峰值檢測電路;峰值檢測電路將信號的峰值送至單片機adc的輸入端;單片機對信號的峰值進行采樣和轉(zhuǎn)換,并根據(jù)峰值來調(diào)整程控放大器的放大倍數(shù),使信號的幅值達到佳范圍;第2路送至由比較器組成的整形電路進行整形,整形后的信號送至單片機的定時器輸入端,采用捕獲方式,利用多周期等精度方法進行計數(shù)。單片機根據(jù)計數(shù)結(jié)果,將流量信息顯示在lcd上,并通過自身的dac轉(zhuǎn)換,送至4~20rna輸出與電源管理電路,經(jīng)過v/i轉(zhuǎn)換成4~20ma電流信號輸出。下面簡要介紹其中的部分硬件電路。
1.4帶通濾波器組
雖然蒸汽流量傳感器信號經(jīng)過了低通濾波器,一些高頻信號被消除。但是,由于蒸汽信號頻率的變化范圍較寬,從0.5hz~3.7khz。在這個頻帶范圍內(nèi),可能包含蒸汽流量信號頻率、機械振動頻率、流場擾動噪聲頻率和其它噪聲頻率。若將此信號直接進行整形和計數(shù),由于各種噪聲的影響,很容易造成整形電路的誤觸發(fā),使測量結(jié)果出現(xiàn)較大的誤差。
針對這個問題,設(shè)計一組模擬帶通濾波器,包括1個低通濾波器和7個帶通濾波器,這7個帶通濾波器的電路結(jié)構(gòu)相同、參數(shù)不同,從而通帶互不相同,但是相互連接,覆蓋蒸汽流量計的頻帶范圍,并且相鄰?fù)◣чg有一定的重疊。由1個高通濾波器和1個低通濾波器來實現(xiàn)1個帶通濾波器,這樣比單運放帶通濾波器的幅頻特性好,即這樣形成的通帶部分的幅頻特性比較平坦,截止區(qū)域衰減得更快??紤]到整個蒸汽信號的頻率范圍在0.5~3700hz的范圍,若用1組帶通濾波器組去濾波,效果不佳,所以,針對不同情況設(shè)計了若干組濾波器組,這樣既具有一定的通用性和互換性,又保證有較好的濾波效果。例如,針對15~200mm口徑的液體流量測量設(shè)計1組帶通濾波器組的參數(shù),其工作頻率覆蓋1~500hz;針對25—150mm口徑的氣體流量測量設(shè)計1組帶通濾波器的參數(shù),其工作頻率覆蓋19~2300hz。具體選擇哪個濾波器的輸出信號進行整形和計數(shù),由單片機對蒸汽信號進行頻譜分析的結(jié)果來決定。即單片機對采集到的蒸汽傳感器信號進行周期圖譜分析,確定蒸汽信號的范圍;據(jù)此,確定用哪個帶通濾波器濾波后的信號進行整形和計數(shù),這樣可以大程度地消除各種噪聲對蒸汽信號的影響,避免誤觸發(fā),保證計數(shù)的精度。
1.5電源管理與電流輸出模塊
4~20ma輸出和電源管理模塊由4~20ma電流變送器xtr115、dc/dc、3個ldo和磁珠bead組成。24v直流電壓先經(jīng)過dc/dc由24v變?yōu)?.3v,經(jīng)過ldo變成3v電壓,作為數(shù)字部分的電源,3.3v再通過另1路ldo變換成3v電壓,作為模擬電路部分的電源,模擬地和數(shù)字地之間通過磁珠連接,這樣數(shù)字部分跟模擬部分電平匹配,而且單片機在3v電壓下消耗電流更小。同時,由24v直流電壓經(jīng)過一級ldo變?yōu)?v,供溫壓補償部分恒流源工作。系統(tǒng)消耗的電流由xtr115檢測并調(diào)整輸出電流。由于系統(tǒng)電源跟輸入之間沒有進行隔離,將表殼(大地)和系統(tǒng)地(模擬地、數(shù)字地)之問進行隔離來滿足絕緣的要求(即浮地)。
2軟件研制
2.1總體框圖
該系統(tǒng)軟件總體框圖如圖2所示,由主監(jiān)控程序模塊、保護模塊、中斷模塊、初始化模塊、程控放大器調(diào)整模塊、計算模塊、電流輸出模塊、人機接口模塊組成。其中,初始化模塊包括lcd初始化、流體介質(zhì)和儀表口徑初始化、峰值檢測模塊初始化、4~20ma電流輸出模塊初始化、溫度和壓力補償模塊初始化、掉電保護模塊初始化、流量計算模塊初始化、帶通濾波器選擇初始化。
2.2主監(jiān)控程序流程圖
圖2中的主監(jiān)控程序模塊是整個軟件系統(tǒng)的總調(diào)度程序,調(diào)用各個模塊中的子程序,實現(xiàn)本系統(tǒng)的所要求的功能。主監(jiān)控程序的流程如圖3所示。它是一個循環(huán)程序,系統(tǒng)一上電,主監(jiān)控程序自動運行,進入不斷查詢標志和進行相應(yīng)處理的循環(huán)中。
基本過程為:系統(tǒng)上電后,立即進行初始化;初始化后,首先查詢fn、計算標志位是否置位,若置位,則調(diào)用fft計算模塊,對經(jīng)過電荷放大、電壓放大、低通濾波和電壓跟隨后的蒸汽傳感器信號做fft計算、頻譜分析和校正,估計出大能量所在的頻率,根據(jù)這個頻率來選擇帶通濾波器,并設(shè)置峰值檢測時間的間隔,處理完成后清除標志位;然后,查詢發(fā)觸發(fā)捕獲信號的標志位是否置位。
2.3脈沖計數(shù)
采用多周期等精度測量方法進行脈沖計數(shù)。設(shè)置定時器a(ta)為蒸汽信號脈沖計數(shù)器,設(shè)置定時器b(tb)為填充脈沖計數(shù)器,讓ta的pwm模塊(ta1)定時發(fā)觸發(fā)捕獲信號(定時時問由測量頻率的下限而定),ta和tb根據(jù)相鄰2次觸發(fā)捕獲信號之間的時間間隔,分別捕獲蒸汽信號脈沖的個數(shù)和填充脈沖個數(shù),根據(jù)ta和tb捕獲得到的脈沖數(shù)以及tb的工作時鐘頻率計算出蒸汽信號的頻率,如圖4所示。定時器a的工作時鐘由外部提供,外部脈沖每增加1次,定時器a計數(shù)器計數(shù)值就會增加1次,即定時器a是用來對外部脈沖進行計數(shù)的。定時器b用來產(chǎn)生時間間隔,每次定時時間到就發(fā)觸發(fā)捕獲信號。根據(jù)這個捕獲信號,定時器a的1個pwm單元(ta1)就產(chǎn)生上升沿,定時器a的捕獲單元(ta2)和定時器b捕獲單元(tb2)根據(jù)這個上升沿,將其各自的計數(shù)器值捕獲進來,計算出相鄰兩次信號的ta的計數(shù)差值ⅳ和tb的計數(shù)差值n,則:
式中:f為定時器b的工作時鐘頻率;f為定時器a的工作時鐘頻率,即被測蒸汽流量信號的頻率。
2.4頻率估算
對信號進行采樣,計算頻率值,再選擇帶通濾波器組的通道,接著設(shè)置峰值采樣時間間隔,即具體選定帶通濾波器組中的一個帶通濾波器,設(shè)置峰值采樣過程充放電時間。該系統(tǒng)采用少點數(shù)fftr估計蒸汽信號的頻率。首先對采樣得到的信號序列進行零均值處理,消除直流分量;然后,對序列進行fft運算。為了克服單片機的運算速度不夠快和內(nèi)存資源有限的問題,我們采取了以下的技術(shù)措施,在單片機上實時實現(xiàn)了ffri1運算,并保證了算法的精度:
(1)采用匯編語言編制fft程序,運算速度快;
(2)數(shù)據(jù)統(tǒng)一使用q13定點數(shù)表示,即用16位來表示1個數(shù)據(jù),高位(左邊的第1位)是符號位,剩下的15位表示數(shù)據(jù)的大小,其中,高2位(左邊的第2位和第3位)用來表示數(shù)據(jù)中的整數(shù)部分,在計算中作為保護位,低13位(右邊的13位)表示數(shù)據(jù)中的小數(shù)部分,采樣來的數(shù)據(jù)先放在低12位,然后,左移1位,這樣可以減少內(nèi)存占用量;(3)采用定點數(shù)計算,即在乘法和加法計算過程中使用的數(shù)據(jù)其小數(shù)點都是固定的,以提高計算速度;(4)在fft運算過程中,每經(jīng)過一級碟形因子的計算,其結(jié)果大可能會擴大3倍,隨著計算級數(shù)的增加,用q13格式表示的數(shù)據(jù)肯定會發(fā)生溢出,所以,在計算過程中必須對數(shù)據(jù)進行移位(右移),以防止數(shù)據(jù)的溢出,但是,在實際計算中,并非每級計算的結(jié)果都會溢出,若此時對結(jié)果進行移位,就會降低f丌計算結(jié)果的精度,因為移位使數(shù)據(jù)變小,即減少了小數(shù)部分的有效位,為此,先判斷這一級計算結(jié)果是否大于1,當(dāng)大于1時,才移位,小于1就不移位。由fft運算結(jié)果計算出信號的功率譜,按照能量占優(yōu)原則,根據(jù)大功率譜峰值,估計出蒸汽流量信號的頻率;后,利用重t2校正法進行頻譜校正,提高蒸汽流量信號頻率測量的精度。根據(jù)蒸汽流量信號的頻率,由單片機控制多路選擇電路,選擇對應(yīng)于當(dāng)前蒸汽流量信號頻率的帶通濾波器,將此帶通濾波器與后面的整形電路相連。根據(jù)蒸汽信號頻率設(shè)置峰值采樣過程中的充放電時間間隔。
2.5帶通濾波器選擇
設(shè)計的1個低通濾波器和7個帶通濾波器的通頻帶將整個要處理的蒸汽信號頻率覆蓋,同時,相鄰濾波器的通帶之間有重疊部分,以避免當(dāng)蒸汽信號頻率處于相鄰?fù)◣н吘墪r,引起帶通濾波器的頻繁切換,即避免頻繁地變換帶通濾波器。當(dāng)頻率超出上次選擇的帶通濾波器的頻率范圍時,就查找覆蓋此頻率的濾波器,選出合適的濾波器。具體選擇過程為:當(dāng)頻率沒有超過當(dāng)前濾波器通帶的上下*,就仍然選擇當(dāng)前的濾波器;當(dāng)頻率正好落在2個濾波器通帶的交叉帶中時,將依據(jù)這2個濾波器通帶的交叉點來進行選擇,即把這2個濾波器幅頻特性的相交點作為1個分界線:當(dāng)頻率低于交叉點時,就選擇低通帶的濾波器,高于交叉點就選擇高通帶的濾波器。
3測試與實驗
當(dāng)系統(tǒng)研制完成后,我們在實驗室進行了系統(tǒng)功耗和電流輸出精度的測試、脈沖計數(shù)精度和抗諧波干擾的測試、少點數(shù)fft功率譜計算精度的測試、溫度和壓力補償測試,在重慶耐德工業(yè)股份有限公司進行水流量和氣流量標定實驗,以考核系統(tǒng)的性能。由于篇幅所限,下面僅介紹部分測試和實驗結(jié)果。
3.1電流輸出和功耗測試
將該系統(tǒng)與40mm口徑的一次儀表相匹配,組成蒸汽流量計,進行實際流量標定,或者用信號發(fā)生器輸入標準的頻率值。將日本yokogawa公司caio0型小型通用校驗儀串接在該系統(tǒng)的電流輸出線上,測試系統(tǒng)的輸出電流。注意,此時系統(tǒng)加14v電壓(這比通常的24v電壓嚴格,是考慮到負載上的壓降)。
首先,設(shè)定理論輸出電流值等于或者大于4.000ma,考核電流輸出的精度,即小流量對應(yīng)于4ma,大流量對應(yīng)于20ma。測試結(jié)果表明,大相對誤差小于0.19%。其次,設(shè)為0.000ma,即將該系統(tǒng)da控制電流輸出的模塊斷開,考核系統(tǒng)自身消耗電流值,測試結(jié)果為3.775ma,小于4ma。這兩項指標均滿足儀表的要求。
3.2fft計算精度測試
因為要用fft計算的結(jié)果來確定選擇哪個帶通濾波器,所以,要考核其計算精度。由于fft運算的大誤差發(fā)生在非整周期采樣時,所以,選擇這些大誤差點來進行測試。由于泄漏誤差,信號基頻為:
3.3實際流量測試
將系統(tǒng)與重慶耐德工業(yè)股份有限公司40mm口徑的蒸汽一次儀表相匹配,采用氣體鐘罩方式進行標定,讀取系統(tǒng)的頻率值,如表1所示??梢?,量程比達到20.6:1。
將系統(tǒng)與重慶耐德工業(yè)股份有限公司80mm口徑的蒸汽一次儀表相匹配,采用標準表法進行氣體流量標定,讀取系統(tǒng)的頻率值,如表2所示。其中的標準表是精度為0.2%精度的渦輪流量計??梢?,量程比達到18.5:1。
表140mm口徑數(shù)字蒸汽流量計氣體標定實驗數(shù)據(jù)
表280mm口徑數(shù)字蒸汽流量計氣體標定實驗數(shù)據(jù)
4結(jié)束語
提出少點數(shù)功率譜分析與模擬帶通濾波器組相結(jié)合的方式,并在硬件和軟件方面采取了一些有效措施,用單片機研制成功兩線制數(shù)字蒸汽流量計,既擴展量程比、保證現(xiàn)場測量精度,又實現(xiàn)低功耗工作,克服了目前基于dsp的數(shù)字蒸汽流量計無法低功耗工作,而基于mcu的低功耗蒸汽流量計又無法進行數(shù)字信號處理、性能不佳的問題。