DEIMOS
Earth Observation Mission CFI Software
Pointing Software User Manual
ESA

EECFI::SatNomTransId Class Reference

Class for storing the Satellite Nominal Attitude configuration parameters. More...

Inheritance diagram for EECFI::SatNomTransId:
EECFI::CfiId EECFI::CfiClass

List of all members.

Public Member Functions

 SatNomTransId ()
 Empty Class constructor.
 ~SatNomTransId () throw (CfiError)
 Class destructor.
void init (long aocsModel) throw (CfiError)
 Initialise using AOCS model.
void init (long model, const vector< double > &modelParams) throw (CfiError)
 Initialise satellite nominal attitude model for a given satellite.
void init (long angleType, const vector< long > &harmTypePitch, const vector< long > &harmTypeRoll, const vector< long > &harmTypeYaw, const vector< double > &harmCoeffPitch, const vector< double > &harmCoeffRoll, const vector< double > &harmCoeffYaw) throw (CfiError)
 Initialise satellite orbital to satellite nominal attitude mispointing angles for a given satellite with harmonics.
void init (const TimeCorrelation &timeId, const vector< string > &files, long timeInitMode, long timeRef, double time0, double time1) throw (CfiError)
 Initialise satellite nominal attitude angles for a given satellite reading values from the attitude files.
long getAOCS () const throw (CfiError)
 Get AOCS parameters.
void setAOCS (long aocsModel) throw (CfiError)
 Change initialisation AOCS parameters from the object.
ParamModel getParam () const throw (CfiError)
 Get initialisation parameters of object.
void setParam (const ParamModel &paramModel) throw (CfiError)
 Change initialisation parameters of the object.
HarmonicModel getHarmonic () const throw (CfiError)
 Get harmonic parameters of object.
void setHarmonic (const HarmonicModel &harmModel) throw (CfiError)
 Change harmonic parameters of the object.
AttFileModel getFile () const throw (CfiError)
 Get file data of object.
void setFile (const AttFileModel &fileModel) throw (CfiError)
 Change initialisation file data of the object.
void setAzElDefinition (const AzElDefinition &azElDef) throw (CfiError)
 Set azimuth/elevation definition.
SatId satId () const
 Return satellite id.

Protected Member Functions

GenericIdgetId ()
 Get the id.
void eraseObject () throw (CfiError)
 Erase object and free memory.

Detailed Description

Class for storing the Satellite Nominal Attitude configuration parameters.


Constructor & Destructor Documentation

EECFI::SatNomTransId::SatNomTransId (  ) 

Empty Class constructor.

EECFI::SatNomTransId::~SatNomTransId (  )  throw (CfiError)

Class destructor.

References eraseObject().


Member Function Documentation

void EECFI::SatNomTransId::eraseObject (  )  throw (CfiError) [protected]

Erase object and free memory.

References EECFI::CfiId::status(), EECFI::CfiId::subtractInstance(), and EECFI::CfiClass::throwWarn.

Referenced by ~SatNomTransId().

long EECFI::SatNomTransId::getAOCS (  )  const throw (CfiError)

Get AOCS parameters.

Returns:
AOCS model.

References EECFI::CfiError::addMsg(), and EECFI::CfiClass::throwWarn.

GenericId * EECFI::SatNomTransId::getId (  )  [protected]

Get the id.

Returns:
Pointer to xp_sat_nom_trans_id.
ParamModel EECFI::SatNomTransId::getParam (  )  const throw (CfiError)

Get initialisation parameters of object.

Returns:
Parameters of model; the size of the returning vector will be always 15, but meaningful positions depend on the model.

References EECFI::CfiError::addMsg(), EECFI::ParamModel::model, EECFI::ParamModel::modelParam, and EECFI::CfiClass::throwWarn.

void EECFI::SatNomTransId::init ( long  model,
const vector< double > &  modelParams 
) throw (CfiError)

Initialise satellite nominal attitude model for a given satellite.

Parameters:
model Model (SatNominalAttModelEnum).
modelParams Vector with parameters of the corresponding model.

Model parameters depending on the attitude model
Attitude Model Array Element Description (Reference) Unit (Format)
XPCFI_MODEL_GENERIC [0] First Axis enumeration value -
[1] First Target enumeration value -
[2] First Vector[0] - or deg
[3] First Vector[1] - or deg
[4] First Vector[2] - or deg
[5] Second Axis enumeration value -
[6] Second Target enumeration value -
[7] Second Vector[0] - or deg
[8] Second Vector[1] - or deg
[9] Second Vector[2] - or deg
XPCFI_MODEL_ENVISAT [0] AOCS Cx parameter [pitch] deg
[1] AOCS Cy parameter [roll] deg
[2] AOCS Cz parameter [yaw] deg
XPCFI_MODEL_CRYOSAT [0] Local Normal Z Coefficient -
XPCFI_MODEL_ADM [0] Scan Angle deg
[1] Scan Limit deg
[2] Velocity Offset m/s
XPCFI_MODEL_SENTINEL1 [0] Local Normal Coefficient -
[1] Earth‘s angular velocity vector rad/s
[2] Antenna bore sight off nadir angle at
reference altitude
deg
[3] Reference altitude m
[4] Roll steering sensitivity versus altitude deg/km
[5] h0 m
[6] h1 m
[7] h2 m
[8] h3 m
[9] h4 m
[10] φ1 rad
[11] φ2 rad
[12] φ3 rad
[13] φ4 rad

