已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
线元法曲线任意里程中边桩坐标正反算(CASIO fx-5800P计算器)程序(附带高程)一、功能及原理说明1. 功能说明:本程序由一个主程序(1-MAIN)和七个子程序正算子程序(1-SUB-ZS)、反算子程序(1-SUB-FS)等构成,可以根据曲线段直线、圆曲线、缓和曲线(完整或非完整型)的线元要素(起点坐标、起点里程、起点切线方位角、线元长度、起点曲率半径、止点曲率半径)及里程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行正反算。本修改版程序既可实现正算全线贯通,亦可实现反算全线贯通。本程序在CASIO FX-5800P计算器运行。2计算原理:利用Gauss-Legendre 5点通用公式正算线路中边桩坐标、线外测点至曲线元起点和终点的垂距的符号是否相异(即DcaDcb该测点在其线元内)进行判断并利用该线元要素反算中桩里程、支距,最后计算出反算结果。3. 程序输入计算器后,请根据统计串列List X,Y,freqN在程序中实际可能被使用的维数,将其统计矩阵串列改为包含相应维数的任意数据的矩阵,即在list列表中随机输入相应维数的数据,保证矩阵大小符合维数要求。4. 本程序正算速度在1-2秒左右,反算比正算慢点,可根据需要调整精度加快速度。本程序可建立曲线要素数据库及高程变坡点数据库,一次输入整条线路数据,计算时自动调用数据库,实现全线贯通,也可临时手动输入线元计算要素进行计算。5. 本程序由小骆在前人的基础上改进而成,经个人测试可用。学识浅薄,不足之处,在所难免,欢迎提出改进意见。交流邮箱:716118673二、源程序1.主程序(1-MAIN)Deg:fix 320DimZLbl 0:cls:“INPUT(0),ZX(1),YX(2)”?I (选择手动输入计算参数0,还是调用线路数据1,2)If I=0:Then Prog “1-DAT1”:IfEnd“SZ=XY(1),XY=SZ(2)”?N(正算,反算)If N=1 :Then Goto 1Else If N=2 :Then Goto 2Else Goto 3IfEnd:IfEndLbl 1:“KP=”?S(输入待求桩号)If S0:Then Goto 0:IfEnd“JL(m)=”?Z (输入偏距)If Z0:Then “ANGLER(Deg)=”?M:IfEnd (输入斜交右角)If I0:Then Prog “1-DAT2”:IfEndS-OW:If WH:Then cls:locate 6,2,KP OUTGoto 0:IfEnd:IfEnd(前半条针对“DAT”情况,后半条针对“INPUT”情况。)Prog “1-SUB-ZS”:Prog “1-SUB-GC”If Z0:Then cls:“XR(m)=”:locate 4,1,X:“YR(m)=”:locate 4,2,YElse cls:“X(m)=”:locate 5,1,X:“Y(m)=”:locate 5,2,Y“Hs(m)=”:locate 5,3,Z16:Fix 6:(临时增加显示位数以显示角度)“FWJ=”:locate 5,4,Int(F)+0.01Int(60Frac(F)+0.006Frac(60Frac(F)(将10进制角度转换为度分秒形式)Fix 3:IfEnd:IfEndGoto 1Lbl 2:“X(m)=”?X:If X0:Then Goto 0:IfEnd(输入待反算点X坐标)“Y(m)=”?Y(输入待反算点Y坐标) XZ4:YZ5:0M为运行“SUB-ZX”垂距计算准备数据If I=0:Then 1j:Ulist X1:Vlist Y1:HW:0Z:prog“1-SUB-ZS”:G+QEH(C+HD)F:Xlist X2:Ylist Y2:1ZG-90A:F-90B:Prog “1-SUB-ZX”If Z6Z7=0:Then goto B:IfendG+90A:F+90B:Prog “1-SUB-ZX”IF Z6Z7=0:Then Goto BElse cls:locate 6,2,KP OUT:Goto 0:IfEnd:Ifend1J:Prog 1-DAT1采用双变量递增,J变量超前计算以保证list x,Y,freqZ,Z+1的取值能准确无误,特别是对于存在多条线路的情况。此处利用双变量递增找出待求点所在的线元。0Z:Lbl A: Isz J:Prog 1-DAT1:Isz ZList freqZ-90A:list freqZ+1-90B:Prog “1-SUB-ZX” If Z6Z7=0:Then ZJ:Prog“1-DAT1”:Goto B:IfEndList freqZ+90A:list freqZ+1+90B:Prog “SUB-ZX” If Z6Z7=0:Then ZJ:Prog “1-DAT1” :Goto B:Else Goto A:IfEndLbl B:Prog“1-SUB-FS”O+WS:Prog “1-SUB-GC”Cls:“K(m)=”:locate 4,1,S:“Hs(m)=”:locate 4,2,Z16:“JL(m)=”:locate 4,3,ZGoto 2Lbl 3:cls:locate 4,2,1-MAIN-END2. 正算子程序(1-SUB-ZS)0.1184634425A: 0.2393143352B:0.2844444444Z1:0.0469100770K:0.2307653449L:0.5Z3U+W(Acos(G+QEKW(C+KWD)+Bcos(G+QELW(C+LWD)+Z1cos(G+QEZ3W(C+Z3WD)+Bcos(G+QE(1-L)W(C+(1-L)WD)+Acos(G+QE(1-K)W(C+(1-K)WD)X V+W(Asin(G+QEKW(C+KWD)+Bsin(G+QELW(C+LWD)+Z1sin(G+QEZ3W(C+Z3WD)+Bsin (G+QE(1-L)W(C+(1-L)WD)+Asin(G+QE(1-K)W(C+(1-K)WD)YG+QEW(C+WD)+MFX+Zcos(F)X:Y+Zsin(F)YF-MF:If F0:Then F+360F:IfEndReturn3. 反算子程序(1-SUB-FS)G-90T:Abs(Z5-V)cos(T)-(Z4-U)sin(T)W:0Z(给Z赋值0,因为在1-sub-zs中Z被调用,可能存在值)Lbl C:Prog “1-SUB-ZS”T+QEW(C+WD)Z8:(Z5-Y)cos(Z8)-(Z4-X)sin(Z8)Z2If Abs(Z2)Z12:Then 1Z14:Else -1Z14:IfEndIf SZ17:Then Z10+Z15Z16Z16:Else Z10+Z15Z16+Z14(Z17-Z16)22Z11Z16:IfEndReturn5. 垂距计算子程序(1-SUB-ZX) (Z5-list YZ)cos(A)-(Z4-list XZ)sin(A)Z6 (Z5-list YZ+1)cos(B)-(Z4-list XZ+1)sin(B)Z7Return6.曲线元要素数据库:1-DAT1(两条线路,可扩充为多条线路)If I=0:Then Goto E: Else If I=2:Then Goto F:IfEnd:IfEndJ=1=*list X1(起点x坐标U):*list Y1(起点Y坐标V):*Mat A1,1(起点里程O):*list freq1(起点方位角G):*Mat A1,2(起终点里程差H):*MatA1,4(起点半径P):*Mat A1,5(终点半径R):* Mat A1,5(偏转系数Q,左负右正,直线取0):Goto H:IfEndJ=2=*list X2(起点x坐标U):*list Y2(起点Y坐标V):*list freq2(起点方位角G):起点里程O,起终点里程差H,起点半径P,终点半径R,偏转系数QMat A:Goto H:IfEndJ=3=*list X3(起点x坐标U):*list Y3(起点Y坐标V):*list freq3(起点方位角G):起点里程O,起终点里程差H,起点半径P,终点半径R,偏转系数QMat A:GotoH:IfEnd.Lbl F: J=1=*list X1(起点x坐标U):*list Y1(起点Y坐标V):*list freq1(起点方位角G):起点里程O,起终点里程差H,起点半径P,终点半径R,偏转系数QMat A:Goto H:IfEndJ=2=*list X2(起点x坐标U):*list Y2(起点Y坐标V):*list freq2(起点方位角G):起点里程O,起终点里程差H,起点半径P,终点半径R,偏转系数QMat A:GotoH:IfEnd.(注:如有多个曲线元要素继续添加入数据库DAT1中)Lbl E:list XjU:list YjV:list freqjG:Mat A1,1O:Mat A1,2H:Mat A1,3P:Mat A1,4R:Mat A1,5Q:Goto GLbl E:“X0=”?U:“Y0=”?V:“S0=”?O:“F0=”?G:“LS=”?H:“R0=”?P:“RN=”?R:“Q=”?QLbl G:1PC:(P-R)(2HPR)D:180E:Return7曲线元要素判断数据库:1-DAT2(两条线路,可扩充为多条线路)If I=2:Then Goto 2:IfEndIf S第一线元终点里程:Then 1J:Prog “1-DAT1”:ReturnElse If S第二线元终点里程:Then 2J:Prog “1-DAT1”:ReturnElse If S第三线元终点里程:Then 3J:Prog “1-DAT1”:ReturnElse If S第四线元终点里程:Then 4J:Prog “1-DAT1”:ReturnIfEnd:IfEnd:IfEnd:IfEndIf S第四线元起点里程And S第五线元终点里程:Then 5J:Prog “1-DAT1”:Return.Else If S第n线元里程:Then nJ:Prog “1-DAT1”:ReturnIfEnd:IfEnd:IfEnd:IfEndLbl 2If S第一线元终点里程:Then 1J:Prog “1-DAT1”:ReturnElse If S第二线元终点里程:Then 2J:Prog “1-DAT1”:ReturnElse If S第三线元终点里程:Then 3J:Prog “1-DAT1”:ReturnElse If S第四线元终点里程:Then 4J:Prog “1-DAT1”:ReturnIfEnd:IfEnd:IfEnd:IfEndIf S第四线元起点里程And S第五线元终点里程:Then 5J:Prog “1-DAT1”:ReturnElse If S XY 2. XY = SZ 1、 N ? 选择计算方式,输入1表示进行由里程、边距计算坐标 ;输入2表示由坐标反算 里程和边距。 2、X0 ?线元起点的X坐标(U) 3、Y0 ?线元起点的Y坐标(V) 4、S0 ?线元起点里程(O) 5、F0 ?线元起点切线方位角(G) 6、LS ?线元长度(H) 7、R0 ?线元起点曲率半径(P) 8、RN ?线元止点曲率半径(R) 9、Q ? 线 元左右偏标志(左偏Q=-1,右偏Q=1,直线段Q=0) 10、S ? 正算时所求点的里程 11、Z ?正算时所求点距中线的边距(左侧取负,值右侧取正值,在中线上取零) 12、ANG?正算边桩时左右边桩连线与线路中线的右交角 13、J?曲线元数据库曲线段判断系数(J=1、2.n) 14、X ?反算时所求点的X坐标 15、Y ?反算时所求点的Y坐标16、 M?斜交右角17、 T、Z8、Z2? 反算时起点及迭代点切线的垂线的方位角,Z2是迭代计算时的迭代变量。18、Z4-反算时反算点的X坐标19、Z5-反算时反算点的Y坐标20、W? 正反算时所求点的里程与该段落起点里程的差值。21、A、B、Z1是Gauss-Legendre求积公式中的插值系数22、C、D、E是正算时为简化计算用于代替Gauss-Legendre公式中的小计算式的变量23、K 、L、Z3 是Gauss-Legendre求积公式中的求积节点24、J=1时:list X1、list Y1、Mat A1,1、list freq1、Mat A1,2、Mat A1,3、Mat A1,4、Mat A1,5分别是各曲线元的X、Y坐标、起始里程S0、初始方位角F0、线元长度Ls、起点半径R0、终点半径Rn、曲线偏向系数Q J=n时:list XJ、list YJ、Mat A1,1、list freqJ、Mat A1,2、Mat A1,3、Mat A1,4、Mat A1,5分别是各曲线元的X、Y坐标、起始里程S0、初始方位角F0、线元长度Ls、起点半径R0、终点半径Rn、曲线偏向系数Q25、 Z6、Z7? 线外点到线元起点与终点的垂距,也即线外点到起终点切线的垂线的距离。26、 Z9Z17? 高程计算时的临时变量(二)、显示部分: XS= 正算时,计算得出的所求点的X坐标 YS= 正算时,计算得出的所求点的Y坐标 S= 反算时,计算得出的所求点的里程 Z= 反算时,计算得出的所求点的边距四、算例 某匝道的由五段线元(直线+完整缓和曲线+圆曲线+非完整缓和曲线+直线)组成,各段线元的要素(起点里程S0、起点坐标X0 Y0、起点切线方位角F0、线元长度LS、起点曲率半径R0、止点曲率半径RN、线 元左右偏标志Q)如下:S0 X0 Y0 F0 LS R0 RN Q500.000 19942.837 28343.561 125 16 31.00 269.256 1E45 1E45 0 769.256 19787.340 28563.378 125 16 31.00 37.492 1E45 221.75 -1806.748 19766.566 28594.574 120 25 54.07 112.779 221.75 221.75 -1919.527 19736.072 28701.893 91 17 30.63 80.285 221.75 9579.228 -1999.812 19744.038 28781.659 80 40 50.00 100.000 1E45 1E45 0 1、正算 (注意:略去计算方式及线元要素输入,请自行根据所求点所在的线元输入线元要素) S=700 Z=-5 计算得 XS=19831.41785 YS=28509.72590 S=700 Z=0 计算得 XS=19827.33592 YS=28506.83837 S=700 Z= 5 计算得 XS=19823.25398 YS=28503.95084 S=780 Z=-5 计算得 XS=19785.25749 YS=28575.02270 S=780 Z=0 计算得 XS=19781.15561 YS=28572.16358 S=780 Z= 5 计算得 XS=19777.05373 YS=28569.30446 S=870 Z=-5 计算得 XS=19747.53609 YS=28654.13091 S=870 Z=0 计算得 XS=19742.68648 YS=28652.91379 S=870 Z= 5 计算得 XS=19737.83688 YS=28651.69668 S=940 Z=-5.123 计算得 XS=19741. 59118 YS=28722.05802 S=940 Z=0 计算得 XS=19736.47687 YS=28722.35642 S=940 Z= 3.009 计算得 XS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酒店工程部年度总结范文(7篇)
- 2024年挤塑板销售合同范本
- 2024年新推出:国际CNG运输企业安全合同
- 2024年度信息安全项目管理服务合同
- 成本会计工作工作计划(10篇)
- 幼儿园国庆节活动计划(28篇)
- 《预防脑卒中后抑郁的循证护理实践方案的构建及应用》
- 2024年技能人才劳务租赁合同
- 《高脂与纳米亚硝胺的共暴露对肝脏损伤的影响研究》
- 《十堰市农村电商发展现状及对策研究》
- 放射科疑难病例分析
- 封闭校园管理班会
- 2019年1月自考00804金融法二试题及答案含解析
- 河北中盐龙祥盐化有限公司宁晋盐矿矿山地质环境保护与土地复垦方案
- 2017年10月自考00258保险法试题及答案含解析
- 放射人员辐射安全培训课件
- 社会稳定风险评估 投标方案(技术标)
- 第21届WMO初赛3年级A卷(含答案)
- 中心静脉深静脉导管维护操作评分标准
- 大学生软件工程师生涯发展报告
- XBT 243-2023 氯化镧铈 (正式版)
评论
0/150
提交评论