﻿ 基于IPSO-HATCH的北斗相位平滑伪距定位算法
«上一篇
 文章快速检索 高级检索

 应用科技  2018, Vol. 45 Issue (3): 44-49  DOI: 10.11991/yykj.201611006 0

### 引用本文

XI Zhihong, DIAO Shuo, CHANG Jiabo. Compass carrier-smoothed pseudo-range positioning algorithm based on IPSO-HATCH computer engineering and applications[J]. Applied Science and Technology, 2018, 45(3), 44-49. DOI: 10.11991/yykj.201611006.

### 文章历史

Compass carrier-smoothed pseudo-range positioning algorithm based on IPSO-HATCH computer engineering and applications
XI Zhihong, DIAO Shuo, CHANG Jiabo
College of Information and Communication Engineering, Harbin Engineering University, Harbin 150001, China
Abstract: Carrier-smoothed pseudorange can improve the accuracy of compass pseudorange positioning effectively. Traditional Hatch fiter is easy to diverge in the continuous positioning because of the fixed smoothing window size, therefore, the size of smoothing window must be selected reasonably. Through an analysis on the factors affecting the size of smoothing window, the best window size of every epoch was sought for and determined by using the improved particle swarm optimization (IPSO) algorithm. Experimental results show that the combined algorithm of IPSO and Hatch (IPSO-HATCH) can effectively improve the filtering effect and positioning accuracy and solve the problem of selecting the size of smoothing window, the effectiveness, stability and reliability of the algorithm were verified.
Key words: smoothing pseudo-range    phase smoothing    pseudo-range    smoothing window    window size    improved particle swarm algorithm    Hatch filter

