org.orekit.propagation.events
Class AlignmentDetector

java.lang.Object
  extended by org.orekit.propagation.events.AbstractDetector
      extended by org.orekit.propagation.events.AlignmentDetector
All Implemented Interfaces:
java.io.Serializable, EventDetector

public class AlignmentDetector
extends AbstractDetector

Finder for satellite/body alignment events.

This class finds alignment events.

Alignment means the conjunction, with some threshold angle, between the satellite position and the projection in the orbital plane of some body position.

The default implementation behavior is to stop propagation when alignment is reached. This can be changed by overriding the eventOccurred method in a derived class.

Version:
$Revision: 3143 $ $Date: 2010-02-19 17:25:34 +0100 (ven. 19 févr. 2010) $
Author:
Pascal Parraud
See Also:
Propagator.addEventDetector(EventDetector), Serialized Form

Field Summary
 
Fields inherited from class org.orekit.propagation.events.AbstractDetector
DEFAULT_MAXCHECK, DEFAULT_THRESHOLD
 
Fields inherited from interface org.orekit.propagation.events.EventDetector
CONTINUE, RESET_DERIVATIVES, RESET_STATE, STOP
 
Constructor Summary
AlignmentDetector(double threshold, Orbit orbit, PVCoordinatesProvider body, double alignAngle)
          Build a new alignment detector.
AlignmentDetector(Orbit orbit, PVCoordinatesProvider body, double alignAngle)
          Build a new alignment detector.
 
Method Summary
 int eventOccurred(SpacecraftState s, boolean increasing)
          Handle an alignment event and choose what to do next.
 double g(SpacecraftState s)
          Compute the value of the switching function.
 double getAlignAngle()
          Get the alignment angle (rad).
 PVCoordinatesProvider getPVCoordinatesProvider()
          Get the body to align.
 
Methods inherited from class org.orekit.propagation.events.AbstractDetector
getMaxCheckInterval, getMaxIterationCount, getThreshold, resetState
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AlignmentDetector

public AlignmentDetector(Orbit orbit,
                         PVCoordinatesProvider body,
                         double alignAngle)
Build a new alignment detector.

The orbit is used only to set an upper bound for the max check interval to period/3 and to set the convergence threshold according to orbit size.

Parameters:
orbit - initial orbit
body - the body to align
alignAngle - the alignment angle (rad)

AlignmentDetector

public AlignmentDetector(double threshold,
                         Orbit orbit,
                         PVCoordinatesProvider body,
                         double alignAngle)
Build a new alignment detector.

The orbit is used only to set an upper bound for the max check interval to period/3.

Parameters:
threshold - convergence threshold (s)
orbit - initial orbit
body - the body to align
alignAngle - the alignment angle (rad)
Method Detail

getPVCoordinatesProvider

public PVCoordinatesProvider getPVCoordinatesProvider()
Get the body to align.

Returns:
the body to align

getAlignAngle

public double getAlignAngle()
Get the alignment angle (rad).

Returns:
the alignment angle

eventOccurred

public int eventOccurred(SpacecraftState s,
                         boolean increasing)
                  throws OrekitException
Handle an alignment event and choose what to do next.

The default implementation behavior is to stop propagation when alignment is reached.

Specified by:
eventOccurred in interface EventDetector
Specified by:
eventOccurred in class AbstractDetector
Parameters:
s - the current state information : date, kinematics, attitude
increasing - if true, the value of the switching function increases when times increases around event.
Returns:
EventDetector.STOP or EventDetector.CONTINUE
Throws:
OrekitException - if some specific error occurs

g

public double g(SpacecraftState s)
         throws OrekitException
Compute the value of the switching function. This function measures the difference between the alignment angle and the angle between the satellite position and the body position projection in the orbital plane.

Specified by:
g in interface EventDetector
Specified by:
g in class AbstractDetector
Parameters:
s - the current state information: date, kinematics, attitude
Returns:
value of the switching function
Throws:
OrekitException - if some specific error occurs


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