5800P曲线坐标计算编程使用(非标准曲线)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
曲线任意里程中边桩坐标正反算(CASIO fx-5800P计算器)程序曲线任意里程中边桩坐标正反算(CASIO fx-5800P计算器)程序
一、程序功能
本程序由一个主程序(TYQXJS)和两个子程——正算子程序(SUB1)、反算子程序(SUB2)序构成,可以根据曲线段——直线、圆曲线、缓和曲线(完整或非完整型)的线元要素(起点坐标、起点里程、起点切线方位角、线元长度、起点曲率半径、止点曲率半径)及里程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行正反算。
另外也可以将本程序中核心算法部分的两个子程序移植到其它相关的程序中,用于对曲线任意里程中边桩坐标进行正反算。
本程序也可以在CASIO fx-4500P计算器及CASIO fx-5800 P计算器上运行。
特别申明:(1). 适用于弧长小于2倍半径的各种线元坐标正反算,精度优于1mm;
(2). 在引用该核心计算部分时,请注明来源。
(3)该程序可计算标准、非标准曲线,但不可以计算与线路成斜交角的坐标
二、源程序
主程序(QXJS)
"1.SZ => XY":"2.XY => SZ"?N:"X0"?U: "Y0"?V: "S0"?O: "FWJ0"?G: "LS"?H:"R0"?P?"RS"?R: "PX "?Q:1÷P→C:(P-R)÷(2HPR)→D:180÷π→E:If N=1:Then Goto 1:Else Goto 2:IfEnd
Lbl 1: "KS"?Z:"ES"?S:Abs(Z-O)→W:Prog "QXZS":"XS=" :X→X◢
"YS=": Y→Y◢
"FWJS=":(F-90)DMS◢
Prog "GC"
Goto1
Lbl 2:"XS"?X:"YS"?Y:X→I:Y→J:Prog "QXFS":O+W→Z
"KS=":Z→Z◢
"ES=": S→S◢
"FWJS=":(F-90)DMS◢
Prog "GC"
Goto 2
1.全线计算主程序(XLJS)
"1.SZ => XY":"2.XY => SZ":"1 or 2"?N: Lbl 0:"KS"?Z:"ES"?S:Prog "XXX":1÷P→C:(P-R)÷(2HP R)→D:180÷π→E:If N=1:Then Goto 1: Else Goto 2:IfEnd
Lbl 1:Abs(Z-O)→W:Prog "QXZS":"XS=" :X→X◢
"YS=": Y→Y◢
"FWJS=":(F-90)DMS◢
Prog "GC"
Goto 0
Lbl 2:"XS"?X:"YS"?Y:X→I:Y→J:Prog "QXFS":O+W→Z
"KS=":Z→Z◢
"ES=": S→S◢
"FWJS=":(F-90)DMS◢
Prog "GC"
Goto 2
2. 正算子程序(QXZS)
0.1739274226→A:0.3260725774→B:0.0694318442→K:0.3300094782→L:(1-L)→F:(1-K)→M:(U+W(Ac os(G+QEKW(C+KWD))+Bcos(G+QELW(C+LWD))+Bcos(G+QEFW(C+FWD))+Acos(G+QEMW(C+MW D))))→X:(V+W(Asin(G+QEKW(C+KWD))+Bsin(G+QELW(C+LWD))+Bsin(G+QEFW(C+FWD))+Asin(G +QEMW(C+MWD))))→Y:G+QEW(C+WD)+90→F:X+Scos(F→X:Y+Ssin(F→Y
Return
3. 反算子程序(QXFS )
G-90→T:Abs((Y-V)cos(T)-(X-U)sin(T))→W:0→S:Lbl 0:Prog " QXZS ":T+QEW(C+WD)→L:(J-Y)co s(L)-(I-X)sin(L)→S:If Abs(S)<10^(-6):Then Goto1:Else S+W→W:Goto 0:IfEnd
Lbl 1:0→S:Prog " QXZS ":(J-Y)÷sin(F)→S
Return
数据库:XXX
Lbl 1:If Z≤下一起点里程: Then本线路起点里程→O:本线路X→U:本线路Y→V:本线路方位角→G:本线路长度→H:本线路起点半径→P:本线路止点半径→R:±1→Q (左偏Q=-1,右偏Q=1,直线段Q=0):Else If Z≤下一起点里程: Then本线路起点里程→O:本线路X→U:本线路Y→V:本线路方位角→G:本线路长度→H:本线路起点半径→P:本线路止点半径→R:±1→Q :IfEnd: IfEnd
Return
四、数据库
1、线路平面数据库
数据名:“XXX”可根据自己须要更改
Lbl 1:If Z≤80(计算段终点里程) : Then 0→O (计算段起点里程): 62450.391→U(起点里程纵坐标): 56853.282→V (起点里程横坐标): 220°31′33″→G(计算段起点里程切线方位角): 80→H(缓和线): 10^45→P曲率半: 782.716→R(曲率半): -1→Q (线路左右偏): Else If Z≤xxx: Then0→O (计算段起点里程): 62450.391→U(起点里程纵坐标): 56853.282→V (起点里程横坐标): 220°31′33″→G(计算段起点里程切线方位角): 80→H(缓和线): 10^45→P曲率半: 782.716→R(曲率半): -1→Q: IfEnd: IfEnd
Return
O=80:U=62388.712:V=56802.348:G=²²²²²²²²²²²²
注:数据库内数据为示意数据,编两曲线中直线段时“H=”为该段长;半径“P=”、“R=”详以上使用说明;坐标、方位角为计算段起点的。
示意图:
2、数据库数据输入时应注意缓和曲线段、曲线段、两曲线中有一直线段为一计算段,详上面数据库内示意数据,带下划画线的为一计算段,逐个往下编直至整条线路编完,但注意的是CASIO fx-4850P计算器在一个程序中只能执行15个条件以下的条件转移。
高程主程序GC
LbI1:Prog“高程子程序名GCZL“:Abs(R)→R:2³tan-1(T/R)→O:(πRO)/180→I:If Z≤J-T:Then Z-J→A:0→M:Q→V:Goto2:Else If Z ≤J-T+I/2:Then -T→A:Z-J+T→M: Q→V:Goto2:Else If Z≤J-T+I:Then -T→A: J-T+I-Z→M: -D→V: Goto2: Else If Z>J-T+I:Then -2T-Z+I+J→A: 0→M: -D→V: Goto2:IfEnd: IfEnd: IfEnd: IfEnd
LbI2: If W≤0:Then Goto 3: Else -R→R: Goto 3: IfEnd
LbI3: (180M)/(πR) →P: R(1/cos(P)-1)→C: Abs(R³tan(P))→B: "GC=": E+(A+B)V+C→K◢
Return
6.道路放样高程主程序(DLCP)道路抄平
注:该程序与高程主程序共用(GC)
"BM-SZDGC"? F: "HS"?G: LbI0:"QS"?H: "KS"?Z: "ES"?S: "IP"?U: "HE"?N: Prog"GC"
"CDSJGC=": K+S*(U/100)+N→L◢
"CDSCGC=": F+G-H→X◢
"GCC=": L-X→Y◢
Goto 0
说明:
BM?:已知水准点高程
HS?:后视读数
QS?:前视读数
KS?:线路计算里程
ES?:偏距
IP?:道路横坡“+”“-”
HE?:计算层高;下为“-”上为“+”
GC=:设计道路中心路面高程
CDSJGC =:测点设计高程
CDSCGC =:测点实测高程
GCC=:测点至层面高差;“-”为下,“+”为上
3、竖曲线数据库“GCZL“可根据自己须要更改
If Z≤(SJD2起点里程) :Then (SJD1里程)→J:(SJD1高程)→E:(交点前坡度含正负/100)→Q:(交点后坡度含正负/100)→D:1→W (判定W=0凹,W=1凸):(切线长)→T:(竖曲线半径)→R: Else If Z ≤xxx:Then²²²²²²²²²²²²(竖曲线半径)→R: IfEnd: IfEnd
Return
三、使用说明
1、规定
(1) 以道路中线的前进方向(即里程增大的方向)区分左右;当线元往左偏时,
Q=-1;当线元往右偏时,Q=1;当线元为直线时,Q=0。
(2) 当所求点位于中线时,Z=0;当位于中线左铡时,Z取负值;当位于中线中线右侧时,Z取正值。
(3) 当线元为直线时,其起点、止点的曲率半径为无穷大,以10的45次代替。
(4) 当线元为圆曲线时,无论其起点、止点与什么线元相接,其曲率半径均等于圆
弧的半径。
(5) 当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以10的45 次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。
止点与直线相接时,曲率半
径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。
(6) 当线元为非完整缓和曲线时,起点与直线相接时,曲率半径等于设计规定的
值;与圆曲线相接时,曲率半径等于圆曲线的半径。
止点与直线相接时,曲率半径等
于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。
2、输入与显示说明
输入部分:
1. SZ => XY
2. XY = > SZ
N ? 选择计算方式,输入1表示进行由里程、边距计算坐标;输入2表示由坐标反算里程和边距。
X0 ?线元起点的X坐标
Y0 ?线元起点的Y坐标
S0 ?线元起点里程
FWJ0 ?线元起点切线方位角
LS ?线元长度
R0 ?线元起点曲率半径
RS ?线元止点曲率半径
Q ?线元左右偏标志(左偏Q=-1,右偏Q=1,直线段Q=0)
S ?正算时所求点的里程
ES ?正算时所求点距中线的边距(左侧取负,值右侧取正值,在中线上取零) X ?反算时所求点的X坐标
Y ?反算时所求点的Y坐标
显示部分:
XS=×××正算时,计算得出的所求点的X坐标
YS=×××正算时,计算得出的所求点的Y坐标
FS=×××正算时,所求点对应的中线点的切线方位角
S=×××反算时,计算得出的所求点的里程
Z=×××反算时,计算得出的所求点的边距
超高缓和段横坡计算程序
A"QD"B"ZD":E:F:
Lbl 0:{C}:D=(B-C)/(B-A)
I=(F-E)(1-3D平方+2D三次方)+E◢
如果超高缓和段是直线性的把I=(F-E)(1-3D平方+2D三次方)+E改为I=(E-F)D+F◢Goto 0
说明
A 起点里程
B 终点里程
E 起点横坡
F 终点横坡
C 计算点里程
I 计算点的横坡
五、超高横坡主程序(未完待续)
"1.ZH-HY =>HP1":"2.YH-HZ => HP2":N:V"V":W"W":L "L":K "K1":N=1 => Goto 1:≠> Goto 2Δ
LbI 1:{S}:S"K+":J=S-K:"HP1=":V+W/L*J◢
Goto 1
LbI 2:{S}:S"K+":J=S-K:"HP2=":V-W/L*J◢
Goto 2
说明:
1.ZH-HY =>HP1
2.YH-HZ => HP2
N?输入“1”计算ZH-HY段;“2”计算YH-HZ段
V?输入ZH、YH横坡值应区分“+”“-”
W?输入ZH-HY、YH-HZ横坡相加;计算曲线内时应代“-”
L?缓和曲线长
K1?ZH、YH里程
K+?计算里程。