让GNSSRTK不再难【第17讲 RTK定位技术原理-站间单差浮点解--第1部分】

第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 + \lambda 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 为对流层延迟。与天顶有关,系数不为1.
  • λ N r s \lambda N_r^s λNrs 为整周模糊度。系数为1。
  • d r d_r dr 为接收机端第 i i i 频点的伪距硬件延迟。系数为1。站间单差可以消除。
  • d s d^s ds 为卫星端第 i i i 频点的伪距硬件延迟。系数为1。星间单差可以消除。
  • ϵ L \epsilon_L ϵL 为测量噪声

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

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

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

为什么我们一定要消除相位硬件延迟的影响

因为只有消除影响,模糊度才具有整数特性,我们才可以通过模糊度固定,进一步提升定位结果的精度和可靠性。否则如果不固定模糊度,即模糊度是浮点解,定位精度一般在cm-dm量级,相对于伪距差分有一定的精度提升;但如果模糊度固定成功,那么定位精度就是cm量级。

附加A:

T r s T_r^s Trs 为对流层延迟。与天顶有关,系数不为1?

对流层延迟是指卫星信号在通过地球对流层时受到的延迟。由于对流层是大气层的一部分,其密度随着高度变化,对卫星信号的延迟也随之变化。天顶延迟是信号从天顶(垂直向上)通过对流层时的延迟,而当信号从其他角度通过对流层时,其延迟会根据入射角不同而变化。

原因解释

  1. 对流层延迟的变化
    对流层延迟不是一个常数,它随着信号通过大气层的路径长度而变化。信号路径越长,延迟越大。天顶方向的延迟最小,而低仰角方向的延迟最大。

  2. 天顶延迟
    天顶延迟是信号垂直通过大气层的延迟,由于路径最短,其延迟也是最小的。这个延迟通常可以通过观测和模型估计。

  3. 映射函数
    映射函数用于将天顶延迟转换为任意仰角的延迟。映射函数根据信号入射角的不同,对天顶延迟进行缩放,从而计算出不同仰角方向的延迟。
    T r s = T z ⋅ M ( e ) T_r^s = T_{z} \cdot M(e) Trs=TzM(e)
    其中 T z T_{z} Tz 是天顶延迟, M ( e ) M(e) M(e) 是映射函数, e e e 是卫星的仰角。

数学表达式

天顶延迟 T z T_{z} Tz 与仰角 e e e 之间的关系可以用映射函数 M ( e ) M(e) M(e) 来描述:
T r s = T z ⋅ M ( e ) T_r^s = T_{z} \cdot M(e) Trs=TzM(e)
通常, M ( e ) M(e) M(e) 的计算公式为:
M ( e ) = 1 sin ⁡ ( e ) + a sin ⁡ ( e ) + b M(e) = \frac{1}{\sin(e) + \frac{a}{\sin(e) + b}} M(e)=sin(e)+sin(e)+ba1
其中 a a a b b b 是经验参数,根据对流层模型和观测数据确定。

举例解释

假设天顶延迟 T z T_{z} Tz 为 2 米,映射函数参数 a = 0.001 a = 0.001 a=0.001 b = 0.005 b = 0.005 b=0.005,仰角 e = 3 0 ∘ e = 30^\circ e=30,则映射函数 M ( e ) M(e) M(e) 的计算过程如下:

首先计算 sin ⁡ ( e ) \sin(e) sin(e)
sin ⁡ ( 3 0 ∘ ) = 0.5 \sin(30^\circ) = 0.5 sin(30)=0.5

然后代入映射函数公式:
M ( e ) = 1 0.5 + 0.001 0.5 + 0.005 = 1 0.5 + 0.001 0.505 = 1 0.5 + 0.00198 = 1 0.50198 ≈ 1.992 M(e) = \frac{1}{0.5 + \frac{0.001}{0.5 + 0.005}} = \frac{1}{0.5 + \frac{0.001}{0.505}} = \frac{1}{0.5 + 0.00198} = \frac{1}{0.50198} \approx 1.992 M(e)=0.5+0.5+0.0050.0011=0.5+0.5050.0011=0.5+0.001981=0.5019811.992

最后计算对流层延迟:
T r s = 2 ⋅ 1.992 ≈ 3.984  米 T_r^s = 2 \cdot 1.992 \approx 3.984 \text{ 米} Trs=21.9923.984 

所以,仰角为 3 0 ∘ 30^\circ 30 的对流层延迟为 3.984 米,而不是简单的天顶延迟 2 米。这表明对流层延迟与仰角有关,系数不为 1。


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= lf1G1lf1G2lf1G3lf2G1lf2G2lf2G3lf1C1lf1C2lf1C3lf2C1lf2C2lf2C3mf1G1mf1G2mf1G3mf2G1mf2G2mf2G3mf1C1mf1C2mf1C3mf2C1mf2C2mf2C3nf1G1nf1G2nf1G3nf2G1nf2G2nf2G3nf1C1nf1C2nf1C3nf2C1nf2C2nf2C3111111111111000111000000000000111000000000000111 δx= dxdydztf1Gtf2Gf1Gtf1Cf1Gtf2Cf1G

