郭昊陽(yáng),楊志冰,殷曉佳,曹 雄,秦清風(fēng),于晨曦,王 博
(中北大學(xué) 環(huán)境與安全工程學(xué)院,山西 太原 030051)
受限空間是指封閉或者部分封閉,與外界相對(duì)隔離,出入口較為狹窄,作業(yè)人員不能長(zhǎng)時(shí)間在內(nèi)工作,自然通風(fēng)不良,易造成有害、易燃易爆物質(zhì)積聚或者氧含量不足的空間。
據(jù)統(tǒng)計(jì)數(shù)據(jù)顯示,僅在2021 年上半年,全國(guó)已發(fā)生16 起受限空間事故,累計(jì)造成39 人死亡、15 人受傷。從2021 年6 月到2022 年5 月,一年時(shí)間內(nèi),僅環(huán)保行業(yè)就已發(fā)生至少13 起中毒窒息類(lèi)事故,導(dǎo)致45 人死亡。在有毒有害氣體引發(fā)的中毒事故中,若搶救及時(shí),可以挽救窒息人員生命,但長(zhǎng)時(shí)間的窒息會(huì)對(duì)身體器官尤其是大腦造成不可逆的傷害。若未能及時(shí)搶救窒息人員,就會(huì)發(fā)生人員死亡的悲劇。傳統(tǒng)的探測(cè)方式需要人員佩戴氣體檢測(cè)儀進(jìn)入受限空間,存在成本較高、數(shù)據(jù)無(wú)法互通、無(wú)法預(yù)測(cè)氣體變化趨勢(shì)的問(wèn)題。
隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,采用無(wú)線組網(wǎng)的氣體監(jiān)測(cè)系統(tǒng)開(kāi)始出現(xiàn)。例如,Jabbar 等[1]設(shè)計(jì)了一種基于LoRaWAN 的室外空氣質(zhì)量監(jiān)測(cè)系統(tǒng);洪濤等人[2]設(shè)計(jì)了基于STM32 和CC1101 的受限空間關(guān)鍵氣體濃度檢測(cè)系統(tǒng)。而隨著此類(lèi)系統(tǒng)的日漸成熟,部分學(xué)者開(kāi)始將神經(jīng)網(wǎng)絡(luò)等機(jī)器學(xué)習(xí)方法融入其中。例如,寶銀曇[3]設(shè)計(jì)了基于ZigBee 和RBF 神經(jīng)網(wǎng)絡(luò)的礦井通風(fēng)質(zhì)量預(yù)測(cè)方法。目前,物聯(lián)網(wǎng)技術(shù)及機(jī)器學(xué)習(xí)算法正不斷發(fā)展,本文結(jié)合阿里云物聯(lián)網(wǎng)平臺(tái)以及神經(jīng)網(wǎng)絡(luò)、高斯過(guò)程回歸算法等機(jī)器學(xué)習(xí)算法,設(shè)計(jì)了基于NB-IoT 的受限空間有害氣體檢測(cè)物聯(lián)網(wǎng)系統(tǒng)。此系統(tǒng)具有有害氣體監(jiān)測(cè)、時(shí)間序列預(yù)測(cè)、可視化平臺(tái)展示等功能,具有低功耗、自動(dòng)化程度高、自適應(yīng)性強(qiáng)等特點(diǎn)。
本系統(tǒng)為針對(duì)受限空間的有害氣體監(jiān)測(cè)系統(tǒng)(有害氣體為二氧化碳、甲烷和硫化氫)。系統(tǒng)包括探測(cè)終端、阿里云物聯(lián)網(wǎng)平臺(tái)、神經(jīng)網(wǎng)絡(luò)終端以及可視化應(yīng)用4 個(gè)部分。探測(cè)終端探測(cè)有害氣體濃度,并將探測(cè)結(jié)果整合成數(shù)據(jù)包后通過(guò)NB-IoT 網(wǎng)絡(luò)上傳至阿里云物聯(lián)網(wǎng)平臺(tái)。NB-IoT 即窄帶物聯(lián)網(wǎng),可在現(xiàn)行的2G、3G 及4G 網(wǎng)絡(luò)上部署,具有覆蓋范圍廣、網(wǎng)絡(luò)增益高、設(shè)備功耗低以及建設(shè)與運(yùn)行維護(hù)成本低等特點(diǎn)[4],可以滿足如地窖、窖井等受限空間內(nèi)部的網(wǎng)絡(luò)需求。
平臺(tái)在收到探測(cè)終端上傳的數(shù)據(jù)包后,會(huì)將該數(shù)據(jù)包復(fù)制并發(fā)送至神經(jīng)網(wǎng)絡(luò)終端。神經(jīng)網(wǎng)絡(luò)終端會(huì)對(duì)探測(cè)器上傳的數(shù)據(jù)進(jìn)行處理,使用RBF 神經(jīng)網(wǎng)絡(luò)及高斯過(guò)程回歸方法得出監(jiān)測(cè)點(diǎn)所在位置處有害氣體濃度的未來(lái)值。處理結(jié)果將被打包回傳至阿里云物聯(lián)網(wǎng)平臺(tái)。
可視化應(yīng)用基于阿里云IoT-Studio 搭建,可查看各氣體濃度的實(shí)時(shí)值與歷史曲線,若其中的某一/某些參數(shù)超標(biāo),則會(huì)在對(duì)應(yīng)數(shù)據(jù)卡片的下方顯示告警/超標(biāo)信息。圖1 為系統(tǒng)總體結(jié)構(gòu)。
圖1 系統(tǒng)總體結(jié)構(gòu)
氣體傳感器電路:包括MG-812 二氧化碳傳感器、MQ-4甲烷傳感器、MQ-136 硫化氫傳感器。其中,MG-812 的輸出電平與CO2濃度成反比,而MQ-4 和MQ-136 的輸出電平與CH4、H2S 的濃度成正比。氣體傳感器的模擬值輸出引腳與單片機(jī)的ADC 引腳連接。
單片機(jī)及其外圍電路[5]:采用STM32F103RCT6 作為處理器,該單片機(jī)擁有256 KB 儲(chǔ)存空間以及48 KB RAM,工作電壓為3.3 V,主頻為72 MHz。單片機(jī)負(fù)責(zé)讀取連接在ADC 引腳上的3 種氣體傳感器的電平并進(jìn)行計(jì)算,然后整合為供BC-26 模塊發(fā)送的數(shù)據(jù)包。外圍電路由5 V 轉(zhuǎn)3.3 V降壓電路、晶振、復(fù)位電路、串口通信電路、傳感器連接電路與ST-Link 電路構(gòu)成。
NB-IoT 模塊及其外圍電路:采用BC26-NC-04-STD 作為NB-IoT 發(fā)送模塊,該模塊支持MQTT 協(xié)議,具有高靈敏度、低功耗的特點(diǎn)[6]。NB-IoT 模塊負(fù)責(zé)將探測(cè)終端通過(guò)連接至阿里云物聯(lián)網(wǎng)平臺(tái),并將單片機(jī)整合的數(shù)據(jù)包進(jìn)行上傳。外圍電路由供電電路、SIM 卡電路、電平轉(zhuǎn)化電路、射頻電路組成。圖2 為電路結(jié)構(gòu)。探測(cè)終端性能參數(shù)見(jiàn)表1 所列。
圖2 電路結(jié)構(gòu)
表1 探測(cè)終端性能參數(shù)
程序開(kāi)發(fā)環(huán)境為Visual Studio 2019+Keil uVision5。程序分為3 部分:傳感器采集程序、單片機(jī)主程序、BC-26 模塊程序。傳感器采集程序負(fù)責(zé)讀取氣體傳感器對(duì)應(yīng)ADC 引腳上的電壓,并將采集數(shù)據(jù)經(jīng)過(guò)傳感器特性函數(shù)計(jì)算后返回計(jì)算結(jié)果,供主程序進(jìn)行調(diào)用。單片機(jī)主程序負(fù)責(zé)初始化串口,開(kāi)啟BC-26,獲取傳感器引腳的輸出電平,根據(jù)傳感器特性曲線的擬合函數(shù)進(jìn)行氣體濃度計(jì)算,并將其以10 s 的頻率轉(zhuǎn)發(fā)至BC-26 模塊發(fā)送程序。BC-26 模塊程序?qū)⒃O(shè)備連接至阿里云,并將主函數(shù)轉(zhuǎn)發(fā)的數(shù)據(jù)進(jìn)行打包與上傳。圖3 為探測(cè)終端程序流程。
外殼的3D 模型使用SpaceClaim 軟件進(jìn)行建模。底部的結(jié)構(gòu)包括螺柱固定孔、水泥釘預(yù)留孔、底面以及電路板固定孔。頂部設(shè)有大量間距2 mm、寬2 mm 的格柵,保證有害氣體的流入流出,同時(shí)留有調(diào)整接線端子的通孔,側(cè)面預(yù)留有接線/插入U(xiǎn)SB 數(shù)據(jù)線的通孔,內(nèi)部有固定傳感器的支柱。探測(cè)終端實(shí)物如圖4 所示。
圖4 探測(cè)終端實(shí)物
在系統(tǒng)運(yùn)行過(guò)程中,神經(jīng)網(wǎng)絡(luò)終端會(huì)下載探測(cè)器上傳至物聯(lián)網(wǎng)平臺(tái)的信息,并保存至本地,進(jìn)行數(shù)據(jù)處理后,再傳輸至物聯(lián)網(wǎng)平臺(tái)用于可視化展示。下載與上傳所用程序均為使用Python 編寫(xiě)的含MQTT 協(xié)議的開(kāi)源程序,程序中包含阿里云物聯(lián)網(wǎng)提供的aliyun-iot-linkkit 模塊。數(shù)據(jù)處理在電腦端完成,處理速度快,且可額外添加其余處理算法,自定義性高。本文以二氧化碳濃度的預(yù)測(cè)為例展示該部分的運(yùn)作原理。
本項(xiàng)目采用的2 種方法分別為啟發(fā)式算法[7]中的神經(jīng)網(wǎng)絡(luò)算法和統(tǒng)計(jì)學(xué)算法中的高斯過(guò)程回歸方法[8]。高斯過(guò)程回歸方法在時(shí)間序列預(yù)測(cè)分析中被廣泛應(yīng)用[9-11],本次回歸訓(xùn)練所用程序基于MATLAB 自帶的predict 函數(shù),參數(shù)選擇GPR 模型。
系統(tǒng)預(yù)測(cè)過(guò)程中,選擇使用最新的80 個(gè)數(shù)據(jù)組成預(yù)測(cè)中的訓(xùn)練集,預(yù)測(cè)未來(lái)40 個(gè)時(shí)間序列的值,訓(xùn)練集與預(yù)測(cè)集的數(shù)量在系統(tǒng)中可更改。在預(yù)測(cè)算法部分,神經(jīng)網(wǎng)絡(luò)搭建的自回歸函數(shù)還需要考慮回歸階數(shù),本次選用自回歸函數(shù)為:
神經(jīng)網(wǎng)絡(luò)作為一種淺層的機(jī)器學(xué)習(xí)算法已在未來(lái)值預(yù)測(cè)中被廣泛使用[12],選擇此算法的原因在于其擁有較高的準(zhǔn)確性和自適應(yīng)性。但實(shí)際應(yīng)用時(shí)存在弊端,在少數(shù)預(yù)測(cè)過(guò)程中,出現(xiàn)預(yù)測(cè)結(jié)果遠(yuǎn)大于訓(xùn)練集中氣體濃度數(shù)據(jù)的情況(千倍到百萬(wàn)倍),遠(yuǎn)不符合濃度變化趨勢(shì)。為解決該問(wèn)題,本文引入高斯過(guò)程回歸。
高斯過(guò)程回歸的結(jié)果最終會(huì)接近收斂。因此,本系統(tǒng)的預(yù)測(cè)值獲取邏輯為:當(dāng)時(shí)間序列神經(jīng)網(wǎng)絡(luò)未出現(xiàn)過(guò)擬合現(xiàn)象時(shí),比較神經(jīng)網(wǎng)絡(luò)與高斯過(guò)程回歸的預(yù)測(cè)結(jié)果(置信區(qū)間上限),取最大值作為最終結(jié)果。當(dāng)時(shí)間序列神經(jīng)網(wǎng)絡(luò)產(chǎn)生過(guò)擬合現(xiàn)象時(shí),采用高斯過(guò)程回歸的預(yù)測(cè)結(jié)果作為最終結(jié)果。
本文將使用一組實(shí)際探測(cè)數(shù)據(jù)以及一組模擬數(shù)據(jù)對(duì)預(yù)測(cè)效果進(jìn)行檢驗(yàn)。首先是實(shí)際探測(cè)數(shù)據(jù)方面,使用的時(shí)間序列包含500 個(gè)濃度數(shù)據(jù),探測(cè)地點(diǎn)為封閉不透明箱體內(nèi)部,二氧化碳釋放源為盆景植物長(zhǎng)壽花。在一組預(yù)測(cè)中,將預(yù)測(cè)集的最后一個(gè)數(shù)據(jù)與實(shí)際探測(cè)數(shù)據(jù)中相應(yīng)位置的數(shù)據(jù)作對(duì)比,用以衡量預(yù)測(cè)效果的好壞,結(jié)果如圖5 所示。
圖5 實(shí)際探測(cè)數(shù)據(jù)預(yù)測(cè)結(jié)果
圖5 中已去除產(chǎn)生過(guò)擬合現(xiàn)象的神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果。高斯過(guò)程回歸的預(yù)測(cè)平均相對(duì)誤差為1.45%,而神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)平均相對(duì)誤差為1.52%。結(jié)果表明,在二氧化碳濃度變化不大的實(shí)際場(chǎng)景中,預(yù)測(cè)值偏差較小,即不會(huì)產(chǎn)生過(guò)大的預(yù)測(cè)結(jié)果導(dǎo)致物聯(lián)網(wǎng)平臺(tái)誤報(bào)警。
在系統(tǒng)的測(cè)試過(guò)程中,有害氣體濃度的采集時(shí)間較短,故所得濃度數(shù)據(jù)變化趨勢(shì)不大。而在實(shí)際應(yīng)用場(chǎng)景中,探測(cè)器終端上傳數(shù)據(jù)間隔時(shí)間長(zhǎng)達(dá)數(shù)小時(shí),會(huì)產(chǎn)生較大的氣體濃度變化。因此引入一段上升趨勢(shì)較大的氣體濃度時(shí)間序列來(lái)模擬真實(shí)情況,在此基礎(chǔ)上加入正態(tài)分布的隨機(jī)誤差來(lái)模擬探測(cè)器的探測(cè)誤差,結(jié)果如圖6 所示。
圖6 模擬數(shù)據(jù)預(yù)測(cè)結(jié)果
從圖6 中可以看出,對(duì)于較為平滑的、有增長(zhǎng)趨勢(shì)的濃度變化,兩種算法能較好地預(yù)測(cè)其結(jié)果,高斯過(guò)程回歸算法的預(yù)測(cè)結(jié)果大多在真實(shí)值下方,而神經(jīng)網(wǎng)絡(luò)算法的預(yù)測(cè)結(jié)果相反。高斯過(guò)程回歸的預(yù)測(cè)平均相對(duì)誤差為6.68%,神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)平均相對(duì)誤差為6.71%。從結(jié)果來(lái)看,兩種算法均能承擔(dān)預(yù)測(cè)任務(wù)。
可視化應(yīng)用基于阿里云IoT-Studio 進(jìn)行開(kāi)發(fā)。登錄可視化應(yīng)用后可在PC 端網(wǎng)頁(yè)查看探測(cè)終端上傳的各氣體濃度的當(dāng)前值/歷史值曲線,也可查看神經(jīng)網(wǎng)絡(luò)返回的實(shí)時(shí)平面內(nèi)最大濃度、各設(shè)備的未來(lái)濃度、未來(lái)平面內(nèi)最大濃度及其歷史值曲線與各設(shè)備狀態(tài)。可視化應(yīng)用主頁(yè)如圖7 所示。
圖7 可視化應(yīng)用主頁(yè)
可視化應(yīng)用可具體查看各設(shè)備的報(bào)警信息及神經(jīng)網(wǎng)絡(luò)返回值的報(bào)警信息。應(yīng)用詳情頁(yè)將在系統(tǒng)測(cè)試部分展示。為使數(shù)據(jù)更加直觀,應(yīng)用采用ppm(百萬(wàn)分比)作為氣體濃度單位。
報(bào)警信息分為3 類(lèi):氣體濃度正常、氣體濃度有風(fēng)險(xiǎn)、氣體濃度已超標(biāo)。報(bào)警信息的輸出邏輯如圖8 所示。
圖8 報(bào)警信息輸出邏輯
對(duì)探測(cè)終端的氣體濃度監(jiān)測(cè)功能進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)場(chǎng)地為一居民樓內(nèi)房間,面積為15 m2,且開(kāi)啟了通風(fēng)窗口。探測(cè)終端部署高度為40 cm。實(shí)驗(yàn)時(shí),將探測(cè)終端部署至實(shí)驗(yàn)場(chǎng)地后開(kāi)啟1 個(gè)探測(cè)終端,并通過(guò)可視化應(yīng)用對(duì)探測(cè)結(jié)果進(jìn)行監(jiān)測(cè)。監(jiān)測(cè)平臺(tái)為個(gè)人計(jì)算機(jī),監(jiān)測(cè)軟件為Microsoft Edge瀏覽器。圖9 為可視化應(yīng)用顯示的二氧化碳?xì)v史濃度曲線。結(jié)果表明,探測(cè)終端連接穩(wěn)定,未出現(xiàn)連接斷開(kāi)的現(xiàn)象,且可以及時(shí)對(duì)環(huán)境內(nèi)氣體濃度的變化做出反應(yīng)。
圖9 二氧化碳濃度實(shí)時(shí)監(jiān)測(cè)頁(yè)面
在探測(cè)終端就緒后,開(kāi)啟神經(jīng)網(wǎng)絡(luò)對(duì)有害氣體濃度進(jìn)行預(yù)測(cè)?;貍鹘Y(jié)果表明:探測(cè)終端周?chē)鷼怏w的未來(lái)濃度穩(wěn)定在0.2‰~0.5‰,且全程未出現(xiàn)異常值報(bào)告。
本文提出了一種基于神經(jīng)網(wǎng)絡(luò)與窄帶物聯(lián)網(wǎng)的受限空間氣體監(jiān)測(cè)預(yù)警系統(tǒng)。探測(cè)終端采用NB-IoT 與移動(dòng)基站連接,可以滿足地窖、窖井、深井等地下受限空間的網(wǎng)絡(luò)要求,探測(cè)終端與云端通信穩(wěn)定且延遲低,可及時(shí)、穩(wěn)定地將氣體濃度數(shù)據(jù)上傳至阿里云物聯(lián)網(wǎng)平臺(tái),并通過(guò)神經(jīng)網(wǎng)絡(luò)終端進(jìn)行可信度較高的預(yù)測(cè)。該系統(tǒng)可顯著改善受限空間內(nèi)部的安全狀況,有效減少窒息中毒事故的發(fā)生。