matlab测量导线描绘_第1页
matlab测量导线描绘_第2页
matlab测量导线描绘_第3页
免费预览已结束,剩余10页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、测绘学院学号:28夏少波手机:基于MATLAB的测量导线描绘摘要:本文从导线的描绘出发,提出了该问题的 MATLAB解决方法。给出了数据的处理结果 和图表。并且,设计了二维和三维的代码描述。其中对待处理的数据有一些优化,但计算 方法和计算的逻辑是没有问题的。最后,MATLAB对这个问题的解决也较为令人满意。关键字:控制测量导线代码运行结果MATLAB任何测量工作都会产生误差,而误差在绝对意义上是不可避免的,所以在测量工作中必 须采用一定的方法来控制误差的范围,以期达到工作需求。测量工作中遵循“先整体后局 部,先控制后碎部”的原则。简而言之就是在工作区域内建立一定精度的由一定数目的已 知坐标点构

2、成的几何图形,然后在几何图形内进行测量。在测量过程中,我们可以通过各 个已知点的坐标来验算测得的未知点的坐标。这样通过不断地检核、测量、检核,成果的 误差就可以控制在一定范围内。其中,已知点被称作“控制点”,几何图形被称为“控制 网”,这种测量方法被称为“控制测量”。一般意义上的控制测量可以分为“平面控制测量”和“高程控制测量”。平面控制测量 是基平面坐标系 X-Y,而高程控制测量是基于高程 H的。目前,随着测绘技术的发展,也 出现了把两种控制测量结合起来的“三维控制测量”。控制网根据其精度从高到低大致可以分为一、二、三、四等,精度越高的点数目越少。 点数不够自然无法形成有效地控制网。因此,测

3、量工作中需要通过已知的几个点,“一生 二,二生三”,绘出一个可用于实际项目的控制网。“一生二,二生三”的过程需要已知 点前后通视 即互相看得见),然而,在城市中,因为建筑物较多,视线不好,往往会出现 已知点之间无法通视的现象。所以就引入了导线测量traverse survey )。导线测量又有很多分类,在此就不在赘述了。下面来介绍导线测量中的附和导线。所谓 附和导线就是:“导线起始于一个已知控制点而终至于另一个已知控制点”。通过测量导 线上未知点与已知控制点坐标的对比、计算,进行平差控制误差的一种手段),得出一条导线上的各个待测点的坐标。这个过程就是导线测量的主体步骤了。导线示意图如下图-1附

4、合耳线示意图根据导线示意图,这里有五点需要说明:测绘中,坐标系很多,一般导线测量使用的是“平面直角坐标系”,之所以打上了双引号,是因为,测量工作中的坐标系是以正北方向竖轴)为X方向,横轴为Y方向,极坐标中顺时针旋转方向为正方向。二、图中2、3等点要安放仪器进行测量,称这些点为测站。三、A、B、C D为已知点。P2、P3等为待测点。导线测量中需要计算出各个点的坐标。四、关于P1左、P2左等角度,为测绘中所谓的左角。所谓的左角可以通过导线的前进方向来确定。比如,在这张图中,测量的顺序为A-BC-D那么前进方向即为 A-BC-D,而前进方向的左手边的角度就是左角了右角亦然,并不规定一定要测哪个角,计

