GPS单点定位实验报告_第1页
GPS单点定位实验报告_第2页
GPS单点定位实验报告_第3页
GPS单点定位实验报告_第4页
GPS单点定位实验报告_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、-. z.GPS原理与应用实验题 目: GPS单点定位 专 业: 测绘工程 班 级: 12-01 学 号: 2012212600 姓 名: 王威 指导教师: 陶庭叶 时间:2014.11目录实验目的.3实验原理.3实验内容.3实验效果图.9实验总结.9一 实验目的1.深入了解单点定位的计算过程;2.加强单点定位根本公式和误差方程式,法线方程式的记忆;3.通过上机调试程序加强动手能力的培养。二实验原理 一个接收机承受三个火三个以上卫星信号,得出卫星坐标和伪距,利用间接平差计算接收机的坐标。 三实验内容1.程序流程图输入原始数据打印输出精度评定列出伪距观测方程循环屡次间接平差得出新的接收机坐标*,

2、Y,Z组成误差方程组Ai*+Li=Vi得出各个坐标的l,m,n伪距方程线性化2、实验数据3、实验程序代码Private Sub mand1_Click()monDialog1.Filter = T*T files|*.t*t|monDialog1.FilterInde* = 1monDialog1.ShowOpenOpen Me.monDialog1.FileName For Input As #1Do While Not EOF(1)Line Input #1, Te*tte*tbuff = te*tbuff + Te*t + vbCrLfLoopClose #1kk = MSFle*Gri

3、d1.Rows - 1Dim aReDim a(kk - 1)a = Split(te*tbuff, vbCrLf)For j = 1 To kk For i = 1 To 5 MSFle*Grid1.Te*tMatri*(j, i) = a(j - 1 + 5 * (i - 1)Ne*t iNe*t jFor k = 1 To kkMSFle*Grid1.Te*tMatri*(k, 0) = 第 & k & 个点Ne*t kMSFle*Grid1.Te*tMatri*(0, 1) = *MSFle*Grid1.Te*tMatri*(0, 2) = YMSFle*Grid1.Te*tMatri

4、*(0, 3) = ZMSFle*Grid1.Te*tMatri*(0, 4) = 伪距MSFle*Grid1.Te*tMatri*(0, 5) = 钟差End SubPrivate Sub mand2_Click()kk = MSFle*Grid1.Rows - 1*0 = 0: Y0 = 0: Z0 = 0c = 299792458Dim a()ReDim a(kk - 1, 3)Dim ll()ReDim ll(kk - 1, 0)For ii = 1 To 100For i = 1 To kk l = (MSFle*Grid1.Te*tMatri*(i, 1) - *0) / Sqr(

5、MSFle*Grid1.Te*tMatri*(i, 1) - *0) 2 + (MSFle*Grid1.Te*tMatri*(i, 2) - Y0) 2 + (MSFle*Grid1.Te*tMatri*(i, 3) - Z0) 2) m = (MSFle*Grid1.Te*tMatri*(i, 2) - Y0) / Sqr(MSFle*Grid1.Te*tMatri*(i, 1) - *0) 2 + (MSFle*Grid1.Te*tMatri*(i, 2) - Y0) 2 + (MSFle*Grid1.Te*tMatri*(i, 3) - Z0) 2) n = (MSFle*Grid1.T

6、e*tMatri*(i, 3) - Z0) / Sqr(MSFle*Grid1.Te*tMatri*(i, 1) - *0) 2 + (MSFle*Grid1.Te*tMatri*(i, 2) - Y0) 2 + (MSFle*Grid1.Te*tMatri*(i, 3) - Z0) 2) a(i - 1, 0) = l a(i - 1, 1) = m a(i - 1, 2) = n a(i - 1, 3) = -1lk = MSFle*Grid1.Te*tMatri*(i, 4) - Sqr(MSFle*Grid1.Te*tMatri*(i, 1) - *0) 2 + (MSFle*Grid

7、1.Te*tMatri*(i, 2) - Y0) 2 + (MSFle*Grid1.Te*tMatri*(i, 3) - Z0) 2) + c * MSFle*Grid1.Te*tMatri*(i, 5)ll(i - 1, 0) = lkNe*t igzs = *c(qiuni(*c(zz(a), a), *c(zz(a), ll)*0 = *0 - gzs(0, 0)Y0 = Y0 - gzs(1, 0)Z0 = Z0 - gzs(2, 0)j = j + 1Ne*t iiTe*t2.Te*t = *= & *0 & vbCrLf & vbCrLf & Y= & Y0 & vbCrLf &

8、vbCrLf & Z= & Z0V = jian(ll, *c(a, gzs)zjl = *c(zz(V), V)0 = Sqr(zjl(0, 0) / (kk - 3)Q* = qiuni(*c(zz(a), a)Te*t3.Te*t = *= & 0 * Sqr(Q*(0, 0) & vbCrLf & vbCrLf & Y= & 0 * Sqr(Q*(1, 1) & vbCrLf & vbCrLf & Z= & 0 * Sqr(Q*(2, 2)End SubPrivate Sub Form_Load()MSFle*Grid1.ColWidth(1) = 1300MSFle*Grid1.Co

9、lWidth(2) = 1300MSFle*Grid1.ColWidth(3) = 1300MSFle*Grid1.ColWidth(4) = 1300Te*t2.Te*t = Te*t3.Te*t = 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) ThenMsgBo* (请确认输入数组是否可以相减!)ElseDim c()ReDim c(UBound(m, 1), UBound(n, 2)For i = 0 To

10、 UBound(c, 1)For j = 0 To UBound(c, 2)c(i, j) = m(i, j) - n(i, j)Ne*t jNe*t 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,

11、i)a(j, i) = tEnd IfNe*t jNe*t 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)Ne*t jNe*t izz = bEnd IfEnd Function两矩阵相乘Public Function *c(a, b)Dim i As Integer, j As Integer, k As IntegerIf UBound(a, 2) UBound(b, 1) ThenMsgBo* (这两个矩阵不能够

12、相乘)E*it 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)Ne*t kNe*t jNe*t i*c = sdEnd FunctionPublic Function qiuni(a)Dim c, m%, n%, p#, l%, i%, j%, ab#m = UBound(a, 1)n = UBound(a, 2)If

13、 m n ThenMsgBo* (该矩阵不可逆!)E*it FunctionEnd IfReDim c(m, 2 * n + 1)For i = 0 To m For j = 0 To n c(i, j) = a(i, j) Ne*t jNe*t iFor i = 0 To m For j = m + 1 To 2 * m + 1 c(i, j) = 0 Ne*t jNe*t ii = 0For j = m + 1 To 2 * m + 1 c(i, j) = 1 i = i + 1 Ne*t jFor k = 0 To n If c(k, k) = 0 Then For i = k + 1

14、To n If c(i, k) 0 Then GoTo this End If Ne*t i If i = n + 1 Then MsgBo* (该矩阵不可逆!) E*it Function End Ifthis: For j = 0 To 2 * m + 1 p = c(k, j) c(k, j) = c(i, j) c(i, j) = p Ne*t j End Ifab = 1# / c(k, k)For j = 0 To 2 * m + 1 c(k, j) = c(k, j) * abNe*t jFor i = 0 To n If i k Then For j = 0 To 2 * m + 1 If j k Then c(i, j) = c(i, j) - c(i, k) * c(k, j) End If Ne*t j c(i, k) = 0 End IfNe*t iN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论