ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:331.76KB ,
资源ID:22141983      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22141983.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于matlab的测量导线描绘Word格式文档下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于matlab的测量导线描绘Word格式文档下载.docx

1、所谓附和导线就是:“导线起始于一个已知控制点而终至于另一个已知控制点”。通过测量导线上未知点与已知控制点坐标的对比、计算,进行平差(控制误差的一种手段),得出一条导线上的各个待测点的坐标。这个过程就是导线测量的主体步骤了。导线示意图如下根据导线示意图,这里有五点需要说明:一、测绘中,坐标系很多,一般导线测量使用的是“平面直角坐标系”,之所以打上了双引号,是因为,测量工作中的坐标系是以正北方向(竖轴)为X方向,横轴为Y方向,极坐标中顺时针旋转方向为正方向。二、图中2、3等点要安放仪器进行测量,称这些点为测站。三、A、B、C、D为已知点。P2、P3等为待测点。导线测量中需要计算出各个点的坐标。四、

2、关于P1左、P2左等角度,为测绘中所谓的左角。所谓的左角可以通过导线的前进方向来确定。比如,在这张图中,测量的顺序为A-B-C-D,那么前进方向即为A-B-C-D,而前进方向的左手边的角度就是左角了(右角亦然,并不规定一定要测哪个角,计算方法略有不同而已)。这些角一般称作转折角。五、平面的导线控制测量需要在一测站测相邻的左右测站之间的夹角(如图中的P1),该测站到前进方向上的下一测站的距离(如图中的D(1-2),也称作边长)。如果把高程算进去,还需要获得两测站之间的高差。而获得高差数据的方法很多,一般可以通过水准测量或三角高程测量获得。在这里介绍一下三角高程的基本原理。三角高程测量的基本原理就

3、是利用三角形各边角关系来获得所需数据。如图二;已知A、B两点的水平距离D,和一个夹角,通过计算Dtan(),再通过加减测量仪器高就可以获得A、B两点的高程差。当然实际运作中还要考虑地球曲率、大气温度等误差。在本文中,我对模型作了简化,对仪器高和地球曲率等因素做了默认设置。图二以上为本文要讨论的问题背景做了一个比较完整的描述下面进入问题的主体。一、提出问题有一测量小组通过查询获得了三个已知点的坐标,又通过野外测量,做了导线,并获得了导线中的转折角和边长,同时他们也获得了各个测站的角。数据如下:A列是边长, B列是左角值 A列是角值现在要求获得各个待测点的坐标,并描绘出导线的形状,对比已知点得出测

4、量值与实际获得坐标值的偏差。二、对问题的分析和方案的产生现在获得的数据已经可以画出导线了。问题是坐标系是不同的,那么可以进行转换。MATLAB数学坐标系的Y轴是正北方向,那么我们规定:Y轴北方向,X轴为东方向。化为极坐标时,顺时针为角的方向。 确定坐标系后,我们可以根据已知坐标把做边长和转折角转化为坐标值。计算方法: 1=2+(转折角)180;X1=X2D(边长) sin(1);Y1=Y2D(边长) cos(1);注:此处的坐标转化考虑到坐标系的转化,故sin、cos互换了。 通过以上计算获得了这些数据还是不够的。还需要用户输入已知点的坐标来对比测量结果。同时为了增加代码的通用性,可以由用户输

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

