DOC // NL-TN-2026-003VECTOR -Z1P / 1U · MATERIALS · ORBITAL
STATUS: PUBLISHED // REV 0.1

Magnetic detumbling with B-dot: a 1U and a 1P compared

How the spin after separation dies out, and why the law settles near twice the orbital rate

Author
nadir lab.
Published
Reading time
8 min
Level
Academic
Tags
  • ADCS
  • B-dot
  • Simulation
  • Magnetorquer
  • PocketQube
  • CubeSat

Abstract

The first job of a small satellite after separation is to remove the angular rate the deployer gave it. We derive the B-dot law, which needs only a magnetometer and magnetorquers, show why it can never increase rotational energy, and simulate rigid-body detumbling in a 500 km Sun-synchronous orbit with a tilted-dipole field. From about 9.6°/s, a 1U with 0.05 A·m² coils falls below 1°/s within minutes, while a 1P with 0.005 A·m² board coils takes about one orbit; both converge to a residual rate of the order of twice the orbital rate. We close with a flight-code sketch and design rules for PocketQubes.

Contents

After separation#

When a deployer’s spring pushes a CubeSat or PocketQube out, the force never passes exactly through the centre of mass and friction differs between rails, so the spacecraft leaves with some angular rate, typically a few to a few tens of degrees per second. For PocketQubes, initial rates of up to 180°/s and a target below 5°/s have been proposed as design criteria[1]; POQUITO detumbled from 20°/s within one orbit with printed into its boards[2]. No pointing task, from Sun acquisition to antennas and cameras, can start before the spin is gone.

Magnetic torque#

A magnetorquer produces a magnetic dipole from the current in its coil. In the geomagnetic field the dipole feels a torque[3]

At 500 km the field is about 25 µT over the equator and about 50 µT over the poles. That the torque is always perpendicular to is the basic limitation of magnetic control: at any instant the component along the field cannot be controlled. The missing axis is recovered over time, as the field direction turns along the orbit.

The B-dot law#

While the spacecraft spins fast, the change of the field measured in the body frame comes mainly from its own rotation:

The law commands a dipole opposite to that derivative:

Why it works becomes clear when the dipole is substituted into the torque and the rate of change of the rotational kinetic energy is taken. With :

where is the component of the angular rate perpendicular to the field. The energy never increases; it stops decreasing only while the rate is parallel to the field, which the orbital motion does not allow to last. Avanzini and Giulietti analysed this behaviour in detail and showed how the gain can be chosen from the orbital rate and the smallest moment of inertia[4].

Why the law does not reach zero#

As the rate falls, the approximation breaks down: the rotation of the field itself in the inertial frame is no longer negligible. On a polar orbit the direction of a dipole field turns about twice per orbit. B-dot then tries to make the body follow the field, and the rate settles near twice the orbital rate .1At 500 km, °/s, so °/s. The 0.18–0.19°/s seen after three orbits in the simulation are of the same order.

Simulation set-up#

We compare two ends of the range: a 1.33 kg 1U with 0.05 A·m² per axis and a 0.25 kg 1P whose board-wound coils reach 0.005 A·m². Both start at (6, −5, 5.5)°/s, about 9.6°/s.

  • Orbit: 500 km circular, 97.4° inclination (Sun-synchronous).
  • Field model: dipole tilted by 9.4° and rotating with the Earth;  T.
  • Inertia: homogeneous-cube approximation ; about 2.2 × 10⁻³ kg·m² for the 1U and 1.0 × 10⁻⁴ kg·m² for the 1P.
  • Control: 1 Hz sampling, finite-difference , per-axis saturation.
  • Integration: quaternion kinematics and Euler’s equations, fourth-order Runge–Kutta, 0.5 s step.
  • Neglected: gravity-gradient, aerodynamic and residual-dipole torques, sensor noise.

Results#

  • 1U CubeSat, 0.05 A·m² coils
  • 1P PocketQube, 0.005 A·m² coils
B-dot detumbling: angular rate (logarithmic axis)0.10.313100306090120150180210240270Time (min)|ω| (°/s)1°/s1U1P
Show the data as a table
Time (min)1U CubeSat, 0.05 A·m² coils1P PocketQube, 0.005 A·m² coils
09.559.55
51.102.19
100.692.05
300.601.90
600.201.14
900.200.96
1200.100.63
1800.130.36
2400.170.20
B-dot detumbling from the same initial rate (about 9.6°/s) at 500 km, i = 97.4°, tilted-dipole field, 1 Hz control, per-axis saturation. The axis spans three orbits of 94.6 min.
B-dot simulation summary
ScenarioInertia (kg·m²)Largest dipole (A·m²)Gain k (A·m²·s/T)Time to |ω| < 1°/s|ω| after three orbits
1U CubeSat, 0.05 A·m² coils2.30 × 10⁻³0.0530,0005.4 min0.18 °/s
1P PocketQube, 0.005 A·m² coils1.05 × 10⁻⁴0.0053,00087.8 min0.19 °/s

For comparison, the orbital rate is n = 0.0634 °/s and 2n = 0.127 °/s.