我们再增加载波观测值,首先是状态量,每个卫星每个频点均要增加一个模糊度参数,因为有12个观测值,所以要增加12个模糊度参数,也要增加一倍的观测值数目。

理论上,对于单个系统指定卫星指定频率的伪距和载波的接收机钟肯定不相等的,但我们只估计了伪距的接收机钟参数,同样的载波也估计接收机钟参数,这样设计是否合理?

对于同一系统同一频点的伪距和载波肯定存在接收机钟的差异,但该偏差会被我们新增的每个观测值的模糊度吸收,所以也是模糊度失去整数特性的原因之一。

δ x = [ d x d y d z c δ t f 1 G c δ t f 2 G − c δ t f 1 G c δ t f 1 C − c δ t f 1 G c δ t f 2 C − c δ t f 1 G N f 1 G 1 N f 1 G 2 N f 1 G 3 N f 2 G 1 N f 2 G 2 N f 2 G 3 N f 1 C 1 N f 1 C 2 N f 1 C 3 N f 2 C 1 N f 2 C 2 N f 2 C 3 ] V = [ p f 1 G 1 p f 1 G 2 p f 2 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 ϕ f 1 G 1 ϕ f 1 G 2 ϕ f 1 G 3 ϕ f 2 G 1 ϕ f 2 G 2 ϕ f 2 G 3 ϕ f 1 C 1 ϕ f 1 C 2 ϕ f 1 C 3 ϕ f 2 C 1 ϕ f 2 C 2 ϕ f 2 C 3 ] \delta \mathbf{x} = \begin{bmatrix} dx \\ dy \\ dz \\ c\delta t^{f^G_1} \\ c\delta t^{f^G_2} - c\delta t^{f^G_1} \\ c\delta t^{f^C_1} - c\delta t^{f^G_1} \\ c\delta t^{f^C_2} - c\delta t^{f^G_1} \\ N_{f_1}^{G1} \\ N_{f_1}^{G2} \\ N_{f_1}^{G3} \\ N_{f_2}^{G1} \\ N_{f_2}^{G2} \\ N_{f_2}^{G3} \\ N_{f_1}^{C1} \\ N_{f_1}^{C2} \\ N_{f_1}^{C3} \\ N_{f_2}^{C1} \\ N_{f_2}^{C2} \\ N_{f_2}^{C3} \\ \end{bmatrix} \quad \mathbf{V} = \begin{bmatrix} \color{red}{p_{f1}^{G1}} \\ \color{red}{p_{f1}^{G2}} \\ \color{red}{p_{f2}^{G3}} \\ \color{blue}{p_{f2}^{G1}} \\ \color{blue}{p_{f2}^{G2}} \\ \color{blue}{p_{f2}^{G3}} \\ \color{green}{p_{f1}^{C1}} \\ \color{green}{p_{f1}^{C2}} \\ \color{green}{p_{f1}^{C3}} \\ \color{orange}{p_{f2}^{C1}} \\ \color{orange}{p_{f2}^{C2}} \\ \color{orange}{p_{f2}^{C3}} \\ \color{purple}{\phi_{f1}^{G1}} \\ \color{purple}{\phi_{f1}^{G2}} \\ \color{purple}{\phi_{f1}^{G3}} \\ \color{brown}{\phi_{f2}^{G1}} \\ \color{brown}{\phi_{f2}^{G2}} \\ \color{brown}{\phi_{f2}^{G3}} \\ \color{cyan}{\phi_{f1}^{C1}} \\ \color{cyan}{\phi_{f1}^{C2}} \\ \color{cyan}{\phi_{f1}^{C3}} \\ \color{magenta}{\phi_{f2}^{C1}} \\ \color{magenta}{\phi_{f2}^{C2}} \\ \color{magenta}{\phi_{f2}^{C3}} \\ \end{bmatrix} δx= dxdydztf1Gtf2Gtf1Gtf1Ctf1Gtf2Ctf1GNf1G1Nf1G2Nf1G3Nf2G1Nf2G2Nf2G3Nf1C1Nf1C2Nf1C3Nf2C1Nf2C2Nf2C3 V= pf1G1pf1G2pf2G3pf2G1pf2G2pf2G3pf1C1pf1C2pf1C3pf2C1pf2C2pf2C3ϕf1G1ϕf1G2ϕf1G3ϕf2G1ϕf2G2ϕf2G3ϕf1C1ϕf1C2ϕf1C3ϕf2C1ϕf2C2ϕf2C3

解释 δ x \delta \mathbf{x} δx V \mathbf{V} V

