GPS原理与应用实验题目: GPS单点定位专业:测绘工程班级: 12-01学号: 00姓名:王威指导教师:陶庭叶时间:目录一、实验目的........................................... .. (3)二、实验原理.............................................. .. (3)三、实验内容............................................. . (3)四、实验效果图........................................... . (9)五、实验总结........................................... .. (9)一.实验目的1.深入了解单点定位的计算过程;2.加强单点定位基本公式和误差方程式,法线方程式的记忆;3.通过上机调试程序加强动手能力的培养。
二.实验原理一个接收机接受三个火三个以上卫星信号,得出卫星坐标和伪距,利用间接平差计算接收机的坐标。
三.实验内容1.程序流程图2、实验数据3、实验程序代码Private Sub Command1_Click()= "TXT files|*.txt|"= 1Open For Input As #1Do While Not EOF(1)Line Input #1, Texttextbuff = textbuff + Text + vbCrLf LoopClose #1kk = - 1Dim aReDim a(kk - 1)a = Split(textbuff, vbCrLf)For j = 1 To kkFor i = 1 To 5(j, i) = a(j - 1 + 5 * (i - 1))Next iNext jFor k = 1 To kk(k, 0) = "第" & k & "个点"Next k(0, 1) = "X"(0, 2) = "Y"(0, 3) = "Z"(0, 4) = "伪距"(0, 5) = "钟差"End SubPrivate Sub Command2_Click()kk = - 1X0 = 0: Y0 = 0: Z0 = 0c = 8Dim a()ReDim a(kk - 1, 3)Dim ll()ReDim ll(kk - 1, 0)For ii = 1 To 100For i = 1 To kkl = (i, 1) - X0) / Sqr((i, 1) - X0) ^ 2 + (i, 2) - Y0) ^ 2 + (i, 3) - Z0) ^ 2)m = (i, 2) - Y0) / Sqr((i, 1) - X0) ^ 2 + (i, 2) - Y0) ^ 2 + (i, 3) - Z0) ^ 2)n = (i, 3) - Z0) / Sqr((i, 1) - X0) ^ 2 + (i, 2) - Y0) ^ 2 + (i, 3) - Z0) ^ 2)a(i - 1, 0) = la(i - 1, 1) = ma(i - 1, 2) = na(i - 1, 3) = -1lk = (i, 4) - Sqr((i, 1) - X0) ^ 2 + (i, 2) - Y0) ^ 2 + (i, 3) - Z0) ^ 2) + c * (i, 5)ll(i - 1, 0) = lkNext igzs = xc(qiuni(xc(zz(a), a)), xc(zz(a), ll))X0 = X0 - gzs(0, 0)Y0 = Y0 - gzs(1, 0)Z0 = Z0 - gzs(2, 0)j = j + 1Next ii= "X=" & X0 & vbCrLf & vbCrLf & "Y=" & Y0 & vbCrLf & vbCrLf & "Z=" & Z0V = jian(ll, xc(a, gzs))zjl = xc(zz(V), V)σ0 = Sqr(zjl(0, 0)) / (kk - 3)Qx = qiuni(xc(zz(a), a))= "σX=" & σ0 * Sqr(Qx(0, 0)) & vbCrLf & vbCrLf & "σY=" & σ0 * Sqr(Qx(1, 1)) & vbCrLf & vbCrLf & "σZ=" & σ0 * Sqr(Qx(2, 2)) End SubPrivate Sub Form_Load()(1) = 1300(2) = 1300(3) = 1300(4) = 1300= ""= ""End Sub'矩阵相减Public Function jian(m, n)Dim i, j As IntegerIf UBound(m, 1) <> UBound(n, 1) Or UBound(m, 2) <> UBound(n, 2) Then MsgBox ("请确认输入数组是否可以相减!")ElseDim c()ReDim c(UBound(m, 1), UBound(n, 2))For i = 0 To UBound(c, 1)For j = 0 To UBound(c, 2)c(i, j) = m(i, j) - n(i, j)Next jNext ijian = cEnd IfEnd Function'矩阵的转置Public Function zz(a)Dim i As Integer, j As Integer, t As Integer, b()If UBound(a, 1) = UBound(a, 2) ThenFor i = 0 To UBound(a, 1)For j = 0 To UBound(a, 2)If i < j Thent = a(i, j)a(i, j) = a(j, i)a(j, i) = tNext jNext izz = aElseReDim b(UBound(a, 2), UBound(a, 1))For i = 0 To UBound(a, 2)For j = 0 To UBound(a, 1)b(i, j) = a(j, i)Next jNext izz = bEnd IfEnd Function'两矩阵相乘Public Function xc(a, b)Dim i As Integer, j As Integer, k As Integer If UBound(a, 2) <> UBound(b, 1) Then MsgBox ("这两个矩阵不能够相乘")Exit FunctionEnd IfReDim sd(UBound(a, 1), UBound(b, 2))For i = 0 To UBound(a, 1)For j = 0 To UBound(b, 2)For k = 0 To UBound(b, 1)sd(i, j) = sd(i, j) + a(i, k) * b(k, j)Next kNext jNext ixc = sdEnd FunctionPublic Function qiuni(a)Dim c, m%, n%, p#, l%, i%, j%, ab#m = UBound(a, 1)n = UBound(a, 2)If m <> n ThenMsgBox ("该矩阵不可逆!!!")Exit FunctionEnd IfReDim c(m, 2 * n + 1)For i = 0 To mFor j = 0 To nc(i, j) = a(i, j)Next jFor i = 0 To mFor j = m + 1 To 2 * m + 1c(i, j) = 0Next jNext ii = 0For j = m + 1 To 2 * m + 1c(i, j) = 1i = i + 1Next jFor k = 0 To nIf c(k, k) = 0 ThenFor i = k + 1 To nIf c(i, k) <> 0 ThenGoTo thisEnd IfNext iIf i = n + 1 ThenMsgBox ("该矩阵不可逆!!!")Exit FunctionEnd Ifthis:For j = 0 To 2 * m + 1p = c(k, j)c(k, j) = c(i, j)c(i, j) = pNext jEnd Ifab = 1# / c(k, k)For j = 0 To 2 * m + 1c(k, j) = c(k, j) * abNext jFor i = 0 To nIf i <> k ThenFor j = 0 To 2 * m + 1If j <> k Thenc(i, j) = c(i, j) - c(i, k) * c(k, j) End IfNext jc(i, k) = 0End IfNext iNext kFor i = 0 To mFor j = 0 To ma(i, j) = c(i, j + n + 1)a(i, j) = Round(a(i, j), 4)Next jNext iqiuni = aEnd Function四.实验结果图五.实验总结此次实验让我深入了解单点定位的计算过程,加强了对单点定位基本公式和误差方程式,法线方程式的记忆。
并通过上机调试程序加强了自己动手能力的培养。
通过此次实验为以后的GPS的学习打下了基础。