论文直曲线铁路平面测设算法设计.docx
《论文直曲线铁路平面测设算法设计.docx》由会员分享,可在线阅读,更多相关《论文直曲线铁路平面测设算法设计.docx(14页珍藏版)》请在冰点文库上搜索。
论文直曲线铁路平面测设算法设计
直曲线铁路、公路平面测设算法设计
中铁五局三公司西南指挥部——卢印刚
【摘要】本文由施工过程中定线放样的需要出发,考虑实际使用设备,设计出能在普通可编程计算器中运行的计算铁路、公路放样、交会拨角等的计算程序。
该程序能针对变化不定的置镜点、后视点及放样点、待交会线进行灵活的应用,快速计算出放样极坐标及拨角交会等所需数据。
【关键词】放样,平面测设,算法设计
一、引言
随着电磁波测距在工程测量中不断的推广和应用,使得距离测量已不再是一件困难的工作。
测距精度的不断提高使导线测量、极坐标放样等一些快捷的测量方法得到普遍应用。
然而,仅有先进的测量手段和设备,没有与之相匹配的计算方法和速度,也难以提高外业测量的进度和减少外业劳动强度。
针对这一问题,鄙人总结了在工程测量中的实践经验,查阅相关资料后,设计出一套适于铁路、公路平面测设的计算程序,并在渝怀铁路、西安南京铁路近两年的施工中得到了很好的应用及完善。
该程序在实地应用时只需一次输入置镜点、后视点、线位资料及放样点的有关信息就可得到完整的放样数据。
二、程序特点
为适应平面测设特点及实际工作的需要,所附程序具有如下特点:
①本程序通过起始计算点ZH(HZ)点里程(Beg-DK)和坐标(Beg-X,Beg-Y),推算测点(DK)的X、Y坐标。
再由已知置镜点(ZX、ZY)、后视点(HX、HY)计算出放样所需拨角与距离。
②如上图所示,本程序可以计算从HZ-1~ZH-2范围内的任意测点。
③置镜点、后视点灵活多变。
可为任意点,只需知道其坐标,并满足实际测设工作即可。
④提供ZH或HZ点里程及其坐标即可推算出放样点数据。
⑤放样点可以是线路中心点、法向线上任一点。
三、计算原理
①公式及说明
在以下的计算式中,为与所附源程序相对应,约定F、E分别为测点在计算方向上的x、y坐标增量,M、N分别为计算点的x、y坐标,其它变量参照第五节“变量约定”。
在程序中,可见到如:
X=M+FcosZ+EsinZ之类的公式,现对其演变进行说明:
如上图所示:
d=(F2+E2)
θ=tan-1(E2/F2)
Xc=M+dcos(AF-θ)=M+FcosAF+EsinAF(左偏)
Yc=N+dsin(AF-θ)=N+FsinAF-EcosAF
Xc=M+dcos(AF+θ)=M+FcosAF-EsinAF(右偏)
Yc=N+dsin(AF+θ)=N+FsinAF+EcosAF
②小里程直线计算
如上图所示意,测点坐标计算如下:
Xc=M+d×cosAF
Yc=N+d×sinAF
③小里程缓和曲线计算
如上图所示意,测点坐标计算如下:
F=K-K5/(40R2C2)
E=K3/(6RC)
④圆曲线计算
YH
测点
Yc
HY
V
ZH
方位角AF
Xc
V=90×(2×K-C)÷(π×R)
F=C÷2-C3÷240×R2+R×sinV
E=C2÷(24×R)+R×(1-cosV)
⑤大里程缓和曲线计算
大里程缓和曲线的计算与小里程缓和曲线计算类似,先计算出HZ点坐标,再减去测点在大里程缓和曲线上反向时的坐标增量即可。
K=L-K/*测点到HZ点的间距*/
F=K-K5÷(40×R2×C2)
E=K3÷(6×R×C)
Z=tan-1(E÷F)
V=Z+90-A
F=T+T×cosA-K×sinV
E=TsinA-KcosV
⑥大里程直线计算
如上图所示,计算大里程直线上测点方法为先计算出HZ点坐标,然后使用与小里程直线相同的计算方法即可算出。
设K为HZ到测点的距离,T为切线长,A为转向角,则测点坐标增量计算式为:
F=T+(T+K)×cosA
E=(T+K)×sinA
四、应用范畴
①线路中心的测设。
②桥梁桩基、墩柱的放样。
③通道、涵洞、隧道轴线、进出口的放测。
④路基中线、边坡的测设等。
五、程序编制
1、编制说明
①所附程序在市面上较普及的可编程计算器CASIO4800p上运行良好,如要移植到同类型CASIO4500计算器上,考虑到计算器本身变量定义,必须将程序中的变量W、V替换成J、I。
②所附程序采用结构化设计,根据需要调用相应的子程序进行计算,以方便根据实际需要自行增添或删除相应功能。
③测点的放样数据主要是根据计算点的信息进行计算,计算点的选择一般为直缓点或缓直点。
如计算直线数据,可选位直线上任意点。
2、程序流程图(见下页)
3、输入说明
ZX、ZY:
置镜点x、y坐标
HX、HY:
后视点x、y坐标
Beg-DK:
ZH(HZ)点里程
Beg-X、Beg-Y:
ZH(HZ)点的x、y坐标(直缓点或缓直点)
Beg-JD°:
ZH(HZ)点-交点方位角,即前视方位角
R:
半径、A°:
转向角、Lo:
缓和曲线长
Z-Y(1-2):
线路左偏选1、右偏选2
DK:
测点的里程
Z-I-Y(1-2-3):
测点与中线的位置关系(1:
左侧2:
中线上3:
右侧)
Z-m、Y-m:
测点在中线左测(右侧)时与中线的垂直距离
开始
输入置镜点、后视点坐标
输入ZH(HZ)点的里程、坐标及方位角
输入曲线要素R、A、Lo
输入测点里程及位置
计算放样资料
显示放样数据:
拨角、距离、测点坐标
是
结束
4、输出说明
Z-°=、Z-S=、Z-X=、Z-Y=:
测点在中线左测时输出的方位角、距离、x、y坐标
°°°=、S=、X=、Y=:
测点在中线上时输出的方位角、距离、x、y坐标
Y-°=、Y-S=、Y-X=、Y-Y=:
测点在中线右测时输出的方位角、距离、x、y坐标
5、变量约定
B:
ZX、H:
ZY、O:
HX、P:
HY
S:
Beg-DK、M:
Beg-X、N:
Beg-YG:
Beg-JD°
R:
R、A:
A°、C:
Lo、W:
Z-Y(1-2)
U:
DK、D:
Z-m或Y-m、Q:
Z-I-Y(1-2-3)
L:
曲线长、T:
切线长、K:
测点与计算点的距离差
Z:
方位角、I:
距离、X、Y:
x、y坐标
F、E:
测点的理论x、y坐标增量
V:
测点相对于中线的方位角
6、全局变量存储说明
Z[1]:
置镜点--后视点的方位角
Z[2]:
在由大里程直线返算时值为:
1
Z[3]:
直缓点里程
Z[4]:
缓和曲线长
Z[5]:
转向角
Z[6]:
线路左、右偏向
Z[7]:
半径
Z[8]:
如将后视归零选1,否则选择2
六、结束语
通过对铁路、公路平面测设的算法设计,顺利实现从里程等有关信息到放样资料间的数据计算。
计算过程中,交互进行的坐标正、反算的数据得以快速无误的传输,减少因人工大量输入数据而导致的出错机率。
本程序的编制主要是对曲线线型变化及坐标正、反算等数学知识的依赖,因此,大量的数学计算是测量计算工作的重点,以下所附程序在casio型可编程计算器上的编程应用只是简单的范例,运用同类及更多知识,我们还可以在计算机上实现更多更广的如数据存储、打印支持等应用,尚待更多有志之士进一步研究。
附:
源程序清单
LblK
Defm8
Z[1]=0:
Z[2]=0:
Z[8]=0:
I=0:
J=0:
V=1
{BHOPSMNGV}
B"ZX="H"ZY="O"HX="P"HY="S"Beg-DK="M"Beg-X="N"Beg-Y="G"Beg-JD°="//输入置镜点、后视点坐标,ZH(HZ)
//点里程、坐标及方位角
V"0Set:
Y-N(1-2)"//后视时,如归零,输出角度为夹角,
//否则,输出方位角
Pol(O-B,P-H)
J≥360=>J=J-360:
≠=>J<0=>J=J+360◣◣
Z[1]=J:
Z[8]=V
Z[1]"Z="◢I"S="◢/*输出置镜点—后视点的方位角、距离*/
Lbl0
{R}:
R"R="
Lbl1/*判断以减少冗余输入*/
R≠0=>Z[3]≠S=>Z[7]=R:
Z[3]=S:
{CAW}:
C"Lo=":
Z[4]=C:
A"A°=":
Z[5]=A:
W"Z-Y(1-2)":
Z[6]=W:
≠=>Z[3]=S=>Z[7]=0=>Z[7]=R:
≠=>Z[7]≠R=>R=Z[7]:
R"ERROR:
◢Z[7]≠R◢RNOTEQUALTOTHELASTINPUT◢CHECKRAGAIN:
"◢GOTO1◣◣Z[4]=0=>{C}:
C"Lo=":
Z[4]=C:
≠=>Z[4]≠0=>C=Z[4]◣◣Z[5]=0=>{A}:
A"A=°":
Z[5]=A:
≠=>Z[5]≠0=>A=Z[5]◣◣Z[6]=0=>{W}:
W"Z-Y(1-2)":
Z[6]=W:
≠=>Z[6]≠0=>W=Z[6]◣◣◣◣
L=πRA/180+C:
T=(R+C2/(24R))×tan(A/2)+C/2-C3/(240R2)◣GOTO2
Lbl2/*判断并转入相应的子程序*/
{UQ}:
U"DK="Q"Z-I-Y(1-2-3)"/*输入测点里程及相对于中线的位置
/*在中线左侧选1,在中线上选2,在中
/*线右侧选3*/
Q=1=>{D}:
D"Z-m":
≠=>Q=3=>{D}:
D"Y-m"◣◣
/*输入测点偏离中线左(右)的距离*/
K=U-S
R=0=>GoTo3◣
K<0=>Z[2]=1:
K=AbsK:
G=G+180:
W=1=>W=2:
≠=>W=2=>W=1◣◣Q=1=>Q=3:
≠=>Q=3=>Q=1◣◣◣
KGOTO4:
≠=>K≤(L-C)=>GOTO5:
≠=>KGOTO6:
≠=>K≥L=>GOTO7◣◣◣◣
Lbl3/*测点在小里程直线上&&半径为零时*/
Z=G:
I=K
X=M+KcosG:
Y=N+KsinG:
GOTO9
Lbl4/*测点在小里程缓和曲线上时*/
V=90K2/(πRC):
F=K-K5/(40R2C2):
E=K3/(6RC)
W=1=>Z=G-V:
≠=>W=2=>Z=G+V◣◣GOTO8
Lbl5/*测点在圆曲线上时*/
V=90×(2K-C)/(πR)
F=C/2-C3/(240R2)+RsinV:
E=C2/(24R)+R(1-cosV)
W=1=>Z=G-V:
≠=>W=2=>Z=G+V◣◣GOTO8
Lbl6/*测点在大里程缓和曲线上时*/
K=L-K:
F=K-K5/(40R2C2):
E=K3/(6RC):
Z=tan-1(E/F)
V=Z+90-A:
Z=90K2/(πRC):
F=T+TcosA-KsinV:
E=TsinA-KcosV
W=1=>Z=G-A+Z:
≠=>W=2=>Z=G+A-Z◣◣GOTO8
Lbl7/*测点在大里程直线上&&半径不为零时*/
K=K-L:
F=T+(T+K)cosA:
E=(T+K)sinA
W=1=>Z=G-A:
≠=>W=2=>Z=G+A◣◣GOTO8
Lbl8
W=1=>X=M+FcosG+EsinG:
Y=N+FsinG-EcosG◣
W=2=>X=M+FcosG-EsinG:
Y=N+FsinG+EcosG◣GOTO9
Lbl9/*计算坐标、角度、距离*/
Q=1=>Z=Z-90:
≠=>Q=3=>Z=Z+90◣◣
Q≠2=>X=X+DcosZ:
Y=Y+DsinZ◣
Pol(X-B,Y-H):
Z=J:
Z[8]=1=>Z=Z-Z[1]◣
Z≥360=>Z=Z-360:
≠=>Z<0=>Z=Z+360◣◣
Q=1=>GOTOA:
≠=>Q=2=>GOTOB:
≠=>Q=3=>GOTOC◣◣◣
LblA/*输出*/
Z[2]=1=>Z[2]=0:
K=(-1)×k:
G=G-180:
W=1=>W=2:
≠=>W=2=>W=1◣◣Q=1=>Q=3:
≠=>Q=3=>Q=1◣◣GOTOC◣
Z"Z-°="◢I"Z-S="◢X"Z-X="◢Y"Z-Y="◢GOTOD
LblB
Z[2]=1=>Z[2]=0:
K=(-1)×k:
G=G-180:
W=1=>W=2:
≠=>W=2=>W=1◣◣◣
Z"°°°="◢I"S="◢X"X="◢Y"Y="◢GOTOD
LblC
Z[2]=1=>Z[2]=0:
K=(-1)×k:
G=G-180:
W=1=>W=2:
≠=>W=2=>W=1◣◣Q=1=>Q=3:
≠=>Q=3=>Q=1◣◣GOTOA◣
Z"Y-°="◢I"Y-S="◢X"Y-X="◢Y"Y-Y="◢GOTOD
LblD
J=1:
{J}:
J"GoOnCalculate:
Yes-No-Restart(1-2-3)"
J=1=>GOTO2:
≠=>J=2=>GOTO0≠=>J=3=>GOTOK◣◣◣