状态向量 δ x \delta \mathbf{x} δx

  • d x , d y , d z dx, dy, dz dx,dy,dz:接收机位置的三个坐标偏差,单位为米。
  • c δ t f 1 G c\delta t^{f^G_1} tf1G:GPS系统第一个频率的接收机钟差,单位为米。
  • c δ t f 2 G − c δ t f 1 G c\delta t^{f^G_2} - c\delta t^{f^G_1} tf2Gtf1G:GPS系统第二个频率相对于第一个频率的接收机钟差,单位为米。
  • c δ t f 1 C − c δ t f 1 G c\delta t^{f^C_1} - c\delta t^{f^G_1} tf1Ctf1G:伽利略系统第一个频率相对于GPS第一个频率的接收机钟差,单位为米。
  • c δ t f 2 C − c δ t f 1 G c\delta t^{f^C_2} - c\delta t^{f^G_1} tf2Ctf1G:伽利略系统第二个频率相对于GPS第一个频率的接收机钟差,单位为米。
  • N f 1 G 1 , N f 1 G 2 , N f 1 G 3 , N f 2 G 1 , N f 2 G 2 , N f 2 G 3 , N f 1 C 1 , N f 1 C 2 , N f 1 C 3 , N f 2 C 1 , N f 2 C 2 , N f 2 C 3 N_{f_1}^{G1}, N_{f_1}^{G2}, N_{f_1}^{G3}, N_{f_2}^{G1}, N_{f_2}^{G2}, N_{f_2}^{G3}, N_{f_1}^{C1}, N_{f_1}^{C2}, N_{f_1}^{C3}, N_{f_2}^{C1}, N_{f_2}^{C2}, N_{f_2}^{C3} Nf1G1,Nf1G2,Nf1G3,Nf2G1,Nf2G2,Nf2G3,Nf1C1,Nf1C2,Nf1C3,Nf2C1,Nf2C2,Nf2C3:整周模糊度,单位为周。

观测向量 V \mathbf{V} V

  • p f 1 G 1 , p f 1 G 2 , p f 2 G 3 \color{red}{p_{f1}^{G1}}, \color{red}{p_{f1}^{G2}}, \color{red}{p_{f2}^{G3}} pf1G1,pf1G2,pf2G3:GPS第一个频率的伪距观测值,单位为米。
  • p f 2 G 1 , p f 2 G 2 , p f 2 G 3 \color{blue}{p_{f2}^{G1}}, \color{blue}{p_{f2}^{G2}}, \color{blue}{p_{f2}^{G3}} pf2G1,pf2G2,pf2G3:GPS第二个频率的伪距观测值,单位为米。
  • p f 1 C 1 , p f 1 C 2 , p f 1 C 3 \color{green}{p_{f1}^{C1}}, \color{green}{p_{f1}^{C2}}, \color{green}{p_{f1}^{C3}} pf1C1,pf1C2,pf1C3:伽利略系统第一个频率的伪距观测值,单位为米。
  • p f 2 C 1 , p f 2 C 2 , p f 2 C 3 \color{orange}{p_{f2}^{C1}}, \color{orange}{p_{f2}^{C2}}, \color{orange}{p_{f2}^{C3}} pf2C1,pf2C2,pf2C3:伽利略系统第二个频率的伪距观测值,单位为米。
  • ϕ f 1 G 1 , ϕ f 1 G 2 , ϕ f 1 G 3 \color{purple}{\phi_{f1}^{G1}}, \color{purple}{\phi_{f1}^{G2}}, \color{purple}{\phi_{f1}^{G3}} ϕf1G1,ϕf1G2,ϕf1G3:GPS第一个频率的载波相位观测值,单位为周。
  • ϕ f 2 G 1 , ϕ f 2 G 2 , ϕ f 2 G 3 \color{brown}{\phi_{f2}^{G1}}, \color{brown}{\phi_{f2}^{G2}}, \color{brown}{\phi_{f2}^{G3}} ϕf2G1,ϕf2G2,ϕf2G3:GPS第二个频率的载波相位观测值,单位为周。
  • ϕ f 1 C 1 , ϕ f 1 C 2 , ϕ f 1 C 3 \color{cyan}{\phi_{f1}^{C1}}, \color{cyan}{\phi_{f1}^{C2}}, \color{cyan}{\phi_{f1}^{C3}} ϕf1C1,ϕf1C2,ϕf1C3:伽利略系统第一个频率的载波相位观测值,单位为周。
  • ϕ f 2 C 1 , ϕ f 2 C 2 , ϕ f 2 C 3 \color{magenta}{\phi_{f2}^{C1}}, \color{magenta}{\phi_{f2}^{C2}}, \color{magenta}{\phi_{f2}^{C3}} ϕf2C1,ϕf2C2,ϕf2C3:伽利略系统第二个频率的载波相位观测值,单位为周。

同样的,设计矩阵也更加庞大

