怎么使用VB编写伪距单点定位的程序

怎么使用VB编写伪距单点定位的程序,第1张

首先,告诉楼主,用VB编写单点定位程序,需要大量的矩阵运算,这一点,VB需要花费很多时间,而matlab很多矩阵运算的函数是可以直接运用的,建议楼主VB.net与matlab混合编程。

在编写的时候,楼主要有很多准备。

(1) 前期需要什么数据,看楼主需要,这个数据包括GPS的原始观测数据(不同的接收机有的给出的原始数据格式不一样,比如南方的和中海达的,前者有格洛纳斯的数据,后者没有),还 有导航电文中的数据。

(2)获得这些数据,楼主一定要弄明白这些文本的内容,格式,每冲瞎斗一行数据代表什么。

(3)在弄明白这些数据内容,格式以及获得途径后,楼主就要开始构思,如何运用编程工具来处理这些数据

(1)你所需要数据的提取,比如,你要某颗卫星的这段时间的观测数据,你怎么把他提取出来。导航电文你怎么把它分类提取出来,怎么保存,等等--,我觉得这是重中之重,神携不能出一点差错。

(2)你把数据提出来后,进行分类整理,保存。比如按照卫星号保存它的观测数据,保存它的导航电文,然后,下一步就要要做数据的预处理了

(3)下面的就简单了,按照理论,看你怎么做了,用伪距的话,要用导航电文去计算卫星的位置,你还要考虑到卫星高度角的计算,怎么计算?

(4)还有什么相位平滑伪距,如果楼主散磨用相位平湖伪距,楼主还要考虑进行周跳的探测与修复,如何有效的对周跳进行探测修复?楼主是否找到合适的方法?

(5)楼主如何进行参数估计?这也要考虑。

(6)那些什么电离层延迟,对流层延迟,卫星钟差,接收机钟差,地球固体潮改正,天线相位中心改正,楼主是否明白如何让进行消除或消弱?

(4)再处理完这些数据之后,楼主如何验证自己计算的是否正确?

编这玩意重要的就是思路,还有就是大量的理论知识,很系统的。其实,当个玩具玩玩编程,也蛮好。

GPS构成

1。空间部分

GPS的空间部分是由24 颗工作卫星组成,它位于距地山旅表20 200km的上空,均匀分布在6 个轨道面上(每个轨道面4 颗) ,轨道倾角为55°。[1]此外,还有4 颗有源备份卫星在轨运行。卫星的分布使得在全球任何地方、任何时间都可观测到4 颗以上的卫星,并能保持良好定位解算精度的几何图象。这就提供了在时间上连续逗纤凳的全球导航能力。GPS 卫星产生两组电码, 一组称为C/ A 码( Coarse/ Acquisition Code11023MHz) 一组称为P 码(Procise Code 10123MHz) ,P 码因频率较高,不易受干扰,定位精度高,因此受美国军方管制,并设有密码,一般民间无法解读,主要为美国军方服务。C/ A 码人为采取措施而刻意降低精度后,主要开放给民间使用。

2。地面控制部分

地面控制部分由一个主控站,5 个全球监测站和3 个地面控制站组成。监测站均配装有精密的铯钟和能够连续测量到所有可见卫星的接受机。监测站将取得的卫星观测数据,包括电离层和气象数据,经过初步处理后,传送到主控站。主控站从各监测站收集跟踪数据,计算出卫星的轨道和时钟参数,然后将结果送到3 个地面控制站。地面控制站在每颗卫星运行至上空时,把这些导航数据及主控站指令注入到卫星。这种注入对每颗GPS 卫星每天一次,并在卫星离开注入站作用范围之前进行最后的注入。如果某地面站发生故障,那么在卫星中预存的导航信息还可用一段时间,但导航精度会逐渐降低。

3。用户设备部分

用户设备部分即GPS[2][3][4] 信号接收机。其主要功能是能够捕获到按一定竖槐卫星截止角所选择的待测卫星,并跟踪这些卫星的运行。当接收机捕获到跟踪的卫星信号后,即可测量出接收天线至卫星的伪距离和距离的变化率,解调出卫星轨道参数等数据。根据这些数据,接收机中的微处理计算机就可按定位解算方法进行定位计算,计算出用户所在地理位置的经纬度、高度、速度、时间等信息。接收机硬件和机内软件以及GPS 数据的后处理软件包构成完整的GPS 用户设备。GPS 接收机的结构分为天线单元和接收单元两部分。接收机一般采用机内和机外两种直流电源。设置机内电源的目的在于更换外电源时不中断连续观测。在用机外电源时机内电池自动充电。关机后,机内电池为RAM存储器供电,以防止数据丢失。目前各种类型的接受机体积越来越小,重量越来越轻,便于野外观测使用。

