喻璐,譚志文,鄒望輝
(長沙理工大學物理與電子科學學院,湖南 長沙 410114)
作為工業上常用的有機溶劑,乙醇與丙酮在橡膠、纖維、制革等行業中得到了廣泛應用。但乙醇和丙酮的化學性質比較活潑,不僅易燃、易揮發,而且具有一定的毒性,一旦發生泄漏,會嚴重損傷人的呼吸系統和神經系統,達到爆炸下限時,甚至可能發生劇烈爆炸,危及人體生命。因此,設計一種能應用于工業生產環境的、可以有效鑒別乙醇和丙酮的氣體識別系統具有重要的意義。
電子鼻是一種模擬動物嗅覺器官開發的氣體分析系統,主要通過對氣味進行分析來實現對氣體的種類區分和濃度測量。在工業生產方面,對檢測的實時性和準確度要求很高,采用傳統技術進行氣體識別時,數據采集的實時性以及識別的精度都達不到要求。因此,該文設計了一種基于傳感器陣列的電子鼻系統,通過STM32 與數字式萬用表進行通信,實現陣列數據的采集,采用非線性支持向量機(Supported Vector Machine,SVM)模型來實現混合氣體的分類,可以有效解決時效與精度問題。
根據實驗要求,搭建了氣體檢測與分析系統,系統主要由采樣氣路模塊、數據采集與顯示模塊和模式識別模塊3 個部分組成[1]。標準氣體通過質量流量控制器(Mass Flow Controller,MFC)由進氣口進入氣室,通過控制MFC 得到某一濃度下的單一氣體(或混合氣體),單一氣體(或混合氣體)與固定在氣室中的傳感器陣列模塊板反應,使用安捷倫數字式萬用表34450A 進行陣列數據讀取,使用LabVIEW 與STM32 進行通信向傳感器陣列板上的模擬多路復用芯片ADG1607 寫入命令,實現陣列不同傳感器之間的通道切換,同時,使用LabVIEW 與34450A 進行通信,實現陣列數據的實時顯示與存儲。對采集到的數據進行預處理和特征提取,將提取到的特征值作為輸入進行模式識別[2],模式識別部分在MATLAB 平臺中編程實現,識別結果在上位機輸出。氣體檢測與分析系統結構圖如圖1 所示。

圖1 氣體檢測與分析系統結構圖
氣體配置容器選用上海偉創標準氣體分析技術有限公司配置的標準鋼瓶,清洗氣為以高純氧氣與氮氣配比的高純空氣,其中高純氧氣和高純氮氣的濃度均為99.999%。乙醇和丙酮的配置濃度一致,均為200 ppm,采用高純空氣稀釋。流量計選用北京七星華創流量計有限公司的CS200 系列產品,乙醇、丙酮和空氣各使用一個MFC,通過設定不同的氣體流速比例進行混合來達到改變氣體濃度的目的。
常見的氣體傳感器類型有金屬氧化物半導體型(Metal Oxide Semiconductor,MOS)、電化學型、表面聲波型等[3]。其中MOS 型傳感器具有成本低、靈敏度高等優勢,在實際應用中使用最為廣泛[4]。其敏感材料在空氣中會發生對氧的吸附反應,導致電阻上升,在還原性氣體中會發生氧化還原反應,導致電阻下降,以此實現對氣體濃度的識別[5]。目前,在諸多敏感材料中,n 型氧化物如SnO2、In2O3、WO3、ZnO 和p型氧化物如CuO、NiO、Co3O4表現出顯著的氣體敏感特性[6],該設計中使用的均為MOS 型傳感器,敏感材料為SnO2。
由于單一傳感器存在交叉敏感性,可能對工業環境中的多種氣體均敏感,導致識別的精度達不到預期。因此,構建傳感器陣列來采集數據,使用陣列形成的響應譜進行分析,可以避免使用單一傳感器采集數據帶來的偶然性。根據工業生產中乙醇與丙酮濃度的特點,在市售的氣體傳感器產品中選擇了4種不同的對乙醇和丙酮具有交叉敏感性的傳感器組成陣列,傳感器型號及檢測濃度范圍如表1 所示。

