Package org.orekit.attitudes
Class TorqueFree
java.lang.Object
org.orekit.attitudes.TorqueFree
- All Implemented Interfaces:
AttitudeProvider,AttitudeRotationModel,EventDetectorsProvider,ParameterDriversProvider
This class handles torque-free motion of a general (non-symmetrical) body.
This attitude model is analytical, it can be called at any arbitrary date before or after the date of the initial attitude. Despite being an analytical model, it is not an approximation. It provides the attitude exactly in O(1) time.
The equations are based on Landau and Lifchitz Course of Theoretical Physics, Mechanics vol 1, chapter 37. Some adaptations have been made to Landau and Lifchitz equations:
- inertia can be in any order
- initial conditions can be arbitrary
- signs of several equations have been fixed to work for all initial conditions
- equations have been rewritten to work in all octants
- the φ angle model is based on a precomputed quadrature over one period computed at construction (the Landau and Lifchitz equations 37.17 to 37.20 seem to be wrong)
The precomputed quadrature is performed numerically, but as it is performed only once at construction and the full integrated model over one period is saved, it can be applied analytically later on for any number of periods, hence we consider this attitude mode to be analytical.
- Since:
- 12.0
- Author:
- Luc Maisonobe, Lucas Girodet
-
Field Summary
Fields inherited from interface org.orekit.propagation.events.EventDetectorsProvider
DATATION_ACCURACY -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription<T extends CalculusFieldElement<T>>
FieldAttitude<T> getAttitude(FieldPVCoordinatesProvider<T> pvProv, FieldAbsoluteDate<T> date, Frame frame) Compute the attitude corresponding to an orbital state.getAttitude(PVCoordinatesProvider pvProv, AbsoluteDate date, Frame frame) Compute the attitude corresponding to an orbital state.Get the spacecraft inertia.Get the initial attitude.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.orekit.attitudes.AttitudeProvider
getAttitudeRotation, getAttitudeRotation, getAttitudeRotation, getAttitudeRotation, getEventDetectors, getFieldEventDetectors, getParametersDriversMethods inherited from interface org.orekit.propagation.events.EventDetectorsProvider
getDateDetector, getEventDetectors, getFieldDateDetector, getFieldEventDetectorsMethods inherited from interface org.orekit.utils.ParameterDriversProvider
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
-
Constructor Details
-
TorqueFree
Simple constructor.- Parameters:
initialAttitude- initial attitudeinertia- spacecraft inertia
-
-
Method Details
-
getInitialAttitude
Get the initial attitude.- Returns:
- initial attitude
-
getInertia
Get the spacecraft inertia.- Returns:
- spacecraft inertia
-
getAttitude
Compute the attitude corresponding to an orbital state.- Specified by:
getAttitudein interfaceAttitudeProvider- 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:
getAttitudein interfaceAttitudeProvider- 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
-