張躍馳 龐金龍
(中水北方勘測設計研究有限責任公司,天津 300222)
在水庫規(guī)劃設計階段,開展水庫調洪計算,主要是為了配合樞紐布置中泄洪建筑物形式、尺寸的選擇及確定滿足工程安全的防洪特征水位、最大下泄流量等指標。目前水庫調洪計算主要利用Excel及其迭代計算功能實現(xiàn),需要手動輸入公式并人工查找起蓄時刻和最高水位時刻,操作煩瑣,易于出錯且計算效率低。為提高調洪計算效率和準確性,本文在Excel開發(fā)環(huán)境的基礎上,利用VBA編程語言開發(fā)調洪計算自動化程序,僅需輸入基礎參數即可實現(xiàn)多套方案的快速計算。
調洪計算屬于入庫和出庫水量平衡的計算問題,其計算原理可用圣維南方程組表示。但圣維南方程組在應用于水庫調洪計算中,常需要做一定的簡化,一般簡化為以下公式進行計算:
(1)
q=f(V)
(2)
式中Q1、Q2——計算時段初、末的入庫流量,m3/s;
q1、q2——計算時段初、末的出庫流量,m3/s;
V1、V2——計算時段初、末的水庫蓄水量,m3;
Δt——計算時段,s。
式(1)實際是水量平衡方程,即在一個計算時間段中,入庫水量與下泄水量之差即為該時段中水庫蓄水量的變化。式(2)為水庫下泄流量與庫容關系的曲線,取決于泄水建筑物的布置型式和尺寸等。
調洪計算方法有很多種,我國常用的是列表試算法和半圖解法。半圖解法通過與水庫水位建立函數關系,利用圖解代替試算,可有效降低計算量,是手動調洪計算的一種有效方法。隨著計算機技術的發(fā)展,雖然列表試算法計算量較大,但便于通過計算機編程實現(xiàn),是目前水庫規(guī)劃設計階段最普遍采用的計算方法。
列表試算法基本步驟如下:
a.引用某一場次設計洪水過程線,選取計算時段Δt和入庫流量Q1,Q2,Q3,…。
b.確定調洪起調水位Z0、起調庫容V0、泄流曲線q泄=f(Z)、庫容曲線Z=f(V)等基礎參數。
c.試算出庫流量qt對水量平衡方程進行求解,判斷其與入庫流量Qt和下泄能力q泄t的關系。
d.不斷試算qt直至得到滿足設定條件的解,同時計算蓄變量ΔVt時段末水位Zt、時段末庫容Vt等。
e.繼續(xù)計算下一時段,直至計算完整場洪水,累加ΔVt即得到調洪所需庫容,過程最高水位即為相應場次洪水最高壩前水位。
目前,水庫調洪計算普遍采用Excel軟件及其迭代計算功能實現(xiàn),由于設計洪水過程線一般以小時為時段,為保證計算精度,水庫水位起漲時刻和最高水位時刻需線性插值得到,此步驟需要手動操作,耗時較長,且每次只能完成單獨一組基礎參數的調洪計算,對于需要多個起調水位、多個頻率洪水及多條泄流曲線比選時,此方法耗時較長,且容易出錯。
VBA是由Visual Basic發(fā)展而來的一種宏語言,一般依附于如Excel等Office的應用程序中,用于拓展應用程序的功能,得益于VBA與主應用程序的這種依附關系,其與主程序之間的通信簡單且高效。并且VBA提供了面向對象的程序設計方法,提供了相當完整的程序設計語言,結合其強大的宏錄制功能,利用VBA可以在Excel內輕松開發(fā)出功能強大的自動化計算程序。
與僅利用Excel迭代功能進行調洪計算相比,利用VBA開發(fā)通用的調洪計算程序,可結合調洪計算的特點開發(fā)更有針對性的計算函數,并通過循環(huán)實現(xiàn)多套組合方案的快速調洪計算,同時輸出計算成果圖表到Excel中,操作簡單,基本不需要額外的學習成本即可掌握,可有效提高調洪計算的效率和準確性。
調洪計算程序開發(fā)以Excel和VBA開發(fā)環(huán)境為基礎,采用面向對象的編程方法?;A類包括插值函數類和基本參數類,其中插值函數類主要解決二元曲線線性插值問題。新編迭代函數,利用二分法解決迭代計算問題。利用Excel操作界面和新編繪圖函數完成參數的輸入和成果的輸出。調洪計算程序總體框圖見圖1。
圖1 調洪計算程序總體
以單次洪水調洪過程為例,以入庫流量和泄流能力為判別條件,逐時段進行調洪計算,對于典型單峰洪水,水庫起蓄時刻為入庫流量與最大泄流能力相等的時刻,此后入庫流量大于最大泄流能力,水庫水位上漲,直至入庫流量與最大泄流能力再次相等時,水庫達到最高水位Zmax,此后水庫水位開始回落。單次調洪計算流程見圖2。在單次調洪計算基礎上,增加循環(huán),可實現(xiàn)多個起調水位、多條泄流曲線和多場設計洪水等組合調洪計算。
圖2 單次調洪計算流程
二分法即一分為二的方法,其基本原理是每次將區(qū)間從中間分成兩部分,通過求解區(qū)間中間值判斷函數解所處子區(qū)間,然后在對應的子區(qū)間中繼續(xù)查找直至找到目標元素。采用二分法進行迭代計算可提高迭代計算效率。調洪計算涉及迭代計算分為兩類:?水位上漲時段,此時出庫流量qt等于最大下泄能力qmax,此時需要試算滿足條件的qt,計算流程見圖3。?水庫最高水位時刻,此時入庫流量Qt=qt=qmax,需在?的基礎上嵌套試算Qt=qt的迭代計算。
圖3 二分法迭代計算流程
云南省清水河水庫的工程任務以供水和灌溉為主,兼顧發(fā)電。根據清水河水庫規(guī)模和壩型,校核洪水標準為P=0.05%。水庫溢洪道共2孔,凈寬5m,堰頂高程1386m。
調洪計算采用淤積50年庫容曲線,根據淹沒賠償標準和水庫防洪標準要求,本次對P=20%、P=5%、P=1%和P=0.05%四個洪水頻率分別進行調洪計算。調洪計算原理是基于水量平衡,時段入庫水量減時段出庫水量等于時段水庫蓄水變化量。采用靜庫容調洪,利用列表試算法進行洪水調節(jié)計算。
清水河水庫不承擔下游防洪任務,泄流設施為閘門控制溢洪道,水庫起調水位為正常蓄水位1392m。庫水位1392m時水庫最大泄流能力為302m3/s,當入庫洪水流量小于302m3/s時,按入庫流量控泄,庫水位保持1392m;當入庫洪水流量大于302m3/s時,水庫全部敞泄,水庫開始滯洪,庫水位上升。退水期入庫流量小于水庫泄流能力,水庫又轉入控泄階段,避免對下游形成人造洪峰,庫水位逐步降至1392m。利用調洪計算程序進行調洪計算,其校核洪水調洪過程見表1和圖4,各頻率洪水調洪成果見表2。
表1 校核洪水調洪計算過程
表2 不同頻率洪水調節(jié)計算成果對比
圖4 校核洪水調洪計算過程
采用基于VBA和Excel的水庫調洪計算程序,單次調洪計算時長約2s,經對比,計算成果與手動計算成果一致。通過循環(huán)計算,可實現(xiàn)多套組合方案快速計算,極大程度提高調洪計算效率。
a.與目前普遍采用的基于Excel的列表試算法調洪計算相比,本計算程序針對調洪計算的特點采用二分法進行迭代計算,可將原單次調洪計算的時間從5~10min降低2s,計算效率顯著提高。
b.本計算程序不需要手動設置公式,可有效避免人為錯誤,且易于拓展,通過循環(huán)計算可同時計算多套組合方案,通過Excel可直觀便捷地輸出成果圖表。
c.通過云南清水河水庫等工程實際應用,證實本程序計算成果與手動計算成果一致,可滿足工程應用要求。