IGRF-13 数学细节与公式说明

本文件整理 IGRF-13 C++ 实现中的关键数学公式与算法细节,确保与官方 Fortran igrf13syn 一致。

1. 球谐展开与磁势函数

地磁标量势函数:

V ( r , θ , ϕ , t ) = a ∑ n = 1 N ∑ m = 0 n ( a r ) n + 1 g n m ( t ) cos ⁡ ( m ϕ ) + h n m ( t ) sin ⁡ ( m ϕ ) P ˉ n m ( cos ⁡ θ ) V(r,\theta,\phi,t) = a \sum_{n=1}^{N} \sum_{m=0}^{n} \left(\frac{a}{r}\right)^{n+1} \leftg_n\^m(t)\\cos(m\\phi) + h_n\^m(t)\\sin(m\\phi)\\right \bar{P}_n^m(\cos\theta) V(r,θ,ϕ,t)=an=1∑Nm=0∑n(ra)n+1gnm(t)cos(mϕ)+hnm(t)sin(mϕ)Pˉnm(cosθ)

  • a = 6371.2   k m a = 6371.2\,\mathrm{km} a=6371.2km 为 IGRF 参考半径
  • ( r , θ , ϕ ) (r,\theta,\phi) (r,θ,ϕ) 为地心球坐标( θ \theta θ 为余纬)
  • g n m , h n m g_n^m, h_n^m gnm,hnm 为高斯系数
  • P ˉ n m \bar{P}_n^m Pˉnm 为 Schmidt 半归一化勒让德函数

2. 磁场分量公式

磁场由势函数梯度给出:

B r = − ∂ V ∂ r B_r = -\frac{\partial V}{\partial r} Br=−∂r∂V

B θ = − 1 r ∂ V ∂ θ B_\theta = -\frac{1}{r}\frac{\partial V}{\partial \theta} Bθ=−r1∂θ∂V

B ϕ = − 1 r sin ⁡ θ ∂ V ∂ ϕ B_\phi = -\frac{1}{r\sin\theta}\frac{\partial V}{\partial \phi} Bϕ=−rsinθ1∂ϕ∂V

在实现中,合成结果直接在 NED(北-东-地)坐标系输出,等价于 Fortran igrf13syn 的 x , y , z x,y,z x,y,z 输出。

3. Schmidt 半归一化勒让德函数

采用 Fortran 参考递推(对应 p(k) / q(k)):

对角项( m = n m=n m=n):

P ˉ n n = sin ⁡ θ 2 n + 1 2 n    P ˉ n − 1 n − 1 \bar{P}n^n = \sin\theta \sqrt{\frac{2n+1}{2n}}\; \bar{P}{n-1}^{n-1} Pˉnn=sinθ2n2n+1 Pˉn−1n−1

一般项( m < n m<n m<n):

P ˉ n m = ( 2 n − 1 ) cos ⁡ θ    P ˉ n − 1 m − ( n − 1 ) 2 − m 2    P ˉ n − 2 m n 2 − m 2 \bar{P}n^m = \frac{(2n-1)\cos\theta\;\bar{P}{n-1}^m -\sqrt{(n-1)^2-m^2}\;\bar{P}_{n-2}^m} {\sqrt{n^2-m^2}} Pˉnm=n2−m2 (2n−1)cosθPˉn−1m−(n−1)2−m2 Pˉn−2m

Fortran 使用等效的 p ( k ) , q ( k ) p(k), q(k) p(k),q(k) 递推形式:

p ( k ) = u cos ⁡ θ   p ( i ) − t   p ( j ) p(k) = u\cos\theta\,p(i) - t\,p(j) p(k)=ucosθp(i)−tp(j)

q ( k ) = u ( cos ⁡ θ   q ( i ) − sin ⁡ θ   p ( i ) ) − t   q ( j ) q(k) = u(\cos\theta\,q(i) - \sin\theta\,p(i)) - t\,q(j) q(k)=u(cosθq(i)−sinθp(i))−tq(j)

其中 u , t u,t u,t 由 n , m n,m n,m 决定,索引 i , j i,j i,j 由三角形展开规则给出。

4. 球坐标 ↔ 笛卡尔坐标转换

球坐标到 ECEF:

x = r sin ⁡ θ cos ⁡ ϕ , y = r sin ⁡ θ sin ⁡ ϕ , z = r cos ⁡ θ x = r \sin\theta \cos\phi,\quad y = r \sin\theta \sin\phi,\quad z = r \cos\theta x=rsinθcosϕ,y=rsinθsinϕ,z=rcosθ

ECEF 到球坐标:

r = x 2 + y 2 + z 2 , θ = arctan ⁡ 2 ( x 2 + y 2 , z ) , ϕ = arctan ⁡ 2 ( y , x ) r = \sqrt{x^2+y^2+z^2},\quad \theta = \arctan2(\sqrt{x^2+y^2}, z),\quad \phi = \arctan2(y, x) r=x2+y2+z2 ,θ=arctan2(x2+y2 ,z),ϕ=arctan2(y,x)

NED 坐标(北-东-地)与 ECEF 之间的变换矩阵:

