夏德斌, 李亞?wèn)|, 丁 彬, 辛 鵬, 楊 洋
(山東海洋工程裝備有限公司, 山東 青島 266555)
船舶通常具有結(jié)構(gòu)緊湊、設(shè)備密集、通道狹窄的特點(diǎn),加之船舶內(nèi)部潛在火災(zāi)發(fā)生源較多,易發(fā)生火災(zāi)事故,而船舶火災(zāi)又具有擴(kuò)展快、撲滅難度較大、人員逃生困難等特點(diǎn)[1],易造成嚴(yán)重的后果?;馂?zāi)報(bào)警系統(tǒng)作為發(fā)現(xiàn)火災(zāi)的眼睛,其可靠性與準(zhǔn)確性直接影響著火災(zāi)防控效果。目前,船舶火災(zāi)探測(cè)通常采用傳感器的方式。
船舶上常用的火災(zāi)探測(cè)器有感煙型、感溫型、感光型及氣體探測(cè)型等[2],為克服單一型式探測(cè)器的不足,提高火災(zāi)早期探測(cè)準(zhǔn)確率,通常根據(jù)艙室特點(diǎn),常采用多傳感器組合的方式進(jìn)行探測(cè)。這種多傳感器組合探測(cè)方式可以避免單一傳感器對(duì)不同火災(zāi)類型探測(cè)的盲區(qū),提高火災(zāi)探測(cè)的可靠性。但目前船舶多傳感器組合的控制邏輯通常采用1oo2、2oo3等簡(jiǎn)單控制方式,沒(méi)有有效融合各傳感器的參量信息,存在報(bào)警系統(tǒng)智能化程度低和火災(zāi)自動(dòng)報(bào)警系統(tǒng)誤報(bào)、漏報(bào)問(wèn)題較多等主要問(wèn)題[3]。
目前,正在進(jìn)行雙船拆解系統(tǒng)(Twin Marine Lifter, TML)的研究,為提高TML系統(tǒng)在海上油田設(shè)施拆除作業(yè)過(guò)程中的安全性,需要一套高效可靠的火災(zāi)報(bào)警系統(tǒng)。因此,結(jié)合現(xiàn)有火災(zāi)探測(cè)系統(tǒng)的特點(diǎn),提出一種基于支持向量機(jī)(Support Vector Machine, SVM)的多傳感器火災(zāi)探測(cè)技術(shù),通過(guò)對(duì)多傳感器探測(cè)信息的有效融合,形成多傳感器火災(zāi)探測(cè)方案,從而減少由單火災(zāi)探測(cè)器所導(dǎo)致的漏報(bào)、誤報(bào)等情況的發(fā)生,提高火災(zāi)報(bào)警系統(tǒng)的可靠性與及時(shí)性,并將此方案在TML火災(zāi)報(bào)警系統(tǒng)中加以應(yīng)用。
支持向量機(jī)是一種有監(jiān)督的分類模型,其通過(guò)對(duì)輸入數(shù)據(jù)進(jìn)行學(xué)習(xí),構(gòu)建出最優(yōu)分類函數(shù),從而實(shí)現(xiàn)智能分類。給定訓(xùn)練樣本集D=(x1,y1),(x2,y2),…,(xm,ym),其中yi∈{-1,+1}]。SVM的基本思想就是基于訓(xùn)練集D在樣本空間中找到一個(gè)劃分超平面,將不同類別的樣本分開(kāi)[4],且使得樣本到劃分超平面之間的間隔最大。圖1是SVM的基本形式。然而,通常輸入樣本并不是線性可分的,此時(shí)可通過(guò)將低維的原始樣本空間向更高維度映射,實(shí)現(xiàn)樣本在更高維度空間內(nèi)線性可分,即引入核函數(shù)k(xi,yi)=Φ(xi)TΦ(xj) 來(lái)代替xi與xj在特征空間的內(nèi)積。
圖1 SVM基本形式
此時(shí),SVM的求解問(wèn)題變?yōu)?/p>
(1)
式中:Φ(xi)為將xi映射到更高維度的特征向量;w=(w1,w2,…,wd)為劃分超平面的法向量,決定了劃分超平面的方向;b為劃分超平面與原點(diǎn)之間的距離。
對(duì)式(1)使用拉格朗日乘數(shù)法可求得其對(duì)偶問(wèn)題,并引入懲罰因子C以防止過(guò)擬合產(chǎn)生,于是求解問(wèn)題變?yōu)?/p>
(2)
求解后可得分類函數(shù)為
(3)
火災(zāi)初期發(fā)生的陰燃階段,產(chǎn)生大量的煙和少量的熱,很少或沒(méi)有火焰輻射,而在明火階段,可產(chǎn)生大量的熱、煙和火焰[5]。因此,可以綜合考慮多個(gè)火災(zāi)特征來(lái)識(shí)別火災(zāi),通過(guò)CO、CO2氣體濃度和環(huán)境溫度的變化區(qū)分陰燃火和明火。
基于SVM的多傳感器火災(zāi)探測(cè)系統(tǒng)模型如圖2 所示。通過(guò)多傳感器探測(cè)環(huán)境變量,將采集到的數(shù)據(jù)經(jīng)過(guò)預(yù)處理輸入SVM模塊,由SVM模塊判斷是否有火災(zāi)發(fā)生并輸出到火災(zāi)報(bào)警系統(tǒng)。
圖2 SVM多傳感器火災(zāi)探測(cè)模型
傳感器所測(cè)不同參量的數(shù)值具有較大的差異性,如溫度數(shù)值與CO氣體濃度數(shù)值相比并不在一個(gè)數(shù)量級(jí)上,若是不經(jīng)處理直接輸入SVM,會(huì)使溫度信息在判斷中占絕對(duì)主導(dǎo)地位,導(dǎo)致模型無(wú)法有效融合多信息參量,因此,有必要對(duì)輸入數(shù)據(jù)進(jìn)行預(yù)處理。
如若選用CO濃度、煙霧濃度和環(huán)境溫度作為火災(zāi)探測(cè)的依據(jù),考慮CO濃度和煙霧濃度的取值范圍都在[0,1],只需將溫度范圍也歸一至[0,1],采取的轉(zhuǎn)換函數(shù)為y=(x-min)/(max-min)。
經(jīng)過(guò)歸一化處理后的訓(xùn)練數(shù)據(jù)如表1所示(選取前10組數(shù)據(jù))。
表1 歸一化后的火災(zāi)樣本數(shù)據(jù)
考慮到二維圖像顯示更為直觀,選用感溫探測(cè)器和感煙探測(cè)器2個(gè)數(shù)據(jù)進(jìn)行程序編寫(xiě)與驗(yàn)證。程序編寫(xiě)采用Python語(yǔ)言,調(diào)用Scikit-learn模塊,由于多傳感器火災(zāi)預(yù)測(cè)并無(wú)先驗(yàn)信息,因此核函數(shù)選用高斯核函數(shù),同時(shí)將懲罰因子C設(shè)為10,將數(shù)據(jù)樣本中的70%作為訓(xùn)練數(shù)據(jù)對(duì)程序進(jìn)行訓(xùn)練以獲得合適的α和b值,同時(shí)將數(shù)據(jù)樣本中的30%作為測(cè)試數(shù)據(jù)進(jìn)行程序驗(yàn)證,以測(cè)試程序的分類效果,如圖3所示。
圖3 基于感溫和感煙探測(cè)器的判斷結(jié)果
節(jié)選程序如下:
file_path=‘fire_train_data.xlsx’
data=pd.read_excel(io=file_path)
fire.x=data.iloc[:,0:2]
fire.y=pd.Categorical(data[‘fire’]).codes
fire.x_train, fire.x_test, fire.y_train, fire.y_test = train_test_split(fire.x, fire.y, random_state=2, test_size=0.28)
svm_clf = svm.SVC(C=10, gamma=1, kernel=‘rbf’, decision_function_shape=‘ovo’)
decision = svm_clf
decision.fit(fire.x_train,fire.y_train.ravel())
圖3中,三角形點(diǎn)表示無(wú)火災(zāi)發(fā)生,正方形點(diǎn)表示發(fā)生陰燃火,圓形點(diǎn)表示發(fā)生明火。由圖3可以看出:除將一例無(wú)火災(zāi)發(fā)生狀態(tài)誤判為陰燃火狀態(tài)外,其余狀態(tài)均落在相應(yīng)區(qū)域內(nèi),準(zhǔn)確率較高。造成這一例判斷錯(cuò)誤的原因有樣本采集誤差、火災(zāi)邊界并不絕對(duì)等。為了進(jìn)一步提高火災(zāi)探測(cè)的可靠性,可以適當(dāng)增加CO探測(cè)器,通過(guò)3個(gè)參量可以有效降低樣本誤差帶來(lái)的干擾,基于3個(gè)參量的SVM火災(zāi)探測(cè)只需在程序中增加CO探測(cè)數(shù)據(jù)即可,節(jié)選程序如下:
file_path=‘fire_train_data.xlsx’
data=pd.read_excel(io=file_path)
fire.x=data.iloc[:,0:3]
fire.y=data.iloc[0:,3:4]
fire.y=pd.Categorical(data[‘fire’]).codes
fire.x_train, fire.x_test, fire.y_train, fire.y_test = train_test_split(fire.x, fire.y, random_state=2, test_size=0.28)
svm_clf = svm.SVC(C=10, gamma=1, kernel=‘rbf’, decision_function_shape=‘ovo’)
decision = svm_clf
decision.fit(fire.x_train,fire.y_train.ravel())
仿真結(jié)果如圖4所示。
圖4 基于感溫、感煙和CO探測(cè)器的判斷結(jié)果
圖4中,橫三角表示無(wú)火災(zāi)發(fā)生狀態(tài),上三角表示發(fā)生陰燃火狀態(tài),圓點(diǎn)表示發(fā)生明火。與實(shí)際結(jié)果對(duì)比,分類準(zhǔn)確率為100%??梢?jiàn),采用完善后的SVM多傳感器火災(zāi)探測(cè)方法可以大幅提高火災(zāi)探測(cè)的準(zhǔn)確性。
火災(zāi)發(fā)生時(shí)的環(huán)境多變,火災(zāi)發(fā)生狀態(tài)也存在較多差異性,難以用一般的數(shù)學(xué)模型來(lái)描述,這給火災(zāi)探測(cè)帶來(lái)了一定難度。通過(guò)分析SVM分類特點(diǎn),將多傳感器信息輸入SVM模塊進(jìn)行判斷,利用SVM間隔最大和具有自學(xué)習(xí)等特性,可以大幅提高系統(tǒng)的準(zhǔn)確率。將SVM多傳感器火災(zāi)探測(cè)技術(shù)運(yùn)用到船舶火災(zāi)探測(cè)中,特別是作業(yè)工況復(fù)雜的海上油田設(shè)施拆解平臺(tái)上,對(duì)船舶火災(zāi)的防治具有積極意義。