国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

NDIR紅外探測器的嵌入式軟件系統(tǒng)設(shè)計

2015-01-26 13:17:00許言午鄧新欣張濤王健
物聯(lián)網(wǎng)技術(shù) 2015年1期

許言午+鄧新欣+張濤+王健

摘 要:催化燃燒式氣體探測器具有選擇性差、易中毒、使用壽命短等缺點,針對這種情況,設(shè)計了具有選擇性好、不會中毒、使用壽命長等諸多優(yōu)點的新型氣體探測器——NDIR紅外探測器。針對該探測器結(jié)合STM32單片機設(shè)計了相應(yīng)的嵌入式軟件系統(tǒng),介紹了軟件方面的整體框架和各模塊的構(gòu)成。重點描述了對通過放大器后的信號進行采樣、濾波,再通過相應(yīng)的算法對信號進行處理,并最終獲得氣體的濃度的過程。

關(guān)鍵詞:STM32;NDIR紅外探測器;嵌入式軟件系統(tǒng);濃度算法

中圖分類號:TN92 ? ? ? ? ? ? ? ? ? ?文獻標識碼:B ? ? ? ? ? 文章編號:2095-1302(2015)01-00-04

0 ?引 ?言

在石油石化行業(yè),碳氫類氣體(甲烷、乙烷等)是最為常見的可燃性氣體,油氣管道和儲罐的日常操作和設(shè)備的腐蝕老化等會導(dǎo)致此類氣體的泄漏,石油石化的安全生產(chǎn)事故有很多都是可燃氣體的燃燒爆炸引起的。因此,對這類氣體進行在線探測、濃度預(yù)警和報警非常重要。傳統(tǒng)的氣體探測器如催化燃燒式探測器,其傳感器易中毒,對氣體的選擇性差,使用壽命不長,平時維護的工作量大,也無法長期暴露在高濃度可燃氣體中。而NDIR(Non-Dispersive Infrared)紅外探測器則具有選擇性好、使用壽命長、不會中毒、維護工作量小、響應(yīng)時間快、能長期工作在高濃度氣體中等諸多優(yōu)點。因而開發(fā)這種新型的氣體探測器,對確保石油石化安全生產(chǎn)意義重大,同時也減少了對相關(guān)進口產(chǎn)品的依賴。

1 ?基本原理

1.1 ?光譜吸收理論

光譜學(xué)研究表明當氣體受到紅外光束的照射時,氣體分子會產(chǎn)生對紅外光的吸收,將光能量轉(zhuǎn)化為分子的振動與轉(zhuǎn)動能量。在吸收過程中,氣體分子只能吸收那些能量正好等于它的某兩個能級之差的光子(ΔE=hv),所以不同分子結(jié)構(gòu)的氣體會吸收不同頻率(能量)的光子,也就是說不同氣體會對某個特定波段的紅外光產(chǎn)生特征吸收。

1.2 ?NDIR探測器測量氣體濃度原理

NDIR意為非分散紅外光譜。NDIR探測器利用了不同氣體在中紅外波段(波長在2.5~25 μm間)的特征吸收原理。不同氣體吸收紅外光的強度與其本身的濃度有關(guān),其吸收關(guān)系滿足朗伯-比爾(Lambert-Beer)定律,具體表現(xiàn)形式如下:

I1=I0*e-aLC

式中,I0代表入射光強,I2是通過待測氣體后的透射光強,L是光程,C是待測氣體的濃度,α是吸收系數(shù)。當一定濃度的氣體通過連續(xù)的中紅外光譜時,由于氣體對特定頻率光的吸收,會使得傳感器檢測到該頻率光強的減弱,而其他頻率的光強不變,于是通過傳感器得到的參考和測量通道的電信號,分別代表了原始光強和被待測氣體吸收之后的光強,通過傳感器的電信號,再經(jīng)過后續(xù)的硬件與軟件算法上的處理,我們最終便能得出氣體的濃度。

2 ?探測器光路設(shè)計

在光路設(shè)計中我們選擇了單光源、單探測器的對射式方式,具體結(jié)構(gòu)如圖1所示:

圖1 ?整體光路設(shè)計

