道路曲线放样实习报告

更新时间:2023-07-19 12:55:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

工程测量学实习报告

科目:道路曲线放样

班级:xxxxxx 组别:第五组

成员:xxxxxx

时间:2013.5.22

一. 实习科目:道路曲线放样

二. 时间:14:30-16:30

三. 地点:田径场

四. 人员分工:

xxx:主要在整个实习过程中机动,提醒各成员在操作过程中

的注意事项等。

xxx:主要负责打木桩和钉钉子。

xxx:主要负责移棱镜。

xxx:主要负责数据准备,在实习过程中的数据观测。

五. 所用仪器及精度:

仪器:尼康DTM-352,30M钢尺

精度:测角5″ 最小显示:1″/5″/10″

测距3mm+2ppm 测程3000m/3P 最小显示1mm

六. 数据准备:

在教员给定的已知数据基础上,我组采用编程的方法计算实习

所需的所有数据,包括点位坐标、夹角及距离等。程序代码见附件1。

七. 操作步骤:

① 先选定交点JD,在此处架设全站仪。

② 选定一个合适的方向,根据计算的切线距离确定直缓点ZH,

并在此处用三脚架架设棱镜。

③ 在交点处以切线方向为零方向,根据计算的角度和距离确

定缓圆点HY。

④ 将全站仪重新对准直缓点定零方向,根据数据确定曲中点QZ。

⑤ 同上述步骤,依次确定圆缓点、缓直点。

⑥ 将全站仪取下架至直缓点出,两处三脚架不动,只交换棱镜

和全站仪。

⑦ 在直缓点处以切线方向为零方向,根据计算的角度和距离依

次确定各碎部点,在此过程中同时在各主点也再放样一次从

而校验各主点的精度。

八. 检验数据及实测对比:

在直缓点确定碎部点时,对个主点进行了精度校验,经测量得

到各主点距离误差如下:

缓圆点:5mm

曲中点:1mm

圆缓点:12mm

缓直点:10mm

九. 实验体会:

经过两次课的实习,我们组成功完成了道路曲线的放样工作,同

时也了解到了许多课本上没有学到的知识,实际操作仪器进行施工放样的能力也发生了一个质的提高。当然,在实际的放样过程中,我们也发现了很多的问题。例如,在第一次的实习中,我们就忽略了棱镜加常数的影响,导致了错误的放样结果。这些错误在我们实际的施工放样工作中是绝对不允许出现的。所谓失之毫厘,谬以千里,测量工作尤是如此,容不得半点马虎与懈怠。同时,通过这次实习培养了我

们的基本功,锻炼了我们使用全站仪进行施工放样的能力。另外,这次实习也让我们意识到团队分工与团队协作意识对于解决实际问题的重要性。总之,此次实习是我们充分认识到测量工作的科学性,精密性,与严谨性,对我们测绘工作者的指导性作用。

附件1:

// 道路曲线放样.cpp : Defines the entry point for the

console application.

//

#include "stdafx.h"

#include <math.h>

#include <stdio.h>

#include <stdlib.h>

// 将度分秒连写的(double型)角度化为弧度值

double dms_arc(double a)

{

//提取角度值的符号

double sign=(a<0.0) ? -1.0 : 1.0;

a=fabs(a);

//提取角度值的整度

int d=(int)((a+0.00001)/10000.0);

a=a-d*10000.0;

if(a<0.0){ d=d-1; a=a+10000;}

//提取角度值的整分及秒值

int m=(int)((a+0.00001)/100.0);

a=a-m*100;

if(a<0.0){ m=m-1; a=a+100.0;}

a=sign*(d*3600.0+m*60.0+a)/206264.806247096363;

return a;

}

// 将角度的弧度值化为度分秒连写的角度(double 型)

double arc_dms(double a)

{

a=a*206264.806247096363;

double sign=(a<0.0) ? -1.0 : 1.0;

a=fabs(a);

int d=(int)(a/3600.0+0.0000001);

a=a-d*3600.0;

if(a<0.0){ d=d-1; a=a+3600.0; }

int m=(int)(a/60.0+0.0001);

a=a-m*60.0;

if(a<0.0){ m=m-1; a=a+60.0; }

a=d*10000.0+m*100.0+a;

return a*sign;

}

