趙月愛,郭興原,吳星輝
(1.太原師范學(xué)院 計算機(jī)系,山西 晉中030619;2.太原師范學(xué)院 數(shù)學(xué)系,山西 晉中030619)
隨著物聯(lián)網(wǎng)工程及大數(shù)據(jù)分析技術(shù)的發(fā)展和應(yīng)用,消防工作“預(yù)防為主,綜合防護(hù)”已獲得廣泛共識,智慧消防系統(tǒng)的研究與開發(fā)引起研究者越來越多的關(guān)注,相關(guān)技術(shù)難點也成為當(dāng)前的研究熱點[1].本文設(shè)計并實現(xiàn)電氣火災(zāi)消防預(yù)警平臺,在樓宇配電箱中部署多傳感器實時采集剩余電流、電流、溫度及設(shè)備經(jīng)緯度等數(shù)據(jù);通過GPRS無線技術(shù)直接把監(jiān)測到的數(shù)據(jù)發(fā)送到云平臺;借助阿里云服務(wù)器和大數(shù)據(jù)分析平臺實時存儲并分析數(shù)據(jù),實現(xiàn)精準(zhǔn)預(yù)測.
圖1是該平臺的架構(gòu)圖,主要包括數(shù)據(jù)采集、數(shù)據(jù)傳輸和數(shù)據(jù)分析三大部分.
圖1 平臺架構(gòu)圖
數(shù)據(jù)采集硬件平臺由主控制器、電壓傳感器、溫度傳感器、電流傳感器、剩余電流互感器、分勵脫扣器、蜂鳴器等組成.通過在需要監(jiān)測區(qū)域的配電箱中部署多種傳感器對三相電壓線纜的各類參數(shù)監(jiān)控,實時采集數(shù)據(jù),控制器將數(shù)據(jù)預(yù)處理后發(fā)送至云平臺.
主控制器采用ARM芯片,控制器主要對上述傳感器進(jìn)行控制,負(fù)責(zé)數(shù)據(jù)采集和數(shù)據(jù)預(yù)處理,并通過數(shù)據(jù)組幀,把數(shù)據(jù)上傳至云服務(wù)器.該控制器帶有控制按鈕、顯示面板和指示燈,用戶可以根據(jù)實際需求對所采集數(shù)據(jù)進(jìn)行預(yù)警閾值的參數(shù)設(shè)置,如果數(shù)據(jù)異常,指示燈將會給與相應(yīng)提示.
電壓傳感器用來測量220~380V的交流電壓,可在-10℃~70℃的溫度中正常工作.本設(shè)備對每路電壓線纜配一個電壓傳感器,將采集三相電壓傳輸于控制器中.
溫度傳感器用來測量線纜溫度,本設(shè)備將溫度傳感器直接扎綁于線纜上實時采集3條火線線纜的溫度信息,并將溫度數(shù)據(jù)傳輸于控制器中.
電流傳感器工作溫度為-25℃~75℃,用于測量3條火線線纜中的電流值,并將電流數(shù)據(jù)傳輸于控制器中.
剩余電流互感器可容納直徑30~200mm的電線穿過,工作溫度為-12℃~45℃,用于檢測電線中剩余電流的大小.根據(jù)國家消防部門規(guī)定,正常工作的電氣設(shè)備泄露電流應(yīng)不大于0.5mA,該設(shè)備實時采集剩余電流數(shù)據(jù),并將數(shù)據(jù)傳輸于控制器中.
分勵脫扣器采用MX+OF無源型,工作電壓為110~400V,當(dāng)發(fā)生短路,設(shè)備故障引起電流過大時,可自動跳閘,從而保護(hù)電路設(shè)備.
蜂鳴器采用BJ-1高分貝報警器,正常工作電壓為220~250V,工作溫度為-20℃~70℃,當(dāng)發(fā)生異常情況蜂鳴器將會報警,可以提醒設(shè)備管理員及時處理危險.
采用GPRS和Socket技術(shù),對傳感器數(shù)據(jù)進(jìn)行實時發(fā)送和接收.GPRS技術(shù)借助運(yùn)營商網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)聯(lián)網(wǎng),可完成數(shù)據(jù)的發(fā)送功能[2].主控制器支持GPRS、RS232和RS485三種接口,本文采用RS485接口用來調(diào)試主控制器數(shù)據(jù),GPRS模塊型號采用SIM800C負(fù)責(zé)將傳感器采集的數(shù)據(jù)定時發(fā)送到云服務(wù)器,可由用戶設(shè)定上傳數(shù)據(jù)頻率,默認(rèn)為60s上傳一次[3].圖2是GPRS的工作流程圖.
圖2 GPRS工作流程圖
平臺基于TCP網(wǎng)絡(luò)通信協(xié)議,使用Socket套接字完成電氣火災(zāi)數(shù)據(jù)的接收并保存至云服務(wù)器上的數(shù)據(jù)庫中.同時,為保證客戶端和服務(wù)器端通信會話的有效性,在正常接收數(shù)據(jù)的基礎(chǔ)之上,結(jié)合心跳監(jiān)測技術(shù)使用Socket完成數(shù)據(jù)的接收及保存.云平臺同時接收多個數(shù)據(jù)采集設(shè)備發(fā)送的數(shù)據(jù),并對不同數(shù)據(jù)采集設(shè)備進(jìn)行統(tǒng)一管控,保證了電氣數(shù)據(jù)傳輸?shù)陌踩院屯暾?
大數(shù)據(jù)分析平臺軟件架構(gòu)基于Hadoop和Spark實現(xiàn),引入生態(tài)圈的多個組件作為此平臺的支撐技術(shù).Spark具有強(qiáng)大的處理實時流式數(shù)據(jù)的能力[4],可對Hadoop上存儲的大數(shù)據(jù)進(jìn)行計算,滿足本平臺實時數(shù)據(jù)分析的需求.
平臺將三根火線的電流I1、I2、I3,電壓U1、U2、U3,溫度T1、T2、T3以及剩余電流L分別作為特征值,選取部分?jǐn)?shù)據(jù)對電氣火災(zāi)發(fā)生概率p(possiblity)進(jìn)行預(yù)測分析.首先要將信息轉(zhuǎn)換為算法能夠處理的形式,將屬性中的預(yù)警、不預(yù)警設(shè)為1或0;為方便計算,將電氣火災(zāi)發(fā)生的概率值取對數(shù)處理,見式(1)所示:
為查看特征值數(shù)據(jù)的分布情況,把數(shù)據(jù)劃分訓(xùn)練集和驗證集,并統(tǒng)計數(shù)據(jù)總數(shù)count、平均值mean、最小值min、最大值max和分位數(shù)等相關(guān)信息.表1是數(shù)據(jù)預(yù)處理后的結(jié)果.
表1 數(shù)據(jù)預(yù)處理表
本文采用隨機(jī)森林、決策樹和神經(jīng)網(wǎng)絡(luò)三種算法對數(shù)據(jù)進(jìn)行了分析,并建立了對應(yīng)的模型,為對預(yù)警模型進(jìn)行有效的評估,選擇以下三個指標(biāo)進(jìn)行評價:
2.2.1R2檢驗
R2檢驗被稱為擬合優(yōu)度,用于衡量回歸方程整體的擬合度,取值范圍是0到1之間,值越接近1,說明該模型的結(jié)果對于樣本的擬合程度越好.R2的計算公式如(2)所示.
2.2.2 平均絕對誤差
平均絕對誤差(MAE),該值用來計算預(yù)測值同真實值之間絕對誤差的平均值,衡量預(yù)測值誤差的范圍.MAE值越小,代表當(dāng)前算法模型誤差越小、性能越好,公式如(3)所示[5].
2.2.3 標(biāo)準(zhǔn)差
標(biāo)準(zhǔn)差是用于衡量一組數(shù)據(jù)自身的離散程度,該值越小,代表數(shù)據(jù)集中的數(shù)據(jù)值與平均值的差異越小,標(biāo)準(zhǔn)差公式如(4)所示.
在建立基于隨機(jī)森林算法的電氣火災(zāi)預(yù)警模型時[6],需要對預(yù)警模型進(jìn)行參數(shù)優(yōu)化,以求得最優(yōu)的實驗結(jié)果,表2顯示的是隨機(jī)森林算法中常用的每個參數(shù)含義及默認(rèn)值.
表2 隨機(jī)森林參數(shù)介紹表
實驗首先按照每個參數(shù)的默認(rèn)值計算,表3是得出的模型評價指標(biāo),表中分別列出訓(xùn)練集和驗證集的計算數(shù)值,從驗證集數(shù)據(jù)可看出使用默認(rèn)參數(shù)的算法模型效果不理想,誤差較大.
表3 默認(rèn)參數(shù)評價表
接下來對參數(shù)進(jìn)行調(diào)整優(yōu)化,n_estimators范圍設(shè)置為200至2000,每次增長10;max_depth范圍設(shè)置為10至100,同樣每次增長10;min_samples_split取值設(shè)置為2,5,10;min_samples_leaf取值設(shè)置為1,2,4.利用RandomizedSearchCV函數(shù)進(jìn)行隨機(jī)搜索,輸出最佳參數(shù)值,圖3是該函數(shù)的搜索過程,當(dāng)決策樹數(shù)量大于1800,樹最大深度大于70后,擬合優(yōu)度值與誤差值不再發(fā)生明顯變化.
圖3 RandomizedSearchCV隨機(jī)搜索圖
最終通過實驗表明當(dāng)隨機(jī)森林算法預(yù)警模型中n_estimators為1800,min_samples_split為2,min_samples_leaf為1,max_depth為70,bootstrap為true時模型效果最好.使用三組不同的數(shù)據(jù)集在該模型上進(jìn)行實驗,分別得出優(yōu)化后的預(yù)警模型評價指標(biāo)結(jié)果如表4所示,可以看出模型優(yōu)化后的三組數(shù)據(jù)擬合優(yōu)度明顯增高,平均絕對誤差值減小.
表4 最優(yōu)參數(shù)評價表
圖4是通過優(yōu)化后的預(yù)警模型分析得到的,顯示了每個特征值所占的比重.從圖中可看出電流和溫度對于預(yù)警結(jié)果占較大比重,電壓和剩余電流占較小比重,管理員可著重注意電流和溫度的變化,當(dāng)電流值和溫度值發(fā)生較大的變化趨勢,就可能會導(dǎo)致預(yù)警事件發(fā)生[7].
圖4 電氣火災(zāi)特征比重圖
2.4.1 單機(jī)模型性能對比
在單機(jī)環(huán)境下使用Tensorflow分別得到基于隨機(jī)森林、決策樹和神經(jīng)網(wǎng)絡(luò)算法的模型所對應(yīng)的評價指標(biāo),實驗分別選取了3組數(shù)據(jù)進(jìn)行測試,每組均選擇50 000條數(shù)據(jù).預(yù)警模型性能對比如表5所示.
表5 模型效果評估表
續(xù)表5
通過表5數(shù)據(jù)可以看出,擬合優(yōu)度值最接近1的是隨機(jī)森林算法模型,而且該模型的平均絕對誤差值與標(biāo)準(zhǔn)差值最小.顯然使用隨機(jī)森林算法模型來預(yù)警電氣火災(zāi)發(fā)生的概率效果最好,準(zhǔn)確度最高.
2.4.2 Spark集群與單機(jī)性能對比
將構(gòu)建好的隨機(jī)森林預(yù)警模型上傳至Spark集群中的Spark Streaming組件中,創(chuàng)建SparkConf對象,設(shè)置conf所需要的配置信息,并創(chuàng)建Spark Streaming數(shù)據(jù)接收器,利用Spark對象讀取電氣火災(zāi)數(shù)據(jù)并輸入到隨機(jī)森林預(yù)警模型中進(jìn)行計算,得到任務(wù)處理結(jié)果以及評估結(jié)果,采用Spark集群與單機(jī)性能對比結(jié)果如表6所示[8].
表6 Spark集群與單機(jī)性能對比表
通過在Spark集群環(huán)境與單機(jī)環(huán)境中分別運(yùn)行隨機(jī)森林預(yù)警算法模型,可以從表中數(shù)據(jù)看出,擬合優(yōu)度與誤差值基本一致,而集群運(yùn)算速度要快于單機(jī)環(huán)境,具有較高的穩(wěn)定性與可靠性.
電氣火災(zāi)消防預(yù)警平臺主要有設(shè)備數(shù)據(jù)管理、大數(shù)據(jù)分析、監(jiān)控預(yù)警、用戶管理四大功能模塊.數(shù)據(jù)管理包括數(shù)據(jù)采集和數(shù)據(jù)傳輸子模塊;大數(shù)據(jù)分析包括數(shù)據(jù)存儲和數(shù)據(jù)分析子模塊;監(jiān)控預(yù)警包括實時監(jiān)測和異常預(yù)警子模塊;用戶管理包括用戶登錄和用戶權(quán)限子模塊,各個模塊之間功能明確,有效降低了耦合關(guān)聯(lián)程度,有利于程序開發(fā)和維護(hù)[9].
如圖5所示,用戶登錄平臺后,在主界面可看到平臺已有的設(shè)備數(shù)量、設(shè)備已采集的數(shù)據(jù)以及預(yù)警數(shù)據(jù)條數(shù)等信息;數(shù)據(jù)實時監(jiān)測模塊借助百度地圖顯示各個監(jiān)測點的情況,分別用藍(lán)、黃、紅色表示該監(jiān)測點數(shù)據(jù)正常、檢測異常、重度異常情況.起火原因統(tǒng)計模塊直觀顯示電氣、用火不當(dāng)、生產(chǎn)作業(yè)等起火因素所占比重;平臺運(yùn)行狀態(tài)模塊顯示系統(tǒng)工作狀態(tài);查看預(yù)警數(shù)據(jù)統(tǒng)計模塊顯示所有監(jiān)測點一年中每個月發(fā)生預(yù)警事件次數(shù).
圖5 數(shù)據(jù)概覽圖
借助窄帶物聯(lián)網(wǎng)、云計算、大數(shù)據(jù)、移動互聯(lián)網(wǎng)等新一代信息技術(shù),利用各種智能傳感器實時采集各消防信息,并借助大數(shù)據(jù)平臺實時存儲和挖掘分析收集到的數(shù)據(jù),構(gòu)建“一張圖”的消防預(yù)警平臺,實現(xiàn)動態(tài)感知、智能研判、精準(zhǔn)防控.但火災(zāi)預(yù)警的準(zhǔn)確度受到的約束因素較多,比如大氣的溫度、使用設(shè)備的質(zhì)量及年限等,今后將對相關(guān)數(shù)據(jù)進(jìn)行融合處理,以便更好地在火災(zāi)萌芽階段及時發(fā)現(xiàn)火情[10].