Class CelestialBodyPointed
- All Implemented Interfaces:
AttitudeProvider,AttitudeRotationModel,EventDetectorsProvider,ParameterDriversProvider
The celestial body pointed law is defined by two main elements:
- a celestial body towards which some satellite axis is exactly aimed
- a phasing reference defining the rotation around the pointing axis
The celestial body implicitly defines two of the three degrees of freedom and the phasing reference defines the remaining degree of freedom. This definition can be represented as first aligning exactly the satellite pointing axis to the current direction of the celestial body, and then to find the rotation around this axis such that the satellite phasing axis is in the half-plane defined by a cut line on the pointing axis and containing the celestial phasing reference.
In order for this definition to work, the user must ensure that the phasing
reference is never aligned with the pointing reference.
Since the pointed body moves as the date changes, this should be ensured
regardless of the date. A simple way to do this for Sun, Moon or any planet
pointing is to choose a phasing reference far from the ecliptic plane. Using
Vector3D.PLUS_K, the equatorial pole, is perfect in these cases.
Instances of this class are guaranteed to be immutable.
- Author:
- Luc Maisonobe
-
Field Summary
Fields inherited from interface org.orekit.propagation.events.EventDetectorsProvider
DATATION_ACCURACY -
Constructor Summary
ConstructorsConstructorDescriptionCelestialBodyPointed(Frame celestialFrame, ExtendedPositionProvider pointedBody, Vector3D phasingCel, Vector3D pointingSat, Vector3D phasingSat) Creates new instance. -
Method Summary
Modifier and TypeMethodDescription<T extends CalculusFieldElement<T>>
FieldAttitude<T> getAttitude(FieldPVCoordinatesProvider<T> pvProv, FieldAbsoluteDate<T> date, Frame frame) Compute the attitude corresponding to an orbital state.getAttitude(PVCoordinatesProvider pvProv, AbsoluteDate date, Frame frame) Compute the attitude corresponding to an orbital state.<T extends CalculusFieldElement<T>>
FieldRotation<T> getAttitudeRotation(FieldPVCoordinatesProvider<T> pvProv, FieldAbsoluteDate<T> date, Frame frame) Compute the attitude-related rotation corresponding to an orbital state.getAttitudeRotation(PVCoordinatesProvider pvProv, AbsoluteDate date, Frame frame) Compute the attitude-related rotation corresponding to an orbital state.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.orekit.attitudes.AttitudeProvider
getAttitudeRotation, getAttitudeRotation, getEventDetectors, getFieldEventDetectors, getParametersDriversMethods inherited from interface org.orekit.propagation.events.EventDetectorsProvider
getDateDetector, getEventDetectors, getFieldDateDetector, getFieldEventDetectorsMethods inherited from interface org.orekit.utils.ParameterDriversProvider
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
-
Constructor Details
-
CelestialBodyPointed
public CelestialBodyPointed(Frame celestialFrame, ExtendedPositionProvider pointedBody, Vector3D phasingCel, Vector3D pointingSat, Vector3D phasingSat) Creates new instance.- Parameters:
celestialFrame- frame in whichphasingCelis definedpointedBody- celestial body to point atphasingCel- phasing reference, in celestial framepointingSat- satellite vector defining the pointing directionphasingSat- phasing reference, in satellite frame
-
-
Method Details
-
getAttitude
Compute the attitude corresponding to an orbital state.- Specified by:
getAttitudein interfaceAttitudeProvider- Parameters:
pvProv- local position-velocity provider around current datedate- current dateframe- reference frame from which attitude is computed- Returns:
- attitude on the specified date and position-velocity state
-
getAttitudeRotation
Compute the attitude-related rotation corresponding to an orbital state.- Specified by:
getAttitudeRotationin interfaceAttitudeProvider- Parameters:
pvProv- local position-velocity provider around current datedate- current dateframe- reference frame from which attitude is computed- Returns:
- attitude-related rotation on the specified date and position-velocity state
-
getAttitude
public <T extends CalculusFieldElement<T>> FieldAttitude<T> getAttitude(FieldPVCoordinatesProvider<T> pvProv, FieldAbsoluteDate<T> date, Frame frame) Compute the attitude corresponding to an orbital state.- Specified by:
getAttitudein interfaceAttitudeProvider- Type Parameters:
T- type of the field elements- Parameters:
pvProv- local position-velocity provider around current datedate- current dateframe- reference frame from which attitude is computed- Returns:
- attitude on the specified date and position-velocity state
-
getAttitudeRotation
public <T extends CalculusFieldElement<T>> FieldRotation<T> getAttitudeRotation(FieldPVCoordinatesProvider<T> pvProv, FieldAbsoluteDate<T> date, Frame frame) Compute the attitude-related rotation corresponding to an orbital state.- Specified by:
getAttitudeRotationin interfaceAttitudeProvider- Type Parameters:
T- type of the field elements- Parameters:
pvProv- local position-velocity provider around current datedate- current dateframe- reference frame from which attitude is computed- Returns:
- rotation on the specified date and position-velocity state
-