Class TransitionScanningLaw


  • public class TransitionScanningLaw
    extends AnalyticalAttitudeDataServer
    Implements a smooth transition from Nsl37 to Epsl, or vice versa.

    The scanning law used by this AttitudeDataServer is only valid (to required accuracy) in a short (< 0.5 day) time interval when the spin axis is less than a degree of the ecliptic. The revolving phase angle (nu) is written as nu(t) = 0.5 * acc * t^2 (in preceding mode, that is when nu is close to 0) or as nu(t) = PI + 0.5 * acc * t^2 (in following mode, that is when nu is close to PI). Here t is the time in [days] from the reference time (tRef) of this scanning law, and acc is a constant. On initialization, acc is set to a value such that nu(t) according to this law agrees with Nsl37 (for some suitable choice of initial angles) both in value and rate at t = tRef + T, where T is the ramp-up time (if T > 0) or ramp-down time (if T < 0). At t = tRef the revolving phase is exactly 0 (preceding mode) or PI (following mode). A number of reference quantities can be set as usual by means of setRefTime, setXiRef, setOmegaRef, setTargetPrecRate, and setTargetScanRate from the AnalyticalAttitudeDataServer. Only setNuRef should not be used; it is replaced by setMode(Epsl.Mode). [Nevertheless it is possible to use setNuRef(0.0) instead of setMode(Epsl.Mode.PRECEDING) and setNuRef(Math.PI) instead of setMode(Epsl.Mode.PRECEDING).]

    • Field Detail

      • acc

        protected double acc
      • om0

        protected double om0
      • om1

        protected double om1
      • om2

        protected double om2
      • om3

        protected double om3
      • om4

        protected double om4
      • eps

        protected double eps
        Relative tolerance for exceeding the ramp
    • Constructor Detail

      • TransitionScanningLaw

        public TransitionScanningLaw​(Duration ramp)
        The constructor is the only way to set the duration of the ramp
        Parameters:
        ramp -
    • Method Detail

      • getMode

        public Epsl.Mode getMode()
        Return the Epsl.Mode (preceding or following)
        Returns:
        The mode
      • setMode

        public TransitionScanningLaw setMode​(Epsl.Mode mode)
        Preferred method to set the Epsl.Mode (it can also be set using setNuRef)
        Parameters:
        mode - EPSL preceding or following
        Returns:
        This object with the right mode set
      • getRampDuration

        public Duration getRampDuration()
        Return the duration of the ramp
      • initialize

        public void initialize()
        Initialization mainly calculates the acceleration required for the specified ramp