1、测绘程序设计(六),第四讲 测量平差编程计算(四)-测量平差程序设计,主要内容 一、大地四边形的条件平差 二、单导线的间接平差 三、水准网的间接平差 四、平面控制网的间接平差,1.条件平差解算程序通用的条件平差解算过程:输入系数矩阵A、权矩阵P、常数向量W和解向量V,求出V,并通过参数传出去 Public Sub CondiAdjust(b, P, W, V)Dim b1%, b2%, p1%, p2%, w1%, v1% 输入矩阵或向量的大小Dim Q#(), Bt#(), QBt#(), Nbb#(), K#(), i% 几个中间矩阵计算并检查输入矩阵或向量的大小On Error Resu
2、me Nextb1 = UBound(b, 1) - LBound(b, 1) + 1If Err ThenMsgBox “系数矩阵B大小错误!“Exit SubEnd If,一、大地四边形的条件平差,On Error Resume Nextb2 = UBound(b, 2) - LBound(b, 2) + 1If Err ThenMsgBox “系数矩阵B大小错误!“Exit SubEnd IfOn Error Resume Nextw1 = UBound(W) - LBound(W) + 1If Err ThenMsgBox “常数向量W大小错误!“Exit SubEnd IfOn Er
3、ror Resume Nextv1 = UBound(V) - LBound(V) + 1If Err ThenMsgBox “改正数向量V大小错误!“Exit SubEnd IfOn Error Resume Nextp1 = UBound(P, 1) - LBound(P, 1) + 1,If Err ThenMsgBox “权矩阵P大小错误!“Exit SubEnd If On Error Resume Nextp2 = UBound(P, 2) - LBound(P, 2) + 1If Err ThenMsgBox “权矩阵P大小错误!“Exit SubEnd IfIf p1 p2 T
4、henMsgBox “权矩阵P不是方阵!“Exit SubEnd IfIf p1 b2 ThenMsgBox “权矩阵P与系数矩阵A大小不符!“Exit SubEnd IfIf b2 v1 ThenMsgBox “系数矩阵B大小与解向量V大小不符!“Exit SubEnd If,If b1 w1 ThenMsgBox “系数矩阵B大小与常数向量W大小不符!“Exit SubEnd If定义中间矩阵的大小ReDim Bt(1 To b2, 1 To b1), QBt(1 To b2, 1 To b1)ReDim Nbb(1 To b1, 1 To b1), K(1 To b1), Q(1 To
5、p1, 1 To p2)组成法方程并计算For i = 1 To p1 求Q矩阵Q(i, i) = 1 / P(i, i)Next iMatrixTrans B, BtMatrix_Multy QBt, Q, BtMatrix_Multy Nbb, B, QBt 法方程系数矩阵ShowMatrix Nbbkk = MRinv(Nbb)Matrix_Multy K, Nbb, WMatrix_Multy V, QBt, K End Sub,2.大地四边形条件平差,共有4个点,其中2个为起算点,2个未知点,应有4个必要观测(t=4),共有8个观测值(n=8),条件方程的个数为:r = n - t
6、= 4,A,B,C,D,对于大地四边形,,可以列出7个图形条件,但是只有 3 个是相互独立的,其余几个可以由这 3 个方程推导出来:,A,B,C,D,其中图形条件3个:,va1+vb1+va2+ vb2 +w1=0; w1= a1+ b1 +a2 +b2 180,va2+vb2+va3+ vb3 +w2=0; w2= a2+ b2 +a3 +b3 180,va3+vb3+va4+ vb4 +w3=0; w3= a3+ b3 +a4 +b4 180,极条件1个:,以A点为极有:,i = ctg i , k = ctg k,其线性形式为: i vi - k vk +ws = 0 ;其中:,以角度表
7、示为:,等精度角度观测权阵P为单位阵.,1. 间接平差解算过程通用的间接平差解算过程:输入系数矩阵A、权矩阵P、常数向量L和解向量X,求出X,并通过参数传出去 Public Sub InAdjust(A, P, L, X)Dim a1%, a2%, p1%, p2%, L1%, x1% 输入矩阵或向量的大小Dim At() As Double, AtP() As Double, W() As Double 几个中间矩阵a1 = UBound(A, 1) - LBound(A, 1) + 1a2 = UBound(A, 2) - LBound(A, 2) + 1L1 = UBound(L) -
8、LBound(L) + 1x1 = UBound(X) - LBound(X) + 1p1 = UBound(P, 1) - LBound(P, 1) + 1p2 = UBound(P, 2) - LBound(P, 2) + 1,二、单导线的间接平差,定义中间矩阵的大小ReDim At(1 To a2, 1 To a1), AtP(1 To a2, 1 To a1)ReDim Naa(1 To a2, 1 To a2), W(1 To a2)组成法方程并计算Matrix_Multy AtP, At, pMatrix_Multy Naa, AtP, A 法方程系数矩阵kk = MRinv(Na
9、a)Matrix_Multy W, AtP, L 法方程常数向量Matrix_Multy X, Naa, W End Sub,2、间接平差法平差步骤,1)、选择t个独立的未知参数,2)、将每个观测值表示成未知参数的函数,形成误差方程。,3)、形成法方程,4)、求解法方程,5)、计算改正数,6)、精度评定,3、参数的选取,高程控制网:待定点的高程,平面控制网:待定点的二维坐标,三维控制网:待定点的三维坐标,方向的误差方程:,定向角未知数,设j、k的坐标为未知参数:,即:零方向的方位角,jk的方位角为:,4、误差方程的组成,为非线性函数,要进行线性化。,当j点已知时:,当k点已知时:,距离的误差方
10、程:,j,k,设j、k的坐标为未知参数:,jk的距离为:,为非线性函数,要进行线性化。,当j点已知时:,当k点已知时:,5、间接平差的精度评定,2)、协因数阵,1)、计算单位权中误差,1、通用水准网间接平差程序的设计:(1) 按文件方式进行输入, 约定数据格式 (2) 高程近似值计算(3) 列立观测值的误差方程(4) 解误差方程并求高程平差值(5) 精度估计(6) 计算结果输出.,三、水准网的间接平差,2、水准路线误差方程的组成,当i点已知时:,当j点已知时:,平面控制网可分为测边网、测角网、边角网等。(1)数据输入(2)坐标近似值计算(3)列立误差方程(4)平差计算线性化的误差方程是近似式,
11、略去了参数和观测值二次以上的各项的影响,只考虑到一次项的影响。如果近似值计算精确度很差,就要把第一次的平差结果作为未知数的近似值再进行一次平差。就是迭代平差。,四、平面控制网的间接平差,测角网间接平差算例:,设有一测角三角网,A、B、C、D为已知点,P1、P2为待定点,同精度观测了18个角度,按间接平差求平差后P1、P2点的坐标及精度。已知数据见下表。,平面控制网平差示例,解:n=18, t=2*6-4-4=4, r=18-4=14,设P1、P2点的坐标作为未知参数X1、Y1、X2、Y2,根据前方交会可以求出P1、P2的近似坐标:,根据角度的误差方程:,V,B,x,l,定权,P为单位阵,形成法方程为:,精度评定:,作 业,1 实验一的实验报告? 2 间接平差计算程序编制? 3 条件平差计算程序编制? 4 水准网通用平差计算程序设计? 5 方向误差方程和距离误差方程的线性化形式?,