張宇涵,高海波,商蕾,林治國(guó),陳亞杰
1.武漢理工大學(xué) 能源與動(dòng)力工程學(xué)院,湖北 武漢 430063 2.中國(guó)船舶重工集團(tuán)公司 第七一一研究所,上海 201101
電力推進(jìn)船舶發(fā)展迅速,其電力推進(jìn)負(fù)荷占比有時(shí)達(dá)到總裝機(jī)容量的70%以上,對(duì)于電站能量管理系統(tǒng)的要求也在不斷提升。發(fā)生惡劣海況時(shí),機(jī)動(dòng)航行或動(dòng)力定位時(shí)整個(gè)電力系統(tǒng)負(fù)荷會(huì)產(chǎn)生較大的波動(dòng),準(zhǔn)確的電力負(fù)荷預(yù)測(cè)能夠幫助調(diào)控發(fā)電機(jī)組合理供電,應(yīng)對(duì)負(fù)荷大幅波動(dòng)對(duì)電網(wǎng)造成的沖擊,根據(jù)預(yù)測(cè)結(jié)果還能夠優(yōu)化能量管理的策略,對(duì)船舶電網(wǎng)整體穩(wěn)定、高效運(yùn)轉(zhuǎn)起關(guān)鍵作用[1?2]。船舶電力負(fù)荷預(yù)測(cè)可按照周期分為短、中、長(zhǎng)3 種[3],其中短期電力負(fù)荷預(yù)測(cè)注重時(shí)效性,但由于時(shí)間很短,所以對(duì)預(yù)測(cè)模型的精度和速度要求很高。較于傳統(tǒng)的預(yù)測(cè)方法,人工神經(jīng)網(wǎng)絡(luò)能夠很好地處理電力負(fù)荷這類非線性的數(shù)據(jù),依靠其自身強(qiáng)大的學(xué)習(xí)能力和泛化能力成為了負(fù)荷預(yù)測(cè)的熱點(diǎn)[4],每種智能方法都有其特殊的優(yōu)勢(shì)、局限性和應(yīng)用合理性[5]。本文分別使用BP、RBF、Elman 共3 種不同的網(wǎng)絡(luò)對(duì)惡劣海況進(jìn)行短期電力負(fù)荷預(yù)測(cè),探究不同神經(jīng)網(wǎng)絡(luò)各自的優(yōu)劣[6?7],找到適合完成電力負(fù)荷預(yù)測(cè)的方法。
BP 神經(jīng)網(wǎng)絡(luò)是20 世紀(jì)80 年代由Rumelhart和McClelland 提出的誤差反向傳播的多層前饋神經(jīng)網(wǎng)絡(luò),是當(dāng)前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)[8]。其網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示,一般情況下由輸入層、隱含層、輸出層3 層組成。輸入與輸出之間均有連接。
圖1 BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
BP 神經(jīng)網(wǎng)絡(luò)的處理主體分為正向的信息傳遞和反向的誤差傳播2 個(gè)部分。將數(shù)據(jù)輸入,通過(guò)隱含層計(jì)算后傳至輸出層,該過(guò)程為正向信息傳遞,當(dāng)輸出和初設(shè)期望值不相符時(shí),將其誤差進(jìn)行反向傳播,根據(jù)梯度下降法的原理來(lái)降低誤差,網(wǎng)絡(luò)各層連接權(quán)值不斷更新,最終使誤差的均方值最小,該過(guò)程為誤差反向傳播。
RBF 神經(jīng)網(wǎng)絡(luò)是在20 世紀(jì)80 年代由J.Moody和C.Darken 提出的單隱層前饋神經(jīng)網(wǎng)絡(luò)[9]。整個(gè)網(wǎng)絡(luò)如圖2 所示,也是由3 層組成,將數(shù)據(jù)輸入,在隱含層中發(fā)生空間層到隱含層的轉(zhuǎn)換,同時(shí)在隱含層中還可以實(shí)現(xiàn)非線性的轉(zhuǎn)換,最終信息會(huì)以線性的形式傳遞到輸出層。
圖2 RBF 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
RBF 神經(jīng)網(wǎng)絡(luò)可以在隱含層將輸入的低維數(shù)據(jù)轉(zhuǎn)換成高維,使原本線性不可分的數(shù)據(jù)在高維空間內(nèi)變成線性可分?jǐn)?shù)據(jù),網(wǎng)絡(luò)的整體結(jié)構(gòu)簡(jiǎn)單,收斂速度理想,理論上能夠逼近任何非線性函數(shù),也是廣泛應(yīng)用于回歸預(yù)測(cè)的算法之一[10]。
Elman 神經(jīng)網(wǎng)絡(luò)是20 世紀(jì)90 年代由J.L.Elman提出的一種動(dòng)態(tài)遞歸神經(jīng)網(wǎng)絡(luò)[11],其結(jié)構(gòu)如圖3所示。和傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)相比,該網(wǎng)絡(luò)有一個(gè)特殊的層叫做承接層,它的功能是存儲(chǔ)隱含層單元在前一時(shí)刻的輸出值,并將其返回到網(wǎng)絡(luò)的輸入端,可以看作是一個(gè)延遲算子。通過(guò)隱含層與承接層這種連接方式能夠增強(qiáng)網(wǎng)絡(luò)處理動(dòng)態(tài)信息的能力,進(jìn)而能夠達(dá)到動(dòng)態(tài)建模的目的[12]。
圖3 Elman 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
在進(jìn)行負(fù)荷預(yù)測(cè)之前,數(shù)據(jù)的采集工作非常重要,若歷史數(shù)據(jù)量不足,會(huì)導(dǎo)致無(wú)法準(zhǔn)確預(yù)測(cè),若過(guò)量則會(huì)導(dǎo)致網(wǎng)絡(luò)訓(xùn)練時(shí)間過(guò)長(zhǎng),最終無(wú)法收斂。采集某船在惡劣海況下進(jìn)行動(dòng)力定位時(shí)的電網(wǎng)負(fù)荷數(shù)據(jù),累計(jì)時(shí)長(zhǎng)為25 min。圖4 所示為采集到的船舶電網(wǎng)負(fù)荷曲線圖。在MATLAB 中進(jìn)行預(yù)測(cè)仿真,數(shù)據(jù)采集的周期設(shè)置為10 s,25 min內(nèi)共采集150 個(gè)數(shù)據(jù),將前120 個(gè)數(shù)據(jù)作為輸入,通過(guò)神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測(cè),輸出后30 個(gè)數(shù)據(jù)與采集的后30 個(gè)數(shù)據(jù)進(jìn)行對(duì)比。
圖4 實(shí)際負(fù)荷曲線
若獲取的負(fù)荷數(shù)據(jù)前后差別過(guò)大超出可接受范圍,則視為數(shù)據(jù)異常,需要對(duì)初始數(shù)據(jù)進(jìn)行異常處理工作,在此采用水平處理法。
式中:α(k)、β(k)為設(shè)置的閾值,k為采樣點(diǎn),每隔10 s 進(jìn)行一次采樣,一共采集150 個(gè)點(diǎn),取值范圍為1~150;Y(k) 為 第k個(gè)點(diǎn)的負(fù)荷值,Y(k+1)為第k+1 個(gè)點(diǎn)的負(fù)荷值,若k=150 則Y(k+1)為第1 個(gè)點(diǎn)的負(fù)荷值,Y(k?1)是 第k?1 個(gè)點(diǎn)的負(fù)荷值,若k=1 則Y(k?1)表示第150 個(gè)點(diǎn)的電力負(fù)荷值。
對(duì)短期電力負(fù)荷進(jìn)行預(yù)測(cè),輸入采用一段連續(xù)時(shí)間的電力負(fù)荷歷史數(shù)據(jù)值作為單輸入,為避免神經(jīng)元飽和,需要對(duì)數(shù)據(jù)進(jìn)行歸一化處理[13],在訓(xùn)練完成后再反歸一化輸出真實(shí)值。
歸一化:
反歸一化:
式中:xmax、xmin為輸入負(fù)荷的最大值和最小值;xi、yi是進(jìn)行歸一化前后的負(fù)荷值。
2.2.1 BP 神經(jīng)網(wǎng)絡(luò)模型構(gòu)建
完成了前期數(shù)據(jù)處理后,需要對(duì)神經(jīng)網(wǎng)絡(luò)的模型進(jìn)行構(gòu)建,網(wǎng)絡(luò)創(chuàng)建采用newff 命令,考慮到進(jìn)行短期電力負(fù)荷需要網(wǎng)絡(luò)能夠快速收斂,故隱含層只取1 層,BP 神經(jīng)網(wǎng)絡(luò)整體由3 層組成,在此輸入和輸出均只有負(fù)荷值,故兩層神經(jīng)元個(gè)數(shù)均為1,隱含層神經(jīng)元個(gè)數(shù)N通過(guò)經(jīng)驗(yàn)公式和試湊法進(jìn)行確定。經(jīng)驗(yàn)公式為
式中:N為隱含層神經(jīng)元個(gè)數(shù),m為輸入層神經(jīng)元個(gè)數(shù),l為輸出層神經(jīng)元個(gè)數(shù),q為1~10 中的任意一個(gè)常數(shù)。
通過(guò)經(jīng)驗(yàn)公式以及試湊法確立BP 神經(jīng)網(wǎng)絡(luò)隱含層神經(jīng)元的個(gè)數(shù)為5,誤差設(shè)定為1×10?3,其他數(shù)值均采用默認(rèn)值。
2.2.2 RBF 神經(jīng)網(wǎng)絡(luò)模型構(gòu)建
RBF 神經(jīng)網(wǎng)絡(luò)整體結(jié)構(gòu)由3 層組成,隱含層中使用的徑向基函數(shù)是高斯函數(shù),故激活函數(shù)表達(dá)式為
輸入和輸出層依舊為1 個(gè)神經(jīng)元,在MATLAB中創(chuàng)建神經(jīng)網(wǎng)絡(luò)有2 種方式,分別為newrb 和newrbe。newrbe 創(chuàng)建神經(jīng)網(wǎng)絡(luò)時(shí),隱含層神經(jīng)元個(gè)數(shù)自動(dòng)等于輸入樣本數(shù)量,網(wǎng)絡(luò)整體創(chuàng)建速度極快,能夠一次性得到零誤差的徑向基網(wǎng)絡(luò),只需通過(guò)調(diào)整分布常數(shù)spread 值來(lái)調(diào)整預(yù)測(cè)精度,分布常數(shù)太小能提高網(wǎng)絡(luò)訓(xùn)練速度,但同時(shí)易出現(xiàn)過(guò)擬合狀態(tài)。最終確定的spread 值為1.4。
2.2.3 Elman 神經(jīng)網(wǎng)絡(luò)模型構(gòu)建
圖3 中Elman 網(wǎng)絡(luò)結(jié)構(gòu)圖的數(shù)學(xué)表達(dá)式[14]為
式中:f(x)為 隱含層神經(jīng)元的傳遞函數(shù),g(x)為輸出層神經(jīng)元的傳遞函數(shù),u(k?1)為 輸入值,h(k)為隱含層輸出值,y(k)為輸出值,k代表不同時(shí)刻,w1、w2、w3分別為輸入層到隱含層、隱含層到輸出層、承接層到隱含層的權(quán)值[15]。
網(wǎng)絡(luò)創(chuàng)建采用elman 命令,隱含層神經(jīng)元個(gè)數(shù)依舊根據(jù)式(1) 和試湊法確定,最終個(gè)數(shù)確定為5,輸入層和輸出層神經(jīng)元個(gè)數(shù)均為1,Elman的其他參數(shù)設(shè)置與BP 保持一致即可。
仿真訓(xùn)練在網(wǎng)絡(luò)建立后開始。圖5 給出了BP、RBF 和Elman 共3 種不同神經(jīng)網(wǎng)絡(luò)各自的預(yù)測(cè)效果,從效果圖上看整體預(yù)測(cè)趨勢(shì)都是符合要求的,BP 預(yù)測(cè)效果略差,Elman 次之,RBF 效果最好,預(yù)測(cè)值幾乎能和真實(shí)值完全擬合。
圖5 3 種網(wǎng)絡(luò)預(yù)測(cè)效果
圖6 為預(yù)測(cè)相對(duì)誤差圖,圖中可見(jiàn),BP 網(wǎng)絡(luò)和Elman 網(wǎng)絡(luò)可以明顯看出有多個(gè)預(yù)測(cè)誤差較大的點(diǎn),其相對(duì)誤差均存在一定的波動(dòng),RBF 網(wǎng)絡(luò)誤差波動(dòng)很小。
圖6 3 種網(wǎng)絡(luò)預(yù)測(cè)相對(duì)誤差
對(duì)于網(wǎng)絡(luò)預(yù)測(cè)的效果評(píng)價(jià)指標(biāo)還有平均相對(duì)誤差(mean absolute percentage error,MAPE)值、均方根誤差(root mean squared error,RMSE)值 和決定系數(shù)(R2)。
平均相對(duì)誤差:
式中:n為預(yù)測(cè)樣本數(shù);pi為預(yù)測(cè)值;qi為真實(shí)值。
均方根誤差:
決定系數(shù):
表1 為3 種網(wǎng)絡(luò)評(píng)價(jià)指標(biāo)數(shù)據(jù)匯總,誤差指標(biāo)數(shù)值越小代表預(yù)測(cè)的結(jié)果越精確,決定系數(shù)越接近1,表明預(yù)測(cè)的結(jié)果越接近真實(shí)值,預(yù)測(cè)的準(zhǔn)確度越高,船舶電網(wǎng)才能夠越有效地進(jìn)行能量分配。從表1 中可明顯看出RBF 網(wǎng)絡(luò)的各項(xiàng)指標(biāo)相較另外2 種網(wǎng)絡(luò)更好,且RBF 網(wǎng)絡(luò)的結(jié)構(gòu)簡(jiǎn)單,相較于另外2 種網(wǎng)絡(luò),RBF 網(wǎng)絡(luò)模型只需要確定spread 值就能完成模型構(gòu)建,且RBF 網(wǎng)絡(luò)具有全局逼近能力,解決了BP 網(wǎng)絡(luò)可能陷入的局部最優(yōu)問(wèn)題,訓(xùn)練速度快,能夠滿足短期電力負(fù)荷預(yù)測(cè)的時(shí)效性。因此RBF 神經(jīng)網(wǎng)絡(luò)更適合解決短期電力負(fù)荷預(yù)測(cè)問(wèn)題。為增強(qiáng)結(jié)論的可靠性,我們將輸入和輸出的比例進(jìn)行略微調(diào)整。表2 為輸入調(diào)整為130 組、輸出調(diào)整為20 組數(shù)據(jù)的各網(wǎng)絡(luò)評(píng)價(jià)指標(biāo),表3 為輸入調(diào)整為110 組、輸出調(diào)整為40 組的各網(wǎng)絡(luò)評(píng)價(jià)指標(biāo),從結(jié)果來(lái)看,RBF 網(wǎng)絡(luò)各項(xiàng)指標(biāo)依然處于最優(yōu)的狀態(tài)。
表1 各網(wǎng)絡(luò)的評(píng)價(jià)指標(biāo)
表2 輸入為130 組各網(wǎng)絡(luò)的評(píng)價(jià)指標(biāo)
表3 輸入為110 組各網(wǎng)絡(luò)的評(píng)價(jià)指標(biāo)
1)惡劣海況下,電力推進(jìn)船舶進(jìn)行動(dòng)力定位或機(jī)動(dòng)航行時(shí),船舶電網(wǎng)的負(fù)荷具有很強(qiáng)的隨機(jī)性,很難找到精確的數(shù)學(xué)模型去進(jìn)行描述。但人工神經(jīng)網(wǎng)絡(luò)擁有強(qiáng)大的自學(xué)習(xí)能力,通過(guò)對(duì)歷史數(shù)據(jù)的學(xué)習(xí)能夠很好地找到其中內(nèi)含的規(guī)律,因此借助人工神經(jīng)網(wǎng)絡(luò)能夠很好地解決短期電力負(fù)荷預(yù)測(cè)問(wèn)題。
2)相較于BP 神經(jīng)網(wǎng)絡(luò),Elman 獨(dú)特的承接層具有短期記憶的功能,能夠內(nèi)部反饋并存儲(chǔ)一部分過(guò)去時(shí)刻的信息,也十分適合船舶的實(shí)時(shí)電力負(fù)荷預(yù)測(cè)。
3)RBF 神經(jīng)網(wǎng)絡(luò)的各項(xiàng)評(píng)價(jià)指標(biāo)都要優(yōu)于另外兩種網(wǎng)絡(luò),網(wǎng)絡(luò)模型建立簡(jiǎn)便、學(xué)習(xí)收斂速度快、誤差小,能夠有效地進(jìn)行電力負(fù)荷預(yù)測(cè),為能量管理策略進(jìn)行合理的能量調(diào)度提供依據(jù),提高船舶電網(wǎng)的工作效率。