, ,
(1.甘肅省水文水資源局,甘肅 蘭州 730000;2.甘肅省張掖水文水資源勘測局,甘肅 張掖 734000)
多年來,黑河鶯落峽水文站工作人員在龍電渠流量測驗中,常規(guī)測驗方法采用的是流速儀測流法,測驗方案是“五線五點”法。流量推求方法采用的是臨時曲線法推流,即將實測流量點繪在水位流量關系坐標圖紙上,再用專用的曲線尺(俗稱“大刀”尺)繪出關系曲線,繼而在曲線上用觀測水位讀取流量。在實際應用時,這種方法極度容易受到水力因素不穩(wěn)定變化的影響,出現(xiàn)多條平行或者繩套曲線,從而降低了流量推測值的精度。程建忠[1]等對黑河龍電渠測驗斷面的流速分布做了研究,其結(jié)論是根據(jù)不同的水情選取不同位置、不同流速系數(shù)來獲取相對準確的斷面平均流速;王二平[2]等對矩形明渠流速分布規(guī)律做了實驗研究,最終得出通過測量某條測線特征點流速,推求出垂線平均流速,繼而推求出斷面平均流速。但是這兩種方法都沒有改變傳統(tǒng)的流量推測方法,僅是在測驗方案上提出了改進建議。
文獻[3]由明槽流速分布實驗給出明渠任一垂線上的流速與水深的無量綱函數(shù)關系一般表示為:
(1)
式中:u,v分別為測線上任一點流速與測線平均流速;y,H分別為實測水深和渠深;a,b,c為待定系數(shù)。該式較真實反映了矩形明渠流速的分布特征,由此可推斷過水斷面的點流速與過水斷面的平均流速之間存在某種復雜非線性關系。因此本文擬采用斷面“五線一點”法測流方案,并把LM-BP神經(jīng)網(wǎng)絡預測模型法應用到渠道流量推測中,即用五條測速垂線0.6處點流速推求斷面平均流速。這種方法的意義在于創(chuàng)新流量測驗的新方法,并且在提高測驗精度同時,減輕測驗工作人員內(nèi)業(yè)和外業(yè)工作強度。
鶯落峽龍電渠位于黑河出山口段河道的右側(cè),是灌溉、發(fā)電引水渠;測驗斷面呈矩形,渠深5.53 m,寬5 m;渠道系混凝土澆筑而成,表面較光滑。渠道年引水量10.0億 m3以上,最大引水量90 m3/s。斷面上游3 km處建有龍首水電站攔河大壩,設有5孔下泄閘門,庫容0.132億 m3;上游15 km已建龍首二級電站蓄水發(fā)電,庫容0.862億 m3;斷面下游2 km處有灌溉引水閘門一座[4]。受上游閘門調(diào)節(jié)、洪水漲落以及下游回水的影響,多年來實測水位流量關系曲線呈多線形式,推流時段難以準確把握,且測驗任務繁重,外業(yè)、內(nèi)業(yè)工作量大。龍電渠現(xiàn)流量測驗設施為水文手搖纜道,50 kg鉛魚,斷面流量采用“五線三點法”測驗,使用Ls(25-1)型流速儀測速。為控制流速脈動影響,每一測速點的測速歷時大約等于100 s,實測數(shù)據(jù)可靠性比較高。
龍電渠測驗斷面上下游渠道順直,渠道是混凝土襯砌,過水斷面面積不變且為單式斷面。斷面流量公式可采用下式:
Q=V×W×H
(2)
式中:Q為過水斷面流量,m3/s;V為過水斷面平均流速,m/s;W為過水斷面寬(取常數(shù)5),m;H為過水斷面水深,m。由(2)公式得出,只要精確推求出過水斷面的平均流速就可得到流量值。由于龍電渠斷面流量受到上游閘門調(diào)節(jié)、下游電站回水的影響,斷面處水力要素糙率和坡度呈現(xiàn)不穩(wěn)定的變化,使得實測水位流量關系曲線復雜,而龍電渠測驗斷面流量在一年之內(nèi)的最大、最小值基本穩(wěn)定不變。因此,本文避開復雜的水力學關系,應用LM-BP神經(jīng)網(wǎng)絡模型推求斷面平均流速,進而得出精確的斷面流量值。模型示意如圖1。
圖1流量推測示意圖
BP神經(jīng)網(wǎng)絡是1986年由Rumelhart和MeCelland等提出的一種多層前饋網(wǎng)絡,其本質(zhì)上是一種高度的非線性映射[5]。其基本思想是學習過程由信息的正向傳播和誤差反向傳播兩個過程組成,通常由輸入層、隱含層和輸出層組成,層與層之間相互連接,每節(jié)點之間沒有任何連接。根據(jù)Kolmogorov定理,具有一個隱層的三層BP神經(jīng)網(wǎng)絡能在閉集上任意精度逼近非線性連續(xù)函數(shù)[6]。其結(jié)構(gòu)如圖2。
圖2 神經(jīng)網(wǎng)絡結(jié)構(gòu)模型
傳統(tǒng)的BP神經(jīng)網(wǎng)絡模型實際上是一種簡單的最速下降靜態(tài)調(diào)整各層權(quán)值和閾值的方法,在網(wǎng)絡訓練過程中容易陷入局部最優(yōu),且收斂緩慢。L-M又稱阻尼最小二乘法,是梯度下降和高斯-牛頓法的結(jié)合,該算法兼具局部快速收斂特性和全局搜索特性。其基本思想是使每次迭代不再沿著單一的負梯度方向,而是允許誤差沿著惡化的方向進行搜索,同時通過自適應調(diào)整參數(shù)μ,在兩個行進方向間光滑過渡,進而優(yōu)化網(wǎng)絡權(quán)值,使網(wǎng)絡能夠有效收斂,大大提高了網(wǎng)絡的泛化能力[7]。L-M算法是基于避免計算修正速率中Hessian矩陣而設計的,當誤差性能函數(shù)具有平方和誤差的形式時,Hessian矩陣可近似表示為:
H=JTJ
(3)
梯度表示為:
g=JTe
(4)
誤差函數(shù)指標:
(5)
L-M算法根據(jù)下式修正網(wǎng)絡權(quán)值:
w(n+1)=w(n)-[JTJ+μI]-1JTe
(6)
式中:J是包含誤差性能函數(shù)對網(wǎng)絡權(quán)值一階導數(shù)的雅克比矩陣;I是單位矩陣;e是誤差向量;Yk是正向計算的網(wǎng)絡輸出向量;Tk是實際的輸出樣本向量;p是樣本個數(shù);w是神經(jīng)網(wǎng)絡權(quán)值組成的向量;μ為自適應調(diào)整系數(shù)。在實際操作過程中,該值是一個試探性參數(shù),算法開始時μ取小值,如果求得的w能使誤差函數(shù)指標E(w)降低,則該值取μ/β(β>1);反之,該值取μ*β。通常設置μ初始值0.01,β取10。LM算法具有二階收斂速度,所需要迭代次數(shù)很少,可大幅度提高收斂速度[8]。另外由于[JTJ+μI]為正定矩陣,因此公式的解總是存在的,計算效率和精度得到提高[9]。但是,與其他訓練算法相比,LM算法需要大量內(nèi)存,因此其更適用于訓練權(quán)值和閾值數(shù)目不超過幾百的神經(jīng)網(wǎng)絡[10]。根據(jù)本文待解問題的特征,可以選用LM算法作為BP神經(jīng)網(wǎng)絡預測模型的訓練方法。
本文采用有導師方式訓練方式,選用的數(shù)據(jù)資料為2016年1-10月實測的流量(51份),用起點距0.5 m、1.6 m、2.8 m、4.0 m、5.1 m測速垂線相對位置0.6處點流速作為模型輸入,過水斷面平均流速作為模型輸出,即樣本集由輸入數(shù)據(jù)和目標數(shù)據(jù)組成。網(wǎng)絡的樣本集一般包括訓練樣本集和測試樣本集。訓練樣本集用于對網(wǎng)絡進行訓練;測試樣本集用于檢測網(wǎng)絡訓練的效果和推廣能力,故在不同流速范圍隨機選取6組數(shù)據(jù)作為測試樣本,剩余45組數(shù)據(jù)作為訓練樣本。其中每組輸入數(shù)據(jù)5個,為每份實測流量的五個測速垂線相對位置0.6處的點流速;每組輸出數(shù)據(jù)1個,為每份實測流量中的過水斷面平均流速。
本文選取的數(shù)據(jù)均為非負數(shù),可選取Logsig函數(shù)作為激活函數(shù),由于Logsig函數(shù)曲線在0和1兩點附近平緩,影響網(wǎng)絡訓練的速度和模型的靈敏性[11]。對于神經(jīng)網(wǎng)絡來說輸入和輸出限制在一定的范圍內(nèi),使那些較大的輸入仍落在神經(jīng)元轉(zhuǎn)化函數(shù)梯度大的地方,這樣可以使網(wǎng)絡訓練更加有效。因此,需要對樣本集數(shù)據(jù)歸一化處理,使其限制在[0.1,0.9]區(qū)域內(nèi)。歸一化方法有很多,本文采用如下歸一化公式:
(7)
式中:x為原始數(shù)據(jù);xmax-xmin分別為原始數(shù)據(jù)中的最大、最小值;y為系統(tǒng)數(shù)據(jù)歸一化后的值。對于神經(jīng)網(wǎng)絡的輸出需要進行反歸一化處理,將網(wǎng)絡在[0.1,0.9]之間的值轉(zhuǎn)換為系統(tǒng)的實際輸出值。與式(7)對應的反歸一化公式如下:
(8)
在本文設計的BP神經(jīng)網(wǎng)絡模型中,輸入量5個,輸出量1個。采用經(jīng)典的三層BP神經(jīng)網(wǎng)絡設計結(jié)構(gòu),根據(jù)Kolmogorov理論,隱含層節(jié)點數(shù)設置為2N+1,其節(jié)點數(shù)過多或過少都會影響預測模型的精度,需要試探性的尋找兼顧網(wǎng)絡收斂速度和精度的節(jié)點數(shù)[12]。通過多次訓練實驗,本文取其為11。隱含層神經(jīng)元和輸出層神經(jīng)元的傳遞函數(shù)均采用S型對數(shù)函數(shù)Logsig,這正好滿足網(wǎng)絡輸出在[0,1]之間的要求,網(wǎng)絡的訓練函數(shù)為自適應L-M算法。故該預測模型結(jié)構(gòu)如圖3。
圖3 網(wǎng)絡結(jié)構(gòu)圖
圖4 LM-BP算法模型的收斂曲線示意圖
圖5 LM-BP算法輸出值回歸分析結(jié)果
本文應用matlab2014a軟件編程進行BP神經(jīng)網(wǎng)絡設計和樣本訓練。BP神經(jīng)網(wǎng)絡在開始訓練前將各層的連接權(quán)值和閾值隨機初始化為[0,1]之間的值,因此神經(jīng)網(wǎng)絡每次訓練得到的結(jié)果不一樣。神經(jīng)網(wǎng)絡的泛化能力和訓練目標值有緊密的關系[13],目標值參數(shù)的設定需要根據(jù)訓練過程測試樣本的預測精度變化情況而定。一般情況下,對于簡單的非線性逼近問題,結(jié)合測試樣本的預測精度值,可以試探性確定訓練算法的目標值參數(shù),本文經(jīng)過多次仿真實驗確定該參數(shù)為10-5。鑒于黑河龍電渠流量推測模型是基于歷史數(shù)據(jù)的有導師訓練方式,不要求其在線實時調(diào)整權(quán)值和閾值,因此結(jié)合測試樣本推測值的誤差要求,增加運行次數(shù),取其最優(yōu)結(jié)果作為預測模型的結(jié)構(gòu)參數(shù),本文設定總運行次數(shù)200??傻米顑?yōu)結(jié)果對應的LM-BP算法模型訓練過程收斂情況如圖4,斷面平均流速實測值和推測值進行線性回歸分析,可得如圖5分析結(jié)果。
從圖4可以看出,經(jīng)過84步訓練后,網(wǎng)絡模型即達到所要求的精度;從圖5可以看出預測值和實測值之間的相關系數(shù)R為0.99992,因此該模型具有較好的性能。
基于以上關于BP神經(jīng)網(wǎng)絡預測模型建立和訓練的相關分析,應用給出的隨機測試樣本對預測模型進行測試??傻玫綌?shù)據(jù)對比表1:
表1 數(shù)據(jù)對比表
由表1可以得出,模型推測出的流量值最大誤差為1.20%,最小誤差僅為0.00%。相比線上推流,相對誤差均減小。依據(jù)《河流流量測驗規(guī)范》(GB50179-2015)中對一類精度水文站流量測驗的誤差規(guī)定[14],采用流速儀法測流,歷時100 s,高、中、低水位允許誤差依次為4.0%、4.5%、6.0%。由此可得,所有推測值誤差均低于規(guī)范要求,因此在誤差允許范圍之內(nèi),BP神經(jīng)網(wǎng)絡模型推測法具有實際應用價值。
此方法的優(yōu)點在于減少流量測驗的外業(yè)工作(只需要測量斷面5個點流速,同之前需要測量25個點流速的工作量相比,測驗人員的工作量大為減輕)。另外對于測驗內(nèi)業(yè)而言,只需要把5個點流速輸入到預先設計好的模型中,可以迅速得到過水斷面的平均流速,繼而利用公式(2)計算出斷面流量,再無需應用水位~流量關系曲線進行分時段推流。由于渠道每年最大和最小流量值恒定,因此所有的流量值都限定在模型的輸出范圍內(nèi)。缺點在于需要定期應用實測歷史數(shù)據(jù)資料訓練模型,進而定期更新模型的參數(shù)值,確保推測值的精度。建議在實際操作過程中,隨機對實測值和推測值做比測試驗,一旦超出允許誤差范圍,就要根據(jù)最新歷史實驗數(shù)據(jù)資料,更新模型權(quán)值和閾值參數(shù)。
本文采用傳統(tǒng)的BP算法神經(jīng)網(wǎng)絡模型結(jié)構(gòu),利用其結(jié)構(gòu)簡單、可操作性強以及能模擬任意的非線性映射的特性,對黑河龍電渠流量進行推測。經(jīng)過有導師訓練方式,得到了較為滿意的結(jié)果。這種流量測驗方法,減輕了外業(yè)測驗工作,改變了傳統(tǒng)的水位-流量關系曲線推流方法。傳統(tǒng)的流量推測方法是基于“穩(wěn)定單一”和“不穩(wěn)定單一”關系曲線的理論,增加了隨機性和人為造成的誤差,應用BP神經(jīng)網(wǎng)絡模型推流可以避開不穩(wěn)定水力因素導致的復雜水位-流量關系,逼近測驗斷面處特征點流速和平均流速之間的非線性關系,進而得出較準確的推測值。另外此方法可以作為反推水位-流量關系曲線的依據(jù),獲取精度較高的關系曲線。但模型推測也存在參數(shù)不易確定、結(jié)果具有隨機性等缺點,因此在改進LM-BP神經(jīng)網(wǎng)絡預測模型并應用在流量推測方面還有很大的空間,繼而滿足流量測驗更高的精度要求。
在本文分析研究的基礎上,還可以試圖探索黑河龍電渠斷面流速測量中用斷面一點法(全斷面流速代表點法)流速來替代斷面平均流速,這樣可以在保證流量測驗精度的前提下進一步簡化斷面流速測驗工作。