In the 1U, the initial steep fall is the phase in which the dipole is saturated: torque stays at its maximum and the rate drops below 1°/s within minutes. In the 1P the torque-to-inertia ratio is similar, but the small dipole of board coils and the gain chosen for it stretch the same threshold to about one orbit. The ripple on both curves comes from the changing direction of the field relative to the body: damping slows whenever the rate happens to be parallel to the field.

Why size matters less than expected#

The principal moment of inertia of a homogeneous cube, , scales with the fifth power of size, so a PocketQube has only 3–5% of the inertia of a 1U[5]. A coil dipole of the same technology scales with the area it encloses times the number of turns, so it shrinks more slowly than the inertia. That is why a 1P with a dipole ten times smaller is still detumbled within an orbit.

A discrete implementation#

In flight software B-dot is a loop of a few lines. Measurement and actuation alternate, because running magnetorquers disturb the magnetometer.

C
#include <math.h>

#define DT_S    1.0f    /* control period [s] */
#define K_BDOT  3.0e4f  /* gain [A·m²·s/T] */
#define M_MAX   0.05f   /* largest dipole per axis [A·m²] */

static float b_prev[3];
static int has_prev = 0;

/* b: magnetometer reading in the body frame [T]
   m: dipole commanded to the magnetorquers [A·m²] */
void bdot_step(const float b[3], float m[3])
{
    for (int i = 0; i < 3; i++) {
        float bdot = has_prev ? (b[i] - b_prev[i]) / DT_S : 0.0f;
        m[i] = fmaxf(-M_MAX, fminf(M_MAX, -K_BDOT * bdot));
        b_prev[i] = b[i];
    }
    has_prev = 1;
}

The sampling rate must suit the initial rate. At 180°/s the field turns half a revolution per second in the body frame, and a 1 Hz finite difference becomes meaningless. PocketQubes that expect high initial rates need a 5–10 Hz loop, with the coils switched off during each measurement window.

Attitude modes#

stateDiagram-v2
  state "Waiting" as Wait
  state "Detumbling (B-dot)" as Detumble
  state "Sun acquisition" as Sun
  state "Nominal" as Nominal
  state "Safe mode" as Safe
  [*] --> Wait : separation
  Wait --> Detumble : timer expired
  Detumble --> Sun : |ω| ≤ 1°/s
  Sun --> Detumble : |ω| ≥ 3°/s
  Sun --> Nominal : Sun sensor lock
  Nominal --> Safe : low battery
  Safe --> Detumble : battery recovered

Different exit and re-entry thresholds for , here 1 and 3°/s, give hysteresis that prevents the modes from chattering.

Design rules#

  • Size dipole and inertia together. Detumbling time is set by the ratio of the largest torque to the angular momentum; board coils on a 1P give times of the order of an orbit, not hours.
  • The gain sets the saturation phase. Too large a gain keeps the coils saturated and degrades the law to bang-bang control; too small a gain wastes available torque.
  • Place and calibrate the magnetometer carefully. Battery currents and coils add a constant bias to the reading. Differentiation removes most of it, but it still affects saturation and noise behaviour. Near a permanent magnet, as in passively stabilized designs, the bias can exceed the sensor’s range[6].
  • Detumbling is a first phase. Fine pointing needs Sun sensors, gyroscopes and possibly under a second controller.

References

  1. [1]Bouwmeester, J., Radu, S., Uludag, M. S., Chronas, N., Speretta, S., Menicucci, A., & Gill, E. K. A. (2020). Utility and constraints of PocketQubes. CEAS Space Journal, 12(4), 573–586.doi:10.1007/s12567-020-00300-0
  2. [2]Franzese, V., Kanavouras, K., Bruce Rosete, C., Gouvalas, S., Sajjad, N., Alandihallaj, M., Herasimenka, A., & Hein, A. (2025). System design of the POQUITO PocketQube mission. CEAS Space Journal.doi:10.1007/s12567-025-00624-9
  3. [3]Markley, F. L., & Crassidis, J. L. (2014). Fundamentals of Spacecraft Attitude Determination and Control. Space Technology Library, vol. 33. Springer.doi:10.1007/978-1-4939-0802-8
  4. [4]Avanzini, G., & Giulietti, F. (2012). Magnetic detumbling of a rigid spacecraft. Journal of Guidance, Control, and Dynamics, 35, 1326–1334.doi:10.2514/1.53074
  5. [5]nadir lab. (2026). Materials engineering for PocketQube picosatellites: A scaling-based review and design guide [Preprint]. nadir lab.Read on nadir lab.
  6. [6]nadir lab. (2026). PocketQube picosatellites: A review of standards, mission trends and miniaturization constraints, with lessons learned from Grizu-263A, Türkiye’s first PocketQube [Preprint]. nadir lab.Read on nadir lab.

Cite this article

@misc{nadirlab2026magnetic,
  author       = {{nadir lab.}},
  title        = {{Magnetic detumbling with B-dot: a 1U and a 1P compared}},
  year         = {2026},
  month        = sep,
  howpublished = {nadir lab. nadir lab. technical note SQ-TN-2026-003},
  url          = {https://nadirlab.space/en/articles/b-dot-magnetic-detumbling/},
  language     = {english},
  note         = {Licence: CC BY 4.0}
}
DOI
Not assigned
Identifier
SQ-TN-2026-003
Licence
CC BY 4.0