A = [ l f 1 G 1 m f 1 G 1 n f 1 G 1 − 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 l f 1 G 2 m f 1 G 2 n f 1 G 2 − 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 l f 1 G 3 m f 1 G 3 n f 1 G 3 − 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 l f 2 G 1 m f 2 G 1 n f 2 G 1 − 1 − 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 l f 2 G 2 m f 2 G 2 n f 2 G 2 − 1 − 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 l f 2 G 3 m f 2 G 3 n f 2 G 3 − 1 − 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 l f 1 C 1 m f 1 C 1 n f 1 C 1 − 1 0 − 1 0 0 0 0 0 0 0 0 0 0 0 0 0 l f 1 C 2 m f 1 C 2 n f 1 C 2 − 1 0 − 1 0 0 0 0 0 0 0 0 0 0 0 0 0 l f 1 C 3 m f 1 C 3 n f 1 C 3 − 1 0 − 1 0 0 0 0 0 0 0 0 0 0 0 0 0 l f 2 C 1 m f 2 C 1 n f 2 C 1 − 1 0 0 − 1 0 0 0 0 0 0 0 0 0 0 0 0 l f 2 C 2 m f 2 C 2 n f 2 C 2 − 1 0 0 − 1 0 0 0 0 0 0 0 0 0 0 0 0 l f 2 C 3 m f 2 C 3 n f 2 C 3 − 1 0 0 − 1 0 0 0 0 0 0 0 0 0 0 0 0 l f 1 G 1 m f 1 G 1 n f 1 G 1 − 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 l f 1 G 2 m f 1 G 2 n f 1 G 2 − 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 l f 1 G 3 m f 1 G 3 n f 1 G 3 − 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 l f 2 G 1 m f 2 G 1 n f 2 G 1 − 1 − 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 l f 2 G 2 m f 2 G 2 n f 2 G 2 − 1 − 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 l f 2 G 3 m f 2 G 3 n f 2 G 3 − 1 − 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 l f 1 C 1 m f 1 C 1 n f 1 C 1 − 1 0 − 1 0 0 0 0 0 0 0 1 0 0 0 0 0 l f 1 C 2 m f 1 C 2 n f 1 C 2 − 1 0 − 1 0 0 0 0 0 0 0 0 1 0 0 0 0 l f 1 C 3 m f 1 C 3 n f 1 C 3 − 1 0 − 1 0 0 0 0 0 0 0 0 0 1 0 0 0 l f 2 C 1 m f 2 C 1 n f 2 C 1 − 1 0 0 − 1 0 0 0 0 0 0 0 0 0 1 0 0 l f 2 C 2 m f 2 C 2 n f 2 C 2 − 1 0 0 − 1 0 0 0 0 0 0 0 0 0 0 1 0 l f 2 C 3 m f 2 C 3 n f 2 C 3 − 1 0 0 − 1 0 0 0 0 0 0 0 0 0 0 0 1 ] \mathbf{A} = \begin{bmatrix} \color{red}{l_{f1}^{G1}} & \color{red}{m_{f1}^{G1}} & \color{red}{n_{f1}^{G1}} & \color{red}{-1} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} \\ \color{red}{l_{f1}^{G2}} & \color{red}{m_{f1}^{G2}} & \color{red}{n_{f1}^{G2}} & \color{red}{-1} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} \\ \color{red}{l_{f1}^{G3}} & \color{red}{m_{f1}^{G3}} & \color{red}{n_{f1}^{G3}} & \color{red}{-1} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} \\ \\ \color{blue}{l_{f2}^{G1}} & \color{blue}{m_{f2}^{G1}} & \color{blue}{n_{f2}^{G1}} & \color{blue}{-1} & \color{blue}{-1} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} \\ \color{blue}{l_{f2}^{G2}} & \color{blue}{m_{f2}^{G2}} & \color{blue}{n_{f2}^{G2}} & \color{blue}{-1} & \color{blue}{-1} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} \\ \color{blue}{l_{f2}^{G3}} & \color{blue}{m_{f2}^{G3}} & \color{blue}{n_{f2}^{G3}} & \color{blue}{-1} & \color{blue}{-1} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} \\ \\ \color{green}{l_{f1}^{C1}} & \color{green}{m_{f1}^{C1}} & \color{green}{n_{f1}^{C1}} & \color{green}{-1} & \color{green}{0} & \color{green}{-1} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} \\ \color{green}{l_{f1}^{C2}} & \color{green}{m_{f1}^{C2}} & \color{green}{n_{f1}^{C2}} & \color{green}{-1} & \color{green}{0} & \color{green}{-1} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} \\ \color{green}{l_{f1}^{C3}} & \color{green}{m_{f1}^{C3}} & \color{green}{n_{f1}^{C3}} & \color{green}{-1} & \color{green}{0} & \color{green}{-1} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} \\ \\ l_{f2}^{C1} & m_{f2}^{C1} & n_{f2}^{C1} & -1 & 0 & 0 & -1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ l_{f2}^{C2} & m_{f2}^{C2} & n_{f2}^{C2} & -1 & 0 & 0 & -1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ l_{f2}^{C3} & m_{f2}^{C3} & n_{f2}^{C3} & -1 & 0 & 0 & -1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ \\ \color{red}{l_{f1}^{G1}} & \color{red}{m_{f1}^{G1}} & \color{red}{n_{f1}^{G1}} & \color{red}{-1} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{1} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} \\ \color{red}{l_{f1}^{G2}} & \color{red}{m_{f1}^{G2}} & \color{red}{n_{f1}^{G2}} & \color{red}{-1} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{1} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} \\ \color{red}{l_{f1}^{G3}} & \color{red}{m_{f1}^{G3}} & \color{red}{n_{f1}^{G3}} & \color{red}{-1} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{1} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} & \color{red}{0} \\ \\ \color{blue}{l_{f2}^{G1}} & \color{blue}{m_{f2}^{G1}} & \color{blue}{n_{f2}^{G1}} & \color{blue}{-1} & \color{blue}{-1} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{1} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} \\ \color{blue}{l_{f2}^{G2}} & \color{blue}{m_{f2}^{G2}} & \color{blue}{n_{f2}^{G2}} & \color{blue}{-1} & \color{blue}{-1} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{1} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} \\ \color{blue}{l_{f2}^{G3}} & \color{blue}{m_{f2}^{G3}} & \color{blue}{n_{f2}^{G3}} & \color{blue}{-1} & \color{blue}{-1} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{1} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} & \color{blue}{0} \\ \\ \color{green}{l_{f1}^{C1}} & \color{green}{m_{f1}^{C1}} & \color{green}{n_{f1}^{C1}} & \color{green}{-1} & \color{green}{0} & \color{green}{-1} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{1} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} \\ \color{green}{l_{f1}^{C2}} & \color{green}{m_{f1}^{C2}} & \color{green}{n_{f1}^{C2}} & \color{green}{-1} & \color{green}{0} & \color{green}{-1} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{1} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} \\ \color{green}{l_{f1}^{C3}} & \color{green}{m_{f1}^{C3}} & \color{green}{n_{f1}^{C3}} & \color{green}{-1} & \color{green}{0} & \color{green}{-1} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{0} & \color{green}{1} & \color{green}{0} & \color{green}{0} & \color{green}{0} \\ \\ l_{f2}^{C1} & m_{f2}^{C1} & n_{f2}^{C1} & -1 & 0 & 0 & -1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ l_{f2}^{C2} & m_{f2}^{C2} & n_{f2}^{C2} & -1 & 0 & 0 & -1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ l_{f2}^{C3} & m_{f2}^{C3} & n_{f2}^{C3} & -1 & 0 & 0 & -1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ \end{bmatrix} A= lf1G1lf1G2lf1G3lf2G1lf2G2lf2G3lf1C1lf1C2lf1C3lf2C1lf2C2lf2C3lf1G1lf1G2lf1G3lf2G1lf2G2lf2G3lf1C1lf1C2lf1C3lf2C1lf2C2lf2C3mf1G1mf1G2mf1G3mf2G1mf2G2mf2G3mf1C1mf1C2mf1C3mf2C1mf2C2mf2C3mf1G1mf1G2mf1G3mf2G1mf2G2mf2G3mf1C1mf1C2mf1C3mf2C1mf2C2mf2C3nf1G1nf1G2nf1G3nf2G1nf2G2nf2G3nf1C1nf1C2nf1C3nf2C1nf2C2nf2C3nf1G1nf1G2nf1G3nf2G1nf2G2nf2G3nf1C1nf1C2nf1C3nf2C1nf2C2nf2C3111111111111111111111111000111000000000111000000000000111000000000111000000000000111000000000111000000000000100000000000000000000000010000000000000000000000001000000000000000000000000100000000000000000000000010000000000000000000000001000000000000000000000000100000000000000000000000010000000000000000000000001000000000000000000000000100000000000000000000000010000000000000000000000001

