鄭 釗,毋 甜,王偉鋒
(河南黃河勘測規劃設計研究院有限公司,河南 鄭州 450003)
堤壩安全超高計算是最常見水利工程設計內容之一。堤壩安全超高計算主要依據有GB 50286—2013《堤防工程設計規范》[1]和SL274—2001《碾壓式土石壩設計規范》[2]等,安全超高計算在SL 274—2001中作為“水利工程建設標準強制性條文”出現。安全超高計算偏高,會增大工程投資,造成不必要的浪費,反之,則可能對工程安全造成不利影響。因此,無論對于堤壩工程,河道整治工程或是渠系改擴建工程,堤壩安全超高的計算都是重要的設計任務之一。
安全超高y由波浪爬高R、風壅高度e以及安全加高A組成。以較為常用的莆田試驗站公式為例,波浪平均波長計算公式為隱函數,傳統Excel建表試算或采用單變量求解功能往往耗時耗力,且計算成果準確性偏低。其他參數如不同累積頻率下的波高與平均波高比值(hp/hm)、安全超高A則需要繁瑣的查表、內插計算后才能確定。因此,為了提高堤壩安全超高計算的效率和精度,提高堤壩安全超高設計質量。本文以最常用的辦公軟件Excel為載體,采用VBA語言進行二次開發編寫計算、查表功能函數,實現堤壩安全超高的自動快速計算。
VBA(Visual Basic for Applications)是Visual Basic的一種宏語言,是微軟開發出來在其桌面應用程序中執行通用的自動化(OLE)任務的編程語言。主要可以用來擴展 Windows 的應用程序功能,特別是Microsoft Office軟件,它也是一種應用程式視覺化的 Basic 腳本。
Microsoft Office是目前設計人員最常用的辦公軟件,其子軟件Word、Excel、PowerPoint等都可以運用VBA進行二次開發,但基于VBA以Excel為平臺進行二次開發,是將Visual Basic語言直接運用于Excel,無需安裝任何其他軟件或插件,即可有效擴展Excel功能,實現程序化、自動化分析計算,具有傳統Excel手動建表計算分析所無可比擬的效率與精度。同時,VBA還可基于AutoCAD等軟件進行二次開發,由于VBA具有諸多優點,其在水利工程中得到了廣泛的應用[3-9]。
GB 50286—2013與SL 274—2001所提供的超高計算公式是一致的。其中,波浪的平均波高與平均波周期的計算都推薦了莆田試驗站公式;而對于不同類型的水庫,SL 274—2001又提供了鶴地水庫公式、官廳水庫公式。本文研究采用莆田試驗站相關公式。
堤壩安全超過計算公式為:
y=R+e+A
(1)
式中,y—堤壩安全超高,m;R—設計波浪爬高,m;e—設計風壅水面高度,m;A—安全加高,m,根據建筑物級別確定。
(1)最大波浪在壩坡上的爬高計算
①當邊坡系數m=1.5~5.0時:
(2)
②當邊坡系數m≤1.25時,
Rm=KΔKWR0hm
(3)
③當邊坡系數1.25 式中,KΔ—斜坡糙率滲透系數,需要根據護面類型查表確定;Kw—經驗系數,需要查表(內插)確定;hm—平均波高,m;Lm—平均波長,m;m—坡度系數;R0—系數,需要查表(內插)確定。 (2)風壅水面高度計算公式為: (4) 式中,D—風區長度,m;K—綜合摩阻系數,取3.6×10-6;β—計算風向與堤壩軸線的夾角,(°)。 (3)計算波浪平均波高與平均波周期 采用莆田試驗站公式: (5) (6) 式中,W—計算風速,m/s;Hm—水域平均深度,m;g—重力加速度,9.81m/s2。 采用Excel VBA二次開發技術,編寫計算、查表、內插等功能函數。由于功能函數較多,VBA代碼較長,在此僅列舉部分關鍵功能函數開發思路及代碼。 (1)莆田試驗站公式計算平均波長 由式(6)可知,平均波長計算公式為隱函數,本文采用二分法迭代求解,功能函數代碼如圖1所示。 圖1 莆田試驗站平均波長計算VBA代碼 (2)查表、內插功能函數 查表主要采用VBA的Select Case … End Select實現,查表通過循環數組實現,求解經驗系數Kw。功能函數代碼如圖2所示,求解不同累積頻率波高功能函數部分代碼如圖3所示。 圖2 查表、內插功能函數VBA代碼 圖3 查表求解不同累積頻率波高功能函數部分代碼 以黃河下游某引黃灌區渠道改擴建工程為例,說明本文研究所開發程序在堤壩安全超高應用中的便利性與實用性。 渠道基本設計參數為:①渠道建筑物級別:3級;②設計流量Q=50m3/s;③渠道底寬b=18m;④邊坡系數m=0(渠道斷面為U型);⑤糙率n=0.014(混凝土渠道);⑥渠底比降i=1/5000;⑦當地平均風速Wz=18m/s。 將以上基本參數輸入Excel表格之后,即可即時計算風壅水面高度e=0m、波浪爬高R=0.22m、渠堤安全超高A=0.70m,繼而求和計算渠道安全超高y=R+e+A=0.92m。計算結果如圖4所示。 由圖4可知,快速計算方法僅需輸入7個基礎設計參數,計算思路清晰,過程詳盡,計算結果隨輸入變化即時輸出,可將設計人員從繁瑣、重復的計算、查表(內插)中解脫出來,大大提高設計效率。該計算方法是以最常用的Excel軟件為載體,不需添加或加載任何額外插件,可移植性強,使用方便快捷。 圖4 堤壩安全超高計算界面 (1)本文所開發堤壩安全超高快速計算方法以最常用的工作軟件Excel為載體,運用VBA代碼進行二次開發,編寫了安全超高計算所需的查表、內插、迭代計算等功能函數,計算方法界面簡潔,輸入參數少,計算思路清晰,過程詳盡,計算結果隨輸入變化即時輸出,可將設計人員從繁瑣的試算、查表(內插)工作中解脫出來,大幅度提高設計效率和質量。 (2)將Visual Basic語言直接運用于Excel,無需安裝任何其他軟件或插件,即可有效擴展Excel功能,該技術可廣泛應用于水利工程規劃設計工作中。本文研究基本思想可為其他水利工程設計采用VBA二次開發提供科學的參考,具有一定的借鑒意義。
2.2 程序開發思路



3 實例應用

4 結語