大学城论文网站欢迎您!
站内搜索:
   
  
最新文章
基于传递矩阵的导线网间接平差研究
来源: | 作者:dxclww | 发布时间: 2020-05-20 | 1981 次浏览 | 分享到:
众所周知,导线网是建立平面控制的一种常见方法,由于其观测方便,布设灵活,在实际工作中得到广 泛的应用[1].但因其布设形式的多样性,使得在平差计算中,列立误差方程时,难于找到统一的规律和方 法.现有的导线网平差软件多数都是基于 VB、C、C ++、VC ++等语言开发的,由于这些编程语言内部很少 嵌套数值处理模块,在数值计算时,特别是大规模的数值运算,显得力不从心,不得不编写大量的数值 计算模块,使得程序冗长,效率较低.Matlab 语言不仅具有强大的数值计算能力、卓越的数据可视化功能, 丰富的工具箱、而且同样具有其他编程语言的交互 GUI 功能[2 -3].尽管有科技工作者利用 Matlab 平台,设 计出导线网的数据结构[4]和利用 Excel 进行数据导入[5],但仍然存在代码编写复杂,数据存储不十分方便 等诸多问题。 本文基于 Matlab 优势[6]与导线网网形的多样性、列立误差方程形式复杂等特点,研究了导线网中角 度、边长的规律,并利用传递矩阵建立了观测值误差方程,实现了从已知数据、观测数据(边长和角度)读 取,导线网的间接平差计算、精度评定及网图绘制,并通过实例验证了软件功能模块的正确性,获得了可靠 的结果,很好地解决了导线网观测值方程多样性的问题,为实现导线网间接平差程序的编制提供了保证, 丰富了导线网平差程序的算法,满足了人们多样化的需求[7]。 1 传递矩阵及其建立 1.1 传递矩阵间接平差思路 首先建立用于计算导线网中近似方位角和近似坐标的传递矩阵,然后利用观测值(边长和角度)方程 的规律,根据传递矩阵列立观测值误差方程,最后利用 Matlab 强大的数值处理功能,实现导线网数据的读入(包括已知数据坐标、方位角,观测值边长和角度),误差方程的列立,导线网间接平差计算与精度评定 及其结果输出,网图的绘制等功能。 1.2 传递矩阵的建立 所谓传递矩阵就是事先将已知数据和观测数据信息依据一定的规则建立一个方便计算的中间矩阵, 利用这个矩阵可以大大方便和简化复杂的平差计算.由于在导线网中,观测值既有边长又有角度,其两类 观测值的误差方程的形式又多种多样.根据导线网观测值及其误差方程的特点,利用导线网数据建立其传递矩阵将其计算程序进行简化。 首先将导线网按照一定的顺序对网中的点进行编号,然后按照以下形式建立传递矩阵: 传递矩阵中的第一行数据从左至右依次表示已知点个数,未知点个数,角度观测量个数,边长观测量 个数,总点数,总观测量个数,测角精度,测边精度; 第二行数据表示点号,先已知后未知,点号按照导线前进方向从“1”开始编号; 第三行是已知点坐标,先是 X 坐标,然后是 Y 坐标,顺序与以上已知点顺序相同,如果给出的是一个 起始方位角和一个点的坐标,那么第一个值为“0”(方便矩阵运算),接下来是方位角的值,输入方式为度 分秒依次输入(7 位的整数).终边方位角存储方式与起始边方位角相同; 第四行角度观测值的输入,每一行存储一个观测角:先存储组成该角度的控制点点号,按照导线的前 进方向依次存储,然后是角度值,度、分、秒分开存储,最后记录其属性,如果是左角则记为“1”,如果是右 角则记为“0”,以便于计算;最后是边长观测值,存储方式与角度存储方式类似,依导线前进方向存储边长 的起点、终点和边长观测值. 2 利用传递矩阵进行间接平差 2.1 对于近似值的计算 由于角度观测值,涉及到三个点,首先利用传递矩阵中已知数据中找到已知角度,然后根据第四行中 角度观测值判断,观测角度为左角还是右角,左角在传递矩阵中为 1,否则为 0,按照文献[1]公式计算其 近似方位角;得到近似方位角后可以根据公式计算未知点近似坐标,进而计算近似边长. 2.2 误差方程建立及方程系数的确定 在导线网中,观测量有角度和距离(边长),而且误差方程的列立并不完全统一,为此,根据不同的网 形结构对角度观测值及边长观测值进行了分类。 在所建立的传递矩阵中第四行角度观测值的输入过程中,每 一个角度观测值按照前进方向首先输入组成角度的三个点,然后 是角度观测值.在建立误差方程时,首先判读传递矩阵中角度观 测值涉及到的三个点分别属于图2中哪一种情况,然后按照不同的情况误差方程系数不同.根据传递矩阵判断 组成边长的两个点是已知点还是未知点,如果有已知点,则公式(2)中,对应已知点误差方程系数为“0”,对应未 知点系数按照公式(2)计算.依次读取传递矩阵中的所有角度和边长观测值,按照以上规则计算误差方程系数, 并按照一定的顺序存储,以进行下一步计算. 2.3 平差计算及图形绘制 在平差计算的整个过程中,最核心也是最困难的部分便是误差方程系数阵 B 的组建,之后的平差值 求解以及精度评定,主要是矩阵的相关运算,在 Matlab 里面很容易实现,在此就不一一列举相关代码了. 同时 Matlab 具有强大的绘图功能,利用 line 函数可以实现二维图形的绘制,但是需要把图形转换成计算 机识别的数据.图分为点和边,而角度和边长属于无方向的,高差则属于有方向的,基于此我们可以把导线 网图表示成相关矩阵的形式[9],最后通过 line 函数进行图形绘制. 3 软件测试及试验分析 本次测试数据采用参考文献[10]中第 41 页 5.5.57 的算例,依据已知和观测数据信息建立的传递矩 阵为 t,通过程序读取该传递矩阵 t 中的数据,建立误差方程进行平差计算,最后输出平差结果、精度评定 及导线网图程序运行结果如图 3 所示. 4 结 论 1)本文建立了导线网的通用的传递矩阵并把导线数据转换成计算机可以识别的矩阵数据,解决了导 线网网形的多样化问题,可以推广到其他的测量控制网中,如测角网、测边网等. 2)建立了导线网的角度和边长的误差方程,基于 Matlab 语言实现了附合导线和闭合导线的严密平差问题,并用实例验证了本程序运算结果的可靠性.此程序的开发具有一定的现实意义. 3)基于 Matlab 实现了导线网的平差计算,提高了计算效率,解决了导线网复杂的误差方程建立和计算问题.
   


​                                                                                                           ​大学城论文网@2020​​​  粤ICP备08125947号-1​​​​​​​​​​​​​​