何名灯
(福州市勘测院,福建 福州 350108)
线路测量含各级公路、市政道路、河道、桥梁、轨道交通等线形工程在勘测、设计、施工、运营阶段所进行的测量工作的总称。线路测量短则几百米,长则几十上百千米,在日常的测量放样过程中,要经常对线路的中桩、边桩、结构物坐标以及标高进行实地放样,内业计算的数据多,对于现场具体的桩号会因内业计算不齐全而造成无法放样。通过CASIO fx-5800P计算器编程,实现线路任意点三维坐标的计算,给测量放样工作带来了极的便利。
CASIO计算器采用类结构化BASIC语言,编写的程序易于阅读;内置128个常用的数学、物理、测量等公式,且有28500多个字节闪存,有足够的函数、容量编写相关的计算程序。对于须录入多个起算参数的程序,可利用串列存储统计数据的功能,便于输入与编辑统计数据。该型号计算器无须备用电池保存机器内的数据,只采用一节7号电池,即使取出电池也不会丢失内存中的程序与数据。
线路中线的组成形式有多种多样,有基本型、S型、凸型、卵型、复合型等样式;从图1~图5可知线路中线不论何种样式,均只有三种基本线型组成,即:直线、圆曲线以及缓和曲线。
图1 S型
图2 复合型
图4 凸型
图5 卵型
常见的线路中桩坐标的算法有偏角法、切线支距法等;对于不同的线型所运用的数学模型也不一样,计算器程序编写较为烦琐。本文用运复化辛普森公式进行线路坐标计算;该公式不论是直线段、圆曲线段、缓和曲线段还是非完整缓和曲线段其计算公式均一致,比较适合于计算器的编程,该公式被称为曲线的万能计算法。其中线坐标算法如下:
图6 计算流程图
*******Prog DL***********
Lb1 8
"0→ZXY,1→ZH,2→BH"?W:(0→中桩坐标及高程,1→中桩高程,2→边桩高程)
If W=1:Then "ZH"?Z:Goto 1:IfEnd
If W=2:Then Goto 3:IfEnd
If W=0:Then Goto 0:Else Stop:IfEnd
Lb1 0:
"ZH"?Z:(ZH,表示输入要计算的中桩桩号)
For 1→I TO 12 Step 3(设置要素存储位置,可根据需要自行调整)
If Z≥List X[I] And Z< List Y[I] Then
List X[I] →A:List Y[I] →B:
List Freq[I] →C:List X[I+1] →D:
List Y[I+1] →E:List Freq[I+1] →K:
List X[I+2] →G:List Y[I+2] →T:
If D>0:Then 1/D*K→D:IfEnd
If E>0:Then 1/E*K→E:IfEnd
Prog “DL.XY” (调用DL.XY子程序)
"P.X":X⊿(显示中桩X、Y坐标)
"P.Y":Y⊿
IfEnd:Next(显示中桩X、Y坐标)
"0→DL,1→B.XY"?W:(0→主程序,1→计算边桩)
If W=O:Then Goto 8:IfEnd
If W=1:Then Goto 2:IfEnd
Lb1 1
Prog "DL.H":
"Z.H":G⊿(显示中桩高程)
Goto 8:
Lb1 2:
"PJ"?A:A→Z:"JL"?B:Rec(B,A+R):(输入偏角、距离)
"P1.X":X+I⊿"P1.Y":Y+J⊿(显示边桩X、Y坐标)
"0→DL,1→B.XY"?W:(0→主程序,1→计算边桩)
If W=O:Then Goto 8:Else Goto 2:IfEnd
Lb1 3
"ZH"?Z:"JL"?X:"PJ"?Y:"HP"?O:(输入桩号、距离、偏角、横坡)
Z→M:Z+X*cos(Y)→Z:
Prog "DL.H":(调用子程序)
"P1.H":G-X*Sin(Y)*O/100⊿(显示边桩高程)
"0→DL,1→B.H"?W:(0→主程序,1→计算边桩高程)
If W=1:Then Goto 3:Else Goto 8:IfEnd:
*******Prog DL.H***********(子程序:高程计算)
For 20→I TO 31 Step 2:(设置要素存储位置,可根据需要自行调整)
List Freq[I] →V:
If V=0:Then List X[I]+Abs(List Y[I+1] /100- List X[I+1]/100)* List Freq[I+1]/2 →List Freq[I] :IfEnd:
D-C→N:Abs(N)*E/2→T:
If N<0:Then (-1)→K:Else 1→K:Ifend:
Lb1 5:
If Z>V:Then 999.99→G:IfEnd:
**************Prog DL.XY**************(子程序:坐标计算)
0→N:0→P:0→O:0→Q:0→S:
Lb1 2:
N+1→N:
(Z-A)/4→H:N*H/2+A→F:
C+(D+(E-D)/2/(B-A)*(F-A))*(F-A)*180/3.15926→R:
If (N/2)=Int(N/2):Then O+cos(R)→O:P+sin(R)→P:Else Q+cos(R)→Q:S+sin(R)→S:IfEnd:
If N≠8:Then Goto 2:IfEnd
Lb1 3:
G+H/6*(cos(C)+4*Q+2*O-cos(R))→X:
T+H/6*(sin(C)+4*S+2*P-sin(R))→Y:Return
**************Prog FREQ**************(数据库完善计算)
For 1→I TO 12 Step 3(设置要素存储位置,可根据需要自行调整)
If Z≥List X[I] And Z< List Y[I] Then
List X[I] →A:List Y[I] →B:
List Freq[I] →C:List X[I+1] →D:
List Y[I+1] →E:List Freq[I+1] →K:
List X[I+2] →G:List Y[I+2] →T:
If D>0:Then 1/D*K→D:IfEnd
If E>0:Then 1/E*K→E:IfEnd
List Y[I] →Z:
Prog “DL.XY” (调用DL.XY子程序)
List Y[I] →List X[I+3]:
R°→List Freq[I+3]:
X→List X[I+5]:
Y→List Y[I+5]:
“Finish”:i⊿
Next:
复化辛普森公式与偏角法、切线支距法在数学模型的不同,其线型的要素也是不一致的。不论是直线、圆曲线、还是缓和曲线,均须录入起、终点半径、起点方位角、起点坐标、以及偏向。本文运用CASIO fx-5800P中的串列存储统计数据功能存储线路各条线型的要素。串列存储中每行有3列可供数据录入,每个线型须录入8个要素,需用3行录入一个线型所需的要素。由于每段的起点里程、坐标、方位角为上一段的终点里程、坐标、终点方位角,所以第一段的曲线要素要录入齐全,从第二段开始,可不录入起点里程、方位角及X、Y坐标,这些未录入的数据可调用“FREQ”程序进行计算,并录至串列存储数据库中。数据库所需的各个要素可从道路直曲表中获得也可从电子线位图中获取;其中偏向输入-1或1,当曲线右转时偏向为1,反这为-1。
竖曲线计算所必需的要素有5个,分别为交点桩号、交点高程、纵坡一、纵坡二以及曲线半径;在串列存储统计数据库中每两行录入一个竖曲线信息。
串列数据存储结构 表1
福州市轨道交通2号线全长 38.55 km,全线共设60多个平曲线交点,全本提取其中的一部分进行验算,验算里程范围内含直线、缓和曲线及圆曲线。利用本程序计算出来的结果与设计院提供的坐标进行对比,通过分析坐标计算较差表,可知两套三维坐标较差均在 ±0.5 mm以内,所计算的成果可满足各类工程施工放样的需求。
坐标计算较差表 表2
利用CASIO fx-5800P计算器以复化辛普森公式为数学模型并配合串列存储数据可精确的计算线路全线的任意里程桩、边桩的坐标计算,计算结果可靠。本程序不仅适用于各种类型的平曲线,也适用于因设计变更引的线路断链。当有多条线路要进行放样时,须记住线段要素存储的地址,在主程序中进行简单的修改就可进行其他线路的坐标计算。CASIO fx-5800P型计算器可通过SB-62数据线实现同型号计算器之间的数据库、程序的传输,方便数据的交流与共享。
[1] 张正禄等. 工程测量学[M]. 武汉:武汉大学出版社,2005.
[2] 覃辉,段长虹. Casio fx-5800P编程计算器公路与铁路施工测量程序[M]. 上海:同济大学出版社,2009.
[3] 艾扬权,雷海峰. 基于Visual Basic的缓和曲线程序设计[J]. 北京测绘,2012(4):60~63.
[4] 何凭宗. 由任意一点的坐标计算相应的中桩坐标的算法[J]. 矿山测量,2001(2):19~21.
[5] 王中伟. 道路施工放样程序双层面数据库的设计与实现[J]. 交通科技与经济,2012(1):10~12.
[6] 杜宁,王莉. 线路中边桩坐标计算的通用数学模型[J]. 矿山测量,2006(2):23~25.
[7] 王国栋,马俊海. 铁路三次抛物线缓和曲线的计算[J]. 交通科技与经济,2011,13(1):13~16.
[8] 李全信. 线路中边桩坐标计算的通用Gauss-Legendre公式[J]. 工程勘察,2002(3):61~64,71.
[9] 张雨化. 道路勘测设计[M]. 北京:人民交通出版社,2001.
[10] 张延楷. 高速公路线形设计[M]. 上海:同济大学出版社,1997.