org.orekit.attitudes
Class CelestialBodyPointed

java.lang.Object
  extended by org.orekit.attitudes.CelestialBodyPointed
All Implemented Interfaces:
java.io.Serializable, AttitudeLaw

public class CelestialBodyPointed
extends java.lang.Object
implements AttitudeLaw

This class handles a celestial body pointed attitude law.

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 last 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 references are never aligned with the pointing references. 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.

Version:
$Revision: 3111 $ $Date: 2010-02-10 17:45:39 +0100 (mer. 10 févr. 2010) $
Author:
Luc Maisonobe
See Also:
Serialized Form

Constructor Summary
CelestialBodyPointed(Frame celestialFrame, PVCoordinatesProvider pointedBody, org.apache.commons.math.geometry.Vector3D phasingCel, org.apache.commons.math.geometry.Vector3D pointingSat, org.apache.commons.math.geometry.Vector3D phasingSat)
          Creates new instance.
 
Method Summary
 Attitude getAttitude(Orbit orbit)
          Compute the attitude corresponding to an orbital state.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CelestialBodyPointed

public CelestialBodyPointed(Frame celestialFrame,
                            PVCoordinatesProvider pointedBody,
                            org.apache.commons.math.geometry.Vector3D phasingCel,
                            org.apache.commons.math.geometry.Vector3D pointingSat,
                            org.apache.commons.math.geometry.Vector3D phasingSat)
Creates new instance.

Parameters:
celestialFrame - frame in which pointedBody and phasingCel are defined
pointedBody - celestial body to point at
phasingCel - phasing reference, in celestial frame
pointingSat - satellite vector defining the pointing direction
phasingSat - phasing reference, in satellite frame
Method Detail

getAttitude

public Attitude getAttitude(Orbit orbit)
                     throws OrekitException
Compute the attitude corresponding to an orbital state.

Specified by:
getAttitude in interface AttitudeLaw
Parameters:
orbit - orbit state for which attitude is requested
Returns:
attitude attitude on the specified orbit, using orbit inertial frame as its reference frame
Throws:
OrekitException - if attitude cannot be computed


Copyright © 2002-2010 CS Communication & Systèmes. All Rights Reserved.