Class FieldSignalTravelTimeAdjustableEmitter<T extends CalculusFieldElement<T>>


  • public class FieldSignalTravelTimeAdjustableEmitter<T extends CalculusFieldElement<T>>
    extends Object
    Class for computing signal time of travel with an adjustable emitter and a fixed receiver's position and date. The delay is calculated via a fixed-point algorithm with customizable settings (even enabling instantaneous transmission).
    Since:
    14.0
    Author:
    Romain Serra
    See Also:
    SignalTravelTimeAdjustableEmitter
    • Field Detail

      • C_RECIPROCAL

        protected static final double C_RECIPROCAL
        Reciprocal for light speed.
        See Also:
        Constant Field Values
    • Constructor Detail

      • FieldSignalTravelTimeAdjustableEmitter

        public FieldSignalTravelTimeAdjustableEmitter​(FieldPVCoordinatesProvider<T> adjustableEmitterPVProvider)
        Constructor with default iteration settings.
        Parameters:
        adjustableEmitterPVProvider - adjustable emitter
      • FieldSignalTravelTimeAdjustableEmitter

        public FieldSignalTravelTimeAdjustableEmitter​(FieldPVCoordinatesProvider<T> adjustableEmitterPVProvider,
                                                      ConvergenceChecker<T> convergenceChecker)
        Constructor.
        Parameters:
        adjustableEmitterPVProvider - adjustable emitter
        convergenceChecker - convergence checker for fixed-point algorithm
    • Method Detail

      • computeDelay

        public T computeDelay​(FieldVector3D<T> receiverPosition,
                              FieldAbsoluteDate<T> signalArrivalDate,
                              Frame frame)
        Compute propagation delay on a link leg (typically downlink or uplink) without custom guess.
        Parameters:
        receiverPosition - fixed position of receiver at signalArrivalDate
        signalArrivalDate - date at which the signal arrives to receiver
        frame - Inertial frame in which receiver is defined.
        Returns:
        positive delay between signal emission and signal reception dates
      • computeDelay

        public T computeDelay​(FieldAbsoluteDate<T> approxEmissionDate,
                              FieldVector3D<T> receiverPosition,
                              FieldAbsoluteDate<T> signalArrivalDate,
                              Frame frame)
        Compute propagation delay on a link leg (typically downlink or uplink).
        Parameters:
        approxEmissionDate - approximate emission date
        receiverPosition - fixed position of receiver at signalArrivalDate
        signalArrivalDate - date at which the signal arrives to receiver
        frame - Inertial frame in which receiver is defined.
        Returns:
        positive delay between signal emission and signal reception dates
      • computeShift

        protected T computeShift​(T offset,
                                 T delay)
        Computes the time shift.
        Parameters:
        offset - time offset
        delay - time delay
        Returns:
        time shift to use in computation
      • getConvergenceChecker

        public ConvergenceChecker<T> getConvergenceChecker()
        Getter for the convergence checker.
        Returns:
        checker
      • compute

        protected T compute​(FieldPVCoordinatesProvider<T> pvCoordinatesProvider,
                            T initialOffset,
                            FieldVector3D<T> fixedPosition,
                            FieldAbsoluteDate<T> guessDate,
                            Frame frame)
        Compute propagation delay on a link leg (typically downlink or uplink). The max. iteration number and convergence checker can be tweaked to emulate no-delay a.k.a. instantaneous transmission.
        Parameters:
        pvCoordinatesProvider - adjustable emitter/receiver
        initialOffset - guess for the time off set
        fixedPosition - fixed receiver/emitter position
        guessDate - guess for emission/reception date
        frame - Inertial frame in which receiver/emitter is defined.
        Returns:
        positive delay between signal emission and signal reception dates