Skip to content

v1.0.0 - Closed-loop detumbling convergence (M49)

Choose a tag to compare

@lipofefeyt lipofefeyt released this 24 Oct 20:53
· 43 commits to main since this release

What's new

Closed-loop detumbling convergence (M49)

The B-dot loop is now closed end to end, so the spacecraft actually detumbles in the YAMCS demo instead of reacting to a fixed field vector.

Rigid-body dynamics integrator

  • make_rigid_body_dynamics(): Euler's equation plus quaternion kinematics, propagating body rates and attitude with no external physics engine required
  • Rotates the orbital B-field into the body frame using the integrated attitude
  • Starting from a 3 deg/s tumble, the B-dot controller converges to below 0.005 rad/s in about 5-10 minutes with default 3U CubeSat inertia

Demo and ground segment

  • scripts/demo_yamcs.py wires OrbitalEnvironment -> RigidBody -> Magnetometer -> MTQ -> RigidBody
  • New TM(250,2) BodyState packet carries aocs.body.omega_x/y/z/norm to YAMCS
  • early_orbit.opi display gains a live omega_norm readout and convergence trend chart
  • SRDB: aocs.body.omega_* (0x20C0-0x20C3) and aocs.body.b_true_*

Tests

  • 7 new unit tests: angular momentum conservation, detumbling convergence, quaternion normalisation, B-field rotation

Housekeeping

  • Em-dashes replaced with - across docs, source, tests and YAML

Implements: SVF-DEV-181