Class FieldEquinoctialOrbit<T extends CalculusFieldElement<T>>

java.lang.Object
org.orekit.orbits.FieldOrbit<T>
org.orekit.orbits.FieldEquinoctialOrbit<T>
Type Parameters:
T - type of the field elements
All Implemented Interfaces:
PositionAngleBased<FieldEquinoctialOrbit<T>>, FieldTimeShiftable<ShiftableFieldPVCoordinatesHolder<FieldOrbit<T>,T>,T>, FieldTimeStamped<T>, TimeShiftable<ShiftableFieldPVCoordinatesHolder<FieldOrbit<T>,T>>, FieldPVCoordinatesProvider<T>, ShiftableFieldPVCoordinatesHolder<FieldOrbit<T>,T>

public class FieldEquinoctialOrbit<T extends CalculusFieldElement<T>> extends FieldOrbit<T> implements PositionAngleBased<FieldEquinoctialOrbit<T>>
This class handles equinoctial orbital parameters, which can support both circular and equatorial orbits.

The parameters used internally are the equinoctial elements which can be related to Keplerian elements as follows:

     a
     ex = e cos(ω + Ω)
     ey = e sin(ω + Ω)
     hx = tan(i/2) cos(Ω)
     hy = tan(i/2) sin(Ω)
     lv = v + ω + Ω
   
where ω stands for the Perigee Argument and Ω stands for the Right Ascension of the Ascending Node.

The conversion equations from and to Keplerian elements given above hold only when both sides are unambiguously defined, i.e. when orbit is neither equatorial nor circular. When orbit is either equatorial or circular, the equinoctial parameters are still unambiguously defined whereas some Keplerian elements (more precisely ω and Ω) become ambiguous. For this reason, equinoctial parameters are the recommended way to represent orbits. Note however than the present implementation does not handle non-elliptical cases.

The instance EquinoctialOrbit is guaranteed to be immutable.

