900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 曲线任意里程中边桩坐标正反算及放样fx-4850程序(第五次修改)

曲线任意里程中边桩坐标正反算及放样fx-4850程序(第五次修改)

时间:2024-06-10 12:08:30

相关推荐

曲线任意里程中边桩坐标正反算及放样fx-4850程序(第五次修改)

有个4800线元法程序,改成5800后,运行后计算某点1的坐标不对,再次运行同样计算该点的坐标,又是对的了,同样计算某点2仍是第二次才能算对,谁能知道怎么回事?

下面是该4800程序

曲线任意里程中边桩坐标正反算及放样fx-4850程序(第五次修改)

本程序是在yshf及hangniu1973两位师傅的成果上作的一次改动,修改内容主要有一下几点:

1、在变量符号上修改,目的是更能与工地实际结合;

2、把原主程序分为两个,更能灵活调用;

3、加入放样程序,做到坐标计算到放样一体化;

4、使得整个测量放样过程更加简单。

附件(点击下载):

GAUSSLE坐标正反算fx-4850程序

源程序

1.正算主程序 GSZS

I"X0":S"Y0":O"K0":G"F0":H"KN":P"R0":R"RN":Q”Q(-Z +Y)” :

D=(P-R)÷(2(H-O)PR):

KL”L(-Z +Y)” :M”ANG(YJJ)”=90:(注:此处若不给M赋值,则可计算斜交点)

J=Abs(K-O):Prog"SUB1":

”FWJ=”:F=F-M:”X=”:X=X:Pause0: ”Y=”:Y=Y◢

2. 反算主程序 GSFS

XY:Z[2]=X:Z[3] =Y:

I"X0":S"Y0":O"K0":G"F0":H"KN":P"R0":R"RN":Q”Q(-Z +Y)” :

D=(P-R)÷(2(H-O)PR):

J=Abs((Y-S)cos(G-90)-(X-I)sin(G-90)):

L=0:M”M(YJJ)”=90:

Lbl 0:Prog "SUB1":

L=(Z[3]-Y)cos(G-90+QJ(1÷P+JD)×180÷π)-(Z[2]-X)sin(G-90+QJ(1÷P +JD) ×180÷π):

AbsL<1E-6=>Goto1:≠>J=J+L:Goto 0Δ←┘

Lbl 1:L=0:Prog "SUB1":L=(Z[3]-Y)÷sinF:

”K=”:K=O+J:Pause0:”L=”:L=L◢

3. 正算子程序(SUB1)

Defm 4:

A=0.1184634425:B=0.2393143352:Z[4]=0.2844444444:C=0.0469100770:E=0.2307653449:Z[1]=0.5:

X=I+J(Acos(G+QCJ(1÷P+CJD)×180÷π)+Bcos(G+QEJ(1÷P+EJD)×180÷π)+Z[4]cos(G+QZ[1]J(1÷P+Z[1]JD)×180÷π)+Bcos(G+Q(1-E)J(1÷P+(1-E)JD)×180÷π)+Acos(G+Q (1-C)J(1÷P+(1-C)JD) ×180÷π)):

Y=S+J(Asin(G+QCJ(1÷P+CJD)×180÷π)+Bsin(G+QEJ(1÷P+EJD)×180÷π)+Z[4]sin(G+QZ[1]J(1÷P+Z[1]JD)×180÷π)+Bsin(G+Q(1-E)J(1÷P+(1-E)JD)×180÷π)+Asin(G+Q (1-C)J(1÷P+(1-C)JD) ×180÷π)):

F=G+QJ(1÷P+JD) ×180÷π+M:X=X+LcosF:Y=Y+LsinF

4. 曲线元要素数据库:DAT-M

K≥O=>K<H=> I=**:S=**:O=**:G=**:H=**:P=**:R=**:Q=**⊿⊿←┘

K≥O=>K<H=> I=**:S=**:O=**:G=**:H=**:P=**:R=**:Q=**⊿⊿←┘

K≥O=>K<H=> I=**:S=**:O=**:G=**:H=**:P=**:R=**:Q=**⊿⊿←┘

K≥O=>K<H=> I=**:S=**:O=**:G=**:H=**:P=**:R=**:Q=**⊿⊿←┘

K≥O=>K≤H=> I=**:S=**:O=**:G=**:H=**:P=**:R=**:Q=**⊿⊿←┘

……………………………

K≥O=>K≤H=> I=**:S=**:O=**:G=**:H=**:P=**:R=**:Q=**⊿⊿←┘

(注:如有多个曲线元要素继续添加入数据库DAT-M中)

5、M线(坐标正算)组合程序 MG-ZB

Prog”DAT-M”:Prog”GSZS”

6、M线(坐标计算-放样)组合程序 MG-FY

Prog”MG-ZB”:Prog”LTKZD”: Prog”FY”

7、M线(坐标反算)组合程序 M-GSFB

Prog”DAT-M”:Prog”GSFS”

说明:

一、程序功能及原理

1.功能说明:

