logo资料库

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

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
第 8 卷 第 3 期 华北科技学院学报 2011 年 7 月 基于 Matlab 的水准网间接平差程序设计 ① 赵亚红② 周文国 ( 华北科技学院土木工程系,北京 东燕郊 101601 ) 摘 要: 设计水准网数据结构,存储在文本中,按照水准网的起点、终点、观测数据相对应关系建立矩阵,利 用 Matlab 强大的矩阵运算功能,通过间接平差方法,按照最小二乘原理,求得任意水准网的未知点的最或然 高程值,对平差结果输出存储,程序直观、简便。并用实例验证了其正确性及通用性。 关键词: 水准网; 间接平差; Matlab 中图分类号:P207 + . 2 文献标识码: A 文章编号: 1672 - 7169( 2011) 03 - 0058 - 03 2 1 4 3 ; ( 水准网间接平差的的具体过程是: ( 水准网形进行分析,列误差方程; ( 程系数列法方程; ( ) 根据 ) 根据误差方 ) 解算法方程,求参数 X 及 ) 求最或然值、精度评定。其中重点是误差 V 方程的列立及误差方程系数矩阵的确定,在大多 数利用 Matlab 计算水准网平差问题的文献中,误 差方程的系数矩阵均为手动输入,不适用于任何 网形,而且对于输出结果没有一定的存储文件,针 对以上存在的缺陷,本文利用 Matlab 强大的矩阵 运算且 易 学 易 懂 等 优 点,通 过 程 序 设 计,利 用 . mat 文件,根据水准网自身数据结构的特点,自 ,进行平差计算,最终以文本的 动生成系数矩阵 B 格式输出最终结果,简便快捷,减少了工作量。 1 水准网数据结构的设计 水准网根据其网形可分为附合、闭合和支水 准。其中应用最广的为附合和闭合水准网。不管 何种网形,一条水准路线包括四个数据: 起始点、 高差、距 离、终 点,且 H起 + h高差 = H终 ,因 此 在 进 行数据结构的设计中,必须体现出终点、起点从而 判断其与高差关系。在本程序设计中,利用 QD [], []分别表示起点点号、 终点点号、高差、距离、所有点点号所组成的矩阵。 在进行程序设计时,为了简便快捷,利用读入数据 形式,读取所有已知数据,格式如下: [], hc [], S [], DD ZD 已知点个数 未知点个数 观测值个数 已知点点号 已知点高程 起点点号 终点点号 观测高差 距离值 利用 Matlab 的函数 fopen 语句打开文本文件。针 对不同的网形,只需修改已知数据文件即可。 2 水准网程序设计 根据水准网平差的计算过程,本程序设计的 流程如图 1 图 1 水准网间接平差程序流程图 2. 1 水准网所有点高程确定 在水准网间接平差计算过程中,按照已知点 的个数确定参数个数,有已知点时,参数个数等于 未知点个数,没有已知点时参数个数等于未知点 ,但是在进行方程列立时,为了计算方便 个数减 1 首先要求得参数 X 的近似值,但是对于用程序实 收稿日期: 作者简介: 赵亚红( 2011 - 03 - 14 1982 - ① ② 处理。 85 ) ,女,河北衡水人,硕士,华北科技学院土木工程系讲师,研究方向: 测绘工程教学、遥感图像及数据 中国煤炭期刊网 www.chinacaj.net
第 3 期 赵亚红等: 基于 Matlab 的水准网间接平差程序设计 现其自动求取近似值比较麻烦,为了 Matlab 实现 运算简单,因此在本程序中,所有未知点的高程起 ,通过以下代码实现。 始值均为 0 ; % HH 为 读 取 文 件 中 已 知 点 高 程 矩 HHH = HH 阵, % zd 总点数, fori = 1 HHH 为未知点高程 wz 未知点数, b : % 给未知高程点添 ; ( = 0 HHH ) zd - wz + i , 加高程零生成 HHH b 为未知点个数 end 2. 2 水准网误差方程系数矩阵生成 对于水准网间接平差而言,最重要的计算步 骤不外乎误差方程的列立,而对于程序设计重点 和难点就是自动生成误差方程系数矩阵 B 和常 数项 L。在本程序的设计过程中,利用起始点、终 点、高差。距离之间的对应关系,利用循环计算常 ,由于水准网比较特殊,系数阵 B 也特殊基 数项 L 本上是 0、1 、- 1 组成的矩阵,根据这一特点利用 对应关系确定其系数阵 B。 , ZD 存放的是与 DD 相对应的点点号 在 DD 中的索引( 位置) ,通过自定义函数实现,方 便确定 B 与 L。 % QD : fori = 1 c e = QD ( f = ZD ) ( L i ( ) ; i ) ; i = h ( ) i ( - HHH ( ) f - HHH ) ) ; ( e % 常数项 L End % 解求系数矩阵 B fori = 1 c : ( e = be ( f = en i ) ; i ) ; ( ( ) ( e , i1 i i1 = e - zd - wz i2 = f - zd - wz ) ; ) ; ( if HHH ( B ) ; = = 0 = - 1 ) end ( if ) ( f , i2 i ) = = 0 ; ) = 1 HHH ( B end end 2. 3 水准网平差计算与结果输出 ) 对于水准网平差计算,相对 Matlab 而言。 1 仅需几行代码可以实现 B’* p* l ) ; % 高 ( ) ; 1. / s % 解权阵 p = diag ( ) B’* p* B , B 系数阵, x = inv 程改正数 x * ( l 为常数项阵 % 观测值改正数 ; v = B* x - l ; L = h’+ v ( u0 = sqrt Qxx = inv % 高差观测值 ( c - b ) ; v’* p* v / ( ) ) ; B’* p* B ( ( u1 = u0* sqrt diag Qxx ) ) ; % 待定点高 程平差值中误差 ; Qll = B* Qxx* B’ ( ( ) ) ; 2 Qll diag uu = u0* sqrt ) 结果输出,为了使结果直观,便于查看各 个未知点高程最或然值和其高程平差值中误差, 把结果输出到 . txt 中。利用 Matlab 中的 fopen 函 数打开空文件或建立空文件,利用 fprintf 将计算 结果按照一定的格式输出, 3 实例验证 以参考文献[ ] 6 p108 的例题 7-1 ,已知 HA = 237. 483 , B、C、D 未知,观测数据如下存储: 1 3 5 A 237. 483 A B 5. 835 3. 5 A C 9. 640 4. 0 A D 2. 270 2. 5 B C 3. 782 2. 7 D C 7. 384 3. 0 表 1 计算结果对照表 点号 原始高程 程序计算高程( ) m 文献计算结果( ) m 2 4 3 0. 0000 0. 0000 0. 0000 243. 3299 239. 7457 247. 1210 243. 330 239. 746 247. 121 程序计算结果与文献结果一致,说名程序设 计正确。 4 结论 在进行平差计算的过程中,最繁琐复杂的莫 过于矩阵运算,尤其是矩阵求逆,本文利用 MAT- LAB 强大的矩阵运算功能,轻而易举的解决了此 95 中国煤炭期刊网 www.chinacaj.net
第 8 卷 第 3 期 华北科技学院学报 2011 年 7 月 问题,而且其语言简单易懂,在《测量平差》教学 过程中,只要有一点的基础,就可以实现一些复杂 的计算。本文根据数据文件结构,自动读取数据, 按照数据的存储寻找起点、终点、高差之间的对应 关系,列误差方程,计算常数项及系数矩阵,为了 计算方便,把未知点的高程初始值均设为 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-East 101601 ) : Abstract On the basis of data structure designed , the relation of point s and lines of level net was output and stored. At last , the example proved the programme was right. : ; level Net Indirect Adjustment ; Matlab data are st ored in the text , the matrixs were set up through the relation of the jupping - off points data. And a program is designed in MATLAB to get the value of most probable by its strong abilty of calculating matrix. the result , the surveying data and the known , end - points and the surveying Key words 06 中国煤炭期刊网 www.chinacaj.net
分享到:
收藏