DAY21---GINav学习

1.流程图:

 

2.代码部分:

function exepos(opt,file)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% execute positioning
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Copyright(c) 2020-2025, by Kai Chen, All rights reserved.
%8/12/2020
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
tic
global glc gls
rtk=gls.rtk;
obsr=gls.obs;nav=gls.nav; 
%obsr: "obsr"代表流动站(Rover Station)的观测数据。
%obsr文件包含了流动站接收到的卫星观测数据,包括伪距和载波相位观测数值。
% 读取观测文件(基准站的观测数据)
if ~strcmp(file.obsr,'')%如果流动站的观测数据里面不为空
    %"file.obsr"代表流动站观测数据文件(Rover Station Observation File)
    %这些文件通常以”.obsr"的扩展名来表示。
    [obsr,nav]=readrnxobs(obsr,nav,opt,file.obsr);%调用readrnxobs()函数
    if obsr.n==0
        error('Number of rover obs is zero!!!');
    end
else
    error('Have no observation file for rover!!!');
end
% 读取观测文件(流动站的观测数据)
% if ~strcmp(file.obsb,'')%如果基准站的观测数据里面不为空
%     %"file.obsb"表示基准站观测数据文件(Base Station Observation File)。
%     %这些文件通常以”.obsb"的扩展名来表示。
%     [obsb,nav]=readrnxobs(obsb,nav,opt,file.obsb);%调用readrnxobs()函数
%     if obsb.n==0&&opt.mode>=glc.PMODE_DGNSS&&opt.mode<=glc.PMODE_STATIC
%         error('Number of base obs is zero!!!');
%     end
% else
%     if opt.mode>=glc.PMODE_DGNSS&&opt.mode<=glc.PMODE_STATIC
%         error('Relative positioning mode,but have no observation file for base station!!!');
%     end
% end
% 读取导航文件
if ~strcmp(file.beph,'')
    %“file.beph"是指广播星历文件(Broadcast Ephemeris),也称为星历数据文件。
    %这些文件通常以”.beph"的扩展名来表示。
    nav=readrnxnav(nav,opt,file.beph);%调用readrnxnav()函数
else
    error('Have no broadcast ephemeris file!!!');
end
fprintf('Info:Data preparation has been completed\n');

% initlize output file
%initoutfile() 是一个函数,用于初始化输出文件,设置输出文件的格式和路径。
rtk=initoutfile(rtk,opt,file,obsr);%设置输出文件

% high efficiency by converting struct to matrix提高星历匹配的速度
%obsr与obsb表示的伪距观测数据与载波相位观测数据
obsr=adjobs(obsr,opt);%ajdobs()函数表示的是调整后的RINEX观测数据
nav =adjnav(nav,opt); %adjnav()函数表示的是调整后的广播星历数据
% process all data
%加载所有的数据

if opt.ins.mode==glc.GIMODE_OFF
    % gnss
    gnss_processor(rtk,opt,obsr,nav);
end
toc
return

3.看matlab课:

基本操作于矩阵输入

(1)计算的时候,注意ln与e为底该怎样去写?Π一般用pi来表示。

e的sin(10)次方=exp(sin(10))

exp(sin(10))

ans =

0.5804

(2)matlab里面没有先对数值进行定义的情况,此时就存在变量的问题。

左右不能交换:A=10,把10的值指定为A

A是变数,10是实数。

(3)特殊的变量

ans

i,j:复数

Inf:无限

eps:2.2204e-016特别小的量

NaN:未定义

在命令行窗口打出 iskeyword,就看到可以当作变量的东西

(4)keywords当作变量的内容

cos='napcincw :';cos(8)

ans =

'w'

(5)format

有关输入数值的多,变化变短

format long pi

ans =

3.141592653589793

(6)如何输入矩阵?

B=[1:2:99]%%等差是2从1到99 1 3 5 7 ...99

B=[1:5;2:3:15;-2:0.5:0]

B =

列 1 至 4

   1              2              3              4
   2              5              8             11
  -2             -3/2           -1             -1/2

列 5

   5
  14
   0

 

A=[1 21 6;5 17 9;31 2 7]

A =

   1             21              6
   5             17              9
  31              2              7

A(3,:)

ans =

  31              2              7

A(3,:)%%%表示的是从第三行开始多有的元素都被输出

*A.B表示的是两个矩阵对应数值的相乘

C=A'

C =

   1              4              7
   2              5              8
   3              6              9

C表示的是A的转置

(7)矩阵的一些运算

最开始的一个是以每一列作为运转

A=[1 3 5;1 0 9;3 4 9]; max(A)

ans =

   3              4              9

max(max(A))

ans =

   9

