利用EXCEL解决精密附合导线矩阵计算

时间:2022-06-01 01:45:15

利用EXCEL解决精密附合导线矩阵计算

【摘要】:本文介绍了精密附合导线平差的计算原理,并介绍了利用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月。

上一篇:化工工程长周期设备和大宗材料采购分析 下一篇:试论地铁图纸信息化管理