org.orekit.attitudes
Class AbstractIsisSpinBiasSlew

java.lang.Object
  extended by org.orekit.attitudes.AbstractSlew
      extended by org.orekit.attitudes.AbstractIsisSpinBiasSlew
All Implemented Interfaces:
Serializable, AttitudeLeg, AttitudeProvider, Slew
Direct Known Subclasses:
IsisAnalyticalSpinBiasSlew, IsisNumericalSpinBiasSlew

public abstract class AbstractIsisSpinBiasSlew
extends AbstractSlew

Abstract class for ISIS spin bias slew: slew with trapezoidal angular velocity profile calculated in GCRF.

Since:
3.3
Version:
$Id: AbstractIsisSpinBiasSlew.java 17582 2017-05-10 12:58:16Z bignon $
Author:
Emmanuel Bignon
See Also:
Serialized Form
Concurrency :
not thread safe

Nested Class Summary
static class AbstractIsisSpinBiasSlew.TypeOfDate
          Type of provided date.
 
Field Summary
protected  double accelDuration
          Duration of the acceleration phase.
protected  double accelMax
          Value of the acceleration step during the first phase.
protected  double decelDuration
          Duration of the deceleration phase.
protected  double decelMax
          Value of the deceleration step during the last phase (assumed > 0).
protected  double dtSCAO
          Time step.
protected  double durationWoTranq
          Duration of the spin bias slew, excluding the tranquillisation phase.
protected  TabulatedAttitude ephem
          Attitude ephemerides of the slew, including the tranquillisation phase.
protected  AbsoluteDate initialOrFinalDate
          Initial or final date of the slew.
protected  Frame refFrame
          Reference frame.
protected  double slewAngle
          Angle of the rotation associated to the spin bias slew.
protected  Vector3D slewAxis
          Axis of the rotation associated to the spin bias slew.
protected  boolean spinDerivativesComputation
          Flag to indicate if spin derivation computation is activated.
protected  AbstractIsisSpinBiasSlew.TypeOfDate typeOfDate
          Type of reference date: initial date or final date.
 
Fields inherited from class org.orekit.attitudes.AbstractSlew
computed, currentProvider, fLaw, iLaw, intervalOfValidity
 
Constructor Summary
AbstractIsisSpinBiasSlew(AttitudeProvider initialLawIn, AttitudeProvider finalLawIn, AbsoluteDate initialOrFinalDateIn, AbstractIsisSpinBiasSlew.TypeOfDate typeOfDateIn, double dtSCAOIn, double thetaMaxAllowedIn, double durationMaxIn, double dtConvergenceThresholdIn, double[][] inertiaMatrixIn, double rwTorqueAllocAccelIn, double rwTorqueAllocDecelIn, double rwDeltaMomentumAllocIn, double[][] rwMatrixIn, double tranquillisationTimeIn)
          Constructor with default maximum number of iterations allowed for slew duration computation's convergence.
AbstractIsisSpinBiasSlew(AttitudeProvider initialLawIn, AttitudeProvider finalLawIn, AbsoluteDate initialOrFinalDateIn, AbstractIsisSpinBiasSlew.TypeOfDate typeOfDateIn, double dtSCAOIn, double thetaMaxAllowedIn, double durationMaxIn, double dtConvergenceThresholdIn, double[][] inertiaMatrixIn, double rwTorqueAllocAccelIn, double rwTorqueAllocDecelIn, double rwDeltaMomentumAllocIn, double[][] rwMatrixIn, double tranquillisationTimeIn, int maxIterationsNumberIn)
          Constructor.
 
Method Summary
 double computeDuration(PVCoordinatesProvider pvProv)
          Computes the slew duration.
 Attitude getAttitude(AbsoluteDate date, Frame frame)
          Compute the attitude.
 TabulatedAttitude getEphemeris()
          Get the attitude ephemeris representing the slew.
 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
 
Methods inherited from interface org.orekit.attitudes.Slew
compute
 

Field Detail

initialOrFinalDate

protected final AbsoluteDate initialOrFinalDate
Initial or final date of the slew.


typeOfDate

protected final AbstractIsisSpinBiasSlew.TypeOfDate typeOfDate
Type of reference date: initial date or final date.


refFrame

protected final Frame refFrame
Reference frame.


dtSCAO

protected final double dtSCAO
Time step.


spinDerivativesComputation

protected boolean spinDerivativesComputation
Flag to indicate if spin derivation computation is activated.


slewAngle

protected double slewAngle
Angle of the rotation associated to the spin bias slew.


slewAxis

protected Vector3D slewAxis
Axis of the rotation associated to the spin bias slew.


durationWoTranq

protected double durationWoTranq
Duration of the spin bias slew, excluding the tranquillisation phase.


accelMax

protected double accelMax
Value of the acceleration step during the first phase.


decelMax

protected double decelMax
Value of the deceleration step during the last phase (assumed > 0).


accelDuration

