radiation_pressure¶
Radiation pressure dynamics class used to compute
The module
PDF Description
contains further information on this module’s function,
how to run it, as well as testing.
- 
class RadiationPressure: public SysModel, public DynamicEffector¶
- Public Functions - 
RadiationPressure()¶
- This is the constructor. It sets some default initializers that can be overriden by the user. 
 - 
~RadiationPressure()¶
- The destructor. Nothing of note is performed here 
 - 
void SelfInit()¶
- This method is used to create any messages published by this module. - Return
- void 
 
 - 
void CrossInit()¶
- This method is used to subscribe to systems message from this module. It sets the message ID based on what it finds for the input string. If the message is not successfully linked, it will warn the user. - Return
- void 
 
 - 
void UpdateState(uint64_t CurrentSimNanos)¶
- Update model state by reading in new message data - Return
- void 
- Parameters
- CurrentSimNanos: current simulation time in nanoseconds
 
 
 - 
void linkInStates(DynParamManager &statesIn)¶
- This method retrieves pointers to parameters/data stored in the dynamic parameter manager - Return
- void 
- Parameters
- statesIn: Dynamic parameter manager
 
 
 - 
void readInputMessages()¶
- This method is used to read the incoming ephmeris and spacecraft state messages. The data is stored in the associated buffer structure. - Return
- void 
 
 - 
void computeForceTorque(double integTime)¶
- This method computes the dynamic effect due to solar raidation pressure. It is an inherited method from the DynamicEffector class and is designed to be called by the simulation dynamics engine. - Return
- void 
- Parameters
- integTime: Current simulation integration time
 
 
 - 
void setUseCannonballModel()¶
- Sets the model to the cannonball model in computing the solar radiation force - Return
- void 
 
 - 
void setUseFacetedCPUModel()¶
- Sets the model to the faceted table-lookup model, evaluted on the CPU, in computing the solar radiation force - Return
- void 
 
 - 
void addForceLookupBEntry(Eigen::Vector3d vec)¶
- Add force vector in the body frame to lookup table. - Return
- void 
- Parameters
- vec: (N) Force vector for particular attitude in lookup table
 
 
 - Public Members - 
double area¶
- m^2 Body surface area 
 - 
double coefficientReflection¶
- Factor grouping surface optical properties 
 - 
std::string sunEphmInMsgName¶
- Message name for the sun state 
 - 
std::string stateInMsgName¶
- Message name for the S/C state 
 - 
std::string sunEclipseInMsgName¶
- [-] Message name for sun eclipse state message 
 - Private Functions - 
void computeCannonballModel(Eigen::Vector3d rSunB_B)¶
- Computes the solar radiation force vector based on cross-sectional Area and mass of the spacecraft and the position vector of the spacecraft to the sun. The solar radiation pressure decreases quadratically with distance from sun (in AU) - Solar Radiation Equations obtained from Earth Space and Planets Journal Vol. 51, 1999 pp. 979-986 - Return
- void 
- Parameters
- s_N: (m) Position vector to the Sun relative to the inertial frame
 
 
 - 
void computeLookupModel(Eigen::Vector3d rSunB_B)¶
- Computes the solar radiation force vector using a lookup table given the current spacecraft attitude and the position vector of the spacecraft to the sun. It is assumed that the lookup table has been generated with a solar flux at 1AU. Force and torque values are scaled. - Return
- void 
- Parameters
- s_B: (m) Position vector of the Sun relative to the body frame
 
 
 - Private Members - 
srpModel_t srpModel¶
- specifies which SRP model to use 
 - 
int64_t sunEphmInMsgId¶
- Message ID for incoming sun ephemeris data 
 - 
int64_t sunEclipseInMsgId¶
- [-] Connect to input sun eclipse message 
 - 
SpicePlanetStateSimMsg sunEphmInBuffer¶
- Buffer for incoming ephemeris message data 
 - 
int64_t stateInMsgId¶
- Message ID for incoming SC state data 
 - 
bool stateRead¶
- Indicates a succesful read of incoming SC state message data 
 - 
SCPlusStatesSimMsg stateInBuffer¶
- Buffer for incoming state message data 
 - 
EclipseSimMsg sunVisibilityFactor¶
- [-] scaling parameter from 0 (fully obscured) to 1 (fully visible) 
 
-