RTKPPP定位算法流程.docx

上传人:b****6 文档编号:13413779 上传时间:2023-06-14 格式:DOCX 页数:42 大小:2.08MB
下载 相关 举报
RTKPPP定位算法流程.docx_第1页
第1页 / 共42页
RTKPPP定位算法流程.docx_第2页
第2页 / 共42页
RTKPPP定位算法流程.docx_第3页
第3页 / 共42页
RTKPPP定位算法流程.docx_第4页
第4页 / 共42页
RTKPPP定位算法流程.docx_第5页
第5页 / 共42页
RTKPPP定位算法流程.docx_第6页
第6页 / 共42页
RTKPPP定位算法流程.docx_第7页
第7页 / 共42页
RTKPPP定位算法流程.docx_第8页
第8页 / 共42页
RTKPPP定位算法流程.docx_第9页
第9页 / 共42页
RTKPPP定位算法流程.docx_第10页
第10页 / 共42页
RTKPPP定位算法流程.docx_第11页
第11页 / 共42页
RTKPPP定位算法流程.docx_第12页
第12页 / 共42页
RTKPPP定位算法流程.docx_第13页
第13页 / 共42页
RTKPPP定位算法流程.docx_第14页
第14页 / 共42页
RTKPPP定位算法流程.docx_第15页
第15页 / 共42页
RTKPPP定位算法流程.docx_第16页
第16页 / 共42页
RTKPPP定位算法流程.docx_第17页
第17页 / 共42页
RTKPPP定位算法流程.docx_第18页
第18页 / 共42页
RTKPPP定位算法流程.docx_第19页
第19页 / 共42页
RTKPPP定位算法流程.docx_第20页
第20页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

RTKPPP定位算法流程.docx

《RTKPPP定位算法流程.docx》由会员分享,可在线阅读,更多相关《RTKPPP定位算法流程.docx(42页珍藏版)》请在冰点文库上搜索。

RTKPPP定位算法流程.docx

RTKPPP定位算法流程

1基础知识

2

2.1GPS周密单点定位的基本原理

2.2

GPS周密单点定位一般采纳单台双频GPS接收机,利用IGS提供的周密星历与卫星钟差,基于载波相位观测值进行的高精度定位。

观测值中的电离层延迟误差通过双频信号组合消除,对流层延迟误差通过引入未知参数进行估计。

2.3时间系统

2.4

RTKLIB内部使用GPST(GPST时间)用于GNSS的数据处理与定位算法、数据在RTKLIB内部处理之前,需要转换成GPST时间。

使用GPST的缘故是幸免处理润秒、RTKLIB使用以下结构体表示时间:

typedefstruct

time_t time; /* time(s) expressedbystandard time_t*/

double sec;  /*fractionofsecondunder1s*/

}gtime_t;

2.4.1GPST与UTC(UniversalTime Coordinated)

2.4.2

关系参考【图1】,参考【图2】:

图1转换关系公式

图2

ﻩ通过使用GPS导航信息中的UTC参数,GPST到UTC或者UTC到GPST之前的转换能够用更准确的表达方式,如【图3】、

图3

这些参数是由GPS导航消息提供的、

2.4.3BDT(北斗导航卫星系统时间)

2.4.4

BDT(北斗导航卫星系统时间)是一个连续的时间系统,没有润秒、开始历元的时间是【UTC2006年1月1号00:

00:

00】、

北斗时间计算公式【图4】:

图 4

ﻩUTC与GPST时间转换同上面的GPS一样,只只是UTC参数来自与北斗导航信息中、

2.5坐标系统

2.6

接收机与卫星的位置在RTKLIB中表示为在ECEF(地心地固坐标系)坐标系统中的X,Y, Z组件、

2.6.1大地坐标到ECEF坐标的转换

2.6.2

转换公式如【图5】。

第三个公式最后一行有错,应该为:

 (v(1 –e2)+h)sin

图5

参数讲明:

a:

地球参考椭球的长半径

     f:

地球参考椭球的扁平率

h:

椭球高度 

  :

纬度

     :

经度

当前版本的RTKLIB使用的值为【图6】:

图6

图7参考椭球体

2.6.3ECEF坐系到大地坐标的转换

2.6.4

转换公式如【图8】

图 8

