張 旭 昇
(甘肅省水利水電勘測設(shè)計研究院有限責(zé)任公司,蘭州 730000)
在水利工程規(guī)劃設(shè)計中,已知供水范圍內(nèi)各供水對象的需水量,確定水庫規(guī)模是水庫規(guī)劃設(shè)計中最常見的工程問題。水庫興利調(diào)節(jié)計算主要有時歷法、數(shù)理統(tǒng)計法等方法,目前水利工程規(guī)劃設(shè)計中廣泛應(yīng)用的是時歷法中的長系列法[1-6]。魏超[7]等針對繃線圖解法的計算效率和精度較低的問題,采用程序化的方法,在避免傳統(tǒng)繃線法中繁瑣的繪圖過程同時,提高了計算精度。張李萍[8]等應(yīng)用MIKE BASIN對杭州市某中型水庫進(jìn)行興利調(diào)度計算,確定水庫灌溉死水位線和發(fā)電控制線,得到了滿足興利要求的水平衡結(jié)果。楊淼[9]等針對傳統(tǒng)Excel公式編輯復(fù)雜、各Excel表格之間的計算公式不具備可移植性,采用VB語言對典型年水庫興利調(diào)節(jié)進(jìn)行了程序化初步探討。
采用Excel人工試算和商業(yè)軟件MIKE BASIN存在的主要問題包括:①均需人工多次輸入假設(shè)興利庫容,不斷重復(fù)計算,浪費(fèi)設(shè)計人員寶貴時間和精力;②水庫蒸發(fā)滲漏損失采用上一時段蓄水量或不考慮損失條件下蓄水量作為時段平均蓄水量估算,不夠精確;③MIKE BASIN基礎(chǔ)數(shù)據(jù)輸入和計算成果輸出采用自身數(shù)據(jù)格式(.dfs0),輸入、輸出效率不高。Excel公式計算條件判斷復(fù)雜,可辨識性差,容易出錯。筆者針對上述方法中存在的問題,結(jié)合綜合利用水庫長系列法調(diào)節(jié)計算中多步循環(huán)試算特點(diǎn),基于“二分法”查找算法和水庫規(guī)模劃分標(biāo)準(zhǔn),提出符合水利工程實(shí)際的“二分法”迭代試算方法,避免人工試算的盲目性,縮短計算步長,減少計算時間,促進(jìn)目標(biāo)函數(shù)快速收斂,并將該算法程序化,應(yīng)用實(shí)際工程案例與傳統(tǒng)算法進(jìn)行比較,證明該計算方法的準(zhǔn)確性和高效性。
為滿足多個用水部門不同用水需求,水庫蓄水量變化過程的計算稱為綜合利用水庫興利調(diào)節(jié)計算,長系列法興利調(diào)節(jié)計算的基本原理是求解水量平衡方程[10]。計算方法見式(1):
Vi+1=Vi+W來i-∑W用i-W損i
(1)
式中:Vi為水庫第i時段初的蓄水量;Vi+1為水庫第i時末的蓄水量;W來i為第i時段來水量;∑W用i為第i時段各部門用水量之和;W損i為第i時段水庫蒸發(fā)、滲漏損失水量之和。
水庫的蒸發(fā)損失ΔWi為建庫后增加的水面面積與增加蒸發(fā)強(qiáng)度的乘積,見式(2)。建庫后增加的水面面積Fvi由時段平均蓄水量通過庫容曲線查詢得到;增加蒸發(fā)強(qiáng)度由當(dāng)?shù)貧庀筚Y料計算得到。水庫滲漏損失按水庫時段平均蓄水量的比例計算;即水庫蒸發(fā)滲漏損失均是時段初、末蓄水量Vi+1和Vi的函數(shù),而水庫時段末蓄水量Vi+1是蒸發(fā)滲漏損失W損i的函數(shù),只有通過循環(huán)迭代,才能準(zhǔn)確試算出滿足設(shè)計精度的蒸發(fā)滲漏損失量和時段末水庫蓄水量。
水庫的蒸發(fā)損失計算見式(2):
ΔWi=1 000(E水-E陸)Fvi
(2)
式中:△Wi為建庫后時段i水庫蒸發(fā)損失量;E水為水面蒸發(fā)量;E陸為陸面蒸發(fā)量;Fvi為建庫后時段i增加的水面面積。
綜合利用水庫為多個供水對象進(jìn)行供水,具有不同供水保證率和破壞深度要求,在進(jìn)行興利調(diào)節(jié)計算時,為計算水庫蓄泄過程和各供水對象供缺水量,需要進(jìn)行多次循環(huán)判斷和迭代試算。
結(jié)合VB程序設(shè)計特點(diǎn),采用模塊化設(shè)計思路。程序主要由函數(shù)聲明、數(shù)據(jù)輸入、水量平衡分析計算、供水保證率統(tǒng)計、計算結(jié)果輸出等五部分組成。其中水量平衡分析計算是程序的核心部分,通過引用主要計算函數(shù)進(jìn)行“二分法”查找循環(huán)迭代試算,最終確定水庫興利庫容和各變量計算成果。主要程序流程見圖1。
圖1 VB程序流程圖Fig.1 VB program flowchart
綜合利用水庫興利調(diào)節(jié)計算需要在已知各用戶需水條件下,根據(jù)初步擬定的興利庫容進(jìn)行調(diào)節(jié)計算,程序按式(1)以總需水量進(jìn)行供需平衡計算,確定時段i缺水量;時段i缺水量自供水最低級用水戶向最高級用水戶逐級對比,若缺水量小于最低級需水,則最低級用水戶缺水量為時段i缺水值,否則最低級用水戶缺水量等于需水,缺水余值繼續(xù)與次低級供水對象需水對比,判斷次低級供水對象缺水量,直至缺水不再有余值,便得到時段i的各個用水戶的缺水量,由需水量與缺水量作差便得到各個用水戶的供水量,且程序?qū)崿F(xiàn)供水優(yōu)先序自高級向低級逐級供水;統(tǒng)計非農(nóng)業(yè)用水戶供水滿足的時段個數(shù),農(nóng)業(yè)用水戶供水滿足的年數(shù),便得到相應(yīng)興利庫容和各個用水戶的供水保證率,重復(fù)上述計算,便得到各用水戶興利庫容與供水保證率曲線。
VB程序通過在工程中引用Microsoft Excel類型庫實(shí)現(xiàn)(.xls)格式文件訪問,首先在工程選項中通過加載Microsoft Excel 14.0 Object Library(Excel 2010),之后在程序中通過聲明Excel對象,便可在程序中操作Excel,進(jìn)行數(shù)據(jù)讀寫。
水庫蒸發(fā)滲漏損失應(yīng)以水庫時段平均蓄水量為計算基礎(chǔ),因平均蓄水量隨水庫月末蓄水量變化,故需要經(jīng)過迭代試算最終確定。程序中采用Do Loop While 循環(huán)試算實(shí)現(xiàn),計算結(jié)束控制條件是計算誤差滿足控制精度。
“二分法”查找又稱折半查找,首先設(shè)定查找范圍的上界、下界,每次迭代以上界、下界中間值作為初值,即每次查找即可縮小范圍一半,是一種查找效率較高的算法。
圖2 綜合利用水庫興利調(diào)節(jié)計算應(yīng)用程序界面Fig.2 Interface for the program of mass balance equation for multipurpose reservoir
洪水河水庫為《全國中型水庫建設(shè)總體安排意見(2013-2017年)》中規(guī)劃建設(shè)的水庫,目前項目處于初步設(shè)計階段。該水庫位于甘肅省酒泉市肅州區(qū)的洪水河干流上,是一座綜合利用的水利工程,主要任務(wù)是向酒泉市肅州區(qū)城市生活及工業(yè)供水,向下游洪臨灌區(qū)農(nóng)業(yè)灌溉供水。設(shè)計城市生活及工業(yè)供水保證率P=95%,洪臨灌區(qū)滴灌灌溉設(shè)計保證率P=90%,渠、管灌灌溉設(shè)計保證率P=75%。經(jīng)項目區(qū)供需平衡分析,扣除地下水、泉水等水量后,需要洪水河水庫提供的水量12 926 萬m3,其中城鎮(zhèn)生活及工業(yè)2 734 萬m3、農(nóng)業(yè)灌溉10 192 萬m3。洪水河水庫考慮汛期河流來沙量大且集中特點(diǎn),調(diào)度運(yùn)行方式為水庫六七月敞泄排沙運(yùn)用,水庫供水但不蓄水,水庫死庫容602 萬m3。
通過水文分析計算得到1970.07-2015.06年歷年逐月入庫徑流過程,實(shí)測1∶1 000水庫水位~面積~庫容曲線,分別采用Excel人工試算法和VB程序法進(jìn)行長系列法興利調(diào)節(jié)計算。
由計算結(jié)果對比(表1和圖3)可知,Excel人工試算法和VB程序計算的興利庫容規(guī)?;疽恢?,興利庫容分別為3 516和3 510 萬m3,相差0.2%;兩種方法計算的水庫多年平均實(shí)際供水量為12 496和12 452 萬m3,相差0.3%。通過對比兩種方法庫損計算過程(圖4)可以發(fā)現(xiàn),存在偏差主要是因Excel人工試算法對庫損未進(jìn)行迭代,導(dǎo)致計算庫損偏大,因而試算出的興利庫容略大于VB程序計算成果。由代表時段水庫蓄水過程對比表(表2)可以看出,在P=95%枯水年份,入庫水量一定條件下,因Excel人工試算法庫損偏大,導(dǎo)致水庫余水變小,水庫蓄水量略??;在P=50%和P=10%豐平水年份,入庫水量充足,因Excel人工試算法V興略大于VB程序法,故其蓄水量略大;連續(xù)時段偏枯年份1986.07-1988.06時段、豐平水年份1989.07-1990.06時段仍符合上述規(guī)律。綜上所述,水庫興利調(diào)節(jié)VB程序計算成果合理可靠,且興利庫容和庫損計算成果更精確。
表1 Excel法和VB程序法調(diào)節(jié)計算成果對比表Tab.1 Comparison between Excel method and VB program method in calculation results
圖3 兩種方法計算水庫供水量對比Fig.3 Comparison of two methods for calculating water supply of reservoir
圖4 兩種方法計算水庫蒸發(fā)滲漏損失對比Fig.4 Comparison of two methods for calculating evaporation and leakage loss
本文對綜合利用水庫興利調(diào)節(jié)計算長系列法程序化進(jìn)行了初步探討。針對傳統(tǒng)人工試算法效率低、耗時長、可移植性差的特點(diǎn),在數(shù)學(xué)“二分法”算法基礎(chǔ)上,結(jié)合水利工程實(shí)際,實(shí)現(xiàn)興利庫容自動快速求解。并以洪水河水庫興利庫容規(guī)模確定為例,進(jìn)行了1970.07-2015.06年長系列綜合利用水庫調(diào)節(jié)計算,經(jīng)Excel人工試算法和VB程序計算對比分析,VB程序計算成果可靠,精度高,數(shù)據(jù)輸入輸出方便,滿足工程規(guī)劃設(shè)計需要,研究成果可作為今后規(guī)劃設(shè)計工作的重要計算工具。
表2 代表時段不同方法水庫月末蓄水過程對比表Tab.2 Comparison of reservoir water storage processes at different times in representative periods