Class FieldAttitude<T extends CalculusFieldElement<T>>

  • Type Parameters:
    T - type of the field elements
    All Implemented Interfaces:
    FieldTimeShiftable<FieldAttitude<T>,​T>, FieldTimeStamped<T>, TimeShiftable<FieldAttitude<T>>

    public class FieldAttitude<T extends CalculusFieldElement<T>>
    extends Object
    implements FieldTimeStamped<T>, FieldTimeShiftable<FieldAttitude<T>,​T>
    This class handles attitude definition at a given date.

    This class represents the rotation between a reference frame and the satellite frame, as well as the spin of the satellite (axis and rotation rate).

    The state can be slightly shifted to close dates. This shift is based on a linear extrapolation for attitude taking the spin rate into account. It is not intended as a replacement for proper attitude propagation but should be sufficient for either small time shifts or coarse accuracy.

    The instance Attitude is guaranteed to be immutable.

    Author:
    Véronique Pommier-Maurussane
    See Also:
    Orbit, AttitudeProvider
    • Constructor Detail

      • FieldAttitude

        public FieldAttitude​(Frame referenceFrame,
                             TimeStampedFieldAngularCoordinates<T> orientation)
        Creates a new instance.
        Parameters:
        referenceFrame - reference frame from which attitude is defined
        orientation - complete orientation between reference frame and satellite frame, including rotation rate
      • FieldAttitude

        public FieldAttitude​(FieldAbsoluteDate<T> date,
                             Frame referenceFrame,
                             FieldAngularCoordinates<T> orientation)
        Creates a new instance.
        Parameters:
        date - date at which attitude is defined
        referenceFrame - reference frame from which attitude is defined
        orientation - complete orientation between reference frame and satellite frame, including rotation rate
      • FieldAttitude

        public FieldAttitude​(FieldAbsoluteDate<T> date,
                             Frame referenceFrame,
                             FieldRotation<T> attitude,
                             FieldVector3D<T> spin,
                             FieldVector3D<T> acceleration)
        Creates a new instance.
        Parameters:
        date - date at which attitude is defined
        referenceFrame - reference frame from which attitude is defined
        attitude - rotation between reference frame and satellite frame
        spin - satellite spin (axis and velocity, in satellite frame)
        acceleration - satellite rotation acceleration (in satellite frame)
      • FieldAttitude

        public FieldAttitude​(FieldAbsoluteDate<T> date,
                             Frame referenceFrame,
                             Rotation attitude,
                             Vector3D spin,
                             Vector3D acceleration,
                             Field<T> field)
        Creates a new instance.
        Parameters:
        date - date at which attitude is defined
        referenceFrame - reference frame from which attitude is defined
        attitude - rotation between reference frame and satellite frame
        spin - satellite spin (axis and velocity, in satellite frame)
        acceleration - satellite rotation acceleration (in satellite frame)
        field - field used by default
      • FieldAttitude

        public FieldAttitude​(Field<T> field,
                             Attitude attitude)
        Builds an instance for a regular Attitude.
        Parameters:
        field - fields to which the elements belong
        attitude - attitude to convert
    • Method Detail

      • shiftedBy

        public FieldAttitude<T> shiftedBy​(double dt)
        Get a time-shifted attitude.

        The state can be slightly shifted to close dates. This shift is based on a linear extrapolation for attitude taking the spin rate into account. It is not intended as a replacement for proper attitude propagation but should be sufficient for either small time shifts or coarse accuracy.

        Specified by:
        shiftedBy in interface TimeShiftable<T extends CalculusFieldElement<T>>
        Parameters:
        dt - time shift in seconds
        Returns:
        a new attitude, shifted with respect to the instance (which is immutable)
      • shiftedBy

        public FieldAttitude<T> shiftedBy​(T dt)
        Get a time-shifted attitude.

        The state can be slightly shifted to close dates. This shift is based on a linear extrapolation for attitude taking the spin rate into account. It is not intended as a replacement for proper attitude propagation but should be sufficient for either small time shifts or coarse accuracy.

        Specified by:
        shiftedBy in interface FieldTimeShiftable<FieldAttitude<T extends CalculusFieldElement<T>>,​T extends CalculusFieldElement<T>>
        Parameters:
        dt - time shift in seconds
        Returns:
        a new attitude, shifted with respect to the instance (which is immutable)
      • withReferenceFrame

        public FieldAttitude<T> withReferenceFrame​(Frame newReferenceFrame)
        Get a similar attitude with a specific reference frame.

        If the instance reference frame is already the specified one, the instance itself is returned without any object creation. Otherwise, a new instance will be created with the specified reference frame. In this case, the required intermediate rotation and spin between the specified and the original reference frame will be inserted.

        Parameters:
        newReferenceFrame - desired reference frame for attitude
        Returns:
        an attitude that has the same orientation and motion as the instance, but guaranteed to have the specified reference frame
      • getReferenceFrame

        public Frame getReferenceFrame()
        Get the reference frame.
        Returns:
        referenceFrame reference frame from which attitude is defined.
      • getRotationAcceleration

        public FieldVector3D<T> getRotationAcceleration()
        Get the satellite rotation acceleration.

        The rotation acceleration. vector is defined in satellite frame.

        Returns:
        rotation acceleration
        See Also:
        getOrientation(), getRotation()
      • toAttitude

        public Attitude toAttitude()
        Converts to an Attitude instance.
        Returns:
        Attitude with same properties