动态相对定位求流动站位置
在动态相对定位中,参考站A的接收机固定在基线向量已知的点上,流动站接收机是移动的,需要确定其在任意历元的位置。下面主要介绍相对定位的处理过程,调用的函数是procpos(postpos.c.)。
在函数procpos中,首先调用函数inputobs(postpos.c)函数来输入每一历元的观测数据和星历数据,然后再调用rtkpos(rtkpos.c)函数来进行精密定位。
下面主要讲述在函数rtkpos中处理数据的具体流程。
- 码伪距单点定位求流动站的近似坐标pntpos
- 载波相位动态相对定位relpos(rtkpos.c)
relpos
所在文件:rtkpos.c
调用
relpos(rtk,obs,nu,nr,nav);
函数定义
int rtkpos(rtk_t *rtk, const obsd_t *obs, int n, const nav_t *nav)
功能说明:
输入观测数据和导航数据,通过精密定位计算移动站的位置
参数说明
/* precise positioning----------------------------
* input observation data and navigation message, compute rover position by precise positioning
* args :
* rtk_t *rtk IO rtk control/result struct
* rtk->sol IO solution
* .time O solution time
* .rr[] IO rover position/velocity (I:fixed mode,O:single mode)
* .dtr[0] O receiver clock bias (s)
* .dtr[1] O receiver glonass-gps time offset (s)
* .Qr[] O rover position covarinace
* .stat O solution status (SOLQ_???)
* .ns O number of valid satellites
* .age O age of differential差分时间 (s)
* .ratio O ratio factor for ambiguity validation
* rtk->rb[] IO base station position/velocit (I:relative mode,O:moving-base mode)
* rtk->nx I number of all states
* rtk->na I number of integer states
* rtk->ns O number of valid satellite
* rtk->tt O time difference between current and previous (s)
* rtk->x[] IO float states pre-filter and post-filter
* rtk->P[] IO float covariance pre-filter and post-filter
* rtk->xa[] O fixed states after AR
* rtk->Pa[] O fixed covariance after AR
* rtk->ssat[s] IO sat(s+1) status
* .sys O system (SYS_???)
* .az[r] O azimuth angle (rad)(r=0:rover,1:base)
* .el[r] O elevation angle (rad) (r=0:rover,1:base)
* .vs[r] O data valid single (r=0:rover,1:base)
* .resp[f] O freq(f+1) pseudorange residual (m)
* .resc[f] O freq(f+1) carrier-phase residual (m)
* .vsat[f] O freq(f+1) data vaild (0:invalid,1:valid)
* .fix[f] O freq(f+1) ambiguity flag (0:nodata,1:float,2:fix,3:hold)
* .slip[f] O freq(f+1) slip flag (bit8-7:rcv1 LLI, bit6-5:rcv2 LLI, bit2:parity unknown, bit1:slip)
* .lock[f] IO freq(f+1) carrier lock count
* .outc[f] IO freq(f+1) carrier outage count
* .slipc[f] IO freq(f+1) cycle slip count
* .rejc[f] IO freq(f+1) data reject count
* .gf IO geometry-free phase (L1-L2) (m)
* .gf2 IO geometry-free phase (L1-L5) (m)
* rtk->nfix IO number of continuous fixes of ambiguity
* rtk->neb IO bytes of error message buffer
* rtk->errbuf IO error message buffer
* rtk->tstr O time string for debug
* rtk->opt I processing options
* obsd_t *obs I observation data for an epoch
* obs[i].rcv=1:rover,2:reference sorted by receiver and satellte
* int n I number of observation data
* nav_t *nav I navigation messages
* return: status (0:no solution,1:valid solution)
* notes: before calling function, base station position rtk->sol.rb[] should be properly set for relative mode except for moving-baseline
*--------------------------------------------*/