马 超,顾嵋杰,王波雷,闫 飞
(中国电建集团西北勘测设计研究院有限公司,西安 710065)
AutoCAD Civil 3D软件是一款面向土木工程设计与文档编制的建筑信息模型(BIM)解决方案[1]。它为基础设施行业的各类技术人员提供了强大的设计、分析以及文档编辑功能[2]。随着软件功能的不断丰富,Civil 3D在水利工程中的应用也逐渐普及。在水库工程方面[3-4],水位与库容关系曲线是重要的设计内容,关系到坝体、泄水、导流建筑物的合理布置。传统的断面法[5]、等高线体积法[6]等计算过程相对繁琐,曲面计算效率低。在GIS软件平台上构建三角网(TIN)模型,可利用其统计分析和二次开发功能进行库容计算[7]。
现有基于Civil 3D数据实现库容曲线的方法[8-9]需要建立基准曲面(地形曲面),对照曲面(假定水位面)。这种方法虽然在一定程度提高了工作效率,但在1个AutoCAD Civil 3D文件中需要创建多个地形曲面,容易造成软件运行速度降低,这种现象在大面积水库工程[10-11],或者在高坝水库工程中更为突出。本文利用AutoCAD Civil 3D软件曲面特性,创建曲面分层体积数据,导出到excel使用Excel Vba编程[12]对数据进行修正,在利用Execl成图功能创建库容曲线,本文采用二次插值公式,实现不同水位与库容插值,方便设计人员查找特征水位、特征库容,为水利工程设计效率提升提供支撑。
首先,利用AutoCAD Civil 3D软件的曲面功能,创建水土交界面,即库容底曲面。对于拦河水库:创建地形曲面和大坝迎水面,将2个曲面进行粘贴融合,裁剪多余曲面,形成下凹式的库容底曲面;对于平原水库:创建围坝迎水面和库底平面,将2个曲面进行粘贴融合形成下凹式的库容底曲面。
其次,利用AutoCAD Civil 3D软件,曲面特性中高程分析功能获得分层体积表格,软件生成的区间体积(范围内体积)为上下分层平面之间的库容底曲面与下层平面的积分(下文成填方体积),见图1中阴影填充区域,而库容为上下分层平面之间的库容底曲面与上层平面的积分(下文成挖方体积),需要进行挖填方转换。挖填方转换计算原理如下:
图1 曲面分析体积示意图
(1)
KN2=(S1+S1′+S2+S2′)×ΔH1-V2-V2′
(2)
KN3=(S1+S1′+S2+S2′+S3+S3′)
×ΔH1-V3-V3′
(3)
KN3=(S1+S1′+S2+S2′+S3+S3′+…+Sn+Sn′)
×ΔH1-Vn-Vn′
(4)
(5)
式中:KN为总库容(总挖方体积),万m3;KNi为曲面内第i分层线至第i-1分层线之间的库容,万m3;KN1…KNn为从低到高曲面内各分层线之间的库容,万m3;V1…Vn为从低到高各曲面至分层线左侧的填方体积,万m3;V1′…Vn′为从低到高各曲面至分层线右侧的填方体积,万m3;S1…Sn为从低到高各分层线之间的左侧曲面在水平面投影距离,m;S1′…Sn′为从低到高各分层线之间的右侧曲面在水平面投影距离,m;H1…Hn为从低到高各分层线之间的高差,m。
根据上述计算原理,在设计工作中,设计人员一般在Excel表格中手动编辑公式,但是分层较少时影响计算精度,分层多时工作量依然繁重。本文根据挖填方转计算原理,利用Excel自带的VBA程序编程实现。具体为,数据导入,转换挖填方(修正体积),根据修正数据创建库容曲线。Excel VBA程序实现库容曲线流程见图2。
图2 Excel VBA程序实现库容曲线流程图
在方案期间,设计人员需要反复通过库容曲线确定特征水位,为了简便计算采用线性插值,存在一定误差。为此,本程序增加插值模块,根据水库工程经验,在水位加高时,一般水面也在加宽。可见,水库的库容与高程近似成二次函数关系。因此,采用二次插值[13-14]相对符合实际情况。
二次插值函数:
y=ax2+bx+c
(6)
式中:y、x分别为二次函数的因变量、自变量;a、b、c分别为二次函数的参数。
根据相邻3个点确定,a、b、c参数:
(7)
式中:y1、y2、y3分别为库容曲线中相邻三个离散点的库容,万m3;x1、x2、x3分别为库容曲线中相邻三个离散点的水位,m。
求解方程组可得:
(8)
水位与库容插值流程流程见图3。
图3 水位与库容插值流程图
新疆某平原水库5 500万m3,其正常蓄水位受到水库选址,水库占地面积的影响。在方案比选时,需要反复确定正常蓄水位,传统方法计算正常蓄水位需花费大量的时间。本文采用Excel VBA程序,取得良好效果,具体步骤如下:
(1) 创建库容底曲面。
创建围坝迎水面和库底曲面,将2个曲面进行粘贴融合形成下凹式的库容底曲面。在对象查看中库容底曲面见图4。
图4 库容底曲面图
(2) 创建分层体积表
利用AutoCAD Civil 3D软件,曲面特性→分析→高程分析→在表格样式增加“曲面范围体积”→选择范围数(默认单位为m)→填基准高程(默认曲面最底点取整)→点击运行分析按钮→点击确定→选择曲面点击左上角添加图例→将分层体积表放到CAD模型中,利用Civil Table Export To CSV按钮导出为“Civil曲高程数据面.csv”文件(曲面特性分析窗口见图5、高程表1)。
(3) 启动程序计算
图5 曲面特性分析窗口图
表1 高程表
图6 生成库容曲线程序面板图
运行包含Excel VBA计算程序的Excel文件,生成库容曲线程序面板见图6。选择上文导出的“Civil曲高程数据面.csv”文件,点击修正体积,得到累计库容表。根据累计库容与水位绘制水位与库容关系曲线,见图7。同时选择“库容”→“水位”输入库容5 500万m3,点击插值计算,求得正常蓄水位为1 527.11 m。
图7 水位与库容关系曲线图
(4) 二次差值的适宜性
本文选取4处水位段:1 504.00~1 506.00 m、1 510.00~1 512.00 m、1 516.00~1 518.00 m、1 522.00~1 524 .00 m,分别进行插值求解对应库容,为计算简便,选取中点插值。二次差值的适宜性分析见表2。
表2 二次差值的适宜性分析表
由表2可知,与线性插值相比,二次插值具在各个插值段均有较高的精度,尤其在低水位下,准确度远远高于线性插值。
(1) 传统的断面法、等高线体积法等计算过程相对繁琐,曲面计算效率低。利用Civil 3D创建水位曲面和库底地形曲面进行库容计算,效率虽然有一定的提高,但在高坝设计方案比选时,工作量较大。
(2) 本文利用Civil 3D曲面高程分析的功能,获得曲面分层填方表,再通过自编的Excel VBA程序将数据转化为分层挖方表,随后求得到累计库容,利用Excel图功能,得到水位与库容关系曲线。
(3) 为了满足设计人员方便获得特征水位、特征库容数据,增加二次插值模块,快速确定特定库容的特征水位、特征库容,可为后续工作提供依据。
(4) 本程序成功应用于新疆某平原水库设计方案阶段,快速确定总库容对应的水位,可为确定坝高及计算工程量节约大量时间。