public class AngularSeparationFromSatelliteDetector extends AbstractDetector<AngularSeparationFromSatelliteDetector>
The main use case for this detector is when the primary object is in fact a ground
station, modeled as a TopocentricFrame
and when the secondary
is the Sun
, for computing
optical reflections.
The default handler behavior is to stop
propagation when objects enter the proximity zone. This can be changed by calling
AbstractDetector.withHandler(EventHandler)
after construction.
Propagator.addEventDetector(EventDetector)
DEFAULT_MAX_ITER, DEFAULT_MAXCHECK, DEFAULT_THRESHOLD
Modifier | Constructor and Description |
---|---|
protected |
AngularSeparationFromSatelliteDetector(AdaptableInterval maxCheck,
double threshold,
int maxIter,
EventHandler handler,
PVCoordinatesProvider primaryObject,
PVCoordinatesProvider secondaryObject,
double proximityAngle)
Protected constructor with full parameters.
|
|
AngularSeparationFromSatelliteDetector(PVCoordinatesProvider primaryObject,
PVCoordinatesProvider secondaryObject,
double proximityAngle)
Build a new angular detachment detector.
|
Modifier and Type | Method and Description |
---|---|
protected AngularSeparationFromSatelliteDetector |
create(AdaptableInterval newMaxCheck,
double newThreshold,
int newMaxIter,
EventHandler newHandler)
Build a new instance.
|
double |
g(SpacecraftState s)
Compute the value of the switching function.
|
PVCoordinatesProvider |
getPrimaryObject()
Get the primaryObject, at the center of the proximity zone.
|
double |
getProximityAngle()
Get the proximity angle (rad).
|
PVCoordinatesProvider |
getSecondaryObject()
Get the secondaryObject.
|
getHandler, getMaxCheckInterval, getMaxIterationCount, getThreshold, init, isForward, withHandler, withMaxCheck, withMaxCheck, withMaxIter, withThreshold
public AngularSeparationFromSatelliteDetector(PVCoordinatesProvider primaryObject, PVCoordinatesProvider secondaryObject, double proximityAngle)
primaryObject
- primaryObject, at the center of the proximity zonesecondaryObject
- secondaryObject, that may come close to
the primaryObject as seen from the spacecraftproximityAngle
- proximity angle as seen from spacecraft, at which events are triggered (rad)protected AngularSeparationFromSatelliteDetector(AdaptableInterval maxCheck, double threshold, int maxIter, EventHandler handler, PVCoordinatesProvider primaryObject, PVCoordinatesProvider secondaryObject, double proximityAngle)
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.
maxCheck
- maximum checking intervalthreshold
- convergence threshold (s)maxIter
- maximum number of iterations in the event time searchhandler
- event handler to call at event occurrencesprimaryObject
- primaryObject at the center of the proximity zonesecondaryObject
- secondaryObject, that may come close to
the primaryObject as seen from the spacecraftproximityAngle
- proximity angle as seen from secondaryObject, at which events are triggered (rad)protected AngularSeparationFromSatelliteDetector create(AdaptableInterval newMaxCheck, double newThreshold, int newMaxIter, EventHandler newHandler)
create
in class AbstractDetector<AngularSeparationFromSatelliteDetector>
newMaxCheck
- maximum checking interval (s)newThreshold
- convergence threshold (s)newMaxIter
- maximum number of iterations in the event time searchnewHandler
- event handler to call at event occurrencespublic PVCoordinatesProvider getPrimaryObject()
public PVCoordinatesProvider getSecondaryObject()
public double getProximityAngle()
public double g(SpacecraftState s)
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.
g
in interface EventDetector
g
in class AbstractDetector<AngularSeparationFromSatelliteDetector>
s
- the current state information: date, kinematics, attitudeCopyright © 2002-2023 CS GROUP. All rights reserved.