当前位置:网站首页>GPS从入门到放弃(十四)、电离层延时

GPS从入门到放弃(十四)、电离层延时

2022-07-06 13:46:00 追捕的风

一、电离层概念

电离层(Ionosphere)是地球大气的一个电离区域。它是受到太阳高能辐射以及宇宙线的激励而电离的大气高层。50千米以上的整个地球大气层都处于部分电离或完全电离的状态,电离层是部分电离的大气区域,完全电离的大气区域称磁层。

       电离层的范围从离地面约50公里开始一直伸展到约1000公里高度的地球高层大气空域。电离层的主要特性由电子密度、电子温度、碰撞频率、离子密度、离子温度和离子成分等空间分布的基本参数来表示。
       电离层的研究对象主要是电子密度随高度的分布。电子密度(或称电子浓度)是指单位体积的自由电子数,随高度的变化与各高度上大气成分、大气密度以及太阳辐射通量等因素有关。电离层内任一点上的电子密度,决定于上述自由电子的产生、消失和迁移三种效应。在不同区域,三者的相对作用和各自的具体作用方式也大有差异。电离层中存在相当多的自由电子和离子,能使无线电波改变传播速度,发生折射、反射和散射,产生极化面的旋转并受到不同程度的吸收。


二、电离层对卫星导航的影响

三、双频接收机消除电离层延时

四、单频接收机消除电离层延时

以上每条公式中最后的括号内的表示运算单位,semi-circle是半圆,其与弧度的换算关系是 π 弧度等于一个半圆。下面摘录了 RTKLIB 中用 Klobuchar 模型计算电离层延时的函数代码,可以跟以上公式进行一一对应。需要注意的是计算时的单位换算,azel[0], azel[1]分别是方位角和仰角,pos[0], pos[1]分别是接收机纬度和经度,它们的单位都是弧度,所以换算成半圆时需要除以π 。
 

double ionmodel(gtime_t t, const double *ion, const double *pos,
                       const double *azel)
{
	const double ion_default[]={ /* 2004/1/1 */
		0.1118E-07,-0.7451E-08,-0.5961E-07, 0.1192E-06,
	    0.1167E+06,-0.2294E+06,-0.1311E+06, 0.1049E+07
	};
    double tt,f,psi,phi,lam,amp,per,x;
    int week;
 
    if (pos[2]<-1E3||azel[1]<=0) return 0.0;
    if (norm(ion,8)<=0.0) ion=ion_default; //若没有电离层参数,用默认参数
 
    /* earth centered angle (semi-circle) */
    psi=0.0137/(azel[1]/PI+0.11)-0.022;
 
    /* subionospheric latitude/longitude (semi-circle) */
    phi=pos[0]/PI+psi*cos(azel[0]);
    if      (phi> 0.416) phi= 0.416;
    else if (phi<-0.416) phi=-0.416;
    lam=pos[1]/PI+psi*sin(azel[0])/cos(phi*PI);
 
    /* geomagnetic latitude (semi-circle) */
    phi+=0.064*cos((lam-1.617)*PI);
 
    /* local time (s) */
    tt=43200.0*lam+time2gpst(t,&week);
    tt-=floor(tt/86400.0)*86400.0; /* 0<=tt<86400 */
 
    /* slant factor */
    f=1.0+16.0*pow(0.53-azel[1]/PI,3.0);
 
    /* ionospheric delay */
    amp=ion[0]+phi*(ion[1]+phi*(ion[2]+phi*ion[3]));
    per=ion[4]+phi*(ion[5]+phi*(ion[6]+phi*ion[7]));
    amp=amp<    0.0?    0.0:amp;
    per=per<72000.0?72000.0:per;
    x=2.0*PI*(tt-50400.0)/per;
 
    return CLIGHT*f*(fabs(x)<1.57?5E-9+amp*(1.0+x*x*(-0.5+x*x/24.0)):5E-9);
}

单频接收机用 Klobuchar 模型计算电离层延时大致能消除电离层延时的50%,而双频的方法能消除绝大部分,精度达到1m以下。

原网站

版权声明
本文为[追捕的风]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_38428439/article/details/125609458