org.orekit.attitudes
Class TwoSpinBiasSlew

java.lang.Object
  extended by org.orekit.attitudes.AbstractSlew
      extended by org.orekit.attitudes.TwoSpinBiasSlew
All Implemented Interfaces:
Serializable, AttitudeLeg, AttitudeProvider, Slew

public class TwoSpinBiasSlew
extends AbstractSlew

This class extends the AbstractSlew.

The two spin bias slew computes the attitude of the satellite from initial and final attitude laws, the parameters of the two angular velocity fields, plus the time step as well as the stabilization margin.
The angular velocity depends on the value of the slew angle.
Like all the other attitude legs, its interval of validity has closed endpoints.

Since:
2.1
Version:
$Id: TwoSpinBiasSlew.java 17582 2017-05-10 12:58:16Z bignon $
Author:
Tiziana Sabatini
See Also:
Serialized Form
Concurrency :
not thread safe
Concurrency comment :
this class is not thread safe because the local attitude ephemeris is changed.

Field Summary
 
Fields inherited from class org.orekit.attitudes.AbstractSlew
computed, currentProvider, fLaw, iLaw, intervalOfValidity
 
Constructor Summary
TwoSpinBiasSlew(AttitudeProvider initialLaw, AttitudeProvider targetLaw, AbsoluteDate initialDate, double dtSCAOIn, double thetaMaxIn, double tauIn, double epsInRall, double omegaHigh, double thetaSwitch, double epsOutRall, double omegaLow, double tStab)
           This class extends the AbstractSlew.
 
Method Summary
 void compute(PVCoordinatesProvider pvProv)
          Compute the slew corresponding to an orbital state.
 double computeDuration(PVCoordinatesProvider pvProv)
          Computes the actual slew duration.
 double computeMaxDuration()
          Estimate the maximum duration of the slew, before computing it.
 Attitude getAttitude(AbsoluteDate date, Frame frame)
          Compute the attitude.
 TabulatedAttitude getEphemeris()
          Get the attitude ephemeris representing the slew
 Vector3D getSpinDerivatives(AbsoluteDate date, Frame frame)
          get the spin derivatives (default implementation : finite differences differentiator).
 Vector3DFunction getSpinFunction(Frame frame, AbsoluteDate zeroAbscissa)
           
 void setSpinDerivativesComputation(boolean computeSpinDerivatives)
          Method to activate spin derivative computation.
 
Methods inherited from class org.orekit.attitudes.AbstractSlew
getAttitude, getAttitude, getDuration, getTimeInterval
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TwoSpinBiasSlew

public TwoSpinBiasSlew(AttitudeProvider initialLaw,
                       AttitudeProvider targetLaw,
                       AbsoluteDate initialDate,
                       double dtSCAOIn,
                       double thetaMaxIn,
                       double tauIn,
                       double epsInRall,
                       double omegaHigh,
                       double thetaSwitch,
                       double epsOutRall,
                       double omegaLow,
                       double tStab)
                throws OrekitException

This class extends the AbstractSlew.

The two spin bias slew computes the attitude of the satellite from initial and final attitude laws, the parameters of the two angular velocity fields, plus the time step as well as the stabilization margin.
The angular velocity depends on the value of the slew angle.

Parameters:
initialLaw - the AttitudeProvider representing the attitude law before the slew.
targetLaw - the AttitudeProvider representing the attitude law after the slew.
initialDate - the initial date of the slew.
dtSCAOIn - (dtScao) the time step [s].
thetaMaxIn - (angleMax) the limit of validity of the maneuver amplitude [rad].
tauIn - (τ) the time constant of the filter [s].
epsInRall - (seuilEntree) initial orientation error threshold [rad].
omegaHigh - (biaisVitesse) the high angular velocity value [rad/s].
thetaSwitch - (seuil) the threshold for the low/high angular velocity switch [rad].
epsOutRall - (seuilSortie) final orientation error threshold [rad].
omegaLow - (biaisVitesseBas) the low angular velocity value [rad/s].
tStab - (margeStabilisation) the stabilisation margin [s].
Throws:
OrekitException - when the sampling step in not valid
Method Detail

compute

public void compute(PVCoordinatesProvider pvProv)
             throws OrekitException
Description copied from interface: Slew
Compute the slew corresponding to an orbital state.

Parameters:
pvProv - : local position-velocity provider around current date
Throws:
OrekitException - orekit exception

computeDuration

public double computeDuration(PVCoordinatesProvider pvProv)
                       throws OrekitException
Computes the actual slew duration.

Parameters:
pvProv - the PV coordinates provider
Returns:
the actual slew duration
Throws:
OrekitException - when an error occurs during attitudes computation

computeMaxDuration

public double computeMaxDuration()
Estimate the maximum duration of the slew, before computing it.

Returns:
the estimated maximum duration of the slew.

getAttitude

public Attitude getAttitude(AbsoluteDate date,
                            Frame frame)
                     throws OrekitException
Description copied from interface: Slew
Compute the attitude.

Parameters:
date - : current date
frame - : reference frame from which attitude is computed
Returns:
attitude : attitude at the specified date
Throws:
OrekitException - orekit exception

getEphemeris

public TabulatedAttitude getEphemeris()
Get the attitude ephemeris representing the slew

Returns:
the ephemeris

setSpinDerivativesComputation

public void setSpinDerivativesComputation(boolean computeSpinDerivatives)
Method to activate spin derivative computation.

Parameters:
computeSpinDerivatives - true if spin derivatives should be computed

getSpinDerivatives

public Vector3D getSpinDerivatives(AbsoluteDate date,
                                   Frame frame)
                            throws OrekitException
get the spin derivatives (default implementation : finite differences differentiator).

Parameters:
date - the date to compute derivative of spin
frame - reference frame from which derivative of spin is computed
Returns:
the spin derivative
Throws:
OrekitException - if spin derivative cannot be computed

getSpinFunction

public Vector3DFunction getSpinFunction(Frame frame,
                                        AbsoluteDate zeroAbscissa)
Parameters:
frame - reference frame from which spin function of date is computed
zeroAbscissa - the date for which x=0 for spin function of date
Returns:
spin function of date relative


Copyright © 2017 CNES. All Rights Reserved.