Generic Model description

The generic model builds the reference frames from the specified direction vectors.
The model parameters are:
  • first_axis: It can be any of {+/-XPCFI_X_AXIS, +/-XPCFI_Y_AXIS, +/-XPCFI_Z_AXIS}
  • first_target: It can be any of {XPCFI_SUN_VEC, XPCFI_MOON_VEC, XPCFI_EARTH_VEC, XPCFI_NADIR_VEC, XPCFI_INERTIAL_VEL_VEC, XPCFI_EF_VEL_VEC, XPCFI_INERTIAL_TARGET_VEC, XPCFI_EF_TARGET_VEC, XPCFI_SC_EF_VEL_VEC, XPCFI_ORBIT_POLE, XPCFI_INERTIAL_POS_VEC_CORRECTED, XPCFI_INERTIAL_VEL_VEC_ROTATED}
  • first_vector[3]: contains either:
    • dummies
    • [long, lat, alt] if first target = XPCFI_EF_TARGET_VEC
    • [ra, decl, parallax] if first target = XPCFI_INERTIAL_TARGET_VEC
    • correction coefficients if first target = XPCFI_INERTIAL_POS_VEC_CORRECTED
    • rotation vector if first target = XPCFI_INERTIAL_VEL_VEC_ROTATED
  • second_axis: It can be any of {+/-XPCFI_X_AXIS, +/-XPCFI_Y_AXIS, +/-XPCFI_Z_AXIS}
  • second_target: : It can be any of {XPCFI_SUN_VEC, XPCFI_MOON_VEC, XPCFI_EARTH_VEC, XPCFI_NADIR_VEC, XPCFI_INERTIAL_VEL_VEC, XPCFI_EF_VEL_VEC, XPCFI_INERTIAL_TARGET_VEC, XPCFI_EF_TARGET_VEC, XPCFI_SC_EF_VEL_VEC, XPCFI_ORBIT_POLE, XPCFI_INERTIAL_POS_VEC_CORRECTED, XPCFI_INERTIAL_VEL_VEC_ROTATED}
  • second_vector[3]: contains either:
    • dummies
    • [long, lat, alt] if second target= XPCFI_EF_TARGET_VEC
    • [ra, decl, parallax] if fsecond target=XPCFI_INERTIAL_TARGET_VEC
    • correction coefficients if second target=XPCFI_INERTIAL_POS_VEC_CORRECTED
    • rotation vector if second target = XPCFI_INERTIAL_VEL_VEC_ROTATED
It is necessary to define a convention for each target type (e.g, always from Satellite to XXX):
  • XPCFI_SUN_VEC: Unit direction vector from Satellite to Sun
  • XPCFI_MOON_VEC: Unit direction vector from Satellite to Moon
  • XPCFI_EARTH_VEC: Unit direction vector from Satellite to Earth centre (opposite to Satellite Position Vector)
  • XPCFI_NADIR_VEC: Unit direction vector from Satellite to Nadir point
  • XPCFI_INERTIAL_VEL_VEC: Inertial Velocity vector (in TOD)
  • XPCFI_EF_VEL_VEC: Earth Fixed Velocity vector
  • XPCFI_INERTIAL_TARGET_VEC: Unit direction vector from Satellite to a target defined by a given [ra, decl, parallax]. The annual parallax is used in case we are pointing to a close object (for instance, the Moon), in order to get the distance. For stars, parallax=0 shall be used, meaning infinite distance. Units: degrees
  • XPCFI_EF_TARGET_VEC: Unit direction vector from Satellite to a target defined by a given [long, lat, alt]
  • XPCFI_SC_EF_VEL_VEC: Satellite Earth Fixed Velocity vector
  • XPCFI_ORBIT_POLE: Unit direction vector normal to the orbital plane (computed as the cross product of the Satellite Position vector and its Velocity vector)
  • XPCFI_INERTIAL_POS_VEC_CORRECTED: Unit Satellite position vector in ToD corrected by coefficients (e.g to approximate the local normal direction)
  • XPCFI_INERTIAL_VEL_VEC_ROTATED: Inertial Velocity vector in ToD rotated (e.g correcting for the Earth rotation)
With these parameters, the calculation is done as follows:
  • Compute the unit direction vector specified by first_target
    • Assign the calculated first target vector to the first axis vector
  • Compute the unit direction vector specified by second_target
    • Cross-product of the first axis vector and the second target vector
    • Assign the resulting vector to the second axis vector
    • Complete the right-handed frame
