基于Excel的导线平差计算
2019-10-21李张华姚连璧
李张华 姚连璧
摘要:本文主要探讨如何利用Microsoft Excel内置的VBA来编写导线网平差的计算程序的方法。该方法具有计算步骤、计算方法可视化,计算原理、计算公式紧密结合的解题式特点,非常适合刚刚进入测量工作中的工作人员解决测量实践中平差计算问题并能从基础逐步掌握测量平差的原理。
关键词:测量误差;测量平差;导线网;平差计算;最小二乘法
1引言
Microsoft Excel是微软公司开发的Office办公软件之一,是目前市面上使用率最高也是功能最全面的电子表格软件。它不仅拥有丰富的电子表格制作和编辑功能,还拥有功能强大的函数计算功能,能够创建和编辑函数公式,可以利用软件系统本身提供的函数公式来完成各项复杂的数学计算。
本文在介绍Microsoft Excel基本的运算操作方法的基础上,结合平差算例全面阐述Microsoft Excel在导线测量平差中的应用方法。
2闭合导线平差和附合导线平差的基本原理和方法
2.1角度闭合差的计算与调整
(1)计算闭合差:
(2)计算限差:
(3)若在限差内,则按平均分配原则,计算改正数:
(4)计算改正后新的角值:
2.2 坐标增量闭合差的计算与调整
(1) 计算坐标增量闭合差。 有:
导线全长闭合差:
导线全长相对闭合差:
(2)分配坐标增量闭合差
若 K不大于1/2000 ,则将fx、fy以相反符号,按边长成正比分配到各坐标增量上去。并计算改正后的坐标增量。
2.3坐标计算
根据起始点的已知坐标和经改正的新的坐标增量,来依次计算各导线点的坐标。两相邻导线点i,j,已知点的坐标及i点至j点的坐标增量,用下式推算j点的坐标:
闭合导线从已知点开始进行推算回已知点应当与原来的已知数据值相同,作为推算正确性的检核。
3基于Excel实现测量平差程序
3.1 Microsoft Excel的基本功能
Microsoft Excel中有大量的数学公式和数学函数可以选择使用,利用Microsoft Excel可以执行许多数学计算,并且在分析信息和管理电子表格中的数据信息列表中,可以实现许多便利的功能。
3.2 公式及函数
3.3 Excel与VBA
Excel 之所以能在工程测量上发挥其独到的作用,关键在于其有强大的函数功能。Excel 内置的函数约 9大类 333 种,还能利用宏自定义函数。准确使用Excel内置的函数,可以轻松解决各种常见计算问题。
(1) SUB过程
Sub函数是以Sub…End Sub语句封闭起来的程序块。每当该函数被调用时,就会将存放在函数块内的语句执行一次。执行中若碰到End Sub 、Exit Sub或Return便离开函数,回到调用此函数的下一个语句继续望下执行。编写程序时,在模块、对象类模块和结构中定义Sub函数。模块内的Sub函数都默认为Public,表示可以从应用程序任何位置调用此Sub函数。除了Main函数外,其他函数是在被调用才执行。
Sub函数定义的语法如下:
[Private∣Public]Sub函数名称([参数类表])
[程序块]
[Exit Sub]
End Sub
Sub函数是以Public Sub或Private Sub开头,最后以End Sub结束。当执行到End Sub后即返回紧接再原调用处的下一个语句继续往下执行。若中途要离开函数,可使用Exit Sub语句。
调用Sub函数的语法有下列两种方式:
语法1:Call函数名称([参数列表])
语法2:函数名称([参数列表])
调用程序与被调用程序之间若无数据传递,参数列表可省略(即不传任何参数);若不省略,参数列表的数目可以是一个或一个以上的参数。
(2) Function过程
Sub函数和Function函数两者都可以做参数传递,但两者使用上的主要差异是Sub函数没有返回值,Function函数则有返回值。有关Function函数的语法如下:
[Public∣Private] Function函数名称([参数列表]) [As数据类型]
[语句块]
函数名=表达式
[Exit Function]
或(Return表达式)
End Function
测试函数
IsNumeric(x) 是否为数字, 返回Boolean结果,True or False
IsDate(x) 是否是日期, 返回Boolean結果,True or False
IsEmpty(x) 是否为Empty, 返回Boolean结果,True or False
IsArray(x) 指出变量是否为一个数组。
IsError(expression) 指出表达式是否为一个错误值
IsNull(expression) 指出表达式是否不包含任何有效数据 (Null)。
IsObject(identifier) 指出标识符是否表示对象变量
4基于Excel的闭合导线测量平差
4.1表格创建与数据录入
4.2 VBA程序设计
打开VBAProject的sheet1代码窗口录入代码,并添加窗口,界面及运算结果如下图所示:
点击计算后,显示计算结果如下:
5结论
Excel 功能强大,易学易操作,如果将相关程序编在一个文件下不同的工作簿中,并用适当语句将计算结果传至其它工作簿,就会形成数据共享,大大提高计算速度,而且对老版本下所编程序,新版本对其有自动升级功能。总之只要Excel 软件有一定了解,同时参考本例的基本思路,结合各自单位仪器、《规范》 及具体作业习惯,量体裁衣,大家一定能在较短的时间内编出适合自己具体情况的专用程序。
参考文献:
[1]李孟山、张文彦编.工程测量概论.西安地图出版社.2004.
[2]美John Walkenback著.Excel 2003 高级VBA编程宝典.电子工业出版社.
[3]孔祥元.国家标准新版GB50026-2007工程测量规范.武汉大学出版社.
(作者单位:同济大学)