表1 傳感器型號與檢測濃度范圍
依據氣體組成和傳感器性能構建了如表1 所示的傳感器陣列后,為了實現陣列中不同傳感器的通道切換,引入了模擬多路復用芯片ADG1607,并將傳感器陣列與ADG1607 集成在一起,組成了傳感器陣列模塊。最后使用Altium Designer 20 繪制了陣列模塊設計圖并制作了實物,其中陣列模塊設計圖如圖2所示,陣列模塊實物圖如圖3 所示。

圖2 陣列模塊設計圖

圖3 陣列模塊實物圖(置于氣室中間)
如圖2 所示,TGS1-TGS4 對應4 個傳感器,ADG1607 為模擬多路復用芯片,內置8 個差分通道,將根據3 位2 進制地址線(A0、A1 和A2)所確定的地址作為公共差分輸出。
因為空氣中存在的水汽及其他雜質氣體會影響傳感器對目標氣體的響應特性,故反應氣室應該嚴格密閉。依據要求,設計了不銹鋼密閉氣室,氣室內壁光滑,可以減少氣體吸附在氣室表面導致實驗誤差的情況[7]??紤]到實驗中檢測的乙醇與丙酮濃度設定在0~200 ppm 之間,氣室體積過大或者過小都會影響氣體在氣室內達到平衡的時間和與傳感器充分響應的時間,又考慮到陣列電路板的大小和傳感器的高度,最終設定氣室的體積為500 mL。氣室內壁嵌有兩個四芯接頭,用于陣列電路板信號線的連接。氣室出氣口連接一個擋板閥,采樣過程中閥門關緊,使氣體充滿氣室,與傳感器充分反應,脫附過程中閥門打開,通過波紋管與真空泵相連,將廢氣排出至室外。
氣體實驗通常分為靜態檢測與動態檢測兩種類型,靜態檢測過程需要關閉氣室,得到的是某一具體濃度下的響應曲線,動態檢測過程不關閉氣室,氣室內氣體的濃度隨時變化,得到的是不同濃度的響應譜。相對于動態檢測,靜態檢測過程中傳感器的響應更穩定,因此,該文采用靜態檢測方式。整個實驗過程中,上位機界面以波形圖表形式實時顯示傳感器的阻值變化。
實驗開始前需要對傳感器和MFC 進行預熱,傳感器預熱時間為2 h,MFC 預熱時間為10~15 min。首先進行基線過程,去除氣路中的雜質氣體,時間為180 s。隨后進行采樣過程,使用MFC 控制配比濃度,同時通入空氣和乙醇(丙酮),觀察真空計,其示數達到1×105pa 時,關閉MFC,停止通氣,靜置一段時間等待傳感器阻值平穩后打開真空泵進行脫附,真空計示數達到5 pa 及以下時,認為氣室內已經達到真空狀態,氣體脫附過程結束。最后進行清洗過程,使傳感器恢復到初始狀態,等待下一次測量[8]。
該文針對乙醇與丙酮進行分析,分別獲取了傳感器TGS2620 以及傳感器陣列隨乙醇、丙酮濃度變化的阻值數據,共得到了398 組數據。其中TGS2620采集到的數據為158 組(乙醇88 組,丙酮70 組),傳感器陣列采集到的數據為240 組(每個傳感器60 組,乙醇30組,丙酮30組)。采取簡單隨機抽樣的方法[9],將數據樣本分為訓練集與測試集,抽取270 組數據作為訓練集,對SVM 模型進行訓練,剩余128 組數據作為測試集,對訓練得到的模型進行性能檢驗。
根據得到的數據對比發現,不同傳感器之間的數據量級差別較大,需要進行歸一化處理。同時,注意到當前提取的主要是原始曲線的幾何特征[10],提取效果容易受操作誤差的影響,因此選擇采用分段擬合曲線的方式進行特征提取[11],將氣體響應曲線分為采樣部分和脫附部分,每個部分提取兩個特征值,WSP2110在34 ppm 乙醇濃度下的響應曲線如圖4所示。

圖4 WSP2110在34 ppm乙醇濃度下的響應曲線
整個采樣階段,傳感器響應可以等效為一階線性模型,其傳遞函數為:

對輸入(激勵)函數做拉普拉斯變換后與傳遞函數相乘,可以得到輸出函數的S域表達式為:

