GNSS相对定位中的天线位置概念及设置(Marker, ARP, Phase center)

基本概念(Marker, ARP, Phase center)

首先先来区分几个概念:

  • Marker: 大地测量参考标尺,上面用三脚架或者直接固定天线
  • ARP(antenna reference point):天线上定义良好的点,一般选取接收机天线底部与天线中轴的交点作为参考点
  • Antenna Phase center(天线相位中心):即天线接收信号的电气中心,其空间位置在出厂时往往不在天线的几何中心上。天线所辐射出的电磁波在离开天线一定的距离后,其等相位面会近似为一个球面,该球面的球心即为该天线的等效相位中心,即天线相位中心(Antenna Phase Center )

这三个不同位置在天线中的偏差表示如下图:
在这里插入图片描述

天线位置修正

参考RINEX3.04定义,如下图,关于天线位置的两项必有的参数为:

  • marker近似位置
  • ARP相对marker的H/E/N偏差,即上图中的“Offset between ARP and marker”
    在这里插入图片描述

对于相位中心与ARP之间的偏差,可以根据不同类型天线的天线模型参数获得,例如ngs14.atx文件中提供不同天线的PCO以及PCV参数。

由于GNSS原始数据测量的是卫星到相位中心的距离,因此在进行相位定位时,如果基站提供的位置是marker的位置(例如RINEX头中marker近似位置),我们需要将“Offset between ARP and marker”、“phase center offset”修掉。

RTKLIB中天线位置修正

从postpos.c文件中的antpos函数可知,如下图,如果基站的位置是RINEX头中的位置,会利用ARP和marker之间的偏差,计算得到ARP的位置。

在之后相位定位计算中,也会将对天线PCO和PCV进行修正,具体参见上一篇博客RTKLIB中的卫星天线与接收机天线修正

对于移动站而言:

  • 在没有Rover天线相关参数设置的情况下(没有勾选并设置antenna Type),计算出来的实际上是相位中心的位置
  • 如果rovre atenna type是*auto,那么从RINEX头里面识别到的天线类型、以及DELTA H/E/N会起作用。如果有该天线参数,且RINEX头中的DELTA H/E/N都为0,那么计算出来的是ARP位置;如果DELTA H/E/N不为0,计算出来的是marker位置
  • 如果rover antenna type不是*auto,而是自己配置的天线类型,那么该天线类型,以及配置的DELTA -E/N/U会起作用。如果有该天线参数,DELTA -E/N/U都为0,那么计算出来的是ARP位置;如果DELTA -E/N/U不为0,则计算出来的是marker位置。
    在这里插入图片描述
/* antenna phase center position ---------------------------------------------*/
static int antpos(prcopt_t *opt, int rcvno, const obs_t *obs, const nav_t *nav,
                  const sta_t *sta, const char *posfile)
{
    double *rr=rcvno==1?opt->ru:opt->rb,del[3],pos[3],dr[3]={0};
    int i,postype=rcvno==1?opt->rovpos:opt->refpos;
    char *name;
    
    trace(3,"antpos  : rcvno=%d\n",rcvno);
    
    if (postype==POSOPT_SINGLE) { /* average of single position */
        if (!avepos(rr,rcvno,obs,nav,opt)) {
            showmsg("error : station pos computation");
            return 0;
        }
    }
    else if (postype==POSOPT_FILE) { /* read from position file */
        name=stas[rcvno==1?0:1].name;
        if (!getstapos(posfile,name,rr)) {
            showmsg("error : no position of %s in %s",name,posfile);
            return 0;
        }
    }
    else if (postype==POSOPT_RINEX) { /* get from rinex header */
        if (norm(stas[rcvno==1?0:1].pos,3)<=0.0) {
            showmsg("error : no position in rinex header");
            trace(1,"no position in rinex header\n");
            return 0;
        }
        /* antenna delta */
        if (stas[rcvno==1?0:1].deltype==0) { /* enu */
            for (i=0;i<3;i++) del[i]=stas[rcvno==1?0:1].del[i];
            del[2]+=stas[rcvno==1?0:1].hgt;
            ecef2pos(stas[rcvno==1?0:1].pos,pos);
            enu2ecef(pos,del,dr);
        }
        else { /* xyz */
            for (i=0;i<3;i++) dr[i]=stas[rcvno==1?0:1].del[i];
        }
        for (i=0;i<3;i++) rr[i]=stas[rcvno==1?0:1].pos[i]+dr[i];
    }
    return 1;
}
  • 3
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值