自适应动态步长法求点对应的平曲线桩号
新编5800平曲线坐标、反算桩号计算程序(可计算隧道超欠挖)

平曲线坐标、反算桩号计算程序prog "PQX"{mn}:M"X0":N"Y0":Defm 7:Z[1]=0: Z[2] "H1"=1.940: Z[3]”RS”=6.430: Z[4]”JK”=0.6:Z[5]”RZ”=6.08Lbl 1:{ABGHVWK}:K"JL":G"JX":H"JY":V"I0":W"J0":A"R":B"LS":FixmP=B^2/24/A:Q=B/2-B^3/240/A^2:T=(A+P)tan(Abs W/2)+Q:C=K-T:D=C+B:F=D+π*A*Abs W/180:E=F-Bw<0=>s=-1:≠=>s=1△Lbl 2:{L}:L:L=0=>GOTO 1△Lbl 6:L≤C=>O=K-L:R=G-OcosV:U=H-OsinV:Z=V:GOTO 3△L≥F=>O=L-F+T:Z=V+W:R=G+OcosZ:U=H+OsinZ:GOTO 3△L<D=>O=L-C:prog "XY":Z=V+SR:R=G+(I-T)cosV-SjsinV:U=H+(I-T)sinV+jscosV:GOTO 3△L>E=>O=F-L:prog "XY":O=V+W:Z=O-SR:R=G+(T-I)cosO-SjsinO:U=H+(T-I)sinO+SJcosO:GOTO 3△O=180(L-D+B/2)/π/A:I=AsinO+Q:J=P+A(1-cosO):Z=V+SO:R=G-(T-I)cosV-SjsinV:U=H-(T-I)sinV+SJcosVLbl 3:Z[1]=0.002=>GOTO 5:≠=>O=0△R"XL"◢U"YL"◢Z"ZL"◢Lbl 4:{O}:O"YC":O=0=>GOTO 2△O=-1=>GOTO 5△X=R-OsinZ:Y=U+OcosZ:pol(X-M,Y-N:J<0=>J=J+360△X"XZ"◢Y"YZ"◢J"A0"◢I"DD"◢GOTO 4Lbl 5:{XY}:X"XF":X=-1=>Z[1]=0:GOTO 4△Y"YF":pol(X-R,Y-U:O=Icos(J-Z):AbsO≤0.001=>O"DL"◢L+O◢O=Isin(J-Z):O"YC"◢GOTO 7:≠=>Z[1]=0.002:L=L+O:GOTO 6△prog "XY"U=AB:I=O-O^5/40/U^2:J=O^3/6/U-O^7/336/U^3:R=90O^2/π/U隧道断面检查程序Lbl 7: {ZJ}::J”XJJ”:Z”H2”:Z[6]”NGD”=780.78+(622640-L)0.003: Z[6]”NGD”◢I= Z[6]+ Z[2]+ Z[3]cos60°:I≤Z=> Z[7]”CQ”=√((Z- Z[6]- Z[2])^2+(O-J/2)^2)- Z[3]:Z[7]”CQ”◢GOTO 5△I>Z=> Z[7]”CQ”=√((Z- Z[6]- Z[2]- Z[4]/2/tan60°)^2+(Abs(O-J/2) - Z[4]/2)^2)- Z[5]: Z[7]”CQ”◢GOTO 5△以上为隧道上导及中导计算程序。
自适应步长算法

自适应步长算法是一种用于调整步长的算法,以适应不同的环境和条件。
这种算法可以根据当前的状态和环境信息,动态地调整步长,以优化算法的性能。
自适应步长算法通常用于各种优化问题中,如梯度下降法、遗传算法等。
通过自适应调整步长,可以加快收敛速度,提高算法的效率。
在自适应步长算法中,通常会设定一个初始步长,并根据当前的状态和环境信息,动态地调整步长。
调整的方式可以是线性的、非线性的或者其他方式。
例如,在梯度下降法中,可以根据梯度的方向和大小来动态调整步长,以加快收敛速度。
自适应步长算法通常具有较好的鲁棒性和适应性,可以在不同的环境和条件下表现出较好的性能。
但是,由于需要动态调整步长,因此可能会增加计算的复杂度。
因此,在选择自适应步长算法时,需要根据具体的问题和环境来权衡其优缺点。
关于道路平曲线逐桩坐标的计算

关于道路平曲线逐桩坐标的计算—CASIOfx-4500P计算器程序开发和应用简介:近年来,随着我国公路建设的不断发展,公路等级越来越高,对道路测量精度的要求也越来越高。
现在公路施工设计图一般只提供直线及转角一览表,有些道路虽然提供部分整桩号的坐标,但在实际施工中有些地方却无法进行测设,而需要在破桩号处进行测设,这就需要我们进行逐桩计算或补充一些点的坐标。
结合测量学的专业知识,利用CASIO-4500P计算器独有的编程功能,通过不断的摸索和实践,编制了一套能完整计算道路平曲线要素及逐桩坐标、距离道路中线两侧任意一点坐标的程序,这个程序不但能计算出圆曲线上各点的坐标,还能计算出带有缓和曲线的圆曲线上任意一点的坐标。
关键字:平曲线程序坐标计算前言:近年来,随着我国公路建设的不断发展,公路等级越来越高,对道路测量精度的要求也越来越高。
随着测量手段及测量仪器的不断发展,测量精度和测量效率有了明显的提高。
全站仪的应用为我们的测量工作带来了极大的方便,全站仪不但测量精度高,而且测量效率高,利用提供的高等级导线点能精确的测设出想要的目标点。
现在公路施工设计图一般只提供直线及转角一览表,有些道路虽然提供部分整桩号的坐标,但在实际施工中有些地方却无法进行测设,而需要在破桩号处进行测设,这就需要我们进行逐桩计算或补充一些点的坐标。
结合测量学的专业知识,利用CASIO-4500P计算器独有的编程功能,通过不断的摸索和实践,编制了一套能完整计算道路平曲线要素及逐桩坐标、距离道路中线两侧任意一点坐标的程序,这个程序不但能计算出圆曲线上各点的坐标,还能计算出带有缓和曲线的圆曲线上任意一点的坐标。
这样以来,在施工测量中利用CASIO-4500P计算器工作平台,就能很快计算出想要测设点的坐标,结合全站仪坐标放样功能,就能精确测设出需要的目标点。
编制的这个应用程序由两大部分组成,第一部分是主程序,主要用于计算平曲线要素及各点的坐标;第二部分是子程序,主要用于计算交点之间的计算方位角。
5800线元法修正版程序编写

5800线元法修正版程序编写1.2版本,添加了遗漏的标点符号,修改了竖曲线与隧道,让隧道测量步骤简化一些。
此程序根据4850线元法程序改编,本人第一次编写程序内容可能有些不尽人意敬请谅解.程序名称不可更改,包括符号,也不要擅自删减子程序,如需更改必须与各子程序相呼应,否则将无法调动程序进行计算。
1~16页为程序说明与应用步骤具体解释,17~26页为程序编写,所有S开头后面有横杠的为各项数据库,如换线路更改数据库即可完成各项计算。
注意:程序编写时有下划线字符为一次性输入字符,不可拆分。
置仪点X坐标输入时必须输入小数,如果无小数将默认调动导线点数据库(例如3843.000那么请输入3843.0001并不影响计算)程序名(0-0)主程序目录(U=1):数据库输入原始数据计算中边桩*(U=2): 数据库输入原始数据反算线外点垂桩距状态(线路任一点坐标反算桩号及偏距)*(U=3):计算平面位置检查记录表(U=4):人工输入原始数据计算中边桩(数据库计算线元方位角)* (U=5):人工输入原始数据推算开挖、填筑桩状态(不常用)(U=6):数据库输入原始数据推算开挖、填筑桩状态*(U=7/7.1):计算斜交斜做涵洞单跨桥、斜交正做涵洞七点放样状态并能避免曲线内单跨桥涵进出水口长度不一致,同时适用于曲线桥扇形布桩的盖梁放样,曲线桥扇形布桩的支座放样。
*(U=8): 数据库输入原始数据计算锥坡放样(U=9): 后方交会(U=10): 数据库输入原始数据求线外两点交路线的桩号与夹角(U=11): 圆心辐射法隧道断面超欠挖(适合各种隧道线型)*(U=12): 手动输入原始数据求多边型面积、亩数*(U=13): 数据库输入原始数据求设计高程(竖曲线)*(U=14): 坐标正反算小程序(U=1)数据库输入原始数据计算中边桩(Y)置仪点X坐标(也可输入导线点编号,输入导线点编号即可使用导线点数据库)(O)置仪点Y坐标(当X坐标输入导线点编号后则此行不显示,因数据库已装入X和Y坐标)(B)步长(步长就是间隔长度,当要计算大量有相同距离间隔且相同中边桩,步长就是好东西了,输入数量每次计算自动加减桩号距离)(Q)所求桩号(计算第二个桩开始Q已经自动加入步长不用手动输入,但仍然会显示给你看,并可修改成别的桩号)(V)中桩到边桩的方位角,即与中桩前进方向方位角的夹角(注意:左转为负数,右转为正数)(D)中桩到边桩的距离(中桩输入0)计算完成会显示四个成果:DMS放样方位角(置仪点与所求桩号的放样方位角)I放样距离(置仪点与所求桩号的放样距离)所求桩号的X坐标所求桩号的Y坐标按—号继续下一步放样计算(U=3)数据库输入原始数据计算中边桩(偏差检测、资料编写)(B)步长(步长就是间隔长度,当要计算大量有相同距离间隔且相同中边桩,步长就是好东西了,输入数量每次计算自动加减桩号距离)(MM)所允许的最大误差(毫米为单位,比如高速的中线最大误差是20MM,就输入20)(Q)所求桩号(计算第二个桩开始Q已经自动加入步长不用手动输入,但仍然会显示给你看,并可修改成别的桩号)(V)中桩到边桩的方位角,即与中桩前进方向方位角的夹角(注意:左转为负数,右转为正数)(D)中桩到边桩的距离(中桩输入0)计算完成会显示四行成果:DMS放样方位角(置仪点与所求桩号的放样方位角)I放样距离(置仪点与所求桩号的放样距离)所求桩号的X坐标所求桩号的Y坐标按(—)号显示偏差检测成果:所求桩号的X坐标所求桩号的Y坐标所求桩号的双轴偏差X轴偏差Y轴偏差按-号下一步计算(U=4)人工输入原始数据计算中边桩(线元角计算)(Y)置仪点X坐标(O)置仪点Y坐标(B)步长(H+)起算点桩号(E)起算点X坐标(F) 起算点Y坐标(A)起算点方位角(+-C)起算点曲率(即为半径分之一,也就是1/半径,直线为0,左转为负,右转为正)(+-Z)终算点曲率(即为半径分之一,也就是1/半径,直线为0,左转为负,右转为正)(G)终算点桩号(Q)所求桩号(既是起算点桩号,因程序内字符转换冲突只好再输入) (V)左右夹角(左转为负,右转为正,中桩输入0)(D)中边桩距离(中桩输入0)计算完成会显示四个成果:(此处可忽略,参照U=1计算成果)计算完成按(AC/on)一次,然后按(EXIT)将内容(Prog 0-0)清除输入字母(R),再按(EXE)显示为线元方位角数字(注:必须用度,分,秒抄记,因为计算结果为百进位,度分秒为60进位)注:此计算成果谨适用于数据库线元角输入(即:数据库曲线段线元角ZH~HY、HY~YH、YH~HZ段)(U=5):人工输入原始数据推算开挖、填筑桩状态(不常用)(Y)置仪点X坐标(O)置仪点Y坐标(H+)起算点桩号(E)起算点X坐标(F) 起算点Y坐标(A)起算点方位角(+-C)起算点曲率(即为半径分之一,也就是1/半径,直线为0,左转为负,右转为正)(+-Z)终算点曲率(同上)(G)终算点桩号(W)实测大地高程(S)变坡点设计高程(I) =变坡点设计高程与实测大地高程之高差(正为填方、负为挖方)(P) 填方或挖方的坡比(若1:0.75则输入0.75填挖坡比全为正)(B)中桩到变坡点的宽度(D)=推算的中桩到开挖、填筑桩距离(D?)采用的中桩到开挖、填筑桩距离(Q)所求开挖、填筑桩号(V)左右夹角(注:只能输入线路右边90和左边-90因为开挖、填筑桩总是垂直的)计算完成显示四个结果:(同U=6显示结果相同,按—号下一步计算)(U=6):数据库输入原始数据推算开挖、填筑桩状态(Y)置仪点X坐标(O)置仪点Y坐标(W)实测大地高程(S)变坡点设计高程(距离地面最近的那个平台或路面高程)(I)=变坡点设计高程与实测大地高程之高差(自动计算所得结果,此处不需输入。
公路逐桩及对应边桩坐标的设计计算方法

公路逐桩及对应边桩坐标的设计计算方法鲁纯【摘要】公路逐桩坐标是设计单位在设计阶段要做的工作,逐桩对应边桩坐标的计算是施工单位为方便施工及编制竣工图要做的工作.传统的坐标计算方法比较繁琐.本文根据实际经验,总结提出了简便实用的逐桩及对应边桩坐标计算方法.【期刊名称】《辽宁省交通高等专科学校学报》【年(卷),期】2010(012)002【总页数】4页(P27-29,68)【关键词】公路设计;逐桩坐标;边桩坐标;计算方法【作者】鲁纯【作者单位】辽宁省交通高等专科学校,辽宁沈阳,110122【正文语种】中文【中图分类】P258;P209公路平面线形分为直线、圆曲线、缓和曲线三种基本线形,不论何种平曲线组合,均可归结为这三种平面线形要素的逐桩坐标和切线方位角的计算。
为简化计算,一般对平曲线的各个要素单元建立相对坐标系,求出在该相对坐标系下的逐桩坐标,然后归化到统一的坐标系中。
编程时,通常把一段直线与一个平面线作为一个计算单元,如每一个弯道的直缓点ZH(i)到下一个弯道的直缓点ZH (i+1),也可将HZ(i-1)到下一个HZ(i)作为一个计算单元。
以ZH (i)到ZH (i+1)计算单元划分为例,在一个计算单元中,一个方向以及计算逐桩坐标的数学模型都不一致,因此路中线坐标的计算必须先分段计算各段落中逐桩的相对坐标,然后将其转换到统一的计算坐标或大地坐标系中,图1为最常见的各基本型曲线的一个计算单元的段落划分和局部坐标系的选择情况。
以图1中所示基本型曲线的计算单元为例,在这个计算单元,通常包括第一缓和曲线、圆曲线、第二缓和曲线和直线段四个部分。
计算时,给出里程或桩距,即可求得逐桩坐标。
同时各种曲线主点需作为加桩按序插入相应位置,形成全线连续完整的逐桩坐标序列。
1 路线导线方位角及偏角计算设路线的交点坐标(xi,yi)已知,则各交点间的方位角θi由式(1)确定(见图1)式(1)中表示 JD (i)到 JD (i+1)的方位角。
卡西欧Casiofx-4800P道路中边桩坐标计算程序

卡西欧Casiofx-4800P道路中边桩坐标计算程序程序清单如下:Casio fx-4800P道路中边桩坐标计算程序程序目的:依平曲线要素计算直线、圆曲线、缓和曲线的任意中桩、左、右桩坐标。
程序说明:K0:起始桩号X0:起始X坐标Y0:起始Y坐标ALF:起始方位角R:半径LS:缓和曲线长N:曲线左转N=1,右转N=2K:待求桩号LL、LR:左、右桩距离Q:左、右桩与中线斜交角求得XZ、YZ、XL、YL、XR、YR分别为中桩、左、右桩坐标。
一、直线段文件名:ZX (COMP)程式:L”K0”:O”X0”:P”Y0”:W”ALF”:Lbl 0:{K}:X”XZ”=O+(K-L)cosW◢Y”YZ”=P+(K-L)sinW◢{B}:S”XL”=X-B”LL”cos(W+Q) ◢T”YL”=Y-Bsin(W+Q) ◢{C}:U”XR”=X+C”LR”cos(W+Q) ◢V”YR”=Y+Csin(W+Q) ◢Goto 0注:在程序执行过程中,赋给的要素变数的值被固定不变,可对变数(K、LL、LR)赋予不同值,迅速求得所需坐标。
二、圆曲线段文件名:YQX (COMP)程式:L”K0”:O”X0”:P”Y0”:W”ALF”: Lbl 1:{K}:J=(-1)^N (K-L)÷R×180÷π:D=2Rsin((-1)^N J÷2):X”XZ”=O+Dcos(W+J÷2) ◢Y”YZ”=P+Dsin(W+J÷2) ◢{B}:S”XL”=X-B”LL”cos(W+J+Q) ◢T”YL”=Y-Bsin(W+J+Q) ◢{C}:U”XR”=X+C”LR”cos(W+J+Q) ◢V”YR”=Y+Csin(W+J+Q) ◢Goto 1注:若没有直接HY点方位角,则ALFHY=ALFZH±Ls/2/R×180/π,(左转-,右转+)。
三、缓和曲线文件名:HHQX (COMP)程式:L”K0”:O”X0”:P”Y0”:W”ALF”: M”LS”:Lbl 3:{K}:I=(-1)^N×(K-L)^2÷M÷R÷6×180÷π:D=(K-L)-(K-L)^5÷90÷(RM)^2:X”XZ”=O+Dcos(W+I)◢Y”YZ”=P+Dsin(W+I) ◢{B}:S”XL”=X-B”LL”cos(W+3I+Q) ◢T”YL”=Y-Bsin(W+3I+Q) ◢{C}:U”XR”=X+C”LR”cos(W+3I+Q) ◢V”YR”=Y+Csin(W+3I+Q) ◢Goto 3注:1、坐标计算方法是根据偏角法原理;2、缓和曲线(ZH~HY或YH~HZ)以ZH(或HZ)为起始点;3、平曲线左转(ZH~HY段N=1,YH~HZ段N=2),曲线右转(ZH~HY段N=2,YH~HZ段N=1)。
(整理)(老师给的)公路勘测设计计算题_答案_(精)

第二章 平面设计注:无解题步骤,不给分!1.若二级公路的设计车速取V =80h km /,13.0max =μ、08.0max =b i ;一般情况下取06.0=μ、07.0=b i ,试计算圆曲线极限最小半径值和一般最小半径值(取50m 的整数倍)。
解: R 极限=250m②R 一般=400m2.高速公路设计车速为V =120h km /,路拱横坡度为2%,若横向力系数采用0.04。
试计算不设超高圆曲线最小半径(取500m 的整数倍)。
解: R 不设=5500m3.某新建二级公路(设计车速为80km/h ),有一处弯道半径R =300m ,试根据驾驶员操作方向盘所需时间的要求计算该弯道可采用的缓和曲线最小长度(取10m 的整数倍)。
解:缓和曲线最小长度为70m 。
4.某新建三级公路有一处弯道,其平曲线半径R 取120m ,偏角423229'''=α,若该平曲线需设置缓和曲线,其缓和曲线长度最大可取多长?解:缓和曲线长度最大可取61.44m 。
5.某新建二级公路有一弯道,其平曲线半径R 为400m ,缓和曲线长为80m ,试计算缓和曲线上距起点40m 点和缓和曲线终点的坐标(以缓和曲线起点为原点)。
解:①缓和曲线上距起点40m 点坐标: x=39.998 y=0.333②缓和曲线终点坐标: x=79.92 y=2.6656.从某公路设计文件《直线、曲线及转角一览表》中摘抄的一组路线设计资料如下: JD8: K3+425.982=8ZH K3+311.099 =8HY K3+346.099 =8YH K3+492.155 =8HZ K3+527.155JD9:K4+135.169=K4+047.4369YZ =K4+221.135试计算(1)JD8曲线的切线长、曲线长、缓和曲线长及曲线中点桩号;(2)计算JD9曲线的切线长、曲线长和曲线中点桩号; (3)计算两曲线交点间距及所夹直线段长度。
平曲线参数的案例讲解

平曲线参数的案例讲解前段时间有个同事在输入线路平曲线参数时遇到了困难,让我帮他解决一下,我相信有很多测量人员都遇到过这个问题,由于知识储备不足,在输入一些比较复杂的平曲线参数时真的是“一时难倒英雄汉”。
岁末闲暇下来,我便萌生了写篇文章的想法,想与我的测量同行们交流一下。
我结合了自己所参与过的项目的线路,给大家列举了三个案例,主要讲一下平曲线参数的起点问题及不完整缓和曲线。
我想和大家交流一下,在输入这些平曲线参数时自己的思路,其中也会提及到一些大家可能还未掌握的关于平曲线参数的知识点。
案例(一):校正起点桩号如上表所示,这是文莱高速第5标段的主线的直曲表,我在测量软件里用交点法输入了平曲线参数,但当我计算逐桩坐标时,发现与逐桩坐标表上的坐标并不一致,我便意识到肯定是平曲线参数输入有误,我检查了一遍测量软件上输入的平曲线参数,发现软件自动计算的交点桩号与图纸所给的交点桩号并不一致,我便意识到有可能起点桩号输入有误,我又看了一遍直曲表终于发现了问题所在。
我是以交点JD19作为线路起点输入的平曲线参数,但是图纸所给的直曲表是从整条文莱高速线路中截取的一段,对应着第5标段的线路。
我们都知道直曲表上的交点并不在线路上,而起点是一定在线路上的,所以交点JD19并不能作为线路的起点。
如果把交点JD19作为线路的起点,那么起始段的线路也就发生了改变,如上图所示,从图一中正确的线路变为了图二中错误的线路。
而第5标段线路的起点桩号是K45+900,从直曲表中可以看出,起点是位于交点JD20的第二缓和曲线上,如果以交点JD19作为起点的话,发生改变的JD19-YZ直线段是在第5标段线路以外的,因此仍然可以以交点JD19作为第5标段线路的起点,第5标段的线路也就变成了图二所示的线路,只不过需要校正一下起点桩号。
为什么要校正作为起点的交点JD19的桩号呢,这就要弄清楚交点桩号是如何定义的。
其实交点桩号并不是交点对应主线上的桩号,而是由公式交点桩号=ZH/ZY点桩号+第一切线长T1得到的,如上图三所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《现代交通技术 》 !""# 年第 $ 期
道路工程 ) . -""; 左拐圆弧 4 # . ’* ()- 5 / "!4 ( . ! """; 左拐缓和 4 # . ,!"4 ( 起 . !"""4 ( 终 . 无穷大4 ) . ’""; 右拐圆弧 4 # . )* -)( 5 / ",4 ( . $ """; 直线4 # . -* !(’ 5 / "!; 右拐圆弧 4 # . )* ($- 5 / ",4 ( . $ #""; 左拐圆弧 4 # . )* !-( 5 / ",4 ( . ( """; 右拐圆弧 4 # . +* --, 5 / "!4 ( . # (""; 左拐圆弧 4 # . )* !-# 5 / ",4 ( . # """; 右拐圆弧 4 # . )* +$, 5 / ",4 ( . # #""; 左拐圆弧 4 # . !* !!" 5 / ",4 ( . # #""; 右拐圆弧 4 # . )* !,, 5 / ",4 ( . ( #""; 左拐圆弧 4 # . )* !)" 5 / ",4 ( . ( #""; 直线4 # . (* ),’ 5 / "!; (以上 # 为各段平曲线长度,( 为圆弧段半径, ) 为缓和曲线段特征值) 平曲线起始桩号 . "* "4 在大地坐标系中的定位 如下 6 桩 号 . "* "" 处 4 坐 标 " . ,* -")5 / "(4 #* ,"# 5 / "#; *.
一般穷举法可以将所有可能的桩号点找出,并 且适用于所有复杂情况的平曲线,但这种等步长穷 举法运算次数太多,一条全长为 % 的平曲线,要求 得精度为 ! 的桩号点, 至少需要运算 % & ! 次, 举例 说, 假设有一段 ’"" () 长的连续平曲线, 要在其上 面求一个精度为 ’ )) 的桩号点,至少需要运算 ’"* 次!运算效率太低。 ’+ ! 改进穷举法 由上述可知, 当 &% , ’ " &%" &% - ’ 时, 在 !% , ’ 点与 至少存在一个桩号点为 " 点所对应的 !% - ’ 点之间, 桩号, 于是, 可以采用先大步长确定桩号点范围, 再 用小步长逐级提高精度的方法查找, 如图 !。
桩号 . - """ 处 4 坐标 " . ,* -"( 5 / "(4 * . #* ,#- 5 / "#; 求 % 7 ,-"(’$", #,(+$- 8 在平曲线上对应的桩号 9:。
根据 % 点在局部坐标系中 $ 坐标的正负号, 可以方便地判断出 % 点在平曲线线的左侧、 右侧还 是正好在平曲线上。另外,前面所述的桩号都是径 向的, 有些情况下, 需要得到点的斜交桩号, 比如在 做斜桥方案时,动态步长法可以方便地实现这一功 能,只要把局部坐标系 # 轴方向与平曲线切线方向 设置成一定角度即可。 # 实例比较 现在采用以上 $ 种桩号算法,分别编制不同的 程序, 对同一条平曲线外的点进行实例计算对比。 如图 # , 某高速公路主线全长 )(* !(’ 2&, 平曲 线共由 )$ 段曲线组成: 左拐缓和 4 # . !$#4 ( 起 . 无穷大 4 ( 终 . ! """4
"
引言 一般来说, 在路线程序中, 有两个基本问题, 一
接影响着程序的运行效率。下面就针对几种常见的 桩号算法以及一种新的算法—— — 自适应动态步长 (本文不讨论平曲线断链 法, 进行详细的分析和比较 的情况) 。 ! %- % 几种常见的求桩号的算法 一般穷举法 一般穷举法思路很简单, 如图 %, 要求 D 点对应 的桩号,可以从平曲线的起点 ! 开始,桩号以一个 固定步长累加,求得平曲线上各桩号点 "% 、"!…… 与 # 点之间的距离, 假定 # 点到 ": 点的距离为 $, 则在此过程中, 当 $: ( %" $:" $: W % 时, 则可以初步断
是已知一条平曲线和该平曲线上某点的桩号,求该 点的坐标和该点处平曲线的切角;另一个是已知一 条平曲线和某点坐标,求该点对应于平曲线上的桩 号、 距离并判断在路线左侧还是右侧。 对于第一个问题, 解决方法很简单, 只要求解相 应的数学方程即可(缓和曲线段采用级数展开法求 解) , 而第二个问题是要反向查桩号, 若想直接通过 方程求精确解很困难,一般实用算法是采用穷举或 迭代法。这是一个比较费时的过程,算法的好坏直
平曲线中间桩号点为 !’ , " 点与 !’ 点的连线 若 89:!’ ;", 与 !’ 点处平曲线切线的夹角为 "’ , !! 点取 !’ 与 # 的中间桩号, 若 89: "’< ",!! 点取 !’ 与 $ 的中间桩号,然后再计算 !! 点切线与 " 点连 线的夹角 "! ,用上述方法判断下一个二分点的位 置, 如此下去, 当 89: "% , ’ ;" 时, !% 取 !% , ’ 与相邻小 桩号点之间的中间桩号, 当 89: "% , ’< " 时, !% 取 !% , ’ 与相邻大桩点号之间的中间桩号, 如图 6。"+ 7’* 法
#$%&’() #*+,- ./01-2 $3 4$22-56$(7’() 8$’(* $( 9$2’:$(*+% 4/2&1; #-%3 < +7+6*’&- =;(+0’> #*-6 ?-()*@ A-*@$7
0#43; 4:=6;>5 ?@AA56:B=C:@6 DE=66:6; =6F 8G>:;6 16>C:C5CG, H=6I:6; !%"""# , ?J:6= , !"#$%&’$( K@ >@ELG >C=MG 65ANGO B@OOG>P@6F:6; C@ CJG P@:6C @6 J@O:Q@6C=E B5OLG :> @6G @R CJG N=>:B PO@NEGA> NG:6; >@ELGF :6 =E:;6AG6C FG>:;6:6;- /GB=5>G :C 6GGF> :CGO=C:@6 CGBJ6:S5G7 CJG BJ@:BG @R =E;@O:CJA> A=< :6RE5G6BG CJG R56BC:@6=E GRR:B:G6B< @R CJG J@EG ><>CGA- KJ:> P=PGO :6CO@F5BG> >@AG =E;@O:CJA PO:6B:PEG @R GTJ=5>C =E;@O:CJA7 F:U BJ@C@A<7 ;@EFG6 >GBC:@6 >G=OBJ =6F >@ @6- /=>GF @6 CJ:>7 CJG =6CJ@O P5C> R@OV=OF“>GER ( =F=PC:LG F<6=A:B >CGP ( EG6;CJ AGCJ@F”VJ:BJ :> = 6GV =6F J:;JE< GRRGBC:LG =E;@O:BJA- 2C E=>C CJG>G =E;@O:CJA> =OG =6=E<QGF @6 R56BC:@6=E GRR:B:G6B< =6F B@AP=OGF V:CJ CJG GT=APEG>)*+ ,-%.#:J@O:Q@6C=E B5OLG; >C=MG 65ANGO; =E;@O:CJA; B=EB5E=C:@6 N< :CGO=C:@6; >GER ( =F=PC:LG F<6=A:B >CGP EG6;CJ AGCJ@F
《现代交通技术 》 !""# 年第 $ 期
点, 最多需要运算 . % & ’" - ’"/ 0 1 ’ , 23 ! 4 5 次, 举例 说, 若某点在 ’"" () 长的平曲线上有一个对应桩号 最多需要运算 ’" $"" 点, 则求精度为 ’ )) 该桩号, 次, 运算效率与一般穷举法相比, 得到大幅度提高。 ’+ 6 二分法、 "+ 7’* 法 二分法是最常用的迭代算法之一, 算法如下:
往会影响整个系统的运行效率。 本文对常见的穷举法、 二分法、 在此基础上, 提出了 "- &%* 法的算法原理进行了介绍, “自适应动态步长法 ” 一种全新的高效算法 , 并对这几种算法的运算效率进行了分析和实例对比。 关键词: 平曲线; 桩号; 算法; 迭代; 动态步长 中图分类号: .!%!- # 文献标识码: /
的迭代原理与二分法一样, 但速度要快些。
二分法和 "+ 7’* 法不能适用于点对应多个桩号 (一般为回头曲线或点刚好在圆心上) 的情况 , 否则 可能导致迭代发散, 这时, 用户可预先判断一下, 给 出大致的桩号区间或者进行分段迭代,便能解决上 述问题。采用二分法,在全长为 % 的平曲线上求精 (%( ! ) 23 度为 ! 的某点对应的桩号,最多需要运算 23! 次, 举例说,若某点在 ’"" () 长的平曲线上有一个 对应桩号点, 则求精度为 ’ )) 该桩号, 最多需要运 算 != 次, 运算效率与改进穷举法相比, 又有了大幅 度提高。 " 适应动态步长法 前面所述的算法有一个共同的缺点,就是迭代 步长的大小比较盲目,不能根据上一步的情况动态 调整, 若每次迭代步长能够根据目标距离自动修正, 结果会是什么样呢?这就引出了一种新的算法—— — 自适应动态步长法。 自适应动态步长法的迭代过程是这样的:第一 步, 假定 " 点对应的桩号点在 #$ 平曲线的中间桩号 (若 !’ 刚好 !’ 处,!’ 处的坐标和平曲线切线方位角 处于直线段, 切线方位角就取该直线自身方位角) 可