设计矩阵 A \mathbf{A} A 的解释

  • A \mathbf{A} A 矩阵的每一行对应于一个观测方程,每一列对应于一个状态参数。

  • l f 1 G 1 , m f 1 G 1 , n f 1 G 1 l_{f1}^{G1}, m_{f1}^{G1}, n_{f1}^{G1} lf1G1,mf1G1,nf1G1:分别为GPS第一个频率第一个卫星的观测方向余弦。

  • − 1 -1 1:表示接收机钟差对观测方程的影响,这里负号表示钟差对观测值有负影响。

  • 0 0 0:表示该状态参数对当前观测方程没有影响。

  • N f 1 G 1 N_{f_1}^{G1} Nf1G1:整周模糊度参数,表示观测方程中包含的模糊度。

举例解释

例如:

  • 第一行 l f 1 G 1 m f 1 G 1 n f 1 G 1 − 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \color{red}{l_{f1}^{G1}} \color{red}{m_{f1}^{G1}} \color{red}{n_{f1}^{G1}} \color{red}{-1} \color{red}{0} \color{red}{0} \color{red}{0} \color{red}{0} \color{red}{0} \color{red}{0} \color{red}{0} \color{red}{0} \color{red}{0} \color{red}{0} \color{red}{0} \color{red}{0} \color{red}{0} \color{red}{0} \color{red}{0} lf1G1mf1G1nf1G11000000000000000 对应于第一个GPS卫星第一个频率的伪距观测值,其中观测方向余弦和接收机钟差有影响,但没有模糊度影响。

  • 第五行 l f 2 G 2 m f 2 G 2 n f 2 G 2 − 1 − 1 0 0 0 0 0 0 0 0 0 0 0 0 0 \color{blue}{l_{f2}^{G2}} \color{blue}{m_{f2}^{G2}} \color{blue}{n_{f2}^{G2}} \color{blue}{-1} \color{blue}{-1} \color{blue}{0} \color{blue}{0} \color{blue}{0} \color{blue}{0} \color{blue}{0} \color{blue}{0} \color{blue}{0} \color{blue}{0} \color{blue}{0} \color{blue}{0} \color{blue}{0} \color{blue}{0} \color{blue}{0} lf2G2mf2G2nf2G2110000000000000 对应于第二个GPS卫星第二个频率的伪距观测值,观测方向余弦、两个接收机钟差都有影响,但没有模糊度影响。

  • 第十三行 l f 1 C 1 m f 1 C 1 n f 1 C 1 − 1 0 − 1 0 0 0 0 0 0 0 1 0 0 0 0 \color{green}{l_{f1}^{C1}} \color{green}{m_{f1}^{C1}} \color{green}{n_{f1}^{C1}} \color{green}{-1} \color{green}{0} \color{green}{-1} \color{green}{0} \color{green}{0} \color{green}{0} \color{green}{0} \color{green}{0} \color{green}{0} \color{green}{0} \color{green}{1} \color{green}{0} \color{green}{0} \color{green}{0} \color{green}{0} lf1C1mf1C1nf1C1101000000010000 对应于第一个北斗卫星第一个频率的伪距观测值,观测方向余弦、接收机钟差和模糊度都有影响。

  • 第二十行 l f 2 C 2 m f 2 C 2 n f 2 C 2 − 1 0 0 − 1 0 0 0 0 0 0 0 0 0 0 0 1 0 \color{magenta}{l_{f2}^{C2}} \color{magenta}{m_{f2}^{C2}} \color{magenta}{n_{f2}^{C2}} \color{magenta}{-1} \color{magenta}{0} \color{magenta}{0} \color{magenta}{-1} \color{magenta}{0} \color{magenta}{0} \color{magenta}{0} \color{magenta}{0} \color{magenta}{0} \color{magenta}{0} \color{magenta}{0} \color{magenta}{0} \color{magenta}{0} \color{magenta}{0} \color{magenta}{0} \color{magenta}{1} \color{magenta}{0} lf2C2mf2C2nf2C210010000000000010 对应于第二个北斗卫星第二个频率的载波观测值,观测方向余弦、接收机钟差和模糊度都有影响。

