自适应动态步长法求点对应的平曲线桩号
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
的迭代原理与二分法一样, 但速度要快些。
二分法和 "+ 7’* 法不能适用于点对应多个桩号 (一般为回头曲线或点刚好在圆心上) 的情况 , 否则 可能导致迭代发散, 这时, 用户可预先判断一下, 给 出大致的桩号区间或者进行分段迭代,便能解决上 述问题。采用二分法,在全长为 % 的平曲线上求精 (%( ! ) 23 度为 ! 的某点对应的桩号,最多需要运算 23! 次, 举例说,若某点在 ’"" () 长的平曲线上有一个 对应桩号点, 则求精度为 ’ )) 该桩号, 最多需要运 算 != 次, 运算效率与改进穷举法相比, 又有了大幅 度提高。 " 适应动态步长法 前面所述的算法有一个共同的缺点,就是迭代 步长的大小比较盲目,不能根据上一步的情况动态 调整, 若每次迭代步长能够根据目标距离自动修正, 结果会是什么样呢?这就引出了一种新的算法—— — 自适应动态步长法。 自适应动态步长法的迭代过程是这样的:第一 步, 假定 " 点对应的桩号点在 #$ 平曲线的中间桩号 (若 !’ 刚好 !’ 处,!’ 处的坐标和平曲线切线方位角 处于直线段, 切线方位角就取该直线自身方位角) 可
是已知一条平曲线和该平曲线上某点的桩号,求该 点的坐标和该点处平曲线的切角;另一个是已知一 条平曲线和某点坐标,求该点对应于平曲线上的桩 号、 距离并判断在路线左侧还是右侧。 对于第一个问题, 解决方法很简单, 只要求解相 应的数学方程即可(缓和曲线段采用级数展开法求 解) , 而第二个问题是要反向查桩号, 若想直接通过 方程求精确解很困难,一般实用算法是采用穷举或 迭代法。这是一个比较费时的过程,算法的好坏直
wk.baidu.com
一般穷举法可以将所有可能的桩号点找出,并 且适用于所有复杂情况的平曲线,但这种等步长穷 举法运算次数太多,一条全长为 % 的平曲线,要求 得精度为 ! 的桩号点, 至少需要运算 % & ! 次, 举例 说, 假设有一段 ’"" () 长的连续平曲线, 要在其上 面求一个精度为 ’ )) 的桩号点,至少需要运算 ’"* 次!运算效率太低。 ’+ ! 改进穷举法 由上述可知, 当 &% , ’ " &%" &% - ’ 时, 在 !% , ’ 点与 至少存在一个桩号点为 " 点所对应的 !% - ’ 点之间, 桩号, 于是, 可以采用先大步长确定桩号点范围, 再 用小步长逐级提高精度的方法查找, 如图 !。
《现代交通技术 》 !""# 年第 $ 期 文章编号: %&’! ( )**) + !""# , "$ ( ""%" ( "$
道路工程
自适应动态步长法求点对应的平曲线桩号
肖 军, 狄庆芸
(江苏省交通规划设计院, 江苏 南京 !%"""# )
摘
要: 求点对应平曲线上的桩号是路线程序中需要解决的基本问题之一, 由于需要进行迭代计算, 算法的好坏往
・ !!・
需要注意的是, 改进穷举法在初始计算时, 若步 长过大, 有可能漏掉有对应桩号的区间, 所以每次步 长的大小很有讲究。根据实际道路平曲线设计指 标, 一般最大在 ’" ) 范围内, 不会出现多于一个桩 号点的情况, 因此, 我们可以将 ’" ) 作为第一遍穷 举的初始步长, 找出所有桩号点的区间后, 再对这些 区间进一步加密穷举,每次步长为上次步长的 "+ ’ 倍, 如此下去, 直到达到所需精度为止。 改进穷举法也适用于所有复杂情况的平曲线。 采用改进穷举法,一条全长为 % 的平曲线,若某点 有 ’ 个对应的桩号点, 要求得精度为 ! 的这些桩号
往会影响整个系统的运行效率。 本文对常见的穷举法、 二分法、 在此基础上, 提出了 "- &%* 法的算法原理进行了介绍, “自适应动态步长法 ” 一种全新的高效算法 , 并对这几种算法的运算效率进行了分析和实例对比。 关键词: 平曲线; 桩号; 算法; 迭代; 动态步长 中图分类号: .!%!- # 文献标识码: /
《现代交通技术 》 !""# 年第 $ 期
点, 最多需要运算 . % & ’" - ’"/ 0 1 ’ , 23 ! 4 5 次, 举例 说, 若某点在 ’"" () 长的平曲线上有一个对应桩号 最多需要运算 ’" $"" 点, 则求精度为 ’ )) 该桩号, 次, 运算效率与一般穷举法相比, 得到大幅度提高。 ’+ 6 二分法、 "+ 7’* 法 二分法是最常用的迭代算法之一, 算法如下:
以直接求出, 以 !) 点为原点, 线方位角方向为 " 坐 (右手系) 标轴方向, 建立新坐标系 !) #) $ 将 %点 ), 坐标转换到该坐标系中去, 假定 % 点在 !) #) $) 坐标 ( ) 系中的坐标为 &), 第二次迭代时, 步长大小就取 ’) , ( !) / &),正负号也同 &),即第二次迭代桩号 !! . ,再在 !! 处建立新坐标系,将 % 点坐标转换到 &)) 如此循环下去, 直到 &0 1 ) # !, 这时 !0 !! #! $! 中去, 就是 % 点对应精度为 ! 的桩号。 自适应动态步长法也不能适用于回头曲线的情 况, 但实际使用时, 用户确定唯一桩号区间是很容易 的。由于动态步长法每次迭代步长的大小、方向都 是根据上一次假定桩号点与实际点在平曲线切向距 离确定的,这个收缩步长能根据目标桩号点自动实 时修正, 而且从图 $ 可以看出, 每迭代一次, 假定桩 号点与实际点径向线包含的曲线的曲率就会变得更 小, 迭代步长与平曲线长就更接近, 所以收缩速度会 越来越快, 如果点恰好落在平曲线的直线段, 只要一 步就可得到精确桩号。实际使用中, 在 )"" 2& 长的 平曲线上查某点桩号,即使精度要求达到 )" 3 ’ &, 迭代次数一般也不会超过 )# 次, 其运算速度是以上 几种常用方法不可同日而语的。
#$%&’() #*+,- ./01-2 $3 4$22-56$(7’() 8$’(* $( 9$2’:$(*+% 4/2&1; #-%3 < +7+6*’&- =;(+0’> #*-6 ?-()*@ A-*@$7
0123 4567 81 9:6; ( <56
+ 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
《现代交通技术 》 !""# 年第 $ 期
道路工程 ) . -""; 左拐圆弧 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
平曲线中间桩号点为 !’ , " 点与 !’ 点的连线 若 89:!’ ;", 与 !’ 点处平曲线切线的夹角为 "’ , !! 点取 !’ 与 # 的中间桩号, 若 89: "’< ",!! 点取 !’ 与 $ 的中间桩号,然后再计算 !! 点切线与 " 点连 线的夹角 "! ,用上述方法判断下一个二分点的位 置, 如此下去, 当 89: "% , ’ ;" 时, !% 取 !% , ’ 与相邻小 桩号点之间的中间桩号, 当 89: "% , ’< " 时, !% 取 !% , ’ 与相邻大桩点号之间的中间桩号, 如图 6。"+ 7’* 法
"
引言 一般来说, 在路线程序中, 有两个基本问题, 一
接影响着程序的运行效率。下面就针对几种常见的 桩号算法以及一种新的算法—— — 自适应动态步长 (本文不讨论平曲线断链 法, 进行详细的分析和比较 的情况) 。 ! %- % 几种常见的求桩号的算法 一般穷举法 一般穷举法思路很简单, 如图 %, 要求 D 点对应 的桩号,可以从平曲线的起点 ! 开始,桩号以一个 固定步长累加,求得平曲线上各桩号点 "% 、"!…… 与 # 点之间的距离, 假定 # 点到 ": 点的距离为 $, 则在此过程中, 当 $: ( %" $:" $: W % 时, 则可以初步断
作者简介: 肖军(%)’$ ( ) , 男, 工程师, 从事道路与桥梁的设计工作。 ・ !"・
道路工程 定,在精度要求不大于该步长的情况下, !% 点为 " 点对应的桩号点之一(当平曲线为回头曲线,或 " 点在平曲线的圆心上等特殊情况下时, " 点有可能 对应多个桩号) 。 按此方法, 将两个端点 #、 $ 也考虑 在内, 只要步长足够小, 就可以在平曲线 #$ 全程范 围内, 寻找到所有可能的桩号点, 再结合夹角检查, 以排除非桩号点。