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 vectorOptionally: 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>#
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_cfg – Disturbance 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_cfg – Disturbance 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_cfg – Disturbance 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.