5、算方法略有不同而已)。这些角一般称作转折角。五、平面的导线控制测量需要在一测站测相邻的左右测站之间的夹角如图中的P1),该测站到前进方向上的下一测站的距离如图中的D(1-2,也称作边长)。如果把高程算进去,还需要获得两测站之间的高差。而获得高差数据的方法很多,一般可以通过水准测量或三角高程测量获得。在这里介绍一下三角高程的基本原理。三角高程测量的 基本原理就是利用三角形各边角关系来获得所需数据。如图二。已知A、B两点的水平距离D,和一个夹角a,通过计算 DX tan( a ,再通过加减测量仪器高就可以获得 A、B两点的高程差。当然实际运作中还要考虑地球曲率、大气温度等误差。在本文中, 我对模型

6、作了简化,对仪器高和地球曲率等因素做了默认设置。图二以上为本文要讨论的问题背景做了一个比较完整的描述下面进入问题的主体。-、提出问题有一测量小组通过查询获得了三个已知点的坐标,又通过野外测量,做了导线,并获得了导线中的转折角和边长,同时他们也获得了各个测站的a角。数据如下:E6甕三ABC£100B2226157115呂139144225-17237p 8:305100971 424© _1029751870lA列是边长,B列是左角值A列是a角值现在要求获得各个待测点的坐标,并描绘出导线的形状,对比已知点得出测量值与实际 获得坐标值的偏差。二、对问题的分析和方案的产生现在获得

7、的数据已经可以画出导线了。问题是坐标系是不同的,那么可以进行转换。MATLAB数学坐标系的 Y轴是正北方向,那么我们规定:Y轴北方向,X轴为东方向。化为极坐标时,顺时针为角的方向。确定坐标系后,我们可以根据已知坐标把做边长和转折角转化为坐标值。计算方法:a 仁 a 2+ a <转折角)180 °。X1=X2+ D(边长>x sin( a 1>。丫仁Y2+ D(边长 > x cos(a 1>。注:此处的坐标转化考虑到坐标系的转化,故sin、cos互换了。通过以上计算获得了这些数据还是不够的。还需要用户输入已知点的坐标来对比测量结果。同时为了增加代码的通用性

8、,可以由用户输入所需处理的文件名称,以及初始坐标值。同 时,还可以通过用户选择,来实现计算和描绘平面的导线或者是三维的导线。通过用户选 择那个函数,调用了二维描述和三维描述这两个函数。从而实现整个功能。如上所示,整个框架已经构成了。三、描述解决方案首先给出可供用户选择的函数:f unction begin (>%这个函数给了用户选择。2D or 3D?in put('welcome to use my programpress 走?ter to star '>£?N = in put('choose 1 for 2D,choose 2 for 3D

9、'>switch(N>case 1daoxia n(>。case 2gaoche ng(>。end再给出描画二维导线的函数描述:function daoxia n(>% this function is for 2DFILENAME = input('what is the name of date file?'>% 获取用户所要处理的文件名X0 =input('input the x : '>Y0 =input('input the y : '>%用户输入已知坐标。Angle = atan

10、(Y0/X0>。 %用户输入已知的坐标点后,进行角度的转化,使之能在坐标系中正 常实现。A=xlsread(FILENAME>。 %获取用户所要处理的文件内容L=A(:,1>。L=L'。CT=A(:,2>。CT=CT。' %以上是对获取数据的处理,使之符合矩阵运算。GT=。CT(1>=Angle。CT=(CT./(360»*2*pi。 %把一般测得的360制角转化为2Pi制X=0,X0,0,0,0,0,0。Y=0,Y0,0,0,0,0,0。 %初始化 X,YGT(3>=CT(1>+CT(2>-p。I=4。for k=1:

11、4 %转化各个转角,使结果符合坐标系的运算GT(l>=CT(l-1>+GT(l-1>-p。I=I+1。endfor l=1:7if GT(l><0%对小于 0度的角进行转换GT(l>=GT(l>+2*pi。endif GT(l>>2*pi %对大于 360度的角进行转换GT(l>=GT(l>-2*pi。endendGT(1>=0。GT(2>=0。l=3。for J=1:5 %核心计算,获得坐标。X(l>=X(l-1>+L(l-1>.*sin(GT(l>>。Y(l>=Y(l-1>

12、;+L(l-1>.*cos(GT(l>>。l=l+1。endOUTPUT = X' ,Y' %输出数据save OUTPUT %保存数据。plot(X,Y,'b - O'>。 %画图。axis('equal'> 。xlabel('X'>。ylabel('Y,北方向>。title('2Dmap'> 。 %以上为坐标的优化grid on 。hold on 。% 对比已知点,求出坐标差,并描点。CONx = input('please enter the x

13、 of control point : '>。CONy = input('please enter the y of control point : '>。plot(CONx,CONy,'r o'> 。 %描出用于检核的点。delx =X(7>- CONx %俞出相差X,Y坐标大小。dely =Y(7>- CONy函数的描述和解释代码的后面已经阐述,现在直接给出三维的函数描述:function gaocheng(>%This function is for 3DFILENAME1 = input('what i

14、s the name of lengt-hdate file?'>% 获得用户所需要处理的文件名。 FILENAME2 = input('what is the name of high-date file?'>X0 =input('input the x : '>%获得初始的起算坐标Y0 =input('input the y : '>Z0 =input('input the z : '>Angle = atan(Y0/X0>。 %计算出起算的两点间在坐标系中的夹角。A=xlsread

15、(FILENAME1>。 %获得用户提供的数据L=A(:,1>。L=L'。CT=A(:,2>。CT=CT。' %以上是对获取数据的处理,使之符合矩阵运算。GT=。CT(1>=Angle。 %用户输入已知的坐标点后,进行角度的转化,使之能在坐标系中正常实现。CT=(CT./(360>>*2*pi 。 %转化角度X=0,X0,0,0,0,0,0。 %初始化坐标值Y=0,Y0,0,0,0,0,0。CT(1>=Angle。GT(3>=CT(1>+CT(2>-p。I=4。for k=1:4 %计算获得可计算的坐标方位角GT(l&

16、gt;=CT(l-1>+GT(l-1>-p。I=I+1。endfor l=1:7if GT(l><0 %对小于 0度的角进行转换GT(l>=GT(l>+2*pi。endif GT(l>>2*pi %对大于 360度的角进行转换GT(l>=GT(l>-2*pi。endendGT(1>=0。GT(2>=0。I=3。for J=1:5 %核心计算,获得坐标值。X(I>=X(I-1>+L(I-1>.*sin(GT(I>>。Y(I>=Y(I-1>+L(I-1>.*cos(GT(I>

17、;>。I=I+1。endHT=xlsread(FILENAME2> %获得用户提供的高程a角。HT=HT'。HT=(HT./(360>>*2*pi 。 % a 角转化;LT=。for k=1:5LT(k>=L(k+1>。endT=LT.*tan(HT>。通过tan函数获得H的初始值。Z=。Z(1>=0。Z(2>=Z0。for k=3:7 %获得H的值。Z(k>=Z(k-1>+T(k-2>。endOUTPUT = X' ,Y',Z' %输出计算结果save OUTPUT。plot3(X,Y,Z

18、,'k - O'>。%画出图像。axis('equal'> 。xlabel('X'>。ylabel('Y,北方向>。zlabel('H,高程'>。grid on 。title('3Dmap'> 。 %以上为坐标的优化hold on 。%获得已知点,进行比较,描绘,输出结果CONx = input('please enter the x of control point :'>。CONy = input('please enter the y

19、of control point :'>。CONz = input('please enter the z of control point :'>。plot3(CONx,CONy,CONz,'r o'> %描出用于检核的点。delx=X(7>- CONx % 输出相差的坐标值dely=Y(7>- CONydelyz=Z(7>- CONz现在整个函数的实现已经给出来了。其中,function begin (> 放在一个M文件里,function daoxian(> 放在一个 M 文件里,function g

20、aocheng(> 放在一个 M文件里。其实,第2D和3D就差了一个坐标元素。主体函数还是差不多的。不过,为了表达清楚, 我还是把它们都写出来了。我在写这些函数的时候,遇到了一些矩阵数组计算的小问题, 最后虽然得到了解决,但我一直怀疑是不是有更好的描述方法。四、运行MATLAB,获得结果首先,我要说明的是,本来我是想在 word里直接运行代码的,但是,因为不同的M文件,这样的表达,我觉得不是很清晰可能我方法不对),所以就选择了截图运行过程的方法。运行时首先运行begin函数,选1,再按要求输入所要求调用的文件名:导线数据.xlsl,再输入起算点的X,Y坐标,此处是100,200。运行后,

21、再根据提示输入控制点的坐标进行检核, 这里是-36,350)。整个输入过程就结束了。运行过程如下:启动界面n.RidaMotasvcisn m.g 歟 hang 蒯 igaochng mMATLABSirf? tftHOLJIPUT.fi atttnEdrtorAiitosaV-frie列-:*血j駅wITF也VAT-fi:e 貂KFih -LEG eSre 3a:» Me drift dDeser p:nIKE 11-1215:2 HE 1M1-Q TipTO 2 KE 10-1(42 T«:2fl2 KB 10-t142TR:16 2 KE 1W1-12TR19 1KB

22、 irn 上TO2 KB 1011-12 TU09 tIKB圧皿上冉 11 KE 10-f-l 2 FT9-3S:i e pi Dgi am gi.« usr twi 幡 y t;卩时加 m 孵 sdv 2J;'i siundur 負2D?:s1unc:iDr.i3for 3DComna.i d H 阿# MATLAB J.6£ (RJOOBaJ"aH"'lFik Edk Uflbug Pjfllkl Dcsktcp Window H咋:Q d 為引砌画| Currert Dreanyi GudAMA7UBjK*% 一 ihortetb

23、刃 Tm、to Add 刃加兀弓兀evrCirnMtDirKtnry h- i x Ccnnnifid '3indaw-n J x也 i 寸 i TD New tn MAm时 WdKii This 仙曲,梵电跳mg or red 血tma EtaiMxAll FiltiTyptvtl:>w tn 铤 r.y protran! psiesE Em*r tj star!9 ijininKkilBehcoj J ter _D, chMse 2 for JllJ:. < cll.c:'.FdiorAu'daBHisn.m-1-f =TF 一ga:cbfnq.TMAT

24、IA醮封姻.trtTXT File* ;uJTFJ-ni3t1g F拒g卜Ipvhatthw tthe of date film'?扌戎羟据.zdsx"'Editor M<町F1EJAIC =Commaftd H itcy片X103尋遴Stif ilsxck-1th? j>* Start Mine by incutF图显示的是输出的X,Y勺坐标值F图显示的delx, dely是与控制点相差的数值I a D屯f o J由崔i iCurrent Diectory:<3zma 时占二、IMAT1AE.谨 耀仃口 rtcLFri:Hq 畑 to Ad J I

25、Jl; s h aT's Mew下图显示的是导线的图像,其中红点为检核所用的控制点<此处几乎重合)M Figure I| 二 | 叵)E5File Edit View Insert Tods Desktop Window Help=心tataa I戛头目膜求“ai 砂|至a: 现在来看看三维导线的运行。首先调用begin函数,选2,按要求输入文件名,再输入起算点的坐标,这里是 <100,200,300 );运行如下即输出了计算结果,然后按要求说如已知控制点的坐标用于检核。这里输入<170,390,640),则其输出了测算点与控制点差值。结果如下:最后我们可以看一下三维

26、图像的运行结果<如下图),注意,红点是用于检核的已知坐标的点,不得不提一下的是,实际操作中,精度往往比较高,这里为了突出误差,便于观察和理解图像,把误差放大了。号廿厂 i I'ai iu ; ir ru U¥* IF rhdli A -Nihv 'johis .'deo. :ttr(d uitt naXMl Files *4 =JiMlile伽 ian asrEditor Au啊E:mAu!'羽巧 g.nM-fikcmm =呻T囲轨惟丈rr=三jlTPLTathAAT-fle0匚弍訴曲XLSX File00WFile130.000::肿two3C

27、1TO卜型.58M37;.0L633KLS565Cunnund HictDiy ”E f 乂257.3235510*021血3;33ri匸 5.38J:=11.9093524. id 15:C._13SI1S.S910减2«4100159.035:33.8W血 3422-200jOQphas« erret th? e rfccntrsl point:1f Start siting orinpfo/R .:*" 'r ”pgAia-0 Mm k: MAT/Br atch* 打 J«c.二卅辄 sr read Celinq !i:ar?lXji吐车丄Type£Jtgir m脳d*li =cso:f an 涮Editor Ay,;caoJi'annM-f!e吨9制gaockng.KVrdilor Ac;ocbr:m般nrFfedely -KLSX File'c-dT; - 5t;-'*-XLSFile1 ? X4.155ZdeLjE =ro-3?.65r8r F33DZD皂-640TT|g

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论