董常慶,施云波*,牛昊東,王 天,康林貴,李 萍
(1.哈爾濱理工大學,測控技術與通信工程學院,黑龍江 哈爾濱 150080;2.哈爾濱理工大學,測控技術與儀器黑龍江省高校重點實驗室,黑龍江 哈爾濱 150080)
目前,氨氣、氯氣、甲烷等氣體是化學工業上廣泛使用的氣體,超過60%的化學品在其生產制造過程中要使用這些氣體。 同時這些氣體也是化學事故發生率最高的危險化學品之一[1]。 這些氣體的泄漏事故具有危險性大、危害性廣、突發性強、處置難度高等特點,如果能夠準確監測到泄漏事故的發生,對于社會的穩定、企業的安全生產運行將具有重要意義。
現階段的氣體傳感器普遍存在交叉敏感性的問題,即在實際檢測中傳感器不僅僅對單一目標氣體敏感,而且還對其他氣體產生響應,無法采用單一氣體傳感器實現對混合氣體組成成分的有效檢測[2]。
采用靈敏度存在差異的多種氣體傳感器組成傳感器陣列,能夠獲得包含目標氣體信息在內的一系列多維響應信號,這為實現混合氣體的成分檢測與分析提供了可行性手段。 人工嗅覺系統主要包括氣體傳感器陣列與模式識別算法,其檢測與分析性能主要與氣體傳感器陣列的材料特性和模式識別算法的性能有關,是兩者共同作用的結果[3]。
相關研究學者已經在現有氣體傳感器基礎上,通過信號處理方法來提升對氣體的檢測和分析性能,取得了一定的研究成果,并明確指出:信號處理方法在人工嗅覺系統中具有關鍵作用,可以通過提升算法的性能來增強人工嗅覺系統的檢測與分析性能[4]。 宋凱等人[5]使用獨立成分分析(Independent Component Analysis,ICA)對MOS 傳感器陣列的響應數據進行分析,成功對3 種不同的氣體進行識別,但ICA 屬于線性特征提取方法,所提取到的混合氣體特征的可分性并不理想;Zou Xiaobo 等人[6]利用主成分分析(Principal Component Analysis,PCA)提取多維響應信號中所包含的特征,再通過人工神經網絡實現對氣體種類的識別,然而PCA 算法也屬于線性特征提取和分類方法,在處理非線性響應信號時達不到理想的精度;譚光韜等人[7]利用卷積神經網絡(Convolutional Neural Network,CNN)提取傳感器陣列數據特征,根據提取的特征圖,使用不同分支網絡對不同氣體進行定性識別,并根據識別結果,使用核主成分分析(Kernel Principal Component Analysis,KPCA)與梯度提升決策樹(Gradient Boosting Decision Tree,GBDT)對混合氣體成分進行定量估計。
盡管以上方法在一定程度上實現了對混合氣體濃度的檢測與分析,但想要將這些模式識別算法部署在算力有限的移動設備上,特別是部署在擁有大量監測節點的氣體監測系統中,節點處理器薄弱的計算能力和敏感的成本成為了其算法部署的難點。 所以目前的氣體監測系統都存在著功能有限、檢測精度低、監測氣體種類單一、監測成本高等突出問題。 因此,本文設計了一個將氣體傳感器陣列與數據融合算法結合的氣體監測系統,能夠對氣體進行定性和定量分析,可以有效提高氣體監測系統的性能。
本文中,采用nRF52832 BLE Soc 實現傳感器陣列數據的采集、處理和傳輸。 選用SSA-BPNN 進行數據融合,實現氣體的定性和定量分析。 系統將設備端處理后的信息通過BLE 發送到上位機進行處理、顯示,從而有效降低系統的負擔,增加系統處理數據的靈活性,也可以避免單一節點的海量存儲,可實現節點的組網監測、在線實時監測、數據的暫存和后端的大量存儲。
本系統采用以微微網為基本單元,分布式網絡為結構的網絡拓撲方案,網絡支持兩種物理設備,即主從一體設備和從設備,其中主從一體設備可充當BLE 節點,不僅可以收發數據,還具備中繼功能;而從設備只提供部分的BLE 服務,只能充當終端節點,不具有中繼功能,它只負責將采集的數據信息發送給上層節點。 整個網絡由數據總機、中繼節點和終端節點組成。 系統網絡分布如圖1 所示。

