摘要:基于紅外光譜吸收原理,對一氧化碳的濃度檢測進行研究。為了在不提高成本的條件下提高設備測量精度,采用二維拉格朗日插值算法對測量alpha表進行插值。實驗表明,運用拉格朗日算法進行插值造成的誤差在設備誤差允許范圍內。該方法在同樣精度條件下,需要更少的采樣點數,從而降低了設備成本。 0 引言 一氧化碳(CO)是最為常見的一種有毒有害的可燃可爆性氣體,它給工業安全生產帶來了巨大的危害。因此研制一種能夠實時準確地測量一氧化碳氣體濃度的氣體檢測儀是非常必要的。目前應用于一氧化碳氣體的檢測方式主要有氣相色譜法、光干涉法、半導體氣體傳感器、紅外光譜吸收式等,以上四種一氧化碳氣體濃度測量方法各有優缺點。然而紅外光譜吸收法表現出更多的優點,紅外光譜吸收式的基本原理為:將窄帶光源波長對準被測氣體某一吸收峰,用正弦信號對激光波長進行調制,調制后的激光通過被測氣體,由于氣體的吸收效應,波長調制轉換為強度調制,當激光中心波長對準氣體吸收峰的中心處,輸出光包含有調制頻率的二次諧波信號,而且信號幅度正比于氣體的濃度。通過提取吸收信號的二次諧波,便可實現氣體濃度的測量。與差分吸收法相比,諧波檢測法具有更高的分辨率。本文采用紅外光譜吸收式來實現對一氧化碳氣體濃度的測量,在一氧化碳氣體檢測儀的設計過程中,將拉格朗日插值思想應用于數據處理。本文主要對一氧化碳氣體檢測儀中算法的設計進行研究,對數據進行最優化處理。 1 拉格朗日插值的意義 紅外光譜技術光譜吸收技術的基本原理是比爾一朗伯特(Beer Lambert)定律,出射光強I與入射光強Io的關系為I=Ioexp[-a(v)CL],其中a(v)為氣體在一定頻率v處的吸收系數;C為氣體濃度;L為氣體吸收的路徑長度。由于a(v)是關于環境溫度和壓強的函數,只要測量出環境中的溫度和壓強就可以求出a(v)的值,但是該函數的解析表達式相當復雜,不便于處理和計算,無法實時準確地計算出a(v)的值,也就無法求出被測氣體的濃度。因此設計某種算法比較準確地求出a(v)的值將成為一氧化碳測量的關鍵環節,當求出一氧化碳氣體吸收系數后,就可根據比爾-朗伯特定律用算法實現一氧化碳氣體濃度的測量。 本文采用拉格朗日插值算法思想來實現對吸收系數a(v)的處理,并通過程序來比較準確的求出吸收系數a(v)的值。這里我們可以通過實驗得到許多在不同溫度和壓強下一氧化碳氣體的吸收系數,但它們是一些孤立離散的點,是不連續的。然后運用拉格朗日插值的思想對他進行處理,由于一氧化碳的吸收系數a(v)與溫度和壓強2個參數有關,因此本文用二維拉格朗日插值算法來實現。 在設計一氧化碳氣體濃度測量算法時,使用拉格朗日插值算法進行相關的處理,可使準確的求出一氧化碳氣體的濃度。由此可知,對一氧化碳氣體檢測儀進行算法設計是非常必要的,這種拉格朗日插值算法思想在氣體檢測方面將具有較大的應用前景。 2 拉格朗日插值原理 2.1 拉格拉朗日插值 拉格朗日插值由線性插值與拋物線插值推廣而來,將n=1及n=2的插值推廣到一般情形,考慮通過(n+1)個點,(xi,f(xi))(i=0,1,2,…,n)的插值多項式Ln(x),使Ln(xi)=f(xi)i=0,1,2,…,n。 用插值基函數方法可得: ![]() 2.2 二維拉格朗日插值 首先說明二維拉格朗日插值的原理,假定在平面xOy的一個長方形網格的節點上,給定f(x,y)的函數值,即定義在節點的值為fi,j=f(xi,yj)。一個雙插值由兩步組成,每一步都利用一個一維插值。 第一步,做y方向的插值,求出E和F點的插值: ![]() ![]() 第二步,在fE和fF之間做線性插值: ![]() 其中二維區域的雙線性區域如圖1所示。 ![]() 把這兩步寫成一個公式,可得: ![]() 以上部分是通過二維線性插值的方法來實現對數據的處理的,這種方法對于數據處理來說仍有不足的地方,根據上述相同的數據處理思想,可以利用二維拉格朗日插值算法來實現其相同的功能,使數據處理效果更佳。 3 拉格朗日插值算法設計 3.1 拉格朗日插值算法實現的方法 本算法用拉格朗日插值公式對二維不等距觀測數據進行成組插值,實現對吸收系數的計算。可以選擇不同的節點數n來實現插值。有觀測數列(x1,y1),(x2,y2),…,(xn,yn),并且x1 ![]() 式中:j是移動插值時所取n個插值節點中最大的那個序號數,做如下取值: ![]() m是觀測數列的樣點數。 通過二維拉格朗日插值算法的處理,就能夠較為精確地求出吸收系數,從而根據比爾-朗伯特(Beer Lambert)定律I=Ioexp[-a(v)CL]反推出被測一氧化碳氣體的濃度 ![]() 3.2 拉格朗日插值算法實現的步驟 拉格朗日插值算法實現的步驟為: (1)給出所需的輸入量給出插值節點控制數n,插值點序列(xi,yi),i=0,1,2,…,n,和要計算的點x。 (2)設計拉格朗日插值函數(偽碼形式) ![]() 第三步:輸出ln(x)的計算結果fx 4 實驗結果 使用拉格朗日插值算法修正后,通過實驗測得幾組在不同溫度和壓強下被測氣體的濃度,并與實驗給定樣氣濃度值進行比較,得出測量結果與標準濃度之間的差值,由測量差值便可知氣體檢測儀性能的好壞,數據如表1所示: ![]() 通過實驗可以知道,被測氣體的溫度和壓強是未知的,通過傳感器測量出的溫度和壓強可能在數據表中不存在,對于這些不存在的溫度和壓強點,便可以使用拉格朗日插值算法進行處理,實時準確地測量出被測氣體的濃度。由此可知,對一氧化碳氣體檢測儀進行算法設計是非常必要的,這種拉格朗日插值算法思想在氣體檢測方面將具有較大的應用前景。 5 結語 本文基于紅外光譜吸收原理應用拉格朗日插值思想實現對一氧化碳氣體檢測儀的數據處理,詳細地說明了拉格朗日插值的思想、使用拉格朗日插值算法的實際意義,并用拉格朗日插值算法實現了對被測氣體濃度的測量。用Freescale單片機作為處理器,以Code Warrior為開發平臺,運用C語言實現拉格朗日插值算法。實驗表明,該系統基于紅外光譜吸收原理,用拉格朗日插值算法實現了對環境中一氧化碳濃度的測量,與以往氣體檢測儀相比,本設計方法降低了硬件結構,優化了系統性能,節約了成本,縮短了開發周期,使得檢測結果更加準確。 |