1、1 CASIO fx-5800p 计算器公路测量程序2010年11月14日目 录一、坐标正算基本公式02二、坐标反算原理04三、高程数据库录入变换05四、计算器程序0701、ZBZS(坐标正算)0702、ZBFS(坐标反算)0803、GCJF(高程积分)0904、PJFY(坡脚放样)1005、JFCX(积分程序)1106、ZBFY(坐标放样)1107、DT(递推)1208、HP(横坡)1309、LK(路宽)1410、SJK1(平面数据库)1411、SJK2(纵面数据库)1412、SJK3(左路宽度数据库)1513、SJK4(右路宽度数据库)1514、SJK5(横坡数据库)1615、SJK6(下
2、边坡数据库)1616、SJK7(左上边坡数据库)1717、SJK8(右上边坡数据库)18五、后记192 CASIO fx-5800p 计算器公路测量程序2010年11月14日CASIO 5800计算器公路工程测量程序一、正算所涉及的计算公式 XARidXBYl I图表 1在图 1中,A 点为回旋曲线起点,B 点为回旋曲线止点,I 点为所求坐标点。设:A点的 X坐标为 XA ,Y 坐标为 YA ,A 点的切线方位角为 ,A 点的曲率为 A,A点的里程为 LA,B点的曲率为 B,B点的里程为 LB,I点的曲率为 I,I点的里程为 LI。I 点的切线角为 。由于回旋线上各点曲率半径 Ri和该点至曲线
3、起点的距离 L成反比。故此任意点的曲率为;(c为常数) (1)CLii1由式(1)可知,回旋曲线任意点的曲率按线性变化,由此回旋曲线上里程为 Li点的曲率为;(2)ABiABAi L)(3 CASIO fx-5800p 计算器公路测量程序2010年11月14日当曲线右偏时 B、 A取正值,反之取负值。设:- 曲率变化率 (3)ABLM- I点至起点 A的距离 (4)i则有:(5)MLAi在 I点处取一微段,则有:(单位为弧度) (6)liildR对上式进行积分并代入式(3) (4) ,则有;(7)ll llAlAAii MLddMLd00002)( 因已知回旋曲线起点 A的切线方位角 ,则里程
4、为 Li点的切线方位角为:(8)ii将式(7)代入式(8)得:(单位为弧度) (9)2MLAi对于式(9) ,当 A=0,M=0 时,则 i=,式(9)变成计算直线段上任意点切线方位角的计算公式;当 A=c(c 为常数) ,M=0 时,则 i=+ AL,式(9)变成计算圆曲线上任意点切线方位角的计算公式。由图 1中不难得出回旋曲线上任意点在路线坐标系下的坐标: lliAdX0)cos(4 CASIO fx-5800p 计算器公路测量程序2010年11月14日(10)lliAdY0)sn(将式(9)代入式(10) ,即得本次编程计算基本公式: l lAAdMLX02)cos(11)l lAAY0
5、2)in(二、反算原理 OBC图表 2在图 2中,A 点为已知坐标而待求对应中桩桩号及边距的点。B 点为假定的 A点对应中桩桩号点。显然,B 点并不对应于 A点。做出 B点的切线,过 A点做辅助线垂直于 B点的切线,相交于 C点。设:B点的切线方位角为 ,B 点的桩号为 KB,B点的坐标分别为 XB、Y B,A 点的桩号为 KA,A点的坐标分别为 XA、Y A, “B-A”的方位角为 , “B-A”的距离为 N, “B-C”的距离为 L, “C-A”的距离为 Z。根据前面的坐标正算的公式可以得到 ,X B、Y B值。5 CASIO fx-5800p 计算器公路测量程序2010年11月14日根据
6、计算器内置的 Pol(X A-XB,Y A-YB)公式(直角坐标转换为极坐标)能得到 ,N 值。(1))cos(L(2)inZ当 L=0时,B 点是对应于 A点的,K B=KA,Z 即为 A点的距中桩的距离。当 L0 时,则采用 KB=KB+L,对 B点进行新的假定,进而再次对 L进行解算,直至 L=0,或则 L值在容许误差范围之内。三、高程数据库录入变换计算 HLOi1Ri2i3ABCD图表 3为利用前面已知的积分公式对高程进行求算,故需对设计给定的纵断面数据进行换算。如图 3中所示,以高程 H轴代替平面坐标系的 X轴,以里程 L代替平面坐标系的 Y轴,以 H轴为起点,顺时针方向旋转而得到方
7、位角 。由设计图中已知数据为:纵坡 i,竖曲线半径 R,坡长 L等。根据通用的纵断面高程计算公式,容易解算出每个线形变化点的里程及高6 CASIO fx-5800p 计算器公路测量程序2010年11月14日程,即图 3中,A、B、C、D 点的“H、L”值。由于纵坡坡度所采用的为坡度值,即:(1)LHi利用反三角函数,即能解算出以 L轴为起点,逆时针方向旋转的角值 。(2)(tan1i显然: (3)90同时结合平面线元,凸曲线可以看为右偏线元,曲率取正值。反之为负值。 LHOABCEFDRAB 图表 4由于积分程序代入运算的为坡线长度,即上图中的的 0A、AB,而已知里程为水平距离,即上图中的
8、0A、A B。所以在计算出起点积分运算的基本要素:图 3中的(,H,L)后,我们需将水平距离 L换算为坡线长度 L或弧线长度L。直线换算比较简单,利用三角函数即能得出下式:7 CASIO fx-5800p 计算器公路测量程序2010年11月14日(4))90cos(L竖曲线形式,一般采用二次抛物线或圆曲线,在圆心角很小而半径相对较大的使用范围内,二者的吻合是良好的。以下推导采用圆曲线作为竖曲线的形式。在图 4中,A 点为线元起点(直线 OA与圆弧 AB的切点) ,B 点为待求弧长点,F 点为曲线对应圆心。根据互余角相等原理得出: DAF运用三角函数计算得出: ;)cos(R)sin(R根据圆曲
9、线方程: 得出: ,22YXADCX2XRBEY根据图示: DFCEB利用反三角函数: )(tan1A从而: 90根据弧长计算公式得:(5)90RL四、卡西欧 5800程序; 1、文件名:“ZBZS”(坐标正算)KI=?H:(输入计算点桩号并赋值于变量 H)ProgSJK1:(进入数据库 1中读取数据)ProgJFCX:(进入积分程序进行运算)BL=?P:(输入计算点距中桩距离并赋值于变量 P,左为“-” ,右为“+” 。如果需要计算设计路幅宽度“加宽段” ,则计算左幅时输入“-1” ,右幅为“+1”) 8 CASIO fx-5800p 计算器公路测量程序2010年11月14日IF ABS(1
10、)=1:(如果路宽的绝对值为 1,则计算设计路幅宽度)THEN PROG”LK”: (进入路宽程序计算出路幅宽度值)“BS=”:EPP(对路幅宽度代入号以区分左右)“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”: (进入横
11、坡计算程序,计算横坡)“H=”:S+ABS(E)FQ (显示计算点设计高程,设计高程加上横坡高差) 2、文件名:“ZBFS”(坐标反算)KI=?H:(输入假定桩号并赋值于变量 H)XI=?V:(输入反算点 X坐标并赋值于变量 V)YI=?Y:(输入反算点 Y坐标并赋值于变量 Y)HI=?Z:(输入反算点高程并赋值于变量 Z)Lbl 0:(转移起点命令)ProgSJK1:(进入数据库 1中读取数据)ProgJFCX:(进入积分程序进行运算)Pol(V-S,Y-T) N:(将直角坐标转换为极坐标并将极经赋值于变量 N)JU:(将极角赋值于变量 U。注意:在 Pol()函数中,计算生成的 r值被自9
12、 CASIO fx-5800p 计算器公路测量程序2010年11月14日动赋值于 I, 值被赋值于 J)NCos(U-W)R:(计算假定桩号的偏差并赋值于变量 R)Abs(R)0.001=Goto 1:(判断语句,如果 R的绝对值小于容许误差则程序跳转至 Lbl 1处运行,否则将顺序运行)H+R+0.001H:(对假定桩号 H值重新赋值,此处增加的:“+0.001”是为了避免直线段计算中桩时出现 Pol(0,0)的错误。)Goto 0:(程序跳转入 Lbl 0处重新开始运行)Lbl 1:(转移起点命令)KI=:H (显示解算出来的桩号)BL=: NSin(U-W)P(计算反算点至中桩距离并赋值
13、于变量 P,右为+)ProgGCJF:(进入高程积分程序进行运算)PROG”LK”: (进入路宽程序,计算路幅宽度)IF P0: (如果反算边距大于 0,即右幅)THEN “BL0=”:P-EG(反算点距离右边线距离,+为超挖,-为欠挖)ELSE “BL0=”:ABS(P)-EG(反算点距离左边线距离,+为超挖,-为欠挖)IF END: (判断结束)PROG “HP”: (进入横坡计算程序,计算反算点横坡)IF ABS(P)E: (如果反算点在路幅内,则计算该点挖填,反之则计算该点对应路幅边缘点挖填,并赋值于 Q变量)THEN “ZI=”:(S+ABS(P)F)-ZQ:ELSE “ZI=”:(
14、S+ABS(E)F)-ZQ:IF END (判断结束)10 CASIO fx-5800p 计算器公路测量程序2010年11月14日 3、文件名:“GCJF”(高程积分)ProgSJK2:(进入数据库 2调用数据)H-FX:(计算水平距离并赋值于变量 X)If D=0:(根据曲率判断直线或圆曲线)Then Abs(XC0S(90-C) X:(如果为直线则计算坡线长并赋值于变量 X)Else COS(C) Abs(D) B:(如果为曲线,则开始计算弧长,具体参照第三节理解)Sin(C) Abs(D) E:(参照第三节理解)(1D) 2-(X-B)2)G:(参照第三节理解)tan-1(G-E)X)T
15、:(参照第三节理解)Abs(90-C-T)90Abs(D)X:(计算出弧长并赋值于变量 X)IfEnd:(条件判断结束)A+(Cos(C+D rX2),0,X)S:(计算设计高程值并赋值于 S) 4、文件名:“PJFY”(坡脚放样)ProgZBFS(执行坐标反算程序,并显示)PROG “LK”: (执行路宽程序)IF Q0: (如果为填方,则进入 SJK6,调用下边坡数据)THEN PROG “SJK6”: ELSE IF Q0 AND P0: (如果为挖方,且在路左,则调用左侧上边坡数据)THEN PROG”SJK7”: ELSE PROG”SJK8”: (调用右侧上边坡数据)IF END:
16、 (第二判断结束)11 CASIO fx-5800p 计算器公路测量程序2010年11月14日IF END: (第一判断结束)Abs(Q)B=E+ Abs(Q)AZ:(高差小于第 1级坡高时,计算理论平距并赋值于变量 Z)Abs(Q)(B+F)And Abs(Q)B =E+AB+C+ (Abs(Q)-B)DZ:(高差小于第 2级坡高时,计算理论平距并赋值于变量 Z)Abs(Q)(B+F+L)And Abs(Q)(B+F)=E+AB+C+DF+G+ (Abs(Q)-B-F)KZ:(高差小于第 3级坡高时,计算理论平距并赋值于变量 Z)Abs(Q)(B+F+L)=E+AB+C+DF+G+KL+M+
17、 (Abs(Q)-B-F-L)NZ:(高差大于第 3级坡高时,计算理论平距并赋值于变量 Z)LI=:Z- Abs(P)(计算并显示坡脚点距假定点的距离,+为远离中线) 5、文件名:“JFCX”(积分程序)(E-D)(G-F)M:(计算线元曲率变化率并赋值于变量 M)H-FX:(计算点至线元起点距离并赋值于变量 X。注意:此变量仅能为 X,因下步积分运算中,计算器对除 X以外的所有变量都将视为常数)C+DrX+0.5rMX2W:(计算点切线方位角并赋值于变量 W。注意:D r、0.5 r中的上标 r,为弧度转化符号其值为 180/,计算器内有此符号)A+(Cos(C+D rX+0.5rMX2),
18、0,X)S:(计算中桩 X坐标值并赋值于 S)B+(Sin(C+D rX+0.5rMX2),0,X)T(计算中桩 Y坐标值并赋值于 T) 6、文件名:“ZBFY” ,坐标放样PROG “ZBZS” (进入坐标正算程序,并显示)POL(U-*),(V-*)L: (计算放样点和置站点的距离和方位角,*,置12 CASIO fx-5800p 计算器公路测量程序2010年11月14日站点的 X,Y 坐标)IF J0:(如果方位角大于 0,则直接计算,反之则需要加上 360度)THEN GOTO 0: ELSE J+360J: IF END: (判断结束)LB1 0: “L=”:LL(显示置站点至放样点
19、的距离)JW:”W=”:W DMS(显示置站点至放样点的方位角,并转化为度分秒)“HS=”?Z: (输入实测高程,并赋值于 Z)”HC=”:Q-Z(计算放样点的挖填,-为挖,+为填) 7、文件名:“DT” ,线元要素递推程序“XQ=”?A: (将起点坐标、方位角、起止点曲率、桩号进行分别赋值)“YQ=”?B: “WQ=”?C: “1/RQ=”?D: “1/RZ=”?E: “KQ=”?F: “KZ=”?G:GH: (计算桩号等于线元止点桩号)PROG “JFCX”: (进入积分程序,将 X,Y显示并赋值于起点变量)“XZ=”:SA“YZ=”:TB 13 CASIO fx-5800p 计算器公路测
20、量程序2010年11月14日GF: ED: WC: (将止点参数赋值于起点)“WZ=”:C DMS(将方位角转化为以度分秒为单位) 8、文件名:“HP”(横坡计算程序中轴旋转线性变化)PROG “SJK5”: (进入数据库 5,调用超高参数)IF P0: (区分左右,并将横坡百分比化)THEN 0.01CC: 0.01DD:ELSE 0.01EC: 0.01FD:IF END:IF D=C: (判断直线和全超高路段,即横坡不变化路段)THEN CF: GOTO 0:ELSE B-AG: (LS,计算缓和段长度)IF END:IF C0 OR D0: (判断超高方向,即平曲线内外)THEN C+
21、(H-A)(D-C)GF: GOTO 0: (线性内插)ELSE G- G ABS(D-C) (ABS(D)-C)K: (L0,计算临界长度)IF END:IF ABS(D)ABS(C): (判断 ZH-HY或 YH-HZ)THEN H-AL: ELSE B-HL:IF END:IF LK: (超高变化段内侧,判断临界长度以内或以外)THEN CF: GOTO 0:14 CASIO fx-5800p 计算器公路测量程序2010年11月14日ELSE C+(L-K)(D-C)(G-K)F: GOTO 0: (线性内插)IF END:FF 9、文件名:“LK”(路幅宽度计算程序加宽线性变化)IF
22、P0: (区分左右,分别调用数据)THEN PROG “SJK3”:ELSE PROG “SJK4”:IF END:C+(H-A)(D-C)(B-A)E: (线性内插) 10、文件名:“SJK1”(数据库 1,平面数据库)If H线元止点桩号:(判断计算点所属线元)Then *A:(线元起点 X坐标赋值于变量 A)*B:(线元起点 Y坐标赋值于变量 B)*C:(线元起点方位角赋值于变量 C)*D:(线元起点曲率赋值于变量 D。注意:线元右偏为+,反之为-,曲率等于 1/R,即半径的倒数,直线曲率为 0。 )*E:(线元止点曲率赋值于变量 E。注意:线元右偏为+,反之为-,曲率等于 1/R,即半
23、径的倒数,直线曲率为 0。 )*F:(线元起点桩号赋值于变量 F)*G:(线元止点桩号赋值于变量 G)Return:(从子程序返回调用此子程序的程序)IfEnd (条件判断结束)15 CASIO fx-5800p 计算器公路测量程序2010年11月14日(重复进行下个线元数据录入) 11、文件名:“SJK2”(数据库 2,纵面数据库)If H线元止点桩号:(判断计算点所属线元)Then *A:(线元起点高程赋值于变量 A)*C:(线元起点方位角赋值于变量 C)*D:(线元起点曲率赋值于变量 D。注意:凸曲线为+,反之为-,曲率等于 1/R,即半径的倒数,直线曲率为 0。 )*F:(线元起点桩号
24、赋值于变量 F)Return:(从子程序返回调用此子程序的程序)IfEnd (条件判断结束)(重复进行下个线元数据录入) 12、文件名:“SJK3”(数据库 3,左路幅宽度数据库)If H线元止点桩号:(判断计算点所属线元)Then *A:(线元起点桩号赋值于变量 A)*B:(线元止点桩号赋值于变量 B)*C:(线元起点左路幅宽度赋值于变量 C)*D:(线元止点左路幅宽度赋值于变量 D)Return:(从子程序返回调用此子程序的程序)IfEnd (条件判断结束)(重复进行下个线元数据录入) 13、文件名:“SJK4”(数据库 4,右路幅宽度数据库)If H线元止点桩号:(判断计算点所属线元)1
25、6 CASIO fx-5800p 计算器公路测量程序2010年11月14日Then *A:(线元起点桩号赋值于变量 A)*B:(线元止点桩号赋值于变量 B)*C:(线元起点右路幅宽度赋值于变量 C)*D:(线元止点右路幅宽度赋值于变量 D)Return:(从子程序返回调用此子程序的程序)IfEnd (条件判断结束)(重复进行下个线元数据录入) 14、文件名:“SJK5”(数据库 5,横坡数据库)If H线元止点桩号:(判断计算点所属线元)Then *A:(线元起点桩号赋值于变量 A)*B:(线元止点桩号赋值于变量 B)*C:(线元起点左路横坡(i)上坡为+,如 2%输入 2,-2%输入-2,即
26、可)*D:(线元止点左横坡赋值于变量 D)*E:(线元起点右横坡赋值于变量 E)*F:(线元止点右横坡赋值于变量 F)Return:(从子程序返回调用此子程序的程序)IfEnd (条件判断结束)(重复进行下个线元数据录入) 15、文件名:“SJK6”(数据库 6,下边坡坡率数据库)If (H起点桩号 AND H止点桩号) OR (H起点桩号 AND H止点桩号)OR (H起点桩号 AND H止点桩号):(判断计算点所属线元)17 CASIO fx-5800p 计算器公路测量程序2010年11月14日Then *A:(距中线第 1段坡的坡率)*B:(距中线第 1段坡的坡高)*C:(距中线第 1段
27、坡的护坡道宽度)*D:(距中线第 2段坡的坡率)*F:(距中线第 2段坡的坡高)*G:(距中线第 2段坡的护坡道宽度)*K:(距中线第 3段坡的坡率)*L:(距中线第 3段坡的坡高)*M:(距中线第 3段坡的护坡道宽度)*N:(距中线第 4段坡的坡率)Return:(从子程序返回调用此子程序的程序)IfEnd (条件判断结束)(重复进行下个线元数据录入) 16、文件名:“SJK7”(数据库 7,左上边坡坡率数据库)If (H起点桩号 AND H止点桩号) OR (H起点桩号 AND H止点桩号)OR (H起点桩号 AND H止点桩号):(判断计算点所属线元)Then *A:(距中线第 1段坡的
28、坡率)*B:(距中线第 1段坡的坡高)*C:(距中线第 1段坡的护坡道宽度)*D:(距中线第 2段坡的坡率)*F:(距中线第 2段坡的坡高)*G:(距中线第 2段坡的护坡道宽度)18 CASIO fx-5800p 计算器公路测量程序2010年11月14日*K:(距中线第 3段坡的坡率)*L:(距中线第 3段坡的坡高)*M:(距中线第 3段坡的护坡道宽度)*N:(距中线第 4段坡的坡率)Return:(从子程序返回调用此子程序的程序)IfEnd (条件判断结束)(重复进行下个线元数据录入) 17、文件名:“SJK8”(数据库 8,右上边坡坡率数据库)If (H起点桩号 AND H止点桩号) OR
29、 (H起点桩号 AND H止点桩号)OR (H起点桩号 AND H止点桩号):(判断计算点所属线元)Then *A:(距中线第 1段坡的坡率)*B:(距中线第 1段坡的坡高)*C:(距中线第 1段坡的护坡道宽度)*D:(距中线第 2段坡的坡率)*F:(距中线第 2段坡的坡高)*G:(距中线第 2段坡的护坡道宽度)*K:(距中线第 3段坡的坡率)*L:(距中线第 3段坡的坡高)*M:(距中线第 3段坡的护坡道宽度)*N:(距中线第 4段坡的坡率)Return:(从子程序返回调用此子程序的程序)IfEnd (条件判断结束)19 CASIO fx-5800p 计算器公路测量程序2010年11月14日
30、(重复进行下个线元数据录入)五、后记2009年 12月 23日应好友龙龙之邀开始初步编制。2009年 12月 24日在网上查阅了其他公路工程测量前辈的大量资料。2009年 12月 26日于重庆丰都家中完成初步编制。2010年 3月 13日于成德南 LJ12标完成了测试修改。2010年 11月 14日于云南省昭通市昭巧二级公路三分部进行了完善。相较于初编程序,调试时主要修改了坐标反算及高程计算程序。1、坐标反算将原“H+RH:”句修改为:“H+R+0.001H:”避免了直线段计算中桩时出现 Pol(0,0)的错误。2、初步编制时,高程计算也采用“JFCX”程序,调试后增加“GCJF”程序专用于高程计算。对高程通过积分计算时采用的距离进行了修正,解决了坡度较大,距离较长的坡段计算高程时因套用的里程为水平距离而误差较大的问题。同时针对纵断面仅有直线、圆曲线两种线形及求解量仅为 H的情况,对积分程序及数据库进行了简化。取消了平面坐标计算时关于缓和曲线计算时所需要的步骤及变量。3、完善时增加了“ZBFY(坐标放样)DT(线元参数递推)LK(路幅宽度即加宽)HP(横坡即超高中轴旋转,超高方式按线性变化率) ”程序。3、由于测试时较为匆忙,测试难免不全面。