劉亞新,樊啟祥,尚毅梓,樊啟萌,劉志武
(中國(guó)長(zhǎng)江三峽集團(tuán)有限公司,北京 100038)
準(zhǔn)確的水位預(yù)測(cè)是水電站安全運(yùn)行和增發(fā)效益的關(guān)鍵。然而,受諸多因素的影響,水位預(yù)測(cè)常常較實(shí)際情況偏差較大,導(dǎo)致發(fā)電計(jì)劃頻繁修改,不利于電站安全、高效、穩(wěn)定地運(yùn)行。特別是具有緊密水力聯(lián)系的梯級(jí)電站,如三峽水電站和葛洲壩水電站構(gòu)成的梯級(jí)電站,上游電站的出庫(kù)流量預(yù)報(bào)誤差會(huì)疊加到下游電站,且因兩壩間往復(fù)流、出入庫(kù)不平衡等問(wèn)題,使得下游電站水位的準(zhǔn)確預(yù)測(cè)更難實(shí)現(xiàn)。
大量學(xué)者對(duì)水位預(yù)測(cè)問(wèn)題進(jìn)行了研究,提出了多種預(yù)測(cè)模型。王蒙蒙等[1]基于支持向量回歸模型對(duì)洞庭湖水位進(jìn)行了預(yù)測(cè),其輸入變量為三峽水庫(kù)逐日出庫(kù)流量、清江逐日流量及洞庭湖“四水”逐日入湖流量。馬輝等[2]提出了一種將灰色模型與神經(jīng)網(wǎng)絡(luò)相結(jié)合的灰色-BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)方法,得到了較高精度的預(yù)測(cè)結(jié)果。李欣等[3]綜合考慮河流水位時(shí)空信息,建立了基于時(shí)空序列的徑向基函數(shù)(RBF)神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型,預(yù)測(cè)了金沙江下游向家壩水文站的水位情況。余開(kāi)華[4]提出了小波神經(jīng)網(wǎng)絡(luò)河道流量水位預(yù)測(cè)模型,并應(yīng)用于預(yù)測(cè)盤(pán)龍河天保站的水位。Ashaary等[5]采用BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)了Timah Tasoh水庫(kù)的水位變化,采用窗處理的方式將前w個(gè)時(shí)刻的水位數(shù)據(jù)作為輸入變量,建立了6個(gè)不同的神經(jīng)網(wǎng)絡(luò)模型進(jìn)行比較,結(jié)果表明當(dāng)w=2時(shí),所建立的神經(jīng)網(wǎng)絡(luò)模型最優(yōu)。Chang等[6]采用自適應(yīng)神經(jīng)模糊推理系統(tǒng)建立了水庫(kù)水位的預(yù)測(cè)模型,并將其應(yīng)用于Shihmen水庫(kù)的水位預(yù)測(cè),結(jié)果表明該模型可以準(zhǔn)確預(yù)測(cè)連續(xù)3 h的水位。
但在梯級(jí)電站的水位預(yù)測(cè)方面,尤其是下游電站的水位預(yù)測(cè),國(guó)內(nèi)外進(jìn)行的研究較少。由于梯級(jí)電站之間的緊密聯(lián)系,上游電站的運(yùn)行情況會(huì)影響到下游電站的水位,并且因距離的原因使得影響具有時(shí)間滯后性,因此在預(yù)測(cè)時(shí)要綜合考慮這些影響因素。長(zhǎng)短時(shí)記憶(long short-term memory, LSTM)網(wǎng)絡(luò)是循環(huán)神經(jīng)網(wǎng)絡(luò)中一種帶有門(mén)控的網(wǎng)絡(luò),能夠考慮到數(shù)據(jù)的時(shí)序性特點(diǎn),學(xué)習(xí)到數(shù)據(jù)之間的長(zhǎng)期依賴關(guān)系,在處理時(shí)間序列數(shù)據(jù)的預(yù)測(cè)方面具有獨(dú)特的優(yōu)勢(shì),已被廣泛應(yīng)用于自然語(yǔ)言處理、語(yǔ)音識(shí)別、圖片描述等領(lǐng)域。王鑫等[7]將LSTM用于航空領(lǐng)域的月度故障時(shí)間序列的預(yù)測(cè),并提出了基于多層網(wǎng)格搜索的LSTM預(yù)測(cè)模型參數(shù)優(yōu)選方法。保羅等[8]考慮磨機(jī)特征樣本之間的時(shí)間尺度信息,采用編碼神經(jīng)網(wǎng)絡(luò)的方法提取樣本特征,使用LSTM建立了負(fù)荷參數(shù)的預(yù)測(cè)模型。Wielgosz等[9]將深度學(xué)習(xí)算法應(yīng)用于大型強(qiáng)子對(duì)撞機(jī)超導(dǎo)磁體的監(jiān)測(cè)和故障保護(hù),分析了不同的LSTM網(wǎng)絡(luò)結(jié)構(gòu)和超參數(shù)對(duì)模型預(yù)測(cè)效果的影響,結(jié)果表明記憶單元為128,歷史步長(zhǎng)為16時(shí)效果最佳。楊訓(xùn)政等[10]將LSTM用于發(fā)電機(jī)組的污染物排放研究,并與最小二乘法、支持向量回歸機(jī)進(jìn)行對(duì)比,結(jié)果表明LSTM明顯優(yōu)于其他兩種方法。
本文提出一種基于LSTM網(wǎng)絡(luò)的水電站水位預(yù)測(cè)方法,并將其應(yīng)用于預(yù)測(cè)葛洲壩水電站上下游水位,以期為葛洲壩水庫(kù)的實(shí)時(shí)調(diào)度提供技術(shù)支撐。
循環(huán)神經(jīng)網(wǎng)絡(luò)在時(shí)間序列預(yù)測(cè)方面具有獨(dú)特的優(yōu)勢(shì),其通過(guò)特定的網(wǎng)絡(luò)結(jié)構(gòu),將過(guò)去時(shí)刻的影響反映到當(dāng)前的預(yù)測(cè)之中,同時(shí)由于共享不同時(shí)刻的權(quán)值矩陣,減少了參數(shù)數(shù)目,使得訓(xùn)練效率大大提高,并且可以處理任意長(zhǎng)度的時(shí)間序列數(shù)據(jù)。盡管理論如此,但實(shí)際上,原始的循環(huán)神經(jīng)網(wǎng)絡(luò)由于參數(shù)共享,經(jīng)過(guò)多階段傳播后的梯度傾向于消失或爆炸[11-12],使得模型喪失了學(xué)習(xí)到更早信息的能力,這個(gè)問(wèn)題也稱為長(zhǎng)期依賴問(wèn)題。1997年Hochreiter 等[13]提出了LSTM網(wǎng)絡(luò),很好地解決了這一問(wèn)題。LSTM通過(guò)引入門(mén)的設(shè)置來(lái)決定控制信息的流動(dòng),最初LSTM只有兩個(gè)門(mén),即輸入門(mén)和輸出門(mén),2000年Gers等[14]對(duì)其進(jìn)行了改進(jìn),加入了遺忘門(mén)使LSTM通過(guò)自主學(xué)習(xí)遺忘一些無(wú)關(guān)緊要的歷史信息。之后Gers等[15]提出了加入“窺視孔連接”的 LSTM變體,將單元狀態(tài)也作為門(mén)的輸入。Cho等[16]將遺忘門(mén)和輸入門(mén)合并為更新門(mén),提出了GRU(gated recurrent unit)模型。
圖1 LSTM的隱含層結(jié)構(gòu)
正如圖1所示,LSTM中的每個(gè)門(mén)實(shí)際上就是一個(gè)全連接層,輸出是[0,1]之間的向量,用以控制信息的傳遞。門(mén)的激勵(lì)函數(shù)σ為sigmoid函數(shù),可表示為
(1)
根據(jù)應(yīng)用的不同,LSTM可以有不同的變體形式。本文構(gòu)建的LSTM結(jié)構(gòu)如圖2所示,每一個(gè)時(shí)間步都有輸出,隱含層結(jié)構(gòu)如圖1所示,并且隱含層單元之間有循環(huán)連接。
圖2 LSTM的基本結(jié)構(gòu)
圖1和圖2對(duì)應(yīng)的LSTM的前向傳播的具體公式為
遺忘門(mén)ft=σ(nf,t)
(2)
輸入門(mén)it=σ(ni,t)
(3)
輸出門(mén)ot=σ(no,t)
(4)
(5)
(6)
隱含層輸出ht=ot°tanh(ct)
(7)
輸出層yt=tanh(ny,t)
(8)
其中nf,t=Wfhht-1+Wfxxt+bf
ni,t=Wihht-1+Wixxt+bi
no,t=Wohht-1+Woxxt+bo
ny,t=Wyht+by
式中:Wfh和Wfx分別為遺忘門(mén)中與ht-1和xt對(duì)應(yīng)的權(quán)重矩陣;Wih和Wix分別為輸入門(mén)中與ht-1和xt對(duì)應(yīng)的權(quán)重矩陣;Woh和Wox分別為輸出門(mén)中與ht-1和xt對(duì)應(yīng)的權(quán)重矩陣;Wch和Wcx分別為當(dāng)前輸入的單元狀態(tài)中與ht-1和xt對(duì)應(yīng)的權(quán)重矩陣;Wy為輸出層中與ht對(duì)應(yīng)的權(quán)重矩陣;bf、bi、bo、bc、by分別為遺忘門(mén)、輸入門(mén)、輸出門(mén)、當(dāng)前輸入的單元狀態(tài)、輸出層中的偏置向量;°表示兩個(gè)向量對(duì)應(yīng)元素相乘。
LSTM的訓(xùn)練算法仍然是誤差反向傳播算法。由于LSTM的前向傳播過(guò)程是從左到右的有序傳播,因此誤差反向傳播過(guò)程也是沿時(shí)間反向傳遞,稱為BPTT(back-propagation through time)算法。
在本文構(gòu)造的LSTM中,要訓(xùn)練的參數(shù)包括權(quán)重矩陣Wfh、Wfx、Wih、Wix、Woh、Wox、Wch、Wcx、Wy和偏置向量bf、bi、bo、bc、by。將誤差沿時(shí)間反向傳播,需要計(jì)算每個(gè)時(shí)刻的誤差項(xiàng)。設(shè)t時(shí)刻真實(shí)值dt與估計(jì)值yt的誤差為yt-dt,1到T時(shí)刻的總誤差E可表示為
(9)
(10)
進(jìn)一步可得
(11)
(12)
(13)
進(jìn)而得到權(quán)重矩陣和偏置項(xiàng)的梯度分別為
(14)
(15)
由以上梯度公式就可以采用梯度下降法來(lái)更新權(quán)重和偏置項(xiàng)。本文將梯度下降法和擬牛頓法中的BFGS算法相結(jié)合,在初始階段誤差比較大時(shí),采用梯度下降法,當(dāng)總誤差減小到一定程度后,采用BFGS法來(lái)訓(xùn)練,并通過(guò)Wolfe-Powell線搜索來(lái)搜索合適的步長(zhǎng),提高迭代效率。設(shè)模型參數(shù)ω={Wfh,Wfx,Wih,Wix,Woh,Wox,Wch,Wcx,Wy,bf,bi,bo,bc,by},給定它的初始值ω0;精度閾值為ε;迭代次數(shù)為j;最大迭代次數(shù)為jmax;梯度下降法轉(zhuǎn)為BFGS算法的閾值為a;D表示逆海森矩陣的近似,其初始矩陣設(shè)為D0=I,I表示單位矩陣。參數(shù)更新算法的具體步驟為:①計(jì)算模型訓(xùn)練的總誤差E(ω),以及總誤差對(duì)參數(shù)的梯度E(ω);②若E(ω)>a,則下降方向δω=-E(ω),根據(jù)線搜索得到步長(zhǎng)α,更新參數(shù)ωnew=ω+αδω,轉(zhuǎn)至步驟⑤,否則轉(zhuǎn)至步驟③;③下降方向δω=D[-E(ω)],根據(jù)線搜索得到步長(zhǎng)α,更新參數(shù)ωnew=ω+αδω;④若E(ω),則s=ωnew-ω,m=E(ωnew)-E(ω),h=Dm,k1=更新D,即Dnew=D+k2ssT-k1(shT+hsT);⑤若‖E(ω)‖>ε且j 選取2013年8月18日至2014年7月2日三峽水電站和葛洲壩水電站非棄水期間的小時(shí)運(yùn)行數(shù)據(jù),輸入變量為三峽上游鳳凰山水位、三峽左岸電站總有功、右岸電站總有功、地下電站總有功、電源電站總有功、葛洲壩大江電廠總有功、二江電廠總有功、自備電站總有功,輸出變量為葛洲壩上游5號(hào)站水位、下游7號(hào)和8號(hào)站水位,訓(xùn)練前先將數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,消除量綱的影響。圖3(a)顯示了7號(hào)站和8號(hào)站的水位走勢(shì),圖3(b)顯示了5號(hào)站的水位走勢(shì),圖4為葛洲壩入庫(kù)流量與5號(hào)站水位散點(diǎn)圖(7、8號(hào)站散點(diǎn)圖類似,不再畫(huà)出),圖5顯示了三峽水庫(kù)出庫(kù)流量與葛洲壩入庫(kù)流量之間關(guān)系。從圖4可以看出,葛洲壩入庫(kù)流量是葛洲壩上游5號(hào)站水位預(yù)測(cè)的重要影響因素,而葛洲壩入庫(kù)流量又與三峽水庫(kù)出庫(kù)流量有著緊密的聯(lián)系。從圖5可以看出,三峽水庫(kù)出庫(kù)流量和葛洲壩入庫(kù)流量呈寬帶狀分布,在相同的三峽水庫(kù)出庫(kù)流量水平下,葛洲壩入庫(kù)流量有比較大的取值區(qū)間,僅僅采用線性回歸來(lái)估計(jì)葛洲壩入庫(kù)流量會(huì)產(chǎn)生較大的誤差。另一方面,三峽和葛洲壩梯級(jí)電站的流量數(shù)據(jù)均是計(jì)算得到,本身含有一定的偏差,因此本文沒(méi)有選取流量數(shù)據(jù),而是通過(guò)水位和有功數(shù)據(jù)等實(shí)時(shí)監(jiān)測(cè)數(shù)據(jù)來(lái)間接反映流量的隱含變化。 圖3 不同站位水位走勢(shì) 圖4 葛洲壩入庫(kù)流量與5號(hào)站水位散點(diǎn)圖 圖5 三峽水庫(kù)出庫(kù)流量與葛洲壩入庫(kù)流量關(guān)系 由于三峽水庫(kù)的出庫(kù)流量到達(dá)葛洲壩壩前需要一定的時(shí)間,所以三峽水電站的水位和出力變化對(duì)葛洲壩水電站水位的影響存在一定的滯后性,當(dāng)預(yù)測(cè)葛洲壩水電站上下游水位時(shí),應(yīng)綜合之前多個(gè)時(shí)刻三峽水電站和葛洲壩水電站的出力情況以及三峽上游鳳凰山的水位數(shù)據(jù)。本文采用LSTM神經(jīng)網(wǎng)絡(luò),將歷史每60個(gè)時(shí)刻的數(shù)據(jù)通過(guò)隱含狀態(tài)引入到下6個(gè)時(shí)刻的預(yù)測(cè)之中,每個(gè)時(shí)刻的輸入為8維,隱含層為20維,輸出為3維,采用BPTT算法進(jìn)行訓(xùn)練。為了評(píng)估模型的預(yù)測(cè)效果,采用預(yù)測(cè)誤差的均值、標(biāo)準(zhǔn)差、平均絕對(duì)誤差(YMAE)和均方根誤差(YRMSE)作為評(píng)價(jià)指標(biāo),計(jì)算公式分別為 (16) (17) 表1 8號(hào)站連續(xù)6 h預(yù)測(cè)誤差的統(tǒng)計(jì)結(jié)果 表3 5號(hào)站連續(xù)6 h預(yù)測(cè)誤差的統(tǒng)計(jì)結(jié)果 從表1~表3可以看出,無(wú)論是上游5號(hào)站水位,還是下游8號(hào)站和7號(hào)站水位,誤差結(jié)果分析的各項(xiàng)指標(biāo)均隨著預(yù)見(jiàn)期的延長(zhǎng)而增大,說(shuō)明預(yù)見(jiàn)期越長(zhǎng),水位越難以準(zhǔn)確預(yù)測(cè);對(duì)于8號(hào)站和7號(hào)站,其連續(xù)6 h的預(yù)測(cè)誤差的90%分位區(qū)間基本在±0.2 m以內(nèi),而且YMAE和YRMSE值均較小,總體達(dá)到水位預(yù)測(cè)的精度要求;對(duì)于5號(hào)站,連續(xù)前3 h的預(yù)測(cè)誤差的90%分位區(qū)間控制在±0.2 m以內(nèi),但是第4到6 h的YMAE值和YRMSE值均比較大,誤差波動(dòng)性較大,這主要是因?yàn)?號(hào)站處于三峽水電站和葛洲壩水電站之間,水動(dòng)力學(xué)特性遠(yuǎn)遠(yuǎn)比下游河道復(fù)雜,所以對(duì)于5號(hào)站水位的預(yù)測(cè),建議采取連續(xù)3 h預(yù)測(cè),及時(shí)更新的方法來(lái)確保預(yù)測(cè)的有效性。 本文建立了基于LSTM神經(jīng)網(wǎng)絡(luò)的梯級(jí)電站短期水位預(yù)測(cè)模型??紤]上游電站的運(yùn)行對(duì)下游電站水位的影響以及時(shí)間的滯后性,將上游電站的水位以及出力等可觀測(cè)數(shù)據(jù)放入模型之中,并采用梯度下降法與擬牛頓算法中的BFGS方法相結(jié)合訓(xùn)練模型,Wolfe-Powell線搜索方法選取步長(zhǎng)。將模型應(yīng)用于葛洲壩水電站上下游水位預(yù)測(cè),結(jié)果表明模型實(shí)現(xiàn)了葛洲壩水電站連續(xù)6 h的下游水位準(zhǔn)確預(yù)測(cè),以及連續(xù)3 h的上游水位準(zhǔn)確預(yù)測(cè),為科學(xué)的調(diào)度決策提供了更加可靠的理論支撐。2 葛洲壩水電站上下游水位預(yù)測(cè)
2.1 數(shù)據(jù)采集及分析
2.2 水位預(yù)測(cè)
2.3 結(jié)果分析
3 結(jié) 語(yǔ)