董常慶,施云波*,牛昊東,王 天,康林貴,李 萍
(1.哈爾濱理工大學(xué),測(cè)控技術(shù)與通信工程學(xué)院,黑龍江 哈爾濱 150080;2.哈爾濱理工大學(xué),測(cè)控技術(shù)與儀器黑龍江省高校重點(diǎn)實(shí)驗(yàn)室,黑龍江 哈爾濱 150080)
目前,氨氣、氯氣、甲烷等氣體是化學(xué)工業(yè)上廣泛使用的氣體,超過60%的化學(xué)品在其生產(chǎn)制造過程中要使用這些氣體。 同時(shí)這些氣體也是化學(xué)事故發(fā)生率最高的危險(xiǎn)化學(xué)品之一[1]。 這些氣體的泄漏事故具有危險(xiǎn)性大、危害性廣、突發(fā)性強(qiáng)、處置難度高等特點(diǎn),如果能夠準(zhǔn)確監(jiān)測(cè)到泄漏事故的發(fā)生,對(duì)于社會(huì)的穩(wěn)定、企業(yè)的安全生產(chǎn)運(yùn)行將具有重要意義。
現(xiàn)階段的氣體傳感器普遍存在交叉敏感性的問題,即在實(shí)際檢測(cè)中傳感器不僅僅對(duì)單一目標(biāo)氣體敏感,而且還對(duì)其他氣體產(chǎn)生響應(yīng),無(wú)法采用單一氣體傳感器實(shí)現(xiàn)對(duì)混合氣體組成成分的有效檢測(cè)[2]。
采用靈敏度存在差異的多種氣體傳感器組成傳感器陣列,能夠獲得包含目標(biāo)氣體信息在內(nèi)的一系列多維響應(yīng)信號(hào),這為實(shí)現(xiàn)混合氣體的成分檢測(cè)與分析提供了可行性手段。 人工嗅覺系統(tǒng)主要包括氣體傳感器陣列與模式識(shí)別算法,其檢測(cè)與分析性能主要與氣體傳感器陣列的材料特性和模式識(shí)別算法的性能有關(guān),是兩者共同作用的結(jié)果[3]。
相關(guān)研究學(xué)者已經(jīng)在現(xiàn)有氣體傳感器基礎(chǔ)上,通過信號(hào)處理方法來(lái)提升對(duì)氣體的檢測(cè)和分析性能,取得了一定的研究成果,并明確指出:信號(hào)處理方法在人工嗅覺系統(tǒng)中具有關(guān)鍵作用,可以通過提升算法的性能來(lái)增強(qiáng)人工嗅覺系統(tǒng)的檢測(cè)與分析性能[4]。 宋凱等人[5]使用獨(dú)立成分分析(Independent Component Analysis,ICA)對(duì)MOS 傳感器陣列的響應(yīng)數(shù)據(jù)進(jìn)行分析,成功對(duì)3 種不同的氣體進(jìn)行識(shí)別,但I(xiàn)CA 屬于線性特征提取方法,所提取到的混合氣體特征的可分性并不理想;Zou Xiaobo 等人[6]利用主成分分析(Principal Component Analysis,PCA)提取多維響應(yīng)信號(hào)中所包含的特征,再通過人工神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)對(duì)氣體種類的識(shí)別,然而PCA 算法也屬于線性特征提取和分類方法,在處理非線性響應(yīng)信號(hào)時(shí)達(dá)不到理想的精度;譚光韜等人[7]利用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)提取傳感器陣列數(shù)據(jù)特征,根據(jù)提取的特征圖,使用不同分支網(wǎng)絡(luò)對(duì)不同氣體進(jìn)行定性識(shí)別,并根據(jù)識(shí)別結(jié)果,使用核主成分分析(Kernel Principal Component Analysis,KPCA)與梯度提升決策樹(Gradient Boosting Decision Tree,GBDT)對(duì)混合氣體成分進(jìn)行定量估計(jì)。
盡管以上方法在一定程度上實(shí)現(xiàn)了對(duì)混合氣體濃度的檢測(cè)與分析,但想要將這些模式識(shí)別算法部署在算力有限的移動(dòng)設(shè)備上,特別是部署在擁有大量監(jiān)測(cè)節(jié)點(diǎn)的氣體監(jiān)測(cè)系統(tǒng)中,節(jié)點(diǎn)處理器薄弱的計(jì)算能力和敏感的成本成為了其算法部署的難點(diǎn)。 所以目前的氣體監(jiān)測(cè)系統(tǒng)都存在著功能有限、檢測(cè)精度低、監(jiān)測(cè)氣體種類單一、監(jiān)測(cè)成本高等突出問題。 因此,本文設(shè)計(jì)了一個(gè)將氣體傳感器陣列與數(shù)據(jù)融合算法結(jié)合的氣體監(jiān)測(cè)系統(tǒng),能夠?qū)怏w進(jìn)行定性和定量分析,可以有效提高氣體監(jiān)測(cè)系統(tǒng)的性能。
本文中,采用nRF52832 BLE Soc 實(shí)現(xiàn)傳感器陣列數(shù)據(jù)的采集、處理和傳輸。 選用SSA-BPNN 進(jìn)行數(shù)據(jù)融合,實(shí)現(xiàn)氣體的定性和定量分析。 系統(tǒng)將設(shè)備端處理后的信息通過BLE 發(fā)送到上位機(jī)進(jìn)行處理、顯示,從而有效降低系統(tǒng)的負(fù)擔(dān),增加系統(tǒng)處理數(shù)據(jù)的靈活性,也可以避免單一節(jié)點(diǎn)的海量存儲(chǔ),可實(shí)現(xiàn)節(jié)點(diǎn)的組網(wǎng)監(jiān)測(cè)、在線實(shí)時(shí)監(jiān)測(cè)、數(shù)據(jù)的暫存和后端的大量存儲(chǔ)。
本系統(tǒng)采用以微微網(wǎng)為基本單元,分布式網(wǎng)絡(luò)為結(jié)構(gòu)的網(wǎng)絡(luò)拓?fù)浞桨福W(wǎng)絡(luò)支持兩種物理設(shè)備,即主從一體設(shè)備和從設(shè)備,其中主從一體設(shè)備可充當(dāng)BLE 節(jié)點(diǎn),不僅可以收發(fā)數(shù)據(jù),還具備中繼功能;而從設(shè)備只提供部分的BLE 服務(wù),只能充當(dāng)終端節(jié)點(diǎn),不具有中繼功能,它只負(fù)責(zé)將采集的數(shù)據(jù)信息發(fā)送給上層節(jié)點(diǎn)。 整個(gè)網(wǎng)絡(luò)由數(shù)據(jù)總機(jī)、中繼節(jié)點(diǎn)和終端節(jié)點(diǎn)組成。 系統(tǒng)網(wǎng)絡(luò)分布如圖1 所示。
圖1 系統(tǒng)網(wǎng)絡(luò)分布圖
其中,中繼節(jié)點(diǎn)和終端節(jié)點(diǎn)是整個(gè)系統(tǒng)的信息采集部分,主要實(shí)現(xiàn)對(duì)環(huán)境參數(shù)的監(jiān)測(cè),如氣體濃度、環(huán)境溫濕度等,節(jié)點(diǎn)采集傳感器陣列輸出的電壓信號(hào),并經(jīng)過處理、融合后,再向上傳輸數(shù)據(jù)。 數(shù)據(jù)總機(jī)實(shí)現(xiàn)系統(tǒng)數(shù)據(jù)的中繼傳輸。 通過上位機(jī)實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)顯示、動(dòng)態(tài)曲線繪制和監(jiān)測(cè)區(qū)域內(nèi)的閾值報(bào)警等功能,完成人機(jī)交互任務(wù)。
中繼節(jié)點(diǎn)和終端節(jié)點(diǎn)的角色分別為主從一體設(shè)備和從設(shè)備,中繼節(jié)點(diǎn)實(shí)現(xiàn)兩個(gè)微微網(wǎng)單元的連接,既作為上層單元的從設(shè)備,又是下層單元的主設(shè)備,而終端節(jié)點(diǎn)只能作為本層單元的從設(shè)備,不具備其他功能。
網(wǎng)絡(luò)中的各設(shè)備依靠Nordic s132 協(xié)議棧進(jìn)行通信連接。 中繼設(shè)備通過切換主從角色實(shí)現(xiàn)掃描和廣播操作,而終端從設(shè)備只進(jìn)行廣播,并且主角色設(shè)備會(huì)根據(jù)程序中的廣播名稱與相應(yīng)的從角色設(shè)備進(jìn)行連接,從角色設(shè)備通過串口透?jìng)鞣?wù)將自身數(shù)據(jù)或中繼數(shù)據(jù)向主角色設(shè)備進(jìn)行傳輸,數(shù)據(jù)層層上傳,最終通過人機(jī)交互界面向用戶顯示。
本系統(tǒng)以BLE 為無(wú)線通信方式,設(shè)計(jì)了分布式網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),系統(tǒng)啟動(dòng)后網(wǎng)絡(luò)內(nèi)各個(gè)設(shè)備通過通信協(xié)議快速、自動(dòng)地組成一個(gè)獨(dú)立的氣體監(jiān)測(cè)網(wǎng)絡(luò)系統(tǒng),完成監(jiān)測(cè)區(qū)域內(nèi)各種氣體的實(shí)時(shí)監(jiān)測(cè)和濃度預(yù)警等任務(wù)。
傳感器陣列的選型組成需要結(jié)合系統(tǒng)要求,針對(duì)不同目標(biāo)氣體的性質(zhì)進(jìn)行綜合評(píng)估、考慮[8]。 氣體傳感器選擇使用MEMS 工藝半導(dǎo)體材料制造的金屬氧化物半導(dǎo)體(MOS)氣體傳感器,其通常使用SnO2、ZnO 和In2O3等半導(dǎo)體氧化物作為敏感材料[9-12],具有靈敏度高、成本低、穩(wěn)定性好等特點(diǎn)。根據(jù)實(shí)際應(yīng)用的需要,選擇了6 種MEMS 傳感器組成傳感器陣列。 其主要參數(shù)、實(shí)物圖及連接方式分別見表1、圖2。
表1 傳感器陣列主要參數(shù)
圖2 傳感器陣列實(shí)物圖
監(jiān)測(cè)節(jié)點(diǎn)的結(jié)構(gòu)主要包括微處理器單元、傳感器陣列、OLED 顯示模塊、Flash 存儲(chǔ)模塊、供電單元等。 其硬件框圖及實(shí)物圖如圖3、圖4 所示。
圖3 監(jiān)測(cè)節(jié)點(diǎn)硬件框圖
圖4 系統(tǒng)監(jiān)測(cè)節(jié)點(diǎn)實(shí)物圖
監(jiān)測(cè)節(jié)點(diǎn)各部分協(xié)同工作,共同完成信息的采集、處理、存儲(chǔ)以及信息交互等功能。 傳感器陣列包括多個(gè)MEMS 氣體傳感器、溫濕度傳感器以及相應(yīng)的信號(hào)調(diào)理電路,負(fù)責(zé)測(cè)量環(huán)境中的氣體濃度和溫、濕度,并將測(cè)量的信號(hào)調(diào)理為微處理器單元可采樣的標(biāo)準(zhǔn)電壓信號(hào)。 微處理器將采集到的標(biāo)準(zhǔn)電壓信號(hào)進(jìn)行融合計(jì)算,得到直觀可讀的氣體濃度、溫濕度數(shù)據(jù),并通過BLE 通信實(shí)現(xiàn)與上級(jí)節(jié)點(diǎn)的信息交互。 Flash 數(shù)據(jù)存儲(chǔ)容量為16 MB,保存了最近時(shí)間內(nèi)的數(shù)據(jù),存滿后自動(dòng)覆蓋更新,方便后期對(duì)設(shè)備的檢查更新和參數(shù)標(biāo)定,從而實(shí)現(xiàn)各氣體濃度檢測(cè)值的可靠性輸出。 供電單元通過電壓轉(zhuǎn)換為節(jié)點(diǎn)的各個(gè)部分提供穩(wěn)定、可靠的供電。
1.4.1 下位機(jī)軟件設(shè)計(jì)
監(jiān)測(cè)節(jié)點(diǎn)的控制核心是nRF52832,實(shí)現(xiàn)設(shè)備間的連接以及采集數(shù)據(jù)的處理和運(yùn)算。 軟件設(shè)計(jì)流程如圖5(a)所示。
圖5 系統(tǒng)軟件設(shè)計(jì)
1.4.2 上位機(jī)軟件設(shè)計(jì)
監(jiān)測(cè)軟件具有實(shí)時(shí)顯示網(wǎng)絡(luò)中各監(jiān)測(cè)節(jié)點(diǎn)的工作狀態(tài)、濃度動(dòng)態(tài)曲線、監(jiān)測(cè)數(shù)據(jù)歷史查詢調(diào)取等功能。 設(shè)計(jì)流程如圖5(b)所示。
實(shí)驗(yàn)采用靜態(tài)配氣法,將一定量的氣態(tài)或蒸汽態(tài)的待測(cè)氣體加入已知容積的氣體測(cè)試箱,通過內(nèi)置的微型風(fēng)扇將待測(cè)氣體與稀釋氣體混合均勻,氣體的體積分?jǐn)?shù)就是待測(cè)量的濃度,即同一壓力下,待測(cè)氣體的體積分?jǐn)?shù)與總氣體的體積分?jǐn)?shù)的比值。 由此,改變加入待測(cè)氣體的體積分?jǐn)?shù)就可以得到具有不同體積分?jǐn)?shù)的標(biāo)準(zhǔn)氣體樣本。 稀釋氣體和清洗氣體為高濃度氮?dú)釴2。
系統(tǒng)實(shí)驗(yàn)測(cè)試示意圖如圖6 所示。 先將監(jiān)測(cè)節(jié)點(diǎn)、數(shù)據(jù)總機(jī)、移動(dòng)終端進(jìn)行組網(wǎng)連接,待成功后,通過配氣系統(tǒng)將稀釋氣體氮?dú)夂痛郎y(cè)氣體以一定的比例輸入到氣體測(cè)試箱中,待風(fēng)扇將氣體混合均勻,開始測(cè)量,傳感器陣列的輸出經(jīng)監(jiān)測(cè)節(jié)點(diǎn)采集后,通過中繼傳輸,傳送到手機(jī)端進(jìn)行保存。
圖6 系統(tǒng)實(shí)驗(yàn)測(cè)試示意圖
待測(cè)氣體為C2H5OH、CH4、NH3三種氣體,配制在不同背景氣體下不同體積分?jǐn)?shù)待測(cè)氣體的氣樣,背景氣體為待測(cè)目標(biāo)氣體外的其他兩種氣體,如目標(biāo)氣體為乙醇時(shí),背景氣體為甲烷和氨氣,共獲得91 組測(cè)試數(shù)據(jù)。 對(duì)每一個(gè)樣本都進(jìn)行三次測(cè)量,每次測(cè)量間隔90 s,樣本間的測(cè)量間隔為5 min,隨機(jī)抽取三次測(cè)量中的數(shù)據(jù)組成訓(xùn)練集數(shù)據(jù)和測(cè)試集。部分實(shí)驗(yàn)測(cè)量數(shù)據(jù)如表2 所示。
表2 部分實(shí)驗(yàn)測(cè)量數(shù)據(jù)
人工神經(jīng)網(wǎng)絡(luò)是由大量神經(jīng)元所組成的非線性系統(tǒng),通過不斷地調(diào)整神經(jīng)元之間權(quán)重和閾值來(lái)發(fā)現(xiàn)輸入輸出之間的關(guān)系,不需要建立復(fù)雜的方程式,避開復(fù)雜的理論推理分析,在氣體識(shí)別中有較多的應(yīng)用,其中BP 神經(jīng)網(wǎng)絡(luò)應(yīng)用最為廣泛[13-15]。 BP 網(wǎng)絡(luò)局部尋優(yōu)能力強(qiáng),但是容易受初始權(quán)重和閾值的影響陷入局部最優(yōu),導(dǎo)致模型預(yù)測(cè)精度差、穩(wěn)定性差。 因此引進(jìn)麻雀搜索算法(Sparrow Search Algorithm,SSA)來(lái)優(yōu)化BP 神經(jīng)網(wǎng)絡(luò)的初始權(quán)重和閾值,提高模型的預(yù)測(cè)精度,相較于其他優(yōu)化算法如灰狼算法(Grey Wolf Optimizer,GWO)、引力搜索算法(Gravitational Search Algorithm,GSA)和粒子群優(yōu)化算法(Particle Swarm Optimization,PSO),該算法在精度、收斂速度、穩(wěn)定性和魯棒性等方面優(yōu)于GWO、PSO 和GSA。 本文采用LM 優(yōu)化算法(Levenberg-Marquardt Algorithm,LMA)對(duì)神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練。
3.1.1 模型設(shè)計(jì)及優(yōu)化
理論已經(jīng)證明,單個(gè)隱層的網(wǎng)絡(luò)可以通過增加神經(jīng)元節(jié)點(diǎn)的個(gè)數(shù)來(lái)實(shí)現(xiàn)輸入到輸出的非線性映射。 由于傳感器陣列是由6 個(gè)氣體傳感器組成,分析測(cè)試需要對(duì)乙醇、甲烷、氨氣三種氣體進(jìn)行定性分析,因此建立一個(gè)具有6 維輸入、3 維輸出,結(jié)構(gòu)為6:H:3 的BP 神經(jīng)網(wǎng)絡(luò),H 為隱層的神經(jīng)元節(jié)點(diǎn)數(shù),3 代表網(wǎng)絡(luò)的輸出結(jié)果,期望輸出為:
神經(jīng)元個(gè)數(shù)H 可以根據(jù)經(jīng)驗(yàn)公式[16]進(jìn)行選擇,其公式為:
式中:m和n分別為輸出層和輸入層的神經(jīng)元個(gè)數(shù),a是[0,10]之間的常數(shù)。 根據(jù)式(1)選擇4 個(gè)~14個(gè)神經(jīng)元進(jìn)行訓(xùn)練,得到隱層神經(jīng)元數(shù)在[4,14]范圍內(nèi)變化時(shí),MSE 和訓(xùn)練步數(shù)變化的曲線。 由圖7可知,隨著神經(jīng)元數(shù)的增加,訓(xùn)練步數(shù)并不是有規(guī)律的增加或者減少,MSE 隨著神經(jīng)元數(shù)增加而逐漸減小,但當(dāng)大于11 時(shí),MSE 急劇增加。 最終確定定性分析模型的隱層神經(jīng)元數(shù)為11。
圖7 隱層神經(jīng)元數(shù)對(duì)MSE 和訓(xùn)練步數(shù)的影響
3.1.2 數(shù)據(jù)預(yù)處理
為了提高分類辨識(shí)效果,需要對(duì)傳感器陣列的輸出信號(hào)進(jìn)行預(yù)處理,以消除或降低氣體濃度對(duì)傳感器輸出的影響[17-18]。 預(yù)處理算法直接影響著系統(tǒng)的工作特性,根據(jù)系統(tǒng)使用的氣體傳感器類型、模式識(shí)別方法,利用歸一化算法進(jìn)行信號(hào)陣列的歸一化處理,用Vgas、Vair分別表示傳感器在被測(cè)樣氣和潔凈空氣中的電壓值,其公式為:
式中:i=1,2,…,6,經(jīng)式(2)處理后的陣列響應(yīng)Xgas=[xgas,1,xgas,2,…,xgas,6]作為模式識(shí)別的實(shí)際輸入。
3.1.3 氣體定性預(yù)測(cè)結(jié)果分析
將預(yù)處理后的測(cè)試集樣本輸入已訓(xùn)練完成的神經(jīng)網(wǎng)絡(luò)模型,得到預(yù)測(cè)值,通常將預(yù)測(cè)值>0.7 認(rèn)為1,將預(yù)測(cè)值<0.3 認(rèn)為0,在0.3 ~0.7 之間視為預(yù)測(cè)出錯(cuò)。 當(dāng)設(shè)定誤差指標(biāo)為0.001 時(shí),BPNN 的分類識(shí)別準(zhǔn)確率為93.55%,SSA-BPNN 的分類識(shí)別準(zhǔn)確率為100%。 經(jīng)算法優(yōu)化的SSA-BPNN 具有更好的分類效果。 表3 為部分測(cè)試集樣本分類識(shí)別結(jié)果。
表3 不同體積分?jǐn)?shù)下的部分測(cè)試集分類識(shí)別結(jié)果
未知種類氣體的定量分析通常要經(jīng)過以下兩個(gè)步驟來(lái)實(shí)現(xiàn):首先,對(duì)未知種類氣體進(jìn)行定性識(shí)別,得到其種類;其次根據(jù)定性識(shí)別結(jié)果,轉(zhuǎn)入相應(yīng)氣體的定量預(yù)測(cè)模型,從而得到氣體的濃度值。 定量分析實(shí)現(xiàn)過程如圖8 所示。
圖8 未知?dú)怏w定量分析的實(shí)現(xiàn)過程
3.2.1 模型的設(shè)計(jì)及優(yōu)化
氣體定量分析模型與定性分析模型相似,都是具有6 維輸入、單個(gè)隱含層的BP 神經(jīng)網(wǎng)絡(luò)模型,但前者輸出是一維的,即氣體濃度預(yù)測(cè)值Ci。 結(jié)構(gòu)為6 ∶Hi∶1,隱層神經(jīng)元數(shù)Hi則根據(jù)式(1),選擇3 ~13個(gè)神經(jīng)元進(jìn)行訓(xùn)練,乙醇、甲烷、氨氣三種氣體定量分析模型的MSE 和訓(xùn)練步數(shù)隨神經(jīng)元數(shù)變化的曲線分別如圖9(a)、(b)、(c)所示。
圖9 定量分析模型訓(xùn)練結(jié)果
氣體濃度信號(hào)的歸一化算法為:
式中:cmax為測(cè)試集樣本期望結(jié)果最大值100,j=1,2,…,20。
測(cè)試集樣本經(jīng)傳感器信號(hào)歸一化處理后,陣列輸入向量的每一個(gè)元素都處于同一個(gè)數(shù)量級(jí),既可以作為神經(jīng)網(wǎng)絡(luò)合適的輸入數(shù)據(jù),也可以減小化學(xué)計(jì)量識(shí)別中的計(jì)算誤差;氣體濃度歸一化可以滿足神經(jīng)元S 型激勵(lì)函數(shù)輸出幅度的要求,模型進(jìn)行預(yù)測(cè)時(shí),其輸出經(jīng)過氣體濃度信號(hào)歸一化算法的反變換得到氣體預(yù)測(cè)濃度值。
3.2.3 模型參數(shù)的優(yōu)化
使用麻雀搜索算法對(duì)模型的初始權(quán)重和閾值進(jìn)行優(yōu)化,優(yōu)化算法程序選取訓(xùn)練集與測(cè)試集整體的均方誤差為SSA 的適應(yīng)度值。 設(shè)置適應(yīng)度為:
mseTrain、mseTest分別為訓(xùn)練集和測(cè)試集的預(yù)測(cè)均方誤差,適應(yīng)度表明最終得到的網(wǎng)絡(luò)在測(cè)試集和訓(xùn)練集上均有良好效果。 適應(yīng)度越小,表明訓(xùn)練越準(zhǔn)確,兼顧模型的預(yù)測(cè)精度越好。 圖10 為三種預(yù)測(cè)模型的適應(yīng)度曲線,模型適應(yīng)度在迭代數(shù)為50 左右時(shí)
圖10 各氣體預(yù)測(cè)模型的適應(yīng)度曲線
由圖9 可知,神經(jīng)元數(shù)為10、8、10 時(shí),其模型的MSE 最小,為了使模型獲得更好的預(yù)測(cè)性能,故選擇10、8、10 作為三種預(yù)測(cè)模型的神經(jīng)元數(shù)。
3.2.2 數(shù)據(jù)預(yù)處理
數(shù)據(jù)預(yù)處理包含傳感器信號(hào)歸一化和氣體濃度信號(hào)的歸一化[19]。 傳感器信號(hào)歸一化算法為:
式中:i=1,2,…6,max[·]表示傳感器i對(duì)所有測(cè)試樣本的最大響應(yīng)值。已趨于平緩,適應(yīng)度值分別為:0.165 54、0.073 74、0.304 10,說(shuō)明三種模型都具有良好的預(yù)測(cè)性能。
3.2.4 單一氣體定量預(yù)測(cè)結(jié)果分析
將單一氣體測(cè)試集分別輸入未經(jīng)優(yōu)化的BP 網(wǎng)絡(luò)模型和經(jīng)過麻雀搜索算法優(yōu)化的SSA-BP 網(wǎng)絡(luò)模型,樣本經(jīng)傳感器信號(hào)歸一化和氣體濃度信號(hào)歸一化后作為各模型的實(shí)際輸入,最后得到測(cè)試結(jié)果。BPNN 與SSA-BPNN 的定量預(yù)測(cè)結(jié)果及誤差對(duì)比如圖11、表4 所示。
圖11 單一氣體定量分析結(jié)果
通過圖11 和表4,可以看出SSA-BPNN 的預(yù)測(cè)誤差和準(zhǔn)確率明顯優(yōu)于BPNN,SSA-BPNN 的大部分預(yù)測(cè)數(shù)據(jù)均勻分布在黑色實(shí)線附近。 而未優(yōu)化的BP 神經(jīng)網(wǎng)絡(luò)由于會(huì)出現(xiàn)局部最優(yōu)值,導(dǎo)致部分樣本數(shù)據(jù)與整體預(yù)測(cè)樣本偏離較大。
表4 BPNN 與SSA-BPNN 的預(yù)測(cè)相對(duì)誤差
BPNN 對(duì)乙醇、甲烷、氨氣預(yù)測(cè)的平均相對(duì)誤差分別為6.80%、3.99%、15.07%;SSA-BPNN 對(duì)三種氣體的預(yù)測(cè)相對(duì)誤差分別為1.11%、1.80%、2.33%。 SSA對(duì)BPNN 的優(yōu)化提高了預(yù)測(cè)模型的預(yù)測(cè)精度和穩(wěn)定性,模型的預(yù)測(cè)性能明顯改善。 在一定誤差范圍內(nèi),系統(tǒng)能夠以較高精度實(shí)現(xiàn)對(duì)單一氣體的定量分析。
3.2.5 混合氣體定量預(yù)測(cè)結(jié)果分析
將混合氣體測(cè)試集輸入預(yù)測(cè)模型進(jìn)行測(cè)試驗(yàn)證,對(duì)比背景氣體濃度為0×10-6、5×10-6、10×10-6下對(duì)目標(biāo)氣體的預(yù)測(cè)效果,結(jié)果如圖12、表5 所示。
圖12、表5 對(duì)比了乙醇、甲烷、氨氣三種模型在不同濃度背景氣體下對(duì)目標(biāo)氣體的預(yù)測(cè)效果。 從預(yù)測(cè)結(jié)果分析,背景氣體濃度為0×10-6時(shí),模型對(duì)目標(biāo)氣體的預(yù)測(cè)誤差在0.04%~4.02%之間,能較好地對(duì)單一氣體濃度進(jìn)行預(yù)測(cè);在背景氣體濃度分別為5×10-6、10×10-6時(shí),模型對(duì)目標(biāo)氣體的預(yù)測(cè)誤差略有增大,分別在0.40%~5.04%、1.05%~5.43%之間,背景氣體會(huì)對(duì)模型預(yù)測(cè)目標(biāo)氣體造成一定的干擾,但模型仍能以一定精度實(shí)現(xiàn)對(duì)目標(biāo)氣體的定量預(yù)測(cè)。 進(jìn)一步觀察從樣本濃度上分析,以目標(biāo)氣體為乙醇為例,對(duì)高濃度樣本的預(yù)測(cè),預(yù)測(cè)值更加接近真實(shí)值,其相對(duì)誤差隨目標(biāo)氣體濃度升高而降低,這可能是因?yàn)橐掖紳舛仍礁?,傳感器?duì)乙醇的響應(yīng)越大,背景氣體對(duì)傳感器的干擾性越低,得到的預(yù)測(cè)結(jié)果越準(zhǔn)確;對(duì)于低濃度氣體,傳感器響應(yīng)較低,容易受背景氣體干擾,影響預(yù)測(cè)結(jié)果。 當(dāng)背景氣體濃度升高時(shí),目標(biāo)氣體的定量預(yù)測(cè)誤差顯著增大,說(shuō)明背景氣體濃度的升高會(huì)增強(qiáng)其對(duì)傳感器的干擾,影響預(yù)測(cè)效果。 其他氣體分析同理。
圖12 不同濃度背景氣體下對(duì)目標(biāo)氣體的預(yù)測(cè)效果對(duì)比
表5 不同濃度背景氣體下對(duì)目標(biāo)氣體預(yù)測(cè)的相對(duì)誤差
3.2.6 算法部署測(cè)試
將完成訓(xùn)練的SSA-BP 模型的權(quán)重和閾值參數(shù)導(dǎo)出,在監(jiān)測(cè)節(jié)點(diǎn)上進(jìn)行部署測(cè)試,得到系統(tǒng)節(jié)點(diǎn)的算法執(zhí)行時(shí)間、完整運(yùn)行時(shí)間等相關(guān)參數(shù)。
通過設(shè)置定時(shí)器計(jì)時(shí),得出處理器執(zhí)行預(yù)測(cè)模型算法的時(shí)間。 算法的執(zhí)行時(shí)間在20 ms~50 ms 之間,平均時(shí)間為35.25 ms。
監(jiān)測(cè)節(jié)點(diǎn)采集一組數(shù)據(jù)到上位機(jī)顯示的時(shí)間,不僅與網(wǎng)絡(luò)的通信協(xié)議有關(guān),還與外界環(huán)境有關(guān)。系統(tǒng)的實(shí)時(shí)性測(cè)試在室內(nèi)進(jìn)行,節(jié)點(diǎn)與節(jié)點(diǎn)間的距離為10 m,中間無(wú)阻擋物。 運(yùn)行時(shí)間統(tǒng)計(jì)結(jié)果如表6 所示。
表6 采集一次數(shù)據(jù)到上位機(jī)顯示的運(yùn)行時(shí)間 單位:ms
系統(tǒng)網(wǎng)絡(luò)的通信速度并不固定,而是一直在浮動(dòng)變化。 當(dāng)下層節(jié)點(diǎn)的數(shù)據(jù)中繼轉(zhuǎn)發(fā)時(shí),會(huì)在中繼節(jié)點(diǎn)處消耗一定的時(shí)間,造成一定延遲,但可以滿足在線實(shí)時(shí)監(jiān)測(cè)的要求。
本文基于氣體傳感器陣列和BP 神經(jīng)網(wǎng)絡(luò)開發(fā)了一種新型無(wú)線傳感器網(wǎng)絡(luò)監(jiān)測(cè)系統(tǒng)。 測(cè)試結(jié)果表明:麻雀搜索算法具有一定的全局搜索能力和跳出局部最優(yōu)能力,SSA-BPNN 具有良好的非線性擬合能力和預(yù)測(cè)精度,能夠有效解決氣體傳感器的交叉敏感問題,提高系統(tǒng)對(duì)氣體的選擇性,從而提高系統(tǒng)的定性、定量分析性能。
融合氣體傳感器陣列和SSA-BP 神經(jīng)網(wǎng)絡(luò)的氣體監(jiān)測(cè)系統(tǒng),使得危險(xiǎn)氣體監(jiān)測(cè)變得智能化和多功能化,更好地保證社會(huì)的穩(wěn)定發(fā)展、生產(chǎn)企業(yè)的安全運(yùn)行,具有推廣應(yīng)用的價(jià)值。