当前位置:网站首页>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以下。
边栏推荐
- Sparkshuffle process and Mr shuffle process
- jvm:大对象在老年代的分配
- Dialogue with Jia Yangqing, vice president of Alibaba: pursuing a big model is not a bad thing
- 麦趣尔砸了小众奶招牌
- MPLS experiment
- Happy sound 2[sing.2]
- 1292_FreeROS中vTaskResume()以及xTaskResumeFromISR()的实现分析
- Technology sharing | packet capturing analysis TCP protocol
- 中国白酒的5场大战
- Run the deep network on PI and Jetson nano, and the program is killed
猜你喜欢
Aggregate function with key in spark
美国科技行业结束黄金时代,芯片求售、裁员3万等哀声不断
Why rdd/dataset is needed in spark
Enhance network security of kubernetes with cilium
What can one line of code do?
Vit paper details
The golden age of the U.S. technology industry has ended, and there have been constant lamentations about chip sales and 30000 layoffs
袁小林:安全不只是标准,更是沃尔沃不变的信仰和追求
数字化转型挂帅复产复工,线上线下全融合重建商业逻辑
Shake Sound poussera l'application indépendante de plantation d'herbe "louable", les octets ne peuvent pas oublier le petit livre rouge?
随机推荐
Sdl2 source analysis 7: performance (sdl_renderpresent())
Numpy download and installation
JPEG2000 matlab source code implementation
guava:Collections. The collection created by unmodifiablexxx is not immutable
1292_ Implementation analysis of vtask resume() and xtask resume fromisr() in freeros
WEB功能测试说明
Web开发小妙招:巧用ThreadLocal规避层层传值
美国科技行业结束黄金时代,芯片求售、裁员3万等哀声不断
缓存更新策略概览(Caching Strategies Overview)
Dialogue with Jia Yangqing, vice president of Alibaba: pursuing a big model is not a bad thing
Unity3D学习笔记6——GPU实例化(1)
Leetcode topic [array] -118 Yang Hui triangle
中国白酒的5场大战
20 large visual screens that are highly praised by the boss, with source code templates!
Checkpoint of RDD in spark
C语言:#if、#def和#ifndef综合应用
Depth first traversal (DFS) and breadth first traversal (BFS)
Binary tree node at the longest distance
Write a rotation verification code annotation gadget with aardio
Reinforcement learning - learning notes 5 | alphago