圖1 系統網絡分布圖
其中,中繼節點和終端節點是整個系統的信息采集部分,主要實現對環境參數的監測,如氣體濃度、環境溫濕度等,節點采集傳感器陣列輸出的電壓信號,并經過處理、融合后,再向上傳輸數據。 數據總機實現系統數據的中繼傳輸。 通過上位機實現數據的實時顯示、動態曲線繪制和監測區域內的閾值報警等功能,完成人機交互任務。
中繼節點和終端節點的角色分別為主從一體設備和從設備,中繼節點實現兩個微微網單元的連接,既作為上層單元的從設備,又是下層單元的主設備,而終端節點只能作為本層單元的從設備,不具備其他功能。
網絡中的各設備依靠Nordic s132 協議棧進行通信連接。 中繼設備通過切換主從角色實現掃描和廣播操作,而終端從設備只進行廣播,并且主角色設備會根據程序中的廣播名稱與相應的從角色設備進行連接,從角色設備通過串口透傳服務將自身數據或中繼數據向主角色設備進行傳輸,數據層層上傳,最終通過人機交互界面向用戶顯示。
本系統以BLE 為無線通信方式,設計了分布式網絡拓撲結構,系統啟動后網絡內各個設備通過通信協議快速、自動地組成一個獨立的氣體監測網絡系統,完成監測區域內各種氣體的實時監測和濃度預警等任務。
傳感器陣列的選型組成需要結合系統要求,針對不同目標氣體的性質進行綜合評估、考慮[8]。 氣體傳感器選擇使用MEMS 工藝半導體材料制造的金屬氧化物半導體(MOS)氣體傳感器,其通常使用SnO2、ZnO 和In2O3等半導體氧化物作為敏感材料[9-12],具有靈敏度高、成本低、穩定性好等特點。根據實際應用的需要,選擇了6 種MEMS 傳感器組成傳感器陣列。 其主要參數、實物圖及連接方式分別見表1、圖2。

表1 傳感器陣列主要參數

圖2 傳感器陣列實物圖
監測節點的結構主要包括微處理器單元、傳感器陣列、OLED 顯示模塊、Flash 存儲模塊、供電單元等。 其硬件框圖及實物圖如圖3、圖4 所示。

圖3 監測節點硬件框圖

圖4 系統監測節點實物圖
監測節點各部分協同工作,共同完成信息的采集、處理、存儲以及信息交互等功能。 傳感器陣列包括多個MEMS 氣體傳感器、溫濕度傳感器以及相應的信號調理電路,負責測量環境中的氣體濃度和溫、濕度,并將測量的信號調理為微處理器單元可采樣的標準電壓信號。 微處理器將采集到的標準電壓信號進行融合計算,得到直觀可讀的氣體濃度、溫濕度數據,并通過BLE 通信實現與上級節點的信息交互。 Flash 數據存儲容量為16 MB,保存了最近時間內的數據,存滿后自動覆蓋更新,方便后期對設備的檢查更新和參數標定,從而實現各氣體濃度檢測值的可靠性輸出。 供電單元通過電壓轉換為節點的各個部分提供穩定、可靠的供電。
1.4.1 下位機軟件設計
監測節點的控制核心是nRF52832,實現設備間的連接以及采集數據的處理和運算。 軟件設計流程如圖5(a)所示。

