让GNSSRTK不再难【第17讲】

第17讲 RTK定位技术原理-站间单差浮点解

RTK技术其实就是在RTD技术的基础上增加载波观测值的使用。由于伪距的误差在分米量级,即使我们通过站间单差消除掉绝大部分的伪距误差,但受限于伪距的精度,我们也只能达到分米量级的定位水平。

但载波不同,载波的精度在毫米量级,所以如果其他误差完全消除的话,理论上定位精度可达到毫米水平。毫米水平的定位精度,完全可以满足我们日常生活中绝大多数应用的需求。但实际上,站间单差后依然存在误差,定位精度在厘米量级。

17.1 再讲载波

载波观测方程如下:
Φ r s = ρ r s − c δ t r + c δ t s − I r s + T r s + λ N r s + ϵ L \Phi^s_r = \rho^s_r - c\delta t_r + c\delta t^s - I^s_r + T^s_r + \lambda N^s_r + \epsilon_L Φrs=ρrstr+tsIrs+Trs+λNrs+ϵL
其中:

  • ρ r s \rho^s_r ρrs 为卫星 s s s 到接收机 r r r 的伪距观测值
  • λ \lambda λ 为波长
  • N r s N^s_r Nrs 为整周模糊度
  • ϵ L \epsilon_L ϵL 为载波观测噪声

单位为米

从7.1.2节中,我们了解到载波使用“困难”的原因是,它存在整周模糊度。

同时在4.4节,我们也介绍了载波的测量原理:

载波只是种单纯的余弦波,不带有任何的识别标志,所以在第一次进行载波相位测量时,接收机实际测定的只是不足整周的小数部分 F r 0 Fr0 Fr0

初始观测历元 t 0 t_0 t0,载波的观测值为(单位为周):
Φ ( t 0 ) = N ( t 0 ) + F r 0 \Phi(t_0) = N(t_0) + Fr0 Φ(t0)=N(t0)+Fr0
其中 N ( t 0 ) N(t_0) N(t0) 为整周模糊度。

那么在下一个历元 t i t_i ti 时刻:
Φ ( t i ) = N ( t 0 ) + F r i + I n t ( ϕ i ) \Phi(t_i) = N(t0) + Fri + Int(\phi^i) Φ(ti)=N(t0)+Fri+Int(ϕi)
其中 I n t ( ϕ i ) Int(\phi^i) Int(ϕi) 为由时刻 t 0 t0 t0 t i t_i ti 接收机累周计数部分,可以通过信号跟踪计数得到。

由于载波频率高、波长短,所以载波相位测量精度高。

但是方程中还有一项误差没有表示出来,即相位硬件延迟。前面我们了解到不管是卫星端还是接收机端,均存在因信号通过天线和接收机的时间延迟,我们称之为伪距硬件延迟。同样的,对于载波,也存在相位硬件延迟,产生机理与伪距相同。

Φ r = ρ r s − c δ t s + c δ t r − I r s + T r s + N r s + d r − d s + ϵ L \Phi^r = \rho_r^s - c\delta t^s + c\delta t_r - I_r^s + T_r^s + N_r^s + d_r - d^s + \epsilon_L Φr=ρrsts+trIrs+Trs+Nrs+drds+ϵL

其中:

  • ρ r s \rho_r^s ρrs 为接收机到卫星的几何距离
  • c δ t s c\delta t^s ts 为卫星钟差
  • c δ t r c\delta t_r tr 为接收机钟差
  • I r s I_r^s Irs 为电离层延迟
  • T r s T_r^s Trs 为对流层延迟
  • N r s N_r^s Nrs 为整周模糊度
  • d r d_r dr 为接收机端第 i i i 频点的伪距硬件延迟
  • d s d^s ds 为卫星端第 i i i 频点的伪距硬件延迟
  • ϵ L \epsilon_L ϵL 为测量噪声

我们是否可以通过类似伪距延迟处理的手段,来处理相位硬件延迟?

首先,对于卫星端相位硬件延迟,已经有成熟的技术对其进行估计,终端通过使用相应的产品,可以实现模糊度固定,这称之为 PPPAR 技术。