这个设计矩阵 A \mathbf{A} A 的构建方法,确保了每个观测方程正确考虑了相关的状态参数(位置、钟差、模糊度等),从而准确建模了系统的观测方程。

附加A:

伪距的接收机钟偏会不会进入到模糊度里?

是的,伪距的接收机钟差会进入到模糊度里。这是因为在观测方程中,伪距观测值和载波观测值都会受到接收机钟差的影响。当我们解算位置和钟差时,接收机钟差的不准确性会导致模糊度参数吸收掉一些钟差的误差,从而失去整周特性。

举例说明:

假设我们有两个卫星 S 1 S_1 S1 S 2 S_2 S2,其伪距观测值分别为 P r 1 P^1_r Pr1 P r 2 P^2_r Pr2,接收机钟差为 δ t \delta t δt。伪距观测方程为:

P r 1 = ρ r 1 + c δ t + ϵ P 1 P^1_r = \rho^1_r + c\delta t + \epsilon_{P1} Pr1=ρr1+t+ϵP1

P r 2 = ρ r 2 + c δ t + ϵ P 2 P^2_r = \rho^2_r + c\delta t + \epsilon_{P2} Pr2=ρr2+t+ϵP2

其中, ρ r 1 \rho^1_r ρr1 ρ r 2 \rho^2_r ρr2 分别为接收机到卫星 S 1 S_1 S1 S 2 S_2 S2 的几何距离, c c c 为光速, ϵ P 1 \epsilon_{P1} ϵP1 ϵ P 2 \epsilon_{P2} ϵP2 为伪距观测噪声。

假设几何距离为:

ρ r 1 = 20200000  米 \rho^1_r = 20200000 \text{ 米} ρr1=20200000 

ρ r 2 = 20400000  米 \rho^2_r = 20400000 \text{ 米} ρr2=20400000 

接收机钟差为:

δ t = 0.00027  秒 \delta t = 0.00027 \text{ 秒} δt=0.00027 

伪距观测值为:

P r 1 = 20200100  米 P^1_r = 20200100 \text{ 米} Pr1=20200100 

P r 2 = 20400100  米 P^2_r = 20400100 \text{ 米} Pr2=20400100 

计算钟差修正项:

c δ t = 3 × 1 0 8 × 0.00027 = 81000  米 c\delta t = 3 \times 10^8 \times 0.00027 = 81000 \text{ 米} t=3×108×0.00027=81000 

校正后的伪距观测值:

P r 1 = ρ r 1 + 81000 + ϵ P 1 = 20200000 + 81000 + ϵ P 1 = 20281000 + ϵ P 1 P^1_r = \rho^1_r + 81000 + \epsilon_{P1} = 20200000 + 81000 + \epsilon_{P1} = 20281000 + \epsilon_{P1} Pr1=ρr1+81000+ϵP1=20200000+81000+ϵP1=20281000+ϵP1

P r 2 = ρ r 2 + 81000 + ϵ P 2 = 20400000 + 81000 + ϵ P 2 = 20481000 + ϵ P 2 P^2_r = \rho^2_r + 81000 + \epsilon_{P2} = 20400000 + 81000 + \epsilon_{P2} = 20481000 + \epsilon_{P2} Pr2=ρr2+81000+ϵP2=20400000+81000+ϵP2=20481000+ϵP2

在这种情况下,接收机钟差的不准确性会影响到模糊度参数。如果接收机钟差存在误差,模糊度参数将会吸收这些误差,从而失去整周特性。

所有的多余误差被模糊度吸收掉,此时模糊度再一次失去整周特征;我们再一次使用星间单差将吸收的伪距码延迟多吸收的东西消除掉。

是因为载波计算用到了伪距计算作为初始值吗?

