开篇:润墨网以专业的文秘视角,为您筛选了一篇工程测量控制网平差算法设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘要: 本文主要介绍了工程测量平差程序所用到的函数模型与算法,重点讨论了参数平差方法.对于近似坐标推算作了较多的分析,采用了深度遍历算法,并且解决了导线网和三角网近似坐标的问题。在此基础上设计了能够解决工程测量中各种网型平差问题的平差算法。
关 键 词:测量平差 参数平差 工程测量网 深度遍历
中图分类号:TB22文献标识码:A 文章编号:
Abstract:This paper mainly introduces the engineering measurement adjustment procedure used by the function model and algorithm, discusses the parameter adjustment method. For approximate coordinate calculation made more analysis, using depth traversal algorithm, and solved the wire network and the triangular mesh approximation the problem of coordinate. Based on the design can solve the engineering measurement of a variety of network type adjustment adjustment algorithm.
Key Words: Surveying adjustment; Parameter adjustment; Engineering Surveying;
引 言
工程控制网在平差模型的选择上,由于参数平差误差方程组成非常有规律,便于程序解算,因此在平差实践中间接平差得到了广泛的应用,本文主要以参数平差为模型建立数据结构,并以此编写主要算法解决以下问题。一、最小二乘平差原理在程序中的实现;二,适合各种工程测量网型的点位近似坐标的推算;三、 程序能解决理论上可解算的各种复杂网型。设计出能适应导线网,纯测角网,纯测边网,边角联合网,水准网,前、后、侧方交会网,附有限制参数的网型等的各种平差问题的通用算法。
1工程测量中的参数平差
参数平差通常选取待定点的坐标平差值为未知数,平差后直接求得待定点的坐标平差值,不必再进行其他换算,这种平差方法方便快捷,被广泛应用于工程平差计算中。参加平差的量可以是网中的直接观测量,如方向、边长,也可以是它们函数。参数平差的函数模型是误差方程,它是表达未知数与观测量之间关系的方程式。一般工程测量平面控制网的观测对象主要是方向和相临点之间的距离。因此坐标平差时主要列立各观测方向和观测边长的误差方程,再按照间接平差法的原理和步骤,由误差方程和观测值的权组成未知数法方程去解算待定点坐标平差值,并进行精度评定。
参数平差函数模型误差方程可概括为 , 而对于非线性函数,亦可以通过“泰勒公式”转化为线性式并最终化为以上形式。当以坐标为参数时,边与角的误差方程可归纳下:
将 式按照最小二乘原理推导,
(误差方程)=0(法方程)
转置后 .令 ,则 为法方程系数阵。
平面控制网按参数平差时,网中每一观测值都应该列立一个误差方程式。为便于计算,通常总是将观测值改正数表示为带定点坐标近似值改正数的线性函数式。坐标平差的第一步是列立误差方程式。对于方向网而言,参与平差的观测值是未定向的方向值,选定的未知数是待定点的横纵坐标值。按照消去定向角未知数法则(史赖伯法则),消去定向角未知数的步骤为:1,按每个测站列出该测站的全部方向误差方程式,不必列出定向角未知数,各误差方程式的权均为1:2,在每个测站的误差方程之后,增加一个该测站的和方程,此和方程的权为该站观测方向的负倒数。
无论是何种网型,我们都可以将其解析为各种基本的几何元素,其中至少包含一个测站,在一个测站上已知两点求照准点时均可以格式化为公式: , 。
2测量平差程序的数据结构与算法
采用附有限制条件的平差模型,程序以概算后的方向,边长观测值,近似坐标,固定方位角和基线为平差元素,函数模型和算法适合于各种控制网(三角网、测边网、边角网导线网、混合网、水准网)的平差计算和精度评定工作,平差结果包括点位中误差以及一些衍生的结果数据。
为了能适应不同网型的求解需要,将所有数据按点属性展开处理。并在点的基础上用边进行传输求解。无论在何种网型中,边数据始终贯穿其内,这就给我们构件数据结构提供了可靠的依据。
2.1近似坐标与近似高程的推算
通过广度遍历以测站为节点逐点推算近似坐标同样也可以采用深度遍历算法,下面给出了深度遍历有向图的方法
Public Function depthsearch(j As Integer, i As Integer)
For k = 1 To points(i).irr_num '传入的 参数测站 方向循环
For jj = 1 To points(points(i).irr_ate(k).target).irr_num ' '照准站方向循环
If points(points(i).irr_ate(k).target).irr_ate(jj).target = i Then ' 照准点回照本站求方向标号,如果是I则证明是以知站点,(默认当前点已知,同时照准点已推算)
stazimuth=azimuth(points(i).x,points(i).y,points(points(i).irr_ate(k).target).x,
points(points(i).irr_ate(k).target).y) '提取本站其始方向角值
angle = getl(points(i).irr_ate(k).l) '提取本站方向
Exit For ' hheight = point(mesite).Height
End If
Next jj
points(i).irr_ate(k).l = getl(points(i).irr_ate(k).l) - angle + stazimuth
points(points(i).irr_ate(k).target).x=points(i).x+svale(i,k)*Cos(getl(points(i).irr_ate(k).l)) '计算照准点是测站点的坐标
points(points(i).irr_ate(k).target).y=points(i).y+svale(i,k)*Sin(getl(points(i).irr_ate(k).l))
If points(i).issite 0 And points(points(i).irr_ate(k).target).do = False Then
points(i).do = True '标记'本点是测站而且照准点没有计算过则计算
depthsearch (points(i).irr_ate(k).target) '深度遍历
End If '计算照准点非测站点的坐标
Next k
End Function
c
近似坐标模块首先假设起始点坐标,该起始点必须是测站点,如该测站某方向上存在边数据且存在方向观测值,或者该数据能锁定整个图形,则以该方向为假设零方向,并根据边长推算该方向照准点的假设坐标。而对于没有任何边长的数据,可以假设边长,推算出所有近似坐标后通过平移、旋转、放缩等变换转化到实际坐标。通过以上处理后即有了两个起算点,将这两个点代入以下函数,进行各种网型近似坐标的推算。
2.2法方程的组成、求逆与解算
列出误差方程后,就可以根据误差方程列出法方程,方程可以采用一维或者二维的数组形式。
法方程求逆过程如下
Call inversion(nx(), nb()) '将约化后的法方程系数阵送入通用过程inversion()求逆
ReDim nb(zds) '工作数组清零
For i = 1 To zds '按点号循环,求点位中误差
If points(i).isknow = 0 Then
n1 = 2 * (i - yzd - 1) + 1 '计算i点x坐标未知数在未知数点集中的序号
n2 = n1 * (n1 + 1) / 2 'i点x坐标未知数协因数在协因数阵中序号
n3 = (n1 + 1) * (n1 + 2) / 2 'i点y坐标未知数协因数在协因数阵中序号
nb(i) = ma * Sqr(nx(n2) + nx(n3))
End If
Next i
如图,示例数据的计算
3结束语
本文详细讨论了工程测量平差程序的算法,使用最小二乘原理解决工程测量中的参数平差问题。设计了有向图和完全有向图的深度遍历优先的广度遍历算法,并实现了三角网导线网和高程水准网的平差解算问题。经数据检验其可靠性较高并且解决了多种网型的混合计算问题。
参考文献:
[1] 李玉宝编.测量平差基础.四川:西南科技大学
[2] 孔详元 梅是义编.控制测量学.武汉:武汉大学出版社
注:文章内所有公式及图表请用PDF形式查看。