陸泳舟
(上海勘測設(shè)計研究院有限公司,上海200434)
MATLAB在洪水過程同頻率放大計算中的應(yīng)用
陸泳舟
(上??睖y設(shè)計研究院有限公司,上海200434)
在設(shè)計洪水過程線計算中,同頻率放大法是最常用的方法之一,但該法在計算中因為各時段流量放大倍比不一致,放大后需要多次人工修整,耗時較多且易造成過程線過度變形。為了使計算結(jié)果更客觀,過程更高效,可以利用MATLAB軟件的計算工具,通過程序優(yōu)化計算,得到與典型洪水過程形態(tài)差異最小的設(shè)計洪水過程。本文以南亞地區(qū)某大型水庫設(shè)計洪水為例,闡述MATLAB程序最優(yōu)化算法工具在設(shè)計洪水過程同頻率放大計算中的應(yīng)用方法。
洪水過程;同頻率;MATLAB;最優(yōu)化;水利信息化
在水利規(guī)劃設(shè)計中,由設(shè)計洪峰、設(shè)計洪量推求設(shè)計洪水過程線是最常見的計算工作。對于小流域,一般根據(jù)設(shè)計暴雨過程及地貌單位線計算出設(shè)計洪水過程;而對于大流域,則要根據(jù)設(shè)計洪峰和設(shè)計洪量,并選取鄰近站點的一場實測洪水過程(即典型洪水),對其進行縮放。洪水過程縮放一般分為同倍比縮放和同頻率縮放兩種計算方法,前者主要用于峰量關(guān)系好及多峰形的河流,計算也相對簡單,只要將典型洪水中各時刻的流量乘以“峰比”或“量比”即可;后者常用于峰量關(guān)系一般的河流,尤其是調(diào)洪作用大的水庫,由于峰比和量比不相等,計算量也相對較大,會出現(xiàn)兩大問題:
1)放大后的設(shè)計洪水過程線與典型洪水過程線往往有較大差異,選取典型的意義被弱化。
2)洪量由多時段控制,計算后,時段間節(jié)點處容易出現(xiàn)不連續(xù)的情況,需要人為修勻,人為主觀性強且耗時多。
因此,針對同頻率放大法,需要尋求一種更高效的計算方法,使得結(jié)果盡可能保持典型洪水的形狀,且減小人為因素的影響。
MATLAB是美國Mathworks公司開發(fā)的一款商業(yè)數(shù)學(xué)軟件,可以用于矩陣計算、統(tǒng)計與優(yōu)化分析、繪制函數(shù)和數(shù)據(jù)、實現(xiàn)算法等,在工程計算、控制設(shè)計等領(lǐng)域廣為使用,可在Win XP,Win7,Unix等多種系統(tǒng)環(huán)境下運行。較之常用的VB、C++程序語言,MATLAB程序有如下優(yōu)勢:
1)對界面的要求低,用戶不需要像VB程序設(shè)計那樣編輯窗體、輸入、輸出文件鏈接指令,只需要在命令窗口輸入數(shù)學(xué)語言即可。
2)豐富的內(nèi)部函數(shù),程序自帶有大量的數(shù)學(xué)計算公式,比如線性插值、求解微分方程、最優(yōu)化求解等計算,可直接實現(xiàn),而VB、C++等程序語言只能識別最基本的四則運算符號,編程勢必需要用戶添加大量的中間變量,代碼繁瑣且容易出錯。
3)具備強大的繪圖功能,其本身帶有很多用于繪圖的庫函數(shù),簡單易用,可用簡單的語句直接將數(shù)學(xué)結(jié)果進行圖像表達;而VB、C++等程序語言需要用戶編寫繪圖代碼,工作量較大。
因此,在水文水資源學(xué)科領(lǐng)域的計算中,MATLAB出色的計算功能被逐漸重視,在流域匯流參數(shù)率定、暴雨公式參數(shù)擬合等計算都已經(jīng)被使用。
3.1 設(shè)計洪水和典型洪水
1)設(shè)計洪水
以南亞地區(qū)某大流域中一座防洪水庫為例,該水庫集水面積約2.5萬km2,洪水調(diào)節(jié)作用明顯。水庫上下游附近各有一個水文站,兩站都具有超過40年實測資料,因此根據(jù)上下游站的實測資料比擬計算壩址處年設(shè)計洪峰和設(shè)計洪量。計算得2000年一遇設(shè)計標準下,年最大洪峰26 031 m3/s,年最大24 h設(shè)計洪量15.014億m3,年最大3 d設(shè)計洪量32.438億m3。
2)典型洪水
根據(jù)本工程設(shè)計需要,需計算壩址年最大3 d設(shè)計洪水過程線。本次計算選擇壩址下游水文站1992年汛期的一場特大洪水作為典型洪水,最大流量14 730 m3/s,位于全過程72 h中的第20 h,最大24 h洪量10億m3,最大3 d洪量18.71億m3,洪水過程見圖1。
圖1 典型洪水過程線圖
3.2 同頻率縮放計算
根據(jù)典型值和設(shè)計值計算得,洪峰倍比為1.767,最大24 h、最大3 d洪量放大倍比分別為1.501和2.00,將典型洪水過程放大,得到設(shè)計洪水過程線見圖2。由圖2可見,因為各時段的放大倍比不相同,在時段交界點處洪水過程出現(xiàn)波折起伏,不能保持單峰形狀,洪水過程較之典型洪水發(fā)生了很大改變。按照傳統(tǒng)的水文計算,針對此類情況只能人為修勻洪水過程線,處理之后再計算相應(yīng)的相應(yīng)的洪量,若與設(shè)計值差距較大,則繼續(xù)修正。整個計算需反復(fù)多次,過程耗時很長,而且計算結(jié)果主觀性強,會因計算者的不同而產(chǎn)生不同的結(jié)果。
圖2 典型洪水放大結(jié)果圖
3.3 MATLAB程序求算
3.3.1 程序語言
MATLAB程序可以直接解決數(shù)學(xué)中的最優(yōu)化計算:
目標函數(shù):minf(x)
程序調(diào)用格式為 [X,fmin,flag,num]=fmincon(Fobj,x0,A,B,Aeq,Beq,x1,xu),其中Fobj為目標函數(shù),x0為初始值,A,B,Aeq,Beq均為矩陣格式。
3.3.2 工程運用
設(shè)計洪水過程的計算可以等價為一種最優(yōu)化計算的數(shù)學(xué)模型,各參數(shù)表達如下:
1)目標函數(shù)。
放大后的設(shè)計洪水與典型洪水曲線線型差異達到最小化,即各段斜率差異總和最小,見式2。
式中:f——目標函數(shù)值;n——時刻點總數(shù),14;QS——設(shè)計洪水各時刻流量值,m3/s;Qd——典型洪水各時刻流量值,m3/s;△T——時段步長,h。
2)自變量:典型洪水各時刻流量及時段步長。
Qd——典型洪水各時刻流量值,m3/s;△T——時段步長,此次取6。
3)約束條件
洪峰、洪量數(shù)值等于設(shè)計值;且洪水呈單峰形狀;洪峰出現(xiàn)時間與典型洪水一致,即位于第20 h,見式(3)~(7)。
圖3 MATLAB計算所得設(shè)計洪水過程線
綜上所述,洪水同頻率縮放的問題已經(jīng)概化成一個有約束條件的最優(yōu)化求解數(shù)學(xué)模型。(3)(4)(5)成等式約束,(6)(7)立形成不等式約束,如3.3.1中所述,經(jīng)MATLAB最優(yōu)化工具計算,得各時刻QS值。計算結(jié)果如圖3所示。與3.2節(jié)計算結(jié)果相比,MATLAB計算所得設(shè)計洪水過程形狀更接近于典型洪水,成果優(yōu)于前者。謹、高效,可廣泛用于水利規(guī)劃設(shè)計工作。
以南亞地區(qū)一個大流域的水庫設(shè)計洪水同頻率放大計算為例,依靠MATLAB程序優(yōu)化計算,使最后的成果與典型洪水過程線型最大可能相似,并保持洪峰、洪量嚴格等于設(shè)計值。該算法嚴
[1]梁忠民,鐘平安,華家鵬.水文水利計算[M].北京:中國水利水電出版社,2006.
[2]宋新山,鄧偉,張琳.MATLAB在環(huán)境科學(xué)中的應(yīng)用[M].北京:化學(xué)工業(yè)出版社,2007.
[3]王軍,張春霞.MATLAB在水文學(xué)科計算中的應(yīng)用[J].水利科技與經(jīng)濟,2015,21(9):111—113.
[4]孫保沐,許拯民.計算修勻設(shè)計洪水過程線方法探討[J].水文,2006,26(6):63—64
[5]李敏,馬玉軍,等.水庫設(shè)計洪水過程線修勻方法及應(yīng)用[J].水電能源科學(xué),2013,31(6):93—94.
1002-0624(2016)09-0062-03
P333.9
B
2016-05-11