1、表表6-5 6-5 渐伸线长度的实用计算公式渐伸线长度的实用计算公式3.3.拨距的大小和方向拨距的大小和方向b1o测量始点b1b2b2既有曲线设计曲线a1a2始切线图图6-17 6-17 既有曲线整正既有曲线整正 jsEE 为正:曲线内压,向圆心方向拨动为正:曲线内压,向圆心方向拨动 为负:曲线外挑,向切线方向拨动为负:曲线外挑,向切线方向拨动 严格来说,拨动方向是沿着渐伸线方向拨动的。但是因为拨严格来说,拨动方向是沿着渐伸线方向拨动的。但是因为拨动量很小,在既有曲线附近很小的范围内,完全可以认为渐伸线动量很小,在既有曲线附近很小的范围内,完全可以认为渐伸线方向与既有曲线的法线方向重合。所以,
2、实际工作中,既有曲线方向与既有曲线的法线方向重合。所以,实际工作中,既有曲线拨正系沿法线方向拨动。拨正系沿法线方向拨动。4.4.拨距计算的步骤拨距计算的步骤1 1)计算既有曲线各测点的渐伸线长度)计算既有曲线各测点的渐伸线长度 2 2)选定设计曲线半径)选定设计曲线半径 3)3)计算设计曲线各测点的渐伸线长度计算设计曲线各测点的渐伸线长度4)4)求出拨动距离求出拨动距离 jESRsEjsEE ExcelExcel拨距计算拨距计算一、既有曲线资料输入一、既有曲线资料输入(一)在(一)在A6A6、A23A23分别输入分别输入“不不0 0、不、不1313、不、不21”21”;在;在B6-B27B6-
3、B27单元格中,分别输入单元格中,分别输入“K169+980K169+980、K170+000320”K170+000320”;在;在A28A28单元格中,输入单元格中,输入“前视点前视点”;在在C7-C28C7-C28单元格中,输入单元格中,输入“180180、1803”1803”;在;在D7-D28D7-D28单元格中,输入单元格中,输入“0 0、5716”5716”;在;在E7-E28E7-E28单元格中,单元格中,输入输入“3737、5649”5649”;在;在L7-L19L7-L19单元格中,分别输入单元格中,分别输入“2020、40260”40260”;在;在L7-L19L7-L1
4、9单元格中,分别输入单元格中,分别输入“2020、40160”40160”。如图。如图2-12-1所示:所示:(二)在第(二)在第1111列的列的K7K7单元格中,输入单元格中,输入“=I7=I7*J7”J7”,回车,然后复制此公式到,回车,然后复制此公式到K28K28单元格,如图所示:单元格,如图所示:(三)既有曲线渐伸线长度(三)既有曲线渐伸线长度 计算计算jE在第在第1212列列L7L7单元格中,输入单元格中,输入“=K7”=K7”,回车,然后复制,回车,然后复制此公式到此公式到K19K19单元格;在单元格;在L20L20单元格中,输入单元格中,输入“=K20+57.264”=K20+5
5、7.264”,回车,然后复制此公式到,回车,然后复制此公式到K27K27单元格;单元格;如图所示:如图所示:Fortran程序计算拨距程序计算拨距一、已知数据一、已知数据 已知数据有、曲线偏角资料已知数据有、曲线偏角资料、置镜点里程、置镜点里程zjlczjlc、里程、里程lclc、前、前视角度视角度qsjqsj。读入已知数据,利用读入已知数据,利用open语句来实现数据的读入。语句来实现数据的读入。open(1,file=shuru.dat,status=old)二、曲线偏角资料二、曲线偏角资料度转换成弧度度转换成弧度 a=bd(i)b=(bd(i)-a*1.0)*100c=int(bd(i)
6、-a)*100-b)*100)bhd(i)=(a+b/60.0+c/3600.0)*3.1415926/180 因为我们输入的角度数据是度分秒的形式,所以必因为我们输入的角度数据是度分秒的形式,所以必须把它转换为弧度,在程序中默认的角度是弧度。须把它转换为弧度,在程序中默认的角度是弧度。A A为度,为度,b b为分,为分,c c为秒为秒三、里程数组的计算三、里程数组的计算 这个和第一个置镜点里程有关系,利用这个关系,用一个循环这个和第一个置镜点里程有关系,利用这个关系,用一个循环语句来实现。语句来实现。lc(1)=zjdlc(1)do 15 i=2,23 lc(i)=lc(i-1)+2015
7、continue这里这里23是个跟测是个跟测点偏角个数有关点偏角个数有关的变量,测得的的变量,测得的偏角越多,这个偏角越多,这个值越大!值越大!四、四、l长度计算(长度计算(20、40。)。)n=1i=1m=(zjdlc(i+1)-zjdlc(i)/20 do 30 j=n,ml(j)=20*j30continue 35i=i+1if(i.le.3)then n=n+mm=(zjdlc(i+1)-zjdlc(i)/20 do 40 j=n,m+n-1k=j-n+1l(j)=20*k40continueend ifif(i.le.2)goto 35do 50 i=1,22ej1(i)=bhd(i
8、)*l(i)50 continue这块,我们需要搞清这块,我们需要搞清楚,置镜点里程和测楚,置镜点里程和测点里程的关系,由测点里程的关系,由测点里程减去置镜点里点里程减去置镜点里程来获得。程来获得。3和置镜点的个数和置镜点的个数有关系有关系 五、计算既有渐伸线长度五、计算既有渐伸线长度 i=1n=1k=0m=(zjdlc(i+1)-zjdlc(i)/20 do 60 j=n,mej(j)=ej1(j)60continue65 k=m+n-1p=ej(k)n=n+m i=i+1m=(zjdlc(i+1)-zjdlc(i)/20 do 70 j=n,n+m-1ej(j)=ej1(j)+p70con
9、tinue if(i.le.2)goto 65这个和上一个有相这个和上一个有相似之处。需要在置似之处。需要在置镜点以后的数据都镜点以后的数据都要进行累加处理。要进行累加处理。六、计算曲线转角六、计算曲线转角a 在公式中,我们知道曲线转角在公式中,我们知道曲线转角a a等于最后一个置镜点处的累计偏角加上等于最后一个置镜点处的累计偏角加上前视角度,这个计算可以通过赋值语句来完成。前视角度,这个计算可以通过赋值语句来完成。alfa=qsjd+bd(nd)a=alfab=(alfa-a*1.0)*100c=int(alfa-a)*100-b)*100)if(c.gt.60)thenb=b+1c=0en
10、difalfa1=(a+b/60.0+c/3600.0)*3.1415926/180 计算测量终点到计算测量终点到QZ点的距离点的距离X X=EJ(nd)/ALFA1C 计算计算QZ里程里程 QZ=ZJDLC(nz)-XC 计算计算QZ对应的点号对应的点号 七、计算七、计算qzqz里程以及对应的桩号里程以及对应的桩号QZ=QZ=终点里程终点里程-测量终点的渐伸线长度测量终点的渐伸线长度/曲线转角曲线转角设设X=X=各测点里程各测点里程-曲中里程曲中里程,取取X X最小时的测点号为最小时的测点号为曲中的点号。曲中的点号。Nd为偏角总个数,为偏角总个数,nz为置镜点的总个数为置镜点的总个数 八、计
11、算曲线半径八、计算曲线半径PM 1M2M1PM 2Pi1Pi2PinMi1Mi2MinA1A2A3AnAn-1计算三级差计算三级差DO 75 J=1,nd-1DO 75 J=1,nd-1 YJC(J)=EJ(J+1)-EJ(J)YJC(J)=EJ(J+1)-EJ(J)75 CONTINUE 75 CONTINUE DO 80 J=2,nd-1DO 80 J=2,nd-1 RJC(J)=YJC(J+1)-YJC(J)RJC(J)=YJC(J+1)-YJC(J)80 CONTINUE80 CONTINUEDO 85 J=3,nd-1DO 85 J=3,nd-1 SJC(J)=RJC(J+1)-RJ
12、C(J)SJC(J)=RJC(J+1)-RJC(J)85 CONTINUE85 CONTINUE程序语句程序语句计算计算QZQZ对应的点号对应的点号 CHA(1)=ABS(QZ-LC(1)CHA(1)=ABS(QZ-LC(1)ZXZ=CHA(1)ZXZ=CHA(1)DO 95 J=2,nd+1DO 95 J=2,nd+1CHA(J)=ABS(QZ-LC(J)CHA(J)=ABS(QZ-LC(J)IF(CHA(J).LT.ZXZ)THEN IF(CHA(J).LT.ZXZ)THEN ZXZ=CHA(J)ZXZ=CHA(J)M=JM=JENDIFENDIF95 CONTINUE95 CONTINU
13、E因为我们要从因为我们要从qzqz向两边搜索向两边搜索m1m1和和m2m2,所以要确定,所以要确定qzqz的位置。的位置。计算计算M1,M2 M1,M2 w=0.05w=0.05DO 98 I=M,3,-1DO 98 I=M,3,-1IF(ABS(SJC(I).LT.w)M1=I IF(ABS(SJC(I).LT.w)M1=I 98 CONTINUE98 CONTINUEDO 105 I=M,nd-2DO 105 I=M,nd-2IF(ABS(SJC(I).LT.w)M2=I IF(ABS(SJC(I).LT.w)M2=I 105 CONTINUE105 CONTINUE计算曲线半径Rs S=
14、0DO 110 I=M1,M2 S=RJC(I)+S110 CONTINUERS=400/S*(M2-M1+1)RS=INT(RS/10)*10 计算未加设缓和曲线圆曲线长度计算未加设缓和曲线圆曲线长度LSLSLS=RSLS=RS*ALFA1ALFA1ZY=QZ-LS/2.0ZY=QZ-LS/2.0YZ=QZ+LS/2.0 YZ=QZ+LS/2.0 曲线半径优化曲线半径优化*计算梯形面积TXMJ=(EJ(M2)-(LC(M2+1)-ZY)*2/(2*RS)+$(EJ(M1)-(LC(M1+1)-ZY)*2/(2*RS)*(LC(M2)-LC(M1)/2.0C 计算小梯形面积之和STXMJ=0.
15、0DO 112 I=M1,M2-1STXMJ=STXMJ+(EJ(I)-(LC(I+1)-ZY)*2/2/RS)+$(EJ(I+1)-(LC(I+2)-ZY)*2/2/RS)*20/2.0 112 CONTINUEf=txmj-stxmj if(f.gt.0)thencall bjyhd(f,txmj,stxmj,alfa1,rs,m1,m2,ej,lc,zy)elsecall bjyhx(f,txmj,stxmj,alfa1,rs,m1,m2,ej,lc,zy)end if IF(ALFA1.GT.50*3.1415926/180)THENRS=anint(RS*10)/10ELSE IF(
16、ALFA1.GT.30*3.1415926/180)THENRS=anint(RS)ELSE IF(ALFA1.GT.20*3.1415926/180)THENRS=anint(RS/5)*5ELSE IF(ALFA1.GT.10*3.1415926/180)THENRS=anint(RS/10)*10ELSE IF(ALFA1.GT.0)THENRS=anint(RS/25)*25ENDIF 半径调整PY ZPZYPM 2PM 1Y ZM2M1ZY 计算未加设缓和曲线圆曲线长度计算未加设缓和曲线圆曲线长度LSLS LS=RS LS=RS*ALFA1ALFA1ZY=QZ-LS/2.0ZY=QZ
17、-LS/2.0YZ=QZ+LS/2.0YZ=QZ+LS/2.0 计算缓和曲线长度计算缓和曲线长度l0l0S1=0S1=0DO 115 I=M1+1,M2-1DO 115 I=M1+1,M2-1S1=EJ(I-1)-(LC(I)-ZY)S1=EJ(I-1)-(LC(I)-ZY)*2/(22/(2*RS)+S1RS)+S1115 CONTINUE115 CONTINUEP=S1/(M2-M1-1)P=S1/(M2-M1-1)L0=SQRT(24L0=SQRT(24*RSRS*abs(P)abs(P)L0=INT(L0/10)L0=INT(L0/10)*10 10 这里只有等长缓和曲线的计算,还需考
18、虑不等长的情况。计算五大桩里程计算五大桩里程zh=zy-l0/2zh=zy-l0/2hy=zy+l0/2hy=zy+l0/2yh=yz-l0/2yh=yz-l0/2hz=yz+l0/2 hz=yz+l0/2 计算设计渐伸线长度do 120 i=2,nd+1if(lc(i).gt.hz)thenX=LC(I)-QZes(i-1)=x*ALFA1 else if(lc(i).gt.yh)THEN es(i-1)=(lc(i)-zy)*2/2/RS+P-(lc(i)-YH)*3/6/RS/L0ELSE IF(lc(i).gt.HY)THENes(i-1)=(lc(i)-zy)*2/2/RS+PELSE IF(lc(i).gt.ZH)THENes(i-1)=(lc(i)-ZH)*3/6/RS/L0ENDIF120 CONTINUE 计算拨道量DO 125 I=1,nd DELAT(I)=ES(I)-EJ(I)125 CONTINUE end