如圖1所示,探測器的光路由紅外光源、準直透鏡、發(fā)射視窗、氣室、接收視窗、接收透鏡及PbSe探測器組成。紅外光源發(fā)出的紅外光經(jīng)過準直透鏡得到與氣室平行的光線,紅外光通過氣室中,氣室中的氣體對紅外光進行吸收,在接收端,通過接收透鏡使光聚集成為一個光斑,在光斑打在熱釋電探測器上之前,需經(jīng)過3~5 μm寬帶濾光片,由此,通過探測器可以觀察到兩個信號的大小。

準直透鏡使進入氣室的光成為平行光,排除由于光路對測量造成的影響。在氣室兩端我們安裝了視窗,視窗要求有足夠高的透過率,視窗的作用是使氣室與發(fā)射/接收端隔離,避免氣體進入發(fā)射端/接收端,對光源/探測器造成影響,從而對測量結(jié)果造成影響。在接收端,接收透鏡可以把打過來的平行光聚集成為一個光斑打在探測器上,這時要求探測器在透鏡的中心軸上,探測器放置的位置在透鏡的焦點附近得到最大的光強,同時在透鏡和探測器中間放置一個3~5 μm的寬帶濾波片,濾除可見光對探測結(jié)果造成的影響。

采用此種單光源對射式光路,有如下優(yōu)點:(1)光路簡單,可控性高,相比于雙光源,不需要考慮光源同步性帶來的誤差,能更好地結(jié)合實際排除干擾的因素;(2)PbSe傳感器相比傳統(tǒng)的紅外熱釋電探測器,靈敏度更高,響應(yīng)速度更快,溫漂很小,可以提高探測下限和測量精度。

3 ?基本硬件電路設(shè)計

紅外氣體探測器一般由以下幾部分組成(如圖2):光源驅(qū)動電路,探測器電路,信號處理電路,ADC采樣以及MCU,輸出電路構(gòu)成。MCU控制光源發(fā)光,使測量光源和參考光源交替閃爍,使探測器可以在一個周期內(nèi)得到測量信號和參考信號兩個完整的信號。探測器得到的信號通信號處理模塊進行放大和濾波。最后通過ADC進行采樣并傳入MCU進行數(shù)據(jù)處理得到濃度,并通過4~20 mA電路和RS 485電路對外輸出。

3.1 ?光源驅(qū)動電路

光源由MCU定時器產(chǎn)生的方波進行驅(qū)動,方波的頻率為2 Hz,占空比為50%(如圖3)。

圖3 ?光源驅(qū)動波形

在上位機上顯示的AD采樣波形圖如圖4所示,采樣頻率為2 kHz:

圖4 ?測量信號

由圖可以知道光源驅(qū)動頻率和占空比的設(shè)置可以保證采到信號的最大最小值。

3.2 ?探測器接收電路

探測器方面我們選擇的是PbSe探測器,這種探測器對于1~5 μm的紅外信號有較寬的探測域,較快的響應(yīng)速度,以及較好的溫度特性,使其可以工作在室溫的環(huán)境下。PbSe探測器的主要原理是光傳導(dǎo)效應(yīng),是光打在探測器上,由于光傳導(dǎo)效應(yīng)使PbSe探測器的阻值發(fā)生變化,隨著光強度增加,PbSe探測器的阻值會降低。

3.3 ?信號處理、采樣與處理器

傳感器的信號經(jīng)前放電路、帶通電路進行放大,然后用ADC對放大后的信號進行采樣,給微處理器進行數(shù)據(jù)處理,微處理器將采集的數(shù)據(jù)進行軟件濾波以及峰峰值的采集,并通過算法進行最后濃度的計算。微處理器對采樣得到的信號進行處理,算法計算等工作,根據(jù)完成的功能要求等選擇不同的單片機進行控制。

3.4 ?輸出電路

輸出電路我們選擇了工業(yè)常用的4~20 mA輸出電路,連接控制器,可以直觀地顯示計算出來的氣體濃度;同時我們使用RS 485總線與PC通信,通過上位機對儀器參數(shù)進行更改,以及對采樣數(shù)據(jù)進行觀察。

4 ?軟件設(shè)計

4.1 ?主處理器

NDIR主處理器為ST的32位單片機STM32F407VGT6, 主處理器在主板上的原理框圖如圖5所示。

