当SBAS遇上rtklib

本文介绍了SBAS(星基增强系统)的工作原理及其在RTKLib中的支持情况。RTKLib允许SBAS卫星作为普通导航卫星参与解算,提供更高的定位精度。详细讨论了SBAS卫星的位置计算、观测值获取,以及电离层修正过程,包括电离层切入点的计算和插值处理的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

SBAS是星基增强系统Satellite-Based Augmentation System的缩写。例如USA的WAAS就是一个SBAS系统。

星基增强系统(SBAS)和地基增强系统(CORS)仅一字之差,那么星基增强系统是怎么工作的呢?CORS需要基准站才能工作。类似的SBAS需要GEO卫星(为避免混淆,这里称为SBAS卫星)和地面站的配合才能工作起来,不过这些不需要我们用户关注。SBAS卫星可以向用户播发星历误差、卫星钟差、电离层延迟参数等多种修正信息,从而提升定位精度。

另外,值得注意的是SBAS卫星不仅仅是一个信号转发设备,其本身也是导航卫星,同样可以下发广播星历,接收机也可以获取到SBAS卫星的载波相位和伪距等观测信息。所以,SBAS卫星是可以当作一颗普通的导航卫星来用的。

RTKLib中对SBAS的支持

rtklib是支持sbas参与解算的,并且上边的两种方式都支持。

SBAS卫星作为普通导航卫星

既然SBAS卫星要作为普通的导航卫星用,那么我们就要知道卫星的位置和观测值,卫星位置当然是通过其本身下发的星历计算。以下是SBAS卫星位置的计算方法,跟GLONASS的计算方法很像。

/* sbas ephemeris to satellite position and clock bias */
extern void seph2pos(gtime_t time, const seph_t *seph, double *rs, 
double *dts,double *var)
{
   
    double t;
    int i;
    
    trace(4,"seph2pos: time=%s sat=%2d\n",time_str(time,3),seph->sat);
    
    t=timediff(time,seph->t0);
    for (i=0;i<3;i++) {
   
        rs[i]=seph->pos[i]+seph->vel[i]*t+seph->acc[i]*t*t/2.0;
    }
    *dts=seph->af0+seph->af1*t;
    
    *var=var_uraeph(SYS_SBS,seph->sva);
}

以下是Rinex中,SBAS的星历格式。
在这里插入图片描述
以下为rtklib中SBAS星历的Rinex解析。

    seph->af0=data[0];
    seph->af1=data[1];
    
    seph->pos[0]=data[3]*1E3; seph->pos[1]=data[7]*1E3; seph->pos[2]=data[11]*1E3;
    seph->vel[0]=data[4]*1E3; seph->vel[1]=data[8]*1E3; seph->vel[2]=data[12]*1E3;
    seph->acc[0]=data[5]*1E3; seph->acc[1]=data[9]*1E3; seph->acc[2]=data[13]*1E3;
    
    seph->svh=(int)data[6];
    seph->sva=uraindex(data[10]);

同样,Rinex观测文件中可以读到SBAS的观测信息。
在这里插入图片描述
例如,下面例子中为一条Rinex观测信息,其中S20为SBAS卫星。
在这里插入图片描述
现在我们有了星历和观测值,就可以进行定位解算了,点击这里阅读rtklib单点定位讲解。哦,还有一点,不同的卫星的观测值要给不同的权。SBAS卫星也不例外。

static double varerr(const prcopt_t *opt, double el, int sys)
{
   
    double fact,varr;
    fact=sys==SYS_GLO?EFACT_GLO:(sys==SYS_SBS?EFACT_SBS:EFACT_GPS);
    if (el<MIN_EL) el=MIN_EL;
    varr=SQR(opt->err[0])*(SQR(opt->err[1])+SQR(opt->err[2])
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值