Module: dynamicObject

Object that is to be used by an integrator. This holds the equations of motion, integrate state, energy and momentum calculations. Module: dynamicObject is what puts all of the pieces together for your system

class DynamicObject : public SysModel
#include <dynamicObject.h>

A DynamicObject is a Basilisk model with states that must be integrated

Public Functions

DynamicObject() = default
DynamicObject(const DynamicObject&) = delete
DynamicObject &operator=(const DynamicObject&) = delete
DynamicObject(DynamicObject&&) = delete
DynamicObject &operator=(DynamicObject&&) = delete
virtual ~DynamicObject() = default
virtual void UpdateState(uint64_t callTime) = 0

Hooks the dyn-object into Basilisk architecture

virtual void equationsOfMotion(double t, double timeStep) = 0

Computes F = Xdot(X,t)

virtual void preIntegration(double callTime) = 0

Performs pre-integration steps

virtual void postIntegration(double callTime) = 0

Performs post-integration steps

inline virtual void initializeDynamics()

Initializes the dynamics and variables

inline virtual void computeEnergyMomentum(double t)

Computes energy and momentum of the system

void integrateState(double t)

Prepares the dynamic object to be integrated, integrates the states forward in time, and finally performs the post-integration steps.

This is only done if the DynamicObject integration is not sync’d to another DynamicObject

void setIntegrator(StateVecIntegrator *newIntegrator)

Sets a new integrator in use

void syncDynamicsIntegration(DynamicObject *dynPtr)

Connects the integration of a DynamicObject to the integration of this DynamicObject.

Public Members

DynParamManager dynManager

Dynamics parameter manager for all effectors

StateVecIntegrator *integrator

Integrator used to propagate state forward

BSKLogger bskLogger

BSK Logging

bool isDynamicsSynced = false

flag indicating that another spacecraft object is controlling the integration

double timeStep

[s] integration time step

double timeBefore

[s] prior time value