是的,载波计算通常使用伪距计算作为初始值。伪距观测值提供了一个粗略的定位结果和钟差估计,这些结果用于校正载波观测值中的误差。然而,伪距观测值中的接收机钟差误差会进入到载波观测值的模糊度参数中,从而影响模糊度的整周特性。

所有的多余误差被模糊度吸收掉,此时模糊度再一次失去整周特征;我们再一次使用星间单差将吸收的伪距码延迟多吸收的东西消除掉。

星间单差是如何消除误差的(例子只用于理解,数值有些大)?

星间单差(ISD,Inter-Satellite Difference)是通过对两个不同卫星的观测值进行差分,来消除共同误差项。具体步骤如下:

假设有两个卫星 S 1 S_1 S1 S 2 S_2 S2,对应的观测方程为:

P r 1 = ρ r 1 + c δ t + ϵ P 1 P^1_r = \rho^1_r + c\delta t + \epsilon_{P1} Pr1=ρr1+t+ϵP1

P r 2 = ρ r 2 + c δ t + ϵ P 2 P^2_r = \rho^2_r + c\delta t + \epsilon_{P2} Pr2=ρr2+t+ϵP2

进行星间单差后,得到的差分观测值为:

Δ P 12 = P r 1 − P r 2 = ( ρ r 1 + c δ t + ϵ P 1 ) − ( ρ r 2 + c δ t + ϵ P 2 ) \Delta P_{12} = P^1_r - P^2_r = (\rho^1_r + c\delta t + \epsilon_{P1}) - (\rho^2_r + c\delta t + \epsilon_{P2}) ΔP12=Pr1Pr2=(ρr1+t+ϵP1)(ρr2+t+ϵP2)

可以简化为:

Δ P 12 = ρ r 1 − ρ r 2 + ϵ P 1 − ϵ P 2 \Delta P_{12} = \rho^1_r - \rho^2_r + \epsilon_{P1} - \epsilon_{P2} ΔP12=ρr1ρr2+ϵP1ϵP2

在这个差分观测方程中,接收机钟差 c δ t c\delta t t 被消除了,只剩下几何距离差和观测噪声的差值。这种方法有效地减小了由于接收机钟差带来的误差,从而提高了定位精度。

举例说明:

假设:

  • ρ r 1 = 20200000  米 \rho^1_r = 20200000 \text{ 米} ρr1=20200000 
  • ρ r 2 = 20400000  米 \rho^2_r = 20400000 \text{ 米} ρr2=20400000 
  • ϵ P 1 = 100  米 \epsilon_{P1} = 100 \text{ 米} ϵP1=100 
  • ϵ P 2 = − 50  米 \epsilon_{P2} = -50 \text{ 米} ϵP2=50 

进行星间单差后:

Δ P 12 = 20200000 − 20400000 + 100 − ( − 50 ) = − 200000 + 150 = − 1999850  米 \Delta P_{12} = 20200000 - 20400000 + 100 - (-50) = -200000 + 150 = -1999850 \text{ 米} ΔP12=2020000020400000+100(50)=200000+150=1999850 

通过星间单差,接收机钟差被有效消除,只剩下几何距离差和观测噪声的差值。这样可以更准确地估计接收机的位置和模糊度。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

.NET 矩阵6月红队工具和资源集合

01外网入口打点 1.1 Sharp4WbemScripting 1.2 ASP4Eval 1.3 Sharp4Web.config 1.4 Sharp4AddScript 02安全防御绕过 2.1 Sharp4DefenderStop 03搭建代理隧道 3.1 Sharp4suo5 04混淆加密防护 4.1 Obfuscar混淆器 4.2 Sharp4BatchGuard 05安全技术文档 5.1 .NET 通过Junction Fol…

对原生textarea加上:当前输入字数/最大输入字数

源码: <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>Textarea Character Counter with Dragga…

OpenCV 张正友标定法(二)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 在之前的博客OpenCV 张氏标定法中,我们没有考虑镜头畸变等因素,因此计算出的内参与外参均是理想情况下的数值,而如果我们考虑到镜头的畸变: 我们就需要考虑使用最小二乘法最小化像素坐标的重投影误差(上述所求…

Python中的数据结构

一.堆 堆的建立可以通过导入heapq库来实现 在Python中建立的是最小堆 即heap[k]<heap[2*k1]and heap[k]<heap[2*k2] 下面是一些 堆使用的方法 heapq.heappush([],加入的元素) heapq.heappop(heap)弹出最小的元素 heapq.nlargest(3,heap)返回最大的三个元素 hea…

无人机赋能自然资源调查

确权 业务挑战 由于测绘人员难以到达现场&#xff0c;确权区域大&#xff0c;传统人工测绘覆盖 不全面&#xff0c;信息不完整 传统测绘成果单一&#xff0c;现场核实难度高&#xff0c;确权采集信息不对称 无人机优势 数据采集效率是人工的10倍以上&#xff0c;可自动将…

【数学建模】 进化计算与群体智能

文章目录 进化计算与群体智能1. 遗传算法理论与实现1.1 遗传算法介绍1.2 遗传算法详细示例流程1) 初始种群2) 适应度评估3) 选择&#xff08;轮盘赌法&#xff09;4) 交叉5) 变异6) 迭代 1.3 遗传算法的实现1.4 scikit-opt 库实现遗传算法1.4.1 求解函数极值代码实现代码说明运…

