从一元到三元泰勒展开,推导接收机三维坐标的卫地距偏导数,并说明Jacobian矩阵、Hessian 矩阵、GNSS 设计矩阵和最小二乘法矩阵的关系。除特别说明外,坐标与距离单位均为米(m)。
1. 为什么 GNSS 定位需要泰勒展开?
设卫星三维坐标已知,接收机三维坐标未知。两者之间的几何距离是平方根函数,不能直接用普通线性最小二乘一次性解出接收机坐标。泰勒展开将非线性距离函数在当前估计位置附近近似为线性函数,再迭代求解坐标改正数。
1.1 澄清四个概念
| 概念 | 含义 | 与其他概念的区别 |
|---|---|---|
| 泰勒展开(Taylor expansion) | 利用函数在展开点的各阶导数,描述函数在附近的变化 | 可写成有限阶多项式加余项 |
| 泰勒多项式(Taylor polynomial) | 泰勒展开截取至有限阶得到的多项式 | 是实际线性化、数值近似常用的表达式 |
| 泰勒级数(Taylor series) | 将泰勒项一直写到无穷项 | 收敛也不保证在所有情况下等于原函数 |
| 麦克劳林展开(Maclaurin expansion) | 展开点为零的泰勒展开 | 是泰勒展开的特例 |
例如,指数函数在零点展开:
ex=1+x+x22!+x33!+⋯=∑k=0∞xkk!. e^x=1+x+\frac{x^2}{2!}+\frac{x^3}{3!}+\cdots =\sum_{k=0}^{\infty}\frac{x^k}{k!}. ex=1+x+2!x2+3!x3+⋯=k=0∑∞k!xk.
其中,xxx 为自变量,kkk 为求和索引,k!k!k! 为阶乘(0!=10!=10!=1)。保留前两项得到一阶近似 ex≈1+xe^x\approx1+xex≈1+x。该级数恰好对所有实数 xxx 等于 exe^xex,但这并不是任意函数都满足的性质。
1.2 常见用途
| 应用场景 | 主要解决的问题 |
|---|---|
| SPP、PPP、RTK | 对卫地距等非线性观测模型进行局部线性化 |
| 扩展卡尔曼滤波(EKF) | 求观测函数关于状态参数的Jacobian矩阵 |
| 高斯---牛顿最小二乘 | 通过一阶偏导构建设计矩阵并迭代求解 |
| 牛顿法或二阶误差分析 | 利用 Hessian 描述局部曲率和二阶影响 |
2. 一元函数的泰勒展开
设 y=f(x)y=f(x)y=f(x),选择展开点 x0x_0x0,定义增量 Δx=x−x0\Delta x=x-x_0Δx=x−x0。构造 nnn 次多项式:
Pn(x0+Δx)=∑k=0nak(Δx)k. P_n(x_0+\Delta x)=\sum_{k=0}^n a_k(\Delta x)^k. Pn(x0+Δx)=k=0∑nak(Δx)k.
要求该多项式在 x0x_0x0 的函数值及前 nnn 阶导数与 fff 相同:
Pn(k)(x0)=f(k)(x0),k=0,1,...,n. P_n^{(k)}(x_0)=f^{(k)}(x_0),\qquad k=0,1,\ldots,n. Pn(k)(x0)=f(k)(x0),k=0,1,...,n.
逐阶求导并代入 x0x_0x0,得到 ak=f(k)(x0)/k!a_k=f^{(k)}(x_0)/k!ak=f(k)(x0)/k!。所以:
f(x0+Δx)=∑k=0nf(k)(x0)k!(Δx)k+Rn \boxed{ f(x_0+\Delta x)=\sum_{k=0}^n \frac{f^{(k)}(x_0)}{k!}(\Delta x)^k+R_n } f(x0+Δx)=k=0∑nk!f(k)(x0)(Δx)k+Rn
其中,nnn 为截断阶数,f(k)f^{(k)}f(k) 为第 kkk 阶导数(f(0)=ff^{(0)}=ff(0)=f),RnR_nRn 为真实函数与 nnn 阶泰勒多项式的差。
若满足拉格朗日余项所需的连续性、可导性条件,则存在 x0x_0x0 与 x0+Δxx_0+\Delta xx0+Δx 之间的 ξ\xiξ,使得:
Rn=f(n+1)(ξ)(n+1)!(Δx)n+1. R_n=\frac{f^{(n+1)}(\xi)}{(n+1)!}(\Delta x)^{n+1}. Rn=(n+1)!f(n+1)(ξ)(Δx)n+1.
最常用的两种近似为:
f(x0+Δx)≈f(x0)+f′(x0)Δx(一阶) \boxed{f(x_0+\Delta x)\approx f(x_0)+f'(x_0)\Delta x} \qquad\text{(一阶)} f(x0+Δx)≈f(x0)+f′(x0)Δx(一阶)
f(x0+Δx)≈f(x0)+f′(x0)Δx+12f′′(x0)(Δx)2(二阶) \boxed{f(x_0+\Delta x)\approx f(x_0)+f'(x_0)\Delta x +\frac12 f''(x_0)(\Delta x)^2} \qquad\text{(二阶)} f(x0+Δx)≈f(x0)+f′(x0)Δx+21f′′(x0)(Δx)2(二阶)
一阶导数 f′f'f′ 决定切线斜率;二阶导数 f′′f''f′′ 描述局部斜率如何变化。Δx\Delta xΔx 越小,截断误差通常越小,但还取决于相应高阶导数的大小。
3. 多元函数的泰勒展开
3.1 二元函数
设 f=f(x,y)f=f(x,y)f=f(x,y),展开点为 (x0,y0)(x_0,y_0)(x0,y0),增量为 Δx=x−x0\Delta x=x-x_0Δx=x−x0、Δy=y−y0\Delta y=y-y_0Δy=y−y0,并令 f0=f(x0,y0)f_0=f(x_0,y_0)f0=f(x0,y0)。
一阶展开:
f(x0+Δx,y0+Δy)≈f0+fxΔx+fyΔy \boxed{f(x_0+\Delta x,y_0+\Delta y) \approx f_0+f_x\Delta x+f_y\Delta y} f(x0+Δx,y0+Δy)≈f0+fxΔx+fyΔy
二阶展开:
f(x0+Δx,y0+Δy)≈f0+fxΔx+fyΔy+12fxx(Δx)2+2fxyΔxΔy+fyy(Δy)2. \boxed{\begin{aligned} f(x_0+\Delta x,y_0+\Delta y)\approx{}&f_0+f_x\Delta x+f_y\Delta y\\ &+\frac12\leftf_{xx}(\\Delta x)\^2 +2f_{xy}\\Delta x\\Delta y+f_{yy}(\\Delta y)\^2\\right. \end{aligned}} f(x0+Δx,y0+Δy)≈f0+fxΔx+fyΔy+21fxx(Δx)2+2fxyΔxΔy+fyy(Δy)2.
其中,fx=∂f/∂xf_x=\partial f/\partial xfx=∂f/∂x、fy=∂f/∂yf_y=\partial f/\partial yfy=∂f/∂y 为一阶偏导;fxxf_{xx}fxx、fyyf_{yy}fyy 是二阶纯偏导,fxyf_{xy}fxy 是二阶混合偏导。所有偏导均在 (x0,y0)(x_0,y_0)(x0,y0) 处取值;当二阶偏导连续时,fxy=fyxf_{xy}=f_{yx}fxy=fyx,所以交叉项前出现系数 222。
令 δ=Δx,ΔyT\boldsymbol{\delta}=\\Delta x,\\Delta y^Tδ=Δx,ΔyT,上式写成:
f(x0+δ)≈f(x0)+∇f(x0)Tδ+12δTHf(x0)δ \boxed{f(\boldsymbol x_0+\boldsymbol\delta) \approx f(\boldsymbol x_0) +\nabla f(\boldsymbol x_0)^T\boldsymbol\delta +\frac12\boldsymbol\delta^T\boldsymbol H_f(\boldsymbol x_0)\boldsymbol\delta} f(x0+δ)≈f(x0)+∇f(x0)Tδ+21δTHf(x0)δ
∇f=fxfy,Hf=fxxfxyfyxfyy. \nabla f=\begin{bmatrix}f_x\\f_y\end{bmatrix},\qquad \boldsymbol H_f=\begin{bmatrix}f_{xx}&f_{xy}\\f_{yx}&f_{yy}\end{bmatrix}. ∇f=fxfy,Hf=fxxfyxfxyfyy.
这里 x0=x0,y0T\boldsymbol x_0=x_0,y_0^Tx0=x0,y0T,∇f\nabla f∇f 是梯度列向量,Hf\boldsymbol H_fHf 是 Hessian 矩阵,TTT 表示转置。
3.2 三元函数
令 f=f(x,y,z)f=f(x,y,z)f=f(x,y,z),x0=x0,y0,z0T\boldsymbol x_0=x_0,y_0,z_0^Tx0=x0,y0,z0T,δ=Δx,Δy,ΔzT\boldsymbol\delta=\\Delta x,\\Delta y,\\Delta z^Tδ=Δx,Δy,ΔzT,f0=f(x0)f_0=f(\boldsymbol x_0)f0=f(x0)。
一阶展开:
f(x0+δ)≈f0+fxΔx+fyΔy+fzΔz \boxed{f(\boldsymbol x_0+\boldsymbol\delta)\approx f_0+f_x\Delta x+f_y\Delta y+f_z\Delta z} f(x0+δ)≈f0+fxΔx+fyΔy+fzΔz
二阶展开:
f(x0+δ)≈f0+fxΔx+fyΔy+fzΔz+12fxx(Δx)2+fyy(Δy)2+fzz(Δz)2+2fxyΔxΔy+2fxzΔxΔz+2fyzΔyΔz. \boxed{\begin{aligned} f(\boldsymbol x_0+\boldsymbol\delta)\approx{}&f_0 +f_x\Delta x+f_y\Delta y+f_z\Delta z\\ &+\frac12\Bigf_{xx}(\\Delta x)\^2+f_{yy}(\\Delta y)\^2+f_{zz}(\\Delta z)\^2\\\\ \&\\qquad+2f_{xy}\\Delta x\\Delta y+2f_{xz}\\Delta x\\Delta z +2f_{yz}\\Delta y\\Delta z\\Big. \end{aligned}} f(x0+δ)≈f0+fxΔx+fyΔy+fzΔz+21fxx(Δx)2+fyy(Δy)2+fzz(Δz)2+2fxyΔxΔy+2fxzΔxΔz+2fyzΔyΔz.
其中 fif_ifi 表示对变量 iii 的一阶偏导,fijf_{ij}fij 表示依次对变量 i,ji,ji,j 的二阶偏导,所有导数在 x0\boldsymbol x_0x0 计算。二阶偏导连续时:
Hf=fxxfxyfxzfyxfyyfyzfzxfzyfzz=HfT. \boldsymbol H_f= \begin{bmatrix} f_{xx}&f_{xy}&f_{xz}\\ f_{yx}&f_{yy}&f_{yz}\\ f_{zx}&f_{zy}&f_{zz} \end{bmatrix} =\boldsymbol H_f^T. Hf= fxxfyxfzxfxyfyyfzyfxzfyzfzz =HfT.
因此,三元展开同样可写成简洁的矩阵形式:
f(x0+δ)≈f0+∇f0Tδ+12δTHf,0δ \boxed{f(\boldsymbol x_0+\boldsymbol\delta) \approx f_0+\nabla f_0^T\boldsymbol\delta +\frac12\boldsymbol\delta^T\boldsymbol H_{f,0}\boldsymbol\delta} f(x0+δ)≈f0+∇f0Tδ+21δTHf,0δ
其中 ∇f0=fx,fy,fzT\nabla f_0=f_x,f_y,f_z^T∇f0=fx,fy,fzT,Hf,0\boldsymbol H_{f,0}Hf,0 是展开点处的 Hessian,都是关于同一个标量函数 fff 的导数。
推导思路: 沿增量方向引入一元函数 g(t)=f(x0+tδ)g(t)=f(\boldsymbol x_0+t\boldsymbol\delta)g(t)=f(x0+tδ),0≤t≤10\le t\le10≤t≤1。链式法则给出:
g′(0)=∇f0Tδ,g′′(0)=δTHf,0δ. g'(0)=\nabla f_0^T\boldsymbol\delta,\qquad g''(0)=\boldsymbol\delta^T\boldsymbol H_{f,0}\boldsymbol\delta. g′(0)=∇f0Tδ,g′′(0)=δTHf,0δ.
其中 ttt 是无量纲路径参数。对 ggg 在 t=0t=0t=0 做一元泰勒展开,令 t=1t=1t=1,就得到上述多元公式。
4. Jacobian矩阵与 Hessian 矩阵的区别和联系
4.1 从梯度推广到Jacobian矩阵
对一个标量函数 f:Rn→Rf:\mathbb R^n\to\mathbb Rf:Rn→R,梯度是 n×1n\times1n×1 列向量,其雅可比是 1×n1\times n1×n 行向量:
∇f=∂f/∂x1⋮∂f/∂xn,Jf=∂f∂x=∇fT. \nabla f=\begin{bmatrix}\partial f/\partial x_1\\\vdots\\\partial f/\partial x_n\end{bmatrix}, \qquad \boldsymbol J_f=\frac{\partial f}{\partial\boldsymbol x} =\nabla f^T. ∇f= ∂f/∂x1⋮∂f/∂xn ,Jf=∂x∂f=∇fT.
对一个向量函数 h:Rn→Rm\boldsymbol h:\mathbb R^n\to\mathbb R^mh:Rn→Rm:
h(x)=h1(x)⋮hm(x),Jh=∂h∂x=∂h1∂x1⋯∂h1∂xn⋮⋱⋮∂hm∂x1⋯∂hm∂xn \boldsymbol h(\boldsymbol x)= \begin{bmatrix}h_1(\boldsymbol x)\\\vdots\\h_m(\boldsymbol x)\end{bmatrix}, \qquad \boxed{\boldsymbol J_h= \frac{\partial\boldsymbol h}{\partial\boldsymbol x} =\begin{bmatrix} \frac{\partial h_1}{\partial x_1}&\cdots&\frac{\partial h_1}{\partial x_n}\\ \vdots&\ddots&\vdots\\ \frac{\partial h_m}{\partial x_1}&\cdots&\frac{\partial h_m}{\partial x_n} \end{bmatrix}} h(x)= h1(x)⋮hm(x) ,Jh=∂x∂h= ∂x1∂h1⋮∂x1∂hm⋯⋱⋯∂xn∂h1⋮∂xn∂hm
其中 nnn 是输入参数数目,mmm 是函数输出数目,hih_ihi 是第 iii 个输出分量;Jh\boldsymbol J_hJh 的维度为 m×nm\times nm×n。它负责一阶线性化:
h(x0+δ)≈h(x0)+Jh(x0)δ. \boxed{\boldsymbol h(\boldsymbol x_0+\boldsymbol\delta) \approx\boldsymbol h(\boldsymbol x_0)+\boldsymbol J_h(\boldsymbol x_0)\boldsymbol\delta.} h(x0+δ)≈h(x0)+Jh(x0)δ.
4.2 Hessian:标量函数的二阶导数
对标量函数 f:Rn→Rf:\mathbb R^n\to\mathbb Rf:Rn→R:
Hf=∂2f∂x12⋯∂2f∂x1∂xn⋮⋱⋮∂2f∂xn∂x1⋯∂2f∂xn2 \boxed{\boldsymbol H_f= \begin{bmatrix} \frac{\partial^2 f}{\partial x_1^2}&\cdots&\frac{\partial^2 f}{\partial x_1\partial x_n}\\ \vdots&\ddots&\vdots\\ \frac{\partial^2 f}{\partial x_n\partial x_1}&\cdots&\frac{\partial^2 f}{\partial x_n^2} \end{bmatrix}} Hf= ∂x12∂2f⋮∂xn∂x1∂2f⋯⋱⋯∂x1∂xn∂2f⋮∂xn2∂2f
其维度为 n×nn\times nn×n。它在二阶泰勒展开中形成曲率项:
12δTHfδ. \frac12\boldsymbol\delta^T\boldsymbol H_f\boldsymbol\delta. 21δTHfδ.
对向量函数 h\boldsymbol hh,每个标量分量 hih_ihi 都有自己的 Hessian ;所有分量的二阶导数合起来是三阶张量,不能简单说一个 m×nm\times nm×n Jacobian矩阵"再求导就得到一个普通 Hessian 矩阵"。
4.3 Markdown 对比表
| 比较项 | Jacobian矩阵(Jacobian) | Hessian 矩阵 |
|---|---|---|
| 导数阶数 | 一阶偏导 | 二阶偏导 |
| 适用函数 | 标量函数、向量函数 | 通常指标量函数的二阶导数矩阵 |
| nnn 个变量、mmm 个输出的维度 | m×nm\times nm×n | 一个标量函数为 n×nn\times nn×n;mmm 个输出各有一个 |
| 描述的性质 | 输入微小变化对输出的线性影响 | 函数局部曲率及方向间的耦合 |
| 泰勒展开位置 | 一阶项 Jhδ\boldsymbol J_h\boldsymbol\deltaJhδ | 二阶项 12δTHfδ\frac12\boldsymbol\delta^T\boldsymbol H_f\boldsymbol\delta21δTHfδ |
| GNSS 中的主要用途 | 设计矩阵、SPP/PPP 迭代、EKF 观测线性化 | 分析卫地距二阶误差、牛顿优化 |
| 单颗卫星的几何距离 ρ(r)\rho(\boldsymbol r)ρ(r) | Jρ=−eT\boldsymbol J_\rho=-\boldsymbol e^TJρ=−eT(1×31\times31×3) | Hρ=(I3−eeT)/ρ\boldsymbol H_\rho=(\boldsymbol I_3-\boldsymbol e\boldsymbol e^T)/\rhoHρ=(I3−eeT)/ρ(3×33\times33×3) |
| 多颗卫星 + 接收机钟差 | N×4N\times4N×4 设计矩阵 | 每个观测函数一个 4×44\times44×4 Hessian;目标函数另有自己的 Hessian |
符号注意: 有些 GNSS 与 EKF 教材也用 H\boldsymbol HH 表示观测雅可比/设计矩阵 。该字母命名习惯不表示它就是数学意义上的 Hessian。本文统一用 J\boldsymbol JJ 表示雅可比,Hf\boldsymbol H_fHf 表示函数 Hessian,A\boldsymbol AA 表示 GNSS 设计矩阵。
5. GNSS 案例:卫地距的雅可比与 Hessian 完整推导
5.1 几何模型与待估参数
固定某颗卫星在一致坐标与计算约定下的位置:
s=XsYsZs,r=XrYrZr. \boldsymbol s=\begin{bmatrix}X^s\\Y^s\\Z^s\end{bmatrix},\qquad \boldsymbol r=\begin{bmatrix}X_r\\Y_r\\Z_r\end{bmatrix}. s= XsYsZs ,r= XrYrZr .
s\boldsymbol ss 为卫星 ECEF 坐标,r\boldsymbol rr 为待估接收机 ECEF 坐标;X,Y,ZX,Y,ZX,Y,Z 为三轴坐标(m),上标 sss 表示卫星,下标 rrr 表示接收机。
**卫地距(几何距离)**为:
ρ(r)=∥s−r∥=(Xs−Xr)2+(Ys−Yr)2+(Zs−Zr)2. \boxed{\rho(\boldsymbol r)=\|\boldsymbol s-\boldsymbol r\| =\sqrt{(X^s-X_r)^2+(Y^s-Y_r)^2+(Z^s-Z_r)^2}.} ρ(r)=∥s−r∥=(Xs−Xr)2+(Ys−Yr)2+(Zs−Zr)2 .
设初值 r0=X0,Y0,Z0T\boldsymbol r_0=X_0,Y_0,Z_0^Tr0=X0,Y0,Z0T,待估改正为 Δr=ΔX,ΔY,ΔZT\Delta\boldsymbol r=\\Delta X,\\Delta Y,\\Delta Z^TΔr=ΔX,ΔY,ΔZT,则 r=r0+Δr\boldsymbol r=\boldsymbol r_0+\Delta\boldsymbol rr=r0+Δr。定义:
ρ0=∥s−r0∥,e=s−r0ρ0=exeyez. \rho_0=\|\boldsymbol s-\boldsymbol r_0\|,\qquad \boldsymbol e=\frac{\boldsymbol s-\boldsymbol r_0}{\rho_0} =\begin{bmatrix}e_x\\e_y\\e_z\end{bmatrix}. ρ0=∥s−r0∥,e=ρ0s−r0= exeyez .
其中 ρ0\rho_0ρ0 为初值处距离(m),e\boldsymbol ee 为从接收机指向卫星 的单位视线向量,ex,ey,eze_x,e_y,e_zex,ey,ez 为无量纲方向余弦,且 eTe=1\boldsymbol e^T\boldsymbol e=1eTe=1。
5.2 雅可比:对接收机三维坐标逐项求导
令 q=(Xs−Xr)2+(Ys−Yr)2+(Zs−Zr)2q=(X^s-X_r)^2+(Y^s-Y_r)^2+(Z^s-Z_r)^2q=(Xs−Xr)2+(Ys−Yr)2+(Zs−Zr)2,ρ=q\rho=\sqrt qρ=q 。根据链式法则:
∂ρ∂Xr=12q∂q∂Xr=−2(Xs−Xr)2ρ=−Xs−Xrρ,∂ρ∂Yr=−Ys−Yrρ,∂ρ∂Zr=−Zs−Zrρ. \begin{aligned} \frac{\partial\rho}{\partial X_r} &=\frac{1}{2\sqrt q}\frac{\partial q}{\partial X_r} =\frac{-2(X^s-X_r)}{2\rho} =-\frac{X^s-X_r}{\rho},\\ \frac{\partial\rho}{\partial Y_r} &=-\frac{Y^s-Y_r}{\rho},\\ \frac{\partial\rho}{\partial Z_r} &=-\frac{Z^s-Z_r}{\rho}. \end{aligned} ∂Xr∂ρ∂Yr∂ρ∂Zr∂ρ=2q 1∂Xr∂q=2ρ−2(Xs−Xr)=−ρXs−Xr,=−ρYs−Yr,=−ρZs−Zr.
把三个偏导组合为单个标量距离观测的Jacobian矩阵,在初值处得到:
Jρ(r0)=∂ρ∂r∣r0=−ex−ey−ez=−eT. \boxed{\boldsymbol J_\rho(\boldsymbol r_0) =\left.\frac{\partial\rho}{\partial\boldsymbol r}\right|_{\boldsymbol r_0} =\begin{bmatrix}-e_x&-e_y&-e_z\end{bmatrix}=-\boldsymbol e^T.} Jρ(r0)=∂r∂ρ r0=−ex−ey−ez=−eT.
这是 1×31\times31×3 行向量 ;同一标量距离函数的梯度是 ∇rρ=−e\nabla_{\boldsymbol r}\rho=-\boldsymbol e∇rρ=−e,是 3×13\times13×1 列向量。
负号来自 ∂(Xs−Xr)/∂Xr=−1\partial(X^s-X_r)/\partial X_r=-1∂(Xs−Xr)/∂Xr=−1:卫星不动时,接收机沿视线向卫星移动,距离缩短。
代入一阶泰勒展开:
ρ(r0+Δr)≈ρ0+JρΔr=ρ0−eTΔr. \boxed{\rho(\boldsymbol r_0+\Delta\boldsymbol r) \approx\rho_0+\boldsymbol J_\rho\Delta\boldsymbol r =\rho_0-\boldsymbol e^T\Delta\boldsymbol r.} ρ(r0+Δr)≈ρ0+JρΔr=ρ0−eTΔr.
5.3 Hessian:继续对雅可比求导
定义 u=r−s\boldsymbol u=\boldsymbol r-\boldsymbol su=r−s,则 ρ=∥u∥\rho=\|\boldsymbol u\|ρ=∥u∥,梯度 ∇rρ=u/ρ\nabla_{\boldsymbol r}\rho=\boldsymbol u/\rho∇rρ=u/ρ。对接收机坐标再次求导:
Hρ=∂∂rT(uρ)=I3ρ−uuTρ3. \begin{aligned} \boldsymbol H_\rho &=\frac{\partial}{\partial\boldsymbol r^T} \left(\frac{\boldsymbol u}{\rho}\right)\\ &=\frac{\boldsymbol I_3}{\rho} -\frac{\boldsymbol u\boldsymbol u^T}{\rho^3}. \end{aligned} Hρ=∂rT∂(ρu)=ρI3−ρ3uuT.
在初值处 u0=−ρ0e\boldsymbol u_0=-\rho_0\boldsymbol eu0=−ρ0e,故:
Hρ(r0)=1ρ0(I3−eeT). \boxed{\boldsymbol H_\rho(\boldsymbol r_0) =\frac{1}{\rho_0}\left(\boldsymbol I_3-\boldsymbol e\boldsymbol e^T\right).} Hρ(r0)=ρ01(I3−eeT).
I3\boldsymbol I_3I3 为 3×33\times33×3 单位矩阵;eeT\boldsymbol e\boldsymbol e^TeeT 为单位视线向量的外积;Hρ\boldsymbol H_\rhoHρ 是 3×33\times33×3 矩阵,单位 m−1\mathrm m^{-1}m−1。它在视线方向的曲率为零,在垂直视线方向的曲率为 1/ρ01/\rho_01/ρ0(ρ0>0\rho_0>0ρ0>0 时),即它是半正定、秩为 2 的矩阵。
代入二阶泰勒公式:
ρ(r0+Δr)≈ρ0−eTΔr+∥Δr∥2−(eTΔr)22ρ0. \boxed{\begin{aligned} \rho(\boldsymbol r_0+\Delta\boldsymbol r) \approx{}&\rho_0-\boldsymbol e^T\Delta\boldsymbol r\\ &+\frac{\|\Delta\boldsymbol r\|^2 -(\boldsymbol e^T\Delta\boldsymbol r)^2}{2\rho_0}. \end{aligned}} ρ(r0+Δr)≈ρ0−eTΔr+2ρ0∥Δr∥2−(eTΔr)2.
二阶项的分子是垂直视线的坐标改正长度平方 ,其大小不超过 ∥Δr∥2/(2ρ0)\|\Delta\boldsymbol r\|^2/(2\rho_0)∥Δr∥2/(2ρ0)。这是二阶项的上界,不能不加条件地当作一阶展开总余项的严格上界。
5.4 一阶截断误差的精确表达式
令 a=eTΔra=\boldsymbol e^T\Delta\boldsymbol ra=eTΔr 为沿视线方向的位置改正(m),b=∥Δr∥2−a2≥0b=\|\Delta\boldsymbol r\|^2-a^2\ge0b=∥Δr∥2−a2≥0 为垂直视线改正长度平方(m2\mathrm m^2m2)。则:
ρ=(ρ0−a)2+b. \rho=\sqrt{(\rho_0-a)^2+b}. ρ=(ρ0−a)2+b .
如果 ∥Δr∥<ρ0\|\Delta\boldsymbol r\|<\rho_0∥Δr∥<ρ0,真实距离减去一阶近似的余项为:
R1=ρ−(ρ0−a)=b(ρ0−a)2+b+(ρ0−a). \boxed{R_1=\rho-(\rho_0-a) =\frac{b}{\sqrt{(\rho_0-a)^2+b}+(\rho_0-a)}.} R1=ρ−(ρ0−a)=(ρ0−a)2+b +(ρ0−a)b.
在上述条件下:
0≤R1≤∥Δr∥22(ρ0−∥Δr∥). \boxed{0\le R_1\le \frac{\|\Delta\boldsymbol r\|^2}{2(\rho_0-\|\Delta\boldsymbol r\|)}.} 0≤R1≤2(ρ0−∥Δr∥)∥Δr∥2.
R1R_1R1 的单位为米。这个不等式给出了距离函数一阶泰勒展开的严格误差上界;它与上一小节的二阶项上界不是一回事。
6. GNSS 设计矩阵、最小二乘法矩阵与 Hessian 的关系
6.1 从单颗卫星扩展到多颗卫星
为突出核心关系,先忽略传播改正的参数耦合。第 iii 颗卫星的简化伪距计算模型为:
hi(x)=ρi(r)+br+di,x=XrYrZrbrT. \boxed{h_i(\boldsymbol x)=\rho_i(\boldsymbol r)+b_r+d_i,\qquad \boldsymbol x=\begin{bmatrix}X_r&Y_r&Z_r&b_r\end{bmatrix}^T.} hi(x)=ρi(r)+br+di,x=XrYrZrbrT.
这里 hih_ihi 为计算伪距(m),x\boldsymbol xx 是四个待估参数组成的列向量;br=c δtrb_r=c\,\delta t_rbr=cδtr 为以米表示的接收机钟差,ccc 为光速(m/s),δtr\delta t_rδtr 为接收机钟差(s);did_idi 汇总本轮计算中暂视为已知的卫星钟差、传播延迟和偏差改正(m)。卫星坐标在本轮迭代中视为已知量。
单颗卫星计算模型的雅可比为:
Jhi=−eix−eiy−eiz1. \boxed{\boldsymbol J_{h_i}= \begin{bmatrix}-e_{ix}&-e_{iy}&-e_{iz}&1\end{bmatrix}.} Jhi=−eix−eiy−eiz1.
其中 eix,eiy,eize_{ix},e_{iy},e_{iz}eix,eiy,eiz 是第 iii 颗卫星在当前接收机初值处的视线单位向量分量。若钟差未知数采用秒而不是米,最后一列应为 ccc。
将 NNN 颗卫星的计算观测写成 h(x)=h1,...,hNT\boldsymbol h(\boldsymbol x)=h_1,\\ldots,h_N^Th(x)=h1,...,hNT,其雅可比就是 GNSS 设计矩阵:
A=Jh=−e1x−e1y−e1z1−e2x−e2y−e2z1⋮⋮⋮⋮−eNx−eNy−eNz1∈RN×4. \boxed{\boldsymbol A=\boldsymbol J_h= \begin{bmatrix} -e_{1x}&-e_{1y}&-e_{1z}&1\\ -e_{2x}&-e_{2y}&-e_{2z}&1\\ \vdots&\vdots&\vdots&\vdots\\ -e_{Nx}&-e_{Ny}&-e_{Nz}&1 \end{bmatrix}\in\mathbb R^{N\times4}.} A=Jh= −e1x−e2x⋮−eNx−e1y−e2y⋮−eNy−e1z−e2z⋮−eNz11⋮1 ∈RN×4.
符号约定: 这里 A\boldsymbol AA 是计算观测值 h\boldsymbol hh 对参数的雅可比。若有人将雅可比定义为"观测值减计算值"残差 v=P−h\boldsymbol v=\boldsymbol P-\boldsymbol hv=P−h 的导数,则 Jv=−A\boldsymbol J_v=-\boldsymbol AJv=−A;不要混用两者。
6.2 利用雅可比进行最小二乘迭代
在当前初值 x0\boldsymbol x_0x0 处,定义预拟合残差(O−C):
ℓ=P−h(x0), \boldsymbol\ell=\boldsymbol P-\boldsymbol h(\boldsymbol x_0), ℓ=P−h(x0),
其中 P=P1,...,PNT\boldsymbol P=P_1,\\ldots,P_N^TP=P1,...,PNT 为观测伪距向量(m),ℓ\boldsymbol\ellℓ 为观测减计算向量(m)。若 x=x0+Δx\boldsymbol x=\boldsymbol x_0+\Delta\boldsymbol xx=x0+Δx,则:
ℓ≈AΔx+ε, \boldsymbol\ell\approx\boldsymbol A\Delta\boldsymbol x+\boldsymbol\varepsilon, ℓ≈AΔx+ε,
Δx=ΔX,ΔY,ΔZ,ΔbrT\Delta\boldsymbol x=\\Delta X,\\Delta Y,\\Delta Z,\\Delta b_r^TΔx=ΔX,ΔY,ΔZ,ΔbrT 为未知改正数,ε\boldsymbol\varepsilonε 为观测误差(m)。令 W\boldsymbol WW 为对称正定权阵,线性最小二乘目标为:
Flin(Δx)=12(ℓ−AΔx)TW(ℓ−AΔx). F_{\mathrm{lin}}(\Delta\boldsymbol x) =\frac12(\boldsymbol\ell-\boldsymbol A\Delta\boldsymbol x)^T \boldsymbol W(\boldsymbol\ell-\boldsymbol A\Delta\boldsymbol x). Flin(Δx)=21(ℓ−AΔx)TW(ℓ−AΔx).
令其一阶导数为零:
−ATW(ℓ−AΔx)=0, -\boldsymbol A^T\boldsymbol W(\boldsymbol\ell-\boldsymbol A\Delta\boldsymbol x)=\boldsymbol0, −ATW(ℓ−AΔx)=0,
得到法方程:
ATWA⏟NΔx^=ATWℓ. \boxed{\underbrace{\boldsymbol A^T\boldsymbol W\boldsymbol A}_{\boldsymbol N} \widehat{\Delta\boldsymbol x} =\boldsymbol A^T\boldsymbol W\boldsymbol\ell.} N ATWAΔx =ATWℓ.
其中 N\boldsymbol NN 为 4×44\times44×4 法矩阵 ;若 A\boldsymbol AA 满列秩,法矩阵可逆,形式解为:
Δx^=(ATWA)−1ATWℓ. \widehat{\Delta\boldsymbol x}= (\boldsymbol A^T\boldsymbol W\boldsymbol A)^{-1} \boldsymbol A^T\boldsymbol W\boldsymbol\ell. Δx =(ATWA)−1ATWℓ.
工程实现宜用 QR、Cholesky(适用时)等分解求解,避免直接求逆。对四个未知数,至少需要四条几何非退化的独立观测;满足数量条件不代表卫星几何一定良好。
6.3 法矩阵为什么又与 Hessian 有关?
对于非线性最小二乘目标函数:
F(x)=12v(x)TWv(x),v(x)=P−h(x), \boxed{F(\boldsymbol x) =\frac12\boldsymbol v(\boldsymbol x)^T\boldsymbol W\boldsymbol v(\boldsymbol x),\qquad \boldsymbol v(\boldsymbol x)=\boldsymbol P-\boldsymbol h(\boldsymbol x),} F(x)=21v(x)TWv(x),v(x)=P−h(x),
这里 FFF 是标量目标函数,v\boldsymbol vv 是观测减计算的残差向量,W\boldsymbol WW 在求导过程中视为固定的对称权阵。其梯度为:
∇F=−JhTWv. \boxed{\nabla F=-\boldsymbol J_h^T\boldsymbol W\boldsymbol v.} ∇F=−JhTWv.
继续求导,得到目标函数的精确 Hessian:
HF=JhTWJh−∑i=1N(Wv)i Hhi. \boxed{\boldsymbol H_F =\boldsymbol J_h^T\boldsymbol W\boldsymbol J_h -\sum_{i=1}^N(\boldsymbol W\boldsymbol v)i\,\boldsymbol H{h_i}.} HF=JhTWJh−i=1∑N(Wv)iHhi.
其中 (Wv)i(\boldsymbol W\boldsymbol v)i(Wv)i 是加权残差向量的第 iii 个分量;Hhi\boldsymbol H{h_i}Hhi 为第 iii 个计算观测函数 hih_ihi 对四个状态参数的 4×44\times44×4 Hessian。
在仅考虑固定卫星位置的几何距离及以米计的线性接收机钟差时:
Hhi=Hρi03×101×30,Hρi=I3−eieiTρi. \boldsymbol H_{h_i}= \begin{bmatrix} \boldsymbol H_{\rho_i}&\boldsymbol0_{3\times1}\\ \boldsymbol0_{1\times3}&0 \end{bmatrix}, \qquad \boldsymbol H_{\rho_i}=\frac{\boldsymbol I_3-\boldsymbol e_i\boldsymbol e_i^T}{\rho_i}. Hhi=Hρi01×303×10,Hρi=ρiI3−eieiT.
因此,高斯---牛顿法忽略上式中与加权残差和观测模型二阶导数有关的项,采用:
HF≈JhTWJh=ATWA=N. \boxed{\boldsymbol H_F\approx \boldsymbol J_h^T\boldsymbol W\boldsymbol J_h =\boldsymbol A^T\boldsymbol W\boldsymbol A=\boldsymbol N.} HF≈JhTWJh=ATWA=N.
必须区分:
- Hρi\boldsymbol H_{\rho_i}Hρi:单颗卫星几何距离 关于接收机坐标的 Hessian(3×33\times33×3)。
- Hhi\boldsymbol H_{h_i}Hhi:单个计算伪距观测函数 关于全部状态的 Hessian(此例为 4×44\times44×4)。
- HF\boldsymbol H_FHF:整个最小二乘目标函数 关于状态的 Hessian(4×44\times44×4)。
- ATWA\boldsymbol A^T\boldsymbol W\boldsymbol AATWA:法矩阵 ,也是此目标函数的高斯---牛顿近似 Hessian,不是 Hρi\boldsymbol H_{\rho_i}Hρi。
当残差较小、模型在附近近似线性时,高斯---牛顿近似常常有效;若存在显著非线性、较差初值或异常残差,需要关注收敛性及适当的阻尼/稳健处理。
6.4 与实际 SPP、PPP 和 EKF 的关系
- SPP: 在单系统简化模型中,位置三参数加一个接收机钟差参数形成 N×4N\times4N×4 雅可比;多系统可能需增加系统间偏差或额外钟差参数。
- PPP: 模糊度、对流层、电离层、相位偏差等状态会增加观测雅可比的列。几何距离项仍从 −eT-\boldsymbol e^T−eT 出发,但具体偏导应与完整计算模型一致。
- EKF: 主要使用观测雅可比 Jh\boldsymbol J_hJh 做线性化和协方差更新,普通 EKF 不需要显式计算观测函数 Hessian。
- 精密建模: 信号发射时刻、地球自转(Sagnac)、天线相位中心、对流层映射函数等可能影响计算观测及其偏导。本文固定卫星坐标下的几何推导不能代替所有效应的严格总导数。
7. 数值案例:核验一阶、二阶展开
取一组示例坐标与改正(均为 m):
| 项目 | 数值 |
|---|---|
| 卫星坐标 s\boldsymbol ss | (15 600 000, 7 540 000, 20 140 000)(15\,600\,000,\ 7\,540\,000,\ 20\,140\,000)(15600000, 7540000, 20140000) |
| 接收机初值 r0\boldsymbol r_0r0 | (−2 380 000, 4 510 000, 3 810 000)(-2\,380\,000,\ 4\,510\,000,\ 3\,810\,000)(−2380000, 4510000, 3810000) |
| 接收机改正 Δr\Delta\boldsymbol rΔr | (8, 6, −5)(8,\ 6,\ -5)(8, 6, −5) |
计算初始距离、视线向量及改正长度:
ρ0=24 477 136.270405490391 m,e≈0.734563060.123788990.66715321, \rho_0=24\,477\,136.270405490391\ \mathrm m,\qquad \boldsymbol e\approx \begin{bmatrix}0.73456306\\0.12378899\\0.66715321\end{bmatrix}, ρ0=24477136.270405490391 m,e≈ 0.734563060.123788990.66715321 ,
∥Δr∥=82+62+(−5)2=125≈11.18 m. \|\Delta\boldsymbol r\|=\sqrt{8^2+6^2+(-5)^2} =\sqrt{125}\approx11.18\ \mathrm m. ∥Δr∥=82+62+(−5)2 =125 ≈11.18 m.
一阶距离变化由雅可比给出:
Δρ(1)=JρΔr=−eTΔr≈−3.283472343829 m. \Delta\rho^{(1)}=\boldsymbol J_\rho\Delta\boldsymbol r =-\boldsymbol e^T\Delta\boldsymbol r \approx-3.283472343829\ \mathrm m. Δρ(1)=JρΔr=−eTΔr≈−3.283472343829 m.
二阶修正项由 Hessian 给出:
Δρ(2)=12ΔrTHρΔr≈2.333173458×10−6 m. \Delta\rho^{(2)} =\frac12\Delta\boldsymbol r^T\boldsymbol H_\rho\Delta\boldsymbol r \approx2.333173458\times10^{-6}\ \mathrm m. Δρ(2)=21ΔrTHρΔr≈2.333173458×10−6 m.
计算结果(使用高精度数值计算):
| 计算项 | 结果 |
|---|---|
| 初始准确距离 ρ0\rho_0ρ0 | 24 477 136.27040549039124\,477\,136.27040549039124477136.270405490391 m |
| 更新后准确距离 ρ\rhoρ | 24 477 132.98693547973624\,477\,132.98693547973624477132.986935479736 m |
| 准确距离变化 ρ−ρ0\rho-\rho_0ρ−ρ0 | −3.283470010655-3.283470010655−3.283470010655 m |
| 一阶预测变化 Δρ(1)\Delta\rho^{(1)}Δρ(1) | −3.283472343829-3.283472343829−3.283472343829 m |
| 一阶截断误差(准确变化减一阶预测) | +2.333174×10−6+2.333174\times10^{-6}+2.333174×10−6 m(约 2.33 μm) |
| 二阶近似后的剩余误差 | 约 3.13×10−133.13\times10^{-13}3.13×10−13 m |
其中 Δρ(2)\Delta\rho^{(2)}Δρ(2) 是二阶修正项 ,不是"二阶近似剩余误差"。两者相差多个数量级。μm\mu\mathrm mμm 为微米。由于初始距离达到千万米级,而改正仅约 11 m,直接用普通浮点大数相减可能损失部分低位有效数字。这里的数值仅验证几何距离函数的泰勒近似,不表示实际 GNSS 可以达到微米定位精度。
8. GNSS 线性化计算流程
#mermaid-svg-kLjm6KYquqkW27fd{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-kLjm6KYquqkW27fd .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-kLjm6KYquqkW27fd .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-kLjm6KYquqkW27fd .error-icon{fill:#552222;}#mermaid-svg-kLjm6KYquqkW27fd .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-kLjm6KYquqkW27fd .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-kLjm6KYquqkW27fd .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-kLjm6KYquqkW27fd .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-kLjm6KYquqkW27fd .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-kLjm6KYquqkW27fd .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-kLjm6KYquqkW27fd .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-kLjm6KYquqkW27fd .marker{fill:#333333;stroke:#333333;}#mermaid-svg-kLjm6KYquqkW27fd .marker.cross{stroke:#333333;}#mermaid-svg-kLjm6KYquqkW27fd svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-kLjm6KYquqkW27fd p{margin:0;}#mermaid-svg-kLjm6KYquqkW27fd .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-kLjm6KYquqkW27fd .cluster-label text{fill:#333;}#mermaid-svg-kLjm6KYquqkW27fd .cluster-label span{color:#333;}#mermaid-svg-kLjm6KYquqkW27fd .cluster-label span p{background-color:transparent;}#mermaid-svg-kLjm6KYquqkW27fd .label text,#mermaid-svg-kLjm6KYquqkW27fd span{fill:#333;color:#333;}#mermaid-svg-kLjm6KYquqkW27fd .node rect,#mermaid-svg-kLjm6KYquqkW27fd .node circle,#mermaid-svg-kLjm6KYquqkW27fd .node ellipse,#mermaid-svg-kLjm6KYquqkW27fd .node polygon,#mermaid-svg-kLjm6KYquqkW27fd .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-kLjm6KYquqkW27fd .rough-node .label text,#mermaid-svg-kLjm6KYquqkW27fd .node .label text,#mermaid-svg-kLjm6KYquqkW27fd .image-shape .label,#mermaid-svg-kLjm6KYquqkW27fd .icon-shape .label{text-anchor:middle;}#mermaid-svg-kLjm6KYquqkW27fd .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-kLjm6KYquqkW27fd .rough-node .label,#mermaid-svg-kLjm6KYquqkW27fd .node .label,#mermaid-svg-kLjm6KYquqkW27fd .image-shape .label,#mermaid-svg-kLjm6KYquqkW27fd .icon-shape .label{text-align:center;}#mermaid-svg-kLjm6KYquqkW27fd .node.clickable{cursor:pointer;}#mermaid-svg-kLjm6KYquqkW27fd .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-kLjm6KYquqkW27fd .arrowheadPath{fill:#333333;}#mermaid-svg-kLjm6KYquqkW27fd .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-kLjm6KYquqkW27fd .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-kLjm6KYquqkW27fd .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-kLjm6KYquqkW27fd .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-kLjm6KYquqkW27fd .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-kLjm6KYquqkW27fd .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-kLjm6KYquqkW27fd .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-kLjm6KYquqkW27fd .cluster text{fill:#333;}#mermaid-svg-kLjm6KYquqkW27fd .cluster span{color:#333;}#mermaid-svg-kLjm6KYquqkW27fd div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-kLjm6KYquqkW27fd .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-kLjm6KYquqkW27fd rect.text{fill:none;stroke-width:0;}#mermaid-svg-kLjm6KYquqkW27fd .icon-shape,#mermaid-svg-kLjm6KYquqkW27fd .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-kLjm6KYquqkW27fd .icon-shape p,#mermaid-svg-kLjm6KYquqkW27fd .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-kLjm6KYquqkW27fd .icon-shape .label rect,#mermaid-svg-kLjm6KYquqkW27fd .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-kLjm6KYquqkW27fd .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-kLjm6KYquqkW27fd .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-kLjm6KYquqkW27fd :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 否
是
二阶误差分析时
准备伪距观测和卫星坐标及改正
设置接收机位置和钟差初值
计算几何距离与视线单位向量
计算观测减计算 O-C 残差
计算观测雅可比并构建设计矩阵 A
加权最小二乘求状态改正数
更新接收机位置与钟差
位置及钟差改正满足收敛条件?
输出估计参数和后验残差
计算距离 Hessian 和二阶项
| 常见混淆 | 正确理解 |
|---|---|
| 梯度、雅可比、Hessian 都叫"偏导矩阵" | 梯度是标量函数一阶导数列向量;雅可比组织一阶导数;Hessian 组织标量函数二阶导数 |
| 设计矩阵就是 Hessian | 设计矩阵 A\boldsymbol AA 是观测函数的雅可比;ATWA\boldsymbol A^T\boldsymbol W\boldsymbol AATWA 是目标函数的近似 Hessian |
| 一阶展开必须用 Hessian | 不需要;一阶只需要函数值和雅可比,Hessian 用于二阶项 |
| 观测残差雅可比与计算观测雅可比符号相同 | 若残差定义为 O−C,则 Jv=−Jh\boldsymbol J_v=-\boldsymbol J_hJv=−Jh |
| 接收机向卫星移动,距离偏导应为正 | 若视线定义为"接收机 →\to→ 卫星",几何距离偏导为 −eT-\boldsymbol e^T−eT |
| 四颗卫星一定能准确定位 | 至少四条独立观测且设计矩阵满秩;定位精度还受几何、噪声和模型误差制约 |
| 一阶误差与二阶修正项相等 | 二阶修正项仅是一阶截断误差的主导近似,二者并非严格相等 |
| H\boldsymbol HH 一定是 Hessian | GNSS、EKF 文献常用 H\boldsymbol HH 表示观测雅可比;须以定义为准 |
三条关系串起全部内容:
ρ(r)⏟非线性距离=∥s−r∥,Δρ⏟一阶近似≈Jρ⏟−eTΔr,ℓ⏟O-C≈A⏟观测雅可比Δx. \underbrace{\rho(\boldsymbol r)}{\text{非线性距离}} =\|\boldsymbol s-\boldsymbol r\|, \qquad \underbrace{\Delta\rho}{\text{一阶近似}} \approx\underbrace{\boldsymbol J_\rho}{-\boldsymbol e^T}\Delta\boldsymbol r, \qquad \underbrace{\boldsymbol\ell}{\text{O-C}} \approx\underbrace{\boldsymbol A}_{\text{观测雅可比}}\Delta\boldsymbol x. 非线性距离 ρ(r)=∥s−r∥,一阶近似 Δρ≈−eT JρΔr,O-C ℓ≈观测雅可比 AΔx.
GNSS 常规迭代定位主要依靠一阶泰勒展开及Jacobian矩阵 ;Hessian 帮助分析二阶曲率 ,同时也出现在对最小二乘目标函数进行二阶优化的推导中。