Casiofx-5800P计算器三个公路基本测量程序编写与应用
引论:casiofx-5800P计算器测量程序在计算机网络上多有流传,但有的测量主程序算法复杂,编程繁琐;有的程序内容表达错误,有的不能进行综合线形的测设、能应用于工程实际的廖廖无几。本文通过对公路测量三个基本程序(公路路线任意桩号坐标正反算、公路任意桩号高程计算、高边坡边坡放样)的介绍,提出了casiofx-5800P标准程序,聊供同行参考。
一、三个主程序的简介:
1、公路路线任意桩号坐标正反算
正算是根据测量者输入的桩号和距中桩距离计算出所求点的坐标和测站点到该点的方位角、水平距离。反算是根据使用者输入的实测坐标计算出该点的桩号和距中桩距离。可用于计算公路综合线形,在计算器内存许可的条件下,不受“断链”的影响,也没有计算里程的限制。
2、公路任意桩号高程计算
在输入所求点距离路面的厚度、所求点桩号、路面横坡值、路面某点至中桩距离后显示该点高程。
3、高边坡边坡放样
根据现场测量得的坐标和高程数据,利用程序求出立镜点与边坡点的距离,逐步渐近求得边坡坡脚线位置。
二、程序编写
各测量程序分为二个部分:数据库程序和主程序。数据库为线路对应的设计参数,随工程而定。主程序为算法,一般固定不变。
1、公路路线坐标算法
宜采用缓和曲线在坐标系下任意位置的通用积分公式,它完全适应缓和曲线左偏、右偏、Rs >Re 、Rs <Re等各种情况,不必先凑成完整缓和曲线,降低了算法的复杂程度。在直线与圆曲线情况下,通过对Rs,Re进行设定,即可适用。
单线元通用积分公式如下
M = (1.0/Re-1.0/Rs)/Ls;
x=∫(cos(Ta + L/Rs + 0.5*M *L*L),0,L};
y=∫(sin(Ta +L/Rs + 0.5*M *L*L),0,L};
a(i)= Ta +L/Rs + 0.5*M *L*L
Rs:缓和曲线起点半径
Re:缓和曲线止点半径
Rs,Re (NE坐标系下,右偏为正,左偏为负)
Ta:缓和曲线起点的真北方位角
Ls:不完整缓和曲线长度。
QXJS-000(程序名可自定) 主程序
Lbl 4:“1.SZ=>NE”:“2.NE=>SZ”:?Q:?S:Prog“QXJS-SUB0”↙ 提示输入“1”,“2”,调用数据库子程序;
Lbl 0:Q=1 => Goto1:Q=2 => Goto2:↙ 选择进入正算或反算程序;
Lbl 2: “N=”:?B: “E=”:?C:B→N: C→E:Prog“QXJS-SUB2”: “S=”:S◢“Z=”:Z◢Goto4↙ 输出反算中桩号及距中桩距离;
Lbl 3:I=Pol(N-Z[1],E-Z[2]):J<0=>J=J+360:“DIST=”:I◢
“FW=”:J DMS◢ Goto4↙ 输出与测站点的距离和方位角;返回主程序提示输入界面;
(Z[1]为测站点X坐标,Z[2]为测站点Y坐标)
2、数据库子程序
QXJS-SUB0 数据库子程序
Goto1↙ 同时保存多个曲线时的指针
Lbl 1
IF S<***(线元终点里程):Then***→A(线元起点方位角):***→O(线元起点里程):***→U(线元起点X):***→V(线元起点Y):*** →P(线元起点曲率半径):***→R(线元终点曲率半径): ***→L(线元起点至终点长度): Return:IfEnd↙
IF S<***:Then***→A:***→O:***→U:***→V:***→P:***→R: ***→L: Return:IfEnd↙
………………………..为了便于解读,每增加一个线元增加一行语句,每增加一条曲线增加一个Lbl,每增加一个工程增加一个文件。
注意:Goto n—Lbl n为转移命令,其中n为从0到9之间的整数,或从A到Z之间的变量名称,如果线路曲线较多,转移命令超过十个,可在第十个(Lbl 9)中加入第二层子程序,以解决转移命令超过十个的情况。
QXJS-SUB1 正算子程序
0.5(1÷R-1÷P)÷L→D:S-O→X↙
U+∫(cos(A+(X÷P+DX2)×180÷π,0,X)→N↙
V+∫(sin(A+(X÷P+DX2)×180÷π,0,X)→E↙
A+(X÷P+DX2)×180÷π→F↙
N+Zcos(F+90) →N:E+Zsin(F+90) →E
QXJS-SUB2 反算子程序
Lbl 1:0→Z:1→Q:Prog“QXJS-SUB0”: Prog“QXJS-SUB1”↙
Pol(N-B+10^(-46), E-C+10^(-46)):Isin(F-90-J) →W:S+W→S↙
Abs(W)>0.0001 => Goto1↙
Lbl 2: 0→Z:Prog“QXJS-SUB1”:(C-E) ÷sin(F+90) →Z
3、使用说明
1)规定
(1) 以道路中线的前进方向(即里程增大的方向)区分左右;当曲线半径在左时,P、R取负值,当曲线半径在右时,P、R取正值,当曲线半径为无穷大(即直线)时,P、R以10的45次代替。
(2) 当所求点位于中线时,Z=0;当位于中线左铡时,Z取负值;当位于中线中线右侧时,Z取正值。
(3) 当线元为圆曲线时,无论其起点、止点与什么线元相接,其曲率半径均等于圆弧的半径。
(4) 当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以10的45次方代替;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。
(5) 当线元为非完整缓和曲线时,起点与直线相接时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。
2)输入与显示说明
输入部分:
1. SZ => XY
2. XY = > SZ
Q ? 选择计算方式,输入1表示进行由里程、边距计算坐标 ;输入2表示由坐标反算里程和边距。
4、公路纵断面高程算法
Filename:******(自定主程序名)
N-M→P:Abs(P)÷P→S:Abs(P)×R÷2→T:If L<D-T:Then C+(L-D)M→H:Ifend↙ 判断输入点是否位于曲线的小里程桩号直线段;
If L>D-T:Then C-MT+(M+(L-D+T)S÷2÷R)×(L-D+T)→H:Ifend↙ 判断输入点是否进入曲线段;
If L≥D+T:Then C+(L-D)N→H:Ifend↙ 判断输入点是否位于曲线的前进里程桩号直线段;
H-E-KI→H:“H=”:H◢
5、公路纵断面数据程序
每个纵断面由纵坡和竖曲线组成,程序中每一个变坡点计算范围是从竖曲线前的纵坡任意桩号开始到竖曲线后纵坡上的任一桩号结束。
Filename:******(自定子程序名)
Lbl 0: “Dh”? :E”L=”?L:”I=”?I:”K=”?K↙
If L>****(曲线段小里程桩号之前的直线段任一桩号):Then****(变坡点高程)→C: ****(变坡点桩号)→D: ****(变坡点小里程段纵坡坡度)→M:I****(变坡点小里程段纵坡坡度)→N: ****(竖曲线半径)→R: ****(变坡点桩号)→C: Ifend:Prog“****(主程序名)”: Goto0↙ 依次输入各变坡点设计参数;
6、使用说明
“Dh”提示使用者输入所求点距离路面的厚度, “L=”,输入所求点桩号,”I”=表示输入路面横坡值,“K=”表示输入路面某点至中桩距离,均为正值。以上数据均在程序运行时输入。
L>表示竖曲线前纵坡任意里程的桩号,本程序每段竖曲线参数计算范围是从竖曲线前的纵坡上任意点到竖曲线后纵坡上任意点的桩号。
7、高边坡放样算法
利用程序进行边坡放样,工作步骤如下:
1、 司镜员走到目的地后,先测出一个点的坐标和高程;
2、 利用坐标正反算程序求出该点在线路中的桩号和距中距离,然后利用高程计算程序,计算出该点所在桩号道路边桩设计高程,最后根据本程序计算出立镜点至距中距离差值△K,指挥司镜员靠近道路中线或者往外偏移多少米。
3、 重复上述步骤,至△K 小于边坡宽度控制精度要求为止。
根据Hc、Hs的高差计算出K2,按照P点的高程,边坡顶距中桩的理论宽度K理论,具体计算如下:
K理论=K1+h*n1+m+h*n2+m+(Hc-Hs-2h)*n3 (K1为设计值)
则△K=K- K理论
△K 求出来后,可以指挥司镜员靠近道路△K米,然后重复以上步骤,直到△K值能满足边坡控制精度。填方边坡的算法原理是同样的。
8、高边坡放样程序
Filename:******(程序名可自定) 主程序
Lbl 0:“Hs=” ?A: “Lc=” ?B: “Hc=” ?C↙ 提示输入测点所在横断面边桩的设计高程Hs、距中桩的距离Lc(可由前二个基本程序得出)、测点高程Hc;
A-C→D: If D<0:Then Prog“****-SUB0”:Goto 1:Ifend↙;转入挖方边坡计算子程序,****-SUB0为挖方边坡计算子程序名;
If D≥8(挖方边坡第一阶高度,本例取为8):Then*+(D-8)×1.75(*为常数, 1.75为第二阶坡比,均根据设计参数定)→E:Ifend↙ 依次按设计输入各阶放坡参数;
------------------------------
E-B→F: If F>0:Then” <F=”:F◢Ifend↙ <F表示向远离中桩方向移动;
If F≤0:Then” >F=”:Abs(F)◢Ifend: Goto 0↙ >F表示向中桩方向移动;
Lbl 1↙ 用于控制挖方边坡计算结果的显示
E-B→F: If F>0:Then” >F=”:F◢Ifend↙ >F表示向中桩方向移动;
If F≤0:Then” <F=”:Abs(F)◢Ifend: Goto 0↙ <F表示向远离中桩方向移动;
挖方边坡计算子程序
Filename:******-SUB0 子程序名可自定
If D<-0.01:Then*+Abs(D)×0.5(*为常数, 1.75为第二阶坡比,均根据设计参数定)→E:Ifend↙
-------------------------------
If D<-24:Then*+Abs(D+24) (*为常数, 1为第四阶坡比,均根据设计参数定)→E:Ifend:Return↙ 依次按设计输入挖方各阶放坡参数,本例至第四阶。