目录一、坐标正算基本公式 (02)二、坐标反算原理 (04)三、高程数据库录入变换 (05)四、计算器程序 (07)01、ZBZS(坐标正算) (07)02、ZBFS(坐标反算) (08)03、GCJF(高程积分) (09)04、PJFY(坡脚放样) (10)05、JFCX(积分程序) (11)06、ZBFY(坐标放样) (11)07、DT(递推) (12)08、HP(横坡) (13)09、LK(路宽) (14)10、SJK1(平面数据库) (14)11、SJK2(纵面数据库) (14)12、SJK3(左路宽度数据库) (15)13、SJK4(右路宽度数据库) (15)14、SJK5(横坡数据库) (16)15、SJK6(下边坡数据库) (16)16、SJK7(左上边坡数据库) (17)17、SJK8(右上边坡数据库) (18)五、后记 (19)CASIO 5800计算器公路工程测量程序一、正算所涉及的计算公式 X R i d XαβBd Y d l d βI图表 1在图1中,A 点为回旋曲线起点,B 点为回旋曲线止点,I 点为所求坐标点。
设:A 点的X 坐标为X A ,Y 坐标为Y A ,A 点的切线方位角为α,A 点的曲率为ρA ,A 点的里程为L A ,B 点的曲率为ρB ,B 点的里程为L B ,I 点的曲率为ρI ,I 点的里程为L I 。
I 点的切线角为β。
由于回旋线上各点曲率半径R i 和该点至曲线起点的距离L 成反比。
故此任意点的曲率为;CL R i i ==1ρ (c 为常数) (1) 由式(1)可知,回旋曲线任意点的曲率按线性变化,由此回旋曲线上里程为L i 点的曲率为;AB A i A B A i L L L L --⨯-+=)(ρρρρ (2) 当曲线右偏时ρB 、ρA 取正值,反之取负值。
设:A B AB L L M --=ρρ ------ 曲率变化率 (3)A i L L L -= ------ I 点至起点A 的距离 (4)则有:ML A i +=ρρ (5)在I 点处取一微段,则有:l i il d R d d ρβ== (单位为弧度) (6) 对上式进行积分并代入式(3)(4),则有;⎰⎰⎰⎰+=+=+==l l l lA l l A l A l i i ML L Ld M d d ML d 000022)(ρρρρβ (7) 因已知回旋曲线起点A 的切线方位角α,则里程为L i 点的切线方位角为:i i βαα+= (8)将式(7)代入式(8)得:22ML L A i ++=ραα(单位为弧度) (9) 对于式(9),当ρA =0,M=0时,则αi =α,式(9)变成计算直线段上任意点切线方位角的计算公式;当ρA =c (c 为常数),M=0时,则αi =α+ρA L ,式(9)变成计算圆曲线上任意点切线方位角的计算公式。
由图1中不难得出回旋曲线上任意点在路线坐标系下的坐标:⎰+=ll i A d X X 0)cos(α⎰+=ll i A d Y Y 0)sin(α (10)将式(9)代入式(10),即得本次编程计算基本公式:⎰+++=ll A A d ML L X X 02)2cos(ρα ⎰+++=l l A A d ML L Y Y 02)2sin(ρα (11) 二、反算原理XαBAβC图表 2在图2中,A 点为已知坐标而待求对应中桩桩号及边距的点。
B 点为假定的A 点对应中桩桩号点。
显然,B 点并不对应于A 点。
做出B 点的切线,过A 点做辅助线垂直于B 点的切线,相交于C 点。
设:B 点的切线方位角为α,B 点的桩号为K B ,B 点的坐标分别为X B 、Y B ,A 点的桩号为K A ,A 点的坐标分别为X A 、Y A ,“B-A ”的方位角为β,“B-A ”的距离为N ,“B-C ”的距离为L ,“C-A ”的距离为Z 。
根据前面的坐标正算的公式可以得到α,X B 、Y B 值。
根据计算器内置的Pol (X A -X B ,Y A -Y B )公式(直角坐标转换为极坐标)能得到β,N 值。
)cos(αβ-=N L (1))sin(αβ-=N Z (2)当L=0时,B 点是对应于A 点的,K B =K A ,Z 即为A 点的距中桩的距离。
当L ≠0时,则采用K B =K B +L,对B 点进行新的假定,进而再次对L 进行解算,直至L=0,或则L 值在容许误差范围之内。
三、高程数据库录入变换计算HLO i 1R 1i 2R 2i 3α1α2AB C D 图表 3为利用前面已知的积分公式对高程进行求算,故需对设计给定的纵断面数据进行换算。
如图3中所示,以高程H 轴代替平面坐标系的X 轴,以里程L 代替平面坐标系的Y 轴,以H 轴为起点,顺时针方向旋转而得到方位角α。
由设计图中已知数据为:纵坡i ,竖曲线半径R ,坡长L 等。
根据通用的纵断面高程计算公式,容易解算出每个线形变化点的里程及高程,即图3中,A 、B 、C 、D 点的“H 、L ”值。
由于纵坡坡度所采用的为坡度值,即:LH i = (1) 利用反三角函数,即能解算出以L 轴为起点,逆时针方向旋转的角值β。
)(tan 1i -=β (2)β显然: βα-=90 (3)同时结合平面线元,凸曲线可以看为右偏线元,曲率取正值。
反之为负值。
LH OA'B'图表 4由于积分程序代入运算的为坡线长度,即上图中的的0A 、AB ,而已知里程为水平距离,即上图中的0A ’、A ’B ’。
所以在计算出起点积分运算的基本要素:图3中的(α,H ,L )后,我们需将水平距离L 换算为坡线长度L ’或弧线长度L~。
直线换算比较简单,利用三角函数即能得出下式:)90cos(α-='L L (4) 竖曲线形式,一般采用二次抛物线或圆曲线,在圆心角很小而半径相对较大的使用范围内,二者的吻合是良好的。
以下推导采用圆曲线作为竖曲线的形式。
在图4中,A 点为线元起点(直线OA 与圆弧AB 的切点),B 点为待求弧长点,F 点为曲线对应圆心。
根据互余角相等原理得出: α=∠DAF运用三角函数计算得出: )cos(αR AD =;)sin(αR DF =根据圆曲线方程:222R Y X =+得出: AD AC DC X -==,22X R BE Y -== 根据图示:DF Y CE BE BC -=-=利用反三角函数:)(tan 1ACBC -=γ 从而:γαβ--=90根据弧长计算公式得:90R L πβ= (5) 四、卡西欧5800程序;1、文件名:“ZBZS ”(坐标正算)"KI="H:(输入计算点桩号并赋值于变量H)Prog "SJK1":(进入数据库1中读取数据)Prog "JFCX ":(进入积分程序进行运算)"BL="P:(输入计算点距中桩距离并赋值于变量P,左为“-”,右为“+”。
如果需要计算设计路幅宽度“加宽段”,则计算左幅时输入“-1”,右幅为“+1”)IF ABS(1)=1:(如果路宽的绝对值为1,则计算设计路幅宽度)THEN PROG ”LK ”: (进入路宽程序计算出路幅宽度值)“BS=”:EP →P ◢(对路幅宽度代入±号以区分左右)“BL=”:P: (是否对边距重新赋值,如路堑墙,即边距等于路幅宽度加上水沟宽度)IF END: (判断结束)"X=":S+PCos(W+90)→U ◢(显示边桩X 坐标并赋值于变量U,可对90度进行调整,如斜交30度或其他,但是角度不分左右,即90度=-90度=270度)"Y=":T+PSin(W+90)→V (显示边桩Y坐标并赋值于变量V)PROG”GCJF”: (进入高程积分程序,计算设计高程)PROG”HP”: (进入横坡计算程序,计算横坡)“H=”:S+ABS(E)F→Q (显示计算点设计高程,设计高程加上横坡高差)2、文件名:“ZBFS”(坐标反算)"KI="H:(输入假定桩号并赋值于变量H)"XI="V:(输入反算点X坐标并赋值于变量V)"YI="Y:(输入反算点Y坐标并赋值于变量Y)"HI="Z:(输入反算点高程并赋值于变量Z)Lbl 0:(转移起点命令)Prog"SJK1":(进入数据库1中读取数据)Prog"JFCX":(进入积分程序进行运算)Pol(V-S,Y-T) →N:(将直角坐标转换为极坐标并将极经赋值于变量N)J→U:(将极角赋值于变量U。
注意:在Pol()函数中,计算生成的r值被自动赋值于I,θ值被赋值于J)NCos(U-W)→R:(计算假定桩号的偏差并赋值于变量R)Abs(R)≤=>Goto 1:(判断语句,如果R的绝对值小于容许误差则程序跳转至Lbl 1处运行,否则将顺序运行)H+R+→H:(对假定桩号H值重新赋值,此处增加的:“+0.001”是为了避免直线段计算中桩时出现Pol(0,0)的错误。
)Goto 0:(程序跳转入Lbl 0处重新开始运行)Lbl 1:(转移起点命令)"KI=":H ◢(显示解算出来的桩号)"BL=": NSin(U-W)→P◢(计算反算点至中桩距离并赋值于变量P,右为+)Prog"GCJF":(进入高程积分程序进行运算)PROG”LK”: (进入路宽程序,计算路幅宽度)IF P≥0: (如果反算边距大于0,即右幅)THEN “BL0=”:P-E→G◢(反算点距离右边线距离,+为超挖,-为欠挖) ELSE “BL0=”:ABS(P)-E→G◢(反算点距离左边线距离,+为超挖,-为欠挖)IF END: (判断结束)PROG “HP”: (进入横坡计算程序,计算反算点横坡)IF ABS(P)≤E: (如果反算点在路幅内,则计算该点挖填,反之则计算该点对应路幅边缘点挖填,并赋值于Q变量)THEN “ZI=”:(S+ABS(P)F)-Z→Q:ELSE “ZI=”:(S+ABS(E)F)-Z→Q:IF END (判断结束)3、文件名:“GCJF”(高程积分)Prog"SJK2":(进入数据库2调用数据)H-F→X:(计算水平距离并赋值于变量X)If D=0:(根据曲率判断直线或圆曲线)Then Abs(X÷C0S(90-C)) →X:(如果为直线则计算坡线长并赋值于变量X) Else COS(C) ÷Abs(D) →B:(如果为曲线,则开始计算弧长,具体参照第三节理解)Sin(C) ÷Abs(D) →E:(参照第三节理解)√((1÷D)2-(X-B)2)→G:(参照第三节理解)tan-1((G-E)÷X)→T:(参照第三节理解)πAbs(90-C-T)÷90÷Abs(D)→X:(计算出弧长并赋值于变量X)IfEnd:(条件判断结束)A+∫(Cos(C+D r X2),0,X)→S:(计算设计高程值并赋值于S)4、文件名:“PJFY”(坡脚放样)Prog"ZBFS"◢(执行坐标反算程序,并显示)PROG “LK”: (执行路宽程序)IF Q≥0: (如果为填方,则进入SJK6,调用下边坡数据)THEN PROG “SJK6”:ELSE IF Q<0 AND P<0: (如果为挖方,且在路左,则调用左侧上边坡数据)THEN PROG”SJK7”:ELSE PROG”SJK8”: (调用右侧上边坡数据)IF END: (第二判断结束)IF END: (第一判断结束)Abs(Q)≤B=>E+ Abs(Q)A→Z:(高差小于第1级坡高时,计算理论平距并赋值于变量Z)Abs(Q)≤(B+F)And Abs(Q)>B =>E+AB+C+ (Abs(Q)-B)D→Z:(高差小于第2级坡高时,计算理论平距并赋值于变量Z)Abs(Q)≤(B+F+L)And Abs(Q)>(B+F)=>E+AB+C+DF+G+ (Abs(Q)-B-F)K →Z:(高差小于第3级坡高时,计算理论平距并赋值于变量Z)Abs(Q)>(B+F+L)=>E+AB+C+DF+G+KL+M+ (Abs(Q)-B-F-L)N→Z:(高差大于第3级坡高时,计算理论平距并赋值于变量Z)"LI=":Z- Abs(P)(计算并显示坡脚点距假定点的距离,+为远离中线)5、文件名:“JFCX”(积分程序)(E-D)÷(G-F)→M:(计算线元曲率变化率并赋值于变量M)H-F→X:(计算点至线元起点距离并赋值于变量X。