User Manual 4.3 Attitude law : Différence entre versions
Ligne 24 : | Ligne 24 : | ||
=== Useful Documents === | === Useful Documents === | ||
None as of now. | None as of now. | ||
+ | |||
+ | === Package Overview === | ||
+ | The general attitude law conception is described hereafter : | ||
+ | |||
+ | [[File:AttitudeLawDiagram.png|center]] | ||
+ | |||
+ | |||
+ | == Features Description == | ||
+ | === Generalities === | ||
+ | The Orekit class <code>AttitudeProvider</code> represents a generic provider for an attitude law. Attitude from an attitude provider can be retrieved using the methods <code>getAttitude(...)</code> | ||
+ | |||
+ | The new <code>AttitudeLaw</code> interface, implementing <code>AttitudeProvider</code> has been added to represent an attitude provider without a time interval of validity. | ||
+ | |||
+ | Instead, to meet spacecraft attitude field needs, a wrapper object has been created. The idea is to provide objects more suited for spacecraft attitude field rather than orbit determination field, that means to associate a specific time interval of validity to the attitude laws. The new objects <code>AttitudeLeg</code> and <code>AttitudeLawLeg</code> meet the requirements. | ||
+ | <code>AttitudeLawLeg</code> wraps an <code>AttitudeLaw</code> object and defines a time interval of validity. This class implements the <code>AttitudeLeg</code> interface which extends the <code>AttitudeProvider</code> interface and adds the methods to get the time interval. | ||
+ | |||
+ | In pratical terms, when it comes to create an attitude law for spacecraft attitude field purposes, the user has to create first an <code>AttitudeLaw</code> which is then given to an <code>AttitudeLawLeg</code> object, in addition to the initial and final date of the time interval of validity: | ||
+ | |||
+ | <syntaxhighlight lang="java"> | ||
+ | // Attitude law leg provider | ||
+ | |||
+ | // Elliptic earth shape | ||
+ | final OneAxisEllipsoid earthShape = new OneAxisEllipsoid(6378136.460, 1 / 298.257222101, frameITRF); | ||
+ | |||
+ | // Target pointing attitude provider over satellite nadir at date, without yaw compensation | ||
+ | final NadirPointing nadirLaw = new NadirPointing(earthShape); | ||
+ | |||
+ | // First date | ||
+ | final AbsoluteDate date1 = new AbsoluteDate(new DateComponents(2012, 01, 01), | ||
+ | TimeComponents.H00, TimeScalesFactory.getUTC()); | ||
+ | // Last date | ||
+ | final AbsoluteDate date2 = date1.shiftedBy(3600); | ||
+ | |||
+ | // Attitude law leg | ||
+ | final AttitudeLawLeg myAttitudeLaw = new AttitudeLawLeg(nadirLaw, date1, date2); | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Besides, compared to Orekit, the <code>Attitude</code> object has been slightly modified. In addition to the rotation and the rotation rate it can also provide the rotation acceleration, and its computation can be activated (or not) by the user. Therefore, an additional <code>getAttitude()</code> method and a <code>setSpinDerivativesComputation(final boolean setSpinDerivatives)</code> method have been created to the <code>AttitudeProvider</code> interface. This last method allows the user to activate the rotation acceleration computation. By default, only the rotation and the angular velocity is computed. | ||
+ | |||
+ | === Available attitude laws === | ||
+ | |||
+ | ==== Ground pointing attitude laws ==== | ||
+ | The satellite x axis is aligned to the satellite velocity vector, and the z axis points to the ground target: | ||
+ | * <u>Body center ground pointing</u>: the satellite z axis is pointing to the body frame center. | ||
+ | |||
+ | * <u>Nadir pointing</u>: the satellite z axis is pointing to the vertical of the ground point under satellite. | ||
+ | |||
+ | * <u>Target ground pointing</u>: the satellite z axis is pointing to a ground point target; | ||
+ | |||
+ | * <u>LOF offset pointing</u>: the attitude pointing law is defined by an attitude provider and the satellite axis vector chosen for pointing. | ||
+ | |||
+ | These laws require a body shape and a frame. | ||
+ | |||
+ | ==== Body center attitude law ==== | ||
+ | The satellite z axis points to a the body center; this law does not require a body shape. | ||
+ | |||
+ | ==== Target attitude law ==== | ||
+ | The satellite z axis points to a target; this law does not require a body shape. | ||
+ | |||
+ | ==== Celestial body pointed attitude law ==== | ||
+ | The celestial body pointed law is defined by two elements: | ||
+ | * a celestial body towards which some satellite axis is exactly aimed | ||
+ | |||
+ | * a phasing reference defining the rotation around the pointing axis | ||
+ | |||
+ | ==== Fixed rate attitude law ==== | ||
+ | The fixed rate attitude law handles a constant rate around a fixed axis. | ||
+ | This corresponding attitude provider performs a simple linear extrapolation from an initial orientation, a rotation axis and a rotation rate. | ||
+ | |||
+ | ==== Constant attitude law ==== | ||
+ | The satellite frame has a constant orientation in a given reference frame. This orientation is defined by a rotation provided by the user. | ||
+ | |||
+ | ==== LOF offset attitude law ==== | ||
+ | It is an attitude law defined by fixed Roll, Pitch and Yaw angles (in any order) with respect to a local orbital frame. | ||
+ | |||
+ | ==== Spin stabilized attitude law ==== | ||
+ | Spin stabilized attitude provider. Spin stabilized laws are handled as wrappers for an underlying non-rotating law. | ||
+ | |||
+ | ==== Yaw compensation attitude law ==== | ||
+ | Yaw compensation is mainly used for Earth observation satellites: as a satellite moves along its track, the image of ground points moves on the focal point of the optical sensor. This motion is a combination of the satellite motion, the Earth rotation and the current attitude (in particular if the pointing includes Roll or Pitch offset). <br> | ||
+ | In order to reduce geometrical distortion, the yaw angle is changed a little from the simple ground pointing attitude such that the apparent motion of ground points is along a prescribed axis (orthogonal to the optical sensor rows), taking into account all effects. | ||
+ | |||
+ | ==== Yaw steering attitude law ==== | ||
+ | Yaw steering is mainly used for low Earth orbiting satellites with no missions-related constraints on yaw angle. It sets the yaw angle in such a way the solar arrays have maximal lightning without changing the roll and pitch. | ||
+ | |||
+ | ==== Two directions attitude law ==== | ||
+ | The two directions provided by this attitude law are the following: | ||
+ | * the first direction is aligned with a given satellite axis; | ||
+ | |||
+ | * the second direction is aligned at best with another given satellite axis. | ||
+ | |||
+ | This attitude law can be used to represent the '''GAP''' (geocentric), and the '''SUP''' (heliocentric) pointing laws. | ||
[[Category:User_Manual_4.3_Attitude]] | [[Category:User_Manual_4.3_Attitude]] |
Version du 3 juin 2019 à 14:49
Introduction
Scope
The purpose of this chapter is to describe the current Patrius attitude laws.
Javadoc
The attitude objects are available in the package fr.cnes.sirius.patrius.attitudes.
Library | Javadoc |
---|---|
Patrius | Package fr.cnes.sirius.patrius.attitudes |
Patrius | Package fr.cnes.sirius.patrius.attitudes |
Links
Orekit attitudes : Orekit Attitudes architecture description
Useful Documents
None as of now.
Package Overview
The general attitude law conception is described hereafter :
Features Description
Generalities
The Orekit class AttitudeProvider
represents a generic provider for an attitude law. Attitude from an attitude provider can be retrieved using the methods getAttitude(...)
The new AttitudeLaw
interface, implementing AttitudeProvider
has been added to represent an attitude provider without a time interval of validity.
Instead, to meet spacecraft attitude field needs, a wrapper object has been created. The idea is to provide objects more suited for spacecraft attitude field rather than orbit determination field, that means to associate a specific time interval of validity to the attitude laws. The new objects AttitudeLeg
and AttitudeLawLeg
meet the requirements.
AttitudeLawLeg
wraps an AttitudeLaw
object and defines a time interval of validity. This class implements the AttitudeLeg
interface which extends the AttitudeProvider
interface and adds the methods to get the time interval.
In pratical terms, when it comes to create an attitude law for spacecraft attitude field purposes, the user has to create first an AttitudeLaw
which is then given to an AttitudeLawLeg
object, in addition to the initial and final date of the time interval of validity:
// Attitude law leg provider // Elliptic earth shape final OneAxisEllipsoid earthShape = new OneAxisEllipsoid(6378136.460, 1 / 298.257222101, frameITRF); // Target pointing attitude provider over satellite nadir at date, without yaw compensation final NadirPointing nadirLaw = new NadirPointing(earthShape); // First date final AbsoluteDate date1 = new AbsoluteDate(new DateComponents(2012, 01, 01), TimeComponents.H00, TimeScalesFactory.getUTC()); // Last date final AbsoluteDate date2 = date1.shiftedBy(3600); // Attitude law leg final AttitudeLawLeg myAttitudeLaw = new AttitudeLawLeg(nadirLaw, date1, date2);
Besides, compared to Orekit, the Attitude
object has been slightly modified. In addition to the rotation and the rotation rate it can also provide the rotation acceleration, and its computation can be activated (or not) by the user. Therefore, an additional getAttitude()
method and a setSpinDerivativesComputation(final boolean setSpinDerivatives)
method have been created to the AttitudeProvider
interface. This last method allows the user to activate the rotation acceleration computation. By default, only the rotation and the angular velocity is computed.
Available attitude laws
Ground pointing attitude laws
The satellite x axis is aligned to the satellite velocity vector, and the z axis points to the ground target:
- Body center ground pointing: the satellite z axis is pointing to the body frame center.
- Nadir pointing: the satellite z axis is pointing to the vertical of the ground point under satellite.
- Target ground pointing: the satellite z axis is pointing to a ground point target;
- LOF offset pointing: the attitude pointing law is defined by an attitude provider and the satellite axis vector chosen for pointing.
These laws require a body shape and a frame.
Body center attitude law
The satellite z axis points to a the body center; this law does not require a body shape.
Target attitude law
The satellite z axis points to a target; this law does not require a body shape.
Celestial body pointed attitude law
The celestial body pointed law is defined by two elements:
- a celestial body towards which some satellite axis is exactly aimed
- a phasing reference defining the rotation around the pointing axis
Fixed rate attitude law
The fixed rate attitude law handles a constant rate around a fixed axis. This corresponding attitude provider performs a simple linear extrapolation from an initial orientation, a rotation axis and a rotation rate.
Constant attitude law
The satellite frame has a constant orientation in a given reference frame. This orientation is defined by a rotation provided by the user.
LOF offset attitude law
It is an attitude law defined by fixed Roll, Pitch and Yaw angles (in any order) with respect to a local orbital frame.
Spin stabilized attitude law
Spin stabilized attitude provider. Spin stabilized laws are handled as wrappers for an underlying non-rotating law.
Yaw compensation attitude law
Yaw compensation is mainly used for Earth observation satellites: as a satellite moves along its track, the image of ground points moves on the focal point of the optical sensor. This motion is a combination of the satellite motion, the Earth rotation and the current attitude (in particular if the pointing includes Roll or Pitch offset).
In order to reduce geometrical distortion, the yaw angle is changed a little from the simple ground pointing attitude such that the apparent motion of ground points is along a prescribed axis (orthogonal to the optical sensor rows), taking into account all effects.
Yaw steering attitude law
Yaw steering is mainly used for low Earth orbiting satellites with no missions-related constraints on yaw angle. It sets the yaw angle in such a way the solar arrays have maximal lightning without changing the roll and pitch.
Two directions attitude law
The two directions provided by this attitude law are the following:
- the first direction is aligned with a given satellite axis;
- the second direction is aligned at best with another given satellite axis.
This attitude law can be used to represent the GAP (geocentric), and the SUP (heliocentric) pointing laws.