2.6.5本地坐标到ECEF坐标的转换

2.6.6

在接收机位置的本地坐标,也被称为ENU坐标,通常使用在GNSS导航处理。

ECEF坐标到本地坐标转换的旋转矩阵表示为【图9】。

图9Er旋转矩阵

参数讲明:

:

接收机位置的纬度

:

接收机位置的经度

ﻩ通过使用Er与接收机的坐标rr【ECEF】,坐标recef【ECEF】能够被转换到本地坐标的坐标rlocal,公式如【图10】。

10

3RTKPPP定位算法

4

4.1单点定位(pntpos)

4.2

1:

satposs  → 2:

estpos → 3:

estvel

1.计算计算卫星位置、速度与时钟(satposs)

2.

a)通过广播星历计算卫星钟差(ephclk)

b)

Ø卫星编号到卫星系统的转换(satsys)

Ø

依照卫星的编号,获取到对应的卫星导航系统、

Ø选择星历(seleph)

Ø

1、传入信号传输时间,卫星编号,导航数据等参数、

2、遍历导航数据,遍历导航数据里面的星历数据,判断星历数据的卫星编号是否与传入的卫星编号相等。

3、假如星历数据的卫星编号与传入的卫星编号相等,就计算星历参考时间(toe)与信号传输时间的时间差。

假如不相等,接着处理下一条星历数据、

4、判断计算出来的时间差,假如时间差大于了允许的最大时间差,接着查找下一个星历数据、否则,判断时间差最小的星历数据,记录星历数据的位置、

5、返回之前记录出来的星历数据、

Ø使用广播星历计算卫星时钟偏差(eph2clk)

Ø

1、传入信号发射时刻的时间与星历数据、

2、

3、计算信号发射时刻的时间与本时段钟差参数参考时间(星历参数toc)的时间差、

4、

5、通过下式计算钟差,这个地方还没有处理相对论校正项与tgd:

(代码中有个迭代过程,资料上没看到写)

6、

卫星钟差计算出来之后,信号发射时刻的时间还要加上这个钟差。

c)计算卫星在信号发射时刻的位置、速度与时钟(satpos)

d)

依照星历表选项来选择不同的处理,如下:

Ø广播星历(EPHOPT_BRDC):

 ephpos(广播星历到卫星位置与钟差)

Ø

1、依照公式计算出tk;

2、

3、依照使用的卫星系统,选择使用的地球引力常数(mu)与地球的角速度(omge)

4、

5、依照公式计算出平近点角M。

6、

7、求解开普勒方程,依照以下公式迭代求解、

8、

9、依照以下公式计算出u(改正后的纬度幅角),r(改正后的径向), i(改正后的轨道倾角)的值、

10、

11、依照以下公式计算卫星在轨道平面内的坐标。

12、

13、依照不同的卫星系统,做不同的计算、

14、

GPS计算方式:

北斗计算方式:

其中

15、依照公式计算出时间tc。

16、

17、依照以下公式计算出钟差与钟漂。

18、

Ø周密星历(EPHOPT_PREC):

peph2pos

Ø

Ø广播+SBAS(EPHOPT_SBAS):

satpos_sbas

Ø

Ø广播+SSR_APC(EPHOPT_SSRAPC):

satpos_ssr

Ø

Ø广播+SSR_(EPHOPT_SSR):

satpos_ssr

Ø

ØQZSSLEX星历(EPHOPT_LEX):

lexeph2pos

Ø

3.使用伪距估算接收机的位置,返回估算状态结果 (estpos)

4.

a)伪距残差(rescode)

b)

Ø把ecef坐标系转换成大地坐标系(ecef2pos)

Ø

1、依照以下公式做转换,暂时还没看明白、

2、

Ø计算几何距离与接收机到卫星的单位矢量(geodist)

Ø

1、用卫星的坐标向量做欧几里德范数,返回值与地球长半轴(WGS84)比较。

小于地球长半轴(WGS84),返回—1;

2、

3、计算卫星坐标与接收机坐标的差值向量。

4、

5、用差值向量做欧几里德范数,再用上一步计算出来的差值向量与计算结果做除法,得到视线向量。

依照如下公式:

6、

7、使用以下公式计算几何距离。

8、

Ø计算卫星方位角/仰角(satazel)

Ø

