公路复化辛普森公式主线、匝道通用坐标计算Excel VB宏程序(公共版V17.11)
- 格式:xls
- 大小:222.50 KB
- 文档页数:6
高速公路的一些线路坐标、高程计算公式(缓和曲线、竖曲线、圆曲线、匝道)一、缓和曲线上的点坐标计算已知:①缓和曲线上任一点离ZH点的长度:l②圆曲线的半径:R③缓和曲线的长度:l0④转向角系数:K(1或-1)⑤过ZH点的切线方位角:α⑥点ZH的坐标:xZ,yZ计算过程:说明:当曲线为左转向时,K=1,为右转向时,K=-1,公式中n的取值如下:当计算第二缓和曲线上的点坐标时,则:l为到点HZ的长度α为过点HZ的切线方位角再加上180°K值与计算第一缓和曲线时相反xZ,yZ为点HZ的坐标切线角计算公式:二、圆曲线上的点坐标计算已知:①圆曲线上任一点离ZH点的长度:l②圆曲线的半径:R③缓和曲线的长度:l0④转向角系数:K(1或-1)⑤过ZH点的切线方位角:α⑥点ZH的坐标:xZ,yZ计算过程:说明:当曲线为左转向时,K=1,为右转向时,K=-1,公式中n的取值如下:当只知道HZ点的坐标时,则:l为到点HZ的长度α为过点HZ的切线方位角再加上180°K值与知道ZH点坐标时相反xZ,yZ为点HZ的坐标三、曲线要素计算公式公式中各符号说明:l——任意点到起点的曲线长度(或缓曲上任意点到缓曲起点的长度)l1——第一缓和曲线长度l2——第二缓和曲线长度l0——对应的缓和曲线长度R——圆曲线半径R1——曲线起点处的半径R2——曲线终点处的半径P1——曲线起点处的曲率P2——曲线终点处的曲率α——曲线转角值四、竖曲线上高程计算已知:①第一坡度:i1(上坡为“+”,下坡为“-”)②第二坡度:i2(上坡为“+”,下坡为“-”)③变坡点桩号:SZ④变坡点高程:HZ⑤竖曲线的切线长度:T⑥待求点桩号:S计算过程:五、超高缓和过渡段的横坡计算已知:如图,第一横坡:i1第二横坡:i2过渡段长度:L待求处离第二横坡点(过渡段终点)的距离:x求:待求处的横坡:i解:d=x/Li=(i2-i1)(1-3d2+2d3)+i1六、匝道坐标计算已知:①待求点桩号:K②曲线起点桩号:K0③曲线终点桩号:K1④曲线起点坐标:x0,y0⑤曲线起点切线方位角:α0⑥曲线起点处曲率:P0(左转为“-”,右转为“+”)⑦曲线终点处曲率:P1(左转为“-”,右转为“+”)求:①线路匝道上点的坐标:x,y②待求点的切线方位角:αT计算过程:注:sgn(x)函数是取符号函数,当x<0时sgn(x)=-1,当x>0时sgn(x)=1,当x=0时sgn(x)=0。
EXCEL快速计算任何难度的道路中线、边线坐标主程序Public i As IntegerPublic pi As DoubleSub TP()Dim ii As IntegerDim k(1000) As DoubleDim xzq, yzq, kq, xzh, yzh, kzh, xjd, yjd, kjd, khy, kyh As Double'直线区域pi = 3.14159265358979xzq = 71862.642yzq = 63474.651kq = 0 '因为直线连接终点为ZH点,与圆曲线起点为同一点,所以在直线区域不定义ZH点参数'直线区域'曲线区域xzh = 71858.3267yzh = 63375.2684kzh = 99.4763xhz = 71909.3687yhz = 63283.8076 '曲线区域定义内容有:ZH(坐标、里程)、HZ(坐标、里程)、JD(坐标、里程)khz = 212.3392 'R(半径)、LS(缓和曲线长度)、HY(里程)、YH(里程)xjd = 71855.658yjd = 63313.806kjd = 160.9966ls = 30r = 75khy = 129.4763kyh = 182.3385'曲线区域i = 2 '从第二格开始读取数据所以定义I=2ii = 1 '桩号从第一个开始启用,所以定义II=2Dok(ii) = Workbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 1) '定义桩号等于读取数据If Workbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 1) = "" Then Exit Do '当没有数据读取时退出循环If k(ii) < kq Then '若计算点超过计算起点给予提示并退出程序MsgBox ("猪啊!!你的输入的桩号居然超过计算起点桩号")Exit SubElseIf k(ii) <= kzh Then '若计算点在ZH点前,则进入直线程序Call zx(xzq, yzq, kq, xzh, yzh, kzh, k(ii))ElseIf kzh < k(ii) And k(ii) <= khy Then '若计算点在ZH和HY之间则调入前段缓和曲线程序Call qhhqx(xzh, yzh, kzh, xhz, yhz, khz, xjd, yjd, kjd, ls, r, k(ii))ElseIf khy < k(ii) And k(ii) <= kyh Then '若计算点在HY和YH之间则调入圆曲线程序Call yqx(xzh, yzh, kzh, xhz, yhz, khz, xjd, yjd, kjd, ls, r, k(ii))ElseIf kyh < k(ii) And k(ii) <= khz Then '若计算点在YH和HZ之间则调入后段缓和曲线程序Call hhhqx(xzh, yzh, kzh, xhz, yhz, khz, xjd, yjd, kjd, ls, r, k(ii))ElseMsgBox ("笨啊!!数据已超出计算范围了") '若出现超出范围的桩号则给与提示并退出程序Exit SubEnd Ifi = i + 1ii = ii + 1LoopEnd Sub直线模块Sub zx(ByV al xzq As Double, ByV al yzq As Double, ByV al kq As Double, ByV al xzh As Double, ByV al yzh As Double, ByV al kzh As Double, ParamArray k())fw = fwj(xzh, xzq, yzh, yzq) '首先调入方位角程序计算直线方位角x = xzq + (k(ii) - kq) * Cos(fw) '然后根据桩号和长度计算出坐标值y = yzq + (k(ii) - kq) * Sin(fw)zdfm = dfm(fw) '将弧度形式的前进方位角转换度分秒形式'输出坐标值以弧度和度分秒形式的前进方位角Workbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 2) = xWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 3) = yWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 4) = fwWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 5) = zdfmEnd Sub圆曲线模块Sub yqx(ByV al xzh As Double, ByV al yzh As Double, ByV al kzh As Double, ByV al xhz As Double, ByV al yhz As Double, ByV al khz As Double, ByV al xjd As Double, ByV al yjd As Double, ByV al kjd As Double, ByV al ls As Double, ByV al r As Double, ParamArray k())l = Abs(k(ii) - kzh) '计算ZH点(因为以直缓点起算)到待求桩号的弧度长度ly = l - ls / 2 '计算圆弧长度p = ls ^ 2 / 24 / r - ls ^ 4 / 2688 / r ^ 3 '曲线内移值m = ls / 2 - ls ^ 3 / 240 / r ^ 2 '曲线切线长增量u = r * Sin(ly / r) + m '偏量坐标计算v = r * (1 - Cos(ly / r)) + p'调入方位角fwq = fwj(xjd, xzh, yjd, yzh) '计算ZH点方位角fwh = fwj(xhz, xjd, yhz, yjd) '计算HZ点方位角(此角作用是用来推算曲线是左偏还是右偏)'调入偏角判定nq = n(fwq, fwh) '计算偏角方向,左偏为-1右偏为1'计算坐标x = u * Cos(fwq) - nq * v * Sin(fwq) + xzhy = u * Sin(fwq) + nq * v * Cos(fwq) + yzhd = (90 * (2 * l - ls) / pi / r) * pi / 180 '计算圆曲线上的偏角(此句要点为角度必须转换为弧度即:pi/180)fw = fwq + d * nq '计算前进方位角zdfm = dfm(fw) '将弧度形式的前进方位角转换度分秒形式'输出坐标值以弧度和度分秒形式的前进方位角Workbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 2) = xWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 3) = yWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 4) = fwWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 5) = zdfmEnd Sub前缓和段Sub qhhqx(ByV al xzh As Double, ByV al yzh As Double, ByV al kzh As Double, ByV al xhz As Double, ByV al yhz As Double, ByV al khz As Double, ByV al xjd As Double, ByV al yjd As Double, ByV al kjd As Double, ByV al ls As Double, ByV al r As Double, ParamArray k())l = Abs(k(ii) - kzh) '计算测点到ZH点的距离u = l - l ^ 5 / 40 / r ^ 2 / ls ^ 2 + l ^ 9 / r ^ 4 / ls ^ 4 / 3456 '计算偏量v = l ^ 3 / 6 / r / ls - l ^ 7 / 336 / r ^ 3 / ls ^ 3'用公式二则以下两计算可省略(圆曲线和后缓和曲线也同理)Rem t = Atn(v / u)Rem s = Sqr(u ^ 2 + v ^ 2)'调入方位角计算fwq = fwj(xjd, xzh, yjd, yzh) '计算ZH点方位角fwh = fwj(xhz, xjd, yhz, yjd) '计算HZ点方位角(此角作用是用来推算曲线是左偏还是右偏)'调入偏角判定nq = n(fwq, fwh) '计算偏角方向,左偏为-1右偏为1'结果计算Rem x = xzh + s * Cos(fwq + nq * t)Rem y = yzh + s * Sin(fwq + nq * t)x = u * Cos(fwq) - nq * v * Sin(fwq) + xzh '经过测试,计算结果中的两种公式计算结果是一样的y = u * Sin(fwq) + nq * v * Cos(fwq) + yzhd = (90 * l * l / pi / r / ls) * pi / 180 '计算缓和曲线上的偏角(此句要点为角度必须转换为弧度即:pi/180)fw = fwq + d * nq '计算前进方位角zdfm = dfm(fw) '将弧度形式的前进方位角转换度分秒形式'输出坐标值以弧度和度分秒形式的前进方位角Workbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 2) = xWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 3) = yWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 4) = fwWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 5) = zdfmEnd Sub后缓和段模块Sub hhhqx(ByV al xzh As Double, ByV al yzh As Double, ByV al kzh As Double, ByV al xhz As Double, ByV al yhz As Double, ByV al khz As Double, ByV al xjd As Double, ByV al yjd As Double, ByV al kjd As Double, ByV al ls As Double, ByV al r As Double, ParamArray k())l = Abs(k(ii) - khz) '计算测点到HZ点的距离(后缓和曲线是以HZ点为起点)u = l - l ^ 5 / 40 / r ^ 2 / ls ^ 2 + l ^ 9 / r ^ 4 / ls ^ 4 / 3456 '计算偏量v = l ^ 3 / 6 / r / ls - l ^ 7 / 336 / r ^ 3 / ls ^ 3Rem t = Atn(v / u)Rem s = Sqr(u ^ 2 + v ^ 2)'调入方位角计算fwq = fwj(xjd, xzh, yjd, yzh) '计算ZH点方位角fwh = fwj(xhz, xjd, yhz, yjd) '计算HZ点方位角(此角作用是用来推算曲线是左偏还是右偏)'调入偏角判定nh = n(fwh, fwq) '计算偏角方向,左偏为-1右偏为1(注意:因为是从后HZ点起算,所以必须将HZ点方位角放在前ZH放在后)'结果计算Rem x = xzh + s * Cos(fwq + nq * t)Rem y = yzh + s * Sin(fwq + nq * t)x = xhz - (u * Cos(fwh) - nh * v * Sin(fwh)) '经过测试,计算结果中的两种公式计算结果是一样的y = yhz - (u * Sin(fwh) + nh * v * Cos(fwh))d = (90 * l * l / pi / r / ls) * pi / 180 '计算缓和曲线上的偏角(此句要点为角度必须转换为弧度即:pi/180)fw = fwh + d * nh '计算前进方位角zdfm = dfm(fw) '将弧度形式的前进方位角转换度分秒形式'输出坐标值以弧度和度分秒形式的前进方位角Workbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 2) = xWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 3) = yWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 4) = fwWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 5) = zdfmEnd Sub偏角模块Function n(ByV al fw1 As Double, ByV al fw2 As Double) As Doublepj = fw1 + pi - fw2 '前进的右角pjIf pj - pi > 0 Then '当右角pj-pi 〉0时为左偏否则为右偏n = -1Else: n = 1End IfEnd Function方位角模块Function fwj(ByV al x1 As Double, ByV al x2 As Double, ByV al y1 As Double, ByV al y2 As Double) As Double'计算增量x0 = x1 - x2y0 = y1 - y2'由增量判断方位角所在象限,不同象限取不同的值If x0 = 0 And y0 > 0 Thenfwj = pi / 2 '当在大地坐标中偏量在X轴上的值时ElseIf x0 = 0 And y0 < 0 Thenfwj = 3 * pi / 2 '当在大地坐标中偏量在负X轴上的值时ElseIf x0 < 0 Thenfwj = Atn(y0 / x0) + pi '当在大地坐标中偏量在第二第三象限上的值时ElseIf x0 > 0 And y0 < 0 Thenfwj = Atn(y0 / x0) + 2 * pi '当在大地坐标中偏量在第四象限上的值时Elsefwj = Atn(y0 / x0) '当在大地坐标中偏量在第一象限上的值时End IfEnd Function度分秒模块Function dfm(ByV al ao As Double) As V ariantao = ao * 180 / pi '将弧度转化为度jd = Int(ao) '计算度jf = Int(ao * 60 - jd * 60) '计算分jmx = (ao - jd - jf / 60) * 3600 '计算秒jm = Left(jmx, 8) '因为拆分出来的秒数经常占到十多位,所以只取秒数的前八位dfm = jd & "°" & jf & "′" & jm & "″" '连接度分秒End Function边桩公式(此公式在电子表格中直接输入):=B2+J2*COS(D2+RADIANS(L2)+PI()) =C2+J2*SIN(D2+RADIANS(L2)+PI()) =B2+K2*COS(D2+RADIANS(M2)) =C2+K2*SIN(D2+RADIANS(M2))=B3+J3*COS(D3+RADIANS(L3)+PI()) =C3+J3*SIN(D3+RADIANS(L3)+PI()) =B3+K3*COS(D3+RADIANS(M3)) =C3+K3*SIN(D3+RADIANS(M3))=B4+J4*COS(D4+RADIANS(L4)+PI()) =C4+J4*SIN(D4+RADIANS(L4)+PI()) =B4+K4*COS(D4+RADIANS(M4)) =C4+K4*SIN(D4+RADIANS(M4))=B5+J5*COS(D5+RADIANS(L5)+PI()) =C5+J5*SIN(D5+RADIANS(L5)+PI()) =B5+K5*COS(D5+RADIANS(M5)) =C5+K5*SIN(D5+RADIANS(M5))=B6+J6*COS(D6+RADIANS(L6)+PI()) =C6+J6*SIN(D6+RADIANS(L6)+PI()) =B6+K6*COS(D6+RADIANS(M6)) =C6+K6*SIN(D6+RADIANS(M6))=B7+J7*COS(D7+RADIANS(L7)+PI()) =C7+J7*SIN(D7+RADIANS(L7)+PI()) =B7+K7*COS(D7+RADIANS(M7)) =C7+K7*SIN(D7+RADIANS(M7))=B8+J8*COS(D8+RADIANS(L8)+PI()) =C8+J8*SIN(D8+RADIANS(L8)+PI()) =B8+K8*COS(D8+RADIANS(M8)) =C8+K8*SIN(D8+RADIANS(M8))=B9+J9*COS(D9+RADIANS(L9)+PI()) =C9+J9*SIN(D9+RADIANS(L9)+PI()) =B9+K9*COS(D9+RADIANS(M9)) =C9+K9*SIN(D9+RADIANS(M9))=B10+J10*COS(D10+RADIANS(L10)+PI()) =C10+J10*SIN(D10+RADIANS(L10)+PI()) =B10+K10*COS(D10+RADIANS(M10)) =C10+K10*SIN(D10+RADIANS(M10))=B11+J11*COS(D11+RADIANS(L11)+PI()) =C11+J11*SIN(D11+RADIANS(L11)+PI()) =B11+K11*COS(D11+RADIANS(M11)) =C11+K11*SIN(D11+RADIANS(M11))=B12+J12*COS(D12+RADIANS(L12)+PI()) =C12+J12*SIN(D12+RADIANS(L12)+PI()) =B12+K12*COS(D12+RADIANS(M12)) =C12+K12*SIN(D12+RADIANS(M12))=B13+J13*COS(D13+RADIANS(L13)+PI()) =C13+J13*SIN(D13+RADIANS(L13)+PI()) =B13+K13*COS(D13+RADIANS(M13)) =C13+K13*SIN(D13+RADIANS(M13))=B14+J14*COS(D14+RADIANS(L14)+PI()) =C14+J14*SIN(D14+RADIANS(L14)+PI()) =B14+K14*COS(D14+RADIANS(M14)) =C14+K14*SIN(D14+RADIANS(M14))=B15+J15*COS(D15+RADIANS(L15)+PI()) =C15+J15*SIN(D15+RADIANS(L15)+PI()) =B15+K15*COS(D15+RADIANS(M15)) =C15+K15*SIN(D15+RADIANS(M15))=B16+J16*COS(D16+RADIANS(L16)+PI()) =C16+J16*SIN(D16+RADIANS(L16)+PI()) =B16+K16*COS(D16+RADIANS(M16)) =C16+K16*SIN(D16+RADIANS(M16))=B17+J17*COS(D17+RADIANS(L17)+PI()) =C17+J17*SIN(D17+RADIANS(L17)+PI()) =B17+K17*COS(D17+RADIANS(M17)) =C17+K17*SIN(D17+RADIANS(M17))=B18+J18*COS(D18+RADIANS(L18)+PI()) =C18+J18*SIN(D18+RADIANS(L18)+PI()) =B18+K18*COS(D18+RADIANS(M18)) =C18+K18*SIN(D18+RADIANS(M18))=B19+J19*COS(D19+RADIANS(L19)+PI()) =C19+J19*SIN(D19+RADIANS(L19)+PI()) =B19+K19*COS(D19+RADIANS(M19)) =C19+K19*SIN(D19+RADIANS(M19))=B20+J20*COS(D20+RADIANS(L20)+PI()) =C20+J20*SIN(D20+RADIANS(L20)+PI()) =B20+K20*COS(D20+RADIANS(M20)) =C20+K20*SIN(D20+RADIANS(M20))=B21+J21*COS(D21+RADIANS(L21)+PI()) =C21+J21*SIN(D21+RADIANS(L21)+PI()) =B21+K21*COS(D21+RADIANS(M21)) =C21+K21*SIN(D21+RADIANS(M21))=B22+J22*COS(D22+RADIANS(L22)+PI()) =C22+J22*SIN(D22+RADIANS(L22)+PI()) =B22+K22*COS(D22+RADIANS(M22)) =C22+K22*SIN(D22+RADIANS(M22))=B23+J23*COS(D23+RADIANS(L23)+PI()) =C23+J23*SIN(D23+RADIANS(L23)+PI()) =B23+K23*COS(D23+RADIANS(M23)) =C23+K23*SIN(D23+RADIANS(M23))呵呵,这个就是传说已久的EXCEL自动计算曲线坐标.给大家研究研究.欢迎在此基础上开发增加新模块。
关于复化辛普森(simpson)公式在线路坐标计算中的应用天津西站项目部刘思传摘要:本文里利用辛普森公式导证了线路坐标计算的公式,并在卡西欧FX-4800P计算器中编写了中边线坐标计算的源程序。
关键词:复化辛普森公式,线路坐标计算,曲率。
一.引言随着我国道路建设等级和质量水平的飞速发展,公路、铁路建设的机械化和日产量日益提高,促使施工中在满足设计精度的前提下,尽可能快速、准确地进行测量放样和检查工作,本文线路曲率变化的特点,利用复化辛普森公式导证了线路坐标计算的通用公式,并利用卡西欧FX-4800P计算器编写了计算线路中边线坐标的源程序。
二.复化辛普森公式数学模型把积分区间分成偶数等分,记,其中是节点总数,是积分子区间的总数。
记,,在每个区间上用辛普森数值积分公式计算,则得到复化辛普森公式,记为。
复化辛普森积分计算公式而,称(1)式(1)即为辛普森复化公式。
三.线路坐标计算2. 回旋曲线上点位坐标方位角的计算如图1,设回旋曲线起点A 的曲率为A ρ,其里程为DK A ;回旋曲线终点B 的曲率为B ρ,其里程为DK B ,Ax ’'y 为以A 为坐标原点,以A 点切线为'x 轴的局部坐标系;Axy 为线路坐标系。
由此回旋曲线上各点曲率半径为R i 和该点离曲线起点的距离ﺎi 成反比,故此任意点的曲率为 c l R i i i /1==ρ(=为常数). (2)y'YB图1由式(2)可知,回旋曲线任意点的曲率按线性变化,由此回旋曲线上里程为DK i 点的曲率为)(A i A B AB A i DK DK DK DK ---+=ρρρρ (3) 当曲线右偏时,取正;当曲线左偏时取负。
在图1中有⎪⎪⎭⎪⎪⎬⎫===⎰I A DK DK i i i dl dl dl R d ρβρβ1 (4)将式(3)代入式(4)得πρρβ180*)(2A i Ai i DK DK -+= (5)若已知回旋曲线起点A 在线路坐标系下切线坐标方位角αA ,则里程为Dk i 点切线坐标方位角为i A i βαα+= π180 (6)将式(5)代入式(6)得*)(2A i Ai A i DK DK -++=ρραα π180(7)对于式(7),当,时,,则a i =a A ,式(7)变成计算直线段上任意点切线坐标方位角计算公式;当,时,,,则式(7)代表圆曲线上任意点切线坐标方位角计算公式。
Excel VBA在公路路线坐标计算中的应用摘要:通过分析公路路线坐标计算原理,创建Excel VBA的对象模型,可通俗易懂,方便准确地完成公路路线坐标计算,值得推广应用,文中以作者编写的“Excel公路坐标计算程序”为算例,说明介绍。
关键词:坐标计算,Excel VBA,坐标转换,数据读取传输引言作为公路测量工作者,公路路线坐标计算是一件最基础和最重要的工作之一。
虽然目前有部分公路坐标计算软件,但往往价格不低,而且通常操作复杂。
Microsoft 的常用办公软件Excel提供的VBA程序,功能强大,且与Excel工作表实现无缝接合,只要灵活应用,即可方便、快捷地解决测量中大量的、机械的数据处理过程。
文中介绍道路曲线坐标计算三种基本形式—直线、圆曲线、缓和曲线的中边桩计算公式,分析利用Excel表格及其VBA程序计算公路坐标的一般方法和关键节点,同时以两个不同类型的路线为实例具体说明计算过程和精度分析。
1 公路路线坐标计算基本原理1.1 中线坐标计算一般公路的路线坐标计算普遍采用三种线型:直线、圆曲线和缓和曲线。
其相应的中线坐标计算公式如下:1)直线(见图1)x=x0+S0×cos(a0)y=y0+S0×sin(a0)2)圆曲线(见图2)x=x0+S0×cos(a0+β)y=y0+S0×sin(a0+β)其中β为偏角,S0为弦长,其值为:β=90×L0/(R×π)S0=2×R×sin(β)切线方位角:a= a0+2×β3) 缓和曲线(见图3)Xi’=L-L5/(40A2)+L9/(3456A8)-L13/(599040A12)+……Yi’=L3/(6A2)-L7/(336A6)+L11/(42240A10)-……L=|Li-L0| A=上述直线段和圆曲线段可直接计算出中桩坐标,但缓和曲线由于采用切线正支距法,是以直缓或缓直为原点的直角坐标系,还必须用坐标平移和旋转计算出该点在大地平面直角坐标系XOY中的坐标(x,y),公式为:x= x0+ Xi’cos(a0)- Yi’sin(a0)y= y0+ Yi’sin(a0)+ Yi’cos(a0)其转换后的切线方位角为:a=a0+180±L2/(3A2)1.2边桩坐标计算边桩坐标计算利用计算出来的中线坐标及其切线方位角,按az=a-90……左边桩方位角ay=a+90……左边桩方位角以及边桩至中桩距离Sb,推算边桩坐标:Xz(y)=x中+Sb×cos(az(y))Yz(y)=y中+Sb×sin(a z(y))2Excel VBA与Excel工作表的关联Office Excel工作簿中包含若干工作表,各工作表之间既相互独立,又相互关联,同时各工作表与Excel VBA又相互关联,因此只要在工作表上输入路线要素及计算桩号,通过VBA编程,就可通过VBA宏坐标计算将计算结果导入工作表。
公路通用复化辛普森公式匝道点位坐标计算4800源程序------------------杭浦高速临平互通---------------------本文利用的是计算公路匝道点位坐标的复化辛普森通用公式数学模型,集直线、圆曲线、回旋线通用,占字符内存较小,计算精度不限的程序一、运行变量名称说明:V=1、2分别进入坐标计算、桩号反算K1、K2-------曲线起点、终点里程F0-----------曲线起点方位角R1、R2------曲线起点、终点半径(ρ左-右+,0为直线)X0、Y0-------曲线起点、终点坐标M------------求和累积次数n的2倍(偶数),精度迭代次数K------------曲线待求点里程BP-----------求点左右偏距(左-右+)ANG-------- -求点的右斜交角X、Y---------曲线求得坐标FW-----------待求点的即时切线方位角XF、YF-------为需求桩号的点坐标DL、K+O、LP分别为桩号误差、求得桩号、左右偏距(左-右+)当曲线的设计半径较小时,为保证点位计算精度,M(即程序中n的2倍)的取值可适当的大些。
M为偶数,直线时M=2即可,经计算M=16即可满足半径为60的小半径曲线精度。
二、曲线计算程序名: Prog "CURVE"Defm 4V"V=1 2"Lbl 0:{KLW}Lbl 4Q"OPT:M0AB1C2D3E4FH5G6I7J8CR9"=0=>Prog "M"△Q=1=>Prog "AB"△Q=2=>Prog "C"△Q=3=>Prog "D"△Q=4=>Prog "E"△Q=5=>Prog "FH"△Q=6=>Prog "G"△Q=7=>Prog "I"△Q=8=>Prog "J"△Q=9=>Prog "CR"△A"K1"B"K2"C"F0"D"R1"E"R2"F"X0"G"Y0"D≠0=>I=1/D:≠=>I=D△E≠0=>J=1/E:≠=>J=E△AbsD+AbsE=0=>M=2:≠=>M=16△V=2=>L=0:W=90△KL"BP"W"ANG"N=0:Z[1]=0:Z[2]=0:Z[3]=0:Z[4]=0 进入坐标迭代计算Lbl2N=N+1:H=2(K-A)/M:R=NH/2+A:R=C+180/π*(I+(J-I)/2(B-A)*(R-A))*(R-A)Int(N/2)=N/2=>Z[1]=Z[1]+cosR:Z[2]=Z[2]+sinR:≠=>Z[3]=Z[3]+cosR:Z[4]=Z[4]+ sinR△N=M=>Goto3:≠=>Goto 2Lbl3X=F+H/6*(cosC+4Z[3]+2Z[1]-cosR)+Lcos(R+W)Y=G+H/6*(sinC+4Z[4]+2Z[2]-sinR)+Lsin(R+W)V=2=>Goto 6△X"X="◢Y"Y="◢R"FW"=R-360Intg(R/360◢Goto 0Lbl 6 进入桩号求算Pol(T"XF"-X,U"YF"-YO=Icos(J-RAbsO≤1e-4=>O"DL"◢K=K+O◢O"LP"=Isin(J-R◢{TU}Goto 6:≠=>K=K+O:L=0:Goto 4三、数据文件:线元要素数据文件每行为一个线元段,逐句执行赋值,直至不满足、运行完成。
教你如何通过ExcelVBA编写测量坐标计算程序(入门篇)摘要:认识VBA、理解VBA,并利用Office Excel VBA编写测量坐标计算程序。
关键词:Excel VBA 程序坐标编写了解:VBA是什么?简单的说就是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案。
可以用E xcel的宏语言来使E xcel自动化运行等……Microsoft让它开发出来的应用程序共享一种通用的自动化语言——Visual Basic For Application(VBA),可以认为VBA是非常流行的应用程序开发语言Visual Basic的子集,事实上VBA是VB应用程序的版本,尽管存在有些不同VBA和VB在结构上仍然十分相似。
如果你已经了解VB会发现学习VBA非常快。
相应的学完VBA会给学习VB打下坚实的基础。
理由:选择Excel VBA编程的理由是因为它的计算功能非常强大,是现今任何编程计算器无法逾越的。
它运用范围广,计算速度快,计算精度高,合理化显示等。
或许很多测量人员对Excel VBA还有些陌生,主要是大家寄托于计算器、电脑、手机PDA等系列软件使用。
Excel VBA对于大多数测量人员而没有系统学过计算机语言程序设计的人群来讲有一定含糊,不过只要有基本数学知识、测量常识和逻辑理解的人,都能通过Excel VBA编写设计出称心如意的测量程序。
目标:基于Excel VBA的测量坐标计算程序的设计目标是将繁琐计算过程转入到计算机中,利用程序语言的重复性原理,在计算机中可将坐标计算得出更精确的结果,使坐标计算更加可靠。
最终目标是让用户可以通过Excel VBA自行完成坐标计算程序设计。
认识:学习VBA到底需要什么基础和了解些什么?学习VBA需要认识英文字母、一般的单词(如:函数所用的过程)、数学基础知识、测量常识、逻辑性思维即可。
在VBA中需要了解VBA的过程、变量、属性、方法、事件、语句等。
匝道中线任意点坐标的计算器解算
匝道中线任意点坐标的计算器解算
笔者依据匝道线型的曲率变化特点,推导出匝道中线任意点位坐标计算的通用数学模型.该模型无需坐标转换,便能沿线路里程增大方向计算所需里程中桩点的大地测量坐标系下坐标.同时,引入Simpson公式计算积分,确保了点位坐标计算的精度;并结合匝道工程中桩坐标计算实例,验证了可编程计算器中Simpson积分公式计算点位坐标的精度优于0.01 mm,从而为线路实现坐标放样奠定坚实的基础.
作者:朱福 ZHU Fu 作者单位:吉林建筑工程学院交通科学与工程学院,长春,130021 刊名:吉林建筑工程学院学报英文刊名:JOURNAL OF JILIN INSTITUTE OF ARCHITECTURAL & CIVIL ENGINEERING 年,卷(期):2009 26(3) 分类号:U212.24 关键词:任意点匝道中线 Simpson积分大地坐标。
浅谈Excel-VBA在公路线路坐标计算中的应用
王慧勇;袁彬
【期刊名称】《山西建筑》
【年(卷),期】2008(034)008
【摘要】指出复化辛卜生公式是一个计算公路线路坐标的万能公式,针对该公式的计算涉及到大量的数据计算,工作量很大的问题,利用Excel的二次开发功能编制程序来计算进行了深入探讨,以减轻相关人员的工作量,提高工作效率.
【总页数】2页(P362-363)
【作者】王慧勇;袁彬
【作者单位】重庆奉云高速公路B18标项目部,广东广州 510800;重庆奉云高速公路B18标项目部,广东广州 510800
【正文语种】中文
【中图分类】TP391
【相关文献】
1.浅谈EXCEL-VBA在水利水电工程投标中材料单位耗量分析中的应用 [J], 毛波
2.浅谈计算器在道路坐标计算中的应用 [J], 李昌恒
3.浅谈计算器在道路坐标计算中的应用 [J], 李昌恒
4.Excel在公路线路坐标计算中的应用 [J], 刘成银
5.浅谈GPS在公路线路控制测量中的应用 [J], 肖琦
因版权原因,仅展示原文概要,查看原文内容请购买。
一、名称:立交匝道中桩坐标计算EXCEL程序二、运行平台:计算机中,安装有EXCEL2003/2007软件三、程序功能:1.输入较少的匝道参数即可计算匝道全部主点参数,且易于同设计文件比照校对;2.能批量生成指定间距的中桩,避免手工输入的麻烦;3.瞬间计算完成指定桩号的中桩坐标和切线方位角,计算结果便于进一步制作报表输出;4.可生成匝道线型绘制数据,简单操作即可在AUTOCAD中生成匝道线型。
四、使用步骤:1.工程实例介绍一个立交匝道实例,并以此为例介绍程序使用步骤。
实例还是来源于《CASIO fx-5800P计算与道路坐标放样计算》中的立交匝道(见教材第6章,139页)匝道整体图:把其中的A匝道提取出来:A匝道相关的参数表也提取出来:.2.打开EXCEL计算程序,输入A匝道的相关参数图中浅绿色部分是输入的原始数据部分。
这里原始数据的输入是难点和关键,一定要准确验证,否则后面的工作全是无用功。
这里就数据输入作详细解读如下:(1)第一行,“匝道”后面的单元格可输入匝道编号,这个不参与计算,仅作提示,使界面清晰明了。
(2)数据第一列,是节点栏,“节点”是我起的名字,含义是两种不同线元交界的点,如ZH、ZY、HZ、GQ、YZ等特征点都是节点,匝道的起、终点也是节点,注意QZ不是节点。
这一栏就填节点的名称,注意不要漏了。
(3)节点桩号栏。
这个在设计文件上可以找到,需要强调的是输入时按数字输入,如输入153.194,回车后会自动显示为K0+153.194格式,千万不可按桩号格式K**+***的格式输入,否则会出错。
(4)半径1、半径2两栏。
节点除匝道起、终点外,都是对前后两个线元起承接作用的点,一般情况下,其曲率半径是连续的,但也有例外,如ZY点,节点前承直线终点,半径无穷大,后接圆曲线,半径为R。
因此,在节点处曲率半径连续的情况下,就在半径1中填写半径值,半径2中空着就行(当然填一个与半径1一样的值也没事),而当节点出曲率半径不连续的情况下,就分别在半径1和半径2中相应填写两个不同的半径值。
计算公路匝道点位坐标的复化辛普森公式李孟山李少元摘要:本文结合公路匝道线形曲率变化的特点,利用复化辛普森公式导证了计算公路匝道坐标的通用公式。
关键词:复化辛普森公式;公路匝道;坐标计算分类号:P21 文献标识码:B文章编号:0494-0911(2000)01-0035-01A Compound Simpson Formula for Calculating Coordinates of RingRoad Point on HighwayLI Meng-shan, LI Shao-yua n▲一、引言匝道是组成高等级公路立交的基本单元,其形式千变万化,就线型而言,也是由直线段、回旋曲线段、圆曲线段组成。
但是,组成立交的匝道涉及多个基本曲线,设计半径也较小,这就为坐标计算带来了困难,本文依据公路匝道线形的曲率变化特点,利用复化辛普森公式导证了计算公路匝道点位坐标的通用公式。
二、公路匝道点位坐标计算1. 公路匝道中线形式公路匝道中线是由直线―回旋曲线―圆曲线(R1)―回旋曲线―圆曲线(R2)―回旋曲线―直线的顺序组成的,其中R1≠R2。
2. 回旋曲线上点位坐标方位角的计算如图1,设回旋曲线起点A的曲率为ρA ,其里程为DKA;回旋曲线终点B的曲率为ρB ,其里程为DKB.Ax′y′为以A为坐标原点,以A点切线为x′轴的局部坐标系;AXY为线路坐标系。
图1 局部坐标系与线路坐标系由于回旋曲线上各点曲率半径Ri 和该点离曲线起点的距离li成反比,故此任意点的曲率为ρi =1/Ri=li/c(c为常数) (1)由式(1)可知,回旋曲线任意点的曲率按线性变化,由此回旋曲线上里程为DKi点的曲率为(2)当曲线右偏时,ρA ,ρB取正;当曲线左偏时,ρA,ρB取负。
在图1中有(3)将式(2)代入式(3)得(4)若已知回旋曲线起点A在线路坐标系下切线坐标方位角αA ,则里程为DKi点切线坐标方位角为αi =αA+βi(5)将式(4)代入式(5)得(6)对于式(6),当ρA =0,ρB=0时,ρi=0,则αi=αA,式(6)变成计算直线段上任意点切线坐标方位角计算公式;当ρA =1/R,ρB=1/R时,ρi=1/R,则\2,式(6)代表圆曲线上任意点切线坐标方位角计算公式。
公路通用复化辛普森公式主线、匝道坐标计算Excel VB宏程序(公共版17.11)
公路通用复化辛普森公式匝道坐标计算使用说明
1、度分秒设置单元格为自定义格式[h]"°"mm"′"ss.00"″"
度分秒输入格式以英文冒号“:”隔开,
例如108°35′06.8″可输入108:35:06.8
例如356°08′00″可输入356:08或356:08:00
例如75°00′00″可输入75:或75:00或75:00:00
2、程序可以用于各级公路主线或匝道。
R1、R2分别为起点半径、终点半径,取值符号左-右+,直线取0。
R1=R2=0,代表直线段
R1=R2≠0,代表圆曲线
R1、R2仅其中一个为0,代表一般缓和曲线
R1≠R2,且均不为0,代表任意回旋曲线
若R1、R2符号相反,将形成S形线
3、到中桩的距离取值符号为左-右+
4、本程序计算中能自动识别在“断链表”中的断链。
程序中断链的概念:断链A=B,表示A在路线起始方向,B在路线终末点方向。
程序询问K桩号是否位于断链A=B的大桩号方向?
“Y”的意思表示:断链A=B点处向路线最末终点前进出现的K桩号。
“N”的意思表示:断链A=B点处向路线最初起点后退出现的K桩号。
因为若A>B,路线中A、B桩号将出现二次。
因此会询问。
若A<B,路线中A、B桩号是唯一的,因此不会询问。
5、程序中有“坐标通用程序”菜单,在EXCEL2003版直接可见,EXCEL2007版在加载项的下一级菜单里。
程序中有按钮,按钮与相应菜单作用相同。
按钮可移动。
下一级菜单里。