Class YawSteering
- java.lang.Object
-
- org.orekit.attitudes.GroundPointing
-
- org.orekit.attitudes.GroundPointingAttitudeModifier
-
- org.orekit.attitudes.YawSteering
-
- All Implemented Interfaces:
AttitudeProvider
,AttitudeProviderModifier
,AttitudeRotationModel
,EventDetectorsProvider
,ParameterDriversProvider
public class YawSteering extends GroundPointingAttitudeModifier implements AttitudeProviderModifier
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 lighting 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 instantaneous π 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
-
-
Field Summary
-
Fields inherited from interface org.orekit.propagation.events.EventDetectorsProvider
DATATION_ACCURACY
-
-
Constructor Summary
Constructors Constructor Description YawSteering(Frame inertialFrame, GroundPointing groundPointingLaw, ExtendedPositionProvider sun, Vector3D phasingAxis)
Creates a new instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T extends CalculusFieldElement<T>>
FieldAttitude<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.-
Methods inherited from class org.orekit.attitudes.GroundPointingAttitudeModifier
getBaseState, getBaseState, getTargetPosition, getTargetPosition, getTargetPV, getTargetPV, getUnderlyingAttitudeProvider
-
Methods inherited from class org.orekit.attitudes.GroundPointing
getAttitudeRotation, getAttitudeRotation, getBodyFrame
-
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
getAttitudeRotation, getAttitudeRotation, getAttitudeRotation, getAttitudeRotation, getEventDetectors, getFieldEventDetectors
-
Methods inherited from interface org.orekit.attitudes.AttitudeProviderModifier
getEventDetectors, getFieldEventDetectors, getParametersDrivers, getUnderlyingAttitudeProvider
-
Methods inherited from interface org.orekit.propagation.events.EventDetectorsProvider
getDateDetector, getFieldDateDetector
-
Methods inherited from interface org.orekit.utils.ParameterDriversProvider
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
-
-
-
-
Constructor Detail
-
YawSteering
public YawSteering(Frame inertialFrame, GroundPointing groundPointingLaw, ExtendedPositionProvider sun, Vector3D phasingAxis)
Creates a new instance.- Parameters:
inertialFrame
- frame in which orbital velocities are computedgroundPointingLaw
- ground pointing attitude provider without yaw compensationsun
- sun motion modelphasingAxis
- 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)- Since:
- 7.1
-
-
Method Detail
-
getAttitude
public Attitude getAttitude(PVCoordinatesProvider pvProv, AbsoluteDate date, Frame frame)
Compute the attitude corresponding to an orbital state.- Specified by:
getAttitude
in interfaceAttitudeProvider
- Specified by:
getAttitude
in interfaceAttitudeProviderModifier
- Overrides:
getAttitude
in classGroundPointing
- 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
-
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:
getAttitude
in interfaceAttitudeProvider
- Specified by:
getAttitude
in interfaceAttitudeProviderModifier
- Overrides:
getAttitude
in classGroundPointing
- 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
-
-