B N B E B D = − sin ⁡ φ cos ⁡ λ − sin ⁡ φ sin ⁡ λ cos ⁡ φ − sin ⁡ λ cos ⁡ λ 0 − cos ⁡ φ cos ⁡ λ − cos ⁡ φ sin ⁡ λ − sin ⁡ φ B x B y B z \begin{bmatrix}B_N\\B_E\\B_D\end{bmatrix} = \begin{bmatrix} -\sin\varphi\cos\lambda & -\sin\varphi\sin\lambda & \cos\varphi \\ -\sin\lambda & \cos\lambda & 0 \\ -\cos\varphi\cos\lambda & -\cos\varphi\sin\lambda & -\sin\varphi \end{bmatrix} \begin{bmatrix}B_x\\B_y\\B_z\end{bmatrix} BNBEBD = −sinφcosλ−sinλ−cosφcosλ−sinφsinλcosλ−cosφsinλcosφ0−sinφ BxByBz

其中 φ \varphi φ 为大地纬度, λ \lambda λ 为经度。

5. 磁场合成中 ( a / r ) n + 2 (a/r)^{n+2} (a/r)n+2 系数

由 B r = − ∂ V / ∂ r B_r = -\partial V/\partial r Br=−∂V/∂r 推导得到:

( a r ) n + 2 \left(\frac{a}{r}\right)^{n+2} (ra)n+2

在实现中通过递推计算:

ratio = a r , rr = ratio 2 , rr ← rr ⋅ ratio \text{ratio} = \frac{a}{r},\quad \text{rr} = \text{ratio}^2,\quad \text{rr} \leftarrow \text{rr} \cdot \text{ratio} ratio=ra,rr=ratio2,rr←rr⋅ratio

保证每阶 n n n 的幂次与 Fortran 一致。

6. 大地坐标 → 地心坐标(WGS84)

Fortran 参考公式:

a 2 = 40680631.6 , b 2 = 40408296.0 a^2 = 40680631.6,\quad b^2 = 40408296.0 a2=40680631.6,b2=40408296.0

ρ = a 2 sin ⁡ 2 θ + b 2 cos ⁡ 2 θ \rho = \sqrt{a^2\sin^2\theta + b^2\cos^2\theta} ρ=a2sin2θ+b2cos2θ

r = h ( h + 2 ρ ) + a 2 ( a 2 sin ⁡ 2 θ ) + b 2 ( b 2 cos ⁡ 2 θ ) a 2 sin ⁡ 2 θ + b 2 cos ⁡ 2 θ r = \sqrt{h(h + 2\rho) + \frac{a^2(a^2\sin^2\theta) + b^2(b^2\cos^2\theta)}{a^2\sin^2\theta + b^2\cos^2\theta}} r=h(h+2ρ)+a2sin2θ+b2cos2θa2(a2sin2θ)+b2(b2cos2θ)

并计算旋转参数 c d , s d cd, sd cd,sd 用于将地心结果转换为大地方向的 NED 分量。

7. 公式与实现对应说明

  • computeNedFieldIgrf():实现 igrf13syn 的递推合成
  • computeEcefField():NED 合成后再旋转回 ECEF
  • computeNedFieldGeodetic():直接输出 NED

所有公式均与 Fortran 版本逐项对齐,确保与官方实现一致。

相关推荐
Black蜡笔小新26 分钟前
制造业AI质检工作站/企业AI算力工作站DLTM助力制造业质检智能化升级
人工智能·深度学习·机器学习
大C聊AI2 小时前
通用大模型纷纷收费,垂直场景AI工具的价值正在被重估
大数据·人工智能·机器学习·办公效率·ai 工具·智标领航·ai 辅助办公
苏州邦恩精密3 小时前
2026江苏GOM三维扫描仪定制厂家找哪家?企业数字化转型视角
人工智能·机器学习·3d·自动化·制造
王小王-1234 小时前
基于机器学习算法的恶意软件行为分析与检测系统设计与实现
机器学习·pyqt5·检测系统·恶意软件行为检测
Godspeed Zhao4 小时前
Level 4自动驾驶系统设计0——功能与场景0
人工智能·机器学习·自动驾驶
CCC:CarCrazeCurator4 小时前
大模型核心注意力机制技术深度报告:MHA、MQA、GQA 与 MLA 技术原理、性能对比与场景适配
人工智能·机器学习·自动驾驶·transformer
炎武丶航4 小时前
LeNet-5深度学习详解:从手写数字识别到代码实战
人工智能·python·深度学习·机器学习·ai·cnn·lenet
阿部多瑞 ABU5 小时前
数据循环悖论:AI检测模型的技术局限与生态灾难
大数据·人工智能·安全·机器学习·ai·自然语言处理
湘美书院--湘美谈教育5 小时前
湘美谈教育AI赋能系列经验集锦:学好唐诗宋词的点滴心得体会
大数据·人工智能·深度学习·神经网络·机器学习
装不满的克莱因瓶6 小时前
掌握生成对抗网络(GAN)的优化目标与评估指标——从博弈函数到生成质量衡量体系
人工智能·python·深度学习·算法·机器学习