徐 楊,劉亞新,汪 濤,孟慶社
(1.三峽水利樞紐梯級調(diào)度通信中心,湖北 宜昌 443002; 2.智慧長江與水電科學(xué)湖北省重點實驗室,湖北 宜昌 443002)
三峽工程是中國最大的水利樞紐工程,是治理和開發(fā)長江的關(guān)鍵性骨干工程,三峽主電站裝機容量為22 400 MW,機組32臺,單機容量700 MW,其中左岸、右岸、地下電站分別安裝14,12和6臺水輪發(fā)電機組,另外還有2臺單機50 MW的電源機組;三峽水庫調(diào)節(jié)庫容165億m3,防洪庫容221.5億m3,總庫容450.11億m3。三峽工程在防洪、航運及生態(tài)供水、發(fā)電等方面發(fā)揮了巨大的綜合效益。
三峽水庫上游水位代表站為鳳凰山水位站。受電站短期(小時尺度)運行約束和調(diào)度計算體系的影響,其水庫上游水位預(yù)測面臨諸多技術(shù)難題,主要表現(xiàn)為以下方面。
(1) 三峽庫區(qū)面積較大,采用反映水面線變化的動庫容方法計算得出三峽入庫流量,入庫流量采用的計算點見圖1。動庫容入庫流量與小時尺度內(nèi)的水庫上游水位存在不匹配的問題,利用水量平衡方程(通過時段初的上游水位以及該時段內(nèi)入庫流量和出庫流量計算時段末的上游水位),計算誤差較大。實際調(diào)度中,一般考慮三峽庫尾水量傳播時間為12~18 h,將動庫容入庫流量計算值后推估算靜庫容入庫流量后,再采用水量平衡方程計算上游水位。
圖1 三峽庫區(qū)多算點水位示意Fig.1 Schematic diagram of multi-point water level in the Three Gorges Reservoir Area
(2) 當(dāng)三峽水電站承擔(dān)調(diào)峰、調(diào)頻任務(wù)時,其出力和下泄流量可能發(fā)生劇烈變化,以致水庫上游水位短時間大幅度波動,基于水量平衡原理的傳統(tǒng)計算方法無法完全反映該狀態(tài)下水位的動態(tài)變化過程,預(yù)測誤差較大。
(3) 目前,三峽入庫流量的計算頻次為2 h,1 h尺度水庫出入庫計算流量數(shù)據(jù)的缺失,也導(dǎo)致基于水量平衡原理進(jìn)行預(yù)測計算的傳統(tǒng)方式失效。
為解決復(fù)雜情況下的水位預(yù)測問題,目前國內(nèi)外學(xué)者對基于長短時記憶(LSTM)模型的水位預(yù)測方法進(jìn)行了大量研究和應(yīng)用。例如,劉亞新[1]利用LSTM模型實現(xiàn)葛洲壩下游水位連續(xù)6 h和上游水位連續(xù)3 h的準(zhǔn)確預(yù)測;王亦斌[2]以南水北調(diào)工程某河流每隔1 h的瞬時流量、流速和水深監(jiān)測數(shù)據(jù)為研究對象,采用EMD-LSTM模型進(jìn)行建模,試驗結(jié)果表明,該模型能夠?qū)崿F(xiàn)水位、水速和瞬時流量連續(xù)12 h和6 h的準(zhǔn)確預(yù)測;唐鳴[3]將LSTM預(yù)測模型應(yīng)用于南水北調(diào)中線京石段的閘前水位預(yù)測,與深度神經(jīng)網(wǎng)絡(luò)(DNN)預(yù)測結(jié)果進(jìn)行了對比,結(jié)果顯示LSTM預(yù)測結(jié)果具有較高精度等??紤]到傳統(tǒng)基于水量平衡原理進(jìn)行水位預(yù)測方法的弊端,本文提出基于LSTM的短期三峽上游水位預(yù)測方法來提高復(fù)雜情況下水位預(yù)測精度,為保障三峽工程綜合效益的發(fā)揮和安全穩(wěn)定運行提供重要技術(shù)支持。
水庫水位數(shù)據(jù)為時間序列且呈非線性變化。時間序列的特點是不同時刻間的觀測值在時間維度上相互聯(lián)系,在預(yù)測方法構(gòu)建時,應(yīng)考慮這一特點并充分利用時間維的聯(lián)系,使歷史水位信息在時間維上連續(xù)傳遞。因此,本文認(rèn)為理想的方式是將多元回歸和時間序列的思想相結(jié)合,使水位預(yù)測更加準(zhǔn)確和完善。而傳統(tǒng)的多元回歸建模方法未考慮時序聯(lián)系,傳統(tǒng)的時間序列分析法處理要素單一且對非線性數(shù)據(jù)處理效果不好,因而需要尋求一種方法,能夠同時兼顧多元回歸和時間序列的思想。機器學(xué)習(xí)方法中的深度學(xué)習(xí)方法有更高的抽象能力,更適合于檢測數(shù)據(jù)中復(fù)雜、分散和細(xì)微的模式,為實現(xiàn)模型設(shè)計思想提供了可能性。根據(jù)數(shù)據(jù)特征和對深度學(xué)習(xí)網(wǎng)絡(luò)的研究,預(yù)測模型適宜使用循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)類別中的LSTM網(wǎng)絡(luò)模型來構(gòu)建,具體原因如下。
(1) LSTM網(wǎng)絡(luò)是一種具有普適性和前景的自適應(yīng)序列處理方法,其潛在應(yīng)用領(lǐng)域比其他循環(huán)神經(jīng)網(wǎng)絡(luò)更廣。
(2) 對于研究目標(biāo),由于水位是在時間維度上連續(xù)變化的量,且與歷史狀態(tài)關(guān)系密切,采用LSTM網(wǎng)絡(luò),使水位信息在逐個時間步長上記憶并傳遞顯得更為合理,實現(xiàn)了時間序列的思想。
(3) LSTM網(wǎng)絡(luò)還具有較大的靈活性,可以有多個輸入,于是可兼顧多元回歸思想,將多個影響因素與水位變化建立聯(lián)系。
本文基于LSTM模型實現(xiàn)考慮動庫容影響下的三峽水庫上游水位預(yù)測,預(yù)測尺度以1 h為步長,預(yù)見期為未來24 h。模型基于水量傳播、水位-出力之間相應(yīng)關(guān)系等物理機制,構(gòu)建預(yù)測因子,以水庫調(diào)度運行數(shù)據(jù)多元回歸的角度研究上游水位的預(yù)測,同時結(jié)合數(shù)據(jù)特征,將時間序列的思想融入其中,并借助深度學(xué)習(xí)方法,構(gòu)建了三峽水庫短期上游水位預(yù)測方法,并分析了模型預(yù)測精度。
RNN是一種本身是包含循環(huán)的特殊網(wǎng)絡(luò),可以通過其特定結(jié)構(gòu),將過去時刻的影響反映到當(dāng)前的預(yù)測之中;同時由于共享不同時刻的權(quán)值矩陣,減少了參數(shù)數(shù)目,大大提高訓(xùn)練效率,且可以處理任意長度時間序列數(shù)據(jù),因此在時間序列預(yù)測方面具有獨特優(yōu)勢。RNN結(jié)構(gòu)示意見圖2,xt為網(wǎng)絡(luò)輸入數(shù)據(jù),ht為網(wǎng)絡(luò)輸出數(shù)據(jù),A為循環(huán)神經(jīng)網(wǎng)絡(luò)。
圖2 RNN結(jié)構(gòu)示意Fig.2 RNN structure diagram
然而,普通RNN在實際應(yīng)用過程中存在長期依賴問題,即信息經(jīng)長時間或多階段傳遞后,會出現(xiàn)梯度逐漸消失和爆炸的現(xiàn)象,網(wǎng)絡(luò)無法保留所有歷史時刻的信息,從而使模型喪失了學(xué)習(xí)到更早信息的能力。
為解決這一問題,1997年Hochreiter等[4]提出了一種改進(jìn)RNN模型——LSTM網(wǎng)絡(luò),通過引入門的設(shè)置來決定控制信息的流動,取得成功。
LSTM有輸入門、遺忘門和輸出門3個門,其結(jié)構(gòu)示意如圖3所示。相比普通RNN只有一個傳輸狀態(tài),LSTM有兩個傳輸狀態(tài)ct和ht。ct表示隱含層的狀態(tài)單元;ht表示隱含層的輸出;σ和tanh表示激活函數(shù)。當(dāng)前的LSTM接收來自上一個時刻的狀態(tài)ct-1以及當(dāng)前LSTM接收的輸入xt,通過輸入門、遺忘門、輸出門操作之后,得到輸出ht[5]。
圖3 LSTM結(jié)構(gòu)示意Fig.3 Schematic diagram of LSTM structure
為確保準(zhǔn)確預(yù)測三峽水庫短期上游水位,將采用監(jiān)督學(xué)習(xí)方法,并為模型提供“輸入-目標(biāo)”序?qū)M(jìn)行訓(xùn)練。監(jiān)督學(xué)習(xí)可分為分類和回歸兩大類,由于水位是一個連續(xù)變量,且需獲取其精確值,是一個回歸問題。因此預(yù)測模型采用多元回歸與時間序列相結(jié)合的設(shè)計思想,并通過LSTM網(wǎng)絡(luò)模型實現(xiàn)該思想。
本文對2015年1月1日至2019年10月1日的白沙沱水位、忠縣水位、石寶寨水位、萬縣水位、云陽水位、奉節(jié)水位、巫山水位、巴東水位、秭歸水位、鳳凰山水位、三峽入庫流量及三峽棄水流量、三峽全廠出力數(shù)據(jù)進(jìn)行分析。
考慮三峽庫區(qū)水面線傳播對三峽壩前水位的影響、水量平衡、機組NHQ關(guān)系等物理機制,模型的輸入輸出如表1所示。
表1 模型訓(xùn)練輸入與輸出數(shù)據(jù)Tab.1 Model training input and output data
在選擇輸入數(shù)據(jù)時,從出力-流量-庫容-水位的傳統(tǒng)計算思路,將基于水量平衡所需要的全部信息作為輸入數(shù)據(jù),保證LSTM模型信息的完備。
(1) 數(shù)據(jù)歸一化。本文選用的原始數(shù)據(jù)中包含水位、流量以及出力等多種變量,具有不同的量綱和取值范圍,數(shù)值在絕對值上相差較多。而LSTM網(wǎng)絡(luò)對輸入數(shù)據(jù)的范圍格外敏感,尤其在使用激活函數(shù)時,如果不加處理直接放入模型中,將嚴(yán)重影響計算效果,因此采用最大-最小歸一化(min-max normalization)方法對數(shù)據(jù)進(jìn)行歸一化處理,將原始數(shù)據(jù)壓縮到[0,1]的區(qū)間,計算方法如下式(1)所示。
(1)
式中:Xmax為數(shù)據(jù)中的最大值,Xmin為數(shù)據(jù)中的最小值,Xi為歸一化處理后的數(shù)據(jù)。
(2) 樣本集的構(gòu)建。采用滑動窗口方法構(gòu)造“輸入-目標(biāo)”序?qū)?。由于模型?gòu)造選用前48 h的梯級電站運行狀況預(yù)測當(dāng)前時刻的梯級電站上下游水位,預(yù)測的時間跨度為24 h,因此在5 a水庫調(diào)度運行數(shù)據(jù)中,用連續(xù)72 h長度時間序列的窗口來框住部分?jǐn)?shù)據(jù),然后將窗口在該數(shù)據(jù)集系列上每滑動一個單位構(gòu)成一條樣本數(shù)據(jù),進(jìn)而組成樣本數(shù)據(jù)集。本文將上述樣本數(shù)據(jù)集的75%作為模型訓(xùn)練集,25%作為模型驗證集。
LSTM模型對輸入的三維張量的格式要求是[數(shù)據(jù)樣本(samples),時間步長(time steps),數(shù)據(jù)特征(features)]。根據(jù)樣本集構(gòu)造的特點,輸入?yún)?shù)特征值分別為:時間步長24,數(shù)據(jù)特征13。
三峽水電站上游水位預(yù)測模型采用Python和深度學(xué)習(xí)框架Keras編寫,以1層LSTM網(wǎng)絡(luò)作為隱層(hidden layer),用全連接層(Dense Layer)作為輸出層,與隱層直接相連。LSTM 層中的 batch size設(shè)置為64,epoch 設(shè)置為60,激活函數(shù)等按默認(rèn)設(shè)置,模型參數(shù)更新方法選用 Adam 算法,損失函數(shù)采用均方誤差(MSE)來衡量水位預(yù)測值和真實值之間的誤差。模型預(yù)測采用滾動預(yù)測(rolling forecast)方法。
選取絕對平均誤差(MAE)和最大誤差(MAXE)兩個統(tǒng)計量作為模型的評價指標(biāo),計算方法如下式(2)~(3)所示。
(2)
(3)
上述式中:y實測(i)為水位實測值;y預(yù)測(i)為水位預(yù)測值。絕對平均誤差(MAE)衡量模型的穩(wěn)定性,最大誤差(MAXE)衡量模型的預(yù)測精度。
以2018年三峽水庫運行數(shù)據(jù)為例,三峽上游水位(鳳凰山)預(yù)見期24 h水位連續(xù)變化過程計算水位與實測水位對比結(jié)果見圖4,其中,圖4(a)是鳳凰山水位預(yù)測值與實測值的散點圖,圖4(b)是2018年整年的預(yù)測水位過程與實測水位誤差過程的對比。
圖4 鳳凰山全年計算水位與實測水位對比Fig.4 Comparison of annual calculated water level and measured water level in Fenghuang Mountain
圖4顯示鳳凰山水位預(yù)測效果整體較好,滾動預(yù)測2018年整年水位均方根誤差為0.067 m。分別選取三峽水庫的消落期、汛期、蓄水期與高水位運行期的局部預(yù)測效果如圖5所示。
圖5 鳳凰山不同調(diào)度期水位預(yù)測效果Fig.5 Prediction effect of water level in different dispatching periods of Fenghuang Mountain
從2018年三峽消落期、汛期、蓄水期與高水位運行期的鳳凰山水位預(yù)測結(jié)果來看,從模型可以獲取各個調(diào)度期的水位變化特征,在消落期的水位降低過程和汛期的電站調(diào)峰過程中表現(xiàn)出良好的擬合精度;在蓄水期和高水位運行期也體現(xiàn)了水位變化的主要趨勢,但是呈現(xiàn)出明顯的鋸齒波動特征,這是下一步模型改進(jìn)的方向。
三峽水庫承擔(dān)著重要的綜合利用任務(wù),保障梯級電站的安全穩(wěn)定運行至關(guān)重要,因此不但要評估模型計算結(jié)果的誤差均值,更要評估模型的最大誤差。通過不同預(yù)見期的最大誤差判斷模型在幾個小時內(nèi)的預(yù)測結(jié)果是可信的、水庫調(diào)度為此要預(yù)留出多大的水位空間。
為直觀反映不同預(yù)見期水位預(yù)測誤差的分布,繪制了水位預(yù)測誤差的箱型圖,如圖6所示。具體步驟為:① 將預(yù)見期相同的水位預(yù)測誤差從大到小排列,分別計算該系列上四分位數(shù),中位數(shù),下四分位數(shù);② 計算得到四分位距;③ 上下極限分別取1.5倍四分位距值;④ 上下極限之外的數(shù)值被定義為異常值,用箱體外部的圓點表示;⑤ 中位數(shù)在箱體中間用短線表示;⑥ 均值在箱體內(nèi)部用圓點表示。
圖6 箱型圖示意Fig.6 Schematic diagram of box type
不同預(yù)見期水位預(yù)測誤差分散情況和分布特征如圖7所示,2018年整年鳳凰山水位,預(yù)測誤差上四分位數(shù)在24 h預(yù)測期內(nèi)均低于0.2 m,最大誤差低于0.4 m,預(yù)測效果較好。
圖7 鳳凰山水位1 h尺度預(yù)測誤差分布箱型Fig.7 Box diagram of 1-hour scale prediction error distribution of Fenghuangshan water level
為了分析模型在各個調(diào)度期的預(yù)測效果,按照三峽調(diào)度規(guī)程將1 a劃分為4個調(diào)度期,分別為:消落期(1月1日至6月10日)、汛期(6月10日至9月10日)、蓄水期(9月10日至10月31日)和高水運行期(10月31日至12月31日)。鳳凰山水位預(yù)測誤差各調(diào)度期分布餅狀圖見圖8。
圖8 鳳凰山水位預(yù)測誤差分布餅狀圖Fig.8 Pie chart of water level prediction error distribution in Fenghuang Mountain
由圖8可知,鳳凰山水位高于0.2 m的預(yù)測誤差主要發(fā)生在汛期,此時三峽上游水位受動庫容影響較大,容易造成上游水位預(yù)測誤差。
準(zhǔn)確預(yù)測水位是保障三峽工程綜合效益發(fā)揮的重要支撐。本文分析了三峽水庫短期上游水位預(yù)測面臨的技術(shù)難題和現(xiàn)有水位預(yù)測方法的弊端,根據(jù)水庫的水位數(shù)據(jù)為時間序列且呈非線性變化的特性,考慮三峽動庫容、調(diào)峰及流量計算密度不夠等影響,提出基于LSTM算法的水位預(yù)測方法思路,構(gòu)建了三峽水庫短期上游水位預(yù)測模型,并采用2018年三峽水庫實際運行數(shù)據(jù)進(jìn)行了模擬計算。結(jié)果表明:該方法全年水位預(yù)測誤差上四分位數(shù)在24 h預(yù)測期內(nèi)均低于0.2 m,最大誤差低于0.4 m,預(yù)測效果較好,復(fù)雜情況下較傳統(tǒng)方法水位過程預(yù)測精度提升較多,可在三峽水庫實時調(diào)度中得到應(yīng)用。后期可進(jìn)一步加強LSTM等深度學(xué)習(xí)模型的應(yīng)用,優(yōu)化模型輸入輸出,改善目前模型蓄水期和高水位運行期水位預(yù)測呈現(xiàn)明顯鋸齒波動特征的計算結(jié)果。