圖5 系統軟件設計
1.4.2 上位機軟件設計
監測軟件具有實時顯示網絡中各監測節點的工作狀態、濃度動態曲線、監測數據歷史查詢調取等功能。 設計流程如圖5(b)所示。
實驗采用靜態配氣法,將一定量的氣態或蒸汽態的待測氣體加入已知容積的氣體測試箱,通過內置的微型風扇將待測氣體與稀釋氣體混合均勻,氣體的體積分數就是待測量的濃度,即同一壓力下,待測氣體的體積分數與總氣體的體積分數的比值。 由此,改變加入待測氣體的體積分數就可以得到具有不同體積分數的標準氣體樣本。 稀釋氣體和清洗氣體為高濃度氮氣N2。
系統實驗測試示意圖如圖6 所示。 先將監測節點、數據總機、移動終端進行組網連接,待成功后,通過配氣系統將稀釋氣體氮氣和待測氣體以一定的比例輸入到氣體測試箱中,待風扇將氣體混合均勻,開始測量,傳感器陣列的輸出經監測節點采集后,通過中繼傳輸,傳送到手機端進行保存。

圖6 系統實驗測試示意圖
待測氣體為C2H5OH、CH4、NH3三種氣體,配制在不同背景氣體下不同體積分數待測氣體的氣樣,背景氣體為待測目標氣體外的其他兩種氣體,如目標氣體為乙醇時,背景氣體為甲烷和氨氣,共獲得91 組測試數據。 對每一個樣本都進行三次測量,每次測量間隔90 s,樣本間的測量間隔為5 min,隨機抽取三次測量中的數據組成訓練集數據和測試集。部分實驗測量數據如表2 所示。

表2 部分實驗測量數據
人工神經網絡是由大量神經元所組成的非線性系統,通過不斷地調整神經元之間權重和閾值來發現輸入輸出之間的關系,不需要建立復雜的方程式,避開復雜的理論推理分析,在氣體識別中有較多的應用,其中BP 神經網絡應用最為廣泛[13-15]。 BP 網絡局部尋優能力強,但是容易受初始權重和閾值的影響陷入局部最優,導致模型預測精度差、穩定性差。 因此引進麻雀搜索算法(Sparrow Search Algorithm,SSA)來優化BP 神經網絡的初始權重和閾值,提高模型的預測精度,相較于其他優化算法如灰狼算法(Grey Wolf Optimizer,GWO)、引力搜索算法(Gravitational Search Algorithm,GSA)和粒子群優化算法(Particle Swarm Optimization,PSO),該算法在精度、收斂速度、穩定性和魯棒性等方面優于GWO、PSO 和GSA。 本文采用LM 優化算法(Levenberg-Marquardt Algorithm,LMA)對神經網絡模型進行訓練。
3.1.1 模型設計及優化
理論已經證明,單個隱層的網絡可以通過增加神經元節點的個數來實現輸入到輸出的非線性映射。 由于傳感器陣列是由6 個氣體傳感器組成,分析測試需要對乙醇、甲烷、氨氣三種氣體進行定性分析,因此建立一個具有6 維輸入、3 維輸出,結構為6:H:3 的BP 神經網絡,H 為隱層的神經元節點數,3 代表網絡的輸出結果,期望輸出為:

神經元個數H 可以根據經驗公式[16]進行選擇,其公式為:

式中:m和n分別為輸出層和輸入層的神經元個數,a是[0,10]之間的常數。 根據式(1)選擇4 個~14個神經元進行訓練,得到隱層神經元數在[4,14]范圍內變化時,MSE 和訓練步數變化的曲線。 由圖7可知,隨著神經元數的增加,訓練步數并不是有規律的增加或者減少,MSE 隨著神經元數增加而逐漸減小,但當大于11 時,MSE 急劇增加。 最終確定定性分析模型的隱層神經元數為11。

圖7 隱層神經元數對MSE 和訓練步數的影響
3.1.2 數據預處理
為了提高分類辨識效果,需要對傳感器陣列的輸出信號進行預處理,以消除或降低氣體濃度對傳感器輸出的影響[17-18]。 預處理算法直接影響著系統的工作特性,根據系統使用的氣體傳感器類型、模式識別方法,利用歸一化算法進行信號陣列的歸一化處理,用Vgas、Vair分別表示傳感器在被測樣氣和潔凈空氣中的電壓值,其公式為:

式中:i=1,2,…,6,經式(2)處理后的陣列響應Xgas=[xgas,1,xgas,2,…,xgas,6]作為模式識別的實際輸入。
3.1.3 氣體定性預測結果分析
將預處理后的測試集樣本輸入已訓練完成的神經網絡模型,得到預測值,通常將預測值>0.7 認為1,將預測值<0.3 認為0,在0.3 ~0.7 之間視為預測出錯。 當設定誤差指標為0.001 時,BPNN 的分類識別準確率為93.55%,SSA-BPNN 的分類識別準確率為100%。 經算法優化的SSA-BPNN 具有更好的分類效果。 表3 為部分測試集樣本分類識別結果。

表3 不同體積分數下的部分測試集分類識別結果
未知種類氣體的定量分析通常要經過以下兩個步驟來實現:首先,對未知種類氣體進行定性識別,得到其種類;其次根據定性識別結果,轉入相應氣體的定量預測模型,從而得到氣體的濃度值。 定量分析實現過程如圖8 所示。

圖8 未知氣體定量分析的實現過程
3.2.1 模型的設計及優化
氣體定量分析模型與定性分析模型相似,都是具有6 維輸入、單個隱含層的BP 神經網絡模型,但前者輸出是一維的,即氣體濃度預測值Ci。 結構為6 ∶Hi∶1,隱層神經元數Hi則根據式(1),選擇3 ~13個神經元進行訓練,乙醇、甲烷、氨氣三種氣體定量分析模型的MSE 和訓練步數隨神經元數變化的曲線分別如圖9(a)、(b)、(c)所示。

圖9 定量分析模型訓練結果
氣體濃度信號的歸一化算法為:

式中:cmax為測試集樣本期望結果最大值100,j=1,2,…,20。
測試集樣本經傳感器信號歸一化處理后,陣列輸入向量的每一個元素都處于同一個數量級,既可以作為神經網絡合適的輸入數據,也可以減小化學計量識別中的計算誤差;氣體濃度歸一化可以滿足神經元S 型激勵函數輸出幅度的要求,模型進行預測時,其輸出經過氣體濃度信號歸一化算法的反變換得到氣體預測濃度值。
3.2.3 模型參數的優化
使用麻雀搜索算法對模型的初始權重和閾值進行優化,優化算法程序選取訓練集與測試集整體的均方誤差為SSA 的適應度值。 設置適應度為:

mseTrain、mseTest分別為訓練集和測試集的預測均方誤差,適應度表明最終得到的網絡在測試集和訓練集上均有良好效果。 適應度越小,表明訓練越準確,兼顧模型的預測精度越好。 圖10 為三種預測模型的適應度曲線,模型適應度在迭代數為50 左右時

圖10 各氣體預測模型的適應度曲線
由圖9 可知,神經元數為10、8、10 時,其模型的MSE 最小,為了使模型獲得更好的預測性能,故選擇10、8、10 作為三種預測模型的神經元數。
3.2.2 數據預處理
數據預處理包含傳感器信號歸一化和氣體濃度信號的歸一化[19]。 傳感器信號歸一化算法為:

式中:i=1,2,…6,max[·]表示傳感器i對所有測試樣本的最大響應值。已趨于平緩,適應度值分別為:0.165 54、0.073 74、0.304 10,說明三種模型都具有良好的預測性能。
3.2.4 單一氣體定量預測結果分析
將單一氣體測試集分別輸入未經優化的BP 網絡模型和經過麻雀搜索算法優化的SSA-BP 網絡模型,樣本經傳感器信號歸一化和氣體濃度信號歸一化后作為各模型的實際輸入,最后得到測試結果。BPNN 與SSA-BPNN 的定量預測結果及誤差對比如圖11、表4 所示。

