易漢文,寧 芊,趙成萍
(1.四川大學(xué) 電子信息學(xué)院,四川成都610065;2.電子信息控制重點(diǎn)試驗(yàn)室,四川成都610036)
隨著科技的迅猛發(fā)展,灌區(qū)管理控制智能化成為必然趨勢(shì)。很多灌區(qū)是靠閘門調(diào)度來(lái)控制水位和流量的,渠道閘門開(kāi)啟和關(guān)閉往往是依據(jù)整體水量的調(diào)配,傳統(tǒng)方式多數(shù)是基于以往水文資料和經(jīng)驗(yàn)人工制訂配水計(jì)劃,在實(shí)際操作過(guò)程中依據(jù)實(shí)際來(lái)水量情況由操作人員進(jìn)行動(dòng)態(tài)調(diào)配,以實(shí)現(xiàn)水量的動(dòng)態(tài)配給。這種以個(gè)人經(jīng)驗(yàn)為主的方法,依賴于操作人員的工作水平,從而使得配水隨機(jī)性增大,難以實(shí)現(xiàn)整體調(diào)度的自動(dòng)化控制,同時(shí)也不利于灌區(qū)的統(tǒng)一管理。若建立模型,根據(jù)期望的流量自動(dòng)計(jì)算出閘門開(kāi)啟和關(guān)閉時(shí)機(jī),就能解決上面的問(wèn)題。基于智能化的理念,筆者采用兩種建模方法,一種是基于水力學(xué)公式的單孔閘門流量-開(kāi)度關(guān)系;另一種是基于神經(jīng)網(wǎng)絡(luò)算法或其他機(jī)器學(xué)習(xí)算法構(gòu)建的流量-開(kāi)度模型。對(duì)于第一種方法,在實(shí)際建模中如果缺少河道及相應(yīng)的水位信息[1],將無(wú)法建立合適的模型;該方法還需要實(shí)際的閘門類型、渠道參數(shù)方能建立模型。第二種方法不依賴實(shí)際環(huán)境,計(jì)算較為簡(jiǎn)單,但歷史數(shù)據(jù)的豐富程度決定了建模結(jié)果的好壞。本文以都江堰灌區(qū)閘門聯(lián)合調(diào)度為背景,對(duì)各分水樞紐的閘門分別建模,并對(duì)比各閘門建模效果,為模型的選擇提供依據(jù)。
都江堰內(nèi)江水系四大干渠分別為蒲陽(yáng)河、柏條河、走馬河和江安河。都江堰灌區(qū)內(nèi)江水流首先經(jīng)過(guò)魚嘴流入寶瓶口,然后流到仰天窩閘門處。在仰天窩閘處,分別流向蒲柏閘和走江閘方向。流向蒲柏閘的水分別流向蒲陽(yáng)河和柏條河;流向走江閘的水分別流向走馬河和江安河。都江堰內(nèi)江閘群分布見(jiàn)圖1,其中:仰天窩閘有6個(gè)閘孔,3孔流向蒲柏閘方向,3孔流向走江閘方向;蒲柏閘有7個(gè)閘孔,分為蒲陽(yáng)河4孔、柏條河3孔;走江閘有8個(gè)閘孔,分為走馬河5孔、江安河3孔。根據(jù)數(shù)據(jù)分布以及現(xiàn)場(chǎng)環(huán)境的不同,分別建立各分支樞紐的流量-開(kāi)度模型,對(duì)比模型優(yōu)劣。
圖1 都江堰內(nèi)江閘群分布
都江堰閘門多為寬頂堰型閘門,將閘門出流分為自由出流和淹沒(méi)出流兩種方式。根據(jù)兩種方式的流量-開(kāi)度數(shù)學(xué)公式[2],首先建立單孔的流量-開(kāi)度模型,再擴(kuò)展到三孔以及多孔流量-開(kāi)度模型。兩種模型的建立都是基于Matlab Simulink仿真結(jié)果[3]。
設(shè)H為閘前水深,e為閘孔開(kāi)度。當(dāng)水流行近閘孔時(shí),在閘門的約束下流線發(fā)生急劇彎曲;出閘后,流線繼續(xù)收縮,并在閘門下游(0.5~1.0)e處出現(xiàn)水深最小的收縮斷面。收縮斷面的水深一般小于臨界水深hk(渠道的臨界水深與底坡坡降沒(méi)有關(guān)系,只與渠道的流量及形狀尺寸有關(guān)),水流為急流狀態(tài);而閘后渠道中的下游水深ht一般大于臨界水深hk,水流呈緩流狀態(tài);水流從急流到緩流時(shí)發(fā)生水躍,水躍位置隨下游水深ht而變化。
根據(jù)有關(guān)資料[2],閘孔自由出流流量的水力計(jì)算公式如下(其中流量系數(shù)μ取南京水利科學(xué)研究院的經(jīng)驗(yàn)公式計(jì)算結(jié)果):
閘孔淹沒(méi)出流流量的水力計(jì)算公式為
式中:b為閘門寬度;g為重力加速度;σs為淹沒(méi)系數(shù),σs值與下游水深ht、收縮斷面水深的共軛水深h″c、閘前水深H有關(guān)。
模型實(shí)現(xiàn)流程見(jiàn)圖2。
圖2 單孔閘門流量-開(kāi)度模型流程
單孔閘門流量開(kāi)度模型擴(kuò)展到多孔閘門時(shí),在灌區(qū)調(diào)度實(shí)際允許的誤差范圍內(nèi),可以認(rèn)為多孔閘門出流的總流量Q就是該閘門各個(gè)閘孔所需的流量之和,即
式中:Q1、Q2、…、Qn分別為各單孔出流量。
都江堰灌區(qū)閘門多為三孔閘門,也有少數(shù)閘門為三孔以上,如蒲陽(yáng)河為4孔、走馬河為5孔。從獲得的歷史數(shù)據(jù)來(lái)看,蒲陽(yáng)河2號(hào)和3號(hào)閘孔開(kāi)度相同的情況約占80%,最大差值為0.5 m,根據(jù)實(shí)際情況,將2號(hào)和3號(hào)閘孔看作一個(gè)整體,同開(kāi)同關(guān)。走馬河在洪汛期2號(hào)、3號(hào)和4號(hào)閘孔的開(kāi)度比較大,大于水面高度;枯水期,閘門開(kāi)度較小。走馬河2號(hào)、3號(hào)和4號(hào)閘孔的開(kāi)度相似度為80%左右,最大差值為0.5 m,可將2號(hào)、3號(hào)和4號(hào)閘孔看成一個(gè)整體。
從上述等效過(guò)程來(lái)看,在試驗(yàn)灌區(qū)建立開(kāi)度模型時(shí),對(duì)于部分多孔閘門可采用三孔閘門的流量開(kāi)度模型。
2.2.1 三孔閘門啟閉規(guī)則
為了使閘門的開(kāi)啟和關(guān)閉更加安全可靠,遵循動(dòng)閘最少原則,在實(shí)際操作過(guò)程中應(yīng)遵守一定的啟閉規(guī)則。都江堰閘門主要的啟閉規(guī)則[3]是:考慮到閘門提升時(shí),靠近河岸的閘門出水會(huì)受到影響,當(dāng)需要增加閘孔出流量時(shí),先判斷哪些閘門在水面以下,當(dāng)前開(kāi)度最大的應(yīng)最后提升至合適位置;若閘門的開(kāi)度近似相等,由于中間閘門出水受河岸影響小,因此先提升中間閘門,然后提升不靠近河岸的閘門,最后才考慮靠近河岸的閘門;當(dāng)需要減小閘孔出流量時(shí),應(yīng)判斷哪些閘門開(kāi)度不是零,開(kāi)度最小的最后下降至合適位置,若閘門的開(kāi)度都相同,應(yīng)先降低靠近河岸的邊孔,最后減小中間閘孔開(kāi)度。
2.2.2 三孔閘門流量-開(kāi)度模型建立
在文獻(xiàn)[3]的公式討論中,只能根據(jù)開(kāi)度、水位等信息求得當(dāng)前的過(guò)閘流量。但在實(shí)際調(diào)度過(guò)程中總是希望得到一個(gè)滿足期望流量的開(kāi)度。為了求得合適的開(kāi)度,不能簡(jiǎn)單對(duì)原來(lái)的公式進(jìn)行反向求解。本文選取一組分布較為均勻的數(shù)據(jù)(記錄了單個(gè)閘孔的閘門開(kāi)度、過(guò)閘流量等),擬合出一條流量與開(kāi)度的關(guān)系曲線。對(duì)于三孔以及多孔閘門,也可以用該關(guān)系曲線求出各閘門開(kāi)度。依據(jù)啟閉規(guī)則與關(guān)系曲線得到模型流程(見(jiàn)圖 3),其中:error為允許誤差范圍, e1、e2、e3為按照啟閉規(guī)則排序后的閘孔順序及開(kāi)度大小,QC為當(dāng)前流量,QH為期望流量,Q1為e1調(diào)后當(dāng)前流量,Q2為e1、e2調(diào)后當(dāng)前流量,Q3為 e1、e2、e3調(diào)后當(dāng)前流量,ΔQ1、ΔQ2、ΔQ3為當(dāng)前流量差。
圖3 三孔閘門流量-開(kāi)度模型流程
2.3.1 神經(jīng)網(wǎng)絡(luò)模型
人工神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn)在于具有逼近連續(xù)非線性函數(shù)的能力,而且能從大量歷史數(shù)據(jù)中獲取知識(shí),當(dāng)有新的輸入產(chǎn)生時(shí),能對(duì)結(jié)果有較好的預(yù)測(cè)。神經(jīng)網(wǎng)絡(luò)模型的結(jié)構(gòu)種類較多,例如感知器、Hopfield網(wǎng)絡(luò)、BAM網(wǎng)絡(luò)、徑向基神經(jīng)網(wǎng)絡(luò)、自組織特征映射神經(jīng)網(wǎng)絡(luò)[4]等。BP神經(jīng)網(wǎng)絡(luò)應(yīng)用廣泛,由輸入層、隱含層、輸出層構(gòu)成。其中隱含層的層數(shù)越多,計(jì)算過(guò)程越復(fù)雜,輸入層和輸出層權(quán)值的激勵(lì)函數(shù),正是不斷反復(fù)通過(guò)輸入信號(hào)的正向傳遞與誤差的反向傳遞這一過(guò)程,實(shí)現(xiàn)對(duì)權(quán)值的修改[5]。誤差反向傳遞使實(shí)際值與期望值的均方差達(dá)到最小,由此神經(jīng)網(wǎng)絡(luò)具有獲取知識(shí)的能力。由式(1)可知,影響閘門過(guò)閘流量的主要因素為閘門開(kāi)度、閘門寬度、閘前水深,反向求解過(guò)程中影響開(kāi)度的因素也易知。本文以閘門開(kāi)度、閘門寬度、閘前水深為BP神經(jīng)網(wǎng)絡(luò)的3個(gè)輸入因子,以3個(gè)閘孔的開(kāi)度為輸出因子,建立3層神經(jīng)網(wǎng)絡(luò)模型(見(jiàn)圖4)。
圖4 閘門流量-開(kāi)度神經(jīng)網(wǎng)絡(luò)模型
LM算法[6-8]是一種利用標(biāo)準(zhǔn)的數(shù)值優(yōu)化技術(shù)的快速算法,是梯度下降法與高斯-牛頓法的結(jié)合,也可以稱為是高斯-牛頓法的改進(jìn)形式,既有高斯-牛頓法的局部收斂性,又具有梯度法的全局特性。由于LM算法利用了近似的二階導(dǎo)數(shù)信息,因此LM算法比梯度法快得多,解決了BP算法收斂速度慢、易陷入局部最優(yōu)的問(wèn)題[9]。
2.3.2 SVM模型
支持向量機(jī)(SVM)[10-11]起初是用于解決模式識(shí)別問(wèn)題[7],由 Vapnic[12-13]于 20 世紀(jì) 90 年代提出,具有良好范化性、適用于小樣本、數(shù)學(xué)表達(dá)簡(jiǎn)捷等優(yōu)點(diǎn),被廣泛應(yīng)用于線性和非線性曲線擬合當(dāng)中,并在許多實(shí)際問(wèn)題中取得優(yōu)良成果。大多數(shù)傳統(tǒng)的SVM模型的輸出為單個(gè),模型的核函數(shù)為一個(gè)。就本研究的數(shù)據(jù)來(lái)看,若用SVM來(lái)建立模型,則要求采用多個(gè)核函數(shù)方法來(lái)訓(xùn)練模型[14-15]??紤]用閘后流量、閘門寬度、閘前水深作為模型的3個(gè)輸入,3個(gè)閘孔的開(kāi)度作為輸出,得到多輸出SVM 結(jié)構(gòu)圖(見(jiàn)圖5),其中:x1、x2、x3為輸入特征值,K(x,xi)為核函數(shù),a 為偏置,S 中間值,y為輸出特征值。
圖5 閘門流量-開(kāi)度SVM模型
先以柏條河閘門開(kāi)度信息為例,其中143組數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),29組作為校驗(yàn)集,28組作為測(cè)試集,且各樣本隨機(jī)組合產(chǎn)生。柏條河閘門部分歷史數(shù)據(jù)見(jiàn)表1。柏條河閘孔數(shù)為3,由試驗(yàn)可得,若用神經(jīng)網(wǎng)絡(luò)模型作為預(yù)測(cè)模型,3層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為:輸入層神經(jīng)元個(gè)數(shù)為3,隱含層神經(jīng)元個(gè)數(shù)為6,輸出層神經(jīng)元個(gè)數(shù)為3,并且隱含層激勵(lì)函數(shù)為logsig,輸出層激勵(lì)函數(shù)為pureline。以此所建立的模型的輸出誤差較小,且輸出開(kāi)度不為負(fù)數(shù)。
單一的對(duì)比無(wú)法說(shuō)明模型好壞。將表1中隨機(jī)抽取的28組測(cè)試集數(shù)據(jù)作為基于水力學(xué)模型的輸入,得出預(yù)測(cè)閘門開(kāi)度,將實(shí)際值和兩種模型的預(yù)測(cè)值置于同一圖中,橫軸為樣本序號(hào),縱軸為開(kāi)度值。由此可見(jiàn)3種情況下的閘門開(kāi)度有如下規(guī)律:閘孔2(中孔)開(kāi)度較大,其次是靠近河岸的。從表1來(lái)看,在實(shí)際操作中大多數(shù)動(dòng)閘不符合上文所述動(dòng)閘規(guī)則,而且柏條河閘門流量會(huì)受到蒲陽(yáng)河動(dòng)閘的影響。而水力學(xué)模型建模時(shí)比較依賴上次動(dòng)閘參數(shù)以及動(dòng)閘規(guī)則,可知水力學(xué)建模時(shí)誤差較大(見(jiàn)表2與圖6)。神經(jīng)網(wǎng)絡(luò)建模3個(gè)閘孔的均方誤差分別為12%、18%、5.0%,總均方誤差為14.0%,低于實(shí)際工程要求的20%,可見(jiàn)神經(jīng)網(wǎng)絡(luò)建模較為理想。
表1 柏條河閘門歷史數(shù)據(jù)
表2 SVM模型與其他模型預(yù)測(cè)結(jié)果均方誤差比較
圖6 神經(jīng)網(wǎng)絡(luò)模型和水力學(xué)模型輸出各個(gè)閘門開(kāi)度對(duì)比
由圖7與表2可以看出,SVM單孔預(yù)測(cè)均方誤差分別為4.0%、0.35%、0.01%,總均方誤差為0.13%,對(duì)于動(dòng)閘次數(shù)較多的閘孔2預(yù)測(cè)效果優(yōu)于神經(jīng)網(wǎng)路的預(yù)測(cè)效果,閘孔1與閘孔2也更接近實(shí)際值。從總閘孔誤差和單孔誤差來(lái)看,SVM模型的學(xué)習(xí)算法相對(duì)其他兩種算法均較好。
分別從蒲陽(yáng)河、走馬河、江安河選取一組符合動(dòng)閘規(guī)則且較為完整的閘門信息,用3種模型進(jìn)行預(yù)測(cè),結(jié)果見(jiàn)表3。由試驗(yàn)結(jié)果可以看出,滿足動(dòng)閘規(guī)則、河道等參數(shù)信息較為完整的情況下,水力學(xué)模型建模較為理想。對(duì)于蒲陽(yáng)河數(shù)據(jù),總體分布不均勻,導(dǎo)致神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果誤差較大,而SVM在3組數(shù)據(jù)中均有很好的預(yù)測(cè)結(jié)果。
圖7 神經(jīng)網(wǎng)絡(luò)模型和SVM模型輸出各個(gè)閘門開(kāi)度對(duì)比
表3 蒲陽(yáng)河、走馬河、江安河實(shí)際閘門開(kāi)度與各模型輸出閘門開(kāi)度對(duì)比 m
由仿真試驗(yàn)結(jié)果可以看出,基于水力學(xué)關(guān)系與機(jī)器學(xué)習(xí)構(gòu)建模型各有優(yōu)缺點(diǎn)。理論上的水力學(xué)建模比較依賴于河道信息、水位、動(dòng)閘規(guī)則等,在實(shí)際工作中往往不能獲取滿足理論要求的數(shù)據(jù)。除此之外,水力學(xué)建模效果還受河道調(diào)度情況的影響。相對(duì)而言,機(jī)器學(xué)習(xí)建模比較依賴于歷史數(shù)據(jù)的分布,在數(shù)據(jù)分布較為均勻且數(shù)據(jù)量大的情況下,所得預(yù)測(cè)結(jié)果較為準(zhǔn)確。當(dāng)水力學(xué)模型所要求的數(shù)據(jù)不理想時(shí),可以選擇機(jī)器學(xué)習(xí)模型建立預(yù)測(cè)模型。
在上文討論中,使用不同的機(jī)器學(xué)習(xí)模型建模,建模效果也有明顯差別。神經(jīng)網(wǎng)絡(luò)模型依賴數(shù)據(jù)量與數(shù)據(jù)的分布,而且模型在訓(xùn)練時(shí)易陷于局部最優(yōu),而SVM模型在數(shù)據(jù)量較少的情況下也能有較好的學(xué)習(xí)效果。對(duì)于都江堰灌區(qū),受現(xiàn)場(chǎng)條件限制,加上對(duì)異常數(shù)據(jù)進(jìn)行剔除修改,只能得到小樣本數(shù)據(jù)集,用SVM建模較為理想。