EXCEL辅助计算公路中桩与边桩参数的应用(转载)
mushengyuan
mushengyuan Lv.12
2005年12月07日 20:24:03
只看楼主

一、前言在当前的高速公路施工中,全站仪以其高精度、使用简便的特点在施工测量放样中得到广泛的应用。它的使用还有一个意义,它将测量从传统的二维测量提升到三维测量的高度,使测量效率大为提高。全站仪使用时需计算大量的坐标,坐标的正确和精度直接关系到测量结果的准确度;另外,对于现场计算的坐标,能否迅速的得出结果也会影响全站仪的使用效率,所以准确、快速的坐标计算也是全站仪使用中的关键一环。坐标的计算涉及到大量的数据和公式,计算时极易出错。测量中使用最多、计算最为复杂的是公路中桩、边桩坐标和方位角,其他的施工测量都是以此作为参照,经过简单运算即可得结果。现测量员普遍采用可编程计算器帮助计算,使用前需根据不同的计算器特性输入程序,计算时根据不同的路段选择不同的程序输入参数,逐个得到坐标或方位角,还得反复校核。这对于大批量计算来说是一个不小的工程。

一、前言

在当前的高速公路施工中,全站仪以其高精度、使用简便的特点在施工测量放样中得到广泛的应用。它的使用还有一个意义,它将测量从传统的二维测量提升到三维测量的高度,使测量效率大为提高。全站仪使用时需计算大量的坐标,坐标的正确和精度直接关系到测量结果的准确度;另外,对于现场计算的坐标,能否迅速的得出结果也会影响全站仪的使用效率,所以准确、快速的坐标计算也是全站仪使用中的关键一环。

坐标的计算涉及到大量的数据和公式,计算时极易出错。测量中使用最多、计算最为复杂的是公路中桩、边桩坐标和方位角,其他的施工测量都是以此作为参照,经过简单运算即可得结果。现测量员普遍采用可编程计算器帮助计算,使用前需根据不同的计算器特性输入程序,计算时根据不同的路段选择不同的程序输入参数,逐个得到坐标或方位角,还得反复校核。这对于大批量计算来说是一个不小的工程。

现在,电脑在施工单位已得到使用普及,在工程量及数测量数据处理过程中,Office中EXCEL经常是测量技术人员利用的工具。本人根据本人从2002年至2005年的利用电脑处理测量资料的经验结合EXCEL的强大功能,总结出了用电脑计算公路中桩、左侧、右侧坐标的可行方法,并利用EXCEL的逻辑语句编制了一个小的应用程序。希望能把测量人员从重复性的劳动中解脱出来。

二、工作原理

1.应用程序的目标

上文已讲到施工测量中使用最多、计算最为复杂的是公路中线逐点坐标和切线方位角,既中桩的X值、Y值。EXCEL的主要目标就是计算公路中线的中桩参数。

2.源程序

L1 F:N:G:R:U:Q:J:K起算要素

L2 Defm 4 扩大内存

L3 M=I/2-I^3/240/R^2 M为加设缓和曲线后使切线增长的距离

L4 P=I^2/24/R-I^4/2688/R^3 P为加设缓和曲线,圆曲线相对于切线的内移量

L5 E=(R+P)/cos(N/2)-R E外矢距在EXCEL中角度默认为弧度。

L6 L=πRN/180+I L为曲线长含缓和段

L7 T=M+(R+P)tan(N/2)切线长

L8 A=Q-T:B=A+I:D=A+L:C=D-I ZH:HY:HZ:YH里程桩号

L9 Rec(T,F+180) ZH点坐标增量计算

L10 Z[1]=V+J:Z[2]=W+K ZH点坐标(V,W坐标增量,计算机内部运算)

L11 Rec(T,F+GN) HZ点坐标增量计算

L12 Z[3]=V+J:Z[4]=W+K HZ点坐标

LBI θ

L14 {H,S,E} 待点要素

L15 H<A=>GOTO 1 第一段直线上任一点坐标计算

L16 ≠>H<B=>GOTO 2 第一段缓和曲线上任一点坐标计算

L17 ≠>H<C=>GOTO 3 圆曲线上任一点坐标计算

