User Manual 4.12 Attitude Profile

De Wiki
Révision de 19 décembre 2023 à 14:11 par Admin (discussion | contributions) (Page créée avec « __NOTOC__ == Introduction == === Scope === An attitude profile is an attitude law providing the computation of an instantaneous attitude without any reference to the satel... »)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

Introduction

Scope

An attitude profile is an attitude law providing the computation of an instantaneous attitude without any reference to the satellite orbit, nor to its attitude laws sequence. The purpose of this section is to present the attitude profiles available through the Patrius library.

Javadoc

The guidance models and classes are available in the attitude profiles package in the Patrius library.

Library Javadoc
Patrius [[[:Modèle:JavaDoc4.12]]/fr/cnes/sirius/patrius/attitudes/profiles/package-summary.html Package fr.cnes.sirius.patrius.attitudes/profiles]

Links

None as of now.

Useful Documents

None as of now.

Package Overview

Features Description

PATRIUS handles different guidance profiles types:

  • Profile expressed as quaternions represented as polynomials by means of UnivariateFunction: QuaternionPolynomialProfile
  • Profile expressed as quaternions represented as polynomials by means of DatePolynomialFunctionInterface: QuaternionDatePolynomialProfile
  • Profile expressed as quaternions represented as harmonics: QuaternionHarmonicProfile
  • Profile expressed as angular velocities represented as polynomials: AngularVelocitiesPolynomialProfile
  • Profile expressed as angular velocities represented as harmonics: AngularVelocitiesHarmonicProfile

Harmonic guidance profiles

The functions representing the angular velocity of the satellite and the quaternion (or the Euler angles) expressing its orientation can be represented by an harmonic profile. The harmonic profile is a [MAT_TPOL_Home#HFourierSeries Fourier decomposition] of a periodic function:

[math] S_n\left(f(x)\right) = a_0(f) + \sum_{k=1}^n\left(a_k(f)\cos\left(k x {2\pi\over T}\right) + b_k(f)\sin\left(k x {2\pi\over T}\right)\right) [/math]

The period T is generally computed knowing the nodes crossing periods.

The Fourier coefficients (n > 0) of [math]f[/math] (the angular velocity / quaternions / Euler angles function) are given by :

[math] a_0(f) = {1\over T}\int_{-T/2}^{T/2} \! f(t) \, \mathrm{d}t [/math]

[math] b_0(f) = 0 [/math]

[math] a_n(f) = {2\over T}\int_{-T/2}^{T/2} \! f(t) \cos\left(n t {2\pi\over T}\right) \, \mathrm{d}t [/math]

[math] b_n(f) = {2\over T}\int_{-T/2}^{T/2} \! f(t) \sin\left(n t {2\pi\over T}\right) \, \mathrm{d}t [/math]

Polynomial guidance profiles

A polynomial guidance profile is generally composed by several segments (a segment corresponds to a time interval). Each segment contains the coefficients for the computation of a polynomial law representing the quaternion (or the Euler angles), or the angular velocity of the satellite; this polynomial law is valid only inside the time interval associated to the segment.

For a quaternion, the polynomials are defined as :

[math]Qc_k(t) = \begin{pmatrix} \displaystyle\sum_{i=0}^n {a_0}_k^i \left( t-t_k \over {\Delta t} \right) \\ \displaystyle\sum_{i=0}^n {a_1}_k^i \left( t-t_k \over {\Delta t} \right) \\ \displaystyle\sum_{i=0}^n {a_2}_k^i \left( t-t_k \over {\Delta t} \right) \\ \displaystyle\sum_{i=0}^n {a_3}_k^i \left( t-t_k \over {\Delta t} \right) \end{pmatrix}[/math]

And for the angular velocity :

[math]\Omega c_k(t) = \begin{pmatrix} \displaystyle\sum_{i=0}^n {a_x}_k^i \left( \frac{t-t_k}{\Delta t} \right) \\ \displaystyle\sum_{i=0}^n {a_y}_k^i \left( \frac{t-t_k}{\Delta t} \right) \\ \displaystyle\sum_{i=0}^n {a_z}_k^i \left( \frac{t-t_k}{\Delta t} \right) \end{pmatrix}[/math]

Getting Started

Build an harmonic profile from an attitude law

Given :

  • the profile start date origin,
  • the frame of expression frame,
  • the Fourier series for each quaternion q0, q1, q2 and q3,
  • the profile time boundaries timeInterval,

one can build an angular velocities guidance profile using the code snippet below :

profile = new QuaternionHarmonicProfile(origin, frame, q0, q1, q2, q3, timeInterval);

Contents

Interfaces

Interface Summary Javadoc
AttitudeProfile Interface for all attitude profiles. [[[:Modèle:JavaDoc4.12]]/fr/cnes/sirius/patrius/attitudes/profiles/AttitudeProfile.html ...]

Classes

Class Summary Javadoc
QuaternionHarmonicProfile Object representing a quaternion guidance profile, calculated with Fourier series. [[[:Modèle:JavaDoc4.12]]/fr/cnes/sirius/patrius/guidance/QuaternionHarmonicProfile.html ...]
QuaternionPolynomialProfile Object representing a quaternion guidance profile, calculated with polynomials by means of QuaternionPolynomialSegment. [[[:Modèle:JavaDoc4.12]]/fr/cnes/sirius/patrius/guidance/QuaternionPolynomialProfile.html ...]
QuaternionDatePolynomialProfile Object representing a quaternion guidance profile, calculated with polynomials by means of QuaternionDatePolynomialSegment. [[[:Modèle:JavaDoc4.12]]/fr/cnes/sirius/patrius/guidance/QuaternionDatePolynomialProfile.html ...]
QuaternionPolynomialSegment Object representing a quaternion polynomial guidance profile on a segment by means of UnivariateFunction. [[[:Modèle:JavaDoc4.12]]/fr/cnes/sirius/patrius/guidance/QuaternionPolynomialSegment.html ...]
QuaternionDatePolynomialSegment Object representing a quaternion polynomial guidance profile on a segment by means of DatePolynomialFunctionInterface. [[[:Modèle:JavaDoc4.12]]/fr/cnes/sirius/patrius/guidance/QuaternionDatePolynomialSegment.html ...]
AngularVelocitiesHarmonicProfile Represents an angular velocities guidance profile, calculated with Fourier series. [[[:Modèle:JavaDoc4.12]]/fr/cnes/sirius/patrius/guidance/AngularVelocitiesHarmonicProfile.html ...]
AngularVelocitiesPolynomialProfile Represents an angular velocities guidance profile, calculated with polynomial functions. [[[:Modèle:JavaDoc4.12]]/fr/cnes/sirius/patrius/guidance/AngularVelocitiesPolynomialProfile.html ...]
AngularVelocitiesPolynomialProfileLeg Object representing an angular velocity polynomial guidance profile on a segment. [[[:Modèle:JavaDoc4.12]]/fr/cnes/sirius/patrius/guidance/AngularVelocitiesPolynomialProfileLeg.html ...]