圖11 單一氣體定量分析結果
通過圖11 和表4,可以看出SSA-BPNN 的預測誤差和準確率明顯優于BPNN,SSA-BPNN 的大部分預測數據均勻分布在黑色實線附近。 而未優化的BP 神經網絡由于會出現局部最優值,導致部分樣本數據與整體預測樣本偏離較大。

表4 BPNN 與SSA-BPNN 的預測相對誤差
BPNN 對乙醇、甲烷、氨氣預測的平均相對誤差分別為6.80%、3.99%、15.07%;SSA-BPNN 對三種氣體的預測相對誤差分別為1.11%、1.80%、2.33%。 SSA對BPNN 的優化提高了預測模型的預測精度和穩定性,模型的預測性能明顯改善。 在一定誤差范圍內,系統能夠以較高精度實現對單一氣體的定量分析。
3.2.5 混合氣體定量預測結果分析
將混合氣體測試集輸入預測模型進行測試驗證,對比背景氣體濃度為0×10-6、5×10-6、10×10-6下對目標氣體的預測效果,結果如圖12、表5 所示。
圖12、表5 對比了乙醇、甲烷、氨氣三種模型在不同濃度背景氣體下對目標氣體的預測效果。 從預測結果分析,背景氣體濃度為0×10-6時,模型對目標氣體的預測誤差在0.04%~4.02%之間,能較好地對單一氣體濃度進行預測;在背景氣體濃度分別為5×10-6、10×10-6時,模型對目標氣體的預測誤差略有增大,分別在0.40%~5.04%、1.05%~5.43%之間,背景氣體會對模型預測目標氣體造成一定的干擾,但模型仍能以一定精度實現對目標氣體的定量預測。 進一步觀察從樣本濃度上分析,以目標氣體為乙醇為例,對高濃度樣本的預測,預測值更加接近真實值,其相對誤差隨目標氣體濃度升高而降低,這可能是因為乙醇濃度越高,傳感器對乙醇的響應越大,背景氣體對傳感器的干擾性越低,得到的預測結果越準確;對于低濃度氣體,傳感器響應較低,容易受背景氣體干擾,影響預測結果。 當背景氣體濃度升高時,目標氣體的定量預測誤差顯著增大,說明背景氣體濃度的升高會增強其對傳感器的干擾,影響預測效果。 其他氣體分析同理。

圖12 不同濃度背景氣體下對目標氣體的預測效果對比

表5 不同濃度背景氣體下對目標氣體預測的相對誤差
3.2.6 算法部署測試
將完成訓練的SSA-BP 模型的權重和閾值參數導出,在監測節點上進行部署測試,得到系統節點的算法執行時間、完整運行時間等相關參數。
通過設置定時器計時,得出處理器執行預測模型算法的時間。 算法的執行時間在20 ms~50 ms 之間,平均時間為35.25 ms。
監測節點采集一組數據到上位機顯示的時間,不僅與網絡的通信協議有關,還與外界環境有關。系統的實時性測試在室內進行,節點與節點間的距離為10 m,中間無阻擋物。 運行時間統計結果如表6 所示。

表6 采集一次數據到上位機顯示的運行時間 單位:ms
系統網絡的通信速度并不固定,而是一直在浮動變化。 當下層節點的數據中繼轉發時,會在中繼節點處消耗一定的時間,造成一定延遲,但可以滿足在線實時監測的要求。
本文基于氣體傳感器陣列和BP 神經網絡開發了一種新型無線傳感器網絡監測系統。 測試結果表明:麻雀搜索算法具有一定的全局搜索能力和跳出局部最優能力,SSA-BPNN 具有良好的非線性擬合能力和預測精度,能夠有效解決氣體傳感器的交叉敏感問題,提高系統對氣體的選擇性,從而提高系統的定性、定量分析性能。
融合氣體傳感器陣列和SSA-BP 神經網絡的氣體監測系統,使得危險氣體監測變得智能化和多功能化,更好地保證社會的穩定發展、生產企業的安全運行,具有推廣應用的價值。