fuelTank#
Executive Summary#
This class is an instantiation of the stateEffector abstract class and implements an effector representing a fuel tank. This fuel tank has one state associated with it and is the mass of the fuel inside the tank. The module is a fuel tank effector attached to a rigid body hub and has the following functions:
Compute tank properties depending on the tank model being used
Provides its contributions to the mass properties of the spacecraft
Provides its contributions to the back-substitution matrices
Computes its derivative for its mass flow rate using the vector of attached thrusters
Provides its contributions to energy and momentum of the spacecraft
The module
PDF Description
contains further information on this module’s computations.
Message Connection Descriptions#
The following table lists all the module input and output messages. The module msg variable name is set by the user from python. The msg type contains a link to the message structure definition, while the description provides information on what this message is used for.
Msg Variable Name |
Msg Type |
Description |
---|---|---|
fuelTankOutMsg |
FuelTankMsgPayload |
fuel tank output message name |
User Guide#
The fuel tank effector module must be passed a tank model
fuelTankEffector = fuelTank.FuelTank()
tankModel = fuelTank.FuelTankModelConstantVolume()
fuelTankEffector.setTankModel(tankModel)
A thruster effector can be attached to a tank effector to simulate fuel mass depletion by thruster operation.
fuelTankEffector.addThrusterSet(thrustersEffector)
Class FuelTank#
-
class FuelTank : public StateEffector, public SysModel#
Fuel tank effector model class
Public Functions
-
void writeOutputMessages(uint64_t currentClock)#
Compute fuel tank mass properties and outputs them as a message.
- Parameters:
currentClock – The current simulation time (used for time stamping)
- Returns:
void
-
void updateState(uint64_t currentSimNanos) override#
Fuel tank writes out its messages
- Parameters:
currentSimNanos – The current simulation time in nanoseconds
- Returns:
void
-
void setTankModel(FuelTankModel *model)#
set fuel tank model
- Parameters:
model – fuel tank model type
- Returns:
void
-
void pushFuelSloshParticle(FuelSlosh *particle)#
— Attach fuel slosh particle
Attach a fuel slosh particle to the tank
-
void registerStates(DynParamManager &states) override#
— Register mass state with state manager
Register states. The fuel tank has one state associated with it: mass, and it also has the responsibility to call register states for the fuel slosh particles
-
void linkInStates(DynParamManager &states) override#
— Give the tank access to other states
Link states that the module accesses
-
void updateEffectorMassProps(double integTime) override#
— Add contribution mass props from the tank
Fuel tank add its contributions the mass of the vehicle.
-
void setNameOfMassState(const std::string nameOfMassState)#
— Setter for fuel tank mass state name
-
void addThrusterSet(ThrusterDynamicEffector *dynEff)#
— Add DynamicEffector thruster
-
void addThrusterSet(ThrusterStateEffector *stateEff)#
— Add StateEffector thruster
-
void updateContributions(double integTime, BackSubMatrices &backSubContr, Eigen::Vector3d sigma_BN, Eigen::Vector3d omega_BN_B, Eigen::Vector3d g_N) override#
— Back-sub contributions
Fuel tank adds its contributions to the matrices for the back-sub method.
-
void updateEnergyMomContributions(double integTime, Eigen::Vector3d &rotAngMomPntCContr_B, double &rotEnergyContr, Eigen::Vector3d omega_BN_B) override#
— Energy and momentum calculations
Fuel tank contributes to the energy and momentum calculations
-
void computeDerivatives(double integTime, Eigen::Vector3d rDDot_BN_N, Eigen::Vector3d omegaDot_BN_B, Eigen::Vector3d sigma_BN) override#
— Calculate stateEffector’s derivatives
Fuel tank computes its derivative
Public Members
-
std::string nameOfMassState = {}#
— name of mass state
-
std::vector<FuelSlosh*> fuelSloshParticles#
— vector of fuel slosh particles
-
std::vector<ThrusterDynamicEffector*> thrDynEffectors#
— Vector of dynamic effectors for thrusters
-
std::vector<ThrusterStateEffector*> thrStateEffectors#
— Vector of state effectors for thrusters
-
Eigen::Matrix3d dcm_TB#
— DCM from body frame to tank frame
-
Eigen::Vector3d r_TB_B#
[m] position of tank in B frame
-
bool updateOnly = true#
— Sets whether to use update only mass depletion
-
Message<FuelTankMsgPayload> fuelTankOutMsg = {}#
— fuel tank output message name
-
FuelTankMsgPayload fuelTankMassPropMsg = {}#
instance of messaging system message struct
-
void writeOutputMessages(uint64_t currentClock)#