許言午+鄧新欣+張濤+王健
摘 要:催化燃燒式氣體探測(cè)器具有選擇性差、易中毒、使用壽命短等缺點(diǎn),針對(duì)這種情況,設(shè)計(jì)了具有選擇性好、不會(huì)中毒、使用壽命長等諸多優(yōu)點(diǎn)的新型氣體探測(cè)器——NDIR紅外探測(cè)器。針對(duì)該探測(cè)器結(jié)合STM32單片機(jī)設(shè)計(jì)了相應(yīng)的嵌入式軟件系統(tǒng),介紹了軟件方面的整體框架和各模塊的構(gòu)成。重點(diǎn)描述了對(duì)通過放大器后的信號(hào)進(jìn)行采樣、濾波,再通過相應(yīng)的算法對(duì)信號(hào)進(jìn)行處理,并最終獲得氣體的濃度的過程。
關(guān)鍵詞:STM32;NDIR紅外探測(cè)器;嵌入式軟件系統(tǒng);濃度算法
中圖分類號(hào):TN92 ? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:B ? ? ? ? ? 文章編號(hào):2095-1302(2015)01-00-04
0 ?引 ?言
在石油石化行業(yè),碳?xì)漕悮怏w(甲烷、乙烷等)是最為常見的可燃性氣體,油氣管道和儲(chǔ)罐的日常操作和設(shè)備的腐蝕老化等會(huì)導(dǎo)致此類氣體的泄漏,石油石化的安全生產(chǎn)事故有很多都是可燃?xì)怏w的燃燒爆炸引起的。因此,對(duì)這類氣體進(jìn)行在線探測(cè)、濃度預(yù)警和報(bào)警非常重要。傳統(tǒng)的氣體探測(cè)器如催化燃燒式探測(cè)器,其傳感器易中毒,對(duì)氣體的選擇性差,使用壽命不長,平時(shí)維護(hù)的工作量大,也無法長期暴露在高濃度可燃?xì)怏w中。而NDIR(Non-Dispersive Infrared)紅外探測(cè)器則具有選擇性好、使用壽命長、不會(huì)中毒、維護(hù)工作量小、響應(yīng)時(shí)間快、能長期工作在高濃度氣體中等諸多優(yōu)點(diǎn)。因而開發(fā)這種新型的氣體探測(cè)器,對(duì)確保石油石化安全生產(chǎn)意義重大,同時(shí)也減少了對(duì)相關(guān)進(jìn)口產(chǎn)品的依賴。
1 ?基本原理
1.1 ?光譜吸收理論
光譜學(xué)研究表明當(dāng)氣體受到紅外光束的照射時(shí),氣體分子會(huì)產(chǎn)生對(duì)紅外光的吸收,將光能量轉(zhuǎn)化為分子的振動(dòng)與轉(zhuǎn)動(dòng)能量。在吸收過程中,氣體分子只能吸收那些能量正好等于它的某兩個(gè)能級(jí)之差的光子(ΔE=hv),所以不同分子結(jié)構(gòu)的氣體會(huì)吸收不同頻率(能量)的光子,也就是說不同氣體會(huì)對(duì)某個(gè)特定波段的紅外光產(chǎn)生特征吸收。
1.2 ?NDIR探測(cè)器測(cè)量氣體濃度原理
NDIR意為非分散紅外光譜。NDIR探測(cè)器利用了不同氣體在中紅外波段(波長在2.5~25 μm間)的特征吸收原理。不同氣體吸收紅外光的強(qiáng)度與其本身的濃度有關(guān),其吸收關(guān)系滿足朗伯-比爾(Lambert-Beer)定律,具體表現(xiàn)形式如下:
I1=I0*e-aLC
式中,I0代表入射光強(qiáng),I2是通過待測(cè)氣體后的透射光強(qiáng),L是光程,C是待測(cè)氣體的濃度,α是吸收系數(shù)。當(dāng)一定濃度的氣體通過連續(xù)的中紅外光譜時(shí),由于氣體對(duì)特定頻率光的吸收,會(huì)使得傳感器檢測(cè)到該頻率光強(qiáng)的減弱,而其他頻率的光強(qiáng)不變,于是通過傳感器得到的參考和測(cè)量通道的電信號(hào),分別代表了原始光強(qiáng)和被待測(cè)氣體吸收之后的光強(qiáng),通過傳感器的電信號(hào),再經(jīng)過后續(xù)的硬件與軟件算法上的處理,我們最終便能得出氣體的濃度。
2 ?探測(cè)器光路設(shè)計(jì)
在光路設(shè)計(jì)中我們選擇了單光源、單探測(cè)器的對(duì)射式方式,具體結(jié)構(gòu)如圖1所示:
圖1 ?整體光路設(shè)計(jì)
如圖1所示,探測(cè)器的光路由紅外光源、準(zhǔn)直透鏡、發(fā)射視窗、氣室、接收視窗、接收透鏡及PbSe探測(cè)器組成。紅外光源發(fā)出的紅外光經(jīng)過準(zhǔn)直透鏡得到與氣室平行的光線,紅外光通過氣室中,氣室中的氣體對(duì)紅外光進(jìn)行吸收,在接收端,通過接收透鏡使光聚集成為一個(gè)光斑,在光斑打在熱釋電探測(cè)器上之前,需經(jīng)過3~5 μm寬帶濾光片,由此,通過探測(cè)器可以觀察到兩個(gè)信號(hào)的大小。
準(zhǔn)直透鏡使進(jìn)入氣室的光成為平行光,排除由于光路對(duì)測(cè)量造成的影響。在氣室兩端我們安裝了視窗,視窗要求有足夠高的透過率,視窗的作用是使氣室與發(fā)射/接收端隔離,避免氣體進(jìn)入發(fā)射端/接收端,對(duì)光源/探測(cè)器造成影響,從而對(duì)測(cè)量結(jié)果造成影響。在接收端,接收透鏡可以把打過來的平行光聚集成為一個(gè)光斑打在探測(cè)器上,這時(shí)要求探測(cè)器在透鏡的中心軸上,探測(cè)器放置的位置在透鏡的焦點(diǎn)附近得到最大的光強(qiáng),同時(shí)在透鏡和探測(cè)器中間放置一個(gè)3~5 μm的寬帶濾波片,濾除可見光對(duì)探測(cè)結(jié)果造成的影響。
采用此種單光源對(duì)射式光路,有如下優(yōu)點(diǎn):(1)光路簡單,可控性高,相比于雙光源,不需要考慮光源同步性帶來的誤差,能更好地結(jié)合實(shí)際排除干擾的因素;(2)PbSe傳感器相比傳統(tǒng)的紅外熱釋電探測(cè)器,靈敏度更高,響應(yīng)速度更快,溫漂很小,可以提高探測(cè)下限和測(cè)量精度。
3 ?基本硬件電路設(shè)計(jì)
紅外氣體探測(cè)器一般由以下幾部分組成(如圖2):光源驅(qū)動(dòng)電路,探測(cè)器電路,信號(hào)處理電路,ADC采樣以及MCU,輸出電路構(gòu)成。MCU控制光源發(fā)光,使測(cè)量光源和參考光源交替閃爍,使探測(cè)器可以在一個(gè)周期內(nèi)得到測(cè)量信號(hào)和參考信號(hào)兩個(gè)完整的信號(hào)。探測(cè)器得到的信號(hào)通信號(hào)處理模塊進(jìn)行放大和濾波。最后通過ADC進(jìn)行采樣并傳入MCU進(jìn)行數(shù)據(jù)處理得到濃度,并通過4~20 mA電路和RS 485電路對(duì)外輸出。
3.1 ?光源驅(qū)動(dòng)電路
光源由MCU定時(shí)器產(chǎn)生的方波進(jìn)行驅(qū)動(dòng),方波的頻率為2 Hz,占空比為50%(如圖3)。
圖3 ?光源驅(qū)動(dòng)波形
在上位機(jī)上顯示的AD采樣波形圖如圖4所示,采樣頻率為2 kHz:
圖4 ?測(cè)量信號(hào)
由圖可以知道光源驅(qū)動(dòng)頻率和占空比的設(shè)置可以保證采到信號(hào)的最大最小值。
3.2 ?探測(cè)器接收電路
探測(cè)器方面我們選擇的是PbSe探測(cè)器,這種探測(cè)器對(duì)于1~5 μm的紅外信號(hào)有較寬的探測(cè)域,較快的響應(yīng)速度,以及較好的溫度特性,使其可以工作在室溫的環(huán)境下。PbSe探測(cè)器的主要原理是光傳導(dǎo)效應(yīng),是光打在探測(cè)器上,由于光傳導(dǎo)效應(yīng)使PbSe探測(cè)器的阻值發(fā)生變化,隨著光強(qiáng)度增加,PbSe探測(cè)器的阻值會(huì)降低。
3.3 ?信號(hào)處理、采樣與處理器
傳感器的信號(hào)經(jīng)前放電路、帶通電路進(jìn)行放大,然后用ADC對(duì)放大后的信號(hào)進(jìn)行采樣,給微處理器進(jìn)行數(shù)據(jù)處理,微處理器將采集的數(shù)據(jù)進(jìn)行軟件濾波以及峰峰值的采集,并通過算法進(jìn)行最后濃度的計(jì)算。微處理器對(duì)采樣得到的信號(hào)進(jìn)行處理,算法計(jì)算等工作,根據(jù)完成的功能要求等選擇不同的單片機(jī)進(jìn)行控制。
3.4 ?輸出電路
輸出電路我們選擇了工業(yè)常用的4~20 mA輸出電路,連接控制器,可以直觀地顯示計(jì)算出來的氣體濃度;同時(shí)我們使用RS 485總線與PC通信,通過上位機(jī)對(duì)儀器參數(shù)進(jìn)行更改,以及對(duì)采樣數(shù)據(jù)進(jìn)行觀察。
4 ?軟件設(shè)計(jì)
4.1 ?主處理器
NDIR主處理器為ST的32位單片機(jī)STM32F407VGT6, 主處理器在主板上的原理框圖如圖5所示。
4.2 ?嵌入式軟件總體設(shè)計(jì)架構(gòu)
本系統(tǒng)采用組件化編程,程序總體結(jié)構(gòu)主要由以下3部分組成(如圖6)。
圖5 ?NDIR紅外探測(cè)器主板原理框圖
主控層:主要由系統(tǒng)初始化、系統(tǒng)自檢及主流程控制模塊組成。主體流程遵從:信號(hào)采集、信號(hào)處理、報(bào)警診斷、4~20mA輸出。系統(tǒng)完成初始化及自檢后,進(jìn)入一套定義好的流程執(zhí)行,即主流程。運(yùn)行期間,前臺(tái)處理程序:串口中斷、定時(shí)器中斷實(shí)時(shí)的執(zhí)行,即只要發(fā)生中斷,馬上進(jìn)入中斷服務(wù)程序,若無中斷的發(fā)生,則系統(tǒng)運(yùn)行主流程(后臺(tái)程序),見圖中的MainProcess處理。應(yīng)用層的流程圖如圖7所示。
圖6 ?程序總體結(jié)構(gòu)圖
圖7 ?應(yīng)用層的流程圖
組件層:主要是各個(gè)子模塊組成,它們都是一個(gè)獨(dú)立的功能模塊,各模塊之間不允許相互調(diào)用。組件層包含眾多模塊,各個(gè)模塊又可以有多子模塊組成。在模塊劃分上,按照實(shí)現(xiàn)功能的不同,來劃分不同的模塊,每個(gè)模塊可以獨(dú)立進(jìn)行工作,也可以像搭積木一樣和其他模塊組合起來完成一個(gè)特定的功能。
Modbus通訊處理模塊:實(shí)現(xiàn)接收、解析及發(fā)送通訊命令。
光源驅(qū)動(dòng)管理模塊:產(chǎn)生頻率、占空比可調(diào)的PWM波形,驅(qū)動(dòng)光源打開、關(guān)閉。
加熱棒驅(qū)動(dòng)管理模塊:產(chǎn)生頻率、占空比可調(diào)的PWM波形,驅(qū)動(dòng)加熱棒開啟、關(guān)閉加熱。
采樣及數(shù)據(jù)處理模塊:對(duì)信號(hào)采樣、濾波處理后計(jì)算濃度,4~20 mA輸出。
報(bào)警輸出:報(bào)警判斷,并輸出自檢、過程檢測(cè),及濃度、溫度報(bào)警信息。
驅(qū)動(dòng)層:主要提供一些底層驅(qū)動(dòng)的API接口函數(shù),供組件層的各個(gè)模塊調(diào)用。驅(qū)動(dòng)層又可以分為兩級(jí):
底層驅(qū)動(dòng)(芯片級(jí)):項(xiàng)目所需的芯片級(jí)驅(qū)動(dòng)。底層驅(qū)動(dòng)(芯片級(jí))又可以劃分為單片機(jī)片內(nèi)驅(qū)動(dòng)和單片機(jī)片外驅(qū)動(dòng)。片內(nèi)驅(qū)動(dòng)主要有內(nèi)部Flash驅(qū)動(dòng)、內(nèi)部ADC驅(qū)動(dòng)、內(nèi)部DAC驅(qū)動(dòng)、內(nèi)部定時(shí)器驅(qū)動(dòng)、SCI串口驅(qū)動(dòng)等。片外驅(qū)動(dòng)主要EEPROM驅(qū)動(dòng)、AD7689、DAC121S101。底層驅(qū)動(dòng)的特點(diǎn)是通用性,可在各個(gè)項(xiàng)目中共享。
底層驅(qū)動(dòng)(項(xiàng)目級(jí)): 底層驅(qū)動(dòng)(項(xiàng)目級(jí))直接面向組件層的各個(gè)組件,完成項(xiàng)目功能的芯片級(jí)驅(qū)動(dòng)的封裝和擴(kuò)展。在NDIR原型機(jī)項(xiàng)目中,項(xiàng)目級(jí)驅(qū)動(dòng)主要包括:光源驅(qū)動(dòng)、加熱棒驅(qū)動(dòng)。一般而言,底層驅(qū)動(dòng)(項(xiàng)目級(jí))與項(xiàng)目相關(guān)性比較大。
5 ?信號(hào)處理算法
信號(hào)處理算法的關(guān)鍵是提高信噪比,提高檢測(cè)精度,本項(xiàng)目采用了滑動(dòng)平均算法。
5.1 ?算法說明
對(duì)輸入的數(shù)據(jù)進(jìn)行滑動(dòng)濾波處理,顯示的數(shù)據(jù)不會(huì)出現(xiàn)劇烈跳變。緩沖區(qū)大小不變,每采樣一次,數(shù)據(jù)向左滑動(dòng)一個(gè),先入先出,之后數(shù)據(jù)取均值。如圖8所示。
圖8 ?數(shù)據(jù)滑動(dòng)示意圖
5.2 ?算法評(píng)估
算法時(shí)間與所采用的濾波緩沖N大小有關(guān),一般會(huì)采用10個(gè)緩沖。
5.3 ?算法實(shí)現(xiàn)
首先,多個(gè)波形周期滑動(dòng)平均,滑動(dòng)的是一個(gè)或幾個(gè)相鄰的波形周期。然后,對(duì)求出的濃度再次滑動(dòng)或累加平均。具體流程如下:
采樣原始波形,采集n個(gè)信號(hào)周期。
在采集第n+1個(gè)波形的同時(shí),將波形[0~n]做累加平均,求出第一個(gè)滑動(dòng)平均后的波形數(shù)據(jù)。
在采集第n+2個(gè)波形的同時(shí),則將波形[1,n+1]做累加平均。
正常情況下,持續(xù)采集波形數(shù)據(jù),然后滑動(dòng)平均,在采集新波形的同時(shí),就會(huì)流水輸出滑動(dòng)平均后的波形數(shù)據(jù)。
在滑動(dòng)平均后的第一個(gè)波形數(shù)據(jù)中,計(jì)算出Im1,Ir1;
之后,每過一個(gè)采集周期,在新流水輸出的滑動(dòng)平均后的波形數(shù)據(jù)中,計(jì)算出Imn,Im。
1 s/2 s/3 s/4 s時(shí)間后,計(jì)算Im=(Im1+Im2+…+Imn)/n;Ir=(Ir1+Ir2+…+Irn)/n;Im/Ir,并計(jì)算濃度C1平均次數(shù)n = T/T1;(T為濃度輸出間隔時(shí)間,T1為信號(hào)周期)
1 s/2 s/3 s/4 s時(shí)間后,計(jì)算濃度C2;
依次重復(fù)此過程。
6 ?甲烷濃度計(jì)算算法
光強(qiáng)和氣體濃度的關(guān)系符合Lbert-Beer定律:
Im=I1e-k1Cl ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)
Ir=I2e-k2Cl ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (2)
其中:I1和I2分別為測(cè)量光和參考光的出射光強(qiáng);Im和Ir分別為產(chǎn)生吸收后,在接收側(cè)接收到的測(cè)量光強(qiáng)和參考光;k1和k2分別為測(cè)量光波長和參考光波長的吸收系數(shù);C為氣室內(nèi)的待測(cè)氣體濃度;l為氣室長度;為消除光源變化和部分溫度變化的影響,由式(1),式(2)可得:
C = a*In(Im/Ir) – a*In b ? ? ? ? ? ? ? ? ?(3)
其中:a =1/[1(k2-k1)];b =I1/I2
根據(jù)式(3):
調(diào)零時(shí)(C=0%LEL),有:
In(Im0/Ir0)= In b ? ? ? ? ? ? ? ? ? ? ? ? (4)
標(biāo)定時(shí)(C=50%LEL),有:
50%LEL =a*In(Im1/Ir1) – a*In b ? ? ? ? ? ? ?(5)
根據(jù)式(4)和(5),即可求得a和b。
由理論公式可知,濃度C是關(guān)于Imcalib/Ircalib的關(guān)系式,即C(Imcalib/Ircalib),則其一階關(guān)系是關(guān)于Imcalib/Ircalib的一次式。如圖9所示。
圖9 ?濃度C與Imcalib/Ircalib關(guān)系的具體示圖
一次函數(shù)只有兩個(gè)未知系數(shù),只需調(diào)零和標(biāo)定一次即可確定所有參數(shù)。調(diào)零后確定b值:
b = Imzero/Irzero
標(biāo)定后確定K值:
這樣我們便得到最終的濃度值。
7 ?通氣測(cè)試結(jié)果
NDIR探測(cè)器最終通氣結(jié)果如表1所示。
8 ?結(jié) ?語
通過試驗(yàn)可知,NDIR探測(cè)器能準(zhǔn)確探測(cè)氣體濃度,符合預(yù)期,能夠適應(yīng)市場(chǎng)需求,本設(shè)計(jì)是基于氣體紅外光譜吸收原理的一種單光源單探測(cè)器的甲烷氣體檢測(cè)裝置,相較于傳統(tǒng)的電化學(xué),催化燃燒探測(cè)器,該設(shè)計(jì)具有響應(yīng)快、精度高,使用壽命長等優(yōu)點(diǎn),在環(huán)保、化工、以及放置氣體泄漏等領(lǐng)域?qū)?huì)有較好的應(yīng)用,具有廣闊的市場(chǎng)前景。
參考文獻(xiàn)
[1] STMicroelectronics Ltd. Cortex-M4 programming manual:STM32F4xxx[S].2012.
[2] STMicroelectronics Ltd. Reference manual:STM32F4xxx[S].2012
[3]劉火良,楊森.STM32庫開發(fā)實(shí)戰(zhàn)指南[M].北京:機(jī)械工業(yè)出版社,2013.
[4]王汝琳,王詠濤.紅外檢測(cè)技術(shù)[M].北京:化學(xué)工業(yè)出版社,2006.
[5] Joseph Yin.ARM Cortex-M3 權(quán)威指南[M].宋巖,譯.北京:北京航空航天大學(xué)出版社,2014.
[6]張德富.算法設(shè)計(jì)與分析[M].北京:國防工業(yè)出版社,2009.