public class SolarRadiationPressure extends AbstractRadiationForceModel
Since Orekit 11.0, it is possible to take into account
the eclipses generated by Moon in the solar radiation
pressure force model using the
AbstractRadiationForceModel.addOccultingBody(ExtendedPVCoordinatesProvider, double)
method.
Example:
SolarRadiationPressure srp =
new SolarRadiationPressure(CelestialBodyFactory.getSun(), Constants.EIGEN5C_EARTH_EQUATORIAL_RADIUS,
new IsotropicRadiationClassicalConvention(50.0, 0.5, 0.5));
srp.addOccultingBody(CelestialBodyFactory.getMoon(), Constants.MOON_EQUATORIAL_RADIUS);
Constructor and Description |
---|
SolarRadiationPressure(double dRef,
double pRef,
ExtendedPVCoordinatesProvider sun,
double equatorialRadius,
RadiationSensitive spacecraft)
Complete constructor.
|
SolarRadiationPressure(ExtendedPVCoordinatesProvider sun,
double equatorialRadius,
RadiationSensitive spacecraft)
Simple constructor with default reference values.
|
Modifier and Type | Method and Description |
---|---|
<T extends CalculusFieldElement<T>> |
acceleration(FieldSpacecraftState<T> s,
T[] parameters)
Compute acceleration.
|
Vector3D |
acceleration(SpacecraftState s,
double[] parameters)
Compute acceleration.
|
<T extends CalculusFieldElement<T>> |
getGeneralEclipseRatio(FieldVector3D<T> position,
FieldVector3D<T> occultingPosition,
T occultingRadius,
FieldVector3D<T> occultedPosition,
T occultedRadius)
Get eclipse ratio between to bodies seen from a specific object.
|
double |
getGeneralEclipseRatio(Vector3D position,
Vector3D occultingPosition,
double occultingRadius,
Vector3D occultedPosition,
double occultedRadius)
Get eclipse ratio between to bodies seen from a specific object.
|
<T extends CalculusFieldElement<T>> |
getLightingRatio(FieldVector3D<T> position,
Frame frame,
FieldAbsoluteDate<T> date)
Get the lighting ratio ([0-1]).
|
double |
getLightingRatio(Vector3D position,
Frame frame,
AbsoluteDate date)
Get the lighting ratio ([0-1]).
|
List<ParameterDriver> |
getParametersDrivers()
Get the drivers for parameters.
|
<T extends CalculusFieldElement<T>> |
getTotalLightingRatio(FieldVector3D<T> position,
Frame frame,
FieldAbsoluteDate<T> date)
Get the total lighting ratio ([0-1]).
|
double |
getTotalLightingRatio(Vector3D position,
Frame frame,
AbsoluteDate date)
Get the total lighting ratio ([0-1]).
|
addOccultingBody, dependsOnPositionOnly, getEclipseAngles, getEclipseAngles, getEquatorialRadius, getEventsDetectors, getFieldEventsDetectors, getGeneralEclipseAngles, getGeneralEclipseAngles, getOtherOccultingBodies
complainIfNotSupported, getParameterDriver, isSupported
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addContribution, addContribution, getParameters, getParameters, init, init
public SolarRadiationPressure(ExtendedPVCoordinatesProvider sun, double equatorialRadius, RadiationSensitive spacecraft)
When this constructor is used, the reference values are:
sun
- Sun modelequatorialRadius
- spherical shape model (for umbra/penumbra computation)spacecraft
- the object physical and geometrical informationpublic SolarRadiationPressure(double dRef, double pRef, ExtendedPVCoordinatesProvider sun, double equatorialRadius, RadiationSensitive spacecraft)
Note that reference solar radiation pressure pRef
in
N/m² is linked to solar flux SF in W/m² using
formula pRef = SF/c where c is the speed of light (299792458 m/s). So
at 1UA a 1367 W/m² solar flux is a 4.56 10-6
N/m² solar radiation pressure.
dRef
- reference distance for the solar radiation pressure (m)pRef
- reference solar radiation pressure at dRef (N/m²)sun
- Sun modelequatorialRadius
- spherical shape model (for umbra/penumbra computation)spacecraft
- the object physical and geometrical informationpublic Vector3D acceleration(SpacecraftState s, double[] parameters)
s
- current state information: date, kinematics, attitudeparameters
- values of the force model parameterspublic <T extends CalculusFieldElement<T>> FieldVector3D<T> acceleration(FieldSpacecraftState<T> s, T[] parameters)
T
- type of the elementss
- current state information: date, kinematics, attitudeparameters
- values of the force model parameterspublic double getLightingRatio(Vector3D position, Frame frame, AbsoluteDate date)
position
- the satellite's position in the selected frame.frame
- in which is defined the positiondate
- the datepublic double getGeneralEclipseRatio(Vector3D position, Vector3D occultingPosition, double occultingRadius, Vector3D occultedPosition, double occultedRadius)
position
- the satellite's position in the selected frameoccultingPosition
- the position of the occulting objectoccultingRadius
- the mean radius of the occulting objectoccultedPosition
- the position of the occulted objectoccultedRadius
- the mean radius of the occulted objectpublic double getTotalLightingRatio(Vector3D position, Frame frame, AbsoluteDate date)
position
- the satellite's position in the selected frame.frame
- in which is defined the positiondate
- the datepublic <T extends CalculusFieldElement<T>> T getLightingRatio(FieldVector3D<T> position, Frame frame, FieldAbsoluteDate<T> date)
T
- extends CalculusFieldElementposition
- the satellite's position in the selected frame.frame
- in which is defined the positiondate
- the datepublic <T extends CalculusFieldElement<T>> T getGeneralEclipseRatio(FieldVector3D<T> position, FieldVector3D<T> occultingPosition, T occultingRadius, FieldVector3D<T> occultedPosition, T occultedRadius)
T
- extends RealFieldElementposition
- the satellite's position in the selected frameoccultingPosition
- the position of the occulting objectoccultingRadius
- the mean radius of the occulting objectoccultedPosition
- the position of the occulted objectoccultedRadius
- the mean radius of the occulted objectpublic <T extends CalculusFieldElement<T>> T getTotalLightingRatio(FieldVector3D<T> position, Frame frame, FieldAbsoluteDate<T> date)
T
- extends RealFieldElementposition
- the satellite's position in the selected frame.frame
- in which is defined the positiondate
- the datepublic List<ParameterDriver> getParametersDrivers()
Copyright © 2002-2022 CS GROUP. All rights reserved.