本程序由两个主程序——正算主程序(GSZS)、反算主程序(GSFS)和两个子程——正算子程序(SUB1)、线元数据库(DAT-M)构成,可以根据曲线段——直线、圆曲线、缓和曲线(完整或非完整型)的线元要素(起点坐标、起点里程、起点切线方位角、终点里程、起点曲率半径、止点曲率半径)及里程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行正反算。本程序可以在CASIO fx-4800P计算器及 CASIO fx-4850P计算器上运行。由于加入了数据库(DAT-M),可实现坐标正反算的全线贯通。

组合程序5可实现M线的正算贯通,组合程序7可实现M线的反算贯通,组合程序6可实现坐标计算到放样一体化。

2.计算原理:

利用Gauss-Legendre 5点通用公式计算线路中边桩坐标并计算放样数据。

利用待求点至线元起点切线作垂线,逐次迭代趋近原理反算里程及边距。

二、使用说明

1、规定

(1) 以道路中线的前进方向(即里程增大的方向)区分左右;当线元往左偏时, Q=-1;当线元往右偏时,Q=1;当线元为直线时,Q=0。

(2) 当所求点位于中线时,L=0;当位于中线左侧时,L取负值;当位于中线右侧时,L取正值。

(3) 当线元为直线时,其起点、止点的曲率半径为无穷大,以10的45次代替。

(4) 当线元为圆曲线时,无论其起点、止点与什么线元相接,其曲率半径均等于圆弧的半径。

(5) 当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。

(6) 当线元为非完整缓和曲线时,起点与直线相接时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。

(7)曲线元要素数据库(DAT-M)可根据线型不同分为各个线元段输入到DAT-M中,即分为直线段、缓和曲线、圆曲线等。

(8)正算时可仅输入里程和边距及右交角可实现全线计算,但反算时只能通过首先输入里程K值读取数据库DAT-M,计算器自动将里程K所在线元数据赋给反算主程序GSFS进行试算,试算出的里程和边距须带入正算主程序GSZS中计算坐标,若坐标吻合则反算正确。

2、输入与显示说明

(1)输入部分:

X0 ?线元起点的X坐标

Y0 ?线元起点的Y坐标

K0 ?线元起点里程

F0 ?线元起点切线方位角

KN ?线元终点里程

R0 ?线元起点曲率半径

RN ?线元止点曲率半径

Q ? 线 元左右偏标志(左偏Q=-1,右偏Q=1,直线段Q=0)

K ? 正算时所求点的里程

L ? 正算时所求点距中线的边距(左侧取负值,右侧取正值,在中线上取零)

ANG?正算边桩时左右边桩连线与线路中线的右交角

X ? 反算时所求点的X坐标

Y ? 反算时所求点的Y坐标

M ? 斜交右角

线元要素数据库中K≥O=>K<H=>中的O和H分别为该段线元起点里程和终点里程

A、 B、Z[4] 是Gauss-Legendre求积公式中的插值系数

C 、E、Z[1] 是Gauss-Legendre求积公式中的求积节点

(2)显示部分:

X=××× 正算时,计算得出的所求点的X坐标

Y=××× 正算时,计算得出的所求点的Y坐标

K=××× 反算时,计算得出的所求点的里程

L=××× 反算时,计算得出的所求点的边距

三、算例

某匝道的由五段线元(直线+完整缓和曲线+圆曲线+非完整缓和曲线+直线)组成,各段线元的要素(起点里程S0、起点坐标X0 Y0、起点切线方位角F0、线元长度LS、起点曲率半径R0、止点曲率半径RN、线元左右偏标志Q)如下:

S0 X0 Y0 F0 LSR0 RNQ

500.000 19942.837 28343.561 125 16 31.00 269.256 1E45 1E450

769.256 19787.340 28563.378 125 16 31.00 37.492 1E45 221.75 -1

806.748 19766.566 28594.574 120 25 54.07 112.779 221.75 221.75 -1

919.527 19736.072 28701.893 91 17 30.63 80.285 221.75 9579.228 -1

999.812 19744.038 28781.659 80 40 50.00 100.000 1E45 1E450

(注:该算例中线元要素Ls为程序修改前须输入的线元长度,程序修改后改为输入线元终点里程KN)

放样程序 FY

U”XJ”:V”YJ”:W”XH”:Z”YH”:XY:I=W-U:J=Z-V:Pol(I,J):J<0=>J=J+360Δ

“HSJL=”:I◢

O”HF”=J:X=0=>U=U+LCos(J+P”μ”):

V=V+LSin(J+P”μ”):

”X=”:U:Pause0:”Y=”:V:≠>I=X-U:J=Y-V: Pol(I,J):J<0=>J=J+360:Δ

H”QF”=J:J=H-O:J<0=>J=J+360:Δ

“ANG=”:J→DMS (该处不输Pause0语句亦可实现“ANG=”和“QSJL=”的同时出现)

“QSJL=”:I

凌铁大桥控制点数据库 LTKZD

A=21:B=22:C=23:D=24:E=25:F=26:G=27:H=28:I=29←┘

T “ZJDH”:←┘

T=11=>U=****:V=****⊿←┘