在 RTK 技术中,卫星端的相位硬件延迟,可以通过站间单差消除。但接收机端的相位硬件延迟,因为分量级太小,不足一周的部分,所以量级太小,无法估计。但可以通过星间单差消除其影响,但是何时进行星间单差,有一定讲究,具体差异,会在后续浮点解算法流程中进一步描述。

17.2 站间单差浮点解方程

首先,引用14.1.2节的站间单差双系统双频伪距方程,并对每个系统每个频率的观测值个数限制为3,公式如下:

V = [ p f 1 G 1 p f 1 G 2 p f 1 G 3 p f 2 G 1 p f 2 G 2 p f 2 G 3 p f 1 C 1 p f 1 C 2 p f 1 C 3 p f 2 C 1 p f 2 C 2 p f 2 C 3 ] A = [ l f 1 G 1 m f 1 G 1 n f 1 G 1 − 1 0 0 0 l f 1 G 2 m f 1 G 2 n f 1 G 2 − 1 0 0 0 l f 1 G 3 m f 1 G 3 n f 1 G 3 − 1 0 0 0 l f 2 G 1 m f 2 G 1 n f 2 G 1 − 1 − 1 0 0 l f 2 G 2 m f 2 G 2 n f 2 G 2 − 1 − 1 0 0 l f 2 G 3 m f 2 G 3 n f 2 G 3 − 1 − 1 0 0 l f 1 C 1 m f 1 C 1 n f 1 C 1 − 1 0 − 1 0 l f 1 C 2 m f 1 C 2 n f 1 C 2 − 1 0 − 1 0 l f 1 C 3 m f 1 C 3 n f 1 C 3 − 1 0 − 1 0 l f 2 C 1 m f 2 C 1 n f 2 C 1 − 1 0 0 1 l f 2 C 2 m f 2 C 2 n f 2 C 2 − 1 0 0 1 l f 2 C 3 m f 2 C 3 n f 2 C 3 − 1 0 0 1 ] δ x = [ d x d y d z c δ t f 1 G c δ t f 2 G − f 1 G c δ t f 1 C − f 1 G c δ t f 2 C − f 1 G ] \mathbf{V} = \begin{bmatrix} p_{f1}^{G1} \\ p_{f1}^{G2} \\ p_{f1}^{G3} \\ p_{f2}^{G1} \\ p_{f2}^{G2} \\ p_{f2}^{G3} \\ p_{f1}^{C1} \\ p_{f1}^{C2} \\ p_{f1}^{C3} \\ p_{f2}^{C1} \\ p_{f2}^{C2} \\ p_{f2}^{C3} \\ \end{bmatrix} \quad \mathbf{A} = \begin{bmatrix} l_{f1}^{G1} & m_{f1}^{G1} & n_{f1}^{G1} & -1 & 0 & 0 & 0 \\ l_{f1}^{G2} & m_{f1}^{G2} & n_{f1}^{G2} & -1 & 0 & 0 & 0 \\ l_{f1}^{G3} & m_{f1}^{G3} & n_{f1}^{G3} & -1 & 0 & 0 & 0 \\ \\ l_{f2}^{G1} & m_{f2}^{G1} & n_{f2}^{G1} & -1 & -1 & 0 & 0 \\ l_{f2}^{G2} & m_{f2}^{G2} & n_{f2}^{G2} & -1 & -1 & 0 & 0 \\ l_{f2}^{G3} & m_{f2}^{G3} & n_{f2}^{G3} & -1 & -1 & 0 & 0 \\ \\ l_{f1}^{C1} & m_{f1}^{C1} & n_{f1}^{C1} & -1 & 0 & -1 & 0 \\ l_{f1}^{C2} & m_{f1}^{C2} & n_{f1}^{C2} & -1 & 0 & -1 & 0 \\ l_{f1}^{C3} & m_{f1}^{C3} & n_{f1}^{C3} & -1 & 0 & -1 & 0 \\ \\ l_{f2}^{C1} & m_{f2}^{C1} & n_{f2}^{C1} & -1 & 0 & 0 & 1 \\ l_{f2}^{C2} & m_{f2}^{C2} & n_{f2}^{C2} & -1 & 0 & 0 & 1 \\ l_{f2}^{C3} & m_{f2}^{C3} & n_{f2}^{C3} & -1 & 0 & 0 & 1 \\ \end{bmatrix} \delta \mathbf{x} = \begin{bmatrix} dx \\ dy \\ dz \\ c\delta t^{f^G_1} \\ c\delta t^{f^G_2 - f^G_1} \\ c\delta t^{f^C_1 - f^G_1} \\ c\delta t^{f^C_2 - f^G_1} \\ \end{bmatrix} V= pf1G1pf1G2pf1G3pf2G1pf2G2pf2G3pf1C1pf1C2pf1C3pf2C1pf2C2pf2C3 A= lf1G1lf1G2lf1G3lf2G1lf2G2lf2G3lf1C1lf1C2lf1C3lf2C1lf2C2lf2C3mf1G1mf1G2mf1G3mf2G1mf2G2mf2G3mf1C1mf1C2mf1C3mf2C1mf2C2mf2C3nf1G1nf1G2nf1G3nf2G1nf2G2nf2G3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/862150.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Node版本管理工具 fnm 安装使用