L18 ≠>H<D=>GOTO 4 第二段缓和曲线上任一点坐标计算

L19 ≠>GOTO 5 第二段直线上任一点坐标计算

L20 LBI I 第一段直线坐标计算开始

L21 Rec(Q-H,F+180) 中桩坐标增量计算

L22 X=V+J:Y=W+K 中桩坐标

L23 X=X+V:“X”=?

L24 Y=Y+W:“Y”=?第一段直线上任一点坐标计算结果

L25 GOTO θ

L26 LbI 2第一段缓和曲线坐标计算开始

L27 Z=H-A所求点到ZH距离

L28 O=90Z^2/R/I/π 所求点的方位角

L29 X=Z-Z^5/40/R^2/I^2+Z^9/3456/R^4/I^4

L30 Z=Z^6/6/R/I-Z^7/336/R^3/I^3+Z^11/42440/R^5/I^5 第一段缓和曲线上任一点切线支距法坐标计算

L31 LBI 6 第一段缓和曲线、圆曲线坐标换算计算

L32 Rec(X,F)

L33 X=Z[1]+V:Y=Z[2]+W

L34 Rec(X,F+90G)

L35 X=X+V:Y=Y+W

L36 LbI 3 圆曲线上任一点切线支距法计算开始

L37 Z=H-A-I/2

L38 O=180Z/R/π Z所对中心角

L39 X=Z-Z^3/6/R^2+Z^5/120/R^4+M

L40 Z=Z^2/2/R-Z^4/R^3/24+Z^6/720/R^5+P

L41 GOTO 6

L42 LbI 4 第二段缓和曲线计算开始

L43 Z=D-H到HZ点长度

L44 O=90Z^2/R/I/π Z所对中心角

L45 X=Z-Z^5/40/R^2/I^2+Z^9/3456/R^4/I4

L46 Z=Z^3/6/R/I-Z^7/336/R^3/I^3+Z^11/42240/R^5/I^5

L47 Rec(X,F+GN+180)

L48 X=Z[3]+V:Y=Z[4]+W

L49 Rec(X,F+GN+180-90G)

L50 X=X+V:Y=Y+W

L51 X=X+V:“X”=?

L52 Y=Y+V:“Y”=?

L53 GOTO θ

程序中符号说明

