欢迎来到天天文库
浏览记录
ID:38915838
大小:256.38 KB
页数:4页
时间:2019-06-21
《利用MATLAB实现水准网条件平差》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、万方数据2008№4铜业工程21文章编号:1009—3842(2008)04-0021一03利用MATLAB实现水准网条件平差曾晓1,罗发明2(1.湖南省浏阳市规划勘测院,湖南浏阳410300;2.江西铜业集团公司德兴铜矿,江西德兴334224)摘要:水准网条件平差中矩阵运算占很大一部分,计算工作浪费时间较多。MATLAB具有强大的矩阵运算和创建图形用户界面的功能。用MATLAB编制水准网条件平差程序可以去掉矩阵计算这个沉重的包袱,从而提高计算工作效率。关键词:测量平;阵运算;MATLAB;水准网中图分类号:3"I)854.6文
2、献标识码:AMATLAB起源于矩阵运算,并已经发展成一种高度集成的计算机语言。MATLAB以矩阵作为基本编程单元,它提供了各种矩阵的运算与操作,并有较强的绘图功能。MATLAB集科学计算、图像处理、声音处理于一身,是一个高度的集成系统,有良好的用户界面,并有良好的帮助功能。利用MArllAB的矩阵运算和创建图形用户界面的功能来实现水准网的条件平差。1按条件平差求平差值的计算步骤(1)根据平差问题的具体情况,列出条件方程式,条件方程个数等于多余观测个数r。(2)根据条件方程的系数,闭合差及观测值的权组成法方程式,法方程个数等于多余
3、观测数r。(3)解算法方程,求出联系数K值。(4)将K代入法方程式,求出V值,并求出平差值?=L+V。(5)为了验证平差计算的正确性,用平差值?重新列出平差值条件方程式,看是否满足方程。2水准网水准网平差的目的是为了确定网中未知点的最或然高程。在有已知点的水准网中,必要观测的个数等于未知点的个数。如果水准网中没有已知点,这时,只能假定某点的高程为已知,并以此为基础,确定其他各点的相对高程。所以,在没有已知点的水准网中,必要观测的个数等于网中所有未知点个数减1。以图l中水准网为例详细说明水准网平差方程的列立和计算的具体过程,A,B
4、是已知高程的水准点,图中Pl,P2,P3点是待定点。A,B是已知点高程。本例有7个观测值,有3个待定点,所以有条件r=n—t=7—3=4个。由条件方程知系数阵为:A=Al—lO0lO0O0l—ll0O0l0lOl0一lO0P2h6h7Pl图1水准路线图令C=l,即以lkm观测高差为单位权观测,于收稿日期:2008—09—21作者简介:曾晓(1965一),女.湖南测阳市人。大学本科学历,工程师。主要研究方向为工程测量。万方数据铜业工程2008№4是只=i1,Q;=Pfl=Sio因各观测高差不相关故协因数阵为对角阵,即:q=P~=1
5、.72.3震5.22.篝40刊1_712.47.42.32.7l02.36.30lL—1.72.704.4J2.7k1k2岛k2.41.4—7—8—631.6=0解算法方程得:K1=一0.2226,K2=一1.4028,K3=一0.04414,K4=1.4568计算改正数。利用改正数方程求得:V=[一0.22.94.2—0.1—3.9—0.6—1.2甲’(ram)计算平差值,并代人平差值条件式检核。“L=[1.35882..01190.35881.01190.65310.2374—0.5962]7经检验满足所有条件方程。3矩阵运
6、算MATLAB中数据的基本格式是矩阵。MATLAB中数据元素除了可以是实数外还可以是复数或字符文本甚至可以在同一个矩阵中包含了不同类型的数据,称为细胞矩阵。MATLAB中的大多数运算可以直接对矩阵应用。3.1数据的输入水准网中观测值数、已知点数、待定点数的个数通过文本编辑框输入。条件方程的系数阵的获得是通过首先输入基础方程的系数,然后利用MATLAB中子矩阵的提取功能来提取出条件方程系数阵。其他条件由于数据较多,手工输入较费时,采用文本输入即数据导人的方式进行输入。其输入界面设计如图2。图2水准网条件输入界面下面以算例说明具体计
7、算过程中的两个重要计算过程:(1)线性无关条件方程个数的计算。算例中有7个观测值,有3个待定点,所以有条件r=n—t=7—3=4个。在观测值个数中输入7,在待定点个数中输入3,然后点击条件方程个数按钮,则它后面的文本框中将会出现条件方程的个数4(如图3),另外输入已知点个数中2以待以后计算中应用。图3条件方程数计算结果显示这个过程相对较为容易实现。首先通过文本框的输入获得观测值数和待定点数,然后在“条件方程数”按钮的“Callback”函数中写如下代码:num=getappdata(gcbf,humdata’;eq2num.ob
8、—nllm.un;hum·eq2eq:setappdata(gcbf,humdata.num);set(handles.edit_eq,String.eq);其中,程序的第一行调用以前定义好的用户变量iaumdatag第二行计算方程个数结果,第三行重新设置hum
此文档下载收益归作者所有