郑 钊,毋 甜,王伟锋
(河南黄河勘测规划设计研究院有限公司,河南 郑州 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 结语