当前位置:网站首页>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以下。
边栏推荐
- Reptile practice (V): climbing watercress top250
- [Chongqing Guangdong education] Information Literacy of Sichuan Normal University: a new engine for efficiency improvement and lifelong learning reference materials
- [Yu Yue education] higher mathematics of Nanchang University (2) reference materials
- Yyds dry goods inventory C language recursive implementation of Hanoi Tower
- Guava: three ways to create immutablexxx objects
- Intelligent online customer service system source code Gofly development log - 2 Develop command line applications
- One line by line explanation of the source code of anchor free series network yolox (a total of ten articles, you can change the network at will after reading it, if you won't complain to me)
- [go][reprint]vscode run a HelloWorld example after configuring go
- First batch selected! Tencent security tianyufeng control has obtained the business security capability certification of the ICT Institute
- c语言char, wchar_t, char16_t, char32_t和字符集的关系
猜你喜欢
![[daily] win10 system setting computer never sleeps](/img/94/15f5a368e395b6948f409c5f6fc871.jpg)
[daily] win10 system setting computer never sleeps

JPEG2000-Matlab源码实现

数字化转型挂帅复产复工,线上线下全融合重建商业逻辑
![[Chongqing Guangdong education] Tianjin urban construction university concrete structure design principle a reference](/img/61/976c7d86ab3b2df5f5af3beefbf547.png)
[Chongqing Guangdong education] Tianjin urban construction university concrete structure design principle a reference

50个常用的Numpy函数解释,参数和使用示例

Bat script learning (I)

AI 企业多云存储架构实践 | 深势科技分享

50 commonly used numpy function explanations, parameters and usage examples

What can one line of code do?
![Leetcode topic [array] -118 Yang Hui triangle](/img/77/d8a7085968cc443260b4c0910bd04b.jpg)
Leetcode topic [array] -118 Yang Hui triangle
随机推荐
make menuconfig出现recipe for target ‘menuconfig‘ failed错误
Aggregate function with key in spark
在最长的距离二叉树结点
数字化转型挂帅复产复工,线上线下全融合重建商业逻辑
C language: comprehensive application of if, def and ifndef
c语言char, wchar_t, char16_t, char32_t和字符集的关系
JS learning notes OO create suspicious objects
LeetCode学习记录(从新手村出发之杀不出新手村)----1
C how to set two columns comboboxcolumn in DataGridView to bind a secondary linkage effect of cascading events
Huawei has launched attacks in many industries at the same time, and its frightening technology has made European and American enterprises tremble
Tiktok will push the independent grass planting app "praiseworthy". Can't bytes forget the little red book?
跨分片方案 总结
设置状态栏样式Demo
Web开发小妙招:巧用ThreadLocal规避层层传值
[Chongqing Guangdong education] Tianjin urban construction university concrete structure design principle a reference
C语言:#if、#def和#ifndef综合应用
Z function (extended KMP)
mysql根据两个字段去重
C# 如何在dataGridView里设置两个列comboboxcolumn绑定级联事件的一个二级联动效果
一行代码可以做些什么?