APP下载

基于Matlab的水准网间接平差程序设计①

2011-12-26赵亚红周文国

华北科技学院学报 2011年3期
关键词:水准程序设计个数

赵亚红 周文国

(华北科技学院土木工程系,北京东燕郊 101601)

基于Matlab的水准网间接平差程序设计①

赵亚红②周文国

(华北科技学院土木工程系,北京东燕郊 101601)

设计水准网数据结构,存储在文本中,按照水准网的起点、终点、观测数据相对应关系建立矩阵,利用Matlab强大的矩阵运算功能,通过间接平差方法,按照最小二乘原理,求得任意水准网的未知点的最或然高程值,对平差结果输出存储,程序直观、简便。并用实例验证了其正确性及通用性。

水准网;间接平差;Matlab

水准网间接平差的的具体过程是:(1)根据水准网形进行分析,列误差方程;(2)根据误差方程系数列法方程;(3)解算法方程,求参数X及V;(4)求最或然值、精度评定。其中重点是误差方程的列立及误差方程系数矩阵的确定,在大多数利用Matlab计算水准网平差问题的文献中,误差方程的系数矩阵均为手动输入,不适用于任何网形,而且对于输出结果没有一定的存储文件,针对以上存在的缺陷,本文利用Matlab强大的矩阵运算且易学易懂等优点,通过程序设计,利用.mat文件,根据水准网自身数据结构的特点,自动生成系数矩阵B,进行平差计算,最终以文本的格式输出最终结果,简便快捷,减少了工作量。

1 水准网数据结构的设计

已知点个数未知点个数观测值个数

已知点点号已知点高程

起点点号终点点号观测高差距离值利用Matlab的函数fopen语句打开文本文件。针对不同的网形,只需修改已知数据文件即可。

2 水准网程序设计

根据水准网平差的计算过程,本程序设计的流程如图1

图1 水准网间接平差程序流程图

2.1 水准网所有点高程确定

在水准网间接平差计算过程中,按照已知点的个数确定参数个数,有已知点时,参数个数等于未知点个数,没有已知点时参数个数等于未知点个数减1,但是在进行方程列立时,为了计算方便首先要求得参数X的近似值,但是对于用程序实现其自动求取近似值比较麻烦,为了Matlab实现运算简单,因此在本程序中,所有未知点的高程起始值均为0,通过以下代码实现。

2.2 水准网误差方程系数矩阵生成

对于水准网间接平差而言,最重要的计算步骤不外乎误差方程的列立,而对于程序设计重点和难点就是自动生成误差方程系数矩阵B和常数项L。在本程序的设计过程中,利用起始点、终点、高差。距离之间的对应关系,利用循环计算常数项L,由于水准网比较特殊,系数阵B也特殊基本上是0、1、-1组成的矩阵,根据这一特点利用对应关系确定其系数阵B。

%QD,ZD存放的是与DD相对应的点点号在DD中的索引(位置),通过自定义函数实现,方便确定B与L。

2.3 水准网平差计算与结果输出

1)对于水准网平差计算,相对Matlab而言。仅需几行代码可以实现

2)结果输出,为了使结果直观,便于查看各个未知点高程最或然值和其高程平差值中误差,把结果输出到.txt中。利用Matlab中的fopen函数打开空文件或建立空文件,利用fprintf将计算结果按照一定的格式输出,

3 实例验证

[6]p108的例题7-1,已知HA= 237.483,B、C、D未知,观测数据如下存储:

表1 计算结果对照表

程序计算结果与文献结果一致,说名程序设计正确。

4 结论

在进行平差计算的过程中,最繁琐复杂的莫过于矩阵运算,尤其是矩阵求逆,本文利用MATLAB强大的矩阵运算功能,轻而易举的解决了此问题,而且其语言简单易懂,在《测量平差》教学过程中,只要有一点的基础,就可以实现一些复杂的计算。本文根据数据文件结构,自动读取数据,按照数据的存储寻找起点、终点、高差之间的对应关系,列误差方程,计算常数项及系数矩阵,为了计算方便,把未知点的高程初始值均设为0,经过平差解算其改正数,中误差等,并通过读写文件输出平差的最终结果,而且本程序适用于任何网形的水准网,只需对数据文件进行修改即可。另外对于导线网、三角网在误差方程的构成上与水准网近似,因此也可以用相同的设计思路进行讨论。

参考文献:

[1]周建兴,等.Matlab从入门到精通[M].北京:人民邮电出版社,2008:10-57

[2]Rafael C.G on zalez.Digital Image Processing Second Edition[M].北京:电子工业出版社,2007:4-35

[3]赵亚红,郝延锦,等.Matlab在测绘工程领域中的几点应用[J].地矿测绘,2011,27(1):38-40

[4]潘雄,付宗堂.MATLAB软件在测量平差教学中的应用[J].测绘工程,2007,(1):76-78

[5]聂桂根.MATLAB在测量数据处理中的应用[J].测绘通报,2001,(2):39-40

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

Indirect Adjustment Programming of Level Net Based on MATLAB

ZHAO Yahong,ZHOU Wenguo

(North China Institute of Science and Technology,Yanjiao Beijing-East101601)

On the basis of data structure designed,the relation of point s and lines of level net,the surveying data and the known data are st ored in the text,the matrixs were set up through the relation of the jupping-off points,end-points and the surveying data.And a program is designed in MATLAB to get the value of most probable by its strong abilty of calculating matrix.the result was output and stored.At last,the example proved the programme was right.

level Net;Indirect Adjustment;Matlab

P207+.2

A

1672-7169(2011)03-0058-03

2011-03-14

赵亚红(1982-),女,河北衡水人,硕士,华北科技学院土木工程系讲师,研究方向:测绘工程教学、遥感图像及数据处理。

猜你喜欢

水准程序设计个数
怎样数出小正方体的个数
一种改进的水准网条件平差算法
基于Visual Studio Code的C语言程序设计实践教学探索
等腰三角形个数探索
怎样数出小木块的个数
从细节入手,谈PLC程序设计技巧
媲美激光光源的成像水准Acer宏碁E8620C
怎样数出小正方体的个数
高职高专院校C语言程序设计教学改革探索
PLC梯形图程序设计技巧及应用