4.2 ?嵌入式軟件總體設(shè)計架構(gòu)

本系統(tǒng)采用組件化編程,程序總體結(jié)構(gòu)主要由以下3部分組成(如圖6)。

圖5 ?NDIR紅外探測器主板原理框圖

主控層:主要由系統(tǒng)初始化、系統(tǒng)自檢及主流程控制模塊組成。主體流程遵從:信號采集、信號處理、報警診斷、4~20mA輸出。系統(tǒng)完成初始化及自檢后,進入一套定義好的流程執(zhí)行,即主流程。運行期間,前臺處理程序:串口中斷、定時器中斷實時的執(zhí)行,即只要發(fā)生中斷,馬上進入中斷服務(wù)程序,若無中斷的發(fā)生,則系統(tǒng)運行主流程(后臺程序),見圖中的MainProcess處理。應(yīng)用層的流程圖如圖7所示。

圖6 ?程序總體結(jié)構(gòu)圖

圖7 ?應(yīng)用層的流程圖

組件層:主要是各個子模塊組成,它們都是一個獨立的功能模塊,各模塊之間不允許相互調(diào)用。組件層包含眾多模塊,各個模塊又可以有多子模塊組成。在模塊劃分上,按照實現(xiàn)功能的不同,來劃分不同的模塊,每個模塊可以獨立進行工作,也可以像搭積木一樣和其他模塊組合起來完成一個特定的功能。

Modbus通訊處理模塊:實現(xiàn)接收、解析及發(fā)送通訊命令。

光源驅(qū)動管理模塊:產(chǎn)生頻率、占空比可調(diào)的PWM波形,驅(qū)動光源打開、關(guān)閉。

加熱棒驅(qū)動管理模塊:產(chǎn)生頻率、占空比可調(diào)的PWM波形,驅(qū)動加熱棒開啟、關(guān)閉加熱。

采樣及數(shù)據(jù)處理模塊:對信號采樣、濾波處理后計算濃度,4~20 mA輸出。

報警輸出:報警判斷,并輸出自檢、過程檢測,及濃度、溫度報警信息。

驅(qū)動層:主要提供一些底層驅(qū)動的API接口函數(shù),供組件層的各個模塊調(diào)用。驅(qū)動層又可以分為兩級:

底層驅(qū)動(芯片級):項目所需的芯片級驅(qū)動。底層驅(qū)動(芯片級)又可以劃分為單片機片內(nèi)驅(qū)動和單片機片外驅(qū)動。片內(nèi)驅(qū)動主要有內(nèi)部Flash驅(qū)動、內(nèi)部ADC驅(qū)動、內(nèi)部DAC驅(qū)動、內(nèi)部定時器驅(qū)動、SCI串口驅(qū)動等。片外驅(qū)動主要EEPROM驅(qū)動、AD7689、DAC121S101。底層驅(qū)動的特點是通用性,可在各個項目中共享。

底層驅(qū)動(項目級): 底層驅(qū)動(項目級)直接面向組件層的各個組件,完成項目功能的芯片級驅(qū)動的封裝和擴展。在NDIR原型機項目中,項目級驅(qū)動主要包括:光源驅(qū)動、加熱棒驅(qū)動。一般而言,底層驅(qū)動(項目級)與項目相關(guān)性比較大。

5 ?信號處理算法

信號處理算法的關(guān)鍵是提高信噪比,提高檢測精度,本項目采用了滑動平均算法。

5.1 ?算法說明

對輸入的數(shù)據(jù)進行滑動濾波處理,顯示的數(shù)據(jù)不會出現(xiàn)劇烈跳變。緩沖區(qū)大小不變,每采樣一次,數(shù)據(jù)向左滑動一個,先入先出,之后數(shù)據(jù)取均值。如圖8所示。

圖8 ?數(shù)據(jù)滑動示意圖

5.2 ?算法評估

算法時間與所采用的濾波緩沖N大小有關(guān),一般會采用10個緩沖。

5.3 ?算法實現(xiàn)

首先,多個波形周期滑動平均,滑動的是一個或幾個相鄰的波形周期。然后,對求出的濃度再次滑動或累加平均。具體流程如下:

采樣原始波形,采集n個信號周期。

