Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages | Examples

Environment Force Disturbance Functions
[Environment Toolkit]


Functions

Vector GravityForceFunction (const ssfTime &_currentTime, const OrbitState &_currentOrbitState, const AttitudeState &_currentAttitudeState, const EnvFuncParamaterType &_parameterList)
 Gravity force function modeling two-body gravity.
Vector SolarRadiationPressureForceFunction (const ssfTime &_currentTime, const OrbitState &_currentOrbitState, const AttitudeState &_currentAttitudeState, const EnvFuncParamaterType &_parameterList)
 Solar radiation pressure environmental disturbance force function.
Vector ThirdBodyForceDisturbance (const ssfTime &_currentTime, const OrbitState &_currentOrbitState, const AttitudeState &_currentAttitudeState, const EnvFuncParamaterType &_parameterList)
 The third body force disturbance due to gravity.


Function Documentation

Vector GravityForceFunction const ssfTime _currentTime,
const OrbitState _currentOrbitState,
const AttitudeState _currentAttitudeState,
const EnvFuncParamaterType _parameterList
[inline]
 

Gravity force function modeling two-body gravity.

Newton formulated the simplified two-body equation, or Law of Universal Gravitation. This formulation is a simplified model because it only accounts for two bodies: the central body, and the spacecraft. In general it can be applied to any two massive bodies which have a gravitational attraction with the following assumptions:

  1. The bodies are spherically symmetric.
  2. There are no external or internal forces acting on the system other than the gravitational forces which act along the line joining the centers of the two bodies.

TwoBody.jpg
Newton's Law of Universal Gravitation states that the force of gravity between two bodies is proportional to the product of their masses and inversely proportional to the square of the distance between them:

\[ {\bf F}_{g} = - \frac{GMm}{r^{2}}\frac{{\bf r}}{r} \]

where ${\bf F}_{g}$ is the force of gravity acting on mass $M$ and $m$, and the vector between the two masses is ${\bf r}={\bf r}_{M}-{\bf r}_{m}$. The parameter $G$ is the universal contant, which is usually measured by observing the quantity $Gm_{\oplus}$, since the mass of the earth is large and more easily measured. This gravitational parameter, $\mu$ has a modern (most recent, accurate) value of $3.986\,004\,415\times 10^{5} \frac{km^{3}}{s^{2}}$. It is important to note that the vector ${\bf r}$ is measured with respect to inertial axes.

Parameters:
_currentTime current simulation time
_currentOrbitState current orbit state, including representation and reference frame
_currentAttitudeState current attitude state, including rotation and reference frame
_parameterList EnvFuncParamaterType parameter list for external variables = [$\mu$], gravitational parameter [km^3/(solar s)^2]
Returns:
This force functions returns a 3-element vector of forces (x,y,z) due to gravity using a two-body simplified force model.

Definition at line 47 of file GravityFunctions.h.

References _, O_SESSAME::OrbitState::GetState(), O_SESSAME::norm2(), O_SESSAME::Vector, and O_SESSAME::VectorIndexBase.

Referenced by ChangeEnvironment(), main(), and SetupEnvironment().

Vector SolarRadiationPressureForceFunction const ssfTime _currentTime,
const OrbitState _currentOrbitState,
const AttitudeState _currentAttitudeState,
const EnvFuncParamaterType _parameterList
 

Solar radiation pressure environmental disturbance force function.

Another non-conservative disturbance force, like atmospheric drag, is due to the fact that light photons can impart a force on an absorbing or reflecting body. The force of these photons is usually very low, but can vary largely between eclipse, based on the body, and during solar storms. The solar-radiation pressure is even the basis for such spacecraft propulsion designs as solar sails, and so should be used for accurate models.