6、eng();end再给出描画二维导线的函数描述:function daoxian()% this function is for 2D FILENAME = input(what is the name of date file?)%获取用户所要处理的文件名X0 =input(input the x:Y0 =input(input the y:)%用户 输入 已知坐标。Angle = atan(Y0/X0); %用户输入已知的坐标点后,进行角度的转化,使之能在坐标系中正常实现。A=xlsread(FILENAME); %获取用户所要处理的文件内容L=A(:,1); L=L CT=A(:,2);

7、 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,Y GT(3)=CT(1)+CT(2)-pi;I=4;for k=1:4 %转化各个转角,使结果符合坐标系的运算GT(I)=CT(I-1)+GT(I-1)-pi; I=I+1;for I=1:7if GT(I)2*pi %对大于360度的角进行转换 GT(I)=GT(I)-2*pi;GT(1)=0;GT(2)=0;I=3;for J=1:5 %核心计

8、算,获得坐标。X(I)=X(I-1)+L(I-1).*sin(GT(I);Y(I)=Y(I-1)+L(I-1).*cos(GT(I);I=I+1;OUTPUT = X ,Y % 输出数据save OUTPUT %保存数据。plot(X,Y,b - O);%画图。axis(equalxlabel(Xylabel(Y,北方向title(2D-map %以上为坐标的优化grid on;hold on;% 对比已知点,求出坐标差,并描点。CONx = input(please enter the x of control point:CONy = input(please enter the y of

9、 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 is the name of lengt-hdate file?)%获得用户所需要处理的文件名。FILENAME2 = input(what is the name of high-date file?)%获得初始的起算坐标

10、Z0 =input(input the z: %计算出起算的两点间在坐标系中的夹角。A=xlsread(FILENAME1);%获得用户提供的数据 %以上是对获取数据的处理,使之符合矩阵运算。%转化角度%初始化坐标值4 %计算获得可计算的坐标方位角end 5 %核心计算,获得坐标值。HT=xlsread(FILENAME2);% 获得用户提供的高程角。HT=HTHT=(HT./(360)*2*pi;% 角转化;LT=;5 LT(k)=L(k+1);T=LT.*tan(HT);%通过tan函数获得H的初始值。Z=;Z(1)=0;Z(2)=Z0;for k=3:7 %获得H的值。Z(k)=Z(k-

11、1)+T(k-2); end OUTPUT = X,Z %输出计算结果save OUTPUT;plot3(X,Y,Z,k - O %画出图像。zlabel(H,高程3D-map%以上为坐标的优化%获得已知点,进行比较,描绘,输出结果CONz = input(please enter the z of control point:plot3(CONx,CONy,CONz,) %描出用于检核的点。delx=X(7)- CONx % 输出相差的坐标值dely=Y(7)- CONydelyz=Z(7)- CONz现在整个函数的实现已经给出来了。其中,function begin ()放在一个M文件里,

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

13、l,再输入起算点的X,Y坐标,此处是100,200。运行后,再根据提示输入控制点的坐标进行检核,这里是(-36,350)。整个输入过程就结束了。运行过程如下:启动界面下图显示的是输出的X,Y的坐标值下图显示的delx,dely是与控制点相差的数值下图显示的是导线的图像,其中红点为检核所用的控制点(此处几乎重合)现在来看看三维导线的运行。首先调用begin函数,选2,按要求输入文件名,再输入起算点的坐标,这里是(100,200,300);运行如下即输出了计算结果,然后按要求说如已知控制点的坐标用于检核。这里输入(170,390,640),则其输出了测算点与控制点差值。结果如下:最后我们可以看一下

14、三维图像的运行结果(如下图),注意,红点是用于检核的已知坐标的点,不得不提一下的是,实际操作中,精度往往比较高,这里为了突出误差,便于观察和理解图像,把误差放大了。运行到这里可以说所有的结果都获得了,问题得到了解决。五、总结这个问题的解决其实很不完美。首先,这个模型不是实际的模型,我对其中的数据进行了优化(如角度和长度的位数限制),并且祛除了一些比较复杂的能够减少误差的计算,只保留基本的几种思想方法,对导线的测量进行了描绘。但是问题的全貌,和数据的主要处理方法都到位了。这个问题当然可以拓展,比如,直接画出初步平差后的图像。这个问题就复杂多了,我这些天的算法设计总是有问题,所以就不好拿出来了。另

15、外,这个程序可重用性不高,虽然能实现对不同数据源文件的读取,用户自主输入起算和检核坐标,但是,如果测站数不一样,还需要修改函数内部的部分数据。这个方面的问题,我目前还不知道如何解决更好。我以后会边学习,边思考,找出好方法。还要说明的是,对于导线的描绘,测绘有专门的软件如CASS等,其对于专业内的绘图功能自然比MATLAB好些。此处的学习意义大于运用意义。最后不得不说一下我对这门课的感受,因为MATLAB这门选修课是我修过的“最有技术含量”的公选课。只可惜我目前只学了半个学期的专业课,所以很多专业的应用我都不能“立即”去开发。但是通过这门课的学习和这次结课作业的练习,我认识了MATLAB这种工具,知道了他的强悍功能。同时,我还发现了和自己专业相关的工具箱,如“Mapping Toolbox”等。通过互联网,我还了解到MATLAB在“GPS”的计算还有“平差”的计算中有较多的的应用。我想以后有了机会,具备了能力,我是会尝试一下各种应用的。参考文献MATLAB7及工程问题解决方案 (美)Delores M.Etter 邱李华译 2006.3MATLAB基础及其应用 北京大学 周开利 邓春晖 2009.11数字测图原理与方法 武汉大学 2010 .7参考网站MATLAB中文论坛 :MATLABXX贴吧:MATLAB教程网:编程爱好者MATLAB讨论区:2010年11月12日星期五

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1