コンテンツにスキップ

TiltedDipole

このコンテンツはまだ日本語訳がありません。

Defined in: dipole.rs:23

pub struct TiltedDipole

Tilted dipole geomagnetic field model with ECEF-fixed axis.

Approximates Earth’s magnetic field as a tilted dipole, suitable for B-dot detumbling simulations in LEO. The dipole axis is stored in ECEF coordinates and rotated to ECI using the epoch’s GMST, correctly accounting for Earth rotation.

The dipole field at position r is:

B = (dipole_strength / r^3) [3(m_hat . r_hat) r_hat - m_hat]

where m_hat is the dipole axis unit vector and r is in metres.

fn new(dipole_strength: f64, axis_ecef: Vector3<f64>) -> Self

Create a tilted dipole with the given strength and axis in ECEF coordinates.

Panics if axis_ecef is zero-length.


fn earth() -> Self

Earth’s tilted dipole (IGRF approximate).

  • Dipole strength: ~7.94e15 Tm^3 (= mu_0/(4pi) * 7.94e22 A*m^2)
  • Geomagnetic pole tilted ~11.5 deg from geographic north (simplified: tilt in the x-z plane in ECEF)

The dipole moment points roughly geographic south, i.e. opposite the geomagnetic north pole — that is what makes field lines enter the Earth in the northern hemisphere. IGRF says the same thing through g_1^0 < 0. Concretely, with m_hat pointing south:

  • at the equator m_hat . r_hat = 0, so B ~ -m_hat points north;
  • at the north pole r_hat = +Z and m_hat . r_hat = -1, so 3(m_hat . r_hat) r_hat - m_hat = +2 m_hat, which points into the Earth.

Both match the real field; using +Z here inverts the whole vector.

The axis is stored in ECEF coordinates and will be rotated to ECI using the epoch’s GMST when computing the field.