SolarRadiationPressure Class Reference
[GeoDynamics]

#include <SolarRadiationPressure.hpp>

Inheritance diagram for SolarRadiationPressure:

Inheritance graph
[legend]
Collaboration diagram for SolarRadiationPressure:

Collaboration graph
[legend]
List of all members.

Detailed Description

This class provides a generic model for the influence of solar radiation pressure on a satellite.

Definition at line 48 of file SolarRadiationPressure.hpp.

Public Types

enum  ShadowModel { SM_CYLINDRICAL, SM_CONICAL }

Public Member Functions

 SolarRadiationPressure ()
 Default constructor.
virtual ~SolarRadiationPressure ()
 Default destructor.
double getShadowFunction (Vector< double > r, Vector< double > r_Sun, Vector< double > r_Moon, SolarRadiationPressure::ShadowModel sm=SM_CONICAL)
 Determines if the satellite is in sunlight or shadow.
virtual void doCompute (UTCTime t, EarthBody &bRef, Spacecraft &sc)
 this is the real one to do computation
virtual std::string modelName () const
 Return force model name.
virtual int forceIndex () const
 return the force model index
Vector< double > accelSRP (Vector< double > r, Vector< double > r_Sun)
 Compute the acceleration due to a solar radiation pressure.
double partial_illumination (Vector< double > r, Vector< double > r_Sun)
 Determines if the satellite is in sunlight or shadow based on simple cylindrical shadow model.

Protected Attributes

double crossArea
 Cross sectional (reflective) area [m^2].
double srpArea
double dryMass
 Mass [kg] of the satellite.
double reflectCoeff
 Satellite coefficient of reflectivity.
Vector< double > dadcr
 Object hold da/dCr.


Member Enumeration Documentation

enum ShadowModel
 

Enumeration values:
SM_CYLINDRICAL 
SM_CONICAL 

Definition at line 51 of file SolarRadiationPressure.hpp.


Constructor & Destructor Documentation

SolarRadiationPressure  )  [inline]
 

Default constructor.

Definition at line 59 of file SolarRadiationPressure.hpp.

virtual ~SolarRadiationPressure  )  [inline, virtual]
 

Default destructor.

Definition at line 62 of file SolarRadiationPressure.hpp.


Member Function Documentation

Vector< double > accelSRP Vector< double >  r,
Vector< double >  r_Sun
 

Compute the acceleration due to a solar radiation pressure.

Parameters:
r ECI position vector [m].
r_Sun ECI position vector of Sun in m.
Returns:
Acceleration due to solar radiation pressure in m/s^2.

Definition at line 190 of file SolarRadiationPressure.cpp.

References SolarRadiationPressure::crossArea, gpstk::norm(), and SolarRadiationPressure::reflectCoeff.

Referenced by SolarRadiationPressure::doCompute().

void doCompute UTCTime  utc,
EarthBody rb,
Spacecraft sc
[virtual]
 

this is the real one to do computation

Reimplemented from ForceModel.

Definition at line 253 of file SolarRadiationPressure.cpp.

References SolarRadiationPressure::accelSRP(), UTCTime::asTDB(), SolarRadiationPressure::crossArea, ForceModel::da_dcr, ForceModel::da_dr, SolarRadiationPressure::dadcr, SolarRadiationPressure::dryMass, Spacecraft::getDragArea(), Spacecraft::getDryMass(), Spacecraft::getReflectCoeff(), SolarRadiationPressure::getShadowFunction(), gpstk::norm(), Spacecraft::R(), SolarRadiationPressure::reflectCoeff, Vector::resize(), and Matrix::resize().

virtual int forceIndex  )  const [inline, virtual]
 

return the force model index

Reimplemented from ForceModel.

Definition at line 85 of file SolarRadiationPressure.hpp.

double getShadowFunction Vector< double >  r,
Vector< double >  r_Sun,
Vector< double >  r_Moon,
SolarRadiationPressure::ShadowModel  sm = SM_CONICAL
 

Determines if the satellite is in sunlight or shadow.

Taken from Montenbruck and Gill p. 80-83

Parameters:
r ECI position vector of spacecraft [m].
r_Sun Sun position vector (geocentric) [m].
r_Moon Moon position vector (geocentric) [m].
Returns:
0.0 if in shadow, 1.0 if in sunlight, 0 to 1.0 if in partial shadow

Definition at line 46 of file SolarRadiationPressure.cpp.

References gpstk::acos(), gpstk::asin(), gpstk::dot(), GPSTK_THROW, gpstk::norm(), and gpstk::sqrt().

Referenced by SolarRadiationPressure::doCompute().

virtual std::string modelName  )  const [inline, virtual]
 

Return force model name.

Reimplemented from ForceModel.

Definition at line 81 of file SolarRadiationPressure.hpp.

double partial_illumination Vector< double >  r,
Vector< double >  r_Sun
 

Determines if the satellite is in sunlight or shadow based on simple cylindrical shadow model.

Taken from Montenbruck and Gill p. 80-83

Parameters:
r ECI position vector of spacecraft [m].
r_Sun Sun position vector (geocentric) [m].
Returns:
0.0 if in shadow, 1.0 if in sunlight, 0 to 1.0 if in partial shadow

Definition at line 219 of file SolarRadiationPressure.cpp.

References gpstk::acos(), gpstk::asin(), gpstk::dot(), gpstk::norm(), and gpstk::sqrt().


Member Data Documentation

double crossArea [protected]
 

Cross sectional (reflective) area [m^2].

Definition at line 110 of file SolarRadiationPressure.hpp.

Referenced by SolarRadiationPressure::accelSRP(), and SolarRadiationPressure::doCompute().

Vector<double> dadcr [protected]
 

Object hold da/dCr.

Definition at line 120 of file SolarRadiationPressure.hpp.

Referenced by SolarRadiationPressure::doCompute().

double dryMass [protected]
 

Mass [kg] of the satellite.

Definition at line 114 of file SolarRadiationPressure.hpp.

Referenced by SolarRadiationPressure::doCompute().

double reflectCoeff [protected]
 

Satellite coefficient of reflectivity.

Definition at line 117 of file SolarRadiationPressure.hpp.

Referenced by SolarRadiationPressure::accelSRP(), and SolarRadiationPressure::doCompute().

double srpArea [protected]
 

Definition at line 111 of file SolarRadiationPressure.hpp.


The documentation for this class was generated from the following files:
Generated on Thu Feb 9 03:31:26 2012 for GPS ToolKit Software Library by  doxygen 1.3.9.1