Skip to main content
```

Rotational Dynamics

This section describes the rotational rigid-body dynamics implemented in the Spaceflight Dynamics Framework (SDF). The model propagates the rotational state of a spacecraft from externally applied torques, its inertia tensor, and its current angular velocity.

Rotational dynamics are treated independently from the translational equations of motion. The resulting model describes the three rotational degrees of freedom of the spacecraft and, together with the separately evaluated translational dynamics, forms the complete six-degree-of-freedom simulation.

The rotational state is represented by the angular velocity vector and a unit quaternion describing spacecraft attitude. All dynamic quantities involved in Euler's rotational equations are expressed in the spacecraft body-fixed frame (SBF).


Rotational State

The rotational motion of the spacecraft is described by its angular velocity and attitude.

The angular velocity vector expressed in the spacecraft body-fixed frame is:

ωB=[ωxωyωz] \boldsymbol{\omega}_B = \begin{bmatrix} \omega_x \\ \omega_y \\ \omega_z \end{bmatrix}

Where:
ωx\omega_x is the angular velocity about the SBF x-axis [rad/s]
ωy\omega_y is the angular velocity about the SBF y-axis [rad/s]
ωz\omega_z is the angular velocity about the SBF z-axis [rad/s]

Spacecraft attitude is represented by the unit quaternion:

q=[qwqxqyqz] \mathbf{q} = \begin{bmatrix} q_w \\ q_x \\ q_y \\ q_z \end{bmatrix}

where qwq_w denotes the scalar component andqxq_x, qyq_y andqzq_z form the vector component.


Torque Generation

A force generates a rotational moment whenever its line of action does not pass through the spacecraft center of mass. For each force source, the resulting torque is determined from the cross product between the lever-arm vector and the applied force vector.

τB=rB×FB \boldsymbol{\tau}_B = \mathbf{r}_B \times \mathbf{F}_B

Where:
τB\boldsymbol{\tau}_B is the resulting torque vector in SBF [N·m]
rB\mathbf{r}_B is the position of the force application point relative to the spacecraft center of mass [m]
FB\mathbf{F}_B is the applied force vector expressed in SBF [N]

The magnitude of the generated torque is:

τ=rFsin(θ) ||\boldsymbol{\tau}|| = ||\mathbf{r}|| ||\mathbf{F}|| \sin(\theta)

where θ\theta is the angle between the lever-arm vector and the applied force vector. Consequently, a force acting directly through the center of mass produces no torque, whereas an off-center force may generate rotational acceleration about one or multiple body axes.


Total Applied Torque

Multiple propulsion elements or other torque-producing models may act on the spacecraft simultaneously. The rotational dynamics model operates on the net external torque obtained through vector superposition of all individual moments.

τB,total=i=1nτB,i \boldsymbol{\tau}_{B,total} = \sum_{i=1}^{n} \boldsymbol{\tau}_{B,i}

All individual torques must be expressed about the same reference point and in the same coordinate frame before aggregation. Within the current implementation, propulsion-generated torques are evaluated about the spacecraft center of mass and represented in the spacecraft body-fixed frame.


Spacecraft Inertia Tensor

The rotational response of a rigid spacecraft depends on the distribution of its mass relative to the body-fixed axes. This property is represented by the inertia tensor:

IB=[IxxIxyIxzIyxIyyIyzIzxIzyIzz] \mathbf{I}_B = \begin{bmatrix} I_{xx} & I_{xy} & I_{xz} \\ I_{yx} & I_{yy} & I_{yz} \\ I_{zx} & I_{zy} & I_{zz} \end{bmatrix}

Where:
Ixx,Iyy,IzzI_{xx}, I_{yy}, I_{zz} are the moments of inertia about the body-fixed axes [kg·m²]
Ixy,Ixz,IyzI_{xy}, I_{xz}, I_{yz} are the products of inertia [kg·m²]

If the body-fixed coordinate system is aligned with the principal axes of inertia, the products of inertia vanish and the tensor becomes diagonal:

IB=[Ixx000Iyy000Izz] \mathbf{I}_B = \begin{bmatrix} I_{xx} & 0 & 0 \\ 0 & I_{yy} & 0 \\ 0 & 0 & I_{zz} \end{bmatrix}

The current SDF spacecraft configuration uses a body-fixed inertia tensor defined with respect to the spacecraft center of mass.


Euler's Rigid-Body Equation

The rotational acceleration of the spacecraft is determined using Euler's equation of motion for a rigid body. Expressed in the rotating spacecraft body frame, the equation is:

τB=IBω˙B+ωB×(IBωB) \boldsymbol{\tau}_B = \mathbf{I}_B \dot{\boldsymbol{\omega}}_B + \boldsymbol{\omega}_B \times \left( \mathbf{I}_B \boldsymbol{\omega}_B \right)

Solving for angular acceleration gives the form used by the rotational dynamics model:

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

Where:
ω˙B\dot{\boldsymbol{\omega}}_B is the angular acceleration vector [rad/s²]
ωB\boldsymbol{\omega}_B is the current angular velocity vector [rad/s]
τB\boldsymbol{\tau}_B is the total externally applied torque [N·m]
IB\mathbf{I}_B is the spacecraft inertia tensor [kg·m²]


Gyroscopic Coupling

The second term in Euler's rigid-body equation represents the gyroscopic coupling caused by expressing the angular momentum in the rotating body-fixed frame:

ωB×(IBωB) \boldsymbol{\omega}_B \times \left( \mathbf{I}_B \boldsymbol{\omega}_B \right)

This term couples rotation about the individual body axes. As a consequence, angular acceleration may occur about an axis even when the externally applied torque component about that axis is zero.

For a diagonal inertia tensor, Euler's equations can be written component-wise as:

ω˙x=τx(IzzIyy)ωyωzIxx \dot{\omega}_x = \frac{ \tau_x - (I_{zz}-I_{yy})\omega_y\omega_z }{ I_{xx} }
ω˙y=τy(IxxIzz)ωzωxIyy \dot{\omega}_y = \frac{ \tau_y - (I_{xx}-I_{zz})\omega_z\omega_x }{ I_{yy} }
ω˙z=τz(IyyIxx)ωxωyIzz \dot{\omega}_z = \frac{ \tau_z - (I_{yy}-I_{xx})\omega_x\omega_y }{ I_{zz} }

These coupled equations describe the characteristic rotational behavior of an asymmetric rigid spacecraft and are retained by the vector formulation implemented in SDF.


Angular Velocity Integration

After evaluating Euler's equation, the resulting angular acceleration is numerically integrated to propagate the spacecraft angular velocity.

For the current explicit Euler integration scheme:

ωB(t+Δt)=ωB(t)+ω˙B(t)Δt \boldsymbol{\omega}_B(t+\Delta t) = \boldsymbol{\omega}_B(t) + \dot{\boldsymbol{\omega}}_B(t) \Delta t

Where:
ωB(t)\boldsymbol{\omega}_B(t) is the angular velocity at the current simulation step [rad/s]
ω˙B(t)\dot{\boldsymbol{\omega}}_B(t) is the current angular acceleration [rad/s²]
Δt\Delta t is the simulation timestep [s]


Quaternion Attitude Kinematics

The angular velocity describes the instantaneous rotational motion of the spacecraft but does not by itself define its orientation. Spacecraft attitude is therefore propagated independently using a unit quaternion.

For quaternion kinematics, the body-fixed angular velocity vector is represented as the pure quaternion:

ΩB=[0ωxωyωz] \boldsymbol{\Omega}_B = \begin{bmatrix} 0 \\ \omega_x \\ \omega_y \\ \omega_z \end{bmatrix}

The time derivative of the attitude quaternion is then obtained from:

q˙=12qΩB \dot{\mathbf{q}} = \frac{1}{2} \mathbf{q} \otimes \boldsymbol{\Omega}_B

Where:
q˙\dot{\mathbf{q}} is the quaternion time derivative
q\mathbf{q} is the current attitude quaternion
ΩB\boldsymbol{\Omega}_B is the pure quaternion representation of body angular velocity
\otimes denotes quaternion multiplication

The multiplication order follows the attitude convention used by the SDF coordinate transformation model and assumes angular velocity expressed in the spacecraft body-fixed frame.


Quaternion Integration

The quaternion differential equation is integrated over the simulation timestep using the configured numerical integration scheme. For explicit Euler integration:

q(t+Δt)=q(t)+q˙(t)Δt \mathbf{q}(t+\Delta t) = \mathbf{q}(t) + \dot{\mathbf{q}}(t) \Delta t

Numerical integration introduces small floating-point deviations from the unit-length constraint required for a valid rotation quaternion. The propagated quaternion is therefore normalized after each integration step:

qqq \mathbf{q} \leftarrow \frac{ \mathbf{q} }{ ||\mathbf{q}|| }

A valid spacecraft attitude quaternion consequently satisfies:

q=1 ||\mathbf{q}|| = 1

Quaternion representation avoids the kinematic singularities associated with Euler-angle attitude representations and is therefore well suited for unrestricted three-dimensional spacecraft rotation.


Rotational State Propagation

The complete rotational state propagation performed during one simulation timestep can be summarized as:

FB,i    τB,i    τB,total    ω˙B    ωB    q \mathbf{F}_{B,i} \;\longrightarrow\; \boldsymbol{\tau}_{B,i} \;\longrightarrow\; \boldsymbol{\tau}_{B,total} \;\longrightarrow\; \dot{\boldsymbol{\omega}}_B \;\longrightarrow\; \boldsymbol{\omega}_B \;\longrightarrow\; \mathbf{q}

First, individual force application points generate body-fixed torques. These torques are aggregated and passed to the rotational physics model. Euler's rigid-body equation determines angular acceleration, which is subsequently integrated to obtain angular velocity. Finally, quaternion kinematics propagate the spacecraft attitude.

The separation between torque generation, rigid-body dynamics and numerical integration allows the individual components to be modified or replaced without changing the complete rotational simulation architecture.


Model Assumptions and Current Limitations

The current rotational dynamics implementation is based on a rigid spacecraft model. The following assumptions define the present validity range of the model:

  • The spacecraft is treated as a rigid body.
  • The inertia tensor is defined in the spacecraft body-fixed frame.
  • The current model does not represent structural flexibility.
  • Propellant slosh is not modeled.
  • Dynamic center-of-mass migration is currently neglected.
  • Reaction wheels and control moment gyroscopes are not currently modeled.
  • Environmental disturbance torques are not yet included.
  • Aerodynamic moments are not currently considered.

These assumptions provide a deterministic rigid-body baseline that can be extended by additional physical models without changing the fundamental rotational dynamics interface.


Key Characteristics

  • Three-axis rigid-body rotational dynamics
  • Body-fixed torque generation and aggregation
  • Full inertia tensor representation
  • Euler rigid-body equations including gyroscopic coupling
  • Numerical angular velocity propagation
  • Quaternion-based spacecraft attitude representation
  • Normalized quaternion attitude integration
  • Explicit separation from translational dynamics
  • Modular and extensible rotational physics architecture