Class KnockeRediffusedForceModel
- java.lang.Object
-
- org.orekit.forces.radiation.KnockeRediffusedForceModel
-
- All Implemented Interfaces:
ForceModel
,EventDetectorsProvider
,ParameterDriversProvider
public class KnockeRediffusedForceModel extends Object implements ForceModel
The Knocke Earth Albedo and IR emission force model.This model is based on "EARTH RADIATION PRESSURE EFFECTS ON SATELLITES", 1988, by P. C. Knocke, J. C. Ries, and B. D. Tapley.
This model represents the effects of radiation pressure coming from the Earth. It considers Solar radiation which has been reflected by Earth (albedo) and Earth infrared emissions. The planet is considered as a sphere and is divided into elementary areas. Each elementary area is considered as a plane and emits radiation according to Lambert's law. The flux the satellite receives is then equal to the sum of the elementary fluxes coming from Earth.
The radiative model of the satellite, and its ability to diffuse, reflect or absorb radiation is handled by a
radiation sensitive model
.Caution: This model is only suitable for Earth. Using it with another central body is prone to error..
- Since:
- 10.3
- Author:
- Thomas Paulet
-
-
Field Summary
-
Fields inherited from interface org.orekit.propagation.events.EventDetectorsProvider
DATATION_ACCURACY
-
-
Constructor Summary
Constructors Constructor Description KnockeRediffusedForceModel(ExtendedPVCoordinatesProvider sun, RadiationSensitive spacecraft, double equatorialRadius, double angularResolution)
Default Constructor.KnockeRediffusedForceModel(ExtendedPVCoordinatesProvider sun, RadiationSensitive spacecraft, double equatorialRadius, double angularResolution, TimeScale utc)
General constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T extends CalculusFieldElement<T>>
FieldVector3D<T>acceleration(FieldSpacecraftState<T> s, T[] parameters)
Compute acceleration.Vector3D
acceleration(SpacecraftState s, double[] parameters)
Compute acceleration.boolean
dependsOnPositionOnly()
Check if force models depends on position only.List<ParameterDriver>
getParametersDrivers()
Get the drivers for parameters.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.propagation.events.EventDetectorsProvider
getEventDetectors, getFieldEventDetectors
-
Methods inherited from interface org.orekit.forces.ForceModel
addContribution, addContribution, getEventDetectors, getFieldEventDetectors, init, init
-
Methods inherited from interface org.orekit.utils.ParameterDriversProvider
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
-
-
-
-
Constructor Detail
-
KnockeRediffusedForceModel
@DefaultDataContext public KnockeRediffusedForceModel(ExtendedPVCoordinatesProvider sun, RadiationSensitive spacecraft, double equatorialRadius, double angularResolution)
Default Constructor.This constructor uses the
.default data context
- Parameters:
sun
- Sun modelspacecraft
- the object physical and geometrical informationequatorialRadius
- the Earth equatorial radius in mangularResolution
- angular resolution in rad
-
KnockeRediffusedForceModel
public KnockeRediffusedForceModel(ExtendedPVCoordinatesProvider sun, RadiationSensitive spacecraft, double equatorialRadius, double angularResolution, TimeScale utc)
General constructor.- Parameters:
sun
- Sun modelspacecraft
- the object physical and geometrical informationequatorialRadius
- the Earth equatorial radius in mangularResolution
- angular resolution in radutc
- the UTC time scale to define reference epoch
-
-
Method Detail
-
dependsOnPositionOnly
public boolean dependsOnPositionOnly()
Check if force models depends on position only.- Specified by:
dependsOnPositionOnly
in interfaceForceModel
- Returns:
- true if force model depends on position only, false if it depends on velocity, either directly or due to a dependency on attitude
-
acceleration
public Vector3D acceleration(SpacecraftState s, double[] parameters)
Compute acceleration.- Specified by:
acceleration
in interfaceForceModel
- Parameters:
s
- current state information: date, kinematics, attitudeparameters
- values of the force model parameters at state date, only 1 value for each parameterDriver- Returns:
- acceleration in same frame as state
-
acceleration
public <T extends CalculusFieldElement<T>> FieldVector3D<T> acceleration(FieldSpacecraftState<T> s, T[] parameters)
Compute acceleration.- Specified by:
acceleration
in interfaceForceModel
- Type Parameters:
T
- type of the elements- Parameters:
s
- current state information: date, kinematics, attitudeparameters
- values of the force model parameters at state date, only 1 value for each parameterDriver- Returns:
- acceleration in same frame as state
-
getParametersDrivers
public List<ParameterDriver> getParametersDrivers()
Get the drivers for parameters.- Specified by:
getParametersDrivers
in interfaceParameterDriversProvider
- Returns:
- drivers for parameters
-
-