(河南省交通科研所) (河南省交通学校) (河南省交通工程局)
提要 本文介绍用计算机计算平曲线及相邻直线段上任一点的横净距的方法。 关键词 平曲线 横净距 计算机 计算
Calculating about the Cross Clearance Distance of Horizontal Curve Stadia
Jiang Lingling
(Henan Communications Research Institute) Abstract Calculating method of horizontal curve and cross clearance distance with computer is presented.
Key words Horizontal curve Cross clearance distance Computer
1 前言
用计算机计算圆曲线及相邻直线段上任一点的横净距的方法,我们曾在本刊1997年第4期发表的《圆曲线视距横净距的计算》一文中介绍过。近期我们又成功地解决了带缓和曲线的平曲线的横净距计算。现介绍如下,供参考。 2 横净距的计算方法 2.1 计算原理
如图1所示,某交点转角为α,平曲线半径为R1,缓和曲线长为Ls1(我们将圆曲线作为Ls1=0的特例处理)。若行车道宽度为b,则计算横净距时的行车轨迹线(距未加宽时的行车道内侧边缘1.5m,图中虚曲线所示)与路中线的径向间距△R=b/2-1.5。M为平曲线和相邻直线段上的任一点,M所在断面的横净距可按下法计算:在M点的法线MN两侧的行车轨迹线上分别找一点A、B,使A、B两点间沿行车轨迹线的长度等于设计视距S,计算AB连线与MN的交点E到M点的距离值H;保护A、B两点间沿行车轨迹线的长度不变,使A、B两点沿行车轨迹线同步移动时,H值也随之改变,最大的H值与△R之差即为M点的横净距。 2.2 行车轨迹线参数的确定
对于半径为R1、缓和曲线长度为LS1的平曲线,行车轨迹线上对应的曲线半径R2=R1-△R,对应的缓和曲线长度LS2应是多少呢?
我们分别用p、q、E、T表示圆曲线设置缓和曲线后的内移值、切垂距、外距、切线长,并分别用下标1、2对路中线、行车轨迹线上有关的量进行的区分。如图2
所示,因路中线与行车轨迹线的径向间距为△R,则应有:
图二
将有关各量代入并整理后可得:
在R1 R2 LS1是定值的情况下,使△p、△q同时等于零是不可能的(LS1=0时除外)。也就是说,无论LS2取何值,由R2 LS2确定的轨迹线(下文中称之为计算行车轨迹线)与理论行车轨迹线(距未加宽时的行车道内侧边缘1.5m)不可能完全重合,两轨迹线间的偏离程度可表示为:
将有关各量代入并整理后可得:
上式中,△E表示计算行车轨迹线与理论行车轨迹线的曲线中点间的距离,△T表示两轨迹线上的曲线起(终)点沿切线方向的距离。
既然计算行车轨迹线与理论行车轨迹线不能完全重合,那么我们能否选取适当的LS2值,使两轨迹线尽量接近,从而满足横净距计算的精度要求呢?由(1)、(2)式可以看出,△p对两轨迹线间偏离程度的影响远比△q的影响大,如果我们通过LS2的取值使△p等于零,即用牛顿迭代法按下式解算LS2
此外,两迹线的偏离程度可表示为: △E=0 △T=△q
两轨迹线在圆曲线段重合,下面我们来看看两轨迹线在缓和曲线段的偏离情况。
如图3所示,A为路中线上缓和曲线段内的任一点,距缓和曲线起点ZH1的长度为L1,在xoy坐标系中的坐标为(XA,YA),A点的法线AF与x轴的夹角为:
沿法线AF由A点向曲线内侧移动△R得B点,则B点的坐标为:
由路中线与理论行车轨迹线的关系知:B点在理论行车轨迹线上。
令C点为计算行车轨迹线上缓和曲线段内一点,距缓和曲线段起点ZH2的长度为L2,在x'o'y'坐标系中的坐标为(x'c,y'c),经坐标轴平移后可得C点在xoy坐标系中的坐标:
若Xc=Xb,则(Yc-Yb)cos(γ-π/2)即可视为该位置处计算行车轨迹线与理论行车轨迹线间的径向偏离值。
按上述方法,我们用计算机对《公路曲线测设用表》(第二册)中“缓和曲线长度总表”列出的R1、Ls1的所有组合进行了有关计算。计算结果表明:计算行车轨迹线与理论行车轨迹线在缓和曲线段的径向偏离值有以下特点:
1)两轨迹线在缓和曲线段中部的偏离值最大,向两端逐渐趋于零; 2)Ls1值不变时,R1值愈小,两轨迹线在缓和曲线段的偏离值就愈大; 3)R1值不变时,Ls1愈大,两轨迹线在缓和曲线段的偏离值就愈大;
4)表列各种组合中,两轨迹线在缓和曲线段的最大偏离值一般均小于0.01m,最大偏离值超过0.01m的组合只有以下4个:
①R1=65、Ls1=60、b=7.5时,最 大 偏 离 值 为 0.015m; ②R1=60、Ls1=60、b=7.5时,最 大 偏 离 值 为 0.018m; ③R1=35、 Ls1=35、 b=6时, 最 大 偏 离 值 为 0.012m; ④R1=30、 Ls1=35、 b=6时, 最 大 偏 离 值 为 0.016m。
通过对两轨迹线间偏离值的计算可知:由R2=R1-△R和按(3)式解算的Ls2确定的计算行车轨迹线与理论行车轨迹线非常接近(Ls1=0时两轨迹线重合),若用计算行车轨迹线代替理论行车轨迹线来计算横净距,最大误差不会超过0.02m,完全能够满足横净距计算的精度要求。 2.3 横净距的计算
为方便计算,我们也用桩号表示行车轨迹线上各点间的相对位置关系,并假定行车轨迹线上曲线起点ZH2(ZY2)与路中线上曲线起点ZH1(ZY1)的桩号相同(两线上的桩号是相互独立的)。这样对于任一给定的桩号,能且只能在行车轨迹线上找到一点与之对应。
如图1,欲求横净距的断面M的桩号为L0,我们不妨先假设行车轨迹线上视距起终点A、B的桩号分别为L0-S/2、L0+S/2(在应用范围内,A、B不会落在法线MN的同一则),
此时沿行车轨迹线A、B间的长度等于设计视距S,计算AB与MN的交点到M点的距离值H;然后将A、B两点沿行车轨迹线向前移动0.01m,即A、B点的桩号同时增大0.01m,再计算MN与新直线AB的交点到M点的距离值H。根据两次计算的距离值H的大小,使A、B向距离值H增大的方向同步等量逐渐移动(以保证沿行车轨迹线A、B间的长度恒等于设计视距S)直到距离值H开始减小为止,此时的距离值H与△R之差即为M点的横净距。
按上述方法,我们编写了计算横净距的程序。 3 实例
某山岭区三级公路,行车道宽6m,设计视距(二倍停车视距)S=60m;JD5转角α=76°32′,曲线半径100m,缓和曲线长Ls=25m,曲线起点桩号为k2+838.68,计算各有关断面的横净距。
程序运行时的操作及计算结果如下(带下画线者为输入的数据): 曲线起点桩号?838.68
转角:?76°?32′?0〃 平曲线半径?100
缓和曲线长?25 行车道宽度?6 设计视距?60 曲线主点桩号: ZH= 838.68 HY= 863.68 QZ= 917.97 YH= 972.26 HZ= 997.26
断面桩号(<0结束)? 800 横净距:0.00 断面桩号(<0结束)?820 横净距:0.34
断面桩号(<0结束)?838.68 横净距:1.41 断面桩号(<0结束)?840 横净距:1.53 断面桩号(<0结束)?860 横净距:3.52
断面桩号(<0结束)?863.68 横净距:3.80 断面桩号(<0结束)?880 横净距:4.45 断面桩号(<0结束)?900 横净距:4.53
断面桩号(<0结束)?917.97 横净距:4.53 断面桩号(<0结束)?920 横净距:4.53 断面桩号(<0结束)?940 横净距:4.53 断面桩号(<0结束)?960 横净距:4.37 断面桩号(<0结束)?980 横净距:3.14
断面桩号(<0结束)?997.26 横净距:1.41 断面桩号(<0结束)?1 000 横净距:1.19 断面桩号(<0结束)?1 020 横净距:0.23 断面桩号(<0结束)?1 040 横净距:0.00 断面桩号(<0结束)?-1 OK
4 源程序
10 CLEAR:DEFDBL A-H, K-Z:PI=3.141592653589793# 20 CLS:LOCATE 11,1:INPUT 〃 曲线起点桩号:〃;ZH1 30 PRINT〃转角:
40 LOCATE 12,6:INPUT ZJ1:LOCATE 12,14:INPUT ZJ2:LOCATE 12,22:INPUT ZJ3
50 INPUT〃平曲线半径=〃;R1:INPUT〃缓和曲线长=〃;LS1 60 INPUT〃平曲线半径=〃;LMK:INPUT〃设计视距=〃;S
70 ZJ=(ZJ1+ZJ2/60+ZJ3/3 600)*PI/180:DR=LMK/2-1.5:R2=R1-DR 80 IF LS1>0 THEN GOSUB 640:REM 计算LS2
90 R=R1:LS=LS1:GOSUB 710:LY1=LY:P1=P:Q1=Q:T1=T 100 R=R2:LS=LS2:GOSUB 710:LY2=LY:P2=P:Q2=Q:T2=T 110 DT=Q1-Q2:ZH2=ZH1:SS=S/2/R2*R1
120 HY1=ZH1+LS1:YH1=HY1+LY1:HZ1=YH1+LS1:QZ1=(ZH1+HZ1)/2 130 HY2=ZH2+LS2:YH1=HY2+LY2:HZ2=YH2+LS2:QZ2=(ZH2+HZ2)/2 140 PRINT 〃 曲线主点桩号:〃:A $=〃######.##〃:IF LS1=0 THEN 180
150 PRINT〃ZH=〃;USING A $;ZH1:PRINT〃 HY=〃;USING A $;HY1 160 PRINT〃QZ=〃;USING A $;QZ1:PRINT〃 YH=〃;USING A $;YH1 170 PRINT〃HZ=〃;USING A $;HZ1:GOTO 200
180 PRINT〃ZY=〃;USING A $;ZH1:PRINT〃 QZ=〃;USING A $;QZ1 190 PRINT〃YZ=〃;UXING A $;HZ1
200 INPUT〃断面桩号(<0结束)〃;L0:IF L0<0 THEN 450 210 IF L0<=ZH1-S OR L0>=HZ1+S THEN H=0:GOTO 440
220 IF L0>QZ1 THEN L0=ZH1+(HZ1-L0):REM若欲求横净距断面在曲线后半部,则计算曲线前半部对称位置的横净距
230 IF L0-SS>=HY1 AND L0+SS<=YH1 THEN H=R2*(1-COS(S/2/R2)):GOTO 440 240 R=R1:LS=LS1:P=P1:Q=Q1:X0=T1+T1*COS(ZJ):Y0=T1*SIN(ZJ):IF ABS(ZJ-PI)<1E-10 THEN X0=0 Y0=2*(R1+P1)
250 IF L0<=ZH1 THEN A0=PI/2:X=L0-ZH1:Y=0:GOTO 300
260 IF L0>=HZ1 THEN A0=ZJ+PI/2:X=HZ1-L0:Y=0:GOSUB 620:GOTO 300 270 IF L0>YH1 THEN L=HZ1-L0:A0=ZJ+PI/2-L^ 2/2/R1/LS1:GOSUB 600:GOSUB 620:GOTO 300
280 IF L0>=HY1 THEN L=L0-HY1+LS1/2:A0=L/R1+PI/2:GOSUB 590:X=X+Q:Y=Y+P:GOTO 300
290 L=L0-ZH1:A0=L^ 2/2/R1/LS1+PI/2:GOSUB 600 300 XM=X-DT:YM=Y-DR
310 IF A0=PI/2 THEN A1=1:B1=0:C1=-XM ELSE K=TAN(A0):A1=K:B1=-1:C1=YM-K*XM 320 R=R2:LS=LS2:P=P2:Q=Q2:X0=T2+T2*COS(ZJ):Y0=T2*SIN(ZJ):IF ABS(ZJ-PI)<1E-10 THEN X0=0:Y0=2*(R2+P2) 330 A=L0-S/2:B=L0+S/2:GOSUB 460:H1=H:A=A+.01:B=B+.01:GOSUB 460:A=A-.01:B=B-.01
340 REM 分别以10m、1m、0.1m、0.01m的步距使A、B两点向H值增大的方向移动,以减少计算次数
350 D=100:IF H<H1 THEN F=-1 ELSE F=1 360 IF H=H1 AND B<=ZH2 THEN F=1 370 IF H=H1 AND A>HZ2 THEN F=-1 380 FOR I=1 TO 3:D=D/10:D1=D*F
390 FOR J=1 TO 100:A=A+D1:B=B+D1:GOSUB 460 400 IF H<=H1 THEN A=A-D1:B=B-D1:GOTO 420 410 H1=H:NEXT J 420 NEXT I 430 H=H1-DR 440 U=CSRLIN:LOCATE U-1,48:PRINT〃横净距:〃;USING〃###.##〃;H:GOTO 200450 END
460 REM计算视线AB与法线MN的交点E至M点的距离H值 470 G=A:GOSUB 520:XA=X:YA=Y 480 G=B:BOSUB 520:XB=X:YB=Y
490 A2=YB-YA:B2=XA-XB:C2=(XB-XA)*YA-(YB-YA)*XA
500 AB=A1*B2-A2*A2*B2:XE=(B1*C2-B2*C1)/AB:YE=-(A1*C2-A2*C1)/AB 510 H=SQR((XE-XM)^ 2+(YE-YM)^ 2):RETURN 520 REM计算行车轨迹线已知桩号的任一点的坐标 530 IF G<=ZH2 THEN X=G-ZH2:Y=0:RETURN
540 IF G>=HZ2 THEN X=HZ2-G:Y=0:GOSUB 620:RETURN 550 IF LS2=0 THEN L=G-ZH2:GOSUB 590:RETURN
560 IF G>YH2 THEN L=HZ2-G:GOSUB 600:GOSUB 620:RETURN
570 IF G>HY2 THEN L=G-HY2+LS2/2:GOSUB 590:X=X+Q:Y=Y+P:RETURN 580 L=G-ZH2:GOSUB 600:RETURN
590 X=R*SIN(L/R):Y=R*(1-COS(L/R)):RETURN
600 C=R*LS:X=L-L^ 5/40/C^ 2+L^ 9/3 456/C^ 4
610 Y=L^ 3/6/C-L^ 7/336/C^ 3+L^ 11/42 240! /C^ 5:RETURN 620 XI=-X*COS(ZJ)-Y*SIN(ZJ):YI=Y*COS(ZJ)-X*SIN(ZJ) 630 X=XI+X0:Y=Y1+Y0:TETURN 640 REM用牛顿迭代法计算LS2 650 LS2=LS1
660 FOR I=1 TO 10
670 FX=LS2^ 2/24/R2-LS2^ 4/2 688/R2^ 3+LS2^ 6/506 880! /R2^ 5-LS1^ 2/24/R1+LS1^ 4/2 688/R1^ 3-LS1^ 6/506 880! /R1^ 5
680 DX=LS2/12/R2-LS2^ 3/672/R2^ 3+LS2^ 5/84 480! /R2^ 5 690 LS2=LS2-FX/DX:PRINT LS2:NEXT I 700 RETURN
710 BT=LS/2/R:LY=R*ZJ-LS:IF LS=0 THEN 730
720 L=LS:GOSUB 600:Q=X-R*SIN(BT):P=Y-R*(1-COS(BT)) 730 IF ZJ=PI THEN RETURN
740 T=(R+P)*TAN(ZJ/2)+Q:RETURN
因篇幅问题不能全部显示,请点此查看更多更全内容