【极坐标法线路测设】极坐标设法
目 录
摘 要 ................................................................................................. ⅰ
Abstract ................................................................................................. ⅱ
1 绪论 ..................................................................................................... 4
2 线路测量的理论与方法 ..................................................................... 5
2.1 地形图上选线(踏勘) .............................................................. 5
2.2 测绘带状地形图(初测) .......................................................... 5
2.3 设计路线中线(定线) .............................................................. 6
2.3.1 纸上定线 ............................................................................... 6
2.3.2 现场定线 ............................................................................... 7
2.4 放线、中线测量、测纵断面图(定测) .................................. 7
2.4.1 放线 ....................................................................................... 7
2.4.2 中线测量 ............................................................................... 7
2.4.3 纵断面高程测量 ................................................................... 8
2.4.4 横断面测量 ........................................................................... 8
2.4.5 路基设计 ............................................................................... 8
3 曲线测设 ............................................................................................. 9
3.1 极坐标法 ...................................................................................... 9
3.2 坐标正算与坐标反算 ................................................................ 11
3.2.1 坐标正算公式 ..................................................................... 11
3.2.2 坐标反算公式 ..................................................................... 11
3.3 曲线的种类 ................................................................................ 12
3.4 圆曲线要素及应用公式 ............................................................ 12
3.4.1 线上点线名称 ..................................................................... 12
3.4.2 曲线的放样步骤 ................................................................. 13
3.4.3 圆曲线要素计算 ................................................................. 13
3.4.4 圆曲线主点里程的计算 ..................................................... 13
3.4.5 圆曲线主点的放样 ............................................................. 13
3.4.6 圆曲线的详细放样 ............................................................. 14
3.5 有缓和曲线的圆曲线要素及其应用公式 ................................ 15
4 中线坐标的模型及理论 ................................................................... 18
4.1 现在介绍缓和曲线部分的中线点放样方法 ............................ 18
4.2 有缓和曲线的圆曲线上中线点的放样方法 ............................ 19
5 程序使用说明及实例 ....................................................................... 19
5.1 程序使用说明 ............................................................................ 20
5.1.1 程序设计窗体 ..................................................................... 20
5.1.2 程序的使用说明 ............................................................... 20
5.2 计算实例 .................................................................................... 21
5.2.1 圆曲线的计算 ..................................................................... 21
5.2.2 带有缓和曲线的圆曲线 ..................................................... 21
5.3 程序代码 .................................................................................... 22
参考文献 ............................................................................................... 34
极坐标法线路测设
摘 要
由于受地形地物及社会经济发展的要求限制,线路总是不断从一个
方向转到另一个方向,所以线路不可能是一条直线,而是由许多直线段
和曲线段组合而成。在直线段与曲线段之间用缓和曲线过渡。曲线测设
的方法有多种,常见的有偏角法及切线支距法。此外,还有弦线支距法、
弦线偏角法、正矢法及割线法等,在测距技术与电子计算机广泛应用的
情况下,以极坐标法,尤其是在电子速测仪配合下的极坐标法放样曲线
更具其优越性。本文介绍了线路测量的一般理与方法,圆曲线、缓和曲
线主点要素的基本概念及其计算方法,计算线路中线坐标的数学模型及
计算理论。因为加密曲线桩是放样曲线的一个重点工作内容,本文编制
了计算中线点里程、直角坐标、极坐标的计算程序,并提出了利用全站
仪的坐标放样功能结合极坐标法方便的测设中线点的原理和方法。
关键词:极坐标法、道路曲线、测设、曲线要素、中线点
1 绪论
公路、铁路、运河和输电路、输油管等统称为线路工程。它们在勘
测设计方面有不少共性。
线路在勘测设计阶段的测量工作,称为线路测量。这种工作是为线
路设计收集一切必要的地形资料。线路设计除了地形资料以外,还必须
考虑线路所经地区的工程地质、水文地质以及经济等方面的问题,所以
线路设计一般分阶段进行,其勘测工作也要分阶段进行。
公路勘测分为踏勘和详细测量两个阶段。公路踏勘主要是了解线路
所经地区的自然地理条件(包括地形、土壤、地质、水文以及气象等情
况),选择线路的大致位置,为初步设计收集资料。公路详细测量是全
面深入地研究线路的各项情况,精确地测定线路的长度和位置,为编制
施工图收集资料。
架空送电线路的测量,一般概括为两个大的阶段,即踏勘和终勘定
位。踏勘主要是为室内选线收集资料,这时以调查为主,只是对于特殊
地段(如跨越河流)才进行平面和断面草图的测绘工作。终勘定位系根
据初步设计提出的线路方案,在实地进行选线、定线、测距、高程测量、
断面测量以及杆塔定位测量等。
测量与设计紧密相连,但线路工程的测量与设计的关系,比其它工
程说来,尤为密切。一条线路的设计是由粗到细逐步完成的,与此相应,
测量工作的范围由大到小,工作的内容由粗略到详细,逐渐变化。当决
定要修建一条公路,首先要做经济调查和踏勘设计。这包括了解待建路
线地区居民点、资源、已有交通网、工农业的分布及发展水平,了解该
地区的地形、地质、水文、……等条件。在此基础上决定待建路线要承
担的运输量,中间应通过的城镇居民点,以及路线的等级。路线等级将
决定路线的一系列技术标准,如路线的最大允许坡度、最小曲率半径等。
路线的等级也将决定路线的造价。设计的这一阶段必须利用1∶5万或
1∶10万比例尺地形图。目前我国绝大部分地区都有1∶5万比例尺地形
图,可以从各省测绘局购用。
与其它工程的设计一样,路线设计的基础是对地形、地质、水文等
客观条件有正确、充分的了解。但这样的了解必然是一个由粗到细逐步
深化的过程。路线勘测设计先在面上进行,然后到带、最后到线。与此
相应测绘人员提供的资料越来越多,图的比例尺越来越大,数据越来越
精确。
2 线路测量的理论与方法
2.1 地形图上选线(踏勘)
利用地形图可以快速、全面、宏观地了解该地区的地形条件,地形
图也提供一部分地质、水文、植被、居民点分布、交通网分布等信息。
因此通常以地形图为主要资料,副之以其它调查材料,如地质图、各种
统计资料或实地踏勘资料。在室内选择路线方案,决定路线等级。
在这一设计阶段有时需作实地考察,以收集资料,比较不同方案之
优劣,分析方案技术上的先进的性和经济上的合理性等,最后选定一比
较合理的方案。实地考察时进行草测,常采用一些简单的器具和方法,
例如用罗盘仪定向、步测或车测距离、气压计测高等收集一些地形数据。
2.2 测绘带状地形图(初测)
选定方案以后进行初测。初测的主要工作是沿小比例尺地形图上选
定的路线,去实地测绘大比例尺带状地形图(带状地形图比例尺通常为
1∶2000,有时也可以选1∶5000。带状地形图的宽度在山区一般为100
米,在平坦地区一般为250米)。以便接下去在该带状地形图上进行较
精密的纸上定线。即在地形图上确定路线的具体走向。
在有争议的地段,带状地形图应加宽以包括几个方案,或为每个方
案单独测绘一段带状地形图。
2.3 设计路线中线(定线)
有了大比例尺带状地形图后,设计人员作纸上定线。当然设计人员
的作用不仅仅在于定出中线,他们还要考虑站场的布置,桥梁、挡土样
等工程的处理,要从路线的建造以至运行维修加以综合考虑。但对测量
人员说来纸上定线的结果显得特别重要,因为它是下一步测量工作的依
据。
一条路线从起点到终点,中间有一系列必须经过之地点,如城镇、
大河上适宜建桥的地点,翻越山岭时合适的鞍部或隧道,穿过不良地质
地段的适合地方等,这些地点称为线路的控制点。线路控制点在踏勘设
计阶段在小比例尺地形图上顾及地质、经济等因素后选定。这些控制点
选定后路线的走向也基本选定了。然后在相邻控制点之间定线。
定线就是工程技术人员具体设计路线的走向和坡度。即在平面上定
出路线的交点和决定平曲线半径;在纵断面上定出变坡点及设计坡度;
在横断面上根据中心填挖尺寸,考虑边坡开挖是否设挡土墙等。
公路定线方法有纸上定线和现场定线两种:
2.3.1 纸上定线
纸上定线就是在地形图上具体的设计路线的走向和坡度。一般来说
路线在两控制点之间力求平直。如果两相邻控制点间高差太大,使平均
坡度大于线路等级所规定的限制坡度时就得展线。
按照地形图的比例尺(1∶M )及等高线的间距h 先计算与坡度i 相
应的图上平距d :
h d = i *M
通常这里选的坡度i 要比规范上的限制坡度略小一些。这由线路工
程师顾及多种因素按照规范计算而得。由上式算得d 值后用两脚规按此
d 值,从路线控制点附近的一条等高线出发,展绘到相邻一条等高线上
求得一点,再从新点出发再另一根等高线上又求得一点,如此一直展绘
下去直至到达另一个路线控制点为止。这样就可获得一条折线。称为不
填不挖的路线。然后经过截弯取直以后,把几段长为d 的折线用一些长
直线代替,长直线就作为图上设计的路线直线段的中线,相邻长直线的
转折点称为交点。在相邻长直线之间用曲线连接。这样线路的中线就是
由相间的直线段与曲线段组成。沿中线计算线路上各样特征点的里程。
利用等高线,经内插线路中线上一系列点的高程后绘制纵断面图。在纵
断面图上设计线路坡度。并计算线路的工程量和费用。这样利用地形图
就把一个路线方案选出来了。
2.3.2 现场定线
我国公路定线中长采用现场定线的方法,即根据技术标准,结合实
地地形、地质等条件,由有经验的线路工程师利用测杆、水准、量角圆
盘等简单仪具,直接选定路线中线的交点以确定路线中线位置。这种发
放虽然简单直观,但需具有实践经验的专门工程技术人员才能做好。如
遇复杂地形、现场定线困难时,最好还是先测图,然后纸上定线。
2.4 放线、中线测量、测纵断面图(定测)
这一步的测量工作主要有两个内容,一是把设计在图上的中线实地
标出来。即实地放样。二是沿实地标出的中线测绘纵断面图。这一阶段
测量工作称为定测。显然实测的纵断面图比纸上定线时利用地形图绘出
的纵断面图精确的多。设计人员利用实测纵断面图设计路线的坡度,同
时进一步确定桥梁的高度等工程设施的一些参数,并精确计算工程量。
实测时实地设置的标桩可作为日后施工的依据。
2.4.1 放线
放线就是将批准了的初步设计的中线移设于实地上的测量工作,也
称定线测量。
上面讲到的设计的中线仅仅是在带状地形图上图解设计的中线,并
不是解析设计的数据。因此放样所需的数据要从带状地形图上量取。
放线的方法主要有穿线放线法和拨角放线法,这里就不做详细介绍
了。
2.4.2 中线测量
中线测量的具体内容在与沿路线中线量距,同时在实地打一系列桩
标。并在路线转向处放样曲线。
关于设置桩标。规范规定:沿中线每百米处设百米桩,在地面坡度
改变处、中线与其它重要地物(如已有道路、河流、输电线路等)相交
的地方要加设标桩。当然在路线本身的一些特征点如曲线的起点、终点
等地方也须设桩。所有标桩从路线起点开始统一计算里程,里程具有决
定标桩名称的作用;计算土方时可以用里程差求得两横断面间的距离。
打桩的同时要绘制沿线的平面草图。由于有各桩里程的帮助,所以草图
也就比较准确。
2.4.3 纵断面高程测量
一般用水准测量的方法测量中线上各个桩的高程。水准测量应该附
合于沿线的水准点以作必要的检核。通常在转点处读至毫米以减少误差
的积累,中视读数取到厘米。各桩的高程和它们的里程是绘制路线纵断
面图的基本资料。
根据实测资料绘制的路线纵断面图,其横向比例尺(里程)通常与
带状地形图的比例尺相同,而纵向比例尺(高程)常比横向比例尺大5
—10倍,以使地面起伏更为醒目。
2.4.4 横断面测量
横断面测量的主要目的在于绘制横断面图以供路基设计用。在全部
中线上(直线段和曲线段)百米桩、加桩处都要测绘横断面。
测绘横断面工作在于:
⑴、定出横断面方向;
⑵、测量横断面上地形起伏点与中线点之高差;
⑶、测量这些点至中线的距离;
⑷、绘制横断面图。
测量横断面精度要求不高,但工作量大。绘制横断面时通常纵横比
例尺相同。
2.4.5 路基设计
在纵断面图上设计人员设计诸线段的坡度,根据坡度可以依次推算
任何一个桩点处的设计高程(在纵断面图上它习惯用红色表示,所以也
成为红色高程)。相应地每个桩点有其地面高程(或称黑色高程)。两者
之差得施工高度。
施工高度=红色高程—黑色高程
按正负号分为挖深或填高。
路基断面由路面宽、边坡的坡度和路堑处排水沟的底宽等参数组
成。路基断面设计好后,可以用塑料板预制成模板。对于某一个横断面
说来,有了施工高度后,就可以把设计横断面套在实测横断面上相应高
度处,用红线画出。这一工作专业人员称之为戴帽子。实测横断面线与
设计断面线之间所围的面积就是待施工(挖去或填上)的面积。
利用横断面图可以求得施工面积。
3 曲线测设
就铁路、公路线路而言,由于受地形地物及社会经济发展的要求限
制,线路总是不断从一个方向转到另一个方向,这时,为了使车辆平稳、
安全地运行,必须用曲线连接。这种在平面内连接不同线路方向的曲线,
称为平面曲线。线路的纵断面是由不同的坡度连接的,当两相邻的坡度
值的代数差超过一定值时,在变坡点处,必须用曲线连接。这种在竖面
上连接不同坡度的曲线,称为竖曲线。在公路曲线测设中,还有一种用
以连接不同平面上的曲线,这是立交曲线。该曲线由高度为h1的平面
均匀上升到高度为h2的平面。
平面曲线按其半径的不同分为圆曲线和缓和曲线。圆曲线上任意一
点的曲率半径处处相等;缓和曲线上任意一点的曲率半径处处在变化。
当缓和曲线作为直线和圆曲线之间的介曲线时,其半径变化范围自∞至
圆曲线半径;若用以连接半径为R1与R2的圆曲线时,缓和曲线的半径
便自R1向R2过渡。
一般的地方支线及厂、矿专用线可只用圆曲线连接;铁路干线上的
圆曲线两端都要用缓和曲线与直线相连。
曲线测设的方法有多种,常见的有偏角法及切线支距法。此外,还
有弦线支距法、弦线偏角法、正矢法及割线法等。在测距技术与电子计
算机广泛应用的情况下,以极坐标法,尤其是在电子速测仪配合下的极
坐标法放样曲线更具其优越性。
3.1 极坐标法
极坐标法:就是根据一个角和一段距离从一个控制点上标定其他点
位的一种方法;也就是在一个已知的控制点和另一个已知通视的控制
点,由两个已知控制点坐标和欲放点的设计坐标,算出由控制点到该点
的方向和距离,即放样元素。
如图所示:A 、B 为已知控制点,
P 为欲放勘探点,那么:
β=αAP -αAB
=y P -y A y -y A -B
x P -x A x B -x A
S =(x P -x A ) 2+(y P -y A ) 2
由于tan 函数计算方位角时要依据∆Y 和∆X 的符号来确定方位角,可用下式先解算α"AB
α"AB =y B -y A ∆y = ∆x x B -x A
由∆x 、∆y 的符号来确定方位角:
β、S 为勘探点放样元素,所以每个勘探点只要算出β、S 即可放样。
放样的具体方法是:将全站仪安置在A 点上,瞄准B 点,度盘置零,按水平角β数值转动仪器照准部,此时望远镜的视准轴方向即为AP 方向,然后从A 点开始沿AP 方向丈量距离S ,即得P 点位置。
极坐标法放点法对场地的通视条件要求较高,在放点时要做好通视条件,放点时要反复进行,直到达到允许偏差范围之内为止。放样的勘探点位置要钉上一个木桩,并用油漆写上勘探点的相应的编号,这样整个放点工作就完成了。
虽然放样元素的计算和实地放样的操作都很简单,考虑到放样的责任十分重大,不允许出错,所以必须采取措施进行校核。
㈠、要仔细校核控制点的坐标与设计点的坐标有否搞错,这工作必须由两人分别独立进行,然后对照。
㈡、尽可能用不同的计算工具,不同的计算公式进行计算。在求方向角α时要仔细判断象限。计算器是按弧度进行计算的,而我国习惯于
用360︒制。不同的计算器有不同的制式换算方法,很容易因疏忽而造成
错误。
㈢、对算和逆运算。由两人分别独立计算称为对算。把算得的值作
为已知数据,把原来的已知数据作为待定值进行计算称为逆运算。对算
和逆算都是有效的校核手段。
由同一个人,用同样的计算工具,按同样的计算公式和同样的步骤
再算一次称为复算,经验证明复算时常会犯算一样的错误,因此复算并
不是有效的较核方法。
㈣、按比例画略图有助于发现内外业的粗错,是实际工作中很重要
的检核措施。略图一定要按比例绘制才有作用。
㈤、用多余观测进行校核。如放样了一个点后,用它与其他点之间
的几何关系进行校核。
极坐标法放样在各种工程建设中都可以应用,但大多用来放样建筑
物的少许特征点。
3.2 坐标正算与坐标反算
3.2.1 坐标正算公式
以知边长和方位角,由已知点推算待定点的坐标称为坐标正算。已
知A 点的坐标为x A ,y A ,和A 至待定点P 的边长D AP (平距)和方位
角αAP ,则P 点坐标可表达为下面的关系:
x P =x A +D AP cos αAP
y P =y A +D AP sin αAP
3.2.2 坐标反算公式
已知相邻两点的坐标,反算边长和方位角称为坐标反算。
αAP =y P -y A ∆y =AP x P -x A ∆x AP
22D AP =∆x AP +∆y AP ;
3.3 曲线的种类
圆曲线:具有单一半径的曲线。
复曲线: 由两个或两个以上同向的单曲线连接而成的曲线。 反向曲线:由两个方向不同的曲线连接而成的曲线。
缓和曲线:在圆曲线和直线之间设置的一段过渡曲线,它的曲率半径由
无穷大渐变至R (圆曲线的半径)
3.4 圆曲线要素及应用公式
圆曲线又称单圆曲线。圆曲线测设通常分两步进行。首先测设曲
线上起控制作用的点子,称为主要点测设;然后根据主要点加密曲线其
它的点子,称为曲线详细测设。在实地测设之前,必须进行曲线要素及
主要点的里程计算。
3.4.1 线上点线名称
JD :路线转角点,称交点;
ZY :圆曲线起点,称直圆点;
YZ :圆曲线终点,称圆直点;
QZ :圆曲线中点,称曲中;
ZY 、YZ 、QZ 三点总称为圆曲线的主点;
T :切线长;
L :曲线长;
E :外失距;
q :切曲差;
T 、L 、E 三者总称为圆曲线的要素;
α:路线的转角;
R :圆曲线半径;
β:路线的转折角,我国公路界习惯测右角;
3.4.2 曲线的放样步骤
⑴:实测路线的右角β;
⑵:由右角计算路线的转角α;
右转时:α右=180︒-β 左转时:α左=β-180︒
⑶:根据转角α和半径R ,计算圆曲线要素T 、L 、E ;
⑷:根据交点JD 的里程和曲线要素,计算圆曲线主点里程;
⑸:放样圆曲线主点;
⑹:详细放样圆曲线;
3.4.3 圆曲线要素计算
圆曲线要素按下列公式计算:
α T =R ⋅t a 2
∏α⋅R L =180︒
α E =R (s e -1) 2
q=2T-L
3.4.4 圆曲线主点里程的计算
圆曲线的起、终、中点称为曲线的主点。放样曲线时,先定出主点,然后在详细放样曲线上的其他点。
曲线主点里程根据该曲线交点里程计算求得:即
ZY 里程=JD里程—切线长T
YZ 里程=ZY里程+曲线长L
QZ 里程=YZ里程—
校核:JD 里程=QZ里程+q
3.4.5 圆曲线主点的放样
将仪器置于JD 点,按路线后视方向定向,从JD 沿切线方向量取
T 长,得起点ZY ,由ZY 丈量到直线上最后一个中桩的距离,它应等于两桩里程之差。校核无误后打桩。
按路线前视方向定向,沿方向线从JD 量取T 长,得YZ ,打下YZ 桩。平分β角,沿分角线从JD 量取E 长,得QZ 点,打下QZ 桩。
当转角α很小时,在实地作业时容易搞错,这时宜按下列规则放样: β右〈180︒ QZ 在交点JD 的右侧,
β右〉180︒ QZ 在交点JD 的左侧。
3.4.6 圆曲线的详细放样
圆曲线,仅有三个主点表示还不够,必须用更多的点才能确切表示它在地面上的位置,详细放样就是在曲线上加测一些桩位。
切线支距法(直角坐标法)
切线支距法是以曲线起点ZY (或终点YZ )为坐标原点,起切线为x 轴、过ZY (或YZ )的半径为y 轴的直角坐标系统。利用曲线上各点在此坐标系统中的坐标,便可采用直角坐标法测设曲线。其作法是在地面上沿切线方向自ZY (或YZ )量出x i ,在其垂直方向量取y i ,便可得曲线上的i 点。本文主要用该法顶圆曲线上任意一点的直角坐标,然后根据测站坐标可以将其换算成极坐标。
现在,问题的关键是如何由曲线上任意一点i 的曲线上l i 及半径R 来确定i 点的坐标x i 与y i ,即参数方程的建立。
曲线上任意一点的坐标为:
x i =R ⋅sin αi
以αi =y i =R (1-cos αi ) l i 代上式并用级数展开,可得圆曲线的参数方程式: R
l i 3l i 5x i =l i -+ 246R 120R
l i 2l i 4l i 6y i =-+ 2R 24R 3720R 5
根据R 与i 点曲线上l i 代入上式即得i 点坐标。
3.5 有缓和曲线的圆曲线要素及其应用公式
这里我们只对在直线与圆曲线间嵌入缓和曲线的情况进行讨
论。
当圆曲线两端加入缓和曲线后,圆曲线应内移一端距离,方能
使缓和曲线和直线衔接。而内移圆曲线,可采用移动圆心或缩短半径的方法实现。我国在铁路、公路的曲线测设中,一般采用内移圆心的方法。若圆曲线的圆心O 1沿着圆心角的平分线内移至O 2(此l 时O 1O 2=P ⋅sec ,P =0),圆曲线的两端就可以插入缓和曲224R α2
线,把圆曲线与直线平顺地连接起来。如下图所示:
具有缓和曲线的圆曲线,其主要点为:
ZH (直缓点):直线与缓和曲线的连接点;
HY (缓圆点):缓和曲线和圆曲线的连接点;
QZ (曲中点):曲线的中点;
YH (圆缓点):圆曲线和缓和曲线的连接点;
HZ (缓直点):缓和曲线与直线的连接点;
加入缓和曲线后,其曲线要素可以用下列公式求得:
αT =m +(R +p ) ⋅tan 2
L =∏R ⋅(α-2β0) +2l 0 ︒180
E =(R +p ) sec α
2-R
q =2T -L
式中α为偏角(线路转向角);
R 为圆曲线半径;
l 0为缓和曲线长度;
m 为加设缓和曲线后使切线增长的距离;
p 为加设缓和曲线后圆曲线相对于切线的内移量;
β0为HY 点(或HY 点)的缓和曲线角度;
其中,m 、p 、β0称为缓和曲线参数,可按下式计算:
β0=l 0⋅ρ 2R
3l 0l 0m =- 22240R
l 02p = 24R
曲线主要点定出后,还要沿着曲线加密曲线桩,才能在地面比较确切的反映曲线的形状。曲线的详细测设除,就是指测设除主要点以外的一切曲线桩,包括一定距离的加密桩、百米桩及其它加桩。
在圆曲线与直线之间插入长度为l 0的缓和曲线后,原圆曲线及直线的一部分,被缓和曲线代替,其数量为l 0。
有缓和曲线的圆曲线,一般分为缓和曲线和圆曲线两部分进行讨论。
以曲线长l i 为参数的缓和曲线方程的最后形式:(这里不在讨论,直接给出)
l i 5 x i =l i -2240R l 0
l i 3 y i =6Rl 0
对于圆曲线而言,设i 是圆曲线上的任意一点。如图:
从图中看出,i 点的坐标可表示为:
x i =R ⋅sin αi +m
y i =R (1-cos αi ) +p
式中:
180︒α=(l i -l 0) +β0 ∏R
若αi 以弧度表示,并顾及β0=l 0,则有 2R
αi =
则有:
x i =R ⋅sin(l i -l 0l 0l -0. 5l 0+=i R 2R R l i -0. 5l 0) +m R
⎡⎛l -0. 5l 0⎫⎤y i =R ⎢1-cos i ⎪⎥+p R ⎝⎭⎦⎣
对上式进行台劳级数展开,略去高次项,化简后得圆曲线以l i 为参数的方程式:
(l i -0. 5l 0) 3
x i =l i -0. 5l 0-+...... +m 26R
(l i -0. 5l 0) 2(l i -0. 5l 0) 4
y i =-+...... +p 2R 24R 3
4 中线坐标的模型及理论
本章主要介绍以极坐标法放样有缓和曲线的圆曲线中线点的具体放样方法:
4.1 现在介绍缓和曲线部分的中线点放样方法
如图:ZH 到HY 之间为缓和曲线段,以过ZH 点的切线为纵轴
X ,垂直切线方向为横轴,建立直角坐标系。
假设以ZH 点为测站,后视X 轴方向,则i 点的坐标方位角就
是i 点的极角,i 点到圆点的距离就为极径S ,然后就可以按级坐标法放样中线点i 。
这里的关键问题是求i 点的直角坐标,i 点及为在缓和曲线上
按一般规范打下的一系列中桩点(一般为10m 到20m 打一个点),ZH 的为曲线的主点,主点里程可以由已知条件推算求得。由主点里程就可以推算出i 点的里程,i 点和ZH 点的里程差及为曲线长l i ,l i 5l i 3然后根据公式x i =l i -,y i =,及可以求出i 点的直226Rl 40R l 00
角坐标。
在实际工作中,经常遇到不通视的情况,这里就要求换站。
有ZH 测站换到I 测站,I 站的的坐标可以由ZH 站的坐标通过坐标正算公式求得:
x I =x 0+D ⋅cos α,y i =y 0+D ⋅sin α
在I 站设站以前一测站为后视方向,放样中线点i 。
4.2 有缓和曲线的圆曲线上中线点的放样方法
HY为缓圆点、QZ 为圆曲线的中点,在这一段上放样中线点和
缓和曲线上放样中线点的方法基本一致,就不在重叙。假设放样圆曲线上的中线点i ,圆曲线上i 点的计 (l i -0. 5l 0) 3
+...... +m 根据公式:x i =l i -0. 5l 0-26R
(l i -0. 5l 0) 2(l i -0. 5l 0) 4
-+...... +p y i =2R 24R 3
计算。
5 程序使用说明及实例
5.1 程序使用说明
5.1.1 程序设计窗体
5.1.2 程序的使用说明
该程序用来计算曲线的要素,主点的里程、直角坐标 、极坐标,曲线上细部点的里程、直角坐标、极坐标。
当只输入曲线半径,偏角,交点里程,放样细部点的间距,则认为是圆曲线,输出圆曲线的要素、主点里程、直角坐标,并每隔一定间距输出细部点的里程、直角坐标。当输入了测站坐标和后视坐标时,
在列表框里多输出每个点相对于测站的极角和极径。
当在文本框中输入缓和曲线长时,则认为是带有缓和曲线的圆曲线计算。
5.2 计算实例
5.2.1 圆曲线的计算
已知α=10︒25",R=800m,交点JD 的里程为DK11+295.78,每隔20m
打一中线点,并求曲线的各要素。
输入圆曲线半径800m ,偏角α,交点里程11295.78选择间距为20m ,点计算可得下列结果:
T=72.923m L=145.444m E=3.317m q=0.402m
ZY=11222.857 QZ=11295.579 YZ=11368.301
里程 横坐标 纵坐标 11222.857 0 0
11242.857 19.998 0.25
11262.857 39.983 1 11282.857 59.944 2.249 ………………………
11368.301 144.644 13.185
如果输入测站坐标和后视坐标还可以输出各个点的极坐标。
5.2.2 带有缓和曲线的圆曲线
设圆曲线半径R=600m,偏角α右=48︒23",缓和曲线长度l 0=110m,交点JD 的里程为DK162+028.77,每隔10米打一中线点,并求曲线元素。
输入圆曲线半径600m ,偏角α,交点里程162028.77,选择间距为10m ,点计算可得下列结果:
T=324.908 L=616.669 E=58.686 q=33.147
ZH=161703.862 HY=161813.862 QZ=162012.196 YH=162210.531 HZ=162320.531
每10米中线点的计算结果这里就不在列出。
同样,输入测站点坐标以及后视点坐标时可以输出各个点的极坐标。
5.3 程序代码
Private Sub Command1_Click() Form2.Show Form1.Hide End Sub
Private Sub Command3_Click() Unload Me End End Sub
Private Sub Command1_Click() Dim R As Double Dim α As Double Dim l0 As Double Dim JD As Double Dim T As Double Dim L As Double Dim E As Double Dim q As Double Dim ZY As Double Dim QZ As Double Dim YZ As Double Dim β0 As Double
Dim m As Double Dim p As Double Dim ZH As Double Dim HY As Double Dim HZ As Double Dim YH As Double Dim x0 As Double Dim y0 As Double Dim x1 As Double Dim x2 As Double Dim β As Double Dim S As Double Dim xQZ As Double Dim yQZ As Double Dim li As Double Dim v As Double Dim xv As Double Dim yv As Double Dim ll As Double Dim k As String Dim i As Integer Dim j As Integer Dim d As Integer
If (Option3.Value = True) Then d = 10
Elseif (Option4.Value = True) Then d = 20 Else
d = Val(Text7.Text) End If
list1.Clear k = ""
k = Format("里程", "!@@@@@@@@@@") & Format("横坐标", "!@@@@@@@@@") & Format("纵坐标", "!@@@@@@@@@") & Format("极角", "!@@@@@@@@@") & Format("极距",
"!@@@@@@@@@")
list1.AddItem k R = Val(Text1.Text)
α = (Val(Text3.Text) + Val(Text4.Text) / 60 + Val(Text5.Text) / 3600) * (3.1415926 / 180)
l0 = Val(Text2.Text) JD = Val(Text6.Text) x0 = Val(Text8.Text) y0 = Val(Text9.Text) x1 = Val(Text10.Text) Y1 = Val(Text11.Text)
If l0 = 0 Then
T = R * Tan(α / 2) L = α * R
E = R * (1 / Cos(α / 2) - 1) q = 2 * T - L
T = 0.001 * Int(1000 * (T + 0.0005)) L = 0.001 * Int(1000 * (L + 0.0005)) E = 0.001 * Int(1000 * (E + 0.0005)) q = 0.001 * Int(1000 * (q + 0.0005)) ZY = JD - T QZ = ZY + L / 2 YZ = QZ + L / 2
ZY = 0.001 * Int(1000 * (ZY + 0.0005)) QZ = 0.001 * Int(1000 * (QZ + 0.0005)) YZ = 0.001 * Int(1000 * (YZ + 0.0005)) Text12.Text = T Text13.Text = L Text14.Text = E Text15.Text = q Text16.Text = ZY Text17.Text = QZ Text18.Text = YZ k = ""
k = Format(ZY, "!@@@@@@@@@@") & " " & Format(0,
"!@@@@@@@@@") & " " & Format(0, "!@@@@@@@@@")
list1.AddItem k j = Fix((L / 2)) / d For i = 1 To j Step 1 k = "" li = i * d
v = ZY + i * d
xv = li - li ^ 3 / (6 * R ^ 2) + li ^ 5 / (120 * R ^ 4)
yv = li ^ 2 / (2 * R) - li ^ 4 / (24 * R ^ 3) + li ^ 6 / (720 * R ^ 5) xv = 0.001 * Int(1000 * (xv + 0.0005)) yv = 0.001 * Int(1000 * (yv + 0.0005))
If x0 = 0 And y0 = 0 And x1 = 0 And Y1 = 0 Then
k = Format(v, "!@@@@@@@@@@") & " " & Format(xv, "!@@@@@@@@@") & " " & Format(yv, "!@@@@@@@@@")
list1.AddItem k
ElseIf x0 0 Or y0 0 Or x1 0 Or Y1 0 Then
β = Abs(Atn((xv - x0) / (yv - x0)) - Atn((x1 - x0) / (Y1 - y0))) S = Sqr((xv - x0) ^ 2 + (yv - y0) ^ 2) β = 0.001 * Int(1000 * (β + 0.0005)) S = 0.001 * Int(1000 * (S + 0.0005))
k = Format(v, "!@@@@@@@@@@") & " " & Format(xv, "!@@@@@@@@@") & " " & Format(yv, "!@@@@@@@@@") & " " & Format(β, "!@@@@@@@@@") & " " & Format(S, "!@@@@@@@@@")
list1.AddItem k End If Next
xQZ = L / 2 - (L / 2) ^ 3 / (6 * R ^ 2) + (L / 2) ^ 5 / (120 * R ^ 4) yQZ = (L / 2) ^ 2 / (2 * R) - (L / 2) ^ 4 / (24 * R ^ 3) + (L / 2) ^ 6 / (720 * R ^ 5)
xQZ = 0.001 * Int(1000 * (xQZ + 0.0005)) yQZ = 0.001 * Int(1000 * (yQZ + 0.0005))
If x0 = 0 And y0 = 0 And x1 = 0 And Y1 = 0 Then k = ""
k = Format(QZ, "!@@@@@@@@@@") & " " & Format(xQZ, "!@@@@@@@@@") & " " & Format(yQZ, "!@@@@@@@@@")
list1.AddItem k
ElseIf x0 0 Or y0 0 Or x1 0 Or Y1 0 Then
β = Abs(Atn((xQZ - x0) / (yQZ - x0)) - Atn((x1 - x0) / (Y1 - y0))) S = Sqr((xQZ - x0) ^ 2 + (yQZ - y0) ^ 2) β = 0.001 * Int(1000 * (β + 0.0005)) S = 0.001 * Int(1000 * (S + 0.0005))
k = Format(QZ, "!@@@@@@@@@@") & " " & Format(xQZ, "!@@@@@@@@@") & " " & Format(yQZ, "!@@@@@@@@@") & " " & Format(β, "!@@@@@@@@@") & " " & Format(S, "!@@@@@@@@@")
list1.AddItem k End If
For i = 1 To j Step 1 k = ""
li = L / 2 + i * d v = QZ + i * d
xv = li - li ^ 3 / (6 * R ^ 2) + li ^ 5 / (120 * R ^ 4)
yv = li ^ 2 / (2 * R) - li ^ 4 / (24 * R ^ 3) + li ^ 6 / (720 * R ^ 5) xv = 0.001 * Int(1000 * (xv + 0.0005)) yv = 0.001 * Int(1000 * (yv + 0.0005))
If x0 = 0 And y0 = 0 And x1 = 0 And Y1 = 0 Then
k = Format(v, "!@@@@@@@@@@") & " " & Format(xv, "!@@@@@@@@@") & " " & Format(yv, "!@@@@@@@@@")
list1.AddItem k
ElseIf x0 0 Or y0 0 Or x1 0 Or Y1 0 Then
β = Abs(Atn((xv - x0) / (yv - x0)) - Atn((x1 - x0) / (Y1 - y0))) S = Sqr((xv - x0) ^ 2 + (yv - y0) ^ 2) β = 0.001 * Int(1000 * (β + 0.0005)) S = 0.001 * Int(1000 * (S + 0.0005))
k = Format(v, "!@@@@@@@@@@") & " " & Format(xv, "!@@@@@@@@@") & " " & Format(yv, "!@@@@@@@@@") & " " & Format(β, "!@@@@@@@@@") & " " & Format(S, "!@@@@@@@@@")
list1.AddItem k End If
Next
xYZ = L - L ^ 3 / (6 * R ^ 2) + L ^ 5 / (120 * R ^ 4)
yYZ = L ^ 2 / (2 * R) - L ^ 4 / (24 * R ^ 3) + L ^ 6 / (720 * R ^ 5) xYZ = 0.001 * Int(1000 * (xYZ + 0.0005)) yYZ = 0.001 * Int(1000 * (yYZ + 0.0005)) If x0 = 0 And y0 = 0 And x1 = 0 And Y1 = 0 Then k = ""
k = Format(YZ, "!@@@@@@@@@@") & " " & Format(xYZ, "!@@@@@@@@@") & " " & Format(yYZ, "!@@@@@@@@@")
list1.AddItem k
ElseIf x0 0 Or y0 0 Or x1 0 Or Y1 0 Then
β = Abs(Atn((xYZ - x0) / (yYZ - x0)) - Atn((x1 - x0) / (Y1 - y0))) S = Sqr((xYZ - x0) ^ 2 + (yYZ - y0) ^ 2) β = 0.001 * Int(1000 * (β + 0.0005)) S = 0.001 * Int(1000 * (S + 0.0005))
k = Format(YZ, "!@@@@@@@@@@") & " " & Format(xYZ, "!@@@@@@@@@") & " " & Format(yYZ, "!@@@@@@@@@") & " " & Format(β, "!@@@@@@@@@") & " " & Format(S, "!@@@@@@@@@")
list1.AddItem k End If
ElseIf l0 0 Then β0 = l0 / (2 * R)
m = l0 / 2 - l0 ^ 3 / (240 * R ^ 2) p = l0 ^ 2 / (24 * R)
T = m + (R + p) * Tan(α / 2) L = R * (α - 2 * β0) + 2 * l0 E = (R + p) * (1 / Cos(α / 2)) - R q = 2 * T - L
T = 0.001 * Int(1000 * (T + 0.0005)) L = 0.001 * Int(1000 * (L + 0.0005)) E = 0.001 * Int(1000 * (E + 0.0005)) q = 0.001 * Int(1000 * (q + 0.0005)) ZH = JD - T HY = ZH + l0 QZ = ZH + L / 2
HZ = QZ + L / 2 YH = HZ - l0
ZH = 0.001 * Int(1000 * (ZH + 0.0005)) HY = 0.001 * Int(1000 * (HY + 0.0005)) QZ = 0.001 * Int(1000 * (QZ + 0.0005)) HZ = 0.001 * Int(1000 * (HZ + 0.0005)) YH = 0.001 * Int(1000 * (YH + 0.0005)) Text12.Text = T Text13.Text = L Text14.Text = E Text15.Text = q Text19.Text = ZH Text20.Text = HY Text21.Text = QZ Text22.Text = YH Text23.Text = HZ k = ""
k = Format(ZH, "!@@@@@@@@@@") & " " & Format(0, "!@@@@@@@@@") & " " & Format(0, "!@@@@@@@@@")
list1.AddItem k
j = Fix((HY - ZH) / d) For i = 1 To j Step 1 k = "" li = i * d
v = ZH + i * d
xv = li - li ^ 5 / (40 * R ^ 2 * l0 ^ 2) yv = li ^ 3 / (6 * R * l0)
xv = 0.001 * Int(1000 * (xv + 0.0005)) yv = 0.001 * Int(1000 * (yv + 0.0005))
If x0 = 0 And y0 = 0 And x1 = 0 And Y1 = 0 Then
k = Format(v, "!@@@@@@@@@@") & " " & Format(xv, "!@@@@@@@@@") & " " & Format(yv, "!@@@@@@@@@")
list1.AddItem k
ElseIf x0 0 Or y0 0 Or x1 0 Or Y1 0 Then
β = Abs(Atn((xv - x0) / (yv - x0)) - Atn((x1 - x0) / (Y1 - y0))) S = Sqr((xv - x0) ^ 2 + (yv - y0) ^ 2)
β = 0.001 * Int(1000 * (β + 0.0005)) S = 0.001 * Int(1000 * (S + 0.0005))
k = Format(v, "!@@@@@@@@@@") & " " & Format(xv, "!@@@@@@@@@") & " " & Format(yv, "!@@@@@@@@@") & " " & Format(β, "!@@@@@@@@@") & " " & Format(S, "!@@@@@@@@@")
list1.AddItem k End If Next
j = Fix((QZ - HY) / d) For i = 1 To j Step 1 k = ""
li = (HY - ZH) + i * d v = HY + i * d
xv = li - 0.5 * l0 - (li - 0.5 * l0) ^ 2 / (6 * R ^ 2) + m
yv = (li - 0.5 * l0) ^ 2 / (2 * R) - (li - 0.5 * l0) ^ 4 / (24 * R ^ 3) + p xv = 0.001 * Int(1000 * (xv + 0.0005)) yv = 0.001 * Int(1000 * (yv + 0.0005))
If x0 = 0 And y0 = 0 And x1 = 0 And Y1 = 0 Then
k = Format(v, "!@@@@@@@@@@") & " " & Format(xv, "!@@@@@@@@@") & " " & Format(yv, "!@@@@@@@@@")
list1.AddItem k
ElseIf x0 0 Or y0 0 Or x1 0 Or Y1 0 Then
β = Abs(Atn((xv - x0) / (yv - x0)) - Atn((x1 - x0) / (Y1 - y0))) S = Sqr((xv - x0) ^ 2 + (yv - y0) ^ 2) β = 0.001 * Int(1000 * (β + 0.0005)) S = 0.001 * Int(1000 * (S + 0.0005))
k = Format(v, "!@@@@@@@@@@") & " " & Format(xv, "!@@@@@@@@@") & " " & Format(yv, "!@@@@@@@@@") & " " & Format(β, "!@@@@@@@@@") & " " & Format(S, "!@@@@@@@@@")
list1.AddItem k End If Next
ll = QZ - ZH
xQZ = ll - 0.5 * l0 - (ll - 0.5 * l0) ^ 2 / (6 * R ^ 2) + m
yQZ = (ll - 0.5 * l0) ^ 2 / (2 * R) - (ll - 0.5 * l0) ^ 4 / (24 * R ^ 3) + p
xQZ = 0.001 * Int(1000 * (xQZ + 0.0005)) yQZ = 0.001 * Int(1000 * (yQZ + 0.0005)) If x0 = 0 And y0 = 0 And x1 = 0 And Y1 = 0 Then k = ""
k = Format(QZ, "!@@@@@@@@@@") & " " & Format(xQZ, "!@@@@@@@@@") & " " & Format(yQZ, "!@@@@@@@@@")
list1.AddItem k
ElseIf x0 0 Or y0 0 Or x1 0 Or Y1 0 Then
β = Abs(Atn((xQZ - x0) / (yQZ - x0)) - Atn((x1 - x0) / (Y1 - y0))) S = Sqr((xQZ - x0) ^ 2 + (yQZ - y0) ^ 2) β = 0.001 * Int(1000 * (β + 0.0005)) S = 0.001 * Int(1000 * (S + 0.0005))
k = Format(QZ, "!@@@@@@@@@@") & " " & Format(xQZ, "!@@@@@@@@@") & " " & Format(yQZ, "!@@@@@@@@@") & " " & Format(β, "!@@@@@@@@@") & " " & Format(S, "!@@@@@@@@@")
list1.AddItem k End If
j = Fix((YH - QZ) / d) For i = 1 To j Step 1 k = ""
li = (QZ - ZH) + i * d v = QZ + i * d
xv = li - 0.5 * l0 - (li - 0.5 * l0) ^ 2 / (6 * R ^ 2) + m
yv = (li - 0.5 * l0) ^ 2 / (2 * R) - (li - 0.5 * l0) ^ 4 / (24 * R ^ 3) + p xv = 0.001 * Int(1000 * (xv + 0.0005)) yv = 0.001 * Int(1000 * (yv + 0.0005))
If x0 = 0 And y0 = 0 And x1 = 0 And Y1 = 0 Then
k = Format(v, "!@@@@@@@@@@") & " " & Format(xv, "!@@@@@@@@@") & " " & Format(yv, "!@@@@@@@@@")
list1.AddItem k
ElseIf x0 0 Or y0 0 Or x1 0 Or Y1 0 Then
β = Abs(Atn((xv - x0) / (yv - x0)) - Atn((x1 - x0) / (Y1 - y0))) S = Sqr((xv - x0) ^ 2 + (yv - y0) ^ 2)
β = 0.001 * Int(1000 * (β + 0.0005))
S = 0.001 * Int(1000 * (S + 0.0005))
k = Format(v, "!@@@@@@@@@@") & " " & Format(xv, "!@@@@@@@@@") & " " & Format(yv, "!@@@@@@@@@") & " " & Format(β, "!@@@@@@@@@") & " " & Format(S, "!@@@@@@@@@")
list1.AddItem k
End If
Next
ll = YH - ZH
xYH = ll - 0.5 * l0 - (ll - 0.5 * l0) ^ 2 / (6 * R ^ 2) + m
yYH = (ll - 0.5 * l0) ^ 2 / (2 * R) - (ll - 0.5 * l0) ^ 4 / (24 * R ^ 3) + p
xYH = 0.001 * Int(1000 * (xYH + 0.0005))
yYH = 0.001 * Int(1000 * (yYH + 0.0005))
If x0 = 0 And y0 = 0 And x1 = 0 And Y1 = 0 Then
k = ""
k = Format(YH, "!@@@@@@@@@@") & " " & Format(xYH, "!@@@@@@@@@") & " " & Format(yYH, "!@@@@@@@@@")
list1.AddItem k
ElseIf x0 0 Or y0 0 Or x1 0 Or Y1 0 Then
β = Abs(Atn((xYH - x0) / (yYH - x0)) - Atn((x1 - x0) / (Y1 - y0))) S = Sqr((xYH - x0) ^ 2 + (yYH - y0) ^ 2)
β = 0.001 * Int(1000 * (β + 0.0005))
S = 0.001 * Int(1000 * (S + 0.0005))
k = Format(YH, "!@@@@@@@@@@") & " " & Format(xYH, "!@@@@@@@@@") & " " & Format(yYH, "!@@@@@@@@@") & " " & Format(β, "!@@@@@@@@@") & " " & Form at(S, "!@@@@@@@@@")
list1.AddItem k
End If
j = Fix((HZ - YH) / d)
For i = 1 To j Step 1
k = ""
li = (YH - ZH) + i * d
v = YH + i * d
xv = li - li ^ 5 / (40 * R ^ 2 * l0 ^ 2)
yv = li ^ 3 / (6 * R * l0)
xv = 0.001 * Int(1000 * (xv + 0.0005))
yv = 0.001 * Int(1000 * (yv + 0.0005))
If x0 = 0 And y0 = 0 And x1 = 0 And Y1 = 0 Then
k = Format(v, "!@@@@@@@@@@") & " " & Format(xv,
"!@@@@@@@@@") & " " & Format(yv, "!@@@@@@@@@")
list1.AddItem k
ElseIf x0 0 Or y0 0 Or x1 0 Or Y1 0 Then
β = Abs(Atn((xv - x0) / (yv - x0)) - Atn((x1 - x0) / (Y1 - y0)))
S = Sqr((xv - x0) ^ 2 + (yv - y0) ^ 2)
β = 0.001 * Int(1000 * (β + 0.0005))
S = 0.001 * Int(1000 * (S + 0.0005))
k = Format(v, "!@@@@@@@@@@") & " " & Format(xv, "!@@@@@@@@@") & " " & Format(yv, "!@@@@@@@@@") & " " & Format(β, "!@@@@@@@@@") & " " & Format(S, "!@@@@@@@@@")
list1.AddItem k
End If
Next
Else
End If
End Sub
Private Sub Command2_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
Text8.Text = ""
Text9.Text = ""
Text10.Text = ""
Text11.Text = ""
Text12.Text = ""
Text13.Text = ""
Text14.Text = ""
Text15.Text = ""
Text16.Text = ""
Text17.Text = ""
Text18.Text = ""
Text19.Text = ""
Text20.Text = ""
Text21.Text = ""
Text22.Text = ""
Text23.Text = ""
list1.Clear
End Sub
参考文献
1、陈龙飞、金其坤 工程测量,同济大学出版社,1990.8第1版,1991
年第2次印刷,65~66,104~114,127~140
2、李青岳、陈永奇,工程测量(修订版),测绘出版社 1995.5第二版
2002.9第10次印刷,46~47,162~188
3、高井祥、肖本林、付陪义、梁命、杨世清、梁洪有, 数字测图原理
与方法 中国矿业大学出版社 2001年4月第1版 2001年4月第1次印刷,116~118
4、刘瑞新、汪远征,Visual Basic 程序设计教程,机械工业出版社,2002.1
第1版,第8次印刷
5、刘瑞新、汪远征,Visual Basic 程序设计教程习题及习题解答,机械
工业出版社,2001.3第1版,第3次印刷
6、李正中,任秀,周润波等。现代线路工程测量。北京:教育科学出
版社,2000。
7、合肥工业大学。测量学。北京:中国建筑工业出版社,1985。
8、季斌德,邵自修编。工程测量。北京:测绘出版社,1995。
9、T.Appleby.Digital road mapping with GPS and GIS.GPS world (may)
(1991)33~37
10、I.Kostopoulos.Vehicle guidance system in highway Engineering,IGD Group informative edition (1),2000.
