disturbance#

class Disturbance#
#include <disturbance.h>

Abstract base class for disturbance models.

Represents physical disturbances acting on the spacecraft (e.g., aerodynamic drag, solar radiation pressure, gravity gradient). Each disturbance computes a torque vector and its derivatives with respect to the spacecraft state.

Derived classes must implement:

  • torque(): compute the disturbance torque vector

  • Optionally: Jacobians and Hessians for optimization algorithms

Subclassed by saltro::disturbances::DragDisturbance, saltro::disturbances::GGDisturbance, saltro::disturbances::SRPDisturbance

Public Types

using Vec3 = Eigen::Vector3d#
using Vec4 = Eigen::Vector4d#
using BaseState = Eigen::Matrix<double, 7, 1>#
using Mat34 = Eigen::Matrix<double, 3, 4>#
using Mat44 = Eigen::Matrix<double, 4, 4>#
using T443 = saltro::math::Tensor3<4, 4, 3>#

Public Functions

virtual ~Disturbance() = default#
virtual Vec3 torque(const BaseState &x, const DisturbanceConfig &dist_cfg) const = 0#

Compute the disturbance torque.

Pure virtual method accepting the base spacecraft state and disturbance configuration. Must be implemented by derived classes.

Parameters:
  • x – Base state vector (7D: angular velocity + quaternion).

  • dist_cfgDisturbance configuration (flags, coefficients, etc.).

Returns:

3D disturbance torque vector in body frame (Newton-meters).

inline virtual Mat34 dtorque_dq(const BaseState&, const DisturbanceConfig&) const#

Jacobian of disturbance torque with respect to quaternion.

Computes \(\frac{\partial \boldsymbol{\tau}}{\partial \mathbf{q}}\) as a 3×4 matrix. Default implementation returns zero (for disturbances independent of attitude).

Parameters:
  • x – Base state.

  • dist_cfgDisturbance configuration.

Returns:

3×4 Jacobian matrix (zero by default).

inline virtual T443 ddtorque_dqdq(const BaseState&, const DisturbanceConfig&) const#

Hessian of disturbance torque with respect to quaternion.

Computes second derivatives \(\frac{\partial^2 \tau_i}{\partial q_j \partial q_k}\) as a 3-slice tensor of 4×4 matrices. Default implementation returns zero.

Parameters:
  • x – Base state.

  • dist_cfgDisturbance configuration.

Returns:

Tensor3 with 3 slices of 4×4 matrices (zero by default).

inline void setActive(bool active)#

Enable or disable this disturbance for computations.

Parameters:

active – True to enable, false to disable.

inline bool isActive() const#

Check if this disturbance is active.

Returns:

True if active, false otherwise.

Protected Attributes

bool active_ = true#

Activation flag.