org.orekit.attitudes
Class YawSteering

java.lang.Object
  extended by org.orekit.attitudes.AbstractAttitudeLaw
      extended by org.orekit.attitudes.GroundPointing
          extended by org.orekit.attitudes.GroundPointingWrapper
              extended by org.orekit.attitudes.YawSteering
All Implemented Interfaces:
Serializable, AttitudeLaw, AttitudeLawModifier, AttitudeProvider

public class YawSteering
extends GroundPointingWrapper

This class handles yaw steering law.

Yaw steering is mainly used for low Earth orbiting satellites with no missions-related constraints on yaw angle. It sets the yaw angle in such a way the solar arrays have maximal lightning without changing the roll and pitch.

The motion in yaw is smooth when the Sun is far from the orbital plane, but gets more and more square like as the Sun gets closer to the orbital plane. The degenerate extreme case with the Sun in the orbital plane leads to a yaw angle switching between two steady states, with instantaneaous π radians rotations at each switch, two times per orbit. This degenerate case is clearly not operationally sound so another pointing mode is chosen when Sun comes closer than some predefined threshold to the orbital plane.

This class can handle (for now) only a theoretically perfect yaw steering (i.e. the yaw angle is exactly the optimal angle). Smoothed yaw steering with a few sine waves approaching the optimal angle will be added in the future if needed.

This attitude is implemented as a wrapper on top of an underlying ground pointing law that defines the roll and pitch angles.

Instances of this class are guaranteed to be immutable.

Author:
Luc Maisonobe
See Also:
GroundPointing, Serialized Form

Constructor Summary
YawSteering(GroundPointing groundPointingLaw, PVCoordinatesProvider sun, Vector3D phasingAxis)
          Creates a new instance.
 
Method Summary
 Attitude getAttitude(PVCoordinatesProvider pvProv, AbsoluteDate date, Frame frame)
          Compute the attitude corresponding to an orbital state.
 TimeStampedAngularCoordinates getCompensation(PVCoordinatesProvider pvProv, AbsoluteDate date, Frame orbitFrame, Attitude base)
          Compute the TimeStampedAngularCoordinates at a given time.
 
Methods inherited from class org.orekit.attitudes.GroundPointingWrapper
getBaseState, getTargetPoint, getTargetPV, getUnderlyingAttitudeLaw, setSpinDerivativesComputation
 
Methods inherited from class org.orekit.attitudes.GroundPointing
getBodyFrame, getBodyShape
 
Methods inherited from class org.orekit.attitudes.AbstractAttitudeLaw
getAttitude, getSpinDerivativesComputation
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.orekit.attitudes.AttitudeProvider
getAttitude
 

Constructor Detail

YawSteering

public YawSteering(GroundPointing groundPointingLaw,
                   PVCoordinatesProvider sun,
                   Vector3D phasingAxis)
Creates a new instance.

Parameters:
groundPointingLaw - ground pointing attitude provider without yaw compensation
sun - sun motion model
phasingAxis - satellite axis that must be roughly in Sun direction (if solar arrays rotation axis is Y, then this axis should be either +X or -X)
Method Detail

getAttitude

public Attitude getAttitude(PVCoordinatesProvider pvProv,
                            AbsoluteDate date,
                            Frame frame)
                     throws OrekitException
Compute the attitude corresponding to an orbital state.

Specified by:
getAttitude in interface AttitudeProvider
Overrides:
getAttitude in class GroundPointing
Parameters:
pvProv - local position-velocity provider around current date
date - current date
frame - reference frame from which attitude is computed
Returns:
attitude attitude on the specified date and position-velocity state
Throws:
OrekitException - if attitude cannot be computed

getCompensation

public TimeStampedAngularCoordinates getCompensation(PVCoordinatesProvider pvProv,
                                                     AbsoluteDate date,
                                                     Frame orbitFrame,
                                                     Attitude base)
                                              throws OrekitException
Compute the TimeStampedAngularCoordinates at a given time.

Specified by:
getCompensation in class GroundPointingWrapper
Parameters:
pvProv - provider for PV coordinates
date - date at which rotation is requested
orbitFrame - reference frame from which attitude is computed
base - base satellite attitude in given frame.
Returns:
compensation rotation at date, i.e rotation between non compensated attitude state and compensated state.
Throws:
OrekitException - if some specific error occurs


Copyright © 2017 CNES. All Rights Reserved.