专利名称:对卫星接收机的观测数据进行处理的方法和装置的制作方法
技术领域:
本发明涉及卫星导航系统,尤其涉及一种对卫星接收机的观测数据进行处理的方法和装置。
背景技术:
目前存在5种卫星导航系统,分别是中国BD1(北斗1号)、中国BD2(北大号)、俄罗斯GLONASS(GLOBAL NAVIGATION SATEL LITESYSTE,全球卫星导航系统)、美国GPS(Global Position System,全球定位系统)、欧洲GALILEO(伽利略),从安全性、可靠性、可用性等方面考虑,多系统融合已经成为未来的技术发展趋势。国内外的卫星接收机厂商已经或正在准备研制基于多系统融合的卫星导航芯片,以便实现卫星接收机的小型化、低成本和低功耗。
因此,在卫星接收机的微处理器上快速处理多个卫星导航系统的观测数据是十分重要的。
发明内容
本发明实施例提供了一种对卫星接收机的观测数据进行处理的方法和装置,以实现对卫星接收机的观测数据进行快速处理。
一种对卫星接收机的观测数据进行处理的方法,包括 卫星接收机读取各个卫星的观测数据形成伪距,根据各个卫星的电文信息计算出各个卫星的位置和速度信息,根据所述伪距和各个卫星的位置和速度信息,得到观测向量矩阵; 对所述观测向量矩阵进行分解得到各个观测向量分组矩阵,利用对角阵的观测噪声方差阵对所述各个观测向量分组矩阵依次进行求逆运算,得到所述卫星接收机的位置。
一种对卫星接收机的观测数据进行处理的装置,包括 观测向量矩阵获取模块,用于读取各个卫星的观测数据形成伪距,根据各个卫星的电文信息计算出各个卫星的位置和速度信息,根据所述伪距和各个卫星的位置和速度信息,得到观测向量矩阵; 观测向量矩阵计算模块,用于对所述观测向量矩阵进行分解得到各个观测向量分组矩阵,利用对角阵的观测噪声方差阵对所述各个观测向量分组矩阵依次进行求逆运算,得到所述卫星接收机的位置。
由上述本发明的实施例提供的技术方案可以看出,本发明实施例通过对观测向量矩阵进行分解得到各个观测向量分组矩阵,利用对角阵的观测噪声方差阵对所述各个观测向量分组矩阵依次进行求逆运算,从而实现了卫星接收机中的观测数据的快速处理,以节省卫星接收机的微处理器的计算时间和存取空间。
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种对卫星接收机的观测数据进行处理的方法的流程图; 图2为本发明实施例提供的一种对卫星接收机的观测数据进行处理的装置的具体结构图。
具体实施例方式 为便于对本发明实施例的理解,下面将结合附图做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。
本发明实施例提供的对卫星接收机的观测数据进行处理的方法的流程图如图1所示,包括如下处理步骤 步骤11、卫星接收机通过判断接收到的卫星的电文信息中的星历与历书数据的更新参数是否满足预定的条件,来对电文信息中的星历数据和历书数据进行解调。
当卫星接收机接收到卫星导航定位系统中各个卫星发送的电文信息和观测数据时,将该新的电文信息按照300比特组成一帧数据放入电文信息缓冲区中,将观测数据放入观测数据缓冲区中。
然后,充分利用电文信息中的星历和历书数据存在固定更新时间的特点,通过判断缓存的电文信息中的星历数据、历书数据的更新参数是否满足预定的条件,来决定是否对上述缓存的电文信息中的星历数据、历书数据进行解调。
当所述电文信息的设定数量个子帧中的星历数据的星历数据龄期与已经解调并保存的星历数据的星历数据龄期相等时,则对所述电文信息的设定数量个子帧中的星历数据进行解调,将解调后得到的星历数据进行保存。比如,对于GPS卫星或BD2的MEO/IGSO卫星而言,当电文信息中前三个子帧接收到并缓存后,就判断上述缓存的电文信息中的星历数据的星历数据龄期是否与已经解调并保存的星历数据的星历数据龄期相等,如果不相等,就解调上述缓存的三个子帧的电文信息中的星历数据,将解调出来的星历数据保存在存储器(比如闪存FLASH)中。
又比如,对于BD2的GEO卫星而言,当电文信息中前十个子帧接收到并缓存后,就判断上述缓存的电文信息中的星历数据的星历数据龄期,是否与已经解调并保存的星历数据龄期相等,如果不相等,就解调上述缓存的十个子帧的电文信息中的星历数据,将解调出来的星历数据保存在存储器中。
当所述电文信息的设定数量个子帧中的历书数据的时间与已经解调并保存的历书数据的时间之间的间隔大于设定的数值时,则对所述电文信息的设定数量个子帧中的历书数据进行解调,将解调后得到的星历数据进行保存。比如,对于GPS或BD2的卫星而言,当电文信息中前十个子帧接收到并缓存后,就判断上述缓存的电文信息中的历书数据的时间,与已经解调并保存的历书数据的时间之间的间隔是否大于7天,如果是,就解调上述缓存的十个子帧的电文信息中的历书数据,将解调出来的历书数据保存在存储器中。
上述处理过程给星历或历书数据设置了更新周期,从而减少了频繁解调大量星历和历书等电文信息所耗的时间。
步骤12、卫星接收机读取存储的各个卫星的电文信息,根据电文信息和卫星的运动模型,采用星历内插算法计算出各个卫星的位置和速度信息。
卫星接收机的微处理器启动时,需要从存储器中读取各个卫星的星历数据、历书数据、电离层修正参数等电文信息,并且读取RTC(Real-timeCommunication,实时通信)的当前时间初始化时钟模型信息。然后,卫星接收机的微处理器按照预定的时间间隔(一般为2秒),从存储器中读取各个卫星的电文信息。
然后,卫星接收机判断读取的卫星的电文信息是否满足预先设定的判决条件,如果是,则采用星历内插算法基于卫星的运动模型计算出卫星的位置和速度信息。
上述星历内插算法的主要过程如下 首先,设置各个卫星(比如GPS或BD2卫星)的运动模型。以GPS卫星为例,建立的运动模型主要包括如下的几种参数 当前时间Tcurrent,参考点时间TRef,内插步长为Step_len,常数阵T[4][4],内插矩阵Interp[4][4]。
上述T[4][4]表示常数阵,其中,T
=1.0;T
[1]=T
[2]=T
[3]=0.0;T[1][1]=3.0;T[1][2]=-1.5;T[2]
=1.0;T[2][1]=-2.5;T[2][2]=2.0;T[2][3]=-0.5;T[3][1]=0.6;T[3][2]=-0.6;T[1]
=-11.0/6.0;T[1][3]=1/3;T[3]
=1/3;。
上述内插矩阵Interp[i][j]的计算方法如下 公式1 上述公式1中的pos(k)(j)为ti=TRef+i*Step_len(i=0,1,2,3)时刻计算出来的卫星位置x,y,z以及Ek(卫星的偏近角)。
计算出上述内插矩阵后,则记录此时的星历数据龄期,计算出此时的参考点时间TRef, 公式2 fmod返回TCurrent/Step_len的余数,上述公式2的意思为取TCurrent的整数部分。
将上述内插矩阵和对应的星历数据龄期、参考点时间TRef进行关联保存。
当卫星接收机读取了卫星的电文信息,需要计算卫星的位置和速度信息时,判断如下两个条件是否成立 1、当前读取的电文信息中的星历数据的星历数据龄期等于计算内插矩阵时的数据龄期,一般卫星的星历数据龄期的有效期为4小时。
2、当前的时间减去TRef的绝对值小于3倍的Step_len。
如果上述两个条件成立, 按照下式计算出卫星的位置和速度。
tk=Tcurrent-TRef if(tk<-604800.0/2.0)tk=tk+6048000; else if(tk>6048000/20)tk=tk-6048000; tk2=tk*tktk3=tk2*tk; *x=N.Interp
+N.Interp[1]
*tk+N.Interp[2]
*tk2+N.Interp[3]
*tk3; *y=N.Interp
[1]+N.Interp[1][1]*tk+N.Interp[2][1]*tk2+N.Interp[3][1]*tk3; *z=N.Interp
[2]+N.Interp[1][2]*tk+N.Interp[2][2]*tk2+N.Interp[3][2]*tk3; *vx=N.Interp[1]
+2.0*N.Interp[2]
*tk+3.0*N.Interp[3]
*tk2; *vy=N.Interp[1][1]+2.0*N.Interp[2][1]*tk+3.0*N.Interp[3][1]*tk2; *vz=N.Interp[1][2]+2.0*N.Interp[2][2]*tk+3.0*N.Interp[3][2]*tk2; 上述计算出的卫星的位置和速度信息需要根据不同的导航卫星而采取不同的坐标系参数。比如,如果是GPS卫星,则采用WGS-84坐标系参数,如果是BD-2系统,则采用CGS-2000坐标系参数。
按照上述计算出的卫星的位置信息中的高度角对卫星进行排序,高度角高的卫星排在最前面,将没有电文信息的卫星的高度角置为零。查询接收机各通道的状态,如果某通道空闲,则置入没有被赋与通道号的卫星号,此过程每隔2秒循环一次,上一轮轮空的卫星在下一轮中被选中,以保证所有可能捕获的卫星都置入到相应的通道中。
采用上述处理过程,可以避免每隔一个比较短的时间间隔(比如2秒),就频繁地计算卫星的位置和速度信息。在实际应用中,可以将计算卫星的位置和速度信息的时间间隔增大到3分钟或更长。
步骤13、根据上述卫星的位置和速度信息,以及缓存的观测数据,采用序列处理法计算出卫星接收机的位置和速度信息。
当卫星接收机的定位周期到达时,卫星接收机的微处理器从观测数据缓冲区中读取各个卫星的观测数据,形成伪距。假设从某颗卫星上发出的特定码信号在卫星时下的时刻t被接收,信号传播时间为τ,ts(t-τ)为相应的发射时间,tu(t)是通过用户接收机测得的信号到达时间,则伪距ρ可由上述测得的信号到达表示为ρ=c[tu(t)-ts(t-τ)],c为光速。
然后,对伪距进行平滑和多普勒观测值的形成,再对伪距进行各项误差修正,根据所述伪距和各个卫星的位置和速度信息得到观测量矩阵Zk。对不满足卫星接收机的定位周期条件的卫星观测数据进行排除,同时根据伪距的码时间对RTC的当前时间进行精细的调整。
将各导航系统的卫星位置和测量时间统一到参考的坐标系与时间系统中。对观测量矩阵Zk中的观测向量进行序列处理和粗差分析。
在现有的Kalman滤波中,需要对观测量矩阵Zk计算m×m维逆阵,而逆阵的计算量与维数m3成比例,计算量较大。为了解决这个问题,本发明实施例的序列处理法是对Kalman滤波的扩展,通过对观测量矩阵Zk中的观测向量进行序列处理,将对观测量矩阵Zk的集中处理分散为对Zk的各分量组矩阵的顺序处理,使对高阶矩阵的求逆变成对低阶矩阵的求逆,从而有效地降低计算量。特别是当观测数据的观测噪声方差阵为对角阵时,这种分散后的求逆转化为单纯的除法,计算量的降低就更明显了。
上述序列处理法的具体过程如下 任意时刻的伪距观测方程为 其中ρj-伪距; xj,yj,zj为该时刻卫星的位置; xu,yu,zu为该时刻卫星接收机的位置; δtu为卫星接收机的钟差; 令ρj=f(xu,yu, zu,δtu),则根据用户的概略位置
和用户钟差的估计值
可以计算出近似伪距 令 则将上式进行泰勒展开并取一阶线性项得到 其中 由上面几个式子得到 令 对4颗卫星进行伪距测量后可以得到Kalman观测方程,写成矩阵形式为 Z=HX+V 其中 该序列处理方法要求观测数据的测量噪声方差阵为块对角阵或对角阵,即 公式3 rki为mi×mi阵,表示某单一导航系统中所有卫星的测量噪声方差阵; m表示接收机观测到的单一导航系统中卫星的个数; l表示导航系统总数; hki第i个导航系统中的系数阵; 设rki为mi×mi阵;当l=m时,rki均为标量,同样可把观测阵H分块为 公式4 这时每组分量的观测方程为 式中,hki为mi×n观测阵。普通Kalman滤波对观测向量Zk同时处理,一步预测估计在获得Zk后,滤波估计为 序列处理把Zk分为Zki(i=1,2,…,l),一个一个按顺序处理,即第一次从和Zk1计算得再用Xk1和Zk2计算得到一直到, 观测量矩阵Zk在测量更新中进行,滤波公式为 当时,观测量矩阵Zk处理终止。
根据依次计算出Zki(i=1,2,…,l)得到观测量矩阵Zk的求解值,根据该求解值得到所述卫星接收机的位置xu,yu,zu。
从上式可以明显地看出,采用序列处理法,只需进行l次mi×mi维矩阵求逆。例如,观测向量的维数m=12,如分四次处理,即l=4,mi=3时,普通Kalman滤波算法的计算量为123=1728,本发明实施例的序列处理法的计算量为4×33=108,仅为前者的6.25%。由于各个导航系统的观测向量之间的测量误差方差阵R为严格对角阵,即 因此,每次处理一个测量分量,计算效率更高。另一方面,在计算过程中,由于矩阵相乘变为标量计算,去除了多维矩阵联乘所需的临时矩阵。
本发明实施例还提供了一种对卫星接收机的观测数据进行处理的装置,该装置的具体结构如图2所示,包括如下步骤 观测向量矩阵获取模块21,用于读取各个卫星的观测数据形成伪距,根据各个卫星的电文信息计算出各个卫星的位置和速度信息,根据所述伪距和各个卫星的位置和速度信息,得到观测向量矩阵; 观测向量矩阵计算模块22,用于对所述观测向量矩阵进行分解得到各个观测向量分组矩阵,利用对角阵的观测噪声方差阵对所述各个观测向量分组矩阵依次进行求逆运算,得到所述卫星接收机的位置和速度。
所述装置还可以包括 电文解调模块23,用于接收到卫星的电文信息后,判断所述电文信息中的星历数据是否满足预先设定的条件,如果是,则对所述电文信息中的星历数据进行解调;否则,不对所述电文信息中的星历数据进行解调; 判断所述电文信息中的历书数据是否满足预先设定的条件,如果是,则对所述电文信息中的历书数据进行解调;否则,不对所述电文信息中的历书数据进行解调; 将解调后的星历数据和历书数据进行保存。
卫星的位置和速度信息计算模块24,用于读取缓存的卫星的电文信息,根据所述电文信息和预先设置的卫星的运动模型,采用星历内插算法计算出所述卫星的位置和速度信息。
上述本发明实施例所述方法和装置已经在GPS/BD2兼容接收机上实现,考虑到各种类型的组合接收机的数据处理相似性,本发明实施例同样也适用于其它类型的组合接收机。
综上所述,本发明实施例实现了卫星接收机中的观测数据的快速处理,以节省卫星接收机的微处理器的计算时间和存取空间,从而实现在一个微处理器上实现多个卫星导航系统的数据实时融合处理与定位测速数据的高速率输出。解决现有的卫星接收机中的观测数据的处理方法速度慢、占用内存多、流片难度大等问题。
本发明实施例通过给星历数据和历书数据设置更新周期,从而减少了频繁解调大量星历数据和历书数据等电文信息所耗的时间。
本发明实施例通过判断读取的卫星的电文信息是否满足预先设定的判决条件,如果是,则采用星历内插算法基于卫星的运动模型计算出卫星的位置和速度信息,从而避免了频繁地计算卫星的位置和速度信息。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种对卫星接收机的观测数据进行处理的方法,其特征在于,包括
卫星接收机读取各个卫星的观测数据形成伪距,根据各个卫星的电文信息计算出各个卫星的位置和速度信息,根据所述伪距和各个卫星的位置和速度信息,得到观测向量矩阵;
对所述观测向量矩阵进行分解得到各个观测向量分组矩阵,利用对角阵的观测噪声方差阵对所述各个观测向量分组矩阵依次进行求逆运算,得到所述卫星接收机的位置。
2.根据权利要求1所述的对卫星接收机的观测数据进行处理的方法,其特征在于,所述方法还包括
卫星接收机接收到卫星的电文信息后,判断所述电文信息中的星历数据是否满足预先设定的条件,如果是,则对所述电文信息中的星历数据进行解调;否则,不对所述电文信息中的星历数据进行解调;
判断所述电文信息中的历书数据是否满足预先设定的条件,如果是,则对所述电文信息中的历书数据进行解调;否则,不对所述电文信息中的历书数据进行解调。
3.根据权利要求2所述的对卫星接收机的观测数据进行处理的方法,其特征在于,所述判断所述电文信息中的星历数据是否满足预先设定的条件,如果是,则对所述电文信息中的星历数据进行解调,包括
当所述电文信息的设定数量个子帧中的星历数据的星历数据龄期与已经解调并保存的星历数据的星历数据龄期相等时,则对所述电文信息的设定数量个子帧中的星历数据进行解调,将解调后得到的星历数据进行保存。
4.根据权利要求2所述的对卫星接收机的观测数据进行处理的方法,其特征在于,所述判断所述电文信息中的历书数据是否满足预先设定的条件,如果是,则对所述电文信息中的历书数据进行解调,包括
当所述电文信息的设定数量个子帧中的历书数据的时间与已经解调并保存的历书数据的时间之间的间隔大于设定的数值时,则对所述电文信息的设定数量个子帧中的历书数据进行解调,将解调后得到的星历数据进行保存。
5.根据权利要求2所述的对卫星接收机的观测数据进行处理的方法,其特征在于,所述根据各个卫星的电文信息计算出各个卫星的位置和速度信息,包括
所述卫星接收机读取缓存的卫星的电文信息,根据所述电文信息和预先设置的卫星的运动模型,采用星历内插算法计算出所述卫星的位置和速度信息。
6.根据权利要求5所述的对卫星接收机的观测数据进行处理的方法,其特征在于,所述根据所述电文信息和预先设置的卫星的运动模型,采用星历内插算法计算出各个卫星的位置和速度信息,包括
预先设置卫星的运动模型,该运动模型包括当前时间Tcurrent,参考点时间TRef,内插步长为Step_len,常数阵T[4][4]和内插矩阵Interp[i][j],所述常数阵T[4][4]中的T
=1.0;T
[1]=T
[2]=T
[3]=0.0;T[1][1]=3.0;T[1][2]=-1.5;T[2]
=1.0;T[2][1]=-2.5;T[2][2]=2.0;T[2][3]=-0.5;T[3][1]=0.6;T[3][2]=-0.6;T[1]
=-11.0/6.0;T[1][3]=1/3;T[3]
=1/3;
所述内插矩阵Interp[i][j]的计算方法如下
所述pos(k)(j)为根据ti=TRef+i*Step_len(i=0,1,2,3)时刻计算出来的卫星位置x,y,z以及卫星的偏近角;
所述参考点时间TRef的计算方法如下
当所述读取的电文信息中的星历数据的星历数据龄期等于所述内插矩阵Interp[i][j]对应的数据龄期,并且,当前时间Tcurrent减去TRef的绝对值小于3倍的Step_len时,则按照下述方法计算卫星的位置信息*X、*Y和*Z和速度信息*VX、*VY和*VZ;
tk=Tcurrent-TRef
if(tk<-6048000/2.0)tk=tk+6048000;
else if(tk>604800.0/2.0)tk=tk-604800.0;
tk2=tk*tk tk3=tk2*tk;
*x=N.Interp
+N.Interp[1]
*tk+N.Interp[2]
*tk2+N.Interp[3]
*tk3;
*y=N.Interp
[1]+N.Interp[1][1]*tk+N.Interp[2][1]*tk2+N.Interp[3][1]*tk3;
*z=N.Interp
[2]+N.Interp[1][2]*tk+N.Interp[2][2]*tk2+N.Interp[3][2]*tk3;
*vx=N.Interp[1]
+2.0*N.Interp[2]
*tk+3.0*N.Interp[3]
*tk2;
*vy=N.Interp[1][1]+2.0*N.Interp[2][1]*tk+3.0*N.Interp[3][1]*tk2;
*vz=N.Interp[1][2]+2.0*N.Interp[2][2]*tk+3.0*N.Interp[3][2]*tk2。
7.根据权利要求1至6任意项所述的对卫星接收机的观测数据进行处理的方法,其特征在于,所述的对所述观测向量矩阵进行分解得到各个观测向量分组矩阵,利用对角阵的观测噪声方差阵对所述各个观测向量分组矩阵依次进行求逆运算,得到所述卫星接收机的位置,包括
设观测数据的测量噪声方差阵E[VkVkT]为块对角阵或对角阵,即
rki为mi×mi阵,表示某单一导航系统中所有卫星的测量噪声方差阵;
m表示接收机观测到的单一导航系统中卫星的个数,I表示导航系统总数,hki第i个导航系统中的系数阵;
将观测量矩阵Zk分解为Zki(i=1,2,…,l),对所述ZkT依次按顺序处理,即第一次从
和Zk1计算得
再用Xk1和Zk2计算得到
一直计算到,
根据依次计算出Zk1(i=1,2,…,l)得到观测量矩阵Zk的求解值,根据该求解值得到所述卫星接收机的位置。
8.一种对卫星接收机的观测数据进行处理的装置,其特征在于,包括
观测向量矩阵获取模块,用于读取各个卫星的观测数据形成伪距,根据各个卫星的电文信息计算出各个卫星的位置和速度信息,根据所述伪距和各个卫星的位置和速度信息,得到观测向量矩阵;
观测向量矩阵计算模块,用于对所述观测向量矩阵进行分解得到各个观测向量分组矩阵,利用对角阵的观测噪声方差阵对所述各个观测向量分组矩阵依次进行求逆运算,得到所述卫星接收机的位置。
9.根据权利要求8所述的对卫星接收机的观测数据进行处理的装置,其特征在于,所述装置还包括
电文解调模块,用于接收到卫星的电文信息后,判断所述电文信息中的星历数据是否满足预先设定的条件,如果是,则对所述电文信息中的星历数据进行解调;否则,不对所述电文信息中的星历数据进行解调;
判断所述电文信息中的历书数据是否满足预先设定的条件,如果是,则对所述电文信息中的历书数据进行解调;否则,不对所述电文信息中的历书数据进行解调;
将解调后的星历数据和历书数据进行保存。
10.根据权利要求8或9所述的对卫星接收机的观测数据进行处理的装置,其特征在于,所述装置还包括
卫星的位置和速度信息计算模块,用于读取缓存的卫星的电文信息,根据所述电文信息和预先设置的卫星的运动模型,采用星历内插算法计算出所述卫星的位置和速度信息。
全文摘要
一种对卫星接收机的观测数据进行处理的方法,该方法主要包括卫星接收机读取各个卫星的观测数据形成伪距,根据各个卫星的电文信息计算出各个卫星的位置和速度信息,根据所述伪距和各个卫星的位置和速度信息,得到观测向量矩阵;对所述观测向量矩阵进行分解得到各个观测向量分组矩阵,利用对角阵的观测噪声方差阵对所述各个观测向量分组矩阵依次进行求逆运算,得到所述卫星接收机的位置。利用本发明,可以实现卫星接收机中的观测数据的快速处理,以节省卫星接收机的微处理器的计算时间和存取空间。
文档编号G01S19/42GK101750617SQ20101003392
公开日2010年6月23日 申请日期2010年1月6日 优先权日2010年1月6日
发明者李光成 申请人:北京华力创通科技股份有限公司