public class CelestialBodyPointed extends Object implements AttitudeProvider
The celestial body pointed law is defined by two main elements:
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.
Constructor and Description |
---|
CelestialBodyPointed(Frame celestialFrame,
PVCoordinatesProvider pointedBody,
org.hipparchus.geometry.euclidean.threed.Vector3D phasingCel,
org.hipparchus.geometry.euclidean.threed.Vector3D pointingSat,
org.hipparchus.geometry.euclidean.threed.Vector3D phasingSat)
Creates new instance.
|
Modifier and Type | Method and Description |
---|---|
<T extends org.hipparchus.RealFieldElement<T>> |
getAttitude(FieldPVCoordinatesProvider<T> pvProv,
FieldAbsoluteDate<T> date,
Frame frame)
Compute the attitude corresponding to an orbital state.
|
Attitude |
getAttitude(PVCoordinatesProvider pvProv,
AbsoluteDate date,
Frame frame)
Compute the attitude corresponding to an orbital state.
|
public CelestialBodyPointed(Frame celestialFrame, PVCoordinatesProvider pointedBody, org.hipparchus.geometry.euclidean.threed.Vector3D phasingCel, org.hipparchus.geometry.euclidean.threed.Vector3D pointingSat, org.hipparchus.geometry.euclidean.threed.Vector3D phasingSat)
celestialFrame
- frame in which phasingCel
is definedpointedBody
- celestial body to point atphasingCel
- phasing reference, in celestial framepointingSat
- satellite vector defining the pointing directionphasingSat
- phasing reference, in satellite framepublic Attitude getAttitude(PVCoordinatesProvider pvProv, AbsoluteDate date, Frame frame) throws OrekitException
getAttitude
in interface AttitudeProvider
pvProv
- local position-velocity provider around current datedate
- current dateframe
- reference frame from which attitude is computedOrekitException
- if attitude cannot be computedpublic <T extends org.hipparchus.RealFieldElement<T>> FieldAttitude<T> getAttitude(FieldPVCoordinatesProvider<T> pvProv, FieldAbsoluteDate<T> date, Frame frame) throws OrekitException
getAttitude
in interface AttitudeProvider
T
- type of the field elementspvProv
- local position-velocity provider around current datedate
- current dateframe
- reference frame from which attitude is computedOrekitException
- if attitude cannot be computedCopyright © 2002-2017 CS Systèmes d'information. All rights reserved.