張 森,謝 帥,王永強(qiáng),徐 楊,肖蘊(yùn)珂
(1.長(zhǎng)江科學(xué)院水資源綜合利用研究所,湖北 武漢 430010;2.流域水資源與生態(tài)環(huán)境科學(xué)湖北省重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430010;3.三峽水利樞紐梯級(jí)調(diào)度通信中心,湖北 宜昌 443002)
耗水率指水電站總出力與發(fā)電流量的比值,是電站經(jīng)濟(jì)運(yùn)行的重要參數(shù)。電站經(jīng)濟(jì)運(yùn)行計(jì)算分為以水定電和以電定水,其運(yùn)行精確程度與電站壩前水位與尾水位預(yù)測(cè)精度有重要聯(lián)系。在水電站水位預(yù)測(cè)中,當(dāng)前多使用耗水率經(jīng)驗(yàn)曲線進(jìn)行計(jì)算,其問(wèn)題在于隨著電站運(yùn)行時(shí)間的延長(zhǎng),初期試驗(yàn)所測(cè)各變量以及變量間相關(guān)關(guān)系會(huì)發(fā)生較大變化,無(wú)法為水位預(yù)測(cè)等提供精確基礎(chǔ)數(shù)據(jù),難以匹配電網(wǎng)實(shí)時(shí)調(diào)控需求[1]。
近年來(lái),機(jī)器學(xué)習(xí)與深度學(xué)習(xí)等人工智能算法在水電站應(yīng)用成為熱點(diǎn)[2],機(jī)器學(xué)習(xí)方法憑借其強(qiáng)大的變量擬合能力,提供了新思路來(lái)克服傳統(tǒng)水位預(yù)測(cè)框架無(wú)法精確描述變量函數(shù)關(guān)系的缺點(diǎn)[3]。劉濤等[4]學(xué)者使用LassoLarsCV模型對(duì)長(zhǎng)壽站的壩前水位做出了回歸計(jì)算,將預(yù)測(cè)誤差控制在1.2 m以內(nèi);徐楊等[5]學(xué)者采用BP神經(jīng)網(wǎng)絡(luò)模型構(gòu)建了非棄水期的下游水位預(yù)測(cè)方法,應(yīng)用于葛洲壩水位預(yù)測(cè)中,取得了高精度的預(yù)測(cè)效果;紀(jì)國(guó)良等[6]學(xué)者采用循環(huán)神經(jīng)網(wǎng)絡(luò)系統(tǒng),學(xué)習(xí)入庫(kù)流量和壩前水位到目標(biāo)站點(diǎn)水位的映射關(guān)系,取得了優(yōu)于水力學(xué)模型的站點(diǎn)水位預(yù)測(cè)結(jié)果;賈本軍等[7]借助SVR算法探究了電站尾水位的關(guān)鍵影響變量以及計(jì)算特性。
綜上所述,諸多學(xué)者的研究側(cè)重于在研究變量響應(yīng)關(guān)系的基礎(chǔ)上,算法在預(yù)測(cè)問(wèn)題中的直接應(yīng)用。而使用算法進(jìn)一步探究水位預(yù)測(cè)中關(guān)鍵變量的影響因素與擬合方法,并探究其對(duì)水位預(yù)測(cè)影響的研究卻較少,且對(duì)水電站精細(xì)化運(yùn)行有著重要意義。因此本文基于傳統(tǒng)水量平衡方法的水位預(yù)測(cè)框架,構(gòu)建出2 h時(shí)段三峽水位預(yù)測(cè)模型,在此基礎(chǔ)上使用機(jī)器學(xué)習(xí)的不同算法提高耗水率,尾水位的計(jì)算精度,進(jìn)而提高水位預(yù)測(cè)精度,得出該改進(jìn)對(duì)上下游水位預(yù)測(cè)帶來(lái)的影響。
圖1為三峽水位計(jì)算要素圖與計(jì)算流程,可將其劃分為上游部分、水壩部分、下游部分3個(gè)環(huán)節(jié)。上游計(jì)算環(huán)節(jié)是水位-庫(kù)容的轉(zhuǎn)換計(jì)算,庫(kù)容的計(jì)算即水量平衡方程為
圖1 三峽水位計(jì)算示意
(1)
Vt-1+(Qif-Qele-Qa)Δt=Vt
(2)
第2環(huán)節(jié)依據(jù)毛水頭計(jì)算耗水率,耗水率與水電站規(guī)劃出力乘積即為出庫(kù)流量,反饋至第一部分水量平衡方程計(jì)算時(shí)段末庫(kù)容和時(shí)段末壩前水位。第3環(huán)節(jié)下游計(jì)算通過(guò)出庫(kù)流量計(jì)算尾水位。耗水率的計(jì)算精度與時(shí)段平均出庫(kù)流量精度直接關(guān)聯(lián),參與到水量平衡計(jì)算之中,進(jìn)而影響到時(shí)段末預(yù)測(cè)水位的精度。計(jì)算公式為
(3)
Qele=τNt
(4)
(5)
基于上述的計(jì)算思路和公式,可以構(gòu)建出基于水量平衡的時(shí)段迭代水位計(jì)算模型,目前電站對(duì)模型中式(3)與式(5)的計(jì)算依賴(lài)于經(jīng)驗(yàn)曲線,計(jì)算耗水率使用毛水頭-耗水率經(jīng)驗(yàn)曲線,計(jì)算下游水位使用出庫(kù)流量-尾水位經(jīng)驗(yàn)曲線,而耗水率的計(jì)算精度決定出庫(kù)流量的計(jì)算精度,因此耗水率高精度計(jì)算是提高水位預(yù)測(cè)精度的基礎(chǔ);提高尾水位計(jì)算精度不僅是提高耗水率擬合精度的支撐,也是水位預(yù)測(cè)問(wèn)題的目標(biāo)之一。針對(duì)兩經(jīng)驗(yàn)曲線計(jì)算誤差大的問(wèn)題,本文提出,在水量平衡法模型的基礎(chǔ)上使用機(jī)器學(xué)習(xí)算法,替換耗水率、尾水位計(jì)算使用的經(jīng)驗(yàn)曲線法,以提高三峽水位預(yù)測(cè)的精度。
機(jī)器學(xué)習(xí)是一種新的編程范式,根據(jù)大量特征變量與對(duì)應(yīng)目標(biāo)值,模型將按照自身規(guī)則框架進(jìn)行學(xué)習(xí)訓(xùn)練,得到變量相關(guān)關(guān)系與權(quán)重參數(shù)。不同機(jī)器學(xué)習(xí)算法有著不同規(guī)則框架,需根據(jù)計(jì)算情景做出選擇[8]。
電站出庫(kù)流量是影響電站尾水位的關(guān)鍵因素。下游水庫(kù)的水位和區(qū)間來(lái)水會(huì)對(duì)本水庫(kù)的尾水位有頂托作用,因此需將三峽下游的葛洲壩電站上游水位也作為變量考慮在內(nèi),三者的關(guān)系可以表示為
(6)
模型中耗水率擬合方法是毛水頭-耗水率曲線插值。這一曲線的原理是水電站出力計(jì)算的NHQ公式,表示為
N=KQH
(7)
(8)
式中,N為時(shí)段平均出力;Q為發(fā)電流量;H是時(shí)段平均毛水頭;K為系數(shù),與機(jī)組效率有關(guān)。經(jīng)驗(yàn)曲線認(rèn)為τ與H相關(guān)關(guān)系顯著,因此使用毛水頭作為耗水率的查值判斷條件。實(shí)際上耗水率的擬合需考慮不同工況導(dǎo)致K值的變化,對(duì)此類(lèi)影響因素多且復(fù)雜的擬合關(guān)系,可采用SVR(支持向量回歸)或KNN(K近鄰分類(lèi))算法進(jìn)行擬合,考慮的變量有時(shí)段調(diào)峰、時(shí)段出力、毛水頭、三峽上下游時(shí)段平均水位。
耗水率的擬合比較了SVR和KNN兩種算法。支持向量回歸(SVR)是支持向量機(jī)(SVM)的延申[9],SVM是一種二分類(lèi)算法,即在高維空間的樣本點(diǎn)集中獲取一個(gè)超平面,使不同類(lèi)別的樣本點(diǎn)距離該超平面最遠(yuǎn),目標(biāo)函數(shù)為
(9)
支持向量回歸正相反,其目標(biāo)超平面要使得各個(gè)點(diǎn)距離其最近,以此認(rèn)為該超平面能夠描述點(diǎn)集分布特征規(guī)律。K近鄰回歸(KNN)本質(zhì)則是一種多項(xiàng)分類(lèi)[10],原理為根據(jù)給定的多個(gè)類(lèi),及其對(duì)應(yīng)特征值,構(gòu)建高緯數(shù)據(jù)點(diǎn)集,當(dāng)輸入某個(gè)未知類(lèi)的特征值時(shí),計(jì)算距離其歐氏距離最近k個(gè)數(shù)據(jù)點(diǎn),以k個(gè)數(shù)據(jù)點(diǎn)中最多的類(lèi)別作為未知類(lèi)的類(lèi)別[11]。當(dāng)模型以耗水率所對(duì)應(yīng)的特征變量為類(lèi)的特征值,耗水率值為類(lèi)本身構(gòu)建高維數(shù)據(jù)點(diǎn)集,就可以從廣泛的樣本中尋找到最符合當(dāng)前機(jī)組工況的耗水率值,其訓(xùn)練速度快,計(jì)算方便,對(duì)樣本充足,變化范圍小的計(jì)算目標(biāo)變量有著很高的計(jì)算精確度。2種模型構(gòu)建時(shí)使用相同的數(shù)據(jù)集,目標(biāo)變量為耗水率,特征變量采用時(shí)段調(diào)峰、時(shí)段出力、毛水頭、三峽上下游時(shí)段平均水位。
SVR模型構(gòu)建主要考慮核函數(shù)、gamma參數(shù)與正則化系數(shù)[12],可在構(gòu)建模型后,從數(shù)據(jù)集中隨機(jī)取數(shù),采用不同參數(shù)做交叉檢驗(yàn),使用最好擬合效果的參數(shù)進(jìn)行建模,最終確定SVR模型核函數(shù)選為rbf,gamma參數(shù)選為scale,正則化系數(shù)為0。KNN算法訓(xùn)練速度快且參數(shù)簡(jiǎn)單,可以直接使用整體數(shù)據(jù)集來(lái)訓(xùn)練尋優(yōu),得出結(jié)論模型的K值選為3,算法選擇kd_tree時(shí)具有最好效果。預(yù)測(cè)效果采用平均誤差MAE與最大誤差MAXE來(lái)評(píng)判,如表1所示。
表1 KNN方法、SVR方法、曲線插值法計(jì)算耗水率平均誤差與最大誤差
三峽的耗水率平均值為11.7,使用插值方法平均誤差為1.59,KNN方法平均誤差為0.063,SVR方法平均誤差為0.242。本實(shí)驗(yàn)驗(yàn)證集使用了2 100組數(shù)據(jù),訓(xùn)練集使用了18 900組數(shù)據(jù),大量訓(xùn)練集數(shù)據(jù)保證了KNN算法的整體準(zhǔn)確率,相對(duì)于SVR方法和曲線插值法在整體上有著很優(yōu)秀的預(yù)測(cè)成果。3種方法進(jìn)行整體對(duì)比后本文選取KNN算法作為耗水率的率定方法。
尾水位的計(jì)算采用的是機(jī)器學(xué)習(xí)中的多元線性回歸(Linear Regression)[13],這是一種較為簡(jiǎn)單的回歸模型,認(rèn)為所輸入的特征變量關(guān)系為加權(quán)平均,數(shù)據(jù)清洗校正,去除異常值后,將訓(xùn)練計(jì)算經(jīng)過(guò)特征化后的變量的權(quán)重以完成擬合。本次回歸計(jì)算的特征變量有三峽電站出力、三峽電站出庫(kù)流量,以及下游的葛洲壩水電站的上游水位,以減小因?yàn)橄掠雾斖兴鶐?lái)的計(jì)算誤差??紤]到3者的可能存在的相關(guān)關(guān)系可能較為復(fù)雜,在使用Polynomial Features函數(shù)對(duì)訓(xùn)練數(shù)據(jù)做特征轉(zhuǎn)化時(shí),分別對(duì)特征值多項(xiàng)式次數(shù)(degree)為1~5時(shí)做了測(cè)試,得到結(jié)果見(jiàn)表2。
表2 機(jī)器學(xué)習(xí)多項(xiàng)式回歸不同degree值計(jì)算尾水位平均誤差與最大誤差 m
當(dāng)次數(shù)在2、3、4時(shí)計(jì)算精度大致相同,而次數(shù)增加到5則由于特征數(shù)由34變?yōu)?5增幅過(guò)大,影響回歸判斷,導(dǎo)致誤差突增。最終選取degree為3時(shí)的訓(xùn)練成果與預(yù)測(cè)效果來(lái)和曲線查值法的預(yù)測(cè)效果進(jìn)行比較,觀察其改進(jìn)程度,結(jié)果如表3所示。
表3 水位平均誤差與最大誤差 m
相比于此前物理模型中采用的曲線插值,機(jī)器學(xué)習(xí)的計(jì)算下游水位的整體誤差由0.269 m縮小到0.126 m,最大誤差由1.261 m縮小到1.068 m。整體計(jì)算精度有較大提升,最大誤差有一定縮減,能夠?yàn)樘岣呷龒{壩前水位預(yù)測(cè)提供一定支持。
在使用機(jī)器學(xué)習(xí)方法分別構(gòu)建了耗水率和尾水位計(jì)算模型后,將二者應(yīng)用于前文所述的水量平衡方法的水位預(yù)測(cè)模型中,以替換經(jīng)驗(yàn)曲線查值方法,并對(duì)替換前后模型的計(jì)算結(jié)果進(jìn)行分析。
使用基于水量平衡計(jì)算框架構(gòu)建的水位計(jì)算模型,不替換耗水率和尾水位的計(jì)算方法,選取2020年~2022年這3年對(duì)三峽壩前水位進(jìn)行2 h時(shí)段預(yù)測(cè)。計(jì)算所使用的數(shù)據(jù)包括三峽上下游代表站整點(diǎn)水位數(shù)據(jù)、時(shí)段平均出力與流量數(shù)據(jù),以及特征曲線。特征曲線包括水庫(kù)庫(kù)容-壩前水位曲線、毛水頭-耗水率曲線、出庫(kù)流量-尾水位曲線,所有數(shù)據(jù)均取自于三峽電站歷史運(yùn)行數(shù)據(jù)記錄。誤差的評(píng)價(jià)指標(biāo)采用平均絕對(duì)誤差(MAE)與最大絕對(duì)誤差(MAXE),公式為
(10)
MAXE=max(|ymeasure(i)-yestimate(i)|)
(11)
式中,ymeasure為測(cè)量得到的實(shí)際值;yestimate為計(jì)算值。
三峽電站汛期為6月~9月,結(jié)果顯示,大幅度誤差集中在這一時(shí)段。水庫(kù)的入庫(kù)流量較大,受調(diào)峰影響,導(dǎo)致耗水率、發(fā)電流量預(yù)測(cè)誤差偏大,引起水位預(yù)測(cè)不準(zhǔn)確。選取2022年誤差分布圖,按汛期和非汛期進(jìn)行展示如圖2所示。表4為壩前水位和尾水位計(jì)算的平均絕對(duì)誤差(MAE)與最大絕對(duì)誤差(MAXE)。圖3為不同區(qū)間的誤差占比分布。
表4 傳統(tǒng)模型水位預(yù)測(cè)誤差統(tǒng)計(jì)值 cm
圖2 傳統(tǒng)模型預(yù)測(cè)壩前水位與尾水位誤差分布
圖3 2022年傳統(tǒng)模型預(yù)測(cè)三峽水位誤差分布
與真實(shí)值相比,2020年~2022年水量平衡模型耗水率平均絕對(duì)誤差(MAE)為0.137,最大絕對(duì)誤差(MAXE)為1.371。誤差分布如圖4所示。
圖4 傳統(tǒng)模型擬合耗水率誤差分布
三峽電站耗水率分布為10到15,計(jì)算結(jié)果表明,耗水率最大絕對(duì)誤差為1.37,所對(duì)應(yīng)耗水率值為13.8,誤差幅度約10%,耗水率平均值為13.2,平均絕對(duì)誤差幅度為平均耗水率的1%。
使用上述機(jī)器學(xué)習(xí)方法代替了模型中的經(jīng)驗(yàn)曲線后,同樣將模型應(yīng)用于三峽水電站的2 h時(shí)段水位預(yù)測(cè)中,計(jì)算2020年~2022年這3個(gè)年份的數(shù)據(jù),以2022年為代表,劃分汛期與非汛期展示如圖5。
圖5 機(jī)器學(xué)習(xí)改進(jìn)模型計(jì)算三峽壩前水位與尾水位誤差
表5為改進(jìn)后模型計(jì)算三峽水位誤差值統(tǒng)計(jì),表6、7為三峽大壩前、尾水位改進(jìn)前后年均誤差對(duì)比。從表中可知,三峽壩前水位預(yù)測(cè)精度的提升較小,MAE降低幅度約為10%。尾水位的計(jì)算精度提高明顯,MAE由102 cm降低至11.37 cm,MAXE由521 cm降低至101 cm,誤差降低幅度約88%。
表5 機(jī)器學(xué)習(xí)改進(jìn)模型預(yù)測(cè)三峽水位誤差 cm
表6 模型改進(jìn)前后三峽壩前水位預(yù)測(cè)誤差對(duì)比 cm
表7 模型改進(jìn)前后三峽尾水位預(yù)測(cè)誤差對(duì)比 cm
計(jì)算結(jié)果表明,借助機(jī)器學(xué)習(xí)改進(jìn)模型后對(duì)壩前水位和尾水位有不同幅度的提升。為了探究耗水率計(jì)算方法改進(jìn)對(duì)水位預(yù)測(cè)計(jì)算帶來(lái)的具體影響,以及計(jì)算誤差來(lái)源,對(duì)改進(jìn)前后的耗水率、出庫(kù)流量這兩個(gè)重要變量進(jìn)行輸出分析。
對(duì)計(jì)算過(guò)程中耗水率的計(jì)算進(jìn)行輸出,誤差分布對(duì)比如圖6,誤差統(tǒng)計(jì)如表8所示。
表8 機(jī)器學(xué)習(xí)改進(jìn)前后耗水率計(jì)算誤差分布對(duì)比
從表6~8、圖6可知,改進(jìn)后模型計(jì)算耗水率MAE降低約64%,計(jì)算年份內(nèi)三峽電站平均耗水率為11.17,改進(jìn)前MAE為其1.2%,改進(jìn)后MAE為0.43%。出庫(kù)流量誤差統(tǒng)計(jì)分布表如表9所示。棄水為0的情況下,耗水率與出庫(kù)流量為正比,出庫(kù)流量的平均絕對(duì)誤差也將會(huì)降低與耗水率相應(yīng)的幅度。
表9 機(jī)器學(xué)習(xí)改進(jìn)前后出庫(kù)流量計(jì)算誤差對(duì)比 m3/s
輸出三峽壩前水位計(jì)算過(guò)程中,三峽出庫(kù)流量誤差分布情況如圖7所示,誤差分布統(tǒng)計(jì)值如表9。
圖7 傳統(tǒng)模型與機(jī)器學(xué)習(xí)改進(jìn)模型計(jì)算出庫(kù)流量誤差分布
改進(jìn)前后的模型計(jì)算出庫(kù)流量的MAE分別為205.62 m3/s與61 m3/s,最大誤差分別為2 211 m3/s和1 313 m3/s。二者降低幅度都較為顯著,與耗水率誤差的降低幅度契合。表10反映了模型計(jì)算得到的年均出庫(kù)流量與真實(shí)值的差距,改進(jìn)后的模型年均出庫(kù)流量計(jì)算值與平均值最大不超過(guò)4 m3/s。
表10 年均出庫(kù)流量真實(shí)值與模型改進(jìn)前后計(jì)算值對(duì)照 m3/s
模型計(jì)算得到的上游水位平均值與真實(shí)上游水位平均值對(duì)比如表11所示。
表11 年均上游水位真實(shí)與模型改進(jìn)前后計(jì)算值對(duì)照 m
從表11可知,年內(nèi)平均上游水位誤差由2 cm左右降低到了不超過(guò)4 mm。
本文的預(yù)測(cè)時(shí)段為2 h,出庫(kù)流量的平均絕對(duì)誤差降低了144 m3/s,這一值在2 h時(shí)段上引發(fā)的水量誤差約為103.7萬(wàn)m3。根據(jù)三峽的水位庫(kù)容曲線,壩前水位在161 m時(shí),提高10 cm水位庫(kù)容約增大5 000萬(wàn)m3,103萬(wàn)m3的水量對(duì)水位約造成2~3 mm的影響。與上文得到的平均水位絕對(duì)誤差降低幅度相符合。
改進(jìn)后模型將計(jì)算過(guò)程中的耗水率、出庫(kù)流量計(jì)算誤差降低60%以上,出庫(kù)流量的計(jì)算精度提高以及尾水位計(jì)算方法的改進(jìn),使三峽尾水位計(jì)算絕對(duì)平均誤差降低約88%。同時(shí),以年尺度來(lái)看,計(jì)算平均水位與真實(shí)平均水位僅有最多0.4 cm誤差。這表明改進(jìn)模型在計(jì)算方法改進(jìn)層面取得了較好的效果。壩前水位計(jì)算平均絕對(duì)誤差降低10%,在耗水率、出庫(kù)流量計(jì)算精確度顯著提高的情況下,應(yīng)進(jìn)一步考慮由于動(dòng)庫(kù)容導(dǎo)致的庫(kù)容-壩前水位經(jīng)驗(yàn)曲線不準(zhǔn)確問(wèn)題所引起的誤差。
本文以三峽電站為對(duì)象提出了基于機(jī)器學(xué)習(xí)的精細(xì)化計(jì)算方法,通過(guò)模擬對(duì)比分析,所提出的方法對(duì)二者的擬合精度有顯著提升效果。在三峽2 h時(shí)段水位預(yù)測(cè)中,降低耗水率預(yù)測(cè)誤差60%以上;壩前水位的誤差控制在44 cm以內(nèi),平均絕對(duì)誤差降低約12%;尾水位誤差控制在1 m以內(nèi),平均絕對(duì)誤差降低約88%以上??蔀槿龒{電站發(fā)電計(jì)劃編制和廠內(nèi)經(jīng)濟(jì)運(yùn)行提供較好的支撐。