Excel竖曲线计算

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

利用Excel表格进行全线线路竖曲线的统一计算

高速公路纵断面线型比较复杂,竖曲线数量比较多。由于相当多的竖曲线分段造成了设计高程计算的相对困难,为了方便直接根据里程桩号计算设计高程,遂编制此计算程序。

程序原理:

1、根据设计图建立竖曲线参数库;

2、根据输入里程智能判断该里程位于何段竖曲线上;

3、根据得到的竖曲线分段标志调取该分段的曲线参数到计算表格中;

4、把各曲线参数带入公式进行竖曲线高程的计算;

5、对程序进行优化和简化,去掉中间环节,进行直接计算;

6、防止计算过程中的误操作,对计算表进行相应的保护。

竖曲线的高程计算原理公式:

H=G+B*A+(-1)^J*X2÷(2R)

H: 计算里程的设计高程

K: 计算点里程

D: 竖曲线交点里程

G: 竖曲线交点的高程

R: 竖曲线半径

T: 切线长

M: 前坡度I1

P: 后坡度I2

A: A=Abs(K-D)

X: A>T => X=0; A X=T-A

J: M-P<0 => J=0; M-P>=0 => J=1

B: K<=D =>B=-M ; K>D => B=P

程序特色:

1、可以无限添加竖曲线,竖曲线数据库不限制竖曲线条数;

2、直接输入里程就可以计算设计高程,不需考虑该里程所处的竖曲线分段;

3、对计算公式进行保护,表格中不显示公式,不会导致公式被错误修改或恶意编辑。

程序的具体编制步骤:

1、新建Excel工作薄,对第一第二工作表重新命名为“参数库”和“计算程序”,根据设计图建立本标段线路竖曲线的参数库,需要以下条目:

(1)、竖曲线编号;

(2)、竖曲线的前后坡度(I1、I2)不需要把坡度转换为小数;

(3)、竖曲线半径、切线长(不需要考虑是凸型或凹型);

(4)、竖曲线交点里程、交点高程;

(5)、竖曲线起点里程、终点里程(终点里程不是必要参数,只作为复核检测用);

如图1所示:

图1

2、进行计算准备:

(1)、根据输入里程判断该里程所处的曲线编号:

需要使用lookup函数,函数公式为“LOOKUP(A2,参数库!H3:H25,参数库!A3:A25)”。

如图2所示:

里程为K15+631的桩号位于第11个编号的竖曲线处,可以参照图1 进行对照

(2)、在工作表“程序计算”中对应“参数库”相应的格式建立表格

根据判断得出的竖曲线编号,把相应编号的各参数调入工作表“程序计算”,需要使用vlookup 函数,例如:第四列调取坡度I1函数公式为“VLOOKUP(C2,参数库!A1:I25,2)”调取交点高程的函数公式为“VLOOKUP(C2,参数库!A1:I25,7)”结果出来可以参照图1进行对照。

如图3所示:

(3)、现在计算该里程设计高程所需要的参数已经具备,可以编制公式进行计算了,根据竖曲线高程计算的原理公式,把单元格数据套入公式:

公式为:H=G+B*A+(-1)^J*X2÷(2R)

其中B的函数公式为:IF(K<=D,-M,P) 转化为表格编号就是IF(A2<=H2,-1*D2/100,E2/100) A 的函数公式为ABS(A2-H2)

X的函数公式位IF(ABS(A2-H2)>G2,0,(G2-ABS(A2-H2)))

图2

图3

J的函数公式为IF(D2/100-E2/100<0,0,1)

H=G+B*A+(-1)^J*X2÷(2R)

=I2+ IF(A2<=H2,-1*D2/100,E2/100)* ABS(A2-H2)+POWER((-1),

IF(D2/100-E2/100<0,0,1))*POWER(IF(ABS(A2-H2)>G2,0,(G2-ABS(A2-H2))),2)/2/F2

现在把H的计算函数输入B2单元格,看看结果是不是出来了,这时候可以把这个结果和

计算器计算出来的结果进行对照。

如图4 所示:

图4

万事俱备,现在开始计算,下拉B2单元格,竟然出错,如图5

图5

解决办法就是同时选择B2直到后面的K2,然后再下拉,下拉前一定要把引用的“参数库”中的单元格进行锁定,如图6、7。

这样就显得复杂了点,现在开始简化计算程序,C2 到K2单元格都是其中间作用的,可以直接套用到高程的计算公式中,分别把C2 到K2单元格所对应的公式替换到单元格B2,得到最终公式:

=VLOOKUP(C2,参数库!$A$1:$I$25,7)+ IF(A2<=VLOOKUP(C2,参数库!$A$1:$I$25,6),-1*VLOOKUP(C2,参数库!$A$1:$I$25,2)/100,VLOOKUP(C2,参数

库!$A$1:$I$25,3)/100)* ABS(A2-VLOOKUP(C2,参数库!$A$1:$I$25,6))+POWER((-1), IF(VLOOKUP(C2,参数库!$A$1:$I$25,2)/100-VLOOKUP(C2,参数库!$A$1:$I$25,3)/100<0,0,1))*POWER(IF(ABS(A2-VLOOKUP(C2,参数库!$A$1:$I$25,6))>VLOOKUP(C2,参数库!$A$1:$I$25,5),0,(VLOOKUP(C2,参数库!$A$1:$I$25,5)-ABS(A2-VLOOKUP(C2,参数库!$A$1:$I$25,6)))),2)/2/VLOOKUP(C2,参数库!$A$1:$I$25,4)

图6

图7

相关文档
最新文档