再對Y(S)作拉普拉斯逆變換,得到:

針對式(3),分別提取反應階段與脫附階段的幅值A和反應速率,得到的特征提取結果如圖5 和圖6 所示。

圖5 TGS2620數據特征提取結果

圖6 陣列數據特征提取結果
圖5、圖6 中,橫坐標為特征向量維度,對應每條響應曲線提取的4 個特征值??v坐標為實驗次序,對應數據量。由圖5 可知,TGS2620 對乙醇和丙酮的響應規律不同,對乙醇和丙酮的響應不夠穩定,出現了個別差異大的特征值。由圖6 可知,陣列不同,傳感器之間遵循的響應規律就有明顯差別,同一傳感器同一氣體條件下的特征值基本穩定,氣體濃度變化時,傳感器的特征值變化不大,陣列數據下特征提取的效果更好。該特征提取方式有效地削弱了氣體濃度的影響,適用于氣體定性分析實驗。
支持向量機基于統計的方法[12],其核心思想是把輸入向量映射到高維特征空間中,將在低維空間中線性不可分的問題轉化為在高維空間中線性可分的問題[13]。應用該模型可以實現對線性可分樣本和非線性可分樣本的分類,針對非線性可分的情況,為了減少計算量,通常需要選擇核函數。常用的核函數有線性核函數、多項式核函數、徑向基函數(RBF)等[14]。其中線性核函數僅適用于線性可分問題,多項式核函數雖然適用于非線性特征映射,但是在訓練中總共有3 個參數需要設置,而RBF 函數無論是應用在大樣本還是小樣本中都有較好的性能,且僅有一個可調參數[15-16]。因此該文采用RBF 函數作為核函數。該設計中基于SVM 的氣體分類流程如圖7所示。

圖7 基于SVM的氣體分類流程圖
實驗過程中,為了進行分段特征提取,需要將響應曲線分為采樣與脫附兩個部分。而實際實驗過程中由于氣體濃度、流速、氣敏反應特性不同等原因,采樣過程與脫附過程所持續的時間往往不是固定的,而是通過查看上位機界面判斷阻值波形曲線是否平穩來決定的。為了精確地將每一次實驗過程分為兩個部分,需要提取出每一次實驗的起點、臨界點和終點,將響應曲線分為反應與脫附兩個部分,分別進行特征提取后再進行模型訓練與性能驗證,基于TGS2620 數據和傳感器陣列數據的SVM 模型分類結果如圖8 和圖9 所示。

圖8 TGS2620數據氣體分類結果

圖9 傳感器陣列數據氣體分類結果
由圖8 和圖9 可以看出,在訓練模型不變的情況下,單一傳感器數據下的識別精度僅為77.1%,而傳感器陣列數據下的識別精度提升至92.5%。其中乙醇樣本標記為類別“1”,丙酮樣本標記類別“2”。TGS2620 對乙醇氣體的敏感性較好,27 幀測試數據中僅有1 幀分類錯誤。對丙酮的分類效果不佳,21幀測試數據中有10 幀分類錯誤。測試集的正確分類幀數僅為37/48,分類正確率較差。在傳感器陣列數據下,以不同傳感器對同一氣體的響應情況作為氣體響應譜,有效消除了單一傳感器交叉敏感性的影響,乙醇正確分類幀數上升至39/40,丙酮正確分類幀數上升至35/40,測試集的正確分類幀數上升至74/80。幾種電子鼻系統的性能比較如表2 所示。

表2 幾種電子鼻系統的性能比較
該文設計并搭建了一種用于快速檢測乙醇和丙酮氣體的電子鼻系統。依據氣體特性和傳感器敏感特性構建了傳感器陣列,通過實驗獲取了單一傳感器與傳感器陣列在不同乙醇(丙酮)氣體濃度下的響應數據,通過分段提取特征結合SVM 對樣本進行了分類。比較發現,傳感器陣列數據條件下,分類正確率達到了92.5%,相比單一傳感器來說性能更優,這表明采用傳感器陣列對氣體信息進行獲取可以顯著提升分類正確率。后續為了提升分類的精確度,將嘗試更換不同的傳感器組合,規范實驗過程,進一步改進特征提取與模式識別方式。