sum(A)

ans =

   5              7             23

sum(sum(A))

ans =

  35

min(A)

ans =5

   1              0              5

min(min(A))

ans =

   0

sort(A)

ans =

   1              0              5
   1              3              9
   3              4              9

sort(sort(A))

ans =

   1              0              5
   1              3              9
   3              4              9

size(A)

ans =

   3              3

length(A)

ans =

   3

find(A)

ans =

   1
   2
   3
   4
   6
   7
   8
   9

find(A==1)

ans =

   1
   2

小练习:

format short (3/13)+(4/14)+(5/15)

ans =

0.8498

format long (3/13)+(4/14)+(5/15)

ans =

0.849816849816850

format shortE (3/13)+(4/14)+(5/15)

ans =

8.4982e-01

format longE (3/13)+(4/14)+(5/15)

ans =

 8.498168498168497e-01

format bank (3/13)+(4/14)+(5/15)

ans =

      0.85

format hex (3/13)+(4/14)+(5/15)

ans =

3feb31b31b31b31a

format rat (3/13)+(4/14)+(5/15)

ans =232/273

4.看论文:

看论文《Beidou、Galileo、GLONASS、GPS多系统融合精密单点》

发布时间:

2015年12月

研究方法:

参数估计方法

研究目的:

随着中国Beidou系统与欧盟Galileo系统的出现以及俄罗斯GLONASS系统的恢复完善,过去单一的GPS导航卫星系统时代已经逐步过渡为多系统并存且相互兼容的全球性卫星导航系统时代,多系统GNSS融合精密定位将成为未来GNSS精密定位技术的发展趋势。

创新点:

使用多系统融合进行PPP的话可以弥补单系统由于可见卫星数目不足而无法连续定位,而多系统融合仍然可以获得PPP定位结果,尤其是水平方向具有较高的定位精度。

总结:

试验结果表明:在单系统观测几何构型不理想的区域,多系统融合能显著提高PPP的定位精度和收敛速度。4大系统融合的PPP收敛速度相对于单GNSS可提高30%-50%,定位

精度可提高10%-30%,特别是对高程方向的贡献更为明显。此外,在卫星截止高度角大于30°的观测环境下,单系统由于可见卫星数不足导致无法连续定位,而多系统融合仍然可以获得PPP定位结果,尤其是水平方向具有较高的定位精度。这对于山区、城市以及遮挡严重的区域具有非常重要的应用价值。

整个思路--流程:

1.引言:介绍PPP的发展状况、有哪些人做了那些研究、当下的缺点

2.多系统下PPP定位模型及处理策略

2.1基本观测方程

2.2数据处理策略

3.试验分析

3.1试验数据及方案

4.结论及展望

(1)GLONASS采用频分多址的信号结构,导致每颗卫星存在的频率偏差延迟均不一致。

(2)多系统融合定位的精度高的原因在于,随着高度角的增加,如果是单系统的话,观测卫星数目少,而多系统的话,卫星数目的大于10颗以上,因此精度

(3)ZTD的可分离性

流层天顶延迟的可分离性是指通过全球定位系统(GPS)观测数据分析,将总的延迟分解为不同部分的能力。流层天顶延迟是指由于大气层中的水汽和温度变化引起的信号传播延迟。可分离性意味着我们可以将流层天顶延迟拆分为流体延迟几何延迟两个部分。

(4)在本文的分析,如果是对单系统与多系统进行分析的话,主要从定位精度与收敛速度两方面进行分析。

看论文《动态精度单点定位(PPP)的精度分析》

发布时间:

2006年

研究方法:

参数估计方法

研究目的:

该研究的目的是验证创造TriP软件的精度以及在实际情况中的应用情况。

创新点:

团队编程创造了一个名叫TriP的软件,处理动态GPS数据,计算结果表明是要该软件PPP技术可以达到的几个cm精度。

总结:

在该篇文献当中针对PPP的数学模型,该团队研制出了后处理PPP软件----TriP,结合数据,实现了动态PPP比较分析单点定位的结果和精度。

计算结果表明:PPP技术可以达到的几个cm精度。

整个思路--流程:

1.精密单点定位及软件实现:

观测方程建立、观测方程的线性化、软件基本功能介绍

1.1数据预处理

1.2误差改正

1.3参数估计方法(最小二乘法/卡尔曼滤波)

2.精密单点定位实例及精度分析

自己的理解:

  1. 在动态定位中,接收机天线的位置每个历元都在变化,接收机的钟差每个历元也不一样。
  2. 最小二乘中通常使用观测值的验后残差及由残差所计算的RMS值的大小来评价参数估计的内符合精度或模型精度。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值