线元法线路坐标正反算程序解析

上传人:我** 文档编号:114646746 上传时间:2019-11-12 格式:DOC 页数:17 大小:51KB
返回 下载 相关 举报
线元法线路坐标正反算程序解析_第1页
第1页 / 共17页
线元法线路坐标正反算程序解析_第2页
第2页 / 共17页
线元法线路坐标正反算程序解析_第3页
第3页 / 共17页
线元法线路坐标正反算程序解析_第4页
第4页 / 共17页
线元法线路坐标正反算程序解析_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《线元法线路坐标正反算程序解析》由会员分享,可在线阅读,更多相关《线元法线路坐标正反算程序解析(17页珍藏版)》请在金锄头文库上搜索。

1、经苦心钻研,奋战多日,终于编写出了代码短,速度快,精度高,功能全的线路坐标正反算程序,欢迎试用并提出宝贵意见。功能简介及特点:1、选用高斯-勒让德公式作计算内核,保证精度,模块化设计,便于扩充功能。2、线元数据可自动从数据库调用,也可手工输入。3、可管理多条线路,如里程不在线路或线元范围,将警告里程偏大、偏小。4、边桩计算设计为导线式递推方式,可用于由一个中桩推出结构物所有角点坐标。5、反算实现了智能化操作,只需输入线路号(或手工输线元资料)、坐标,不需近似里程,即可自动从起点向后开始试算出里程、位置,如对算出里程、位置表示怀疑,还可以让计算器从终点起再向前试算下一个可能的位置(匝道、回头曲线

2、同一坐标可能会有一个以上结果)。第三次及以后试算才要求输入近似里程。6、程序代码规范简洁,便于阅读、理解。 完整程序清单:ZFS %正反算主程序B=.1739274226:C=.5-B:Lbl 1:U0 ZS 1 FS=0=Prog ZS:U=1=ProgFS:Goto 1ZS %正算子程序K:ProgZZ:I=0:I:IL0=ProgWY:ProgZBFS %反算子程序 KVW:VXCWYC:Lbl 2:Prog ZZ:I=V-S:J=W-T:Pol(I,J:J=J-F:K=K+Rec(I,J:AbsIProgWZ:Goto 2M=0:M:M0 NEXT=0=U=U+1:Goto 2:U=1

3、ZZ %高斯法中桩子程序 (4节点)ProgXL:M=K-L:O=(P-R)2PQR:D=.0694318442:E=.3300094782:F=1:G=1-E:H=1-D:I=5:Lbl 1:CI=A+MrCI(1P+OMCI:Dsz I:Goto 1:S=X+M(BcosD+CcosE+CcosG+BcosH:T=Y+M(BsinD+CsinE+CsinG+BsinHWY %外移点计算子程序Lbl 1:J=90:J:J=F+JGoto 1WZ %位置显示子程序KJ:K:Pause 1:JZB %坐标显示子程序XY:S:Pause 1:TYC %异常处理子程序U=1=K=L:U=2U=3=K

4、=M:U=4U=5=K:U=4KM=!:Z=1 DL %断链处理子程序DL:K=L:I0=K=L+Q-以上为程序运算部分,以下为数据库部分-XL %线路数据库选择子程序Lbl 1:Z=0:N0 SD=0=Prog0N=1=Prog1N=2=Prog2.有几条线路仿上行格式输几行Z=1=NLXYOPQRK:Goto 10 %手工输入子程序LK0XYAQLSPR0RRN:M=L+Q:ProgYC1 %线路一数据库子程序Lbl B:L=线路起点里程:M=线路终点里程:ProgYC:Z=1=Goto EQ=线元长:P=起点半径:R=终点半径:KL+Q=X=起点X坐标:Y=起点Y坐标:A=起点方位角:G

5、oto EL=L+Q:.Q=短链长:KProg DL:Goto BL=L+Q:Q=线元长:P=起点半径:R=终点半径:KL+Q=X=起点X坐标:Y=起点Y坐标:A=起点方位角:Goto EL=L+Q:.Q=线元长:P=起点半径:R=终点半径:X=起点X坐标:Y=起点Y坐标:A=起点方位角:Lbl E2 %线路二数据库子程序输入要求和线路一相同。数据输入要求:是线路总体资料格式是标准线元资料格式,按里程顺序依次排断链资料格式最后一个线元资料格式注:1、加下划线的行是程序名及功能说明2、ZZ程序第三行的r是计算器的弧度转度标志,相当于*180/。3、请注意区别数字0及字母O每个子程序第一行为程序名

6、和功能简介用 %隔开,本程序语句在行未统一用冒号分隔,不须再加换行符,除前外所有冒号也可用换行代替。程序未尾的(一个程序中个数本应和=的个数相等)、:前的)、小数点前的0可省略,不影响程序运行结果,省略乘号的连乘运算优先级高于除法。=程序使用说明:数据库准备将各条线路的“线元要素”依次输入各数据库“1”、“2”,注意其中曲线半径右偏为正,直线请输为1010。线路起点里程即第一个线元的起点里程,线路终点里程即最后一个线元的终点里程。如线元起点和上一线元终点半径相同,P=起点里程可简写成P=R,如果线元终点半径和起点半径相同R=终点里程可简写R=P。如果线元起点半径等于前一线元终点半径,同时本线元

7、是直线或圆,R=P还可省略!新增语句解决断链并考虑反算中间结果在断链处时的处理方式。短链按示例输,长链要把长链后里程前加一位1,转化成短链,如4500.123要输成14500.123。断链长要按调整后的里程推算,运行时长链后里程要输成类似14500.123。运行程序:ZFS为主程序运行后首先提示:0 ZS 1 FS?选0正算,选1反算正算计算流程0 SD?输入线路号,手工输入线元输0,然后依提示输入线元数据;K0?起点里程X?Y?A?起点坐标、方位角LS?线元长R0?RN?起终点半径(右转为正)K?输入K中桩里程;里程在断链显示DL到L?输入相对上点偏距;按EXE输入0则输出中桩坐标到,否则?

8、输入相对线路前进方向右角,输出坐标;再次L?输入相对上点偏距;?输入相对上两点连线前进方向右角,输出坐标到。任何时候L?按EXE输入0到。反算计算流程XC?YC?输入测点坐标;0 SD?(同正算);从起点推算输出里程、外移距;提示0 NEXT?认为可能还有下个可能选0到,选其它值到,除不再提问线路号外其它相同。从终点推算输出里程、外移距;提示0 NEXT?认为可能还有下个可能选0到,选其它值到,除不再提问线路号外其它相同。K?输入近似里程,输出里程、外移距到;如不输绿色部分代码,执行下列流程X?Y?输入测点坐标;0 SD?(同正算);K?输入近似里程,输出里程、外移距到,除不再提问线路号外其它

9、相同。在运行过程时,无论正反算,任何时候发生里程超出线路范围都会有警告,偏小会提示“!”,返回到0SD?重新选择线路、并要求重输里程,此时应该核对数据重算读者可利用上述警告功能在想转换线路时,有意输入线路外里程或坐标。当然按AC跳出再按光标左、右键重新进入程序也可转换线路,但多了正反算选项。=关于本程序计算坐标的精度为了对坐标计算结果精度心中有数,本人通过数据试算,对本程序的坐标计算精度进行了系统分析,并用回归分析得出了线元长和线元平均半径的关系,得出了一个通用的表达式。直线精度永远是0不再用公式表示。只对圆曲线和缓和曲线进行分析。式中R-平均半径,可用2/|1/RA+1/RB|表示,RA、R

10、B分别是起点、测点半径,LS是起点到测点距离Y-圆曲线标志,圆曲线为1,为0精度要求为恰好1mm时:圆曲线LS=5R0.9缓和曲线LS=2R0.85如LS不为上述长度则每延长1.565倍将减少一位精度,反之每缩短1.565倍将增加一位精度。如计算出某半径精度为1mm时LS=100,若实际长156米则精度为1cm。实际长为64米则精度为0.1mm。 以下为相关问题的提问与解答WY %外移点计算子程序Lbl 1:J=90:J:J=F+JGoto 1FS %反算子程序 Lbl 1:KVW:VXWY:U=2:Lbl 2:Prog ZZ:I=V-A:J=W-B:Pol(I,J:J=J-F:I=Rec(I

11、,J:K=K+I:AbsI1m=Goto 2KJ:K:Pause1:JGoto 1以上两个子程序中:Rec与Pol后面的括号怎么只 中有半个?另外半个在哪里呢?请楼主给予明示.谢谢.另外,该程序可计算不等缓曲(LS1不等于LS2)曲线中边桩坐标吗?线路起点坐标有什么规定,是否一定得是(ZH点或ZY点)?如是前后两曲线相切只有一个公切点(GQ点),而无(ZH或ZY点时),此种不等缓曲曲线起点坐标怎么确定?起点切线方位角怎么确定?这种情况的曲线中边桩坐标如何用您的程序运行?谢谢指导!本程序是以线元为单位计算的,无所谓等长和不等长,只要把各线路线元数据依次输入12.N等数据子程序就行。计算器说明书规

12、定了可省略表达式右端的括号及其它一些可省略的符号,本贴的使用说明也有提到。各主点坐标推算可试试本人的另一个贴子,可以递推主点坐标。请1楼抽空看看计算器的说明书并通读本贴的说明部分! 又有修改,解决了手动输线元不能计算同一线元第二个点问题。调整了变量、重写了高斯4节点坐标计算内核。楼主,调试了,不行啊.运行时一直提示L你再试试,我的4800计算器没空间了,没有详细测试,也可能上传时录入有问题,刚修改了一下,如还不行请和QQ:448375501调试成功了,很好用,谢谢楼主的无私奉献.我还有一个问题想请教一下李老师,遇到线路断链应该怎么处理程序?短链部分在数据子程序里写成L=L+Q:Q=短链长:KL

13、+Q=DL:Goto E就行了长链要重新整理里程,把长链后部的里程加一个1000米或10000米(就是原来的里程前面加个1)转换成短链李老师我有个问题,缓和曲线的半径是不是圆半径R+P呀,就是缓和曲线的半径了你说的缓和曲线是含缓和曲线的整个交点(含两个以上线元),本程序的缓和曲线只是其中的缓和曲线段。你说的缓和曲线半径是等效半径,是针对整个曲线的,本程序里的半径是指一个线元(曲线段)的两端半径。L=线路起点里程:M=线路终点里程:ProgYC:Z=1=Goto EQ=线元长:KL+Q=X=起点X坐标:Y=起点Y坐标:A=起点方位角:P=起点半径:R=终点半径:Goto EL=L+Q:Q=123:KL+Q=X=123:Y=123:A=123:P=123:R=123:Goto E一条线路怎么添加更多线元? 缓和曲线圆曲线段起点半径和终点半径如何输入呀?我试着输入了一个缓和曲线的线元 但是计算出来的结果不对呀我不知道是不是我输错了请看程序里的说明李老师,你说的断链处理我弄了一天,没弄明

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号