Since:
9.0
Author:
Mathieu Roméro, Luc Maisonobe, Guylaine Prat, Fabien Maussion, Véronique Pommier-Maurussane
See Also:
  • Constructor Details

    • FieldEquinoctialOrbit

      public FieldEquinoctialOrbit(T a, T ex, T ey, T hx, T hy, T l, PositionAngleType type, PositionAngleType cachedPositionAngleType, Frame frame, FieldAbsoluteDate<T> date, T mu) throws IllegalArgumentException
      Creates a new instance.
      Parameters:
      a - semi-major axis (m)
      ex - e cos(ω + Ω), first component of eccentricity vector
      ey - e sin(ω + Ω), second component of eccentricity vector
      hx - tan(i/2) cos(Ω), first component of inclination vector
      hy - tan(i/2) sin(Ω), second component of inclination vector
      l - (M or E or v) + ω + Ω, mean, eccentric or true longitude argument (rad)
      type - type of longitude argument
      cachedPositionAngleType - type of cached longitude argument
      frame - the frame in which the parameters are defined (must be a pseudo-inertial frame)
      date - date of the orbital parameters
      mu - central attraction coefficient (m³/s²)
      Throws:
      IllegalArgumentException - if eccentricity is equal to 1 or larger or if frame is not a pseudo-inertial frame
      Since:
      12.1
    • FieldEquinoctialOrbit

      public FieldEquinoctialOrbit(T a, T ex, T ey, T hx, T hy, T l, PositionAngleType type, Frame frame, FieldAbsoluteDate<T> date, T mu) throws IllegalArgumentException
      Creates a new instance.
      Parameters:
      a - semi-major axis (m)
      ex - e cos(ω + Ω), first component of eccentricity vector
      ey - e sin(ω + Ω), second component of eccentricity vector
      hx - tan(i/2) cos(Ω), first component of inclination vector
      hy - tan(i/2) sin(Ω), second component of inclination vector
      l - (M or E or v) + ω + Ω, mean, eccentric or true longitude argument (rad)
      type - type of longitude argument
      frame - the frame in which the parameters are defined (must be a pseudo-inertial frame)
      date - date of the orbital parameters
      mu - central attraction coefficient (m³/s²)
      Throws:
      IllegalArgumentException - if eccentricity is equal to 1 or larger or if frame is not a pseudo-inertial frame
    • FieldEquinoctialOrbit

      public FieldEquinoctialOrbit(T a, T ex, T ey, T hx, T hy, T l, T aDot, T exDot, T eyDot, T hxDot, T hyDot, T lDot, PositionAngleType type, PositionAngleType cachedPositionAngleType, Frame frame, FieldAbsoluteDate<T> date, T mu) throws IllegalArgumentException
      Creates a new instance.
      Parameters:
      a - semi-major axis (m)
      ex - e cos(ω + Ω), first component of eccentricity vector
      ey - e sin(ω + Ω), second component of eccentricity vector
      hx - tan(i/2) cos(Ω), first component of inclination vector
      hy - tan(i/2) sin(Ω), second component of inclination vector
      l - (M or E or v) + ω + Ω, mean, eccentric or true longitude argument (rad)
      aDot - semi-major axis derivative (m/s)
      exDot - d(e cos(ω + Ω))/dt, first component of eccentricity vector derivative
      eyDot - d(e sin(ω + Ω))/dt, second component of eccentricity vector derivative
      hxDot - d(tan(i/2) cos(Ω))/dt, first component of inclination vector derivative
      hyDot - d(tan(i/2) sin(Ω))/dt, second component of inclination vector derivative
      lDot - d(M or E or v) + ω + Ω)/dr, mean, eccentric or true longitude argument derivative (rad/s)
      type - type of longitude argument
      cachedPositionAngleType - of cached longitude argument
      frame - the frame in which the parameters are defined (must be a pseudo-inertial frame)
      date - date of the orbital parameters
      mu - central attraction coefficient (m³/s²)
      Throws:
      IllegalArgumentException - if eccentricity is equal to 1 or larger or if frame is not a pseudo-inertial frame
      Since:
      12.1
    • FieldEquinoctialOrbit

      public FieldEquinoctialOrbit(T a, T ex, T ey, T hx, T hy, T l, T aDot, T exDot, T eyDot, T hxDot, T hyDot, T lDot, PositionAngleType type, Frame frame, FieldAbsoluteDate<T> date, T mu) throws IllegalArgumentException
      Creates a new instance.
      Parameters:
      a - semi-major axis (m)
      ex - e cos(ω + Ω), first component of eccentricity vector
      ey - e sin(ω + Ω), second component of eccentricity vector
      hx - tan(i/2) cos(Ω), first component of inclination vector
      hy - tan(i/2) sin(Ω), second component of inclination vector
      l - (M or E or v) + ω + Ω, mean, eccentric or true longitude argument (rad)
      aDot - semi-major axis derivative (m/s)
      exDot - d(e cos(ω + Ω))/dt, first component of eccentricity vector derivative
      eyDot - d(e sin(ω + Ω))/dt, second component of eccentricity vector derivative
      hxDot - d(tan(i/2) cos(Ω))/dt, first component of inclination vector derivative
      hyDot - d(tan(i/2) sin(Ω))/dt, second component of inclination vector derivative
      lDot - d(M or E or v) + ω + Ω)/dr, mean, eccentric or true longitude argument derivative (rad/s)
      type - type of longitude argument
      frame - the frame in which the parameters are defined (must be a pseudo-inertial frame)
      date - date of the orbital parameters
      mu - central attraction coefficient (m³/s²)
      Throws:
      IllegalArgumentException - if eccentricity is equal to 1 or larger or if frame is not a pseudo-inertial frame
      Since:
      12.1
    • FieldEquinoctialOrbit

      public FieldEquinoctialOrbit(TimeStampedFieldPVCoordinates<T> pvCoordinates, Frame frame, T mu) throws IllegalArgumentException
      Constructor from Cartesian parameters.

      The acceleration provided in pvCoordinates is accessible using FieldOrbit.getPVCoordinates() and FieldOrbit.getPVCoordinates(Frame). All other methods use mu and the position to compute the acceleration, including shiftedBy(CalculusFieldElement) and FieldOrbit.getPVCoordinates(FieldAbsoluteDate, Frame).

      Parameters:
      pvCoordinates - the position, velocity and acceleration
      frame - the frame in which are defined the FieldPVCoordinates (must be a pseudo-inertial frame)
      mu - central attraction coefficient (m³/s²)
      Throws:
      IllegalArgumentException - if eccentricity is equal to 1 or larger or if frame is not a pseudo-inertial frame
    • FieldEquinoctialOrbit

      public FieldEquinoctialOrbit(FieldPVCoordinates<T> pvCoordinates, Frame frame, FieldAbsoluteDate<T> date, T mu) throws IllegalArgumentException
      Constructor from Cartesian parameters.

      The acceleration provided in pvCoordinates is accessible using FieldOrbit.getPVCoordinates() and FieldOrbit.getPVCoordinates(Frame). All other methods use mu and the position to compute the acceleration, including shiftedBy(CalculusFieldElement) and FieldOrbit.getPVCoordinates(FieldAbsoluteDate, Frame).

      Parameters:
      pvCoordinates - the position end velocity
      frame - the frame in which are defined the FieldPVCoordinates (must be a pseudo-inertial frame)
      date - date of the orbital parameters
      mu - central attraction coefficient (m³/s²)
      Throws:
      IllegalArgumentException - if eccentricity is equal to 1 or larger or if frame is not a pseudo-inertial frame
    • FieldEquinoctialOrbit

      public FieldEquinoctialOrbit(FieldOrbit<T> op)
      Constructor from any kind of orbital parameters.
      Parameters:
      op - orbital parameters to copy
    • FieldEquinoctialOrbit

      public FieldEquinoctialOrbit(Field<T> field, EquinoctialOrbit op)
      Constructor from Field and EquinoctialOrbit.

      Build a FieldEquinoctialOrbit from non-Field EquinoctialOrbit.

      Parameters:
      field - CalculusField to base object on
      op - non-field orbit with only "constant" terms
      Since:
      12.0
    • FieldEquinoctialOrbit

      public FieldEquinoctialOrbit(Field<T> field, Orbit op)
      Constructor from Field and Orbit.

      Build a FieldEquinoctialOrbit from any non-Field Orbit.

      Parameters:
      field - CalculusField to base object on
      op - non-field orbit with only "constant" terms
      Since:
      12.0
  • Method Details