1 载波相位平滑伪距的基本原理 1.1 基本原理

 \begin{aligned}& P_r^{^s}(t) = \sqrt {{{({X^{^{^s}}}(t) - {X_r})}^2} + {{({Y^{^{^s}}}(t) - {Y_r})}^2} + {{({Z^{^{^s}}}(t) - {Z_r})}^2}} + \\ & \quad \quad \quad {\delta _{{\text{ion}}}} + {\delta _{{\text{trop}}}} + {\delta _{{\text{tide}}}} + {\delta _{{\text{rel}}}} - c{\delta ^s}(t)\end{aligned} (1)

 $\begin{gathered} \lambda \phi _{{r}}^s({t_r}) = \rho _r^s({t_r},{t_s}) + c\delta ({t_s} - {t_r}) - {\delta _{ion}} + \hfill \\ \begin{array}{*{20}{c}} \quad {}&{}&{{\delta _{{\text{trop}}}}} \end{array} + {\delta _{{\text{tide}}}} + {\delta _{{\text{mul}}}} + {\delta _{{\text{rel}}}} + \lambda N_r^s + \varepsilon \hfill \\ \end{gathered}$ (2)

 $P({t_n}) = R({t_n}) + I({t_n}) + {\varepsilon _P}({t_n})$
 $\lambda \phi ({t_n}) = R({t_n}) - I({t_n}) + {\varepsilon _\phi }{\text{(}}{t_n}{\text{) + }}\lambda {{N}}$

 $\begin{array}{l}P({t_n}) - P({t_n} - 1) = R({t_n}) - R({t_n} - 1) + {\varepsilon _P}({t_n}) - {\varepsilon _P}({t_n} - 1)\\\lambda \phi ({t_n}) - \lambda \phi ({t_n} - 1) = R({t_n}) - R({t_n} - 1) + {\varepsilon _\phi }{\rm{(}}{t_n}{\rm{)}} - {\varepsilon _\phi }{\rm{(}}{t_n} - 1{\rm{)}}\end{array}$

 \begin{aligned} P({t_n}) - P({t_n} - 1) = & \lambda \phi ({t_n}) - \lambda \phi ({t_n} - 1) - \hfill \\& ({\varepsilon _\phi }{\text{(}}{t_n}{\text{)}} - {\varepsilon _\phi }{\text{(}}{t_n} - 1{\text{))}} + ({\varepsilon _P}({t_n}) - {\varepsilon _P}({t_n} - 1)) \hfill \\ \end{aligned}

 $P({t_n}) - P({t_n} - 1) \approx \lambda \phi ({t_n}) - \lambda \phi ({t_n} - 1)$ (3)

 $\left\{ \begin{array}{l} \hat P({t_n}) = P({t_1}) + \lambda \phi ({t_n}) - \lambda \phi ({t_1}) \hfill \\ \hat P({t_n}) = P({t_2}) + \lambda \phi ({t_n}) - \lambda \phi ({t_2}) \hfill \\\quad \quad \quad \quad \quad \cdots \cdots \hfill \\ \hat P({t_n}) = P({t_n}) \hfill \\ \end{array} \right.$

 $n\hat P({t_n}) = \sum\limits_{i = 1}^n {P({t_i})} + n\lambda \phi ({t_n}) - \lambda \sum\limits_{i = 1}^n {\phi ({t_i})}$

$\bar P(n) = \displaystyle\frac{1}{n}\sum\limits_{i = 1}^n {P({t_i})}$ n个历元伪距观测量的平均值，可得第一个历元经历n历元后的相位平滑伪距为

 $\hat P({t_n}) = \bar P(n) + \lambda \phi ({t_n}) - \frac{\lambda }{n}\sum\limits_{i = 1}^n {\phi ({t_i})}$
1.2 Hatch滤波

 $\hat P({t_n}) = P({t_n} - 1) + \lambda \phi ({t_n}) - \lambda \phi ({t_n} - 1)$

Hatch滤波的本质是利用算术平均运算提取出码伪距的低频成分，利用时间差分算子提取相位的高频成分，以此来提高伪距观测量的精度。Hatch滤波常用分析模型为[11]

 $\hat P({t_n}) = \frac{1}{M}P({t_n}) + \frac{{M - 1}}{M}\left[ {\hat P({t_{n - 1}}) + \lambda \phi ({t_n}) - \lambda \phi ({t_{n - 1}})} \right]$

 ${\sigma _{\hat P}}^2 = \frac{1}{n}{\sigma _P}^2 + \frac{{(n + 1)}}{n}{\sigma _\phi }^2$

 ${\sigma _{\hat P}} = \frac{{{\sigma _P}}}{{\sqrt n }}$ (4)

Hatch滤波方法如果针对双频无电离层组合观测量进行平滑处理，精度很高，而且相位平滑伪距一定的次数后，平滑伪距的精度可以与相位无电离层组合相位观测值的精度相当[13]，但是组合值会带来模糊度的问题，增加了定位解算的复杂度；如果针对于单频伪距，则会引起电离层误差的累积，因此Hatch滤波必须要合理选择平滑时间窗口，才能避免电离层的影响并达到良好的滤波效果。

2 改进粒子群（IPSO）算法描述

1）对种群规模M进行初始化，初始值设为 ${{X}_i}(0)$ ，初始速度设为 ${{V}_i}(0)(i = 1,2, \cdot \cdot \cdot ,M)$ ，初始化第 $i$ 个粒子的最优位置 ${P_i}(0)$ 以及在整个解空间中的最优位置 ${G_i}(0)$

2）设 $t$ 为迭代次数，从 $t=1$ 开始迭代；

3）计算每个粒子的 ${{X}_i}(t)$ ${{V}_i}(t)$ 、适应度值，将每个粒子的适应度值与之前计算过的最优位置 ${P_i}(t - 1)$ 进行比较，判断当前粒子对应的适应度是否比最优位置好，若好则替换当前粒子对应的位置。

 ${P_i}(t) = \arg \min \{ f({P_i}(t)),f({ X_i}(t))\}$

4）依次对每个粒子对应位置 ${P_i}(t)$ 的适应度值进行比较，得到全局最优值 $G(t)$

 $G(t) = \arg \min \{ f({P_1}(t)), \cdot \cdot \cdot ,f({P_i}(t)), \cdot \cdot \cdot ,f({P_M}(t))\}$

5）判断是否满足迭代的终止条件（最大迭代次数），如果满足，则 $G(t)$ 对应的解为最优解。

1）初始化粒子群种群规模，迭代次数，随机产生粒子的初始种群以及每个粒子的初速度。

2）初始化学习因子 $C$ ${C_1}$ ${C_2}$

 $\left\{ \begin{array}{l} C = 5 \hfill \\ {C_1} = 2/(1 + {t^{1/4}}) \hfill \\ {C_2} = t/{t_{\max }} \hfill \\ \end{array} \right.$

3）初始第 $i$ 个粒子的最好位置 ${P_i}(0)$ 和整个群体记忆的最好位置 ${G_i}(0)$ ，令 $t = 1$ 开始迭代寻优。

4）利用改进后的粒子速度更新方式更新每个粒子的值和速度，改进后的粒子更新方法如式（5）、（6）所示。

 ${ V_i}(t) = \left\{ \begin{array}{l}w{ V_i}(t - 1) + C{\rm{rand}}()({P_i}(t - 1) - { X_i}(t - 1)),\quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \,\, f({ X_i}(t - 1)) - \mu < - E({f^2})\\w{ V_i}(t - 1) + C{\rm{rand}}()(G(t - 1) - { X_i}(t - 1)),\quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \,\, f({ X_i}(t - 1)) - \mu < E({f^2})\\w{ V_i}(t - 1) + {C_1}{\rm{rand}}()({P_i}(t - 1) - { X_i}(t - 1)){\rm{ + }}{C_2}{\rm{rand}}()(G(t - 1) - { X_i}(t - 1)),\quad |f({ X_i}(t - 1)) - \mu | < E({f^2})\end{array} \right.$ (5)

 ${ V_i}(t) = \left\{ \begin{gathered} {V_{\max }}\begin{array}{*{20}{c}} {}&{{ V_i}(t) > {V_{\max }}} \end{array} \hfill \\ - {V_{\max }}\begin{array}{*{20}{c}} {}&{{ V_i}(t) < - {V_{\max }}} \end{array} \hfill \\ \end{gathered} \right.$ (6)

5）通过对所有粒子循环确定第 $i$ 个粒子的最好位置 ${P_i}(t)$ 和整个群体记忆的最好位置 ${G_i}(t)$ ，输出所需的最优值或者最优粒子。

3 IPSO-HATCH算法描述

Hatch滤波中平滑因子M直接决定了滤波的效果的优劣程度，如果M选择合理，则应该满足N个历元的滤波输出和原测量值的均方值最小，因此利用IPSO对M进行寻优的适应度函数可以选择为[16]

 $f = \frac{1}{N}\sum\limits_{i = 1}^N {(\hat P(i) - P(i))}$

1）历元 $N = 1$ 时，初始化伪距观测量的第一历元估计值： $\hat P(0) = P(0)$

2）为了减小粒子群算法的搜索范围和计算复杂度，当 $N < 5$ 时，令 $M = N$ ，并计算适应度函数f的初始值；

3） $N \geqslant 5$ 时，进行粒子群寻优计算，令 $M$ 的初始值为 $M = N$ ，确定搜索范围和粒子最大速度，根据适应度函数 $f \to \min$ 求出 $M$ 的最优值 ${M_{{\text{best}}}}$

4）将 ${M_{{\text{best}}}}$ 带回滤波方程，得到最优估计值 $\hat P(i)$ ，重复步骤1）平滑下一历元。

4 实验结果与分析

4.1 IPSO算法收敛分析

4.2 IPSO-HATCH算法定位分析 4.2.1 对比实验分析

3种定位结果相对于真实值的三维几何距离偏差如图6所示。

3种定位结果相对于真实值的二维XY几何距离偏差如图7所示。

4.2.2 独立实验分析