平差课程设计报告
实验一
设计原始资料
水准网严密平差及精度评定示例。
如图所示水准网,有2个已知点,3个未知点,7个测段。各已知数据及观测值见下表
已知点高程H1=5.016m H2=6.016m
高差观测值(m)
高差观测值(m)
端点号高差观测值测段距离序号1-31.3591.111-42.0091.722-30.3632.332-41.0122.743-40.6572.453-50.2381.465-2-0.5952.67(3)求各待定点的高程;3-4点的高差中误差;3号点、4号点的高程中误差。(提示,本网可采用以测段的高差为平差元素,采用间接平差法编写程序计算。)
二、水准网间接平差思路
⑴.根据网型确定已知水准点数H1 H2,未知水准点数u,总点数n,必要观测数t,多余观测数r。
⑵.确定参数。
为平差后能直接求得待定点高程平差值,以3个待定点高程平差值为参数。设3,4,5点的高程平差值分别为,, 。
⑶.列立条件方程.
左侧为观测值(系数为1),右侧为参数和常数项,并进一步改化成误差方程,最终写成矩阵形式。得到系数矩阵A和常数项L
⑷.列立法方程,并解求法方程。
⑸.精度评定。
计算单位权中误差的估值:
评定各待定点的高程中误差: 各待定点的精度即为:
评定高程平差值的精度:
四、平差程序设计思路
已知数据的输入
需要输入的数据包括水准网中已知点数、未知点数以及这些点的点号、已知高程和高差观测值、距离观测值等。本程序采用文件方式进行输入,文件输入的格式如下:
第一行:已知点个数、未知点个数、观测值个数
第二行:点号 (已知点在前,为支点在后)
第三行:已知高程 (顺序与上一行的点号对应)
第四行起:高差观测值,按照“起点点号,终点点号,高差观测值,距离观测值”的顺序输入。
平差计算过程
(1)近似高程计算。
(2)列立观测值的误差方程。
(3)平差解算。
计算结果的输出
计算的中间结果和最后结果都实时地在文本框中显示,最后还可以把文本框中的内容保存在文本文件中。
界面设计
根据以上分析,进行界面设计。用菜单组织程序,用文本框显示数据的输入、计算和输出情况。由于涉及到打开和保存文件的操作,所以还需要一个通用对话框。
菜单设计
标题 名称 快捷键标题 名称 快捷键文件(&File) mnuFile -
…打开数据 mnuOpen Ctrl+O
…保存结果 mnuSave Ctrl+S
…退出 mnuExit Ctrl+E计算(&Calc) mnuCalc -
…近似高程 mnuHeight -
…误差方程 mnuEqu -
…平差计算 mnuAdj -
五、程序流程图
六、程序源代码及说明
程序中涉及的公共变量及其说明如下:
Dim strFileName As String
Dim nn%, un%, tn%, hn% '已知点个数,未知点个数,总点数,观测值个数
Dim Pname() As String '点名数组
Dim Hknown() As Double '已知高程数组,存放已知点高程和高程近似值
Dim be%(), en%() '观测值的起点和终点编号数组,存储的是点序号
Dim h#(), s#() '高差观测值数组和距离观测值数组
Dim A#(), X#(), P#(), L#() '间接平差的系数阵、解向量、权阵和常数向量
'通用的条件平差解算过程:输入系数矩阵A、权矩阵P、常数向量L和解向量X,求出X,并通过参数传出去
Public Sub CondiAdjust(b, P, W, V)
Dim b1%, b2%, p1%, p2%, w1%, v1% '输入矩阵或向量的大小
Dim Q#(), Bt#(), QBt#(), Nbb#(), k#(), i% '几个中间矩阵
'计算并检查输入矩阵或向量的大小
On Error Resume Next
b1 = UBound(b, 1) - LB