F-第一直线段正方位角(即后视切线上任一点(如ZH)至交点的方位角;

N?交点转向角(即偏角);右偏角为正,左偏角为负,输入转向角时不得输入“+、-”

G?条件(左偏输入-1,右偏输入+1);

R?半径;

I?缓和曲线长度(m)(圆曲线I输入0);

Q?交点里程桩号;

J?交点X坐标值;

K?交点Y坐标值;

H?所求点里程桩号;

X、Y?所求点X、Y坐标值。

3.基本思路

本文基本思路是在EXECEL表格中建立若干个工作表,利用EXECL的逻辑循环语句(IF,VLOOKUP)与函数计算公式把这些工作表链接一起。本文利用蒲石河对外永久公路(K1+200-K2+100段)中桩及边桩计算做出EXECL实例(路宽10米,路基8米,路肩2米),下面以此展开叙述:

⑴、首先在电子表中建立9个工作表,分别命名为基本资料、JD7、JD8、JD9、JD10、JD11、JD12、JD13、成果。

⑵、a首先在基本资料工作表中输入如下表相对的数据。在电子表格中,三角函数计算以弧度为单位,所以角度值必须在单元格中必须利用pi()/180在角度与弧度的转换。在转向角输入时,向左转时在G对应的单元格中输入-1,向右转时在G对应的单元格中输入1(如表1)。方位角所对应的数据可以直接从设计提供的参数表输入,另外可以用几个单元格链接在一起计算,在表2中利用9个单元格链接起来计算。例如利用JD7与JD6所对应的XY值相减,得出JD7所对行数据的△X△Y值,在JD7所对应行的反切值1数据中输入公式=IF(E4="","",IF(F4=0,"",ATAN(G4/F4))),在JD7所对应行的反切值2数据中输入公式=IF(E4="","",IF(G4=0,"",ATAN(F4/G4))),在JD7所对应行的数据1中输入公式=IF(AND(F4>0,G4=0),0,("")),在JD7所对应行的数据2中输入公式=IF(AND(G4>0,F4>0),H4,IF(AND(G4>0,F4=0),PI()/2,IF(AND(G4>0,F4<0),PI()/2-I4,("")))),在JD7所对应行的数据3中输入公式IF(AND(F4<0,G4=0),PI(),("")),在JD7所对应行的数据4输入公式=IF(AND(G4<0,F4<0),PI()+H4,IF(AND(F4=0,G4<0),1.5*PI(),IF(AND(G4<0,F4>0),1.5*PI()-I4,("")))),在JD7所对应行数据方位角弧度中输入公式=IF(AND(F4>0,G4=0),J4,IF(G4>0,K4,IF(AND(G4=0,F4<0),L4,IF((G4<0),M4,("")))))。

免费打赏
mushengyuan
2005年12月07日 20:25:55
2楼
b利用已输入的基本资料数据,计算出如下表表3对应的单元格的数据。现以JD7所对应行做公式叙述。在M所对应单元格输入公式IF((OR(AD4=0,AE4=0)),"",AE4/2-AE4^3/240/AD4^2),在P所对应单元格输入公式IF(AD4=0,"",AE4^2/24/AD4-AE4^4/2688/AD4^3),在E所对应单元格输入公式IF(OR(D4="",E4=""),"",(AD4+AH4)/COS(AC4/2)-AD4),在L所对应单元格输入公式IF(OR(D4="",E4=""),"",PI()*AD4*AC4/PI()+AE4),在T所对应单元格输入公式IF(OR(D4="",E4=""),"",IF(AG4="",0,AG4+(AD4+AH4)*TAN(AC4/2))),在ZH所对单元格输入公式IF(OR(D4="",E4=""),"",C4-AK4),在HY所对应单元格输入公式IF(OR(D4="",E4=""),"",AL4+AE4),在QZ所对应单元输入公式IF(OR(D4="",E4=""),"",AM4/2+AO4/2),在YH所对应单元格输入公式IF(OR(D4="",E4=""),"",AP4-AE4),在HZ所对应单元格输入公式IF(OR(D4="",E4=""),"",AL4+AJ4),在BC所对单元格输入步长。

回复
mushengyuan
2005年12月07日 20:26:36
3楼
c.以上基本资料工作表以JD7所对应行做例子,JD8至JD13所对应行输入公式采用电子表格中的编辑栏中的向下填充功能,向下填充公式。

⑶.然后利用源程序开始在工作表JD7、JD8、JD9、JD10、JD11、JD12、JD13中进行编单元格。现在以JD7所对应的工作表进行实例叙述。工作表在计算过程中只能上一个交点的HZ点到本交点的HZ点间的数据进行计算。

a、例如表4,在工作表的第一个单元格输入数字7(与JD7所对应的数字7一致),然后把JHZH、JDX、JDY、R、I、P、E、F、G、N、M、BC所对单元格参数与基本资料所对应的单元格参数链接起来,加宽值输入设计加宽值,常数输入为从路肩开始横向增加的宽度。

回复
mushengyuan
2005年12月07日 20:27:14
4楼
b、例如表5,桩号(ZH-HZ)所对应的单元格中分别输入公式VLOOKUP(A1,基本资料!$A$3:$AQ$32,38,)、VLOOKUP(A1,基本资料!$A$3:$AQ$32,39,)、VLOOKUP(A1,基本资料!$A$3:$AQ$32,40,)、VLOOKUP(A1,基本资料!$A$3:$AQ$32,41,)、VLOOKUP(A1,基本资料!$A$3:$AQ$32,42,)。在ZH所对应的参数单元格输入公式IF(AND(A8>=A$7,A8<=A$8),A$3-A8,IF(AND(A8>=A$8,A8<=A$9),A8-A$8,IF(AND(A8>=A$9,A8<=A$11),(A8-A$8-E$3/2),IF(AND(A8>=A$11,A8<=A$12),A$12-A8,"")))),利用编辑工具栏中向下填充公式。在ZH点与HZ点对应的X、Y单元格中分别输入公式B3+F3*COS(A5+PI())、C3+F3*SIN(A5+PI())、B3+F3*COS(A5+B5*C5)、C3+F3*SIN(A5+B5*C5),首先计算出ZH点与HZ点所对应的X、Y坐标。在ZH点所对应的切线方位角单元格IF(A8<=A$8,A$5,IF(AND(A8>=A$8,A8<=A$9),0.5*B8^2/D$3/E$3*B$5+A$5,IF(AND(A8>=A$9,A8<=A$11),B8/D$3*B$5+A$5,IF(AND(A8>=A$11,A8<=A$12),0.5*B8^2/D$3/E$3*(-B$5)+A$5+B$5*C$5,IF(A8>=A$12,A$5+B$5*C$5))))),然后利用向下填充功能把公式向下填充,计算相对应的桩号在切线方向的方位角。在HY点所对应的X、Y单元格中输入相应公式IF(AND(A9>=A$7,A9<=A$8),ROUND(B9*COS(A$5+PI())+B$3,3),IF(AND(A9>=A$8,A9<=A$9),ROUND(C$8+COS(A$5)*(B9-B9^5/40/D$3^2/E$3^2+B9^9/3469/D$3^4/E$3^4)+COS(A$5+PI()/2*B$5)*(B9^3/6/D$3/E$3-B9^7/336/D$3^3/E$3^3+B9^11/42240/D$3^5/E$3^5),3),IF(AND(A9>=A$9,A9<=A$11),ROUND(C$8+COS(A$5)*(B9-B9^3/6/D$3^2+B9^5/120/D$3^4+D$5)+COS(A$5+PI()/2*B$5)*(B9^2/2/D$3-B9^4/D$3^3/24+B9^6/720/D$3^5+I$3),3),IF(AND(A9>=A$11,A9<=A$12),ROUND(C$12+COS(A$5+B$5*C$5+PI())*(B9-B9^5/40/D$3^2/E$3^2+B9^9/3469/D$3^4/E$3^4)+COS(A$5+PI()+B$5*C$5-PI()/2*B$5)*(B9^3/6/D$3/E$3-B9^7/336/D$3^3/E$3^3+B9^11/42240/D$3^5/E$3^5),3),""))))与IF(AND(A9>=A$7,A9<=A$8),ROUND(B9*SIN(A$5+PI())+C$3,3),IF(AND(A9>=A$8,A9<=A$9),ROUND(D$8+SIN(A$5)*(B9-B9^5/40/D$3^2/E$3^2+B9^9/3469/D$3^4/E$3^4)+SIN(A$5+PI()/2*B$5)*(B9^3/6/D$3/E$3-B9^7/336/D$3^3/E$3^3+B9^11/42240/D$3^5/E$3^5),3),IF(AND(A9>=A$9,A9<=A$11),ROUND(D$8+SIN(A$5)*(B9-B9^3/6/D$3^2+B9^5/120/D$3^4+D$5)+SIN(A$5+PI()/2*B$5)*(B9^2/2/D$3-B9^4/D$3^3/24+B9^6/720/D$3^5+I$3),3),IF(AND(A9>=A$11,A9<=A$12),ROUND(D$12+SIN(A$5+B$5*C$5+PI())*(B9-B9^5/40/D$3^2/E$3^2+B9^9/3469/D$3^4/E$3^4)+SIN(A$5+PI()+B$5*C$5-PI()/2*B$5)*(B9^3/6/D$3/E$3-B9^7/336/D$3^3/E$3^3+B9^11/42240/D$3^5/E$3^5),3),""))))。在公路中桩HY、QZ、YH及ZH点以下所对应的X、Y单元格填充以上公式,利用以公式计算出中桩坐标。ZH点以下所对桩号内输入上一个交点处HZ点桩号,在与其相邻的递增桩号取5的倍数,例如在表5中桩号1100以下的桩号中输入公式A14+E$5,E$5所表示的步长为5。在左、右侧任意值分别输入宽度所对公式IF(B$5>0,5,IF(A8<=A$8,5,IF(AND(A8>=A$8,A8<A$9),(A8-A$8)/E$3*F$5+5,IF(AND(A8>=A$9,A8<A$11),5+F$5,IF(AND(A8>=A$11,A8<A$12),ABS(A8-A$12)/E$3*F$5+5,IF(A8>=A$12,5))))))+I$5、IF(B$5<0,5,IF(A8<=A$8,5,IF(AND(A8>=A$8,A8<A$9),(A8-A$8)/E$3*F$5+5,IF(AND(A8>=A$9,A8<A$11),5+F$5,IF(AND(A8>=A$11,A8<A$12),ABS(A8-A$12)/E$3*F$5+5,IF(A8>=A$12,5))))))+I$5,利用EXCEL的相下填充功能,向下填充公式,计算左、右侧的任意宽度。在ZH所对应左侧任侧任意值X、Y单元格内分别输入公式C8+I8*COS(F8-PI()/2)与公式D8+I8*SIN(F8-PI()/2),在ZH所对应右侧任意值X、Y单元格内分别输入公式C8+T8*COS(F8+PI()/2)与D8+T8*SIN(F8+PI()/2),同样利用向下填充功能复制单元格公式。
回复
mushengyuan
2005年12月07日 20:27:50
5楼
c.利用上述方式,在工作表JD8-JD13编辑公式。

⑷工作表成果得出所有在K1+100-K2+100段的中桩及左右侧任意点坐标。参数栏所对应值为从路肩横向增加值(变换常数)。例如在桩号1100所对应行,左侧任意值X、Y单元格输入公式IF(AND(B4>=1100,B4<=1250),VLOOKUP(B4,JD7!A:V,10,FALSE),IF(AND(B4>=1255,B4<=1360),VLOOKUP(B4,JD8!A:V,10,FALSE),IF(AND(B4>=1365,B4<=1585),VLOOKUP(B4,JD9!A:V,10,FALSE),IF(AND(B4>=1590,B4<=1760),VLOOKUP(B4,JD10!A:V,10,FALSE),IF(AND(B4>=1765,B4<=1875),VLOOKUP(B4,JD11!A:V,10,FALSE),IF(AND(B4>=1880,B4<=2030),VLOOKUP(B4,JD12!A:V,10,FALSE),IF(AND(B4>=2035,B4<=2105),VLOOKUP(B4,JD13!A:V,10,FALSE),"")))))))与IF(AND(B4>=1100,B4<=1250),VLOOKUP(B4,JD7!A:V,11,FALSE),IF(AND(B4>=1255,B4<=1360),VLOOKUP(B4,JD8!A:V,11,FALSE),IF(AND(B4>=1365,B4<=1585),VLOOKUP(B4,JD9!A:V,11,FALSE),IF(AND(B4>=1590,B4<=1760),VLOOKUP(B4,JD10!A:V,11,FALSE),IF(AND(B4>=1765,B4<=1875),VLOOKUP(B4,JD11!A:V,11,FALSE),IF(AND(B4>=1880,B4<=2030),VLOOKUP(B4,JD12!A:V,11,FALSE),IF(AND(B4>=2035,B4<=2105),VLOOKUP(B4,JD13!A:V,11,FALSE),""))))))),在中桩坐标所对应的X、Y单元格输入公式IF(AND(B4>=1100,B4<=1250),VLOOKUP(B4,JD7!A:V,3,FALSE),IF(AND(B4>=1255,B4<=1360),VLOOKUP(B4,JD8!A:V,3,FALSE),IF(AND(B4>=1365,B4<=1585),VLOOKUP(B4,JD9!A:V,3,FALSE),IF(AND(B4>=1590,B4<=1760),VLOOKUP(B4,JD10!A:V,3,FALSE),IF(AND(B4>=1765,B4<=1875),VLOOKUP(B4,JD11!A:V,3,FALSE),IF(AND(B4>=1880,B4<=2030),VLOOKUP(B4,JD12!A:V,3,FALSE),IF(AND(B4>=2035,B4<=2105),VLOOKUP(B4,JD13!A:V,3,FALSE),"")))))))与IF(AND(B4>=1100,B4<=1250),VLOOKUP(B4,JD7!A:V,4,FALSE),IF(AND(B4>=1255,B4<=1360),VLOOKUP(B4,JD8!A:V,4,FALSE),IF(AND(B4>=1365,B4<=1585),VLOOKUP(B4,JD9!A:V,4,FALSE),IF(AND(B4>=1590,B4<=1760),VLOOKUP(B4,JD10!A:V,4,FALSE),IF(AND(B4>=1765,B4<=1875),VLOOKUP(B4,JD11!A:V,4,FALSE),IF(AND(B4>=1880,B4<=2030),VLOOKUP(B4,JD12!A:V,4,FALSE),IF(AND(B4>=2035,B4<=2105),VLOOKUP(B4,JD13!A:V,4,FALSE),""))))))),在右侧任意值所对应的X、Y单元格中输入公式IF(AND(B4>=1100,B4<=1250),VLOOKUP(B4,JD7!A:V,21,FALSE),IF(AND(B4>=1255,B4<=1360),VLOOKUP(B4,JD8!A:V,21,FALSE),IF(AND(B4>=1365,B4<=1585),VLOOKUP(B4,JD9!A:V,21,FALSE),IF(AND(B4>=1590,B4<=1760),VLOOKUP(B4,JD10!A:V,21,FALSE),IF(AND(B4>=1765,B4<=1875),VLOOKUP(B4,JD11!A:V,21,FALSE),IF(AND(B4>=1880,B4<=2030),VLOOKUP(B4,JD12!A:V,21,FALSE),IF(AND(B4>=2035,B4<=2105),VLOOKUP(B4,JD13!A:V,21,FALSE),"")))))))与IF(AND(B4>=1100,B4<=1250),VLOOKUP(B4,JD7!A:V,22,FALSE),IF(AND(B4>=1255,B4<=1360),VLOOKUP(B4,JD8!A:V,22,FALSE),IF(AND(B4>=1365,B4<=1585),VLOOKUP(B4,JD9!A:V,22,FALSE),IF(AND(B4>=1590,B4<=1760),VLOOKUP(B4,JD10!A:V,22,FALSE),IF(AND(B4>=1765,B4<=1875),VLOOKUP(B4,JD11!A:V,22,FALSE),IF(AND(B4>=1880,B4<=2030),VLOOKUP(B4,JD12!A:V,22,FALSE),IF(AND(B4>=2035,B4<=2105),VLOOKUP(B4,JD13!A:V,22,FALSE),""))))))),在切线方位角所对应的单元格中输入公式IF(AND(B4>=1100,B4<=1250),VLOOKUP(B4,JD7!A:V,8,FALSE),IF(AND(B4>=1255,B4<=1360),VLOOKUP(B4,JD8!A:V,8,FALSE),IF(AND(B4>=1365,B4<=1585),VLOOKUP(B4,JD9!A:V,8,FALSE),IF(AND(B4>=1590,B4<=1760),VLOOKUP(B4,JD10!A:V,8,FALSE),IF(AND(B4>=1765,B4<=1875),VLOOKUP(B4,JD11!A:V,8,FALSE),IF(AND(B4>=1880,B4<=2030),VLOOKUP(B4,JD12!A:V,8,FALSE),IF(AND(B4>=2035,B4<=2105),VLOOKUP(B4,JD13!A:V,8,FALSE),""))))))),利用向下填充功能就得出桩号5米递增的坐标与方位角。


回复
mushengyuan
2005年12月07日 20:28:20
6楼
本文的工作原理基于计算机常规软件EXCEL的应用,提高工程测量内业计算速度与准确度,充分发挥了现有办公设备的功能,极大地提高了工作效率。

附EXCEL工作表(基本资料、JD7、成果)样例


回复
cailinghao
2005年12月08日 13:29:03
7楼
虽然狠好,可是,我没有看见你得程序,难道是我没有找到,还是什么原因
回复
linchao44
2006年03月23日 12:33:14
8楼
这表格里的数据是不是还有数据没有列出来啊.能不能列的具体点啊.
谢谢!!!!!
回复
linchao44
2006年03月24日 09:40:53
9楼
原来上面搞出来的程序,乱七八糟的.哎!.........
回复
xiyilong
2007年01月22日 16:50:49
10楼
测量坐标计算距离
回复

相关推荐

APP内打开