The following are some examples:
** Sun-Fixed Reference Frame
  • model_param = {XPCFI_X_AXIS, XPCFI_SUN_VEC, 0.0, 0.0, 0.0, XPCFI_Z_AXIS, XPCFI_EARTH_VEC, 0.0, 0.0, 0.0}
Then:
  • X-axis = Unit vector from Satellite to Sun (Sun Vector)
  • Z-axis = Unit cross product: X-axis x (Unit vector from Satellite to Earth (Earth Vector))
  • Y-axis = Z-axis x X-axis (completing the right-handed frame)
  • ** Yaw Steering Mode
    • model_param={-XPCFI_Z_AXIS, XPCFI_NADIR_VEC, 0.0, 0.0, 0.0, XPCFI_X_AXIS, XPCFI_EF_VEL_VEC, 0.0, 0.0, 0.0}
    Then:
    • Z-axis = -(Unit vector from Satellite to Nadir (Nadir Vector))
    • X-axis = Unit cross product: Z-axis x (Earth-Fixed Velocity Vector)
    • Y-axis = Z-axis x X-axis (completing the right-handed frame)

    References EECFI::CfiError::addMsg().

    void EECFI::SatNomTransId::init ( long  aocsModel  )  throw (CfiError)

    Initialise using AOCS model.

    Parameters:
    aocsModel AOCS model (SatNominalAttAocsModeEnum).
    void EECFI::SatNomTransId::init ( const TimeCorrelation timeId,
    const vector< string > &  files,
    long  timeInitMode,
    long  timeRef,
    double  time0,
    double  time1 
    ) throw (CfiError)

    Initialise satellite nominal attitude angles for a given satellite reading values from the attitude files.

    Parameters:
    timeId Time correlations.
    files Vector of files.
    timeInitMode Flag for selecting the time range of the initialisation (XPCFI_SEL_TIME or XPCFI_SEL_FILE).
    timeRef Time reference (TimeRefPointingEnum).
    time0 Start of the time range..
    time1 Stop of the time range.
    void EECFI::SatNomTransId::init ( long  angleType,
    const vector< long > &  harmTypePitch,
    const vector< long > &  harmTypeRoll,
    const vector< long > &  harmTypeYaw,
    const vector< double > &  harmCoefPitch,
    const vector< double > &  harmCoefRoll,
    const vector< double > &  harmCoefYaw 
    ) throw (CfiError)

    Initialise satellite orbital to satellite nominal attitude mispointing angles for a given satellite with harmonics.

    The Attitude::compute and Attitude::changeFrame functions will then compute the values as follows:

    harmonic.jpg
    Parameters:
    angleType Type of angle (given by PointingAngleTypeEnum).
    harmTypePitch Type of coefficients:

    • 0= for the bias parameter
    • <0 for the sinus coefficients (-n means that corresponds to the sinus coefficient of order n)
    • >0 for the cosinus coefficients (-n means that corresponds to the cosinus coefficient of order n)

    .

    harmTypeRoll Type of coefficients (bias, sinus, cosinus).
    harmTypeYaw Type of coefficients (bias, sinus, cosinus).
    harmCoefPitch Bias, sinus and cosinus coefficients for the pitch angle.
    harmCoefRoll Bias, sinus and cosinus coefficients for the roll angle.
    harmCoefYaw Bias, sinus and cosinus coefficients for the yaw angle.

    References EECFI::CfiError::addMsg().

    SatId EECFI::SatNomTransId::satId (  )  const

    Return satellite id.

    Returns:
    Satellite id.
    void EECFI::SatNomTransId::setAOCS ( long  aocsModel  )  throw (CfiError)

    Change initialisation AOCS parameters from the object.

    Parameters:
    aocsModel AOCS model.

    References EECFI::CfiError::addMsg().

    void EECFI::SatNomTransId::setAzElDefinition ( const AzElDefinition azElDef  )  throw (CfiError)

    Set azimuth/elevation definition.

    Parameters:
    azElDef Definition of azimuth and elevation.
    void EECFI::SatNomTransId::setFile ( const AttFileModel fileModel  )  throw (CfiError)

    Change initialisation file data of the object.

    Parameters:
    fileModel File model data.

    References EECFI::CfiError::addMsg().

    void EECFI::SatNomTransId::setHarmonic ( const HarmonicModel harmonicModel  )  throw (CfiError)

    Change harmonic parameters of the object.

    Parameters:
    harmonicModel Harmonic model data.

    References EECFI::CfiError::addMsg().

    void EECFI::SatNomTransId::setParam ( const ParamModel paramModel  )  throw (CfiError)

    Change initialisation parameters of the object.

    Parameters:
    paramModel Parameters of model.

    References EECFI::CfiError::addMsg().


    Generated on Thu Jul 15 2010 10:11:14 for by doxygen 1.7.1