protected double accelDuration
Duration of the acceleration phase.


decelDuration

protected double decelDuration
Duration of the deceleration phase.


ephem

protected TabulatedAttitude ephem
Attitude ephemerides of the slew, including the tranquillisation phase.

Constructor Detail

AbstractIsisSpinBiasSlew

public AbstractIsisSpinBiasSlew(AttitudeProvider initialLawIn,
                                AttitudeProvider finalLawIn,
                                AbsoluteDate initialOrFinalDateIn,
                                AbstractIsisSpinBiasSlew.TypeOfDate typeOfDateIn,
                                double dtSCAOIn,
                                double thetaMaxAllowedIn,
                                double durationMaxIn,
                                double dtConvergenceThresholdIn,
                                double[][] inertiaMatrixIn,
                                double rwTorqueAllocAccelIn,
                                double rwTorqueAllocDecelIn,
                                double rwDeltaMomentumAllocIn,
                                double[][] rwMatrixIn,
                                double tranquillisationTimeIn)
Constructor with default maximum number of iterations allowed for slew duration computation's convergence.

Parameters:
initialLawIn - attitude law before the slew
finalLawIn - attitude law after the slew
initialOrFinalDateIn - slew initial or final date (choice given by TypeOfDate argument)
typeOfDateIn - defines type of provided date AbstractIsisSpinBiasSlew.TypeOfDate (initial date or final date)
dtSCAOIn - time step (s)
thetaMaxAllowedIn - maximum slew angular amplitude allowed (rad)
durationMaxIn - maximum duration expected for the slew, including the tranquilisation phase (s)
dtConvergenceThresholdIn - convergence threshold for the iterative computation of the slew duration (s)
inertiaMatrixIn - satellite inertia matrix in satellite reference frame (kg.m^2)
rwTorqueAllocAccelIn - torque allocation for each RW during the acceleration phase (N.m)
rwTorqueAllocDecelIn - torque allocation for each RW during the deceleration phase (assumed > 0) (N.m)
rwDeltaMomentumAllocIn - angular momentum allocation for each RW during the manoeuvre (N.m.s)
rwMatrixIn - cosine directors matrix of the reaction wheels in the satellite reference frame. Matrix 3xN_RW with N_RW wheels (Reaction wheels spin axes written in column in the satellite reference frame).
tranquillisationTimeIn - tranquilisation time after the end of the slew (s)

AbstractIsisSpinBiasSlew

public AbstractIsisSpinBiasSlew(AttitudeProvider initialLawIn,
                                AttitudeProvider finalLawIn,
                                AbsoluteDate initialOrFinalDateIn,
                                AbstractIsisSpinBiasSlew.TypeOfDate typeOfDateIn,
                                double dtSCAOIn,
                                double thetaMaxAllowedIn,
                                double durationMaxIn,
                                double dtConvergenceThresholdIn,
                                double[][] inertiaMatrixIn,
                                double rwTorqueAllocAccelIn,
                                double rwTorqueAllocDecelIn,
                                double rwDeltaMomentumAllocIn,
                                double[][] rwMatrixIn,
                                double tranquillisationTimeIn,
                                int maxIterationsNumberIn)
Constructor.

Parameters:
initialLawIn - attitude law before the slew
finalLawIn - attitude law after the slew
initialOrFinalDateIn - initial or final date of the slew (choice given by TypeOfDate argument)
typeOfDateIn - defines type of provided date AbstractIsisSpinBiasSlew.TypeOfDate (initial date or final date)
dtSCAOIn - time step (s)
thetaMaxAllowedIn - maximum slew angular amplitude allowed (rad)
durationMaxIn - maximum duration expected for the slew, including the tranquilisation phase (s)
dtConvergenceThresholdIn - convergence threshold for the iterative computation of the slew duration (s)
inertiaMatrixIn - satellite inertia matrix in satellite reference frame (kg.m^2)
rwTorqueAllocAccelIn - torque allocation for each RW during the acceleration phase (N.m)
rwTorqueAllocDecelIn - torque allocation for each RW during the deceleration phase (assumed > 0) (N.m)
rwDeltaMomentumAllocIn - angular momentum allocation for each RW during the manoeuvre (N.m.s)
rwMatrixIn - cosine directors matrix of the reaction wheels in the satellite reference frame. Matrix 3xN_RW with N_RW wheels (Reaction wheels spin axes written in column in the satellite reference frame).
tranquillisationTimeIn - tranquilisation time after the end of the slew (s)
maxIterationsNumberIn - maximum number of iterations allowed for slew duration computation's convergence
Method Detail

computeDuration

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

Parameters:
pvProv - PV coordinates provider
Returns:
slew duration
Throws:
OrekitException - thrown if an error occurs during attitudes computation

getAttitude

public Attitude getAttitude(AbsoluteDate date,
                            Frame frame)
                     throws OrekitException
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


Copyright © 2017 CNES. All Rights Reserved.