1、把接收机ecef坐标转换到大地坐标;

2、

3、判断高度是否大于地球半长轴(WGS84)的负数值;

4、

5、假如高度小于等于地球半长轴(WGS84)的负数值,方位角为0,仰角为PI/2;

6、

7、假如高度大于地球半长轴(WGS84)的负数值,把ECEF向量转换到局部坐标。

然后对转换出来的坐标做内积、

8、

9、使用如下公式计算卫星方位角与仰角。

10、

Ø伪距使用编码残差改正(prange)

Ø

暂时没找到对应的文档对应、

Ø电离层改正(ionocorr)

Ø

⏹通过广播电离层模型(klobuchar模型)计算出电离层延迟(ionmodel)

1、校验传入的电离层模型参数,校验失败,使用默认的电离层模型参数;

2、

3、使用以下公式计算出地球为中心的角度(半圆);

4、

5、使用以下公式计算子的电离层的纬度/经度(半圆);

6、

7、使用以下公式计算地磁纬度。

8、

9、计算本地时间,返回值按这个公式【tt-=floor(tt/86400、0)*86400、0;】处理,保证tt的范围(0<=tt<86400)。

10、

11、计算倾斜因子、

12、

13、电离层延迟计算,公式如下、

14、

Ø对流层改正(tropcorr)

Ø

⏹通过标准大气压与saastamoinen模型计算对流层延迟 (tropmodel)

1、使用以下公式计算总气压。

2、

3、使用以下公式计算绝对温度、

4、

5、使用以下公式计算水蒸汽的分压。

代码中没有使用、

6、

7、使用以下公式计算【Saastamoinen模型】。

8、

Ø伪距残差

Ø

残差值=伪距—(物理距离+dtr—光速*时钟偏差+电离层误差+对流层误差)

Ø时钟系统与接收器的偏置补偿

Ø

Ø伪距测量误差方差(varerr)

Ø

c)方差权重值(weightbyvariance)

d)

e)最小二乘估计(lsq)

f)

Ø最小二乘估计通过求解正规方程(X=(A*A’)^ -1*A*Y)

Ø

1、计算矩阵A*Y的结果,保存到矩阵Ay;

2、

3、计算矩阵A*A’的结果,保存到矩阵Q;

4、

5、求的矩阵Q的逆矩阵,结果保存到矩阵Q;

6、

7、最后x=Q*Ay

8、

g)欧几里德范数(norm)

h)

公式:

1、通过最小二乘法估算出来的参数dx【长度为4】,分不加到位置向量上x【长度为4】。

2、

3、对这个速度向量做欧几里德范数,返回值同1E—4比较,小于这个值时,就得到估算出的接收机的位置为向量x的值。

4、

i)验证求解 (valsol)

j)

1、对伪距残差值做内积,然后同卡方分布的自由度分布值(alpha=0、001)做比较,大于卡方分布的自由度分布值的数据,无效、

2、

3、计算dops;暂时还没没找到资料。

4、

5、用计算出来的dops与配置的最大dops阈值比较,大于配置的最大dops阈值的数据无效、

6、

5.使用多普勒估算接收机速度(estvel)

6.

a)多普勒残差(resdop)

b)

Ø把ecef坐标系转换成大地坐标系(ecef2pos)

Ø

Ø把xyz坐标转换成enu坐标(xyz2enu)

Ø

Ø计算ecef中的瞄准线向量

Ø

Ø计算相关于接收机在ECEF中的卫星速度

Ø

Ø多普勒残差计算

Ø

1、速率公式:

c)最小二乘估计(lsq)

d)

Ø最小二乘估计通过求解正规方程(X =(A * A’)^ -1* A*Y)

Ø

1、计算矩阵A*Y的结果,保存到矩阵Ay;

2、

3、计算矩阵A*A'的结果,保存到矩阵Q;

4、

5、求的矩阵Q的逆矩阵,结果保存到矩阵Q;

6、

7、最后x=Q*Ay

8、

e)欧几里德范数(norm)

f)

公式:

5、通过最小二乘法估算出来的参数dx【长度为4】,分不加到速度向量上x【长度为4】。

6、

7、对这个速度向量做欧几里德范数,返回值同1E—6比较,小于这个值时,就得到估算出的接收机速度为向量x的值。