fnm 是一个基于 Rust 开发的 Node 版本管理工具,它的目标是提供一个快速、简单且可靠的方式来管理 Node.js 的不同版本。同时,它是跨平台的,支持 macOS、Linux、Windows。🚀 Fast and simple Node.js version manager, built in R…

头歌资源库(18)接龙序列

一、 问题描述 二、算法思想 首先,我们需要判断一个数列是否是接龙数列。可以通过遍历数列的每一个元素,判断该元素的首位数字是否等于前一个元素的末位数字。如果所有元素都满足条件,则该数列是接龙数列。 接下来,我们需要计算…

从今天开始,面朝大海,春暖花开

现在是晚上十一点多,我很困,头也很痛,床旁边放着擦边主播的ASMR,但我仍然睡不着,心里一直在默念什么,我想不如写下来。这样的念头一出,写下来的欲望就愈发强烈,我睁开眼,…

行人检测技术:思通数科大模型在自动驾驶安全中的应用

在自动驾驶技术飞速发展的今天,行人检测已成为确保道路交通安全的关键技术之一。本文将探讨如何结合思通数科大模型和计算机视觉技术,实现在城市交通环境中对行人的高效检测,为自动驾驶车辆提供必要的行人安全保障。 引言 行人检测技术是利…

vue3用自定义指令实现按钮权限

