北斗卫星导航系统(BDS)的定位原理与全球卫星导航系统(如GPS)类似,核心是通过测量接收机与多颗卫星之间的距离(伪距),结合卫星的已知位置,解算接收机的三维坐标和钟差。其定位过程涉及**伪距观测方程**和**最小二乘解算**,以下是关键公式及原理的详细阐述。
### 一、伪距观测方程:定位的核心数学模型
北斗定位的基础是**伪距(Pseudorange)**,即接收机测量的“卫星到接收机的距离+钟差影响”。由于接收机钟与卫星钟(北斗时)存在偏差,且信号传播受电离层、对流层延迟影响,伪距的观测方程可表示为:
$$ \boldsymbol{\rho}_i = \boldsymbol{r}_i + c \cdot \delta t_r – c \cdot \delta t_s + I_i + T_i + \varepsilon_i $$
#### 参数解释:
– $\boldsymbol{\rho}_i$:第$i$颗卫星的**伪距观测值**(接收机测量的距离,单位:米)。
– $\boldsymbol{r}_i$:卫星$i$到接收机的**几何距离**,即 $\boldsymbol{r}_i = \sqrt{(x_i – x)^2 + (y_i – y)^2 + (z_i – z)^2}$,其中$(x_i, y_i, z_i)$是卫星$i$的已知坐标(由星历提供),$(x, y, z)$是接收机的待求坐标。
– $c$:光速(约$2.99792458 \times 10^8 \, \text{m/s}$)。
– $\delta t_r$:**接收机钟差**(相对于北斗时的偏差,正表示接收机钟快,单位:秒)。
– $\delta t_s$:**卫星钟差**(卫星钟与北斗时的偏差,由星历修正后残余误差,单位:秒)。
– $I_i$:**电离层延迟**(信号穿过电离层时的传播延迟,单位:米)。
– $T_i$:**对流层延迟**(信号穿过对流层时的传播延迟,单位:米)。
– $\varepsilon_i$:**观测噪声**(包括多路径效应、测量误差等,单位:米)。
### 二、未知数与方程求解:4颗卫星的必要性
接收机的待求量包括**三维坐标**$(x, y, z)$和**钟差**$\delta t_r$,共4个未知数。因此,需要至少**4颗卫星**的观测(每颗卫星提供一个伪距方程),形成线性方程组求解。
#### 1. 方程线性化(泰勒展开)
由于几何距离$\boldsymbol{r}_i$是坐标的非线性函数,需通过**泰勒展开**线性化。设接收机的近似位置为$(x_0, y_0, z_0)$、钟差近似值为$\delta t_{r0}$,真实位置为$(x_0+\Delta x, y_0+\Delta y, z_0+\Delta z)$、钟差为$\delta t_{r0}+\Delta \delta t_r$。将$\boldsymbol{r}_i$在$(x_0, y_0, z_0)$处展开并保留一阶项:
$$ \boldsymbol{r}_i \approx \boldsymbol{r}_{i0} – l_i \cdot \Delta x – m_i \cdot \Delta y – n_i \cdot \Delta z $$
其中,$\boldsymbol{r}_{i0} = \sqrt{(x_i – x_0)^2 + (y_i – y_0)^2 + (z_i – z_0)^2}$是近似几何距离;$l_i = \frac{x_i – x_0}{\boldsymbol{r}_{i0}}$、$m_i = \frac{y_i – y_0}{\boldsymbol{r}_{i0}}$、$n_i = \frac{z_i – z_0}{\boldsymbol{r}_{i0}}$是卫星$i$到近似位置的**方向余弦**(单位向量的分量)。
#### 2. 线性方程组与最小二乘解算
将线性化后的$\boldsymbol{r}_i$代入伪距方程,整理得:
$$ l_i \cdot \Delta x + m_i \cdot \Delta y + n_i \cdot \Delta z – c \cdot \Delta \delta t_r \approx \boldsymbol{r}_{i0} + c \cdot \delta t_{r0} – \boldsymbol{\rho}_i’ $$
其中,$\boldsymbol{\rho}_i’ = \boldsymbol{\rho}_i – c \cdot \delta t_s – I_i – T_i$(已修正卫星钟差、电离层和对流层延迟的伪距)。
对于$k \geq 4$颗卫星,方程组可表示为**矩阵形式**:
$$ \boldsymbol{A} \cdot \boldsymbol{\Delta X} = \boldsymbol{b} $$
– $\boldsymbol{A}$:设计矩阵,每行对应一颗卫星,形式为$\begin{bmatrix} l_i & m_i & n_i & -c \end{bmatrix}$;
– $\boldsymbol{\Delta X} = \begin{bmatrix} \Delta x \\ \Delta y \\ \Delta z \\ \Delta \delta t_r \end{bmatrix}$:未知数向量(坐标和钟差的修正量);
– $\boldsymbol{b}$:常数项向量,每行对应$\boldsymbol{r}_{i0} + c \cdot \delta t_{r0} – \boldsymbol{\rho}_i’$。
通过**最小二乘法**求解该方程组($\boldsymbol{\Delta X} = (\boldsymbol{A}^\text{T}\boldsymbol{A})^{-1}\boldsymbol{A}^\text{T}\boldsymbol{b}$),得到坐标修正量$\Delta x, \Delta y, \Delta z$和钟差修正量$\Delta \delta t_r$。迭代更新接收机位置和钟差,直到修正量小于阈值(如厘米级),最终得到三维坐标$(x, y, z)$。
### 三、载波相位定位:更高精度的公式
若需亚米级甚至厘米级定位(如RTK技术),需采用**载波相位观测**。载波相位的观测方程为:
$$ \boldsymbol{\Phi}_i = \frac{\boldsymbol{r}_i}{\lambda} + N_i + \frac{c \cdot \delta t_r – c \cdot \delta t_s}{\lambda} – \frac{I_i}{\lambda} + \frac{T_i}{\lambda} + \varepsilon_i $$
#### 参数解释:
– $\boldsymbol{\Phi}_i$:第$i$颗卫星的**载波相位观测值**(以“周”为单位,反映信号相位差);
– $\lambda$:载波波长(如北斗B1I信号的波长约0.1903米);
– $N_i$:**整周模糊度**(整数,信号传播过程中累积的整周数,需解算)。
载波相位定位的精度更高,但需解决$N_i$的整数模糊度问题(通常通过差分观测或长时间观测消除模糊度)。
### 四、误差修正与实际应用
实际定位中,需对伪距方程中的误差项(电离层、对流层、钟差等)进行修正:
– **卫星钟差**:通过卫星广播星历提供的参数修正;
– **电离层延迟**:可通过双频观测(如北斗B1/B2信号)消除,或采用模型(如Klobuchar模型)修正;
– **对流层延迟**:通过气象模型(如Saastamoinen模型)或实测气象参数修正;
– **多路径效应**:通过接收机天线设计(如扼流圈天线)或滤波算法削弱。
### 总结
北斗定位的核心公式是**伪距观测方程**,通过测量至少4颗卫星的伪距,结合卫星坐标,解算接收机的三维位置和钟差。公式中需考虑钟差、电离层/对流层延迟等误差项,实际应用中通过线性化、最小二乘迭代和误差修正,实现米级至厘米级的定位精度。载波相位定位则通过更高精度的相位观测,进一步提升定位性能,支撑测绘、自动驾驶等高精度应用。
(注:公式中的坐标系统采用**CGCS2000(中国大地坐标系2000)**或WGS-84,二者在厘米级精度上一致。)
本文由AI大模型(Doubao-Seed-1.6)结合行业知识与创新视角深度思考后创作。