Class AngularSeparationFromSatelliteDetector

    • Constructor Detail

      • AngularSeparationFromSatelliteDetector

        public AngularSeparationFromSatelliteDetector​(PVCoordinatesProvider primaryObject,
                                                      PVCoordinatesProvider secondaryObject,
                                                      double proximityAngle)
        Build a new angular detachment detector.
        Parameters:
        primaryObject - primaryObject, at the center of the proximity zone
        secondaryObject - secondaryObject, that may come close to the primaryObject as seen from the spacecraft
        proximityAngle - proximity angle as seen from spacecraft, at which events are triggered (rad)
      • AngularSeparationFromSatelliteDetector

        protected AngularSeparationFromSatelliteDetector​(AdaptableInterval maxCheck,
                                                         double threshold,
                                                         int maxIter,
                                                         EventHandler handler,
                                                         PVCoordinatesProvider primaryObject,
                                                         PVCoordinatesProvider secondaryObject,
                                                         double proximityAngle)
        Protected constructor with full parameters.

        This constructor is not public as users are expected to use the builder API with the various withXxx() methods to set up the instance in a readable manner without using a huge amount of parameters.

        Parameters:
        maxCheck - maximum checking interval
        threshold - convergence threshold (s)
        maxIter - maximum number of iterations in the event time search
        handler - event handler to call at event occurrences
        primaryObject - primaryObject at the center of the proximity zone
        secondaryObject - secondaryObject, that may come close to the primaryObject as seen from the spacecraft
        proximityAngle - proximity angle as seen from secondaryObject, at which events are triggered (rad)
    • Method Detail

      • getPrimaryObject

        public PVCoordinatesProvider getPrimaryObject()
        Get the primaryObject, at the center of the proximity zone.
        Returns:
        primaryObject
      • getSecondaryObject

        public PVCoordinatesProvider getSecondaryObject()
        Get the secondaryObject.
        Returns:
        secondaryObject
      • getProximityAngle

        public double getProximityAngle()
        Get the proximity angle (rad).
        Returns:
        the proximity angle
      • g

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

        This function measures the angular separation between primary and secondary objects as seen from the spacecraft minus the proximity angle. It therefore triggers decreasing events when the secondary object enters the proximity zone and increasing events when it leaves the proximity zone.

        No shadowing effect is taken into account, so this method is computed and may trigger events even when the secondary object is behind the primary. If such effects must be taken into account the detector must be associated with a predicate filter where the predicate function is based on eclipse conditions.

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