曲线元计算Word版

上传人:无*** 文档编号:133981108 上传时间:2022-08-11 格式:DOC 页数:26 大小:79KB
收藏 版权申诉 举报 下载
曲线元计算Word版_第1页
第1页 / 共26页
曲线元计算Word版_第2页
第2页 / 共26页
曲线元计算Word版_第3页
第3页 / 共26页
资源描述:

《曲线元计算Word版》由会员分享,可在线阅读,更多相关《曲线元计算Word版(26页珍藏版)》请在装配图网上搜索。

1、FX-5800P曲线元计算FX-5800P线元计算FSIPSON(主程序)Lbl 0(全局变量初始化)“F0:KZ=XY”:“F1:XY=KZ”?MCls:90C:“ANG=”?CIf M=0:Then Goto 1:Else If M=1:Then Goto 2:Else Goto 0:IfEnd: IfEndLbl 1(正算模式)Norm 1:DegCls:“Kp=”?SCls:“Zp=”?ZProg”DATPXX”Prog”TURNYS”Prog”HHB1”Cls:Fix 3“XK=”:Locate 6,2,XLocate 1,3,X “YK=”:Locate 6,4,YGoto 1Lb

2、l 2(反算模式)Norm 1:Deg“Xp=”?N: Cls:“Yp=”?E线路起点桩号如10660SProg”DATPXX”Prog”TURNYS”Prog”HHB2”Cls:Fix 3“Kp=”:Locate 6,2,SLocate 1,3,“Zp=”:Locate 6,4,ZGoto 2HHB1(四等分复化辛卜生坐标正算子程序)Lbl 0(循环计算各节点值)For 1M To 2 / 268G+180Q(M(S-O)(8P)+M2(P-R)(S-O)2(128PR(H-O)ListXM Next List X8T360(Frac(T+360)360)TLbl 1(中边桩坐标计算)U+(

3、S-O)(Cos(G)+4(Cos(ListX2M+1),M,0,3)+2(Cos(ListX2M+2),M,0,3)-Cos(List X8)24XV+(S-O)(Sin(G)+4(Sin(ListX2M+1),M,0,3)+2(Sin(ListX2M+2),M,0,3)-Sin(List X8)24YX+ZCos(T+C)XY+ZSin(T+C)YReturnHHB2(四等分复化辛卜生坐标反算子程序)Lbl 0(反算数据初始化)G-(180-C)FO+Abs(E-V)Cos(F)-(N-U)Sin(F)S0Z(置零)Lbl 1(反算桩号偏距)Prog”HHB1”180(T-(180-C)L

4、(E-Y)Cos(L)-(N-X)Sin(L)ZIf Z10(-5):Then Goto 2:ElseS+ZS:Prog”DATPXX”:Prog”TURNYS”:Goto 1IfEndLbl 2(计算偏距)(N-Y)Sin(T+C)ZReturnDATPXX(平面数据库子程序)If SKei:Then Ksi,XSi , YSi , TSi , RSi ,Rei,Kei,Qi Mat A :Return:IfEndIf SKe i+1:Then Ksi+1,Xsi+1 , Ysi+1 , Tsi+1, Rsi+1 ,Rei+1,Kei+1,Qi+1 Mat A Return:IfEnd.TU

5、RNYS(将存在矩阵中的线元数据赋给正算标准变量)Mat A1,1OMat A1,2UMat A1,3VMat A1,4GMat A1,5PMat A1,6RMat A1,7HMat A1,8QReturn关于程序的一些说明:1.程序的功能:实现线路全线任意角度正反算,反算无需输入近似桩号。2.程序计算核心是复化辛卜生近似求积分公式,相对于高斯-勒让德公式来说,是比较好理解的,即用小段抛物线拟合曲线。但是精度在分段数相同的条件下要差些,当然程序中4等分能满足一般放样要求。在5800P中,运行的速度也慢些。在此主要是比较,大家可以选择适合自己计算器的数学模型来编制程序。FX-5800P曲线元计算

6、之高斯-勒戎德版FX-5800P之曲线元计算(高斯-勒让德版)FQXY(曲线元主程序)Lbl 0(线元要素输入)Norm 1:Deg“KS=”?0:Cls:“XS=”?U: Cls:“YS=”?V:Cls“TS=”?G:Cls:“RS=”?P:Cls:“Re=”?R:Cls“Ke=”?H:Cls:“-1,0,1PX=”?QLbl 1(坐标及切线方位角计算)Cls:Norm1”Kp=”?S: IF S=-1:Then Cls:Goto 0:IfEndCls:”Zp=”?ZCls:“ANG=”?CAbs(S-O)W(P-R)(2PR(H-O)DProgGZS Cls:Fix 3Locate 4,1

7、,RESULT-Locate 1,2,Xp=:Locate 5,2,XLocate 1,3,Yp=:Locate 5,3,YLocate 1,4,Tp=:Locate 5,4,T0Goto 1GZS(高斯-勒戎德4节点近似积分计算线元坐标子程序)Lbl 00.1739274226A: 0.32607257774B0.0694318442K: 0.3300094782LLbl 1U+W(ACos(G+180QKW(1P+KWD)+BCos(G+180QLW(1P+LWD)+BCos(G+180(1-L)QW(1P+(1-L)WD) )+ACos(G+180(1-K)QW(1P+(1-K)WD)X

8、V+W(ASin(G+180QKW(1P+KWD)+BSin(G+180QLW(1P+LWD)+BSin(G+180(1-L)QW(1P+(1-L)WD)+ASin(G+180(1-K)QW(1P+(1-K)WD)YG+180QW(1P+WD)+CFX+Z Cos(F)X: Y+Z Sin(F)Y360Frac(360+F-C)360)TReturn参数说明:KS=?起点桩号XS=?起点X坐标YS=?起点Y坐标TS=?起点切线方位角RS=?起点半径Re=?终点半径Ke=?终点桩号-1,0,1PX=?线元偏向系数,左-1,右1,直线为0Kp=?待求点桩号Zp=?待求点偏距,左负右正。ANG=?斜

9、交右角,0-180度。关于程序的一些说明: 应网友“相忘于江湖”之邀,特写此程序。在我写这个程序的时候,我就想起那个自定义为“自然曲线版”的结构复杂、功能强大、智能化程度很高的综合计算程序。相对来说,这个程序结构简单,功能单一,恰似一把“匕首”。核心程序数学模型采用高斯-勒让德近似积分,从数值计算的角度来说,此法收敛速度快,而且是数值稳定的,比较适合FX-5800P编程。需要特别声明的是:这个案例,是高等数学一个很成功的应用,当然并非本人原创,我第一次遇到这个应用是在测量空间里面,很佩服那个“第一人”!后来我花了一段不短的时间,才勉强能够推导。程序适用于直线、圆曲线、缓和曲线(含不完整的),我

10、想:那些刚开始从事线路测量工作的朋友肯定会喜欢的。FX-5800P线路计算FNPT(主程序)Lbl Q(选择单点或多点计算模式)4DimZ“SELECT MODE”“F0:ONE POINT”“F1:N POINT”?Z4If Z4=0:Then Goto B: Else If Z4=1:Then Goto A: Else Cls :Goto Q:IfEnd: IfEndLbl A(批量计算直角坐标和极坐标元素入口)Norm 1:Deg:FreqON:ClrStat:0N:ClsProgSTATION:IF Z3=-1:Then Cls:Stop:IfEndClsZ1E“KS+Kei=”?E:

11、EZ1:Cls“STEP=”?Z2:Cls“Zp=”?Z90C:Cls:”ANG=”?CLbl 1(循环生成桩号序列)ReP(E)List Freq1ReP(E)+(Z2-10(Frac(0.1ReP(E)List Freq2For 3M To (Int(ImP(E)-ReP(E)Z2)+2-1)List FreqM-1+Z2List FreqMNextLbl 2(循环计算坐标)ImP(E)List FreqM+1For 1M To (Int(ImP(E)- ReP(E)Z2)+2)List FreqMSProgDATPMCProgTURNYSProgZSFix3XListXMYListYMC

12、ls:Norm 1Locate 2,2,”COMPUTER”Locate 13,2, Intg(ImP(E)- ReP(E)Z2)+2-M)Fix 3NextLbl 3(提取结果并显示)Cls:”PRESSMODE4=AnsFXYKOrEXE =SET OUT”For 1M To Int(ImP(E)- ReP(E)Z2)+2List XMXList YMYList FreqMSProgPOLProgDISP.KZProgDISP.XYNextGoto ALbl B(单点计算模式入口)Norm 1:Deg:0N(置零)ProgSTATIONCls:90C:”ANG=”?CLbl 4(单点计算模

13、式)Cls:”Kp=”?SIF S=-1:Then Cls:Stop:IfEndCls:”Zp=”?ZProgDATPMCProgTURNYSProgZSProgPOL:ProgDISP.XYGoto 4STATION(测站输入子程序)ClsZ 2N+3EStX+StYi?EEZ2N+3ReturnDATPMC(平面数据库子程序)If SKei:Then Ksi,XSi , YSi , TSi , RSi ,Rei,Kei,Qi Mat A :Return:IfEndIf SKe i+1:Then Ksi+1,Xsi+1 , Ysi+1 , Tsi+1, Rsi+1 ,Rei+1,Kei+1,

14、Qi+1 Mat A:Return:IfEnd.TURNYS(将存在矩阵中的线元数据赋给正算标准变量)Mat A1,1OMat A1,2UMat A1,3VMat A1,4GMat A1,5PMat A1,6RMat A1,7HMat A1,8QReturnZS(线路正算预备子程序)Abs(S-O)W(P-R)(2PR(H-O)DProgGZS ReturnGZS(高斯-勒戎德4节点近似积分计算线元坐标子程序)Lbl 00.1739274226A: 0.32607257774B0.0694318442K: 0.3300094782LLbl 1U+W(ACos(G+180QKW(1P+KWD)+

15、BCos(G+180QLW(1P+LWD)+BCos(G+180(1-L)QW(1P+(1-L)WD) )+ACos(G+180(1-K)QW(1P+(1-K)WD)XV+W(ASin(G+180QKW(1P+KWD)+BSin(G+180QLW(1P+LWD)+BSin(G+180(1-L)QW(1P+(1-L)WD)+ASin(G+180(1-K)QW(1P+(1-K)WD)YG+180QW(1P+WD)+CFX+Z Cos(F)XY+Z Sin(F)Y360Frac(360+F-C)360)TReturnPOL(极坐标计算子程序)Pol(X-ReP( Z 2N+3 ),Y-ImP(Z 2

16、N+3 )+10(-5)JJ+360JReturnDISP.K Z(桩号及偏距显示子程序)Fix 3:ClsKp=:Locate 5,2,SLocate 1,3, Zp=Locate 5,4,ZReturnDISP.XY(极坐标要素及直角坐标显示子程序)Fix 3:ClsHR=:Locate 5,1,J0HD=:Locate 5,2,IXp=:Locate 5,3,XYp=:Locate 5,4,YReturn关于程序的几点说明1.写此程序的初衷是应网友“K0+000之邀,提供一份基本程序供初学者参考之用。所以程序实现的功能相对单一,仅具备线路正算及放样功能(包括单点循环计算和批量标准偏距计算

17、)。由于程序是从综合程序中临时分解组合而成,有些变量在综合程序中是通用的,如变量Z2N+3存储测站坐标,类似情况,在此看来有些。语言和逻辑顺序也可能存在一些混乱。敬请谅解!旨在抛砖引玉。2.程序采用线元法的思路,核心数学模型是高斯-勒让德4节点近似求积分。本人偏爱线元法是出于程序可以很好地实现整个线路连续累积计算并自动检核,略去线元衔接处一些参数的输入。解决问题快速而且确定。为此我曾做过试验:一个由64段线元复杂组合而成线路,从数据库参数输入到实现平面相关计算大致在10分钟左右,终点桩号、坐标、方位正确即证明整个线路计算无误,速度和可靠性应该是不错的。在此为了简洁,采用的仍是传统线元数据库输入

18、方法。3.程序由主程序+测站子程序+平面数据库子程序+数据库转换子程序+正算预备子程序+正算子程序+极坐标计算子程序+桩号偏距显示子程序+坐标显示子程序组成,之所有这么多子程序,是因为在母体程序中,这些都是可任意调用的标准模块。搞清楚程序之间的关系,一切均无需再说明。如有兴趣的朋友有不清楚的地方可QQ联系。FX-5800P高程计算FX5800P高程计算NFHKZ(高程计算主程序)Lbl 1(数据初始化)Prog”SELHDT”Prog”NHJSYS”Cls:”W0=”?X:Cls“+ -t0=”?YLbl 2(循环调用纵横数据计算高程)DoCls:“KP=”?S:If S=-1:Then Go

19、to 1:ElseIf SmaxX Or SINPUT”Goto 2:IfEnd: IfEndCls ZP=?ZProg”NHZHYS”Prog”SSQX”Prog”SELIDT”Prog”TIMYS”Prog”SI”Cls“HC=”?EProg”HJS”Prog”DISP.HITW”LpWhile S0SELHDT(竖曲线数据库选择子程序)Lbl 0(选择线路代码)Cls:“ZHUHAI.JICHANG- ”THE ROAD NO.XX”?MIf M31:Then Goto 0:IfEndIf M=1:Then Prog”NDHKX”:Return: IfEndIf M=2:Then Pro

20、g”NDHZX”:Return: IfEnd.If M=31:Then Prog”NDHXXX”:Return: IfEndNDHXXX(竖曲线数据库子程序)变坡点数目N:N+1DimZ起点桩号,变坡点1桩号。变坡点N桩号,终点桩号List X起点高程,变坡点1高程。变坡点N高程,终点高程List Y变坡点1竖曲线半径。变坡点N竖曲线半径,1030,1030List FreqReturnNHJSYS(循环计算纵坡子程序)For 1I To N+1(List YI+1- List YI)(List XI+1- List XI)ZINextReturnNHZHYS(循环判断、转换竖曲线参数子程序)

21、For 1I To NIf SList XI+1+0.5 List FreqIAbs(ZI+1-ZI):Then List XI+1AList YI+1BList FreqIRZIC:ZI+1DReturnIfEndNextReturnSSQX(竖曲线计算子程序)Lbl 0D-CW:0.5RAbs(W)T: A-TE: A+TFLbl 1If SE:Then B+(S-A)CH: Return:IfEndIf SF:Then B+(S-A)C+W(S-A+T)2(2RAbs(W)H: Return:IfEndIf SF:Then B+(S-A)DH:IfEndReturnSELIDT(横坡数据

22、库引导子程序)If M=1:Then Prog”NDIKX”:Return: IfEndIf M=2:Then Prog”NDIZX”:Return: IfEnd.If M=31:Then Prog”NDHXXX”:Return: IfEndNDIXXX(横坡数据库子程序)If Z0:Then Goto L:Else Goto R:IfEndLbl L(设计高程线左侧横坡)If S横坡变化区间终点桩号:Then 起点桩号,终点桩号,起点横坡,终点横坡MatF: Return: IfEnd.Lbl R(设计高程线右侧横坡)If S横坡变化区间终点桩号:Then 起点桩号,终点桩号,起点横坡,终点

23、横坡MatF: Return: IfEnd.TIMYS(矩阵横坡数据传递给标准变量)Mat F1,1AMat F1,2BMat F1,3CMat F1,4DReturnSI(横坡计算子程序,按图纸确定)Lbl 1(线性过渡)C+(D-C)(S-A)(B-A)I:I100IReturnLbl 2(三次抛物线过渡,其中一种)C+(D-C)(3(S-A)(B-A)2-2(S-A)(B-A)3)I: I100IReturnHJS(高程计算子程序)H:H+(Abs(Z)-X)+YGReturnDISP.HITW(高程相关显示子程序)ClsHS=:Locate 5,1,HHt=:Locate 5,2,GI

24、%=:Locate 5,3,100ITW=:Locate 5,4,G-EReturn关于程序的几点说明:1.本程序由1个主调程序+12个相关子程序组成,实现线路任意点高程计算。之所以“庞大”,一方面仍然是从程序标准化和智能化方面来考虑,另一方面,我面对的大小线路总共31条,不得不考虑数据的处理方式。如果说有什么优势的话,那么竖曲线数据处理将会给你带来预想不到的效果。2.有兴趣的朋友可以根据自己工程的实际情况,略去一些不必要的子程序(如只有一条线路,又何必需要线路、数据库引导程序?)自行组合、修改。我的目的是想提供一些思路,大家一起研究,有什么好的建议,可以QQ联系我,不妥之处,敬请谅解。Z0W

25、-FX5800(快速计算中边桩坐标正反算、可现场输入要素,可预先建好数据库主程序 Z0WLbl 0:“NEW=0,Z1=1,Z2=2”?Z:选则数据库IfZ=0:Then“X0=”?A:“Y0=”?B:“C0=”?C:“R0=”?D:“R1”?E:“DKA=”?F:“DKB=”?G:IfEnd:新建数据库1.ZS,2.FS ?Q: 正反算Q=2=Goto 2Lbl1 :Cls:“DK=,0 Stop”?H:HStopLblZ:Z=1=Prog“Z1”:Z=2=Prog“Z2” H- FX:0.5(1/E)-(1/D)(G-F)NC+(X(1/D)+NX2)*180P:PP+360P:P360=

26、P-360PA+(cos(C+(X(1/D)+NX2)*180),0,X)UB+(sin(C+(X(1/D)+NX2)*180),0,X)VQ=2=Goto 4:Cls:Xn=:Locate 4,1,U:Yn=: Locate 4,2,V: AT=:PDMSCls:“W L=“? W :WR=?S U+Wcos(P90)K: V+ Wsin(P90)TCls: Locate 1,1,“XL=”:Locate 4,1,K:Locate 1,3,“YL=”:Locate 4,3,TUScos(P90)K:VSsin(P90)T:Cls: Locate 1,1, “XR=”:Locate 4,2,K

27、:Locate 1,3, “YR=”:Locate 4,4,TNorm 2:Cls:Goto1Lbl2:“XD=,0,STOP”?R:RStop:“YD=”?S“DK=”?H :0L:GotoZ Lbl4:Pol(R-U,S-V):J J+360JWhileAbs(Icos(J-P)0.001:P-J180= J+360J: P-J P+360P:IF P-J0:then (-I)L:Else IL IfEndGoto3: WhileEnd:H+Icos(J-P)H:GotoZLbl3:Cls:Fix 3“DK=”: Locate4,1,H:“PY=”: Locate4,2,LNorm 2:C

28、ls:Goto2数据库子程序Z1If H第一曲线终点桩号:then第一曲线起点XA:第一曲线起点YB:第一曲线起点方位角C:起点半径D:终点半径E:起点桩号F:终点桩号G:Goto 0:Ifend半径,直线为10的45次方(无穷大),曲线左偏输入负值,右偏输入正值If H第一曲线终点桩号:then第一曲线起点XA:第一曲线起点YB:第一曲线起点方位角C:起点半径D:终点半径E:起点桩号F:终点桩号G:Goto 0:Ifend省略Lbl0:ReturnFX5800(快速计算中边桩坐标 建立数据库全线正反算、可现场输入要素)平 曲 线 程 序 运 行 提 示 符CASIO fx5800P启动Z0W

29、提示符示例说明NEW=0,Z1 =1,Z2=2选择数据库,现场输入选0(选择据X0?曲线起点X坐标Y0?曲线起点y坐标C0?问本段起点切线方位R0?问本段起点半径,直线为10 ,曲线左偏输入负值,右偏输入正值R1?问本段终点半径,直线为10的44次方,曲线左偏输入负值,右偏输入正值DKA?问本段起点里程DKB?问本段终点里程1.ZS,2.FS正算坐标1,反算里程2;正算 DK问正算里程(小于0里程结束)显示显示中线坐标及方位角WL?问左边距,正为左,负为右。默认正交WR?问右边距,正为右,负为左。默认正交显示左边坐标右边坐标显示左边坐标右边坐标反算 XD反算点x坐标yD反算点y坐标Dk反算点大

30、约里程反算显示反算点里程及边距程序说明:1、建立数据库全线正反算、可现场输入要素,坐标放样使用较方便。本程序正算子程序为积分公式编写而成;反算子程序为角度趋近的方法编写,计算速度有点慢。由于现在计算机普及,计算机功能日益强大,宜采用较简单的积分公式,便于计算机处理。单线元通用积分公式如下 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坐

31、标系下,右偏为正,左偏为负) Ta:缓和曲线起点的真北方位角 Ls:不完整缓和曲线长度。 此公式为缓和曲线在坐标系下任意位置的通用积分公式,能完全适应缓和曲线左偏、右偏、Rs Re 、Rs Re等各种情况,不必先凑成完整缓和曲线,降低算法的复杂程度。虽然此公式是由缓和曲线推导出来,也可和于直线与圆曲线,可降低计算机编程的复杂程度。2、该程序可以计算任意线形(直线、圆曲线、缓和曲线、不完整曲线)自然段任意桩号的坐标(正算,输入1),也可根据坐标计算该点到线路的距离及垂足桩号(反算,输入2); 3、本程序数据和主程序是分开的, 编程时将不同的工程数据存放到不同的数据文件里,如A匝道,文件名为ZA,

32、B匝道数据库文件名为ZB。运行时只要运行文件名Z程序就可以了,正算显示坐标,切线方位角未显示;用坐标放样使用。反算输入线路的任意桩号(此桩号越接近真实值计算速度越快)、待求点坐标,显示待求点桩号及偏中距离; 4、(NEW=0,Z1 =1,)?如果要计算的点为数据库线路中的点,则输入数据库编号;如果在数据库中没有要计算线路的数据,则输入曲线要素,选择0。当线元为圆曲线时,无论其起点、止点与什么线元相接,其半径均等于圆弧的半径。当线元为完整缓和曲线时,起点与直线相接时,半径为无穷大;与圆曲线相接时,半径等于圆曲线的半径。止点与直线相接时,半径为无穷大;与圆曲线相接时,半径等于圆曲线的半径。当线元为非完整缓和曲线时,起点与直线相接时,半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,半径等于设计规定的值;与圆曲线相接时,半径等于圆曲线的半径。设计规定值也可根据缓和曲线参数计算出来。 5、此程序显示较直观,结果在同一屏幕显示。注* :程序中乘号用*标示,其余为X。 友情提示:方案范本是经验性极强的领域,本范文无法思考和涵盖全面,供参考!最好找专业人士起草或审核后使用。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!