地面控制系统由监测站(Monitor Station)、主控制站(Master Monitor Station)、地面天线(Ground Antenna)所组成,主控制站位于美国科罗拉多州春田市(Colorado Spring)。地面控制站负责收集由卫星传回之讯息,并计算卫星星历、相对据离,大气校正等数据。其次则为使用者接收器,现有单频与双频两种,但由于价格因素,一般使用者所购买的多为单频接收器。

[编辑本段]GPS原理

GPS导航系统的基本原理是测量出已知位置的卫星到用户接收机之间的距离,然后综合多颗卫星的数据就可知道接收机的具体位置。要达到这一目的,卫星的位置可以根据星载时钟所记录的时间在卫星星历中查出。而用户到卫星的距离则通过纪录卫星信号传播到用户所经历的时间,再将其乘以光速得到(由于大气层电离层的干扰,这一距离并不是用户与卫星之间的真实距离,而是伪距(PR):当GPS卫星正常工作时,会不断地用1和0二进制码元组成的伪随机码(简称伪码)发射导航电文。GPS系统使用的伪码一共有两种,分别是民用的C/A码和军用的P(Y)码。C/A码频率1.023MHz,重复周期一毫秒,码间距1微秒,相当于300m;P码频率10.23MHz,重复周期266.4天,码间距0.1微秒,相当于30m。而Y码是在P码的基础上形成的,保密性能更佳。导航电文包括卫星星历、工作状况、时钟改正、电离层时延修正、大气折射修正等信息。它是从卫星信号中解调制出来,以50b/s调制在载频上发射的。导航电文每个主帧中包含5个子帧每帧长6s。前三帧各10个字码;每三十秒重复一次,每小时更新一次。后两帧共15000b。导航电文中的内容主要有遥测码、转换码、第1、2、3数据块,其中最重要的则为星历数据。当用户接受到导航电文时,提取出卫星时间并将其与自己的时钟做对比便可得知卫星与用户的距离,再利用导航电文中的卫星星历数据推算出卫星发射电文时所处位置,用户在WGS-84大地坐标系中的位置速度等信息便可得知。

可见GPS导航系统卫星部分的作用就是不断地发射导航电文。然而,由于用户接受机使用的时钟与卫星星载时钟不可能总是同步,所以除了用户的三维坐标x、y、z外,还要引进一个Δt即卫星与接收机之间的时间差作为未知数,然后用4个方程将这4个未知数解出来。所以如果想知道接收机所处的位置,至少要能接收到4个卫星的信号。

GPS接收机可接收到可用于授时的准确至纳秒级的时间信息;用于预报未来几个月内卫星所处概略位置的预报星历;用于计算定位时所需卫星坐标的广播星历,精度为几米至几十米(各个卫星不同,随时变化);以及GPS系统信息,如卫星状况等。

GPS接收机对码的量测就可得到卫星到接收机的距离,由于含有接收机卫星钟的误差及大气传播误差,故称为伪距。对0A码测得的伪距称为UA码伪距,精度约为20米左右,对P码测得的伪距称为P码伪距,精度约为2米左右。

GPS接收机对收到的卫星信号,进行解码或采用其它技术,将调制在载波上的信息去掉后,就可以恢复载波。严格而言,载波相位应被称为载波拍频相位,它是收到的受多普勒频 移影响的卫星信号载波相位与接收机本机振荡产生信号相位之差。一般在接收机钟确定的历元时刻量测,保持对卫星信号的跟踪,就可记录下相位的变化值,但开始观测时的接收机和卫星振荡器的相位初值是不知道的,起始历元的相位整数也是不知道的,即整周模糊度,只能在数据处理中作为参数解算。相位观测值的精度高至毫米,但前提是解出整周模糊度,因此只有在相对定位、并有一段连续观测值时才能使用相位观测值,而要达到优于米级的定位 精度也只能采用相位观测值。

按定位方式,GPS定位分为单点定位和相对定位(差分定位)。单点定位就是根据一台接收机的观测数据来确定接收机位置的方式,它只能采用伪距观测量,可用于车船等的概略导航定位。相对定位(差分定位)是根据两台以上接收机的观测数据来确定观测点之间的相对位置的方法,它既可采用伪距观测量也可采用相位观测量,大地测量或工程测量均应采用相位观测值进行相对定位。

在GPS观测量中包含了卫星和接收机的钟差、大气传播延迟、多路径效应等误差,在定位计算时还要受到卫星广播星历误差的影响,在进行相对定位时大部分公共误差被抵消或削弱,因此定位精度将大大提高,双频接收机可以根据两个频率的观测量抵消大气中电离层误差的主要部分,在精度要求高,接收机间距离较远时(大气有明显差别),应选用双频接收机。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12359089.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存