智能制造 v3.13.14 发布,ERP、MES 更新

智能制造一体化管理系统 [SpringBoot2 - 快速开发平台]&#xff0c;适用于制造业、建筑业、汽车行业、互联网、教育、政府机关等机构的管理。包含文件在线操作、工作日志、多班次考勤、CRM、ERP 进销存、项目管理、EHR、拖拽式生成问卷、日程、笔记、工作计划、行政办公、薪资模…

C++20中的三向比较运算符(three-way comparison operator)

在C20中&#xff0c;引入了一个新的特性&#xff0c;即"三向比较运算符(three-way comparison operator)"&#xff0c;由于其外观&#xff0c;也被称为"宇宙飞船运算符(spaceship operator)"&#xff0c;其符号为<>。目的是简化比较对象的过程。这个…

八爪鱼现金流-032,给用户发邮件提示功能

每个月的 5 号、15 号、25 号的 17:30 工资日&#xff0c;给用户发送邮件&#xff0c;提示记账月报。 您也来记账一笔吧。 然后首页能看到趋势图。 八爪鱼现金流 八爪鱼

使用Petalinux设计linux系统

文章目录 1.通过 Vivado 创建硬件平台&#xff0c;得到 hdf 硬件描述文件2.设置 Petalinux 环境变量3.创建 Petalinux 工程4.配置Petalinux 工程5.配置Linux内核6.配置Linux根文件系统7.配置设备树文件8.编译 Petalinux 工程9.制作BOOT.BIN启动文件10.制作SD启动卡 1.通过 Viva…

智能旅行规划的未来:大模型与形式化验证的融合

我们在做旅行规划时面对众多的目的地选择、复杂的交通连接、预算限制以及个人偏好等多重因素&#xff0c;即使是最有经验的旅行者也可能会陷入选择困境。传统的旅行规划方法往往依赖于人工操作&#xff0c;这不仅耗时耗力&#xff0c;而且难以保证计划的最优性和可执行性。 本…

C++学习笔记---POCO库

在Windows系统中安装POCO 1&#xff09;安装OpenSSL POCO编译安装依赖OpenSSL&#xff0c;如果未安装OpenSSL则应该先安装OpenSSL。 假设将OpenSSL安装在C:\OpenSSL-Win64&#xff0c;将C:\OpenSSL-Win64、C:\OpenSSL-Win64\lib添加到PATH环境变量中2&#xff09;安装POCO 将p…

Java代码生成器(开源版本)

一、在线地址 Java在线代码生成器&#xff1a;在线访问 二、页面截图 三、核心功能 支持Mybatis、MybatisPlus、Jpa代码生成使用 antlr4 解析SQL语句&#xff0c;保证了SQL解析的成功率支持自定义包名、作者名信息支持自定义方法名、接口地址支持自定义选择是否生成某个方法…

前端面试题(基础篇十四)

一、DOMContentLoaded 事件和 Load 事件的区别&#xff1f; 当初始的 HTML 文档被完全加载和解析完成之后&#xff0c;DOMContentLoaded 事件被触发&#xff0c;而无需等待样式表、图像和子框架的加载完成。 Load 事件是当所有资源加载完成后触发的。 二、简述一下你对 HTML 语…

解析桥式整流电路

下面这个桥式整流电路出场率很高&#xff0c;看着一定眼熟。 事实证明&#xff0c;强行灌输的东西总是难以下咽。记得读书那会&#xff0c;第一次看到这个电路时被吓到了&#xff0c;以至于直到这门课结束了也没搞清楚。 本文就来分析一下此电路中电流的走向&#xff0c;进而理…

【初阶数据结构】深入解析队列:探索底层逻辑

&#x1f525;引言 本篇将深入解析队列:探索底层逻辑&#xff0c;理解底层是如何实现并了解该接口实现的优缺点&#xff0c;以便于我们在编写程序灵活地使用该数据结构。 &#x1f308;个人主页&#xff1a;是店小二呀 &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#…

Android经典面试题之Glide的缓存大揭秘

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 Glide缓存 关联类&#xff1a;Engine、LruResourceCache、LruCache、ActiveResources ActiveResources&#xff1a;弱引用缓存池 VisibleForTe…

Chapter8 透明效果——Shader入门精要学习笔记

一、基本概念 在Unity中通常使用两种方法来实现透明效果 透明度测试&#xff08;无法达到真正的半透明效果&#xff09;透明度混合&#xff08;关闭了深度写入&#xff09; 透明度测试 基本原理&#xff1a;设置一个阈值&#xff0c;只要片元的透明度小于阈值&#xff0c;就…

VMware--创建Ubuntu虚拟机

原文网址&#xff1a;VMware--创建Ubuntu虚拟机-CSDN博客 简介 本文介绍VMware创建Ubuntu虚拟机的方法。 VMware是最好用的虚拟机软件&#xff0c;安装方法见&#xff1a; 本文安装当前最新的Ubuntu的LTS镜像&#xff1a;ubuntu2022.04.4LTS。 1.下载Ubuntu镜像 下载地址…