T=12=>U=****:V=****⊿←┘

T=13=>U=****:V=****⊿←┘

T=15=>U=****:V=****⊿←┘

T= 4 =>U=****:V=****⊿←┘

T= A=>U=****:V=****⊿←┘

T= B=>U=****:V=****⊿←┘

T= C=>U=****:V=****⊿←┘

……………………………

(注:如有多个控制点继续添加入数据库LTKZD中)

N “HSDH”:←┘

N=11=>W=****:Z=****⊿←┘

N=12=>W=****:Z=****⊿←┘

N=13=>W=****:Z=****⊿←┘

N=15=>W=****:Z=****⊿←┘

N= 4 =>W=****:Z=****⊿←┘

N= A=>W=****:Z=****⊿←┘

N= B=>W=****:Z=****⊿←┘

N= C=>W=****:Z=****⊿←┘

……………………………

(注:如有多个控制点继续添加入数据库LTKZD中)

组合程式 LTFY

Prog ”LTKZD”: Prog ”FY”

说明:

一、程序功能及原理

1、功能说明:

FY程序有两个功能,当前视点坐标X输入为零时,程式执行转点功能,即首先通过全站仪测定任意转点距置镜点距离L及置镜点与转点连线和置镜点与后视点连线的夹角P”μ”并输入计算器,即可计算出任意转点坐标;另一功能是坐标放样,即输入放样点X、Y坐标,从而计算出与置镜点距离 “QSJL=”以及全站仪归零放样拨角“ANG=”(前视方位角-后视方位角)。

凌铁大桥控制点数据库LTKZD功能是与FY程序配合后,可实现坐标放样时仅输入置镜点、后视点的编号,从而减少其数据的大量输入。

2、计算原理:

利用坐标计算和方位角的基本知识以及计算器极坐标转换功能键POL

二、使用说明

1、规定

当前视点坐标X输入为零时,程式执行转点功能

2、输入与显示说明

(1)输入部分:

XJ ? 置镜点X坐标

YJ ? 置镜点Y坐标

XH ? 后视点X坐标

YH ? 后视点Y坐标

X ? 放样点X坐标

Y ? 放样点Y坐标

L ? 实测转点距置镜点距离

P”μ” ? 实测置镜点与转点连线和置镜点与后视点连线的夹角

T ? 置镜点点号ZJDH

N ? 后视点点号HSDH

11、12、13、15、4、A、B、C、D、E、F、G、H、I分别为凌铁大桥控制点点号,计算输入时按以上数字或字母输入计算器即可

(2)显示部分

HSJL=**** 后视距离(置镜点与后视点之间距离)

ANG= **** 全站仪归零放样拨角

QSJL=**** 前视距离(置镜点与放样点之间距离)

X= **** 转点X坐标

Y= **** 转点Y坐标

三、其它说明

1、若需要编制另一线路控制点程序,仅需新建另一数据库子程序LTKZD,新建时仅需改变上文中红色显示数据即可。

2、程式中11~15、及A~I均为控制点编号,程式开头首先给A、B赋值:A=21:B=22等,目的是为了在程式运行要求输入点号时能直接输入字母A、B、C等。

GAUSSLE5反算贯通程序(fx-4850)

本文是在第五次修改版的基础上的又一次改进,目的是在少占内存的情况下实现反算全线贯通

源程序

1.M线反算贯通主程序 FSGT

XY:Z[2]=X:Z[3]=Y: ←┘

K=O1:Prog”AB”:AB<θ=> Prog”FSLC”:Gotoθ⊿←┘

K=O2:Prog”AB”:AB<θ=> Prog”FSLC”:Gotoθ⊿←┘

K=O3:Prog”AB”:AB<θ=> Prog”FSLC”:Gotoθ⊿←┘

……………………………(注:如有多个线元则继续添加,其中O1 、O2、O3为第一、二、三段线元的起点里程,必须是具体数字)

Lbl θ

2. 里程迭代子程序 FSLC

K=O: Lbl 1:I=T:J=Abs(K-O):L=θ:M=θ: Prog”SUB1”:I=Z[2]-X:J=Z[3]-Y:Pol(I,J):

J=J-F:A=IcosJ:K=K+A:AbsA≥0.001=> Goto1: ≠>”K=”:K:Pauseθ:“L=”:

L=IsinJ

3. 垂距计算子程序 AB

Prog”DAT-M”:T=I: D=(P-R)÷(2(H-O)PR):J=Abs(H-O):L=θ: M=θ: Prog”SUB1”:

I=Z[2]-I:J=Z[3]-S:Pol(I,J):J=J-G:A=IcosJ:

I=Z[2]-X:J=Z[3]-Y:Pol(I,J):J=J-F:B=IcosJ

说明:

一、程序功能及原理

1.功能说明:

可实现M线的反算贯通。

2.计算原理:

见第五次修改版

二、使用说明

见第五次修改版

三、注意事项

1、”SUB1”和 ”DAT-M”子程序详见第五次修改版

2、程序中θ表示数字零,O表示字母,请注意区分

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。