金成,王久洪,張成,張澤,王海容
(1.西安交通大學機械制造與系統(tǒng)工程國家重點實驗室,710049,西安;2.西安交通大學機械工程學院,710049,西安)
近年來,在醫(yī)療、工業(yè)、農(nóng)業(yè)、軍事等領域?qū)]發(fā)性有機物(VOCs)特別是異戊二烯的檢測系統(tǒng)需求越來越多。2012年,杰西卡等人通過氣相色譜-質(zhì)譜儀進行慢性肝病患者呼氣研究,得出異戊二烯變化的可能原因是氧化應激、傷肝、新陳代謝等[1]。因此,對異戊二烯的識別與檢測成為了慢性肝病檢測的研究重點。目前國內(nèi)外對于異戊二烯的檢測研究還比較少,張泉水等人使用氣相色譜-質(zhì)譜聯(lián)用儀探究精神分裂癥患者與異戊二烯的關系,發(fā)現(xiàn)兩者存在高度相關性[2]。孫美秀等人研究了使用光腔衰蕩光譜技術(CRDS)檢測非酒精性脂肪肝病人呼出氣體中的丙酮與異戊二烯成分[3]。王禹等人使用二次電噴霧電離-離子遷移率譜系統(tǒng)檢測樣品中的異戊二烯氣體[4]。王海容等人研制了用于異戊二烯檢測的氣體傳感器[5],接著提出使用半導體氣敏傳感器陣列檢測人體呼出氣體的方案[6]。Han等人研制了花狀In2O3半導體傳感器檢測異戊二烯有望用于呼吸分析[7]。
目前,對于混合物中異戊二烯的檢測大部分還是使用基于質(zhì)譜、色譜、光譜等原理的大型分析儀器,分析時間過長,儀器本身體積大、價格高、操作復雜,而氣體傳感器檢測異戊二烯大部分只針對單一異戊二烯氣體。由于異戊二烯在人體呼氣中的濃度為痕量級別(體積分數(shù)為10-6量級),且濃度范圍小,難以檢測,因此本文使用金屬氧化物半導體傳感器陣列與模式識別算法結合的方法檢測混合氣體中的異戊二烯氣體濃度,更加方便快捷,適用于大規(guī)模篩查檢測的應用場景。
氣體傳感器選擇使用MEMS工藝半導體材料制造的金屬氧化物半導體(MOS)氣體傳感器,其通常使用SnO2、ZnO、TiO2和In2O3等半導體氧化物作為敏感材料[8-12],具有靈敏度高、成本低、穩(wěn)定性好等特點。肝病的呼吸標志物異戊二烯為內(nèi)源性氣體,為了實現(xiàn)抗干擾能力,配氣中選擇了與人體疾病有關的內(nèi)源性氣體,即與腎臟疾病相關的氨氣和與糖尿病有關的丙酮,以及與飲酒人群相關的乙醇[13-15]。本文針對混合氣體的各氣體組分,選擇了表1所示的4個商用傳感器組成傳感器陣列。
表1 傳感器型號及檢測范圍與檢測氣體Table 1 Sensor model, detection range and detection gas used in experiments
圖1所示測試系統(tǒng)主要由配氣系統(tǒng)、傳感器陣列氣室、AD轉(zhuǎn)換與數(shù)據(jù)采集模塊、上位機組成。配氣系統(tǒng)主要由儲氣鋼瓶和質(zhì)量流量計(MFC)及管路組成,通過質(zhì)量流量計配合連通閥進行氣體混合,使用純凈空氣為載氣控制整體氣流平穩(wěn)流動。氣室內(nèi)置傳感器陣列,體積小,密封性好。由于測試濃度低、梯度小,因此傳感器信號采集電路具有良好的抗噪能力,可避免噪聲的干擾。測試電路將傳感器電阻值信號轉(zhuǎn)換成電壓值信號,通過16位AD76064數(shù)據(jù)采集模塊進行模數(shù)轉(zhuǎn)換。通過STM32采集轉(zhuǎn)換數(shù)據(jù),使用串口通信將數(shù)據(jù)傳輸?shù)缴衔粰C保存。
測試實驗分成兩組進行:實驗一選擇濃度較高的異戊二烯與氨氣的二元混合氣體,用模式識別算法預測異戊二烯濃度;實驗二的VOCs混合氣體包括異戊二烯、丙酮與乙醇。傳感器對于同性氣體的響應更難分離,且數(shù)據(jù)差異性變小。兩組實驗各配置了25組樣本。實驗二由于有3種氣體,理論上應該配置75組,但是這里的乙醇為了模擬可能存在的其他VOCs氣體的干擾,因此實驗二主要為異戊二烯與丙酮變化的25組樣本。各樣本混合物的標簽及其對應的各組分體積分數(shù)如圖2所示。實驗一測試時異戊二烯體積分數(shù)分別為0.5×10-6、0.7×10-6、0.9×10-6、1.1×10-6、1.3×10-6。首先將異戊二烯的體積分數(shù)固定,氨氣的體積分數(shù)逐漸變化為4.5×10-6、4.8×10-6、5×10-6、5.3×10-6、5.5×10-6,測試完畢后,異戊二烯增加,繼續(xù)重復上述的過程。實驗二混合氣體各組分配比方法與實驗一類似,使用質(zhì)量流量計設置不同的流量,整體流量控制在200 mL/min,使用空氣補足剩下的流量。異戊二烯體積分數(shù)分別為0.1×10-6、0.2×10-6、0.3×10-6、0.4×10-6、0.5×10-6,測試時首先將異戊二烯體積分數(shù)固定,丙酮的體積分數(shù)逐漸變?yōu)?.1×10-6、0.2×10-6、0.3×10-6、0.4×10-6、0.5×10-6,乙醇的體積分數(shù)變化為1.5×10-6、1.75×10-6、2.0×10-6、2.25×10-6、2.5×10-6,且混合物中乙醇的體積分數(shù)為隨機的,測試完畢后,增加異戊二烯體積分數(shù),繼續(xù)重復上述的過程。
圖2 混合物各組分體積分數(shù)Fig.2 The volume fraction of each component of the mixture
具體測試過程如下:氣路通入純空氣對傳感器進行預熱與清洗,待基線穩(wěn)定后,切換通道;實驗一向氣室通入異戊二烯、氨氣與空氣的混合氣體,實驗二向氣室通入異戊二烯,丙酮,乙醇的混合氣體;單片機進行數(shù)據(jù)采集并將傳感器電壓值發(fā)送到上位機存儲。待反應完成后,通入空氣,進行清洗,準備下一次測試。
圖3為25組混合氣體響應曲線峰值圖,其中體積分數(shù)配比策略為先異戊二烯體積分數(shù)固定,丙酮以0.1~0.5逐漸上升,接著異戊二烯體積分數(shù)上升0.1,丙酮繼續(xù)如上述一樣上升,直到異戊二烯體積分數(shù)到達0.5,共5×5即25組樣本峰值??梢钥吹絺鹘y(tǒng)的單一傳感器峰值響應并不適合混合氣體的峰值的響應,混合氣體的響應不是線性關系而是一種非線性關系。
圖3 3種傳感器的混合氣體響應信號峰值曲線Fig.3 Peak value diagram of mixed gas response curve
使用數(shù)學概念提取響應曲線幾何特征,將得到的樣本集進行歸一化處理,得到模式識別算法中的輸入集。采用限幅濾波進行采樣,以克服意外干擾。設置前后兩次數(shù)據(jù)可允許的最大偏差,每當有新數(shù)據(jù)到來時與上一個數(shù)據(jù)進行比較,若在允許偏差范圍內(nèi),則本次數(shù)據(jù)有效,反之則無效,使用上一次數(shù)據(jù)值代替本次數(shù)據(jù)。采用去除基線的方法消除溫度、氣體流速等因素的影響。
特征提取希望將能夠?qū)⒈磉_樣本的信息集中到盡可能少的、理想的獨立特征中??紤]到樣本采集數(shù)據(jù)的時域特征,特征提取采用基于原始數(shù)據(jù)表達的響應曲線法。根據(jù)傳感器響應數(shù)據(jù),將采樣數(shù)據(jù)保存到一個數(shù)組中,對數(shù)組中的數(shù)據(jù)進行操作。由于檢測的目標氣體濃度較小,且梯度間隔小,實驗一得到如圖4中所示的4個曲線特征,除了將常見的峰值作為特征外,增加曲線下面積特征來增加樣本的分離度,同時使用最大上升斜率和到達峰值的時間來表示傳感器的特征。實驗二得到如圖4中所示的7個曲線特征,在實驗一的基礎上單獨分出上升和下降時間和曲線下面積來增加樣本的分離度,同時使用最大下降斜率和下降時間進一步細化傳感器的特征。使用歸一化讓每一個特征值處在[0,1]之間,得到測試樣本的樣本集,使用模式識別算法進行氣體識別與濃度預測。
圖4 兩組實驗的特征提取曲線Fig.4 Feature extraction curves of two sets of experiments
圖5a為實驗一的特征熱力圖,縱坐標為按照順序?qū)牟煌瑵舛鹊漠愇於┖桶睔鈽颖?橫坐標為TGS2602和MQ137傳感器響應曲線的峰值、曲線下面積、最大上升斜率和到達峰值時間共8個特征。前4個特征即TGS2602的響應曲線的幾何特征隨著異戊二烯和氨氣濃度升高顏色逐漸加深,而后4個特征即MQ137傳感器隨著氨氣的濃度升高顏色逐漸加深。這表明了傳感器之間的交叉響應特性,有利于算法對異戊二烯濃度的預測。圖5b為實驗二的特征熱力圖,縱坐標依次為異戊二烯和丙酮的不同濃度的樣本,橫坐標為TGS2602、MMD1013s和TGS2600傳感器響應曲線的峰值、上升時間、上升曲線下面積、下降時間、下降曲線下面積、上升最大斜率、下降最大斜率共21個特征。由圖5可見,對于TGS2602傳感器,峰值隨著異戊二烯濃度的升高,顏色逐漸加深;對于MMD1013s傳感器,峰值隨著丙酮的上升而逐漸上升,顏色趨勢呈現(xiàn)以5個樣本為一組的依次加深;對于TGS2600傳感器,在低濃度時峰值比前兩個傳感器響應大,但濃度升高,傳感器的靈敏度較差,響應相對變差,同時上升下降時間和曲線面積呈正相關,上升和下降斜率更受傳感器本身材料的性能有關。
(a)實驗一的特征熱力圖
(b)實驗二的特征熱力圖圖5 兩次實驗的特征熱力圖Fig.5 Heat maps of two experimental features
實驗一提取了兩個響應傳感器的特征值,得到了8個特征;實驗二提取了3個響應傳感器的特征值,得到了21個特征。為了實現(xiàn)兩次實驗的預測結果對照實驗,使用主成分分析(PCA)得到實驗二前10維的數(shù)據(jù)貢獻率。圖6a顯示實驗二的數(shù)據(jù)取排序好的前8維成分即可代表90%以上的總成分。同時圖6b將兩次樣本數(shù)據(jù)使用PCA投影到前3個主成分上,觀察到主成分1(PC1)、主成分2(PC2)、主成分3(PC3)分別占55.6%、24.3%和16.5%。通過兩次實驗樣本的投影圖可以看到兩次實驗數(shù)據(jù)有明顯的分界面作為區(qū)分,但是兩個數(shù)據(jù)之間的距離又很接近且存在混雜的效果,因此存在兩組數(shù)據(jù)融合后進行異戊二烯預測的可能。
(a)第2組實驗前10個主成分的貢獻率
(b)兩組數(shù)據(jù)在PC1、PC2、PC3上的投影圖6 主成分分析貢獻率圖Fig.6 A contribution rate graph from principal component analysis
BP神經(jīng)網(wǎng)絡由于其簡單性和可解釋性常用于對非線性回歸問題的解決[16-17],本文使用BP神經(jīng)網(wǎng)絡對連續(xù)測試的樣本進行濃度的預測。
圖7顯示的BP神經(jīng)網(wǎng)絡拓撲結構設計圖中,特征數(shù)據(jù)集的總維數(shù)為n,訓練集特征值為輸入值xn,預測得到的混合氣體各組分濃度從輸出層輸出。隱含層的神經(jīng)元結構,左側代表神經(jīng)元的輸入zi(n),其值為輸入層xi(i=1~n)乘以權值wij(n)累加后再加上閾值bij(n)的計算結果,j代表權值所屬的層;右側代表神經(jīng)元輸出ai(n),是將左邊輸入值帶入激勵函數(shù)后得到的輸出結果。輸出層與中間層類似,輸入的是中間層神經(jīng)元輸出項ai(n),輸出的是預測的氣體濃度值。BP神經(jīng)網(wǎng)絡隱含層的結構設計經(jīng)驗公式如下:
圖7 BP神經(jīng)網(wǎng)絡拓撲結構設計Fig.7 Topology design of BP neural network
(1)
式中:a為輸入層個數(shù);b為隱含層個數(shù);c為輸出層個數(shù);n為0~10的常數(shù)。
隱含層的神經(jīng)元個數(shù)的選擇,根據(jù)經(jīng)驗公式選擇4~13個神經(jīng)元進行訓練。神經(jīng)元個數(shù)過小,會使神經(jīng)元所代表的信息太少,而神經(jīng)元個數(shù)過大,會使模型過擬合,精度不一定更高。
信息的均方誤差(MSE)計算公式為
(2)
圖8為神經(jīng)網(wǎng)絡隱含層節(jié)點(神經(jīng)元)不同個數(shù)時的均方誤差,由圖8可見,當神經(jīng)元個數(shù)為10時,信息的均方誤差最小,代表誤差結果更小,預測更準確,因此選定神經(jīng)元個數(shù)為10。
圖8 神經(jīng)網(wǎng)絡隱含層節(jié)點不同個數(shù)的MSEFig.8 MSE with different numbers of nodes in the hidden layer of the neural network
本文使用5折交叉驗證,為了防止機器找規(guī)律的學習,將樣本隨機分布后分成5組[18]。交叉驗證過程如圖9所示,每次取黃色的一組作為測試集,剩下的作為訓練集,反復進行5次,最后求平均誤差。利用均方誤差、均方根誤差、交叉驗證均方誤差及交叉驗證均方根誤差這4個指標來評估預測效果的好壞。若均方誤差高,則表示模型過于簡單,存在潛在變量占少數(shù),也就是為一個欠擬合模型,即無法表達特征與目標值之間的實際關系。在這里的應用中,這就表明了不同的傳感器對不同的氣體的交叉敏感性無法得到很好的補償。另一方面,一個模型可能會被太多的潛在變量過度擬合,這通過一個小的均方誤差與一個大的交叉驗證均方誤差同時變得明顯。因此,一個好的模型是一個盡可能少的潛在變量,一個小的均方誤差,以及均方誤差和交叉驗證均方誤差之間的小差異[19]。
圖9 5折交叉驗證過程Fig.9 5-fold cross-validation process
BP神經(jīng)網(wǎng)絡使用梯度下降法進行訓練,是一種非線性的逐步逼近式優(yōu)化方法,可能造成布局最小值,使結果變差。目前常用的優(yōu)化訓練方法有彈性BP算法自適應學習速率法、共軛梯度法、擬牛頓算法、Levenberg-Marquardt(LM)優(yōu)化算法[20]等,但這些優(yōu)化算法仍是從局部考慮優(yōu)化連接權值,會造成局部最小值,因此本文引進了遺傳算法(GA)來改進BP神經(jīng)網(wǎng)絡,遺傳算法從全局考慮出發(fā),更適合解決全局尋優(yōu)問題。
表2為有彈性BP算法、自適應學習速率法、共軛梯度法、擬牛頓算法、LM優(yōu)化算法、CA算法+LM組合優(yōu)化算法對50組混合樣本的訓練結果。由表2可以看到:有彈性BP算法與自適應學習速率法計算的均方誤差在達到設定的迭代最大值時也達不到設置的精度;共軛梯度法、擬牛頓算法雖然能夠達到設定的均方誤差,但是迭代次數(shù)多,訓練時間長;LM優(yōu)化算法能借由執(zhí)行時修改參數(shù)達到結合高斯-牛頓算法以及梯度下降法的優(yōu)點,并對兩者之不足作改善,訓練出的結果經(jīng)過很少的迭代次數(shù)逼近設定的均方誤差,有良好的訓練效果。同時遺傳算法通過優(yōu)化初始權值閾值后,LM優(yōu)化訓練算法逼近設定的均方誤差的迭代次數(shù)進一步減少,訓練速度更快。
表2 6種訓練方法對50組混合樣本的迭代次數(shù)和均方誤差Table 2 The number of iterations and mean square error of 6 training methods for mixed samples
訓練選定的樣本個數(shù)為混合實驗測試得到的50個樣本,使用5折交叉驗證,將樣本集隨機分為5組,每次使用一組作為測試集,其他9組數(shù)據(jù)作為訓練集訓練網(wǎng)絡。交叉驗證10次,每個子樣本驗證一次。首先使用BP網(wǎng)絡進行訓練并預測濃度,將預測的結果保存下來。同時將網(wǎng)絡的連接權值和閾值作為遺傳算法的個體基因輸入進行訓練:達到設定的優(yōu)化指標或者最大代數(shù)后,將得到的最終種群的最優(yōu)個體解碼即得到了優(yōu)化后的網(wǎng)絡連接權值。將連接權值重新賦予BP神經(jīng)網(wǎng)絡作為初始權值,重新使用BP神經(jīng)網(wǎng)絡用相同的參數(shù)訓練網(wǎng)絡,達到設定的精度時或者達到最大的迭代次數(shù),則算法結束,得到預測的樣本濃度。BP神經(jīng)網(wǎng)絡與遺傳算法優(yōu)化后重新訓練的參數(shù)保證一致。
為了對照混合測試樣本的預測結果,對實驗一和實驗二分別采用BP神經(jīng)網(wǎng)絡算法(BPNN)和GA優(yōu)化的BP神經(jīng)網(wǎng)絡算法(GA+BPNN)進行濃度預測。具體的變化如下:對于實驗一,樣本集個數(shù)為25,維數(shù)為8。神經(jīng)網(wǎng)絡拓撲結構如前邊介紹,訓練方法保持不變,交叉驗證選為5折交叉驗證。將經(jīng)過訓練與測試得到的預測樣本的濃度與實際樣本濃度投影下來如圖10a所示,可以看出,GA+BPNN組合算法的預測樣本比單獨的BPNN算法的預測樣本更接近中軸線。
(a)實驗一的預測結果
(b)實驗二的預測結果圖10 兩組實驗使用GA+BPNN與BPNN的樣本預測濃度與實際濃度比較Fig.10 A comparison of the predicted concentration and the actual concentration of samples for two sets of experiments using GA+BPNN and BPNN
對于實驗二,樣本集選擇降維處理后的數(shù)據(jù),個數(shù)為25,維數(shù)為8。神經(jīng)網(wǎng)絡樸拓結構輸入層與隱含層不變,輸出層改為3種氣體的濃度輸出,訓練方法不變,交叉驗證選擇5折交叉驗證。將經(jīng)過訓練與測試得到的預測樣本的濃度與實際樣本濃度投影下來如圖10b所示,可以看出,GA+BPNN組合算法的預測樣本值比單獨的BPNN算法的預測樣本值更接近真實值。
將經(jīng)過訓練與測試得到的預測樣本的濃度與實際樣本濃度投影下來如圖11所示。由圖11可以看到,GA+BPNN預測樣本比BPNN預測樣本更接近中軸線。由圖10和圖11可以看到,GA+BPNN組合算法的預測誤差與準確率明顯高于BPNN算法,同時由于遺傳算法從全局上搜索最優(yōu)解,大部分的預測數(shù)據(jù)都均勻分布在兩條藍色虛線附近,而單獨的BP神經(jīng)網(wǎng)絡會由于出現(xiàn)局部最小值的問題,部分樣本數(shù)據(jù)與整體預測樣本偏離較大。進一步從樣本濃度上分析,對于濃度較高的樣本預測,預測值更接近真實值,這可能是因為濃度越高,傳感器響應越大,對于數(shù)據(jù)的交叉敏感性越明顯,得到的預測結果更準確。對于低濃度氣體,傳感器響應靈敏度降低,而且更容易受背景氣體干擾,從而產(chǎn)生噪聲信號,影響預測結果。
圖11 混合樣本使用GA+BPNN與BPNN的樣本預測濃度與實際濃度比較Fig.11 A comparison of the predicted concentration and the actual concentration of the mixed samples using GA+BPNN and BPNN
結合實際體積分數(shù)與預測體積分數(shù),使用GA+BPNN組合算法的預測結果以均方根誤差說明:實驗一的均方誤差為0.077,實驗二的均方誤差為0.058,混合實驗的均方誤差為0.100。實驗一的測試范圍為0.5~1.3,實驗二的測試范圍為0.1~0.5,混合實驗的測試范圍為0.1~1.3??梢钥吹?均方誤差同樣受測試范圍影響,測試范圍大,均方誤差也會增加。增加了特征值數(shù)量的實驗二得到交叉驗證均方誤差更小,可以看出增加表達樣本特點的特征值,更有利于預測結果的準確性。
本文主要進行了基于傳感器陣列與模式識別算法對揮發(fā)性有機物檢測問題的探究,搭建了一種采樣方便、檢測迅速的測試系統(tǒng),同時模式識別算法完成了對混合氣體實驗揮發(fā)性有機物氣體異戊二烯的檢測與準確率優(yōu)化,3種實驗異戊二烯預測體積分數(shù)均方根誤差均在0.1以內(nèi)。該研究工作具有泛化能力,可以通過調(diào)整傳感器陣列中的傳感器進行其他VOCs的檢測。