时间:2022-06-01 01:45:15
【摘要】:本文介绍了精密附合导线平差的计算原理,并介绍了利用EXCEL计算平差的一种方法。
【关键字】:平差计算,导线测量,VBA应用。
中图分类号:P258 文献标识码:A 文章编号:
1 前言
目前,电脑在施工单位已得到普及使用,在工程量及测量数据处理过程中多用电脑处理,Office中EXCEL是测量技术人员经常利用的工具。
精密导线平差因为涉及大量矩阵计算,手算比较繁琐且容易出错。本人利用EXCEL处理测量资料的经验,总结出了用电脑计算导线精密平差的可行方法,希望能把测量人员从重复性的劳动中解脱出来。
2 精密附合导线平差计算原理
图1 是一个附合导线。图中A、B和C、D是两个已知点组,β1、βn 、是连接角,β2、β3、…βn-1是导线点的转折角,D1 、D2,…Dn-1 是导线边。下述提及的βi′、D′i 是角度、边长的观测值。现以下图简要说明附和合导线的计算原理。
图1
2.1 建立条件方程
根据图形的几何条件列出三个条件方程:方位角条件方程,纵坐标X条件方程,横坐标Y条件方程。如下所示:
(a)
(b) (2—1)
(c)
式(2—1)中βi是平差值,即式中Vi为改正数 ,则式(2—1)(a)整理为:
(2—2)
式中:
—方位角闭合差;
(2—3)
式(2—1)(b) 是平差值、、的函数,且有,,,,
引用泰勒级数展开并顾及 并用代替,代替整理有:
(2—4)
(2—5)
(2—6)
同理有
(2—7)
(2—8)
(2—9)
经整理得精密附合导线的三个条件方程如下:
(a)
(b)(2—10)
(c)
注:相关单位已改正。
2.2 平差值的求解以及点位坐标计算
(1)平差值计算:条件方程平差值计算根据条件平差原理“组成法方程—求解法方程系数—最或然改正数求解—平差值计算”,按矩阵表示如下:
N=K= W= (2—11)
式中:
N—法方程系数 ;
K—联系数;
W—闭合差。
(2)N阵中角度观测权和边长观测权的设定:
角度观测权按下式计算
(2—12)
式中:
—角度观测权;
u2——中误差参数;
—角度中误差。
因角度观测中统计的是同一条件下决定的,故有,则有=1。
边长观测权按下式计算
(2—13)
式中:
—边长观测权;
u2——中误差参数;
—边长中误差。
因为距离精度随距离D的不同而各异,因此在上式设定之后,观测边的权为(2—14)
(3)点位坐标计算:
根据上述计算由计算所的改正数求得平差后角度值及边长,并计算出各边的方位角及各导线点之间的坐标增量,最后计算个导线点点位坐标。
3 利用ExcelVBA实现过程
1、求法方程系数组成N的程序代码
Sub 求N_单击()
Dim r As Integer, n As Integer, X As Integer, Y As Integer
n = InputBox("请输入n的个数:") “n为条件方程式系数组成矩阵的列数”
r = InputBox("请输入r的个数:")“r为条件方程式系数组成矩阵的行数”
X = InputBox("请输入输出法方程系数的单元格行位置:")
Y = InputBox("请输入输出法方程系数的单元格列位置:")
Dim A(), B(), P() As Single
ReDim A(r, n)“为各条件式方程系数组成的矩阵”
ReDim B(r, r)“为法方程系数N组成的矩阵”
ReDim P(n)“重定义权组成的矩阵”
Dim k As Integer
For i = 1 To r
For j = 1 To n
A(i, j) = Sheet1.Cells(X1 + j, Y1 + i)
注:其中Sheet.Cells(X1+j,Y1+i)为各条件式方程系数的各个元素所在位置;
Next j
Next i
For i = 1 To n
P(i) = Sheet1.Cells(X2 + i, Y2)“为权矩阵的个个元素”;
Next i
For i = 1 To r
For j = 1 To r
For k = 1 To n
Sheet1.Cells(X + i, Y + j) = Sheet1.Cells(X + i, Y + j) + A(i, k) * A(j, k) * P(k)
B(i, j) = Sheet1.Cells(X + i, Y + j)
Next k
Next j
Next i
End Sub
2、求N 的逆矩阵
在此我向大家介绍另一种不用编程解决逆矩阵计算的方法,利用EXCEL自带函数计算(MINVERSE()),示例中使用的是3×3的矩阵,实际工作中对于多阶矩阵也是一样。(1)、输入待求逆矩阵:
(2)、在空白区选择一存放逆矩阵的区域,与待求逆矩阵大小相同:
(3)、保持该区域为选中状态,在公式输入栏输入公式“Minverse(a1:c3)”,并按“Ctrl+Shift+Enter”,特别注意,不能直接回车键,必须在按住“Ctrl”“Shift”后再按回车键:
(4)、逆矩阵为:
我们还可以把它录制为宏命令,以便下次的应用。
3、求联系数K的程序代码
Sub 矩阵乘法_单击()
Dim w(m) as Integer‘定义条件闭合差矩阵
Dim T1 as Integer,T2 as Integer,T3 as Integer
For T3 = 1 To r
W(T3) = Sheet1.Cells(X1 + T3, Y1)“读取闭合差矩阵”
Next T3
'For T1 = 1 To 3
For T2 = 1 To 3
For T1 = 1 To 3
Sheet1.Cells(X + T2, Y) = Sheet1.Cells(X + T2, Y) - Sheet1.Cells(X2 + T2, Y2 + T1) * W(T1)“联系数矩阵计算,Sheet1.Cells(X2 + T2, Y2 + T1)为N的所在位置”
Next T1
Next T2
'Next T1
End Sub
注:矩阵乘法计算也可以用EXCEL函数“MMULE()”计算。具体参见EXCEL帮助 。
4、求改正数V的程序代码
Sub 求改正数v_单击()
Dim iAs Integer, j As Integer
Dim a(r, n)As Double “法方程系数组成N”
Dim P(n)As Double“权矩阵P”
Dim K(r)As Double“联系数K”
Dim V(n )As Double “改正数V”
For i = 1 To r
For j = 1 To n
a(i, j) = Sheet1.Cells(X1 + j, X2 + i)“读取法方程系数组成N”
Next j
Next i
For i = 1 To n
P(i) = Sheet1.Cells(X2 + i, Y2) “读取权矩阵P”
Next i
For i = 1 To r
K(i) = Sheet1.Cells(X3 + 1, Y3) “读取联系数K”
Next i
For i = 1 To n
For j = 1 To r
V(i) = V(i) + a(j, i) * K(j) /P(i)
Sheet1.Cells(X + i, Y) = V(i)
Next j
Next i
4 总结
根据上述介绍精密附合导线平差计算的难点部分已经得到解决,而且本文提及的解决方法基于计算机常规办公软件EXCEL的应用,提高了工程测量内业计算的速度与准确度,充分发挥了现有办公设备的功能,使测量人员从繁琐的平差计算中解脱出来,极大地提高了工作的效率,有很大的现实意义。
参考文献
[1] 张坤宜主编,交通土木测量,人民交通出版社,1998年;
[2] 郭禄光等,最小二乘法与测量平差,上海,同济大学出版社,1985年;
[3] 崔希璋,陶本藻,矩阵在测量平差中的应用,北京:测绘出版社,1980年;
[4] 工程测量规范 GB 50026—93;
[5] 精密工程测量规范 GB/T 15314—94;
[6] 邱先文,条件平差与间接平差系数矩阵之积为零矩阵的探讨,江西测绘,2005年1月。