8、

4.3精确定位(pppos)

4.4

1:

udstate_ppp →2:

satposs → 3:

testeclipse→4:

res_ppp→5:

 res_ppp→ 6:

filter → 7:

res_ppp

1.暂时更新状态(udstate_ppp)

2.

a)位置更新

b)

c)时钟更新

d)

e)对流层参数更新

f)

g)相位偏差更新

h)

1、通过LLI检测周跳;

2、

3、通过Geometry—Free相位跳变检测周跳(假如双频测量值可用);

4、

3.计算卫星的位置与速度与时钟(satposs)

4.

e)通过广播星历计算卫星钟差(ephclk)

f)

Ø卫星编号到卫星系统的转换(satsys)

Ø

依照卫星的编号,获取到对应的卫星导航系统。

Ø选择星历(seleph)

Ø

1、传入信号传输时间,卫星编号,导航数据等参数、

2、遍历导航数据,遍历导航数据里面的星历数据,判断星历数据的卫星编号是否与传入的卫星编号相等。

3、假如星历数据的卫星编号与传入的卫星编号相等,就计算星历参考时间(toe)与信号传输时间的时间差、假如不相等,接着处理下一条星历数据。

4、判断计算出来的时间差,假如时间差大于了允许的最大时间差,接着查找下一个星历数据。

否则,判断时间差最小的星历数据,记录星历数据的位置、

5、返回之前记录出来的星历数据、

Ø使用广播星历计算卫星时钟偏差(eph2clk)

Ø

7、传入信号传输时间与星历数据、

8、

9、传入信号发射时刻的时间与星历数据。

10、

11、计算信号发射时刻的时间与本时段钟差参数参考时间(星历参数toc)的时间差、

12、

13、通过下式计算钟差,这个地方还没有处理相对论校正项与tgd:

(代码中有个迭代过程,资料上没看到写)

14、

g)计算卫星位置、速度与时钟(satpos)

h)

依照星历表选项来选择不同的处理,如下:

Ø广播星历(EPHOPT_BRDC):

ephpos(广播星历到卫星位置与钟差)

Ø

1、依照公式计算出tk;

2、

3、依照使用的卫星系统,选择使用的地球引力常数(mu)与地球的角速度(omge)

4、

5、依照公式计算出平近点角M、

6、

7、求解开普勒方程,依照以下公式迭代求解。

8、

9、依照以下公式计算出u(改正后的纬度幅角),r(改正后的径向),i(改正后的轨道倾角)的值。

10、

11、依照以下公式计算卫星在轨道平面内的坐标、

12、

13、依照不同的卫星系统,做不同的计算。

14、

GPS计算方式:

北斗计算方式:

其中

15、依照公式计算出时间tc。

16、

17、依照以下公式计算出钟差与钟漂、

18、

Ø周密星历(EPHOPT_PREC):

peph2pos

Ø

Ø广播+SBAS(EPHOPT_SBAS):

satpos_sbas

Ø

Ø广播+SSR_APC(EPHOPT_SSRAPC):

satpos_ssr

Ø

Ø广播+SSR_(EPHOPT_SSR):

satpos_ssr

Ø

ØQZSSLEX星历(EPHOPT_LEX):

lexeph2pos

Ø

5.排除对被遮蔽卫星的测量(testeclipse)

6.

a)获得太阳与月亮在ecef中的位置(sunmoonpos)

b)

c)归一化三维矢量(normv3)

d)

e)欧几里德范数的向量(norm)

f)

g)计算太阳—地球-卫星角(dot)

h)

7.相位与编码残差(res_ppp)

8.

a)地球潮汐改正(tidedisp)

b)

c)计算几何距离(geodist)

d)

1、用卫星的坐标向量做欧几里德范数,返回值与地球长半轴(WGS84)比较、小于地球长半轴(WGS84),返回—1;

2、

3、计算卫星坐标与接收机坐标的差值向量、

4、

5、用差值向量做欧几里德范数,再用上一步计算出来的差值向量与计算结果做除法,得到视线向量。

6、

7、使用以下公式计算几何距离。

8、

ﻩ备注:

这个公式是地球自转改正公式。

