王子銘 陳順懷
(武漢理工大學(xué)交通學(xué)院1) 武漢 430063) (高性能船舶技術(shù)教育部重點實驗室2) 武漢 430063)
船舶傳統(tǒng)的能效管理模式依賴于船舶操縱人員的經(jīng)驗,有很大不確定性,并且降低了船舶的能源利用效率[1].尋找更有效的船舶實時數(shù)據(jù)分析方法有助于更準(zhǔn)確的評估船舶能效狀態(tài)并提高船舶能效管理效率.孫峰等[2]基于數(shù)據(jù)挖掘技術(shù)對船舶能效狀態(tài)進(jìn)行了評估,周根明等[3]利用層次分析法提出了一種評估船舶主機能耗方法.這些研究雖然提供了船舶主機能耗的評估方法,但并沒有對船舶的能效數(shù)據(jù)進(jìn)行實時處理.葉睿等[4]利用神經(jīng)網(wǎng)絡(luò)分析了客滾船的實時數(shù)據(jù),構(gòu)建了主機油耗模型,但其輸入數(shù)據(jù)僅為船體姿態(tài)數(shù)據(jù),這影響了模型的準(zhǔn)確性與魯棒性.陳維南等[5]利用BP神經(jīng)網(wǎng)絡(luò)預(yù)測主機油耗,從而對船舶主機能耗狀況進(jìn)行評估,但由于BP神經(jīng)網(wǎng)絡(luò)未考慮船舶不同時序上能效數(shù)據(jù)之間的關(guān)聯(lián),這影響了模型的可靠性.
文中以某江海直達(dá)船實際航行的主機運行數(shù)據(jù)和船舶航行姿態(tài)數(shù)據(jù)為樣本,結(jié)合循環(huán)-長短期記憶(recurrent neural networks-long short-term memory,RNN-LSTM)神經(jīng)網(wǎng)絡(luò)算法,構(gòu)建了船舶主機油耗實時預(yù)報模型.將預(yù)處理及數(shù)據(jù)降維后的數(shù)據(jù)作為網(wǎng)絡(luò)的輸入,從而降低數(shù)據(jù)噪聲和網(wǎng)絡(luò)復(fù)雜性.通過大量實驗對神經(jīng)網(wǎng)絡(luò)的超參數(shù)進(jìn)行優(yōu)化,從而提高模型的準(zhǔn)確性,神經(jīng)網(wǎng)絡(luò)輸出得到船舶主機下一時刻油耗的預(yù)測值.
本船舶主機油耗實時預(yù)報模型通過輸入當(dāng)前時刻的航行數(shù)據(jù)得到下一時刻的船舶主機油耗預(yù)測值,主要的工作過程見圖1.
圖1 船舶主機油耗實時預(yù)報流程
在不考慮海況驟變的情況下,訓(xùn)練好的LSTM神經(jīng)網(wǎng)絡(luò)對于固定航域可重復(fù)使用.并且需要指出的是,不同船舶與主機匹配關(guān)系有所不同,并且航行環(huán)境有所差異,所以針對其他船舶及航域,還需要重新訓(xùn)練神經(jīng)網(wǎng)絡(luò),時間成本在可接受范圍內(nèi).本模型并未考慮航域中風(fēng)、浪、流等信息的影響,故為簡化處理,假設(shè)船舶在該固定航域航行時,環(huán)境狀況穩(wěn)定.
船舶實時數(shù)據(jù)均來源于某江海直達(dá)船,該船總長154 m,型寬24 m,型深11.8 m,設(shè)計吃水9.1 m,空載排水4 801.8 t,滿載排水27 300.7 t,主機型號為5S35MC-9.2,額定功率為3 700 kW,額定轉(zhuǎn)速為142 r/min.
船速(VS)、瞬時油耗(q)、首吃水(df)、尾吃水(da)、左吃水(dl)、右吃水(dr)、主機轉(zhuǎn)速(nc)和軸功率(Pc)均由傳感器采集得到.其中,根據(jù)船舶主機的設(shè)備和型號,目標(biāo)船傳感器選擇如下:
1) 主機流量計考慮到目標(biāo)船主機工作時具有很高的溫度,需要耐高溫性好的流量計.故本文選擇BELZ系列流量計中帶電子顯示屏的橢圓齒輪流量計.該流量計儀表可實時讀取主機的瞬時油耗量,并通過4-20 mA輸出信號.流量計圖片見圖2.
圖2 BELZ流量計 圖3 壓力式液位傳感器
2) 四角吃水傳感器分別在目標(biāo)船船首、船中左右舷和船尾安裝壓力式液位傳感器.這些壓力式液位傳感器測量范圍為0~10 m,并將測量到的四角吃水以4-20 mA輸出.壓力式液位傳感器見圖3.
3) 軸功率儀傳感器 目標(biāo)船采用TT Revolution系統(tǒng)采集主機曲軸轉(zhuǎn)速及實時功率.該系統(tǒng)為單通道、不接觸、感應(yīng)供電的系統(tǒng),并通過4-20 mA的輸出信號輸出采集到的數(shù)據(jù).
選取目標(biāo)船由舟山前往張家港某航次的93 242條記錄作為樣本.由于傳感器將采集到的數(shù)據(jù)傳輸?shù)絇C端過程中受到船上電器設(shè)備電磁干擾等因素,使得最終接收到的數(shù)據(jù)有異常值.圖4為樣本數(shù)據(jù)預(yù)處理前的情況.
圖4 樣本原始數(shù)據(jù)
由圖4可知,采集到的很多數(shù)據(jù)超出了數(shù)據(jù)的正常范圍或不符合正常變化趨勢.神經(jīng)網(wǎng)絡(luò)預(yù)測前需對數(shù)據(jù)進(jìn)行濾波及去除異常值處理,以避免神經(jīng)網(wǎng)絡(luò)欠擬合或預(yù)測異常等問題.限幅濾波法及箱線圖法去除異常值具有計算效率高的優(yōu)點[6],符合實時處理的要求.表1為以發(fā)動機額定轉(zhuǎn)速為依據(jù),根據(jù)實際情況設(shè)置各狀態(tài)參數(shù)理論最大值max與理論最小值min.若采集的到數(shù)據(jù)大于理論最大值或小于理論最小值則認(rèn)為該數(shù)據(jù)異常,在分析前應(yīng)剔除.
表1 目標(biāo)船狀態(tài)參數(shù)
數(shù)據(jù)預(yù)處理的過程見圖5,處理后的數(shù)據(jù)見圖6.航速由自帶數(shù)據(jù)預(yù)處理裝置的GPS傳感器采集,可直接使用.航速數(shù)據(jù)見圖7.
圖5 數(shù)據(jù)預(yù)處理流程圖
圖6 樣本處理后數(shù)據(jù)
圖7 航速
網(wǎng)絡(luò)輸入數(shù)據(jù)的維度過大不利于網(wǎng)絡(luò)的實時計算效率,并且船舶各航行參數(shù)反映的信息在一定程度上有重疊.為消除這種影響并提高網(wǎng)絡(luò)計算效率,本文使用主成分分析法(principal component analysis,PCA)對預(yù)處理后的數(shù)據(jù)進(jìn)行降維處理.
主成分分析法可將高維的輸入數(shù)據(jù)合成為低維的相互無關(guān)的主成分,各主成分能夠反映原始高維數(shù)據(jù)的大量信息,并且各主成分所包含的信息不重疊.主成分分析法的操作流程見圖8,經(jīng)計算得到表3的成分矩陣.由表3可知,第一主成分Z1、第二主成分Z2、第三主成分Z3累計方差貢獻(xiàn)率達(dá)到99.99%,可以很好反映原數(shù)據(jù)所包含的信息。故將Z1、Z2、Z3代替原數(shù)據(jù)進(jìn)行后續(xù)的計算.
圖8 主成分分析法計算流程圖
表3 成分矩陣
RNN神經(jīng)網(wǎng)絡(luò)也稱循環(huán)神經(jīng)網(wǎng)絡(luò),它很適合解決輸入在時序上存在關(guān)系的問題,它很好的考慮到了不同時序的輸入之間隱含的信息.圖9為RNNs按時序展開的網(wǎng)絡(luò)結(jié)構(gòu)示意圖.
圖9 循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)展開示意圖
輸入層到隱藏層的激活過程為
st=f1(Uxi+Wst-1)
(1)
式中:st為隱藏層神經(jīng)元的輸出;U為輸入層或上一層隱藏層到當(dāng)前隱藏層的連接權(quán)值矩陣;W為上一時序隱藏層與當(dāng)前時序隱藏層連接權(quán)值矩陣;f1(x)為隱藏層激活函數(shù)。正因為各時序隱藏層之間存在連接權(quán)值矩陣W,使RNN網(wǎng)絡(luò)考慮到了不同時序輸入之間的聯(lián)系。隱藏層到輸出層的激活過程為
yt=f2(Vst)
(2)
式中:Vij為隱藏層到輸出層連接權(quán)值矩陣;f2(x)為輸出層激活函數(shù).普通的RNN網(wǎng)絡(luò)隨著學(xué)習(xí)的數(shù)據(jù)量加大存在結(jié)合點記憶快速衰弱的缺點,容易出現(xiàn)梯度爆炸或梯度消失等問題.長短期記憶(long short-term memory,LSTM)是一種特殊的RNN,主要是為了解決長序列訓(xùn)練過程中的梯度消失和梯度爆炸問題,對于長序列的輸入有更好的表現(xiàn)[7].LSTM神經(jīng)網(wǎng)絡(luò)除外部RNN循環(huán)外還有內(nèi)部“LSTM細(xì)胞”循環(huán),其在RNN的基礎(chǔ)上加入記憶單元C來記憶信息的長期狀態(tài),并通過在隱藏層各單元之間加入遺忘門、輸入們、候選門、輸出門,使時間序列上的記憶信息可控,從而使RNN網(wǎng)絡(luò)具備了長期記憶功能[8].LSTM隱藏單元完整邏輯結(jié)構(gòu)圖見圖10.
圖10 LSTM隱藏單元完整邏輯結(jié)構(gòu)圖
遺忘門控制上一時刻記憶單元狀態(tài)Ct-1將多少信息保留到當(dāng)前時刻的記憶單元狀態(tài)Ct,輸入門和候選門控制當(dāng)前時刻的輸入xt有多少信息導(dǎo)入到當(dāng)前時刻記憶單元狀態(tài)Ct,輸出門則控制當(dāng)前記憶單元狀態(tài)將多少信息輸出到下一時刻隱藏層。遺忘門數(shù)學(xué)模型為
(3)
式中:Wf,Uf,bf分別為遺忘門循環(huán)權(quán)重、輸入權(quán)重、偏置。輸入門數(shù)學(xué)模型為
(4)
式中:Wi,Uf,bi分別為輸入門循環(huán)權(quán)重、輸入權(quán)重、偏置。候選門數(shù)學(xué)模型為
(5)
式中:Wc,Uf,bc分別為候選門循環(huán)權(quán)重、輸入權(quán)重、偏置。輸出門數(shù)學(xué)模型為
(6)
式中:W0、Uf、b0分別為輸出門循環(huán)權(quán)重、輸入權(quán)重、偏置。記憶單元數(shù)學(xué)模型及LSTM細(xì)胞最終輸出為
(7)
St=Ot×tanhCt
(8)
LSTM神經(jīng)網(wǎng)絡(luò)在輸入大量數(shù)據(jù)后,通過向前傳遞與反向轉(zhuǎn)播機制對網(wǎng)絡(luò)內(nèi)的權(quán)值進(jìn)行修正,直到網(wǎng)絡(luò)收斂.本文利用python的kares框架構(gòu)建4層的LSTM神經(jīng)網(wǎng)絡(luò),其中輸入層與輸出層為全連接層,兩層隱藏層為LSTM層.并選取sigmoid作為神經(jīng)網(wǎng)絡(luò)的激活函數(shù),性能函數(shù)采用絕對值誤差(mea)函數(shù).選取10為時間步,即LSTM網(wǎng)絡(luò)當(dāng)前時刻輸入數(shù)據(jù)與前9個時序的輸入存在聯(lián)系.
LSTM神經(jīng)網(wǎng)絡(luò)有許多超參數(shù)影響著網(wǎng)絡(luò)的擬合準(zhǔn)確度,針對不同特點的數(shù)據(jù),各超參數(shù)均有其相對更合適的值.本文針對batch size(批尺寸)、epochs(世代)、優(yōu)化算法、網(wǎng)絡(luò)權(quán)值初始化方法和一二層隱藏層神經(jīng)元數(shù)量進(jìn)行調(diào)優(yōu).
由于目前并沒有成熟的理論解決超參數(shù)取值問題,本文通過遍歷的方法,在3次交叉驗證的基礎(chǔ)上以測試集的RMSE(均方根誤差)為依據(jù)確定各超參數(shù)的最優(yōu)設(shè)定.RMSE計算公式為
(9)
式中:n為樣本數(shù)目;yobs,i為預(yù)測值;ymodel,i為正確值.圖11為超參數(shù)取不同值時的RMSE.故而經(jīng)過計算,各超參數(shù)最優(yōu)設(shè)定見表4.
圖11 超參數(shù)取不同值時的RMSE
表4 神經(jīng)網(wǎng)絡(luò)超參數(shù)最優(yōu)取值
為符合分別將數(shù)據(jù)集中80%和20%的數(shù)據(jù)作為訓(xùn)練集和測試集的訓(xùn)練策略,并提高預(yù)測精度,將某航次采集到的數(shù)據(jù)樣本前83 242個時序的數(shù)據(jù)作為訓(xùn)練集,后10 000個時序的數(shù)據(jù)作為測試集.為了避免神經(jīng)網(wǎng)絡(luò)擬合過程中不必要的數(shù)據(jù)問題,將數(shù)據(jù)樣本中每個時序數(shù)據(jù)的第一主成分、第二主成分、第三主成分歸一化后作為網(wǎng)絡(luò)的輸入.在GPU上對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,其中計算機顯卡型號為Nvidia GeForce GTX 1060,CUDA版本為9.0.每epochs平均訓(xùn)練時間為23 s,測試集測試結(jié)果見圖12.
圖12 實時油耗預(yù)測結(jié)果
由圖12可知,數(shù)據(jù)集中區(qū)域預(yù)測效果較好,當(dāng)某時序數(shù)據(jù)相比上時序數(shù)據(jù)有較大變化時,預(yù)測值相對小于實際值.這是因為網(wǎng)絡(luò)輸入數(shù)據(jù)并未考慮到航行過程中風(fēng)、浪、流等信息,降低了網(wǎng)絡(luò)的魯棒性,導(dǎo)致實時數(shù)據(jù)相對上一時序數(shù)據(jù)有較大改變時,網(wǎng)絡(luò)未能及時響應(yīng),使網(wǎng)絡(luò)存在一定的擬合誤差,但誤差在可接受范圍之內(nèi).
預(yù)測結(jié)果顯示,測試集的RMES值為2.714.考慮到實時數(shù)據(jù)采集存在一定的不確定性,并且計算時存在一定舍入誤差,這里認(rèn)為神經(jīng)網(wǎng)絡(luò)預(yù)測值與實際值之間絕對誤差不超過1可認(rèn)為預(yù)測值與實際值相同,這時得到測試集相對誤差百分?jǐn)?shù)絕對值為3.71%,可見網(wǎng)絡(luò)預(yù)測結(jié)果較好.
文中結(jié)合某江海直達(dá)船實際航行數(shù)據(jù),經(jīng)過數(shù)據(jù)預(yù)處理及數(shù)據(jù)降維,將高維的航行數(shù)據(jù)剔除異常值并降為3維,從而降低了數(shù)據(jù)噪聲并提高了后續(xù)運算效率.基于LSTM神經(jīng)網(wǎng)絡(luò)建立主機油耗實時預(yù)報模型,以目標(biāo)船舟山開往張家港某航次的數(shù)據(jù)作為樣本對網(wǎng)絡(luò)進(jìn)行訓(xùn)練及超參數(shù)調(diào)優(yōu),從而對主機油耗進(jìn)行預(yù)測,測試集均方根誤差為2.714.運用該模型可對正常狀態(tài)下航行的船舶進(jìn)行主機油耗實時預(yù)報,為船舶主機能效狀態(tài)評估提供參考.