寧鵬飛,許經宇,高乃東,陳中竹
(吉林省水利水電勘測設計研究院,吉林 長春 130021)
在水利工程中,土壩滲流量計算和浸潤線的位置確定是土壩設計的重要工作,常常通過滲流量及浸潤線確定土壩的安全性。在計算時,根據壩體上下游水位、壩體形狀及材料等參數采用試算法確定浸潤線方程。由于人工計算工程量大而且誤差大,因此本文引用Excel中的VBA編程進行計算,大大地提高了計算的速度和精度。
在土壩設計中,各種土壩如均質土壩、粘土心墻土壩、斜墻土壩無排水設備和貼坡排水等滲流計算理論基本相同,文章將以不透水地基上均質土壩為例來論述VBA的滲流計算中應用(如圖1所示)。

圖1 筑于水平不透水地基上的均質土壩圖
土壩滲流常假定為平面問題去進行分析,一般采用兩段法,建立上游段流量方程和下游段流量方程,通過方程聯立來求出浸潤曲線下游溢出點的高度及單寬流量。
上游段所通過的單寬滲流量為:

下游段所通過的單寬流量為:

浸潤曲線的方程式為:

式中:H1為壩上游水深;H2為下游水深;m1為上游邊坡;m2為下游邊坡;k為壩體滲透系數;ΔL為等效矩形寬度;L為上游水位壩坡交點和下游壩坡與壩基交點的距離;hk為出水點水深;a0為逸出點水位以上的高度;q上游為壩體上游段單寬流量;q下游為壩體下游段單寬流量。
根據通過上下游段的單寬流量相等,由公式(1)、(2)、(3)、(4)聯立導出:

表1 迭代計算表

可以看出,公式(6)的兩側為關于a0的高次非線性方程,用一般純數學的解析方法是難以求解的。而Excel的VBA程序恰好能夠實現這一功能。據此,運用VBA編制程序計算可以在滿足設計要求的前提下準確、高效地完成任務。
吉林省某均質壩建于不透水地基上,壩高17 m,上游水深為15 m,下游水深為2 m,上游邊坡為3,下游邊坡為2,壩頂寬6 m,壩體土的滲透系數經實驗測得為0.001 cm/s。要求:計算單寬流量并畫出壩體內的浸潤線曲線。
通過以上已知條件,把 H1,H2,m1,m2,K,b 帶入公式(6)兩側,則左右分別為關于a0的表達式,只要計算出一個a0使左右兩式的值相等,即為所求。根據a0的物理意義,取值范圍為 a0∈[0,(H1-H2)],給 a0賦予初始值(取 0.01),將分別得到公式(6)兩側的兩個值,如果兩值差的絕對值不滿足要求(如大于0.000 1),則繼續給a0賦予新值,新值為原值基礎上加一個微量(如0.001),重新計算,直到認為兩值相等(即小于0.000 1),停止運算,此時a0的值即為所求。通過公式(4)的變形公式hk=a0+H2可求hk,在計算出hk后通過公式(5)則能求出浸潤曲線方程。
VBA是基于Microsoft Excel提供的IDE編程環境實現的一種自動化程序語言,通過在Excel的“宏”實現程序的自動化運行。在“工具”菜單下找到“宏”,點開“Visual Basic編輯器”,執行以下程序即可實現例題的求解結果。

將已知條件輸入編好的電子表格中,按“點擊計算”按鈕再開始循環計算,直到L3和M3相等為止,a0,hk即為所求結果,如表1所示。

表2 浸潤線坐標點計算
將hk值帶入到公式(5)中,得下式:

根據 x 的取值范圍[0,L+ΔL-m2·hk],即[0,42.1],計算出浸潤線坐標點如表2所示。
按描點法繪出如圖1中所示的浸潤曲線,其上游段是從A′點開始的,而實際式(7)從A點滲入壩體,故需對前段A′F加以修正,采用近似方法把A點作為上游起點,與F點光滑連接。
通過VBA在滲流計算中的應用,將復雜的試算過程用計算機程序來實現,省去了大量計算的工作時間和查表帶來的誤差以及人工試算的繁雜過程,并通過在Excel表格中的可視化做到了輸入、輸出格式直觀方便,大大提高了準確率和工作效率。此方法適合大部分含有復雜試算過程的工程計算,比如溢流壩下游收縮水深,明渠均勻流正常水深及臨界水深、消力池收縮水深等,供參考使用。
[1]神龍工作室編著.Excel高效辦公:VBA范例應用[M].北京:人民郵電出版社,2006.
[2]李煒主編.水力學計算手冊(第二版)[M].北京:中國水利水電出版社,2006.