基于 Matlab 的水准网间接平差程序设计① 赵亚红② 周文国 ( 华北科技学院土木工程系,北京 东燕郊 101601) 摘 要: 设计水准网数据结构,存储在文本中,按照水准网的起点、终点、观测数据相对应关系建立矩阵,利用 Matlab 强大的矩阵运算功能,通过间接平差方法,按照最小二乘原理,求得任意水准网的未知点的最或然高程值,对平差结果输出存储,程序直观、简便。并用实例验证了其正确性及通用性。 关键词: 水准网; 间接平差; Matlab 中图分类号:P207 + . 2 文献标识码: A 文章编号: 1672 -7169( 2011) 03 -0058 -03 水准网间接平差的的具体过程是: ( 1) 根据水准网形进行分析,列误差方程; ( 2) 根据误差方程系数列法方程; ( 3) 解算法方程,求参数 X 及V; ( 4) 求最或然值、精度评定。其中重点是误差方程的列立及误差方程系数矩阵的确定,在大多数利用 Matlab 计算水准网平差问题的文献中,误差方程的系数矩阵均为手动输入,不适用于任何网形,而且对于输出结果没有一定的存储文件,针对以上存在的缺陷,本文利用 Matlab 强大的矩阵运算且易学易懂等优点,通过程序设计,利用. mat 文件,根据水准网自身数据结构的特点,自动生成系数矩阵 B,进行平差计算,最终以文本的格式输出最终结果,简便快捷,减少了工作量。 1 水准网数据结构的设计 水准网根据其网形可分为附合、闭合和支水准。其中应用最广的为附合和闭合水准网。不管何种网形,一条水准路线包括四个数据: 起始点、高差、距离、终点,且 H起 + h高差 = H终 ,因此在进行数据结构的设计中,必须体现出终点、起点从而判断其与高差关系。在本程序设计中,利用 QD [],ZD[],hc[],S[],DD[]分别表示起点点号、终点点号、高差、距离、所有点点号所组成的矩阵。在进行程序设计时,为了简便快捷,利用读入数据形式,读取所有已知数据,格式如下: 已知点个数 未知点个数 观测值个数已知点点号 已知点高程起点点号 终点点号 观测高差 距离值 利用 Matlab 的函数 fopen 语句打开文本文件。针对不同的网形,只需修改已知数据文件即可。 2 水准网程序设计 根据水准网平差的计算过程,本程序设计的流程如图 1 图 1 水准网间接平差程序流程图 2. 1 水准网所有点高程确定 在水准网间接平差计算过程中,按照已知点的个数确定参数个数,有已知点时,参数个数等于未知点个数,没有已知点时参数个数等于未知点个数减 1,但是在进行方程列立时,为了计算方便首先要求得参数 X 的近似值,但是对于用程序实 85 第 8 卷 第 3 期 华北科技学院学报 2011 年 7 月 ① ② 收稿日期:2011 -03 -14 作者简介: 赵亚红( 1982 - ) ,女,河北衡水人,硕士,华北科技学院土木工程系讲师,研究方向: 测绘工程教学、遥感图像及数据 处理。 现其自动求取近似值比较麻烦,为了 Matlab 实现运算简单,因此在本程序中,所有未知点的高程起始值均为 0,通过以下代码实现。 HHH = HH; % HH 为读取文件中已知点高程矩阵,HHH 为未知点高程 %zd 总点数,wz 未知点数,fori =1: b HHH( zd - wz + i) = 0; % 给未知高程点添加高程零生成 HHH,b 为未知点个数 end 2. 2 水准网误差方程系数矩阵生成 对于水准网间接平差而言,最重要的计算步骤不外乎误差方程的列立,而对于程序设计重点和难点就是自动生成
基于matlab的控制网平差程序设计,基于Matlab的水准网间接平差程序设计
最新推荐文章于 2023-06-09 10:18:12 发布