int main(int argc, char* argv[])

{ FILE *f1,*f2,*f3,*f4; //从文件中读取数据

f1=fopen("known.txt","r");

if (f1==NULL)

{ printf("cannot open this file\n");

exit(0);

}

int DK0;

double S0,arfa,R,lh,dl;

fscanf(f1,"%d%lf%lf%lf%lf%lf",&DK0,&S0,&arfa,&R,&lh,

&dl);

arfa=dms_arc(arfa);

fclose(f1);

double m,p,c,Bh; //计算m,p,c,Bh

c=R*lh;

m=lh*0.5-lh*lh*lh/R/R/240.0;

p=lh*lh/R/24.0;

Bh=0.5*lh/R;

// printf("%lf\n%lf\n%lf\n%lf\n",c,m,p,Bh);

double T,Ly,L,E,q; //计算T,Ly,L,E,q

T=m+(R+p)*tan(arfa/2.0);

S0=S0-T;

Ly=(arfa-2*Bh)*R;

L=(arfa-2*Bh)*R+2*lh;

E=(p+R)/cos(arfa/2.0)-R;

q=2*T-L;

// printf("\n%lf\n%lf\n%lf\n%lf\n%lf\n",T,L,E,q,Ly);

S0=402.377;

T=46.763;

Ly=50.356;

c=2000;

m=9.997;

p=0.167;

double

dk[13]={410,420,422.377,430,440,447.555,450,460,470,472.733,480,490,492.733};

int n;

n=13;

double *X=new double[n];

double *Y=new double[n];

double *B=new double[n];

double *s=new double[n];

double cita=dms_arc(1800000)-arfa; //坐标变换时

的旋转角

for (int i=0;i<n;i++) //计算放样点

的坐标

{ double l0=dk[i];

if (l0<lh+S0)

{ l0=l0-S0;

X[i]=l0-pow(l0,5)/pow(c,2)/40.0+pow(l0,9)/pow(c,4)/3450.0;

Y[i]=pow(l0,3)/c/6.0-pow(l0,7)/pow(c,3)/336.0+pow(l0,11)/pow(c,5)/42240.0;

}

else if (l0>=lh+S0&&l0<=S0+lh+Ly)

{

l0=l0-S0;

X[i]=m+R*sin(Bh+(l0-lh)/R);

Y[i]=p+R*(1-cos(Bh+(l0-lh)/R));

}

else if (l0>S0+lh+Ly)

{

l0=S0+L-l0;

double

x1=l0-pow(l0,5)/pow(c,2)/40.0+pow(l0,9)/pow(c,4)/3450.0;

double

y1=pow(l0,3)/c/6.0-pow(l0,7)/pow(c,3)/336.0+pow(l0,11)/pow(c,5)/42240.0;

X[i]=(x1-T)*cos(cita)-y1*sin(cita)+T;

Y[i]=(T-x1)*sin(cita)-y1*cos(cita);

}

}

f2=fopen("Result.txt","w"); //输出放样点

的坐标值

if (f2==NULL)

{ printf("cannot open this file\n");

exit(0);

}

for (i=0;i<n;i++)

{

fprintf(f2,"%.3lf\t%.3lf\n",X[i],Y[i]);

}

fclose(f2);

f3=fopen("Result.txt","r"); //计算并输

出角度和距离

if (f3==NULL)

{ printf("cannot open this file\n");

exit(0);

}

f4=fopen("Result1.txt","w");

fprintf(f4," Peg \t X(m) Y(m)

B S(to ZH)(m)\n");

for (i=0;i<n;i++)

{ double a,b;

fscanf(f3,"%lf%lf",&a,&b);

B[i]=atan(b/a);

B[i]=arc_dms(B[i])/10000;

s[i]=sqrt(a*a+b*b);

fprintf(f4,"DK8+%8.3lf\t%8.3lf\t%8.3lf\t%8.4lf\t%8.3lf\n",dk[i],X[i],Y[i],B[i],s[i]);

}

return 0; }

本文来源:https://www.bwwdw.com/article/q071.html

Top