何 偉,石靜濤,萬 俊,萬 飚,于耀翔
(1. 安康水力發(fā)電廠,陜西 安康 725000; 2. 武漢大學(xué)水資源與水電工程科學(xué)國家重點實驗室,湖北 武漢 430072)
可靠的洪水預(yù)報是做好水庫防洪發(fā)電調(diào)度的前提,因此水庫洪水預(yù)報系統(tǒng)是整個防洪和發(fā)電調(diào)度決策系統(tǒng)的核心組成部分[1]。傳統(tǒng)上基于水文模型來進行洪水預(yù)報,由于水文模型(例如新安江模型、API模型)結(jié)構(gòu)及參數(shù)所限,難以完全反映水文規(guī)律,故預(yù)報精度往往不夠理想[2]。隨著大數(shù)據(jù)分析技術(shù)和深度學(xué)習(xí)智能算法的完善,大數(shù)據(jù)分析技術(shù)、人工智能算法在水文學(xué)領(lǐng)域的研究則剛剛起步[3-4]。本文基于長短時記憶神經(jīng)網(wǎng)絡(luò)(Long Short-Term Memory, LSTM)的理論在安康水庫洪水預(yù)報中進行了有益的嘗試,得到了滿意的結(jié)果。
新安江模型是河海大學(xué)趙人俊教授提出的一個較為完整的概念性流域水文模型[5],其三水源新安江模型在我國濕潤和半濕潤地區(qū)得到了廣泛的應(yīng)用,并且取得了較好的效果[6]。作為與LSTM數(shù)據(jù)驅(qū)動模型[7]的比較,下面分別介紹新安江產(chǎn)匯流模型和LSTM數(shù)據(jù)驅(qū)動模型。
新安江三水源產(chǎn)流計算主要由蓄滿產(chǎn)流計算、流域水源劃分和流域蒸散發(fā)計算三部分組成,如圖1中產(chǎn)流計算模塊所示。
匯流計算針對地面徑流、壤中流和地下徑流,分別采用不同的匯流計算方法,由圖1中匯流計算模塊所示。
圖1 新安江產(chǎn)匯流模型計算框圖
基于圖1所示的新安江產(chǎn)匯流模型計算框圖,可見,新安江產(chǎn)匯流模型的關(guān)鍵是要率定好產(chǎn)匯流計算中所涉及的多項參數(shù),本文針對安康水庫特點,將安康水庫以上流域劃分為兩個分區(qū),即石泉水庫以上流域和石泉-安康區(qū)間。
LSTM數(shù)據(jù)驅(qū)動模型同其他神經(jīng)網(wǎng)絡(luò)模型一樣,需要首先搭建網(wǎng)絡(luò)模型,再傳入相應(yīng)的數(shù)據(jù)進行計算。本文選用TensorFlow框架來搭建LSTM模型[8],即直接調(diào)用高級API接口Keras,LSTM模型搭建過程步驟如下:
1)數(shù)據(jù)預(yù)處理。對流量、蒸發(fā)和降雨數(shù)據(jù)進行歸一化處理。
2)輸入層參數(shù)。上游水庫的出庫徑流、流域平均降雨、流域平均蒸發(fā)、之前時刻的入庫徑流等。
3)LSTM網(wǎng)絡(luò)結(jié)構(gòu)。兩層LSTM層加一層全連接層,激活函數(shù)選用relu。
4)損失函數(shù)。均方誤差損失(MSE)。
5)優(yōu)化器。Adam算法。
6)其他參數(shù)。如訓(xùn)練樣本個數(shù),收斂迭代次數(shù)等。
7)LSTM計算結(jié)構(gòu)。輸入前n個時段的特征值向量,計算第n+1個時段的目標(biāo)值,其計算框圖如圖2所示。
圖2 LSTM數(shù)據(jù)驅(qū)動模型計算框圖
本文研制的系統(tǒng)軟件服務(wù)于水庫洪水預(yù)報專業(yè)人員,服務(wù)于企業(yè)內(nèi)部系統(tǒng),業(yè)務(wù)功能純粹,人機交互用戶體驗要求較高,計算量大,因此,本系統(tǒng)采用經(jīng)典的B/S結(jié)構(gòu)模式,見圖3。用戶通過終端設(shè)備將請求發(fā)送給專用服務(wù)器進行處理,并將業(yè)務(wù)數(shù)據(jù)統(tǒng)一存儲到后臺數(shù)據(jù)庫中,便于其他系統(tǒng)獲取預(yù)報結(jié)果數(shù)據(jù)并發(fā)布信息。B/S結(jié)構(gòu)無需安裝客戶端,軟件升級方便,跨平臺、跨網(wǎng)絡(luò)訪問更容易。
圖3 洪水預(yù)報系統(tǒng)物理結(jié)構(gòu)圖
為方便洪水預(yù)報的實施,系統(tǒng)軟件共分為八大功能模塊:
1)首頁。反映雨量站、水文站測站分布情況。
2)原始數(shù)據(jù)獲取。從其它數(shù)據(jù)庫讀取雨量、水位、流量等原始數(shù)據(jù)。
3)預(yù)報數(shù)據(jù)準(zhǔn)備。對預(yù)報用到的實時數(shù)據(jù)進行整理、計算與處理,為洪水預(yù)報做好數(shù)據(jù)準(zhǔn)備。
4)新安江模型。該功能模塊又分為兩個部分,①可實現(xiàn)對日徑流進行模擬預(yù)報、實時預(yù)報,兩者的區(qū)別在于模擬預(yù)報采用實際發(fā)生的真實日數(shù)據(jù),而實時預(yù)報用到的數(shù)據(jù)前段是真實日數(shù)據(jù),后段是預(yù)估日數(shù)據(jù)(例如:區(qū)間面雨量,上游水庫出庫流量等)。②可實現(xiàn)對小時洪水進行模擬預(yù)報、實時預(yù)報以及實時檢驗。對歷史洪水進行模擬預(yù)報的目的是檢驗?zāi)P途?;對實時洪水可進行實時預(yù)報并隨時對已發(fā)生的洪水過程進行實時檢驗,及時預(yù)報了解誤差并進行實時修正。
5)智能預(yù)報。同樣,智能預(yù)報功能模塊也分為兩個部分,即:日徑流預(yù)報和洪水預(yù)報,其作用與新安江模型相同,僅僅用到的預(yù)報模型不一樣,兩個模型進行預(yù)報也便于方案比較。
6)預(yù)報方案管理。對實時洪水所做的實時預(yù)報方案進行比較與評定。
7)數(shù)據(jù)庫維護。對原始數(shù)據(jù)表、中間計算數(shù)據(jù)表、結(jié)果數(shù)據(jù)表可進行編輯修改。
8)用戶管理。對訪客、預(yù)報員、管理員等身份進行權(quán)限管理。
本系統(tǒng)基于B/S結(jié)構(gòu)模式開發(fā),在系統(tǒng)服務(wù)器端采用LINUX操作系統(tǒng)和MySQL數(shù)據(jù)庫系統(tǒng);在客戶端建議使用Google Chrome瀏覽器。系統(tǒng)軟件開發(fā)工具主要使用Python和Java,系統(tǒng)界面采用Java開發(fā),后端的模型計算采用Python編寫。系統(tǒng)軟件界面如圖4所示,該圖左欄反映了本系統(tǒng)中的具體八個功能模塊。
圖4 洪水預(yù)報系統(tǒng)軟件界面
兩種模型分別對21場洪水的模擬預(yù)報結(jié)果比較情況見表1,部分場次洪水模擬預(yù)報過程見圖5。
表1 21場次洪水模擬預(yù)報結(jié)果對比表
圖5 兩種模型部分場次洪水模擬預(yù)報對比圖
以20200616-0619作為示例計算時段,分別采用兩種模型進行實時洪水預(yù)報,將計算結(jié)果進行對比,時間段分別為1 d、2 d和3 d。如表2及圖6所示。
表2 兩種模型不同時段預(yù)報檢驗效果對比表(20200616-0619)
1)模擬預(yù)報結(jié)果表明:LSTM模型的指標(biāo)除了20161025和20170924這兩場洪水以外,其它場次洪水均要好于新安江模型。特別是確定性系數(shù)和洪量誤差均要好于新安江模型,其合格率均達到90%以上。
2)實時預(yù)報結(jié)果表明:通過對1 d、2 d和3 d的實時預(yù)報檢驗,兩種模型的確定性系數(shù)、洪峰誤差、洪量誤差以及洪水過程,LSTM模型均好于新安江模型。
1)LSTM模型模擬預(yù)報的結(jié)果確定性系數(shù)和洪量誤差均要好于新安江模型,前者合格率達到90.5%,后者合格率僅達到81%。
2)LSTM模型1 d、2 d和3 d的實時預(yù)報檢驗結(jié)果確定性系數(shù)、洪峰誤差、洪量誤差以及過程均好于新安江模型。由此可見,在場次洪水實時預(yù)報時,LSTM模型自帶實時預(yù)報滾動修正功能,實時預(yù)報效果更好。
3)通過對安康水庫洪水預(yù)報模擬計算、模擬預(yù)報、實時預(yù)報2類模型,8種計算模式的研究及驗證,LSTM模型比新安江模型達到更高的精度,說明LSTM模型完全可以用于安康水庫洪水預(yù)報的實際操作。因此,該項目的研究具有理論價值及應(yīng)用價值。
4)安康水庫智能化洪水預(yù)報系統(tǒng)軟件采用目前計算機領(lǐng)域最流行的B/S結(jié)構(gòu)模式開發(fā),雖然開發(fā)難度較大,但使用及維護更方便。因此,該項目在水文預(yù)報專業(yè)領(lǐng)域具有先進性和實用性。