Skip to main content
VER-ROT-001 · PASS

Constant Principal-Axis Torque

This case verifies the SDF rigid-body rotational propagation path under a constant, known torque applied about one principal spacecraft axis.

Verification Objective

The reference case isolates rotation about the positive spacecraft body-fixed x-axis. A diagonal inertia tensor eliminates products of inertia, while the initial angular velocity is zero and no torque acts about the remaining axes. Under these conditions, the gyroscopic cross-coupling term vanishes and the analytical solution remains directly calculable.

VerifiedRigid-body rotational propagation
ReferenceClosed-form analytical solution
FrameSpacecraft body-fixed frame (SBF)
AutomationGoogleTest + CTest

Mathematical Reference

SDF evaluates angular acceleration from Euler's rigid-body equation:

ω˙B=IB−1[τB−ωB×(IBωB)]\dot{\boldsymbol{\omega}}_B = \mathbf{I}_B^{-1} \left[ \boldsymbol{\tau}_B - \boldsymbol{\omega}_B \times (\mathbf{I}_B \boldsymbol{\omega}_B) \right]

Because rotation is restricted to a principal axis,ω×(Iω)=0\boldsymbol{\omega} \times (\mathbf{I}\boldsymbol{\omega}) = 0. The x-axis acceleration therefore reduces to:

αx=τxIxx=10100=0.1  rad/s2\alpha_x = \frac{\tau_x}{I_{xx}} = \frac{10}{100} = 0.1\;\mathrm{rad/s^2}

With zero initial angular velocity:

ωx(t)=αxt\omega_x(t) = \alpha_x t
θx(t)=12αxt2\theta_x(t) = \frac{1}{2}\alpha_x t^2

At t=10  st=10\;\mathrm{s}, the analytical rotation angle isθx=5  rad\theta_x=5\;\mathrm{rad} and the corresponding reference quaternion is:

qref=[cos⁡(2.5),  sin⁡(2.5),  0,  0]q_{ref} = [\cos(2.5),\;\sin(2.5),\;0,\;0]

Reference Configuration

Inertia tensordiag(100, 200, 300) kg·m²
Applied torque{ 10, 0, 0 } N·m
Initial angular velocity{ 0, 0, 0 } rad/s
Initial attitude{ 1, 0, 0, 0 }
Time step0.1 s
Integration steps100

Expected Final State

α=(0.1,0,0)  rad/s2\boldsymbol{\alpha} = (0.1, 0, 0)\;\mathrm{rad/s^2}
ω(10 s)=(1.0,0,0)  rad/s\boldsymbol{\omega}(10\,s) = (1.0, 0, 0)\;\mathrm{rad/s}
qref=(−0.8011436155,  0.5984721441,  0,  0)q_{ref} = (-0.8011436155,\;0.5984721441,\;0,\;0)
Angular acceleration tolerance1e-12 rad/s²
Angular velocity tolerance1e-12 rad/s
Quaternion component tolerance2.5e-2
Quaternion norm tolerance1e-12

The wider quaternion component tolerance is intentional. SDF propagates attitude numerically using explicit Euler integration with normalization and the updated angular velocity of the current simulation step. Angular acceleration and angular velocity remain tightly bounded because the principal-axis setup eliminates gyroscopic cross-coupling.

SDF Execution Path

Torque + inertia→RigidBodyRotationalModel→physics::computeAngAcc→computeAngVel→computeAttitude→Analytical comparison

The verification follows the same rotational update order used by the production spacecraft propagation path: angular acceleration is evaluated first, angular velocity is advanced, and the updated angular velocity is then used for quaternion attitude propagation.

Result

PASS
VER-ROT-001 satisfies the defined analytical reference bounds.

Angular acceleration, angular velocity, quaternion components, and quaternion normalization remain within their specified tolerances after 100 deterministic integration steps.

Start 4: VER_ROT_001_AxisTorque.MatchesAnalyticalSolution
4/4 tests passed
100% tests passed, 0 tests failed

Scope of Evidence

Passing VER-ROT-001 demonstrates correct bounded behavior of the rigid-body principal-axis rotational propagation path for this reference case. It does not verify general multi-axis gyroscopic coupling, RCS torque generation, external disturbance torques, coordinate transformations, or the complete 6DoF spacecraft simulation. Those behaviors require separate verification cases and system-level evidence.

Review the rotational dynamics model