地球自转改正产生地球自转改正的机制在于地固系随地球的自转而旋转, 地固系是非惯性系统,用地固系中的坐标计算卫星到接收机几何距离时,由于卫星位置与接收机位置是两个不同时刻的位置矢量, 而且这两个时刻的地固系相关于惯性系是变化的,因此要考虑地球自转引起的距离变化。

其改正公式为:

 

其中, w 为地球自转角速度;C为光速;xsi与xri分不代表卫星位置矢量与测站位置矢量的分量,i=1,2对应x,y分量。

地球自转对纬度影响甚小, 对经度影响最大,其次是高度、同时地球的自转影响还跟测站的经纬度以及测站与卫星的几何关系有关, 对两极的测站, 影响为零; 对赤道上的测站影响最大;当卫星在测站子午面内影响为零;卫星在测站东方时,影响为负,卫星在测站西方时,影响为正。

e)卫星方位角/仰角计算(satazel)

f)

1、把接收机ecef坐标转换到大地坐标;

2、

3、判断高度是否大于地球半长轴(WGS84)的负数值;

4、

5、假如高度小于等于地球半长轴(WGS84)的负数值,方位角为0,仰角为PI/2;

6、

7、假如高度大于地球半长轴(WGS84)的负数值,把ECEF向量转换到局部坐标。

然后对转换出来的坐标做内积、

8、

9、使用如下公式计算卫星方位角与仰角。

10、

g)对流层延迟修正:

h)

Ø通过标准大气压与saastamoinen模型计算对流层延迟 (tropmodel)

Ø

1、使用以下公式计算总气压。

2、

3、使用以下公式计算绝对温度。

4、

5、使用以下公式计算水蒸汽的分压。

代码中没有使用。

6、

7、使用以下公式计算【Saastamoinen模型】、

8、

i)卫星天线模型(satantpcv)

j)

k)接收机天线模型,通过天线相位中心参数计算天线偏移 (antmodel)

l)

m)相位缠绕校正(windupcorr)

n)

o)电离层与天线相位校正测量(corrmeas)

p)

q)计算卫星时钟与对流层延迟

r)

9.卡尔曼滤波(filter)

10.

卡尔曼滤波依照以下的公式更新状态:

K  =P*H*(H'*P *H+R)^-1;

xp =x +K*v;

Pp=(I– K* H')* P ;

参数解释:

x:

状态向量 (nx1)

p:

 状态的协方差矩阵(n xn)

H:

设计矩阵的转置矩阵(n x m)

v:

 创新(测量—模型)(mx 1)

R:

 测量误差的协方差矩阵(m xm)

n,m:

状态与测量值的数量

xp:

状态更新后的向量 (nx 1)

Pp:

状态更新后的协方差矩阵(nxn)

11.组合残差(res_ppp)

12.

13.解析PPP整周模糊度(pppamb)

14.

a)average LC(average_LC)

b)

c)固定宽巷模糊(fix_amb_WL)

d)

Ø计算LC波长度(m)(lam_LC)

Ø

Ø宽巷模糊

Ø

Ø宽巷模糊度的方差

Ø

e)fix narrow-lane ambiguity 【ARmode:

PPP-AR】

f)

g)fixnarrow-lane ambiguity byILS【ARmode:

PPP—ARILS】

h)

5ﻬ以下是上面一些算法的参考资料,信息来自于Rtklib的手册

6

6.1接收机与卫星天线之间的几何距离

6.2

6.3卫星方向的方位角与仰角

6.4

6.5GPS、Galileo与QNSS广播星历与时钟

6.6

6.7北斗广播星历与时钟

6.8

6.9对流层与电流层模型

6.10

6.10.1对流层模型

6.10.2

6.10.3电离层模型

6.10.4

6.11单点定位

6.12

6.12.1线性最小二乘估计

6.12.2

6.12.3估算接收机的位置与钟差

6.12.4

6.12.5估算接收机的速度与钟漂

6.12.6

6.12.7求解验证与RAIM FDE

6.12.8

6.13周密定位

6.14

6.14.1用于PPP的ZD测量模式

6.14.2

6.14.3接收机天线相位中心模型

6.14.4

6.14.5卫星天线相位中心模型

6.14.6

6.14.7由地球潮汐引起的位移

6.14.8

6.14.9相位缠绕校正

6.14.10

6.14.11通过PPP估算接收机的位置

6.14.12

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2