说明:本文推导 Basilisk 中居中偶极子磁场模块
MagneticFieldCenteredDipole如何利用 IGRF 的三个一阶高斯系数 g10,g11,h11g_1^0, g_1^1, h_1^1g10,g11,h11 以及行星半径 RRR 计算航天器位置处的磁场矢量。
0. 磁偶极子物理基础
在深入推导数学公式之前,我们需要理解磁偶极子的物理本质和在地球物理学中的应用。这一章将从基本概念出发,建立对磁偶极子场的直观理解。
0.1 磁偶极子的基本定义
0.1.1 什么是磁偶极子
磁偶极子(magnetic dipole)是电磁学中的基本概念,表示一个具有两个磁极(南极和北极)的磁源。在数学上,它可以看作一个极小的闭合电流环或一对无限接近的磁单极子对。
形象地说,一个小磁铁(如指南针)、一个小型线圈通电后都可以近似为磁偶极子。它的特征是:
- 磁场线从北极出发,环绕后进入南极,形成闭合回路;
- 在远处观察(距离远大于偶极子尺寸),磁场分布由一个矢量——磁偶极矩 m\mathbf mm——完全描述;
- 磁偶极子没有孤立的磁荷(磁单极子至今未被观测到),磁场线总是闭合的。
0.1.2 与电偶极子的比较
| 特性 | 电偶极子 | 磁偶极子 |
|---|---|---|
| 构成 | 正负电荷对 +q+q+q 和 −q-q−q,间距 d\mathbf dd | 一对磁极(N极和S极)或小电流环 |
| 偶极矩定义 | p=qd\mathbf p = q \mathbf dp=qd | m=IA\mathbf m = I \mathbf Am=IA(电流 III × 面积矢量 A\mathbf AA) |
| 场的势 | 电势 ϕ=14πϵ0p⋅rr3\phi = \frac{1}{4\pi\epsilon_0} \frac{\mathbf p \cdot \mathbf r}{r^3}ϕ=4πϵ01r3p⋅r | 磁标势 ϕm=μ04πm⋅rr3\phi_m = \frac{\mu_0}{4\pi} \frac{\mathbf m \cdot \mathbf r}{r^3}ϕm=4πμ0r3m⋅r |
| 场的形式 | E=−∇ϕ\mathbf E = -\nabla \phiE=−∇ϕ | B=−∇ϕm\mathbf B = -\nabla \phi_mB=−∇ϕm(静磁近似) |
| 衰减规律 | E∝1/r3E \propto 1/r^3E∝1/r3 | B∝1/r3B \propto 1/r^3B∝1/r3 |
| 场线 | 从正电荷发散到负电荷(开放) | 闭合环绕(无磁荷) |
相似之处:
- 数学形式完全类比:都是 1/r31/r^31/r3 衰减的矢量场;
- 都有"3(r^⋅m)r^−m3(\hat{\mathbf r} \cdot \mathbf m)\hat{\mathbf r} - \mathbf m3(r^⋅m)r^−m"的标准形式;
- 都可以通过标量势 ϕ\phiϕ 来描述(静场情况)。
区别:
- 物理源不同:电偶极子来自电荷对,磁偶极子来自电流或内禀磁矩(如电子自旋);
- 场线拓扑不同:电场线开放,磁场线闭合(反映了"没有磁单极子"这一基本事实);
- 在介质中的行为:电偶极子受电场力矩,磁偶极子受磁场力矩。
0.2 地球磁场的磁偶极子来源
0.2.1 地磁场的观测特征
地球磁场在地表及近地空间具有以下特征:
- 主磁场强度:赤道约 30,000 nT30{,}000\,\text{nT}30,000nT,极区约 60,000 nT60{,}000\,\text{nT}60,000nT;
- 倾角(inclination):在赤道为 0°0°0°(水平),在极区为 ±90°\pm 90°±90°(垂直);
- 偏角(declination):磁北极与地理北极不重合,且随位置变化;
- 长期变化(secular variation):磁极位置每年移动数十公里,场强缓慢变化。
这些特征与一个倾斜的磁偶极子高度吻合:约 90% 的地表磁场可以用一个居中偶极子解释。
0.2.2 地核发电机理论(简要)
地球磁场的物理来源是地核发电机(geodynamo)过程:
-
地球内部结构:
- 外核(约 2900–5100 km 深):液态铁镍合金,温度约 4000–6000 K;
- 内核:固态,但外核流体可以自由对流。
-
发电机机制:
- 热对流 + 地球自转驱动外核中的导电流体运动;
- 流体运动切割已存在的磁场线,通过电磁感应产生电流(法拉第定律);
- 这些电流反过来增强磁场——形成自激发电机(self-sustaining dynamo)。
-
为什么是偶极子主导:
- 地核的球对称几何和科里奥利力(地球自转效应)倾向于产生轴对称的磁场模式;
- 在球谐展开中,一阶项(偶极子)能量最低、最稳定,因此占主导;
- 高阶项(四极子、八极子等)也存在,但能量较小(~10%)。
-
偶极子的倾斜:
- 理想情况下偶极轴应与自转轴重合,但实际地核流体运动的复杂性导致偶极轴相对地理轴倾斜约 11°;
- 这个倾角对应于 IGRF 系数中 g11g_1^1g11 和 h11h_1^1h11 的非零值。
关键结论:地球磁场本质上是一个由地核流体运动产生的、以倾斜偶极子为主的复杂磁场,IGRF/WMM 用球谐展开来精确描述,而一阶项恰好对应这个主导的偶极子分量。
0.3 磁偶极矩矢量的数学描述
0.3.1 磁偶极矩的定义
对于一个小型闭合电流环(面积 AAA,电流 III),其磁偶极矩定义为:
m=IA \mathbf m = I \mathbf A m=IA
其中 A\mathbf AA 是面积矢量,方向由右手定则确定(四指沿电流方向,拇指指向 A\mathbf AA)。
- 单位:SI 制中为 A⋅m2\text{A}\cdot\text{m}^2A⋅m2(安培·米²)或等效的 J/T\text{J/T}J/T(焦耳/特斯拉);
- 在地磁学中,常用 nT\text{nT}nT 表示磁场,因此偶极矩的"有效单位"是 T\text{T}T(结合参考半径归一化)。
0.3.2 物理意义
- ∣m∣|\mathbf m|∣m∣:偶极子的强度,越大磁场越强;
- 方向(m)\text{方向}(\mathbf m)方向(m):从南极指向北极(磁场线在外部从北极出发);
- m⋅r^\mathbf m \cdot \hat{\mathbf r}m⋅r^:偶极矩在径向方向的投影,决定该方向上的磁场贡献。
0.3.3 在 IGRF/Basilisk 中的表示
在地球物理学中,偶极矩通过球谐系数表示。对于 IGRF 一阶项:
mP=[g11h11g10](在行星固定坐标系 P 中) \mathbf m_P = \begin{bmatrix} g_1^1 \\ h_1^1 \\ g_1^0 \end{bmatrix} \quad \text{(在行星固定坐标系 } \mathcal P \text{ 中)} mP=g11h11g10(在行星固定坐标系 P 中)
- g10g_1^0g10:沿自转轴(zzz 轴)的分量;
- g11,h11g_1^1, h_1^1g11,h11:赤道面内(x,yx, yx,y 方向)的分量,体现偶极轴的倾斜。
对于地球(IGRF 2020):
mEarth=[−23185817−30926] nT=[−2.3185.817−30.926]×10−6 T \mathbf m_\text{Earth} = \begin{bmatrix} -2318 \\ 5817 \\ -30926 \end{bmatrix} \,\text{nT} = \begin{bmatrix} -2.318 \\ 5.817 \\ -30.926 \end{bmatrix} \times 10^{-6}\,\text{T} mEarth=−23185817−30926nT=−2.3185.817−30.926×10−6T
- 负号:g10<0g_1^0 < 0g10<0 表示磁偶极子的北极在地理南半球(实际上磁南极在地理北极附近,这是历史命名习惯);
- 归一化:这些系数已经包含了 μ0/(4π)\mu_0/(4\pi)μ0/(4π) 和参考半径 RRR 的归一化,可以直接用于计算磁场。
0.4 磁偶极子场的空间分布特征
0.4.1 磁场线的形状
磁偶极子的磁场线具有标志性的"苹果形"或"葫芦形"分布:
北极 (N)
↑
╱ | ╲
╱ | ╲ ← 磁场线环绕
| | |
---+----+----+--- ← 赤道面
| | |
╲ | ╱
╲ | ╱
↓
南极 (S)
- 极区:磁场线近乎垂直,从北极发散,向南极汇聚;
- 赤道:磁场线近乎水平,环绕赤道;
- 闭合性:所有磁场线都是闭合的(从北极出发,绕到南极,再通过偶极子内部回到北极)。
0.4.2 强度的 1/r31/r^31/r3 衰减规律
磁偶极子场的强度随距离 rrr 的变化为:
B(r)∝1r3 B(r) \propto \frac{1}{r^3} B(r)∝r31
这比单极子场(如点电荷产生的电场 E∝1/r2E \propto 1/r^2E∝1/r2)衰减更快。
物理原因:
- 单极子是"点源",场强随球面积(∝r2\propto r^2∝r2)稀释,故 ∝1/r2\propto 1/r^2∝1/r2;
- 偶极子是"一对反向的点源",在远处它们的贡献相互抵消一部分,净场强多衰减一个 1/r1/r1/r 因子,故 ∝1/r3\propto 1/r^3∝1/r3。
实际意义:
- 在地球表面(r≈Rr \approx Rr≈R)磁场约 30,000 nT30{,}000\,\text{nT}30,000nT;
- 在 LEO 轨道(r≈1.1Rr \approx 1.1Rr≈1.1R)已衰减到约 20,000 nT20{,}000\,\text{nT}20,000nT;
- 在 GEO 轨道(r≈6.6Rr \approx 6.6Rr≈6.6R)只剩约 100 nT100\,\text{nT}100nT。
0.4.3 方向性特征
磁偶极子场的方向取决于观测点相对偶极轴的位置:
B=(Rr)3[3(r^⋅m)r^−m] \mathbf B = \left( \frac{R}{r} \right)^3 \left[ 3 (\hat{\mathbf r} \cdot \mathbf m) \hat{\mathbf r} - \mathbf m \right] B=(rR)3[3(r^⋅m)r^−m]
-
在偶极轴上(r^∥m\hat{\mathbf r} \parallel \mathbf mr^∥m):
- r^⋅m=∣m∣\hat{\mathbf r} \cdot \mathbf m = |\mathbf m|r^⋅m=∣m∣
- B=R3r3(3∣m∣r^−m)=R3r3⋅2∣m∣r^\mathbf B = \frac{R^3}{r^3} (3|\mathbf m| \hat{\mathbf r} - \mathbf m) = \frac{R^3}{r^3} \cdot 2|\mathbf m| \hat{\mathbf r}B=r3R3(3∣m∣r^−m)=r3R3⋅2∣m∣r^
- 磁场沿径向,指向外(北极)或内(南极),强度为偶极矩的 2 倍。
-
在赤道面上(r^⊥m\hat{\mathbf r} \perp \mathbf mr^⊥m):
- r^⋅m=0\hat{\mathbf r} \cdot \mathbf m = 0r^⋅m=0
- B=−R3r3m\mathbf B = -\frac{R^3}{r^3} \mathbf mB=−r3R3m
- 磁场反向于偶极矩,沿纬向环绕,强度为偶极矩的 1 倍。
-
一般位置:磁场既有径向分量,也有切向分量,总体指向"从北极到南极"的磁场线方向。
磁倾角(inclination III):
tanI=2tanλ \tan I = 2 \tan \lambda tanI=2tanλ
其中 λ\lambdaλ 是地理纬度。这是偶极子场的经典关系式(对于倾斜偶极需修正)。
0.5 IGRF 一阶球谐系数与偶极子的对应
0.5.1 为什么一阶项对应偶极子
在球谐展开中:
V(r,θ,ϕ)=a∑n=1∞(ar)n+1∑m=0n(gnmcosmϕ+hnmsinmϕ)Pnm(cosθ) V(r, \theta, \phi) = a \sum_{n=1}^{\infty} \left( \frac{a}{r} \right)^{n+1} \sum_{m=0}^{n} \bigl( g_n^m \cos m\phi + h_n^m \sin m\phi \bigr) P_n^m(\cos\theta) V(r,θ,ϕ)=an=1∑∞(ra)n+1m=0∑n(gnmcosmϕ+hnmsinmϕ)Pnm(cosθ)
- n=1n=1n=1 项对应 偶极子(两极性);
- n=2n=2n=2 项对应 四极子(四极性);
- n=3n=3n=3 项对应 八极子,以此类推。
数学上:
- n=1n=1n=1 时,勒让德函数 P10(cosθ)=cosθP_1^0(\cos\theta) = \cos\thetaP10(cosθ)=cosθ,P11(cosθ)=sinθP_1^1(\cos\theta) = \sin\thetaP11(cosθ)=sinθ;
- 这恰好对应于偶极子势 ϕm∝(m⋅r)/r3\phi_m \propto (\mathbf m \cdot \mathbf r)/r^3ϕm∝(m⋅r)/r3 在球坐标下的展开。
物理上:
- 偶极子是最简单的"有方向性"的磁源(比单极子高一级);
- 地核发电机的球对称性自然产生以偶极为主的场结构。
0.5.2 为什么地球主磁场可以用一阶近似
能量占比:
-
IGRF 完整模型展开到 n=13n=13n=13,但各阶能量贡献为:
- n=1n=1n=1(偶极):~90%
- n=2n=2n=2(四极):~5%
- n=3n=3n=3(八极):~2%
- n≥4n \geq 4n≥4:~3%
-
因此,只用 g10,g11,h11g_1^0, g_1^1, h_1^1g10,g11,h11 三个系数,就能在全球尺度上重现约 90% 的地磁场特征。
适用范围:
- 大尺度、远场:航天器轨道(LEO/MEO/GEO)、全球磁场分布;
- 粗略导航:罗经、磁强计定姿(精度要求不高时)。
不适用:
- 近地表局部磁异常(地壳磁化、矿藏);
- 精密测量(地磁勘探、科学卫星);
- 极区细节(磁极附近高阶项影响增大)。
0.6 磁偶极子近似的局限性
0.6.1 无法描述的地磁场特征
-
磁异常(magnetic anomalies):
- 定义:局部磁场偏离偶极子预测的区域;
- 成因:地壳中磁性矿物(如磁铁矿)、火山岩浆、断层构造;
- 特征:空间尺度小(几十到几百公里),幅度可达数百 nT;
- 例子:库尔斯克磁异常(俄罗斯)、南大西洋异常区(South Atlantic Anomaly, SAA)。
- IGRF 处理:需要 n≥2n \geq 2n≥2 的高阶项,或用局部模型(如 EMM)。
-
高阶多极场(higher-order multipoles):
- 四极子(n=2n=2n=2):在极区和赤道之间的过渡带影响显著;
- 八极子(n=3n=3n=3)及以上:刻画更精细的空间结构;
- 偶极近似误差:在地表可达 ±3000 nT\pm 3000\,\text{nT}±3000nT(约 10%)。
-
时间变化(secular variation):
- 偶极子模型假设磁矩 m\mathbf mm 恒定,但实际上地核流动导致磁场每年变化几十 nT;
- IGRF 提供 g˙nm,h˙nm\dot{g}_n^m, \dot{h}_n^mg˙nm,h˙nm(年变化率),但偶极近似无法捕捉这种复杂的时变。
-
非轴对称结构:
- 真实地磁场不完全轴对称(偶极轴倾斜只是一阶修正);
- 经度方向的变化(如磁偏角的复杂分布)需要 m≠0m \neq 0m=0 的高阶项。
0.6.2 在 Basilisk 中的实际影响
适用场景(MagneticFieldCenteredDipole 足够):
- LEO 卫星姿态控制:磁力矩器(magnetorquer)定姿,只需知道磁场方向和量级,10% 误差可接受;
- 初步任务设计:轨道仿真、功率预算、磁环境评估;
- 非地球行星:水星、木星等,只有偶极子数据时。
需要完整模型场景(应使用 MagneticFieldWMM):
- 精密磁测:磁强计校准、科学任务(如 Swarm 卫星);
- 近地表应用:无人机导航、地磁勘探;
- SAA 区域:辐射防护、电子设备可靠性分析。
Basilisk 的设计哲学:
- 提供两套工具:
MagneticFieldCenteredDipole:简单、快速、适合多行星;MagneticFieldWMM:高精度、地球专用、读取完整WMM.COF系数文件。
- 用户根据任务需求选择。
0.7 本章小结
本章从物理基础出发,建立了对磁偶极子的全面理解:
- 概念:磁偶极子是两极磁源,与电偶极子类比,但磁场线闭合;
- 来源:地球磁场主要由地核发电机产生,以偶极子为主(~90% 能量);
- 数学:用磁矩矢量 m\mathbf mm 描述,在 IGRF 中对应 (g11,h11,g10)(g_1^1, h_1^1, g_1^0)(g11,h11,g10);
- 空间分布:1/r31/r^31/r3 衰减,极区径向、赤道切向;
- IGRF 一阶近似:三个系数即可重现全球主磁场;
- 局限性:无法描述局部异常、高阶结构、时变细节。
在接下来的章节中,我们将基于这些物理图像,详细推导 Basilisk 中居中偶极子磁场模型的数学实现。
1. 坐标系与符号约定
1.1 坐标系
- 行星惯性坐标系:N\mathcal NN(在 Basilisk 中为 J2000 惯性系),向量下标 _N\_N_N。
- 行星自转固定坐标系:P\mathcal PP(planet-fixed frame,在 Basilisk 中记为 P frame),向量下标 _P\_P_P。
- p^3\hat{\mathbf p}_3p^3:自转轴方向(类似地球的北极方向)
- p^1\hat{\mathbf p}_1p^1:赤道面内,指向本初子午面
- p^2\hat{\mathbf p}_2p^2:补成右手系
在 Basilisk 中,行星状态消息 [SpicePlanetStateMsgPayload](file:///d:/small_paper/basilisk/src/architecture/msgPayloadDefC/SpicePlanetStateMsgPayload.h) 含有方向余弦矩阵
CP/N=planetState.J20002Pfix
C_{P/N} = \texttt{planetState.J20002Pfix}
CP/N=planetState.J20002Pfix
它将向量从 N\mathcal NN 变换到 P\mathcal PP:
rB/P,P=CP/N rB/P,N
\mathbf r_{B/P,P} = C_{P/N} \, \mathbf r_{B/P,N}
rB/P,P=CP/NrB/P,N
1.2 位置向量与半径
- rB/N,N\mathbf r_{B/N,N}rB/N,N:航天器相对于行星质心在惯性系中的位置。
- rP/N,N\mathbf r_{P/N,N}rP/N,N:行星质心在惯性系中的位置(通常为零向量,若原点在行星中心)。
- 相对位置向量:
rB/P,N=rB/N,N−rP/N,N \mathbf r_{B/P,N} = \mathbf r_{B/N,N} - \mathbf r_{P/N,N} rB/P,N=rB/N,N−rP/N,N - 在 Basilisk 基类 [
MagneticFieldBase](file:///d:/small_paper/basilisk/src/simulation/environment/_GeneralModuleFiles/magneticFieldBase.cpp) 中:- 通过
updateRelativePos计算
rB/P,N→rB/P,P=CP/N rB/P,N \mathbf r_{B/P,N} \to \mathbf r_{B/P,P} = C_{P/N} \, \mathbf r_{B/P,N} rB/P,N→rB/P,P=CP/NrB/P,N - 轨道半径(标量)
r=∥rB/P∥ r = \lVert \mathbf r_{B/P} \rVert r=∥rB/P∥
在代码中记录为this->orbitRadius。
- 通过
1.3 IGRF 一阶高斯系数
在 IGRF 模型中,内源磁场的标量势在球坐标 (r,θ,ϕ)(r, \theta, \phi)(r,θ,ϕ) 下可写为
V(r,θ,ϕ)=a∑n=1N(ar)n+1∑m=0n(gnmcosmϕ+hnmsinmϕ)Pnm(cosθ)
V(r, \theta, \phi) = a \sum_{n=1}^{N} \left( \frac{a}{r} \right)^{n+1} \sum_{m=0}^{n} \bigl( g_n^m \cos m\phi + h_n^m \sin m\phi \bigr) P_n^m(\cos\theta)
V(r,θ,ϕ)=an=1∑N(ra)n+1m=0∑n(gnmcosmϕ+hnmsinmϕ)Pnm(cosθ)
其中:
- aaa:参考半径(地球通常取 a≈6371.2 kma \approx 6371.2\,\text{km}a≈6371.2km),在 Basilisk 中为
planetRadius。 - PnmP_n^mPnm:缔合勒让德函数。
- gnm,hnmg_n^m, h_n^mgnm,hnm:高斯球谐系数,单位 nT。
当只保留 一阶项(n = 1) 时:
V1(r,θ,ϕ)=a(ar)2[g10cosθ+g11sinθcosϕ+h11sinθsinϕ]
V_1(r, \theta, \phi) = a \left( \frac{a}{r} \right)^2 \left[ g_1^0 \cos\theta + g_1^1 \sin\theta\cos\phi + h_1^1 \sin\theta\sin\phi \right]
V1(r,θ,ϕ)=a(ra)2[g10cosθ+g11sinθcosϕ+h11sinθsinϕ]
这对应一个居中磁偶极子,其偶极矩与 g10,g11,h11g_1^0, g_1^1, h_1^1g10,g11,h11 线性相关。
在 Basilisk 中,这三个系数(已从 nT 转为 T)存储在 MagneticFieldCenteredDipole 内:
// magneticFieldCenteredDipole.h
// IGRF 一阶系数,单位 [T]
double g10; //!< IGRF coefficient g_1^0
double g11; //!< IGRF coefficient g_1^1
double h11; //!< IGRF coefficient h_1^1
对于地球,这些系数在 Python 辅助函数
[simSetPlanetEnvironment.centeredDipoleMagField](file:///d:/small_paper/basilisk/src/utilities/simSetPlanetEnvironment.py#L54-L60) 中设置:
# 2020 IGRF 模型参数(单位从 nT 转成 T)
magFieldModule.g10 = -30926.00/1e9 # T
magFieldModule.g11 = -2318.00/1e9 # T
magFieldModule.h11 = 5817.00/1e9 # T
magFieldModule.planetRadius = 6371.2*1000 # m
2. 从 IGRF 系数到偶极矩向量
2.1 一阶 IGRF 与偶极子标量势
对一阶项 n=1n=1n=1,标量势为
V1(r,θ,ϕ)=a31r2[g10cosθ+g11sinθcosϕ+h11sinθsinϕ]
V_1(r, \theta, \phi) = a^3 \frac{1}{r^2} \left[ g_1^0 \cos\theta + g_1^1 \sin\theta\cos\phi + h_1^1 \sin\theta\sin\phi \right]
V1(r,θ,ϕ)=a3r21[g10cosθ+g11sinθcosϕ+h11sinθsinϕ]
另一方面,理想磁偶极子在球坐标下的标量势可写为(以参考半径 aaa 归一化)
Vdip(r,θ,ϕ)=(ar)2M(cosαcosθ+sinαsinθcos(ϕ−ϕm))
V_\text{dip}(r, \theta, \phi)
= \left( \frac{a}{r} \right)^2 M
\bigl( \cos\alpha \cos\theta + \sin\alpha \sin\theta\cos(\phi-\phi_m) \bigr)
Vdip(r,θ,ϕ)=(ra)2M(cosαcosθ+sinαsinθcos(ϕ−ϕm))
其中:
- MMM:偶极矩大小(常数);
- α\alphaα:偶极倾角;
- ϕm\phi_mϕm:偶极在赤道面上的经度。
将两者对比,可以构造一个在行星固连坐标系 P\mathcal PP 中的等效偶极矩向量 m_P\mathbf m\_Pm_P:
mP=[mxmymz]∝[g11h11g10]
\mathbf m_P =
\begin{bmatrix}
m_x \\ m_y \\ m_z
\end{bmatrix}
\propto
\begin{bmatrix}
g_1^1 \\ h_1^1 \\ g_1^0
\end{bmatrix}
mP=mxmymz∝g11h11g10
差别只在于一个常数因子(单位和参考半径的处理)。Basilisk 将这些系数直接作为“偶极矩分量”的物理量使用,因此在代码中有:
// magneticFieldCenteredDipole.cpp
Eigen::Vector3d dipoleCoefficients; // first 3 IGRF coefficients
dipoleCoefficients << this->g11, this->h11, this->g10;
因此,在 Basilisk 中可以直接认为:
mP=[g11h11g10](单位 T)
\mathbf m_P =
\begin{bmatrix}
g_1^1 \\ h_1^1 \\ g_1^0
\end{bmatrix}
\quad\text{(单位 T)}
mP=g11h11g10(单位 T)
这里每个分量已经包含了“μ0/4π\mu_0/4\piμ0/4π”等物理常数以及从 nT 到 T 的单位转换。
3. 理想磁偶极子的磁场公式
3.1 磁偶极子场的矢量形式
在经典电磁学中,一个位于原点的磁偶极子 m\mathbf mm 所产生的磁感应强度(忽略环境介质)可写为:
B(r)=μ04π1r3(3(m⋅r^)r^−m)
\mathbf B(\mathbf r) = \frac{\mu_0}{4 \pi} \frac{1}{r^3}
\bigl(3(\mathbf m \cdot \hat{\mathbf r})\hat{\mathbf r} - \mathbf m\bigr)
B(r)=4πμ0r31(3(m⋅r^)r^−m)
其中:
- r\mathbf rr:场点位置;r=∥r∥r = \lVert \mathbf r\rVertr=∥r∥;
- r^=r/r\hat{\mathbf r} = \mathbf r / rr^=r/r:径向单位向量;
- m\mathbf mm:偶极矩向量。
IGRF/WMM 模型中,球谐系数已经在参考半径 aaa 处定义了磁标势,因此我们可以将常数和 μ0/4π\mu_0/4\piμ0/4π 吸收进 m\mathbf mm 的定义,得到更工程化的形式:
B(r)=(ar)3(3(r^⋅m)r^−m)
\mathbf B(\mathbf r) = \left( \frac{a}{r} \right)^3
\bigl(3(\hat{\mathbf r} \cdot \mathbf m)\hat{\mathbf r} - \mathbf m\bigr)
B(r)=(ra)3(3(r^⋅m)r^−m)
其中 m\mathbf mm 直接用 IGRF 系数构造(单位 T)。
3.2 Basilisk 采用的形式
Basilisk 里 [MagneticFieldCenteredDipole::evaluateMagneticFieldModel](file:///d:/small_paper/basilisk/src/simulation/environment/magneticFieldCenteredDipole/magneticFieldCenteredDipole.cpp) 的关键代码如下:
Eigen::Vector3d magField_P; // [T] magnetic field in planet-fixed frame
Eigen::Vector3d rHat_P; // [] normalized position vector in P frame
Eigen::Vector3d dipoleCoefficients; // [] first 3 IGRF coefficients
rHat_P = this->r_BP_P.normalized();
dipoleCoefficients << this->g11, this->h11, this->g10;
magField_P = pow(this->planetRadius/this->orbitRadius, 3)
* (3 * rHat_P * rHat_P.dot(dipoleCoefficients)
- dipoleCoefficients);
翻译成数学表达:
- P\mathcal PP 系下航天器位置单位向量:
r^P=rB/P,Pr,r=∥rB/P∥ \hat{\mathbf r}_P = \frac{\mathbf r_{B/P,P}}{r}, \quad r = \lVert\mathbf r_{B/P}\rVert r^P=rrB/P,P,r=∥rB/P∥ - 偶极矩向量:
mP=[g11h11g10] \mathbf m_P = \begin{bmatrix} g_1^1 \\ h_1^1 \\ g_1^0 \end{bmatrix} mP=g11h11g10 - 参考半径 R=planetRadiusR = \texttt{planetRadius}R=planetRadius:地球为 R=6371.2 kmR = 6371.2\,\text{km}R=6371.2km 对应的米值。
- 磁场(在行星固定系 P\mathcal PP 分量)为:
BP(rB/P)=(Rr)3[3(r^P⋅mP)r^P−mP] \boxed{\mathbf B_P(\mathbf r_{B/P}) = \left( \frac{R}{r} \right)^3 \Bigl[3\bigl(\hat{\mathbf r}_P \cdot \mathbf m_P\bigr)\hat{\mathbf r}_P - \mathbf m_P\Bigr]} BP(rB/P)=(rR)3[3(r^P⋅mP)r^P−mP]
��以看出这正是理想磁偶极子公式,只是将常数合并进了 mP\mathbf m_PmP,并使用 IGRF 提供的一阶系数来构造该偶极矩。
3.3 磁偶极子公式的详细数学推导
下面从电磁学基本原理出发,详细推导上述公式。
3.3.1 磁偶极子的磁标势
在静磁学中,当磁场源远离观测点时,可以用磁标势 ϕm\phi_mϕm 描述磁场(类比于静电学的电势)。对于一个位于原点、磁矩为 m\mathbf mm 的点磁偶极子,其在空间任意点 r\mathbf rr 处产生的磁标势为:
ϕm(r)=μ04πm⋅rr3 \phi_m(\mathbf r) = \frac{\mu_0}{4\pi} \frac{\mathbf m \cdot \mathbf r}{r^3} ϕm(r)=4πμ0r3m⋅r
物理意义:
- 磁标势 ϕm\phi_mϕm 类似于电势,表示磁场的势能密度。
- m⋅r=mrcosθ\mathbf m \cdot \mathbf r = m r \cos\thetam⋅r=mrcosθ(其中 θ\thetaθ 是 m\mathbf mm 与 r\mathbf rr 的夹角),体现了磁偶极子的方向性:沿着磁矩方向势最大,垂直方向势为零。
- 1/r31/r^31/r3 的衰减反映了偶极场比单极场(1/r21/r^21/r2)衰减更快。
为了与 IGRF/WMM 的工程表达一致,我们引入参考半径 RRR(行星半径),并将常数 μ0/(4π)\mu_0/(4\pi)μ0/(4π) 吸收进偶极矩 m\mathbf mm 的定义中,得到归一化形式:
ϕm(r)=R3r2m⋅rr \boxed{\phi_m(\mathbf r) = \frac{R^3}{r^2} \frac{\mathbf m \cdot \mathbf r}{r}} ϕm(r)=r2R3rm⋅r
改写为:
ϕm(r)=R3m⋅rr3 \phi_m(\mathbf r) = R^3 \frac{\mathbf m \cdot \mathbf r}{r^3} ϕm(r)=R3r3m⋅r
其中 m\mathbf mm 现在包含了所有物理常数,单位为 Tesla(在 Basilisk 中直接用 IGRF 系数构造)。
3.3.2 从磁标势到磁场:梯度运算
磁场强度 B\mathbf BB 是磁标势的负梯度:
B(r)=−∇ϕm(r) \mathbf B(\mathbf r) = -\nabla \phi_m(\mathbf r) B(r)=−∇ϕm(r)
代入上面的势函数:
B=−∇(R3m⋅rr3) \mathbf B = -\nabla \left( R^3 \frac{\mathbf m \cdot \mathbf r}{r^3} \right) B=−∇(R3r3m⋅r)
提取常数 R3R^3R3:
B=−R3∇(m⋅rr3) \mathbf B = -R^3 \nabla \left( \frac{\mathbf m \cdot \mathbf r}{r^3} \right) B=−R3∇(r3m⋅r)
3.3.3 计算梯度:分步推导
设 m\mathbf mm 是常向量(在行星固定系中固定),r\mathbf rr 是位置向量。我们需要计算:
∇(m⋅rr3) \nabla \left( \frac{\mathbf m \cdot \mathbf r}{r^3} \right) ∇(r3m⋅r)
使用乘积法则,设 u=m⋅ru = \mathbf m \cdot \mathbf ru=m⋅r,v=1/r3v = 1/r^3v=1/r3:
∇(uv)=u∇v+v∇u \nabla(uv) = u \nabla v + v \nabla u ∇(uv)=u∇v+v∇u
第一项:∇(m⋅r)\nabla(\mathbf m \cdot \mathbf r)∇(m⋅r)
因为 m\mathbf mm 是常向量:
∇(m⋅r)=m \nabla(\mathbf m \cdot \mathbf r) = \mathbf m ∇(m⋅r)=m
(这是因为 m⋅r=mxx+myy+mzz\mathbf m \cdot \mathbf r = m_x x + m_y y + m_z zm⋅r=mxx+myy+mzz,对 r\mathbf rr 求梯度得 m\mathbf mm)
第二项:∇(1/r3)\nabla(1/r^3)∇(1/r3)
利用链式法则,r=∣r∣=x2+y2+z2r = |\mathbf r| = \sqrt{x^2 + y^2 + z^2}r=∣r∣=x2+y2+z2:
∂r∂x=xr,∇r=rr=r^ \frac{\partial r}{\partial x} = \frac{x}{r}, \quad \nabla r = \frac{\mathbf r}{r} = \hat{\mathbf r} ∂x∂r=rx,∇r=rr=r^
因此:
∇(r−3)=−3r−4∇r=−3r−4r^=−3r^r4 \nabla(r^{-3}) = -3 r^{-4} \nabla r = -3 r^{-4} \hat{\mathbf r} = -\frac{3 \hat{\mathbf r}}{r^4} ∇(r−3)=−3r−4∇r=−3r−4r^=−r43r^
合并两项:
∇(m⋅rr3)=(m⋅r)∇(r−3)+r−3∇(m⋅r) \nabla \left( \frac{\mathbf m \cdot \mathbf r}{r^3} \right) = (\mathbf m \cdot \mathbf r) \nabla(r^{-3}) + r^{-3} \nabla(\mathbf m \cdot \mathbf r) ∇(r3m⋅r)=(m⋅r)∇(r−3)+r−3∇(m⋅r)
=(m⋅r)(−3r^r4)+1r3m = (\mathbf m \cdot \mathbf r) \left( -\frac{3 \hat{\mathbf r}}{r^4} \right) + \frac{1}{r^3} \mathbf m =(m⋅r)(−r43r^)+r31m
=−3(m⋅r)r^r4+mr3 = -\frac{3 (\mathbf m \cdot \mathbf r) \hat{\mathbf r}}{r^4} + \frac{\mathbf m}{r^3} =−r43(m⋅r)r^+r3m
3.3.4 代回磁场表达式
B=−R3[−3(m⋅r)r^r4+mr3] \mathbf B = -R^3 \left[ -\frac{3 (\mathbf m \cdot \mathbf r) \hat{\mathbf r}}{r^4} + \frac{\mathbf m}{r^3} \right] B=−R3[−r43(m⋅r)r^+r3m]
=R3[3(m⋅r)r^r4−mr3] = R^3 \left[ \frac{3 (\mathbf m \cdot \mathbf r) \hat{\mathbf r}}{r^4} - \frac{\mathbf m}{r^3} \right] =R3[r43(m⋅r)r^−r3m]
提取公因子 1/r31/r^31/r3:
B=R3r3[3m⋅rrr^−m] \mathbf B = \frac{R^3}{r^3} \left[ 3 \frac{\mathbf m \cdot \mathbf r}{r} \hat{\mathbf r} - \mathbf m \right] B=r3R3[3rm⋅rr^−m]
注意到 r=rr^\mathbf r = r \hat{\mathbf r}r=rr^,所以:
m⋅r=m⋅(rr^)=r(m⋅r^) \mathbf m \cdot \mathbf r = \mathbf m \cdot (r \hat{\mathbf r}) = r (\mathbf m \cdot \hat{\mathbf r}) m⋅r=m⋅(rr^)=r(m⋅r^)
代入:
B=R3r3[3r(m⋅r^)rr^−m] \mathbf B = \frac{R^3}{r^3} \left[ 3 \frac{r (\mathbf m \cdot \hat{\mathbf r})}{r} \hat{\mathbf r} - \mathbf m \right] B=r3R3[3rr(m⋅r^)r^−m]
=R3r3[3(m⋅r^)r^−m] = \frac{R^3}{r^3} \left[ 3 (\mathbf m \cdot \hat{\mathbf r}) \hat{\mathbf r} - \mathbf m \right] =r3R3[3(m⋅r^)r^−m]
即:
B(r)=(Rr)3[3(r^⋅m)r^−m] \boxed{\mathbf B(\mathbf r) = \left( \frac{R}{r} \right)^3 \left[ 3 (\hat{\mathbf r} \cdot \mathbf m) \hat{\mathbf r} - \mathbf m \right]} B(r)=(rR)3[3(r^⋅m)r^−m]
这正是 Basilisk 代码中使用的公式!在行星固定系 P\mathcal PP 中记为:
BP(rB/P)=(Rr)3[3(r^P⋅mP)r^P−mP] \mathbf B_P(\mathbf r_{B/P}) = \left( \frac{R}{r} \right)^3 \left[ 3 (\hat{\mathbf r}_P \cdot \mathbf m_P) \hat{\mathbf r}_P - \mathbf m_P \right] BP(rB/P)=(rR)3[3(r^P⋅mP)r^P−mP]
3.3.5 公式各项的物理含义
将公式拆解为两部分:
B=(Rr)3[3(r^⋅m)r^⏟径向分量−m⏟偶极矩方向] \mathbf B = \left( \frac{R}{r} \right)^3 \Bigl[ \underbrace{3 (\hat{\mathbf r} \cdot \mathbf m) \hat{\mathbf r}}_{\text{径向分量}} - \underbrace{\mathbf m}_{\text{偶极矩方向}} \Bigr] B=(rR)3[径向分量3(r^⋅m)r^−偶极矩方向m]
-
衰减因子 (R/r)3(R/r)^3(R/r)3:
- 磁偶极子场以 1/r31/r^31/r3 速度衰减(比库仑场的 1/r21/r^21/r2 快)。
- RRR 是参考半径,用于归一化,使得在 r=Rr=Rr=R 处系数为 1。
-
径向增强项 3(r^⋅m)r^3 (\hat{\mathbf r} \cdot \mathbf m) \hat{\mathbf r}3(r^⋅m)r^:
- (r^⋅m)(\hat{\mathbf r} \cdot \mathbf m)(r^⋅m) 是偶极矩在径向方向的投影,表征"沿着观测方向的偶极强度"。
- 乘以 3r^3 \hat{\mathbf r}3r^ 表示沿径向的磁场分量被放大 3 倍。
- 物理上:在偶极轴线上(r^∥m\hat{\mathbf r} \parallel \mathbf mr^∥m),磁场沿轴向最强。
-
偶极矩抵消项 −m-\mathbf m−m:
- 减去偶极矩本身,使得在垂直于偶极轴的赤道面上,径向分量为零,磁场沿切向。
- 当 r^⊥m\hat{\mathbf r} \perp \mathbf mr^⊥m 时,(r^⋅m)=0(\hat{\mathbf r} \cdot \mathbf m)=0(r^⋅m)=0,B=−(R/r)3m\mathbf B = -(R/r)^3 \mathbf mB=−(R/r)3m,即磁场反向于偶极矩,指向南极。
-
合成效果:
- 极区(r^∥m\hat{\mathbf r} \parallel \mathbf mr^∥m):B≈(R/r)3⋅2m\mathbf B \approx (R/r)^3 \cdot 2 \mathbf mB≈(R/r)3⋅2m,指向外(北极)或内(南极)。
- 赤道(r^⊥m\hat{\mathbf r} \perp \mathbf mr^⊥m):B≈−(R/r)3m\mathbf B \approx -(R/r)^3 \mathbf mB≈−(R/r)3m,沿纬向环绕。
3.3.6 与 Basilisk 代码的对应
回顾代码:
rHat_P = this->r_BP_P.normalized(); // 单位径向向量
dipoleCoefficients << this->g11, this->h11, this->g10; // 偶极矩
magField_P = pow(this->planetRadius/this->orbitRadius, 3)
* (3 * rHat_P * rHat_P.dot(dipoleCoefficients)
- dipoleCoefficients);
逐项对应:
pow(planetRadius/orbitRadius, 3)→ (R/r)3(R/r)^3(R/r)3rHat_P.dot(dipoleCoefficients)→ r^P⋅mP\hat{\mathbf r}_P \cdot \mathbf m_Pr^P⋅mP3 * rHat_P * (...)→ 3(r^P⋅mP)r^P3 (\hat{\mathbf r}_P \cdot \mathbf m_P) \hat{\mathbf r}_P3(r^P⋅mP)r^P- dipoleCoefficients→ −mP-\mathbf m_P−mP
完全一致!
3.3.7 小结
从电磁学基本原理出发,我们推导了居中磁偶极子的磁场公式:
B(r)=(Rr)3[3(r^⋅m)r^−m] \mathbf B(\mathbf r) = \left( \frac{R}{r} \right)^3 \left[ 3 (\hat{\mathbf r} \cdot \mathbf m) \hat{\mathbf r} - \mathbf m \right] B(r)=(rR)3[3(r^⋅m)r^−m]
关键步骤:
- 写出磁标势 ϕm=R3(m⋅r)/r3\phi_m = R^3 (\mathbf m \cdot \mathbf r)/r^3ϕm=R3(m⋅r)/r3。
- 通过 B=−∇ϕm\mathbf B = -\nabla \phi_mB=−∇ϕm 计算磁场。
- 利用乘积法则和链式法则展开梯度。
- 化简得到最终公式。
物理图像:
- 磁场由"径向增强"和"偶极抵消"两部分组成。
- 极区磁场指向外/内,赤道磁场沿纬向,典型的偶极场结构。
- Basilisk 通过 IGRF 一阶系数 (g11,h11,g10)(g_1^1, h_1^1, g_1^0)(g11,h11,g10) 构造 mP\mathbf m_PmP,实现了地球磁场的偶极近似。
4. 坐标系变换:从行星固定系到惯性系
Basilisk 中各种环境模块输出的磁场都采用惯性系 N\mathcal NN(或仿真统一 N 系)的分量。对于居中偶极子模型,转换步骤如下:
- 已有 P\mathcal PP 系磁场 BP\mathbf B_PBP,如上公式所示。
- 惯性系与行星固定系的方向余弦矩阵为 CP/NC_{P/N}CP/N,满足
vP=CP/N vN \mathbf v_P = C_{P/N} \, \mathbf v_N vP=CP/NvN - 反向变换为
vN=CN/P vP=CP/NT vP \mathbf v_N = C_{N/P} \, \mathbf v_P = C_{P/N}^T \, \mathbf v_P vN=CN/PvP=CP/NTvP
在代码中对应于:
// 将磁场从 P 系转换到 N 系,并写入消息
m33tMultV3(this->planetState.J20002Pfix, magField_P.data(), msg->magField_N);
m33tMultV3(A, x, y) 计算的是 y=ATxy = A^T xy=ATx,因此上述调用实现了:
BN=CP/NT BP
\mathbf B_N = C_{P/N}^T \, \mathbf B_P
BN=CP/NTBP
最终,磁场消息 MagneticFieldMsgPayload 中的 magField_N 即为惯性系下的磁场分量。
5. 从 IGRF 系数到磁场矢量的完整流程总结
综上,Basilisk 中居中偶极子磁场模型采用 IGRF 一阶系数的完整数学关系可按以下步骤梳理:
-
读取 IGRF 一阶系数与行星半径
- 以地球为例:
g10,g11,h11 (单位 T),R=Rplanet g_1^0, g_1^1, h_1^1 ~\text{(单位 T)},\quad R = R_\text{planet} g10,g11,h11 (单位 T),R=Rplanet - Python 中从 nT 转为 T,并设置
magFieldModule.g10/g11/h11以及planetRadius。
- 以地球为例:
-
构造偶极矩向量(行星固定系)
mP=[g11h11g10] \mathbf m_P = \begin{bmatrix} g_1^1 \\ h_1^1 \\ g_1^0 \end{bmatrix} mP=g11h11g10
-
计算航天器相对行星的位置与单位径向向量
- 惯性系相对位置:
rB/P,N=rB/N,N−rP/N,N \mathbf r_{B/P,N} = \mathbf r_{B/N,N} - \mathbf r_{P/N,N} rB/P,N=rB/N,N−rP/N,N - 变换到行星固定系:
rB/P,P=CP/N rB/P,N \mathbf r_{B/P,P} = C_{P/N} \, \mathbf r_{B/P,N} rB/P,P=CP/NrB/P,N - 计算半径与单位向量:
r=∥rB/P∥,r^P=rB/P,Pr r = \lVert \mathbf r_{B/P} \rVert,\quad \hat{\mathbf r}_P = \frac{\mathbf r_{B/P,P}}{r} r=∥rB/P∥,r^P=rrB/P,P
- 惯性系相对位置:
-
居中偶极子磁场(行星固定系)
BP(rB/P)=(Rr)3[3(r^P⋅mP)r^P−mP] \mathbf B_P(\mathbf r_{B/P}) = \left( \frac{R}{r} \right)^3 \Bigl[3\bigl(\hat{\mathbf r}_P \cdot \mathbf m_P\bigr)\hat{\mathbf r}_P - \mathbf m_P\Bigr] BP(rB/P)=(rR)3[3(r^P⋅mP)r^P−mP]
-
坐标变换到惯性系
BN=CP/NT BP \mathbf B_N = C_{P/N}^T \, \mathbf B_P BN=CP/NTBP
-
磁场强度与方向
- 磁场强度(标量):
∥B∥=Bx2+By2+Bz2 \lVert \mathbf B \rVert = \sqrt{B_x^2 + B_y^2 + B_z^2} ∥B∥=Bx2+By2+Bz2 - 磁场方向单位向量:
B^=B∥B∥ \hat{\mathbf B} = \frac{\mathbf B}{\lVert \mathbf B \rVert} B^=∥B∥B
- 磁场强度(标量):
其中 B\mathbf BB 可以取 BP\mathbf B_PBP(行星固定系)或 BN\mathbf B_NBN(惯性系),视具体使用需求而定。
6. 与 IGRF/WMM 完整模型的关系
- IGRF 与 WMM 完整模型都包含高阶 n>1n>1n>1 的球谐系数,会提供更精细的空间结构。
- Basilisk 中的
MagneticFieldCenteredDipole只使用 IGRF 的一阶项,构造一个居中偶极子模型:- 优点:实现简单、适合多行星(只需提供等效偶极的强度和方向)。
- 缺点:忽略高阶项导致精度有限,无法描述局地磁异常等。
- 若需要高精度地球磁场,Basilisk 提供了基于 WMM 系数文件
WMM.COF的MagneticFieldWMM模块,可以视为“完整球谐版”,而MagneticFieldCenteredDipole则是“IGRF 一阶近似版”。

160

被折叠的 条评论
为什么被折叠?