1,编写permission.ts文件 在src/utils/permission.ts import type { Directive } from "vue"; export const permission:Directive{// 在绑定元素的父组件被挂载后调用mounted(el,binding){// el:指令所绑定的元素,可以用来直接操…

备战秋招day6

算法 232. 用栈实现队列 class MyQueue {Stack<Integer> in;Stack<Integer> out;//构造器public MyQueue() {in new Stack<>();out new Stack<>();}//入队到末尾public void push(int x) {in.push(x);}//出队public int pop() {//先进先出//in的元…

大模型推理知识总结

一、大模型推理概念 大多数流行的only-decode LLM&#xff08;例如 GPT-3&#xff09;都是针对因果建模目标进行预训练的&#xff0c;本质上是作为下一个词预测器。这些 LLM 将一系列tokens作为输入&#xff0c;并自回归生成后续tokens&#xff0c;直到满足停止条件&#xff0…

【PL理论深化】(8) Ocaml 语言:元组和列表 | 访问元组中的元素 | 列表中的 head 和 tail | 基本列表操作符

&#x1f4ac; 写在前面&#xff1a;本章我们将探讨 OCaml 中的元组&#xff08;tuple&#xff09;和列表&#xff08;list&#xff09;&#xff0c;它们是函数式编程语言中最常用的数据结构。 目录 0x00 元组&#xff08;Tuple&#xff09; 0x01 访问元组中的元素 0x02 列表&…

IP中转是什么?IP中转会导致网速下降吗

在互联网通信中&#xff0c;IP中转是一个重要的概念&#xff0c;它涉及到数据包的路由和转发。但很多人对于IP中转及其对网络速度的影响并不十分了解。本文将详细解释IP中转的含义&#xff0c;并探讨它是否会导致网速下降。 IP中转是什么&#xff1f; IP中转&#xff0c;也称…

8.作用域与函数

1.局部变量与全局变量: 局部:在函数体或局部范围内声明的变量称为局部变量,仅在局部作用域内有效. 全局:在函数之外或全局范围内声明的变量,允许在函数内部和外部访问.不允许在函数内部修改. 2.global:用于在函数内部访问和修改全局作用域中的变量,通过在函数内部使用global关键…

沉淀强化镍基合金660大螺丝的物理性能

沉淀强化镍基合金660大螺丝&#xff0c;是一种高性能的工程材料&#xff0c;其在极端环境中展现了优异的稳定性和耐用性。以下&#xff0c;我们将深入解析其主要的物理性能。 首先&#xff0c;该合金螺丝的密度为7.99g/cm&#xff0c;这意味着它具有较高的质量密度&#xff0c;…

MethodArgumentNotValidException

MethodArgumentNotValidException 是 Spring 框架中用于处理方法参数验证失败时抛出的异常。通常在使用 Spring MVC 或 Spring Boot 时&#xff0c;当请求体中的数据未通过验证注解&#xff08;如 NotNull, Size, Min, Max 等&#xff09;的检查时&#xff0c;会抛出此异常。 …

lodash _.template()方法的使用

背景&#xff1a; 使用_.template()生成对应数据的对应html代码 核心代码&#xff1a; //定义一个变量来装finalHtml var finalHtml //1.模版 compiled _.template([<span class"${clazz}" index"${index}" style"bac…

APM Profile 在系统可观测体系中的应用

引言 应用程序性能分析&#xff08;Application Performance Management&#xff0c;APM&#xff09;是一个广泛的概念&#xff0c;涉及应用程序运行时各种性能指标的监测、诊断和优化。在可观测体系建设中&#xff0c;APM 是保障系统业务运行性能的关键技术&#xff0c;确保用…

Tomcat WEB站点部署

目录 1、使用war包部署web站点 2、自定义默认网站目录 3、部署开源站点&#xff08;jspgou商城&#xff09; 对主机192.168.226.22操作 对主机192.168.226.20操作 上线的代码有两种方式&#xff1a; 第一种方式是直接将程序目录放在webapps目录下面&#xff0c;这种方式…

多协议网关BL110钡铼6路RS485转MQTT协议云网关

在工业自动化的现代化进程中&#xff0c;物联网技术的应用日益广泛&#xff0c;特别是工业物联网网关作为连接传感器、控制器和云端平台的关键枢纽&#xff0c;发挥着至关重要的作用。BL110钡铼多协议网关作为一款专为工业环境设计的先进设备&#xff0c;不仅支持多种下行采集协…

【Vue.js】 Mixin 局部混入与全局混入的介绍和使用总结以及优缺点分析

1. Vue.js Mixin 概述 1.1 Mixin 的定义与作用 Mixin 在 Vue.js 中是一种灵活的组件复用机制。它允许我们将多个组件之间的共通功能抽象出来&#xff0c;形成一个混入对象。这样&#xff0c;我们就可以避免在多个组件中重复编写相同的代码&#xff0c;提高代码的复用性和可维…

【代码随想录】【算法训练营】【第51天】 [115]不同的子序列 [583]两个字符串的删除操作 [72]编辑距离

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 LeetCode。 day 51&#xff0c;周四&#xff0c;又是不能坚持的一天~ 题目详情 [115] 不同的子序列 题目描述 115 不同的子序列 解题思路 前提&#xff1a; 思路&#xff1a; 重点&#xff1a; 代码实现 …

【chatgpt】利用遗传编程(GP)生成编译原理代码

利用遗传编程&#xff08;GP&#xff09;生成编译原理代码是一种自动化编程技术&#xff0c;通过进化算法寻找解决特定问题的最优代码。以下是如何利用GP生成编译原理代码的示例步骤&#xff1a; 1. 定义问题 确定需要解决的编译原理问题&#xff0c;如词法分析器、语法分析器…

windows下修改Jar包内容的两种方式

windows下修改Jar包内容的两种方式 背景第一种&#xff1a;解压工具第二种&#xff1a;Jar命令附Jar命令用法基本用法常见选项示例1&#xff1a;创建一个简单的 JAR 文件示例2&#xff1a;创建包含清单文件的 JAR 文件示例3&#xff1a;列出 JAR 文件的内容示例4&#xff1a;提…