GPS单点定位实验报告.docx
- 文档编号:8270923
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:9
- 大小:65.19KB
GPS单点定位实验报告.docx
《GPS单点定位实验报告.docx》由会员分享,可在线阅读,更多相关《GPS单点定位实验报告.docx(9页珍藏版)》请在冰豆网上搜索。
GPS单点定位实验报告
GPS原理与应用实验
题目:
GPS单点定位
专业:
测绘工程
班级:
12-01
学号:
2012212600
姓名:
王威
指导教师:
陶庭叶
时间:
2014.11
1、实验目的......................................................3
2、实验原理………..........................................3
3、实验内容……..............................................3
4、实验效果图..................................................9
5、实验总结......................................................9
一.实验目的
1.深入了解单点定位的计算过程;
2.加强单点定位基本公式和误差方程式,法线方程式的记忆;
3.通过上机调试程序加强动手能力的培养。
二.实验原理
一个接收机接受三个火三个以上卫星信号,得出卫星坐标和伪距,利用间接平差计算接收机的坐标。
三.实验内容
列出伪距观测方程
伪距方程线性化
得出各个坐标的l,m,n
组成误差方程组AiX+Li=Vi
间接平差得出新的接收机坐标X,Y,Z
输入原始数据
循环多次
精度评定
打印输出
1.程序流程图
2、实验数据
3、实验程序代码
PrivateSubCommand1_Click()
CommonDialog1.Filter="TXTfiles|*.txt|"
CommonDialog1.FilterIndex=1
CommonDialog1.ShowOpen
OpenMe.CommonDialog1.FileNameForInputAs#1
DoWhileNotEOF
(1)
LineInput#1,Text
textbuff=textbuff+Text+vbCrLf
Loop
Close#1
kk=MSFlexGrid1.Rows-1
Dima
ReDima(kk-1)
a=Split(textbuff,vbCrLf)
Forj=1Tokk
Fori=1To5
MSFlexGrid1.TextMatrix(j,i)=a(j-1+5*(i-1))
Nexti
Nextj
Fork=1Tokk
MSFlexGrid1.TextMatrix(k,0)="第"&k&"个点"
Nextk
MSFlexGrid1.TextMatrix(0,1)="X"
MSFlexGrid1.TextMatrix(0,2)="Y"
MSFlexGrid1.TextMatrix(0,3)="Z"
MSFlexGrid1.TextMatrix(0,4)="伪距"
MSFlexGrid1.TextMatrix(0,5)="钟差"
EndSub
PrivateSubCommand2_Click()
kk=MSFlexGrid1.Rows-1
X0=0:
Y0=0:
Z0=0
c=299792458
Dima()
ReDima(kk-1,3)
Dimll()
ReDimll(kk-1,0)
Forii=1To100
Fori=1Tokk
l=(MSFlexGrid1.TextMatrix(i,1)-X0)/Sqr((MSFlexGrid1.TextMatrix(i,1)-X0)^2+(MSFlexGrid1.TextMatrix(i,2)-Y0)^2+(MSFlexGrid1.TextMatrix(i,3)-Z0)^2)
m=(MSFlexGrid1.TextMatrix(i,2)-Y0)/Sqr((MSFlexGrid1.TextMatrix(i,1)-X0)^2+(MSFlexGrid1.TextMatrix(i,2)-Y0)^2+(MSFlexGrid1.TextMatrix(i,3)-Z0)^2)
n=(MSFlexGrid1.TextMatrix(i,3)-Z0)/Sqr((MSFlexGrid1.TextMatrix(i,1)-X0)^2+(MSFlexGrid1.TextMatrix(i,2)-Y0)^2+(MSFlexGrid1.TextMatrix(i,3)-Z0)^2)
a(i-1,0)=l
a(i-1,1)=m
a(i-1,2)=n
a(i-1,3)=-1
lk=MSFlexGrid1.TextMatrix(i,4)-Sqr((MSFlexGrid1.TextMatrix(i,1)-X0)^2+(MSFlexGrid1.TextMatrix(i,2)-Y0)^2+(MSFlexGrid1.TextMatrix(i,3)-Z0)^2)+c*MSFlexGrid1.TextMatrix(i,5)
ll(i-1,0)=lk
Nexti
gzs=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+1
Nextii
Text2.Text="X="&X0&vbCrLf&vbCrLf&"Y="&Y0&vbCrLf&vbCrLf&"Z="&Z0
V=jian(ll,xc(a,gzs))
zjl=xc(zz(V),V)
σ0=Sqr(zjl(0,0))/(kk-3)
Qx=qiuni(xc(zz(a),a))
Text3.Text="σX="&σ0*Sqr(Qx(0,0))&vbCrLf&vbCrLf&"σY="&σ0*Sqr(Qx(1,1))&vbCrLf&vbCrLf&"σZ="&σ0*Sqr(Qx(2,2))
EndSub
PrivateSubForm_Load()
MSFlexGrid1.ColWidth
(1)=1300
MSFlexGrid1.ColWidth
(2)=1300
MSFlexGrid1.ColWidth(3)=1300
MSFlexGrid1.ColWidth(4)=1300
Text2.Text=""
Text3.Text=""
EndSub
'矩阵相减
PublicFunctionjian(m,n)
Dimi,jAsInteger
IfUBound(m,1)<>UBound(n,1)OrUBound(m,2)<>UBound(n,2)Then
MsgBox("请确认输入数组是否可以相减!
")
Else
Dimc()
ReDimc(UBound(m,1),UBound(n,2))
Fori=0ToUBound(c,1)
Forj=0ToUBound(c,2)
c(i,j)=m(i,j)-n(i,j)
Nextj
Nexti
jian=c
EndIf
EndFunction
'矩阵的转置
PublicFunctionzz(a)
DimiAsInteger,jAsInteger,tAsInteger,b()
IfUBound(a,1)=UBound(a,2)Then
Fori=0ToUBound(a,1)
Forj=0ToUBound(a,2)
Ifi t=a(i,j) a(i,j)=a(j,i) a(j,i)=t EndIf Nextj Nexti zz=a Else ReDimb(UBound(a,2),UBound(a,1)) Fori=0ToUBound(a,2) Forj=0ToUBound(a,1) b(i,j)=a(j,i) Nextj Nexti zz=b EndIf EndFunction '两矩阵相乘 PublicFunctionxc(a,b) DimiAsInteger,jAsInteger,kAsInteger IfUBound(a,2)<>UBound(b,1)Then MsgBox("这两个矩阵不能够相乘") ExitFunction EndIf ReDimsd(UBound(a,1),UBound(b,2)) Fori=0ToUBound(a,1) Forj=0ToUBound(b,2) Fork=0ToUBound(b,1) sd(i,j)=sd(i,j)+a(i,k)*b(k,j) Nextk Nextj Nexti xc=sd EndFunction PublicFunctionqiuni(a) Dimc,m%,n%,p#,l%,i%,j%,ab# m=UBound(a,1) n=UBound(a,2) Ifm<>nThen MsgBox("该矩阵不可逆! ! ! ") ExitFunction EndIf ReDimc(m,2*n+1) Fori=0Tom Forj=0Ton c(i,j)=a(i,j) Nextj Nexti Fori=0Tom Forj=m+1To2*m+1 c(i,j)=0 Nextj Nexti i=0 Forj=m+1To2*m+1 c(i,j)=1 i=i+1 Nextj Fork=0Ton Ifc(k,k)=0Then Fori=k+1Ton Ifc(i,k)<>0Then GoTothis EndIf Nexti Ifi=n+1Then MsgBox("该矩阵不可逆! ! ! ") ExitFunction EndIf this: Forj=0To2*m+1 p=c(k,j) c(k,j)=c(i,j) c(i,j)=p Nextj EndIf ab=1#/c(k,k) Forj=0To2*m+1 c(k,j)=c(k,j)*ab Nextj Fori=0Ton Ifi<>kThen Forj=0To2*m+1 Ifj<>kThen c(i,j)=c(i,j)-c(i,k)*c(k,j) EndIf Nextj c(i,k)=0 EndIf Nexti Nextk Fori=0Tom Forj=0Tom a(i,j)=c(i,j+n+1) a(i,j)=Round(a(i,j),4) Nextj Nexti qiuni=a EndFunction 四.实验结果图 五.实验总结 此次实验让我深入了解单点定位的计算过程,加强了对单点定位基本公式和误差方程式,法线方程式的记忆。 并通过上机调试程序加强了自己动手能力的培养。 通过此次实验为以后的GPS的学习打下了基础。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GPS 单点 定位 实验 报告