The solar pressure, $p_{SR}$, or change in momentum, is the main parameter in determing the force of the solar-radiation pressure. For the Earth, this has a nominal value of $4.51 \times 10^{-6}\frac{N}{m^{2}}$, where more precise values can be calculated depending on the time of year, as well as position from the Sun. The effect of solar-radiation pressure also varies due to the reflectivity, $c_{R}$, of the spacecraft, where 0.0 indicates no effect, 1.0 is a completely absorbing body, and 2.0 is an absorbing and reflecting body.

The combined force of the solar radiation pressure is found to be:

\[ \vec{a}_{radiation} = -\frac{p_{SR}c_{R}A_{S}}{m}\frac{\vec{\bf{r}}_{\odot sat}}{\left|\vec{\bf{r}}_{\odot sat}\right|} \]

where $\vec{\bf{r}}_{\odot sat}$ is the distance from the satellite to the sun (or light-emitting body), and $A_{S}$ is the spacecraft's exposed area to the sun. This value of area is very important for calculating the disturbance difference as the spacecraft passes from full sunlight, into eclipse, or when being shadowed by another body (moon or another spacecraft).

Using basic geometry, it can be shown that simple conditions for determining if a satellite is in sunlight are{Vallado:97}:

\[ \tau_{min} = \frac{\left|\vec{\bf{r}}_{sat}\right|^{2}-\vec{\bf{r}}_{sat}\cdot\vec{\bf{r}}_{\odot}}{\left|\vec{\bf{r}}_{sat}\right|^{2} + \left|\vec{\bf{r}}_{\oplus}\right|^{2}-2\vec{\bf{r}}_{sat}\cdot\vec{\bf{r}}_{\odot}} \]

\[ \mbox{Sunlight if } \tau_{min} < 0\mbox{ or }\tau_{min}>1 \]

\[ \mbox{ or } \left|\vec{c}\left(\tau_{min}\right)\right|^{2} = \left(1-\tau_{min}\right)\left|\vec{\bf{r}}_{sat}\right|^{2}+\left(\vec{\bf{r}}_{sat}\cdot\vec{\bf{r}}_{\oplus}\right)\tau_{min}\geq 1.0 \]

Todo:
Add checking for eclipse.
Parameters:
_currentTime current simulation time
_currentOrbitState current orbit state, including representation and reference frame
_currentAttitudeState current attitude state, including rotation and reference frame
_parameterList EnvFuncParamaterType parameter list for external variables

\[\begin{bmatrix} \left[r_{\odot sat_{x}}, r_{\odot sat_{y}}, r_{\odot sat_{z}}\right]^{T} \\ m, mass (kg) \\ p_{SR}, solar pressure (N/m^2) \\ c_{R}, reflectivity \\ A, Area (m^2) \end{bmatrix}\]

$r_{\odot sat}$ = distance from satellite to the sun (m)

Returns:
This force functions returns a 3-element vector of forces (x,y,z) due to solar radiation pressure using a simplified force model.

Definition at line 68 of file SolarDisturbances.h.

References O_SESSAME::norm2(), and O_SESSAME::Vector.

Vector ThirdBodyForceDisturbance const ssfTime _currentTime,
const OrbitState _currentOrbitState,
const AttitudeState _currentAttitudeState,
const EnvFuncParamaterType _parameterList
 

The third body force disturbance due to gravity.

Parameters:
_currentTime current simulation time
_currentOrbitState current orbit state, including representation and reference frame
_currentAttitudeState current attitude state, including rotation and reference frame
_parameterList EnvFuncParamaterType parameter list for external variables, [CentralBody* orbiting central body, CentralBody* third-body]
Returns:
This force functions returns a 3-element vector of forces (x,y,z) due to gravity using a two-body simplified force model.

Definition at line 34 of file ThirdBodyDisturbances.h.

References _, B, O_SESSAME::OrbitState::GetState(), O_SESSAME::CentralBody::GetVector2Body(), O_SESSAME::norm2(), O_SESSAME::Vector, and O_SESSAME::VectorIndexBase.


Generated on Wed Sep 5 12:54:46 2007 for DSACSS Operational Code by  doxygen 1.3.9.1