MATLAB在水准测量平差中的应用1

(整期优先)网络出版时间:2018-12-22
/ 2

MATLAB在水准测量平差中的应用1

汪琴2

闽南理工学院,土木工程学院福建泉州362700

摘要:文中阐述了水准网从程序设计到实现的整个过程。通过实例可看出,利用MATLAB对测量数据处理不仅可以缩短了编程的时间,还可以提高工作效率。

关键词:测量平差;水准网;程序设计

MatlabApplicationInLevelingAdjustment

WangQin

MinnanUniversityofScienceandTechnology,Depart.ofCivilEngineering,Quanzhou362700,China

Abstract:Thearticleseparatelyexpatiatethetheoriesbasics、realizingstepsandrunningresultsatleveling.Withtheanalysisofexamples,ithasprodigiousapplicationvalueinmeasureddata-processingbyuseofMATLAB.Moreover,itshortensprogrammingtimeandimprovesworkingeffectiveness.

Keywords:MATLAB;levelingnetwork;programming

0引言

测量平差数据处理主要是基于矩阵的运算。在MATLAB环境中,不需要对创建的变量对象给出类型说明和维数,它是一种程序化和解释性相结合的编程语言,不仅使程序容易调试、计算更为简捷,而且使平差原理理解和掌握变得更容易,这些优点都依托于它是逐行解释运行程序。再有,MATLAB语言容易掌握和理解,这一点与数学语言相类似。

1测量平差原理的概述

根据所选参数的个数,对于一个实际平差问题,附有条件的间接平差模型本身实际上就是各种经典平差模型的概括模型,这一点经过仔细推敲可以发现,其余的经典平差模型都是它的特例。

间接平差的公式汇集:

间接平差模型为

系数矩阵B满秩,即rank(B)=t

法方程及解为:

单位权中误差:

平差参数的协方差阵:

平差函数的协方差阵:

2平差程序总体方案

本程序适用于测量中各种等级的高程控制网和测边控制网,程序在设计过程中,数据的储存状况是第一考虑的要素。为减少法方程系数的储存量,只要按行储存下三角阵或按列储存上三角阵中第一个非零系数起的系数,就是通常叫做维变带宽储存方法。

3水准模型网的间接平差

3.1水准路线的平差计算

(1)附合路线的平差计算

假定在图1示的A、B两水准点之间布设一条水准路线,A、B两水准点的高程为已知,分别设为C为中间水准点。假定观测了所有的点的高程,现拟求C点的高程的最或是值。

可由水准路线A→C、B→C分别观测的高差Δ计算得出,由此而得到的观测高程分别设为Hc1、Hc2,其值为:

Hc1=

Hc2=

当Hc1、Hc2在不等精度条件下观测得出时,它们的“权”也不同,分别设为Pc1、Pc2,这样C点的高程的最或是值为:

图3-1水准路线图图3-2一个结点的水准网

(2)闭合路线的平差计算

闭合路线的平差计算原理与附合路线相同,因而(3-1)、(3-2)两式的结论适用于闭合路线的平差计算。

(3)具有一个结点的水准网的平差计算

如图3-2所示为具有一个结点的水准网,B,C,D,⋯为已知高程水准点,B→A,C→A,D→A,⋯为水准路线,则接点A的高程最或是值为:

3.3水准网间接平差程序信息设计

1)数据文件的组织

下面给出一个水准网输入数据文件的例子:

336(已知点个数、未知点个数、观测值个数)

101102103104105106(点号)

34.78835.25937.825(已知点高程)

1041011.6254.5(起点点号、终点点号、高差观测值、距离观测值)

(其中编号数组未知点在前,已知点在后)

2)水准网平差变量约定

表3-1变量约定表

3.4水准网程序与使用说明

3.4.1水准网程序流程图

图3-1水准网流程图

图3-2水准网图

3.4.2水准网程序的使用

本程序使用MATLAB的矩阵功能计算法方程,在运行程序前首先要有其始数据。其始数据是一文件的形式保存在磁盘中,文件的格式在上文已经说明过,编好文件后,

以后缀名.TXT的形式保存。执行时在MATLAB命令窗口直接键入文件名即可。

3.5案例

如图3-2水准网,104、105、106为已知点,101、102、103为待定点,已知点的高程分别为34.788,35.259,37.825。

观测高差和观测路线长度分别为:

h1=1.652,h2=-0.418,h3=0.714,h4=1.243,h5=-0.577,h6=-0.786

s1=4.5,s2=3.1,s3=3.4,s4=3.8,s5=4.3,s6=2.5

首先编数据文件,命名为data1.txt.

数据的格式如下:

336

10110210310410510634.78835.25937.825

1041011.6524.5101102-0.4183.1

1051020.7143.41021031.2433.8

106103-0.5774.3103101-0.7862.5

进入MATLAB界面,在命令窗口直接输入level3运行程序。弹出图3-3窗口

选择data1.txt即可运行出如下结果:

图3-3数据读入文件

图3-4计算结果

在图3-4中,分别输出了高程的平差值及精度。结果是一文本的形式保存,用户可对它进行编辑。

4总结

MATLAB软件将乏味的编程问题变得更加有趣起来,让人的精力更集中在重点问题上。但用MATLAB语言编程本身也有它的不足之处:

(1)由于MATLAB是一个解释器,会逐行对程序代码进行解释后执行,当要处理的数据量很大时,计算机的运行速度明显变慢了好多。

(2)用MATLAB进行界面开发时比其他面向对象语言开发的更复杂。

针对上面的问题,提出一些见解:

(1)为了提高整体程序的执行效率,应尽量多使用向量化的运算,而避免或少用for循环、while循环。

(2)用MATLAB所提供的应用程序接来解决MATLAB编程的代码执行效率不佳。

参考文献:

[1]崔明理.控制测量手册.山西:山西科学技术出版社,1999.1.

[2]吴俊昶.控制网测量平差2版.北京:北京测绘出版社,1998.1.

[3]武汉大学测绘学院测量平差学科组.误差理论与测量平差基础.武汉:武汉大学出版社,2003.1.

[4]张智星.MATLAB程序设计与应用.北京:清华大学出版社,2002.4.

[5]郭九训.控制网平差程序设计.北京:原子能出版社,2004.8.

[6]姚连壁,周小平.基于MATLAB的控制网平差程序设计.上海:同济大学出版社,2006.6.

[7]清源计算机工作室.MATLAB基础及其应用[M].北京:机械工业出版社,2000.

1本文得到福建省“绿色建筑施工与管理工程技术研究中心,闽教科〔2017〕13号”基金资助。

2作者简介:汪琴(1985-),女,硕士研究生,讲师,闽南理工学院专任教师。