在采集第n+1個波形的同時,將波形[0~n]做累加平均,求出第一個滑動平均后的波形數(shù)據(jù)。

在采集第n+2個波形的同時,則將波形[1,n+1]做累加平均。

正常情況下,持續(xù)采集波形數(shù)據(jù),然后滑動平均,在采集新波形的同時,就會流水輸出滑動平均后的波形數(shù)據(jù)。

在滑動平均后的第一個波形數(shù)據(jù)中,計算出Im1,Ir1;

之后,每過一個采集周期,在新流水輸出的滑動平均后的波形數(shù)據(jù)中,計算出Imn,Im。

1 s/2 s/3 s/4 s時間后,計算Im=(Im1+Im2+…+Imn)/n;Ir=(Ir1+Ir2+…+Irn)/n;Im/Ir,并計算濃度C1平均次數(shù)n = T/T1;(T為濃度輸出間隔時間,T1為信號周期)

1 s/2 s/3 s/4 s時間后,計算濃度C2;

依次重復(fù)此過程。

6 ?甲烷濃度計算算法

光強和氣體濃度的關(guān)系符合Lbert-Beer定律:

Im=I1e-k1Cl ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)

Ir=I2e-k2Cl ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (2)

其中:I1和I2分別為測量光和參考光的出射光強;Im和Ir分別為產(chǎn)生吸收后,在接收側(cè)接收到的測量光強和參考光;k1和k2分別為測量光波長和參考光波長的吸收系數(shù);C為氣室內(nèi)的待測氣體濃度;l為氣室長度;為消除光源變化和部分溫度變化的影響,由式(1),式(2)可得:

C = a*In(Im/Ir) – a*In b ? ? ? ? ? ? ? ? ?(3)

其中:a =1/[1(k2-k1)];b =I1/I2

根據(jù)式(3):

調(diào)零時(C=0%LEL),有:

In(Im0/Ir0)= In b ? ? ? ? ? ? ? ? ? ? ? ? (4)

標定時(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ù)只有兩個未知系數(shù),只需調(diào)零和標定一次即可確定所有參數(shù)。調(diào)零后確定b值:

b = Imzero/Irzero

標定后確定K值:

這樣我們便得到最終的濃度值。

7 ?通氣測試結(jié)果

NDIR探測器最終通氣結(jié)果如表1所示。

8 ?結(jié) ?語

通過試驗可知,NDIR探測器能準確探測氣體濃度,符合預(yù)期,能夠適應(yīng)市場需求,本設(shè)計是基于氣體紅外光譜吸收原理的一種單光源單探測器的甲烷氣體檢測裝置,相較于傳統(tǒng)的電化學(xué),催化燃燒探測器,該設(shè)計具有響應(yīng)快、精度高,使用壽命長等優(yōu)點,在環(huán)保、化工、以及放置氣體泄漏等領(lǐng)域?qū)休^好的應(yīng)用,具有廣闊的市場前景。

參考文獻

[1] STMicroelectronics Ltd. Cortex-M4 programming manual:STM32F4xxx[S].2012.

[2] STMicroelectronics Ltd. Reference manual:STM32F4xxx[S].2012

[3]劉火良,楊森.STM32庫開發(fā)實戰(zhàn)指南[M].北京:機械工業(yè)出版社,2013.

[4]王汝琳,王詠濤.紅外檢測技術(shù)[M].北京:化學(xué)工業(yè)出版社,2006.

[5] Joseph Yin.ARM Cortex-M3 權(quán)威指南[M].宋巖,譯.北京:北京航空航天大學(xué)出版社,2014.

[6]張德富.算法設(shè)計與分析[M].北京:國防工業(yè)出版社,2009.

怀来县| 赤城县| 珠海市| 墨竹工卡县| 密山市| 江城| 清流县| 府谷县| 潍坊市| 成都市| 临夏市| 桃园县| 通辽市| 满洲里市| 德清县| 调兵山市| 珲春市| 泉州市| 磐安县| 和顺县| 波密县| 临桂县| 集安市| 宣武区| 琼海市| 柳林县| 芒康县| 五大连池市| 东丽区| 德格县| 图们市| 英德市| 明星| 繁昌县| 洪江市| 曲阳县| 南通市| 海伦市| 邢台县| 长子县| 北辰区|