Class ParameterDrivenDateIntervalDetector

  • All Implemented Interfaces:
    EventDetector

    public class ParameterDrivenDateIntervalDetector
    extends AbstractDetector<ParameterDrivenDateIntervalDetector>
    Detector for date intervals that may be offset thanks to parameter drivers.

    Two dual views can be used for date intervals: either start date/stop date or median date/duration. start/stop drivers and median/duration drivers work in pair. Both drivers in one pair can be selected and their changes will be propagated to the other pair, but attempting to select drivers in both pairs at the same time will trigger an exception. Changing the value of a driver that is not selected should be avoided as it leads to inconsistencies between the pairs.

    Since:
    11.1
    Author:
    Luc Maisonobe
    See Also:
    Propagator.addEventDetector(EventDetector)
    • Constructor Detail

      • ParameterDrivenDateIntervalDetector

        public ParameterDrivenDateIntervalDetector​(String prefix,
                                                   AbsoluteDate refMedian,
                                                   double refDuration)
        Build a new instance.
        Parameters:
        prefix - prefix to use for parameter drivers names
        refMedian - reference interval median date
        refDuration - reference duration
      • ParameterDrivenDateIntervalDetector

        public ParameterDrivenDateIntervalDetector​(String prefix,
                                                   AbsoluteDate refStart,
                                                   AbsoluteDate refStop)
        Build a new instance.
        Parameters:
        prefix - prefix to use for parameter drivers names
        refStart - reference interval start date
        refStop - reference interval stop date
    • Method Detail

      • getStartDriver

        public DateDriver getStartDriver()
        Get the driver for start date.

        Note that the start date is automatically adjusted if either median date or duration are selected and changed.

        Returns:
        driver for start date
      • getStopDriver

        public DateDriver getStopDriver()
        Get the driver for stop date.

        Note that the stop date is automatically adjusted if either median date or duration are selected changed.

        Returns:
        driver for stop date
      • getMedianDriver

        public DateDriver getMedianDriver()
        Get the driver for median date.

        Note that the median date is automatically adjusted if either getStartDriver() start date or stop date are selected changed.

        Returns:
        driver for median date
      • getDurationDriver

        public ParameterDriver getDurationDriver()
        Get the driver for duration.

        Note that the duration is automatically adjusted if either getStartDriver() start date or stop date are selected changed.

        Returns:
        driver for duration
      • g

        public double g​(SpacecraftState s)
        Compute the value of the switching function.

        The function is positive for dates within the interval defined by applying the parameter drivers shifts to reference dates, and negative for dates outside of this interval. Note that if Δt_start - Δt_stop is less than ref_stop.durationFrom(ref_start), then the interval degenerates to empty and the function never reaches positive values.

        Specified by:
        g in interface EventDetector
        Specified by:
        g in class AbstractDetector<ParameterDrivenDateIntervalDetector>
        Parameters:
        s - the current state information: date, kinematics, attitude
        Returns:
        value of the switching function