marmottes - logiciels.cnes.fr · 3 7 17/07/01 l. maisonobe, correction d'une coquille et de la...

85
31 506

Upload: buiminh

Post on 12-Sep-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

Composants Hiérarchiquesd'Objets Publics de l'Espace

MARMOTTES

Communication et Systèmes

Systèmes d'Informations

Direction EspaceÉdition : 4 Date : 01/02/2002Révision : 0 Date : 01/02/2002

Réf. : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Documentation mathématique

Rédigé par : le :

L. Maisonobe CS SI/ESPACE/MS

Validé par : le :

0. Queyrut CS SI/ESPACE/ETS

Pour application : le :

Ch. Hulot CS SI/ESPACE/MS

Pièces jointes :

marmottes-mathematique

CS-SIparc de la grande plaine - rue Brindejonc des Moulinais BP 5872

31 506 Toulouse cedex 5Tél. 05 61 17 66 66

Page 2: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : i.1

DIFFUSION INTERNE

Nom Sigle BPiCS SI ESPACE/MS

Observations2 exemplaires

DIFFUSION EXTERNE

Nom SigleCNES DTS/MPI/MS/SG

Observations3 exemplaires

marmottes-mathematique.tex

Page 3: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : i.2

BORDEREAU D'INDEXATION

CONFIDENTIALITÉ :NC

MOTS CLEFS : orientation, attitude, multimission, biblio-thèque

TITRE DU DOCUMENT :Documentation mathématiqueAUTEUR(S) : L. Maisonobe

RÉSUMÉ :Ce document décrit les modèles mathématiques et les méthodes de résolution utilisées par la biblio-thèque multi-missions marmottes et les éléments de plus bas niveau considérés comme réutilisablesqui ont été regroupés dans la bibliothèque cantor.

DOCUMENTS RATTACHÉS : ce document vit seul LOCALISATION :VOLUME : 1 NBRE TOTAL DE PAGES : 84

DONT PAGES LIMINAIRES : 3NBRE DE PAGES SUPPL. :

DOCUMENT COMPOSITE : N LANGUE : FR

GESTION DE CONF. : oui RESP. GEST. CONF. : Luc Maisonobe - CSSICAUSES D'ÉVOLUTION : passage au format CSCONTRAT : NéantSYSTÈME HÔTE : Unix LATEX2ε

marmottes-mathematique.tex

Page 4: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : i.3

MODIFICATIONS

Éd. Rév. Date Référence, Auteur(s), Causes d'évolution1 0 28/02/95 L. Maisonobe1 1 22/08/95 L. Maisonobe, création d'une annexe sur les prolongements2 0 02/10/96 L. Maisonobe, description des algorithmes de recherches de zéros2 1 13/02/97 L. Maisonobe2 2 24/06/97 L. Maisonobe2 3 20/05/98 L. Maisonobe, annexe sur les angles de Cardan3 0 31/05/99 L. Maisonobe, refonte des modèles géométriques pour traiter complètement

les singularités3 1 21/09/99 G. Filaire, L. Maisonobe, ajout des cibles nadir, position, direction et station

pour les capteurs optiques, introduction des diérents repères de base pourles capteurs de Cardan

3 2 07/06/00 L. Maisonobe, préparation pour diusion publique3 3 05/09/00 L. Maisonobe, reformatage des pages liminaires3 4 22/11/00 L. Maisonobe, ajout des capteurs de gain d'antenne, reformulation générale

pour la publication d'une note technique3 5 26/01/01 L. Maisonobe, prise en compte de remarques de relecture3 6 22/06/01 L. Maisonobe, remplacement de horizon par limbe , mise à jour des

documents de référence3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs4 0 01/02/02 L. Maisonobe, création du document CS

marmottes-mathematique.tex

Page 5: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 1

SOMMAIRE

GLOSSAIRE 4

DOCUMENTS DE RÉFÉRENCE 5

DOCUMENTS APPLICABLES 5

1 Introduction 6

2 Description d'orientation 8

2.1 description classique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2 inversion du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.3 conséquences pour l'utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.4 conséquences pour l'implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.5 limitations du modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3 Capteurs 13

3.1 capteurs géométriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.2 capteurs cinématiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4 Lois de pilotage 15

4.1 contrôle par trois capteurs géométriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4.2 contrôle par deux capteurs géométriques et un capteur cinématique . . . . . . . . . . . . . . . . . 16

4.3 contrôle par deux capteurs cinématiques et un capteur géométrique . . . . . . . . . . . . . . . . . 17

4.4 contrôle par trois capteurs cinématiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

marmottes-mathematique.tex

Page 6: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 2

5 Démarche de la résolution 18

6 Orientations respectant deux consignes identiques 19

6.1 cas de deux consignes géométriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

6.2 cas de deux consignes cinématiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

7 fonction d'erreur sur une consigne 30

7.1 cas d'une consigne géométrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

7.2 cas d'une consigne cinématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

8 Modélisation des capteurs 31

8.1 caractéristiques générales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

8.2 caractéristiques des capteurs géométriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

8.3 caractéristiques des capteurs d'ascension droite . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

8.4 caractéristiques des capteurs de déclinaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

8.5 caractéristiques des capteurs optiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

8.6 caractéristiques des capteurs vecteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

8.7 caractéristiques des capteurs plan-vecteurs (élévation) . . . . . . . . . . . . . . . . . . . . . . . . 38

8.8 caractéristiques des capteurs cartésiens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

8.9 caractéristiques des capteurs dièdres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

8.10 caractéristiques des capteurs Terre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

8.11 caractéristiques des capteurs fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

8.12 caractéristiques des capteurs de gain échantillonnés . . . . . . . . . . . . . . . . . . . . . . . . . . 41

8.13 caractéristiques des capteurs de gain en (sin(θ/θ0)/(θ/θ0))2 . . . . . . . . . . . . . . . . . . . . . 41

8.14 caractéristiques des capteurs de gain en fonction gaussienne . . . . . . . . . . . . . . . . . . . . . 42

8.15 caractéristiques des capteurs de Cardan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

8.16 caractéristiques des capteurs cinématiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

8.17 caractéristiques des gyromètres intégrateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

9 Conclusion 44

marmottes-mathematique.tex

Page 7: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 3

A Quaternions 45

B Méthode des trièdres 49

B.1 formalisme matriciel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

B.2 formalisme des quaternions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

C Recherche de vecteurs orthogonaux 53

D Rotation transformant un vecteur en un autre 54

E Rotation d'axe et d'angle donnés 57

F Intersection de cônes sur la sphère 58

G Dérivation automatique 61

G.1 besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

G.2 principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

G.3 formulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

H Recherche des zéros d'une fonction 65

H.1 besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

H.2 principes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

H.3 algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

I rotations de Cardan 76

I.1 ordre : lacet, puis roulis, puis tangage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

I.2 ordre : lacet, puis tangage, puis roulis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

I.3 ordre : roulis, puis lacet, puis tangage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

I.4 ordre : roulis, puis tangage, puis lacet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

I.5 ordre : tangage, puis lacet, puis roulis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

I.6 ordre : tangage, puis roulis, puis lacet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

marmottes-mathematique.tex

Page 8: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 4

GLOSSAIRE

angles de CardanLes angles de Cardan permettent de dénir une rotation quelconque en di-mension 3 par la composition de trois rotations successives autour des troisaxes canoniques dans un ordre qui varie selon les conventions : ~ı puis ~ puis ~k,ou ~k puis ~ı puis ~, ou n'importe quel autre ordre.

angles d'EulerLes angles d'Euler permettent de dénir une rotation quelconque en dimen-sion 3 par la composition de trois rotations successives autour de deux axescanoniques, la première et la troisième rotation se faisant autour d'un axeet la seconde rotation se faisant autour de l'autre axe. La convention la pluscourante consiste à utiliser les axes ~k et ~ı dans l'ordre : ~k puis ~ı puis ~k.

aocsAttitude and Orbit Control System

barbecueMode de pilotage consistant à pointer un axe satellite sur le Soleil et à tournerà vitesse constante autour de cet axe. Ce mode est un mode d'attente sûrpour le satellite, il est souvent utilisé comme mode de survie ou comme moded'attente hors mission, par exemple pendant les phases de mise à poste.

cantorComposants et Algorithmes Numériques Traduits sous forme d'Objets Réuti-lisables, bibliothèque mathématique utilisée par marmottes

capteurÉquipement bord permettant à un satellite de mesurer son mouvement autourde son centre de gravité

mouvement de coningMode de pilotage consistant à faire parcourir à un axe satellite un cône autourdu Soleil à une certaine vitesse angulaire et à tourner à la même vitesse autourde cet axe. Ce mode est très souvent utilisé pour la recherche de la Terre lorsdu passage d'un pointage Soleil à un pointage Terre.

marmottesModélisation d'Attitude par Récupération des Mesures d'Orientation pourTout Type d'Engin Spatial, bibliothèque de simulation de l'orientation dessatellite

scaoSystème de Contrôle d'Attitude et d'Orbite

marmottes-mathematique.tex

Page 9: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 5

DOCUMENTS DE RÉFÉRENCE

[DR1] MARMOTTES manuel d'utilisationESPACE/MS/CHOPE/MARMOTTES/MU/001 , édition 5.0, 01/02/2002

[DR2] Manuel d'utilisation de la bibliothèque CANTORESPACE/MS/CHOPE/CANTOR/MU/001 , édition 5.7, 31/01/2002

[DR3] Manuel d'utilisation de la bibliothèque CLUBSCS/CLUB/MU/2000-001 , édition 6.4, 22/06/2001

[DR4] Cours de technologie spatialetechniques et technologies des véhicules spatiauxcnes, cepadues éditions, isbn : 285428476.3 (vol. 1), 285428477.1 (vol. 2), 285428478.X (vol. 3),Octobre 1998

[DR5] Iterative Optimal Orthogonalization of the Strap down MatrixItzhack Y. Bar-Itzhack, ieee Transactions on Aerospace and Electronic Systems Vol AES-11,January 1975

[DR6] Racines d'une équation par une méthode hybride méthode de BrentJ.-C. Bergès, dts/mpi/ms/mn/98-092 , édition 1.0, 27/11/1998

DOCUMENTS APPLICABLES

Néant

marmottes-mathematique.tex

Page 10: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 6

1 Introduction

Dans toutes les phases de la mise à poste d'un satellite, de l'analyse de mission aux opérations, on est amené àtenir compte de l'orientation du satellite (pour la visibilité radio ou pour l'orientation d'un moteur d'apogée parexemple). La modélisation de l'orientation d'un satellite trois axes pose alors des problèmes nombreux, puisqu'unmême satellite a plusieurs modes de pilotage que l'on modélise généralement par des algorithmes spéciques.

Cette note décrit une méthode très générale de modélisation utilisée opérationnellement avec succès depuisplusieurs années pour les mises à postes de satellites géostationnaires ainsi que pour des analyses de missions,en orbite basse aussi bien qu'en interplanétaire. Cette modélisation permet de simuler au sol l'évolution del'orientation des satellites. Au-delà de la simulation, de nombreux aspects liés à l'orientation ne sont pas couvertspar cette méthode. Ainsi la restitution d'attitude nécessite d'ajouter du ltrage et d'identier les paramètresgés et les paramètres libres pour les lois d'évolution, l'étude du contrôle d'attitude en lui-même nécessite lamodélisation des actuateurs, enn de nombreuses analyses nécessitent de réaliser des simulations multiples pouren extraire des résultats statistiques. La méthode présentée n'a pour vocation que de servir de base à de tellesétudes ou développements.

Toutes les orientations pilotées par trois capteurs mesurant des angles ou des vitesses angulaires peuventêtre modélisées, y compris dans les cas de contrôle hybride comme par exemple l'utilisation simultanée de deuxgyromètres et d'un capteur optique. Ceci couvre directement tous les modes asservis de toutes les plateformesrencontrées par l'auteur sur de nombreux projets dans une large gamme d'orbites.

Certaines lois d'orientation font intervenir des principes plus complexes comme des rendez-vous sur uneplage temporelle étendue ou des contraintes de rattachement entre modes successifs, des modes pilotés en aveugle(c'est-à-dire sans retour d'information de capteurs sur certains axes), voire même des modes non pilotés (le modecaillou de certaines plateformes). Ces lois ne sont pas modélisables d'une façon directe par les méthodes décritesici. Ces méthodes peuvent cependant apporter une certaine aide en étant encapsulées au sein d'algorithmes plusspéciques qui élaborent des consignes pour des pseudo-capteurs dédiés et leur délèguent ensuite le détail de ladétermination d'orientation.

La précision de la simulation n'est limitée que par la précision des paramètres d'entrée. Si les consignescorrespondent à des valeurs théoriques, l'erreur de simulation correspond à la non modélisation de l'erreur depilotage, qui dépend entièrement du système bord de contrôle d'orientation. Si les consignes correspondent à desvaleurs mesurées, l'erreur de simulation correspond à l'erreur de mesure qui dépend entièrement des capteurs.Pour réduire ces erreurs, il est nécessaire d'améliorer les paramètres d'entrée, par exemple en modélisant ladynamique ou en réalisant un ltrage sur une plage de temps ou sur un grand nombre de capteurs.

Outre leur large couverture, les algorithmes présentés apportent une très grande facilité de description deslois d'orientation à l'ingénieur. Ceci allège grandement le travail de modélisation et ore la possibilité de créer deslogiciels réellement multi-missions ayant une représentation dèle de l'orientation réelle. De nombreux avantagesen résultent :

- abilité : les logiciels validés pour une plateforme le sont pour toutes ;- robustesse : les cas dégradés imprévus peuvent être modélisés très rapidement pendant les opérations et sans

modication de code ;- rapidité : aucun développement n'est nécessaire pour implanter une loi d'orientation spécique ;

marmottes-mathematique.tex

Page 11: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 7

- représentativité : le ranage progressif des modèles sous-jacents permis par le potentiel de réutilisation aconduit à la prise en compte de nombreuses notions souvent négligées ;

- répartition des compétences : il n'est plus nécessaire de maîtriser l'ensemble des techniques liées à l'orien-tation pour faire des simulations nes ;

- retour sur investissement : les connaissances acquises portant sur des principes d'un assez haut niveaud'abstraction sont réutilisables d'un projet à l'autre.

En termes de compréhension, les principes de description d'orientation s'abstraient de la représentation ma-thématique. L'utilisateur nal dénit implicitement l'orientation par ses conséquences et n'a aucun besoin decomprendre les mécanismes sous-jacents qui vont élaborer automatiquement le modèle mathématique corres-pondant et le résoudre. Il ne voit que des variables d'ingénierie qui correspondent à ses vraies préoccupations.Ces variables correspondent d'ailleurs très souvent aux télécommandes et aux télémesures de la plateforme.

L'ensemble des algorithmes décrits dans cette note a été implémenté dans une bibliothèque qui a été validéeopérationnellement depuis de nombreuses années : marmottes. Cette bibliothèque est mise gratuitement à ladisposition de quiconque par le cnes sur son serveur de logiciels libres1, que ce soit pour une simple utilisationou pour l'incorporer à des produits commerciaux (des centres de contrôle par exemple). Cette bibliothèque peutêtre appelée depuis des programmes en fortran 77, fortran 90, c (ou tout langage utilisant les mêmes règlesd'édition de liens et de passages de paramètres) et c++. Des interfaces java et corba sont envisagées. Labibliothèque est elle-même écrite en c++.

Cette note correspond à une refonte de l'ancienne documentation mathématique de la bibliothèque mar-mottes. Elle est orienté vers les algorithmes et la méthode de résolution. Pour utiliser eectivement l'implé-mentation de cette méthode qui a été faite au cnes, le lecteur est invité à regarder en complément les manuelsd'utilisation de la bibliothèque marmottes et des bibliothèques sous-jacentes cantor et club ([DR1], [DR2]et [DR3]). Certains détails relatifs à cette implémentation tranparaîssent malgré tout ici et là. Ces détails ontpour seul objectif d'attirer l'attention sur des problèmes pratiques que les équations ne montrent pas toujourscomme les problèmes de singularités numériques, de précision et de performances. Ces détails peuvent être omispar les lecteurs qui ne désirent ni réaliser leur propre implémentation ni modier la bibliothèque publique.

L'ensemble des algorithmes, la conception et la réalisation de la bibliothèque sont issus du travail de l'auteur.De nombreuses personnes ont également contribué à d'autres aspects de marmottes. Geneviève Campan(cnes) a soutenu le projet dès son origine et lui a donné pendant de nombreuses années les moyens d'être menéà bien. Hélène Cottet-Gautier (cnes) a vérié quasiment toutes les versions de toutes les démonstrations eta contribué à nombre de réexions concernant l'implémentation, en particulier pour la modélisation des champsde vue. François Desclaux (cnes) a été le premier utilisateur, il a testé de nombreuses implémentations deces algorithmes et a contribué à des choix stratégiques et a beaucoup collaboré à la spécication des besoins.Géraldine Filaire (cnes) a aidé à la validation des deux grandes refontes récentes concernant l'élimination dessingularités des modèles géométriques et l'introduction des informations topologiques dans le calcul des frontièresde champs de vue, elle est également intervenue sur la bibliothèque elle-même, en réalisant l'implémentationcomplète des modèles non singuliers et en participant à la maintenance évolutive. Enn les équipes de mise àposte de satellites géostationnaires ont validé opérationnellement l'ensemble des algorithmes et du code et ontcontribué à faire de marmottes un produit opérationnel able, elles contribuent régulièrement à la détectiondes bogues et à la spécication de nouvelles fonctionnalités et de nouveaux capteurs.

1http://logiciels.cnes.fr

marmottes-mathematique.tex

Page 12: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 8

2 Description d'orientation

Les principes de description d'orientation adoptés résultent d'une inversion du problème de l'orientation.

2.1 description classique

Très souvent, on modélise l'orientation du satellite par des objets mathématiques d'assez bas niveau tels quedes quaternions, des angles d'Euler ou plus souvent de Cardan(cf. [DR4]) ou des matrices de rotations. Onutilise ensuite ces objets pour convertir des directions d'un repère satellite à un repère inertiel ou réciproquement.

Cette modélisation classique engendre de nombreuses dicultés. La première est qu'elle n'est pas canonique.Prenons un exemple : le quaternion résultant de la simulation d'un simple pointage Terre parcourt une bouclefermée dans un espace en quatre dimensions au cours de l'évolution du satellite sur son orbite. Cette courbene peut pas être traitée manuellement et les éventuels biais n'y apparaîssent pas naturellement. Pourtant, laspécication d'un pointage Terre se résume à quelques mots et éventuellement une ou deux valeurs numériquesde biais. La description par quaternion introduit une explosion de la complexité.

Dans ce cas particulier, les angles de Cardan sont bien mieux adaptés, mais leur utilité s'évanouit pour tousles autres modes de contrôle même les plus simples comme le mode barbecue. Leur utilisation est inextricablepour des modes comme le coning ou les man÷uvres d'apogée par pilotage hybride géométrique/cinématiquepour lesquels aucun choix de repère de base ne permet de simplier les évolutions des angles de base.

La seconde diculté est l'opacité des données manipulées. En reprenant notre exemple, rien ne permet dedistinguer la courbe d'un pointage sans biais d'une courbe avec biais ou d'un asservissement en lacet 2 sur leSoleil et encore moins de retrouver ce biais. Il faut réaliser des calculs pour extraire cette information.

Une troisième diculté est que la description est fortement dépendante de la plateforme. En eet, la plupartdu temps les caractéristiques du Système de Contrôle d'Attitude et d'Orbite et les besoins de pointage sontutilisés pour calculer comment passer d'une orientation théorique de référence à l'orientation cherchée. Ondéduit de la séquence de rotations le quaternion, les angles ou la matrice d'orientation. Les algorithmes réalisantces opérations dépendent d'hypothèses liées au mode de pointage utilisé et de la façon dont ils sont implémentésdans la plateforme.

À elle seule, cette dépendance limite fortement les possibilités de ce mode de description. Les algorithmesliés à la plateforme ne peuvent pas être réutilisés sur une autre. Chacun des modes devant être simulé engendreun développement spécique, même pour un seul satellite. Seuls les cas dégradés ayant été identiés à l'avancepeuvent être pris en compte.

L'obligation de redévelopper des modèles spéciques conduit souvent à se contenter d'une modélisation assezthéorique et très simple, dans laquelle de nombreux paramètres sont omis. On voit rarement les éclipses prisesen compte dans les simulations de pointage solaire ou les inhibitions des capteurs Terre modélisées selon lesdonnées constructeur. Les mésalignements de capteurs, d'antennes et d'actuateurs sont également régulièrementoubliés. Les logiciels sont souvent prévus pour fonctionner avec un seul mode dont le modèle est enfoui dansle code. Dès que l'on change une caractéristique qui n'a pas été prévue, il faut tout refaire et tout revalider,même pour des modes très proches. Un exemple classique ayant déjà été rencontré consiste à modier l'ordre

2yaw steering

marmottes-mathematique.tex

Page 13: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 9

dans lequel les rotations doivent être appliquées ; on a même vu un satellite unique utiliser simultanément deuxconventions diérentes, son simulateur en utilisant bien sûr une troisième. Un autre exemple consiste simplementà permuter les axes satellites, ce qui est classique lorsque l'on passe d'un constructeur à l'autre. Le plus courantreste cependant le simple changement d'un mode.

2.2 inversion du problème

Les dicultés énoncées plus haut sont essentiellement des problèmes liés au couplage fort entre la modélisationmathématique et la description de l'orientation. Il est possible de changer de point de vue et de séparer ces deuxaspects.

Considérons une boucle d'asservissement dans un Système de Contrôle d'Attitude et d'Orbite. Elle com-prend des capteurs (capteur Terre, solaire ou stellaire, gyromètres) et des actuateurs (magnétocoupleurs, tuyères,roues). Les mesures réalisées par les capteurs peuvent être considérées comme résultant des modications d'orien-tation engendrées par les actuateurs et les couples naturels. C'est cette vision qui est sous-jacente à la descriptionclassique. Inverser le problème revient à se placer du côté de la logique de l'asservissement : l'orientation estcette fois considérée comme le résultat de la convergence de la boucle, c'est donc elle qui découle des mesuresréalisées par les capteurs, ou plus exactement des consignes imposées aux capteurs à travers l'asservissement.C'est cette vision inversée qui est sous-jacente à nos modèles.

L'orientation étant un système à trois degrés de liberté, trois valeurs numériques sont nécessaires à chaqueinstant, correspondant aux mesures souhaitées sur trois capteurs. L'utilisateur nal n'a aucun besoin de savoircomment ces consignes sont utilisées pour calculer l'orientation, il ne voit que les consignes elles-mêmes et lescapteurs. Quelques exemples classiques vont permettre d'éclairer notre propos.

En préalable aux exemples de modélisation, il est important de mentionner certaines habitudes de langageconcernant les dénominations de capteurs. Les capteurs mesurant des angles autour d'axes proches de l'axe ~Xdu satellite sont généralement qualiés de capteurs de roulis, les capteurs mesurant des angles autour d'axesproches de l'axe ~Y sont de même qualiés de capteurs de tangage, et les capteurs mesurant des angles autourd'axes proches de l'axe ~Z sont qualiés de capteurs de lacet. Ceci ne signie pas que ces capteurs mesurentdes angles de Cardan à partir d'un repère de référence inertiel, ils peuvent très bien mesurer par exemple unangle dièdre entre le plan (X,Z) et le plan (X, Soleil), on parlera dans ce cas d'un capteur de roulis Soleil. Dansla pratique, il n'existe pas une dénition unique et reconnue des angles de roulis, tangage et lacet, pas mêmedans le cadre des capteurs de Cardan (voir l'annexe I, page 76). Ces habitudes de langage ne font qu'accentuercette multiplicité. Ces conventions sont très classiques, elles se retrouvent en particulier dans les documents desconstructeurs et dans les noms des paramètres de télémesure générés par ces capteurs.

Un autre terme utilisé dans cette note est pseudo-capteur. Ce terme désigne les capteurs modélisés dansles méthodes décrites plus loin mais qui ne correspondent pas à des capteurs physiques existants. Ces pseudo-capteurs sont souvent utilisés pour faciliter la modélisation. Des exemples typiques sont les pseudo-capteursd'ascension droite et de déclinaison ainsi que les pseudo-capteurs de Cardan, très peu de satellites disposantde tels moyens de mesure3.

Les exemples suivants utilisent ces notions de pseudo-capteurs et de capteurs de roulis, tangage ou lacet ; ilscorrespondent à des modes classiques rencontrés dans plusieurs missions.

3quand les valeurs des angles de Cardan sont disponibles dans la télémesure, il s'agit d'une valeur élaborée à bord sur la basede plusieurs mesures élémentaires et d'un modèle d'orbite

marmottes-mathematique.tex

Page 14: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 10

pointage Terre avec biais : ce mode très courant en maintien à poste se décrit ainsi : mesure du capteur roulis Terre : 0

mesure du capteur tangage Terre : +10

mesure du pseudo-capteur angle de Cardan en lacet : 0

asservissement en lacet sur le Soleil : ce mode est traditionnel sur les satellites en orbite basse ; on le dé-signe souvent par sa dénomination anglo-saxone, yaw steering. Sa modélisation est l'une des plussimples qui soient : mesure du capteur roulis Terre : 0

mesure du capteur tangage Terre : 0

mesure du capteur lacet Soleil : 0

On peut facilement introduire des biais dans l'asservissement en lacet : il sut de changer uneconstante par une autre.

mouvement de coning : ce mode est essentiellement rencontré dans les phases de recherche Terre permettantde passer d'un pointage solaire à un pointage Terre ; il fait intervenir un pilotage hybride avec descapteurs optiques et un gyromètre : mesure du capteur tangage Soleil : 15

mesure du capteur lacet Soleil : 0

mesure du capteur vitesse roulis : 0,25/s

petits mouvements autour d'une orientation de référence : le cas d'utilisation typique de ce mode consisteà observer à l'aide des paramètres de télémesure l'orientation réelle du satellite autour d'un poin-tage théorique désiré (par exemple un pointage Terre). On peut utiliser directement les angles deCardan pour cela : mesure du pseudo-capteur roulis : 0,1

mesure du pseudo-capteur tangage : −0,07

mesure du pseudo-capteur lacet : 0,2

En fait, cette utilisation des angles de Cardan n'est pas limitée aux petits angles. Elle perd ce-pendant son côté didactique lorsque les angles grandissent (il faut alors bien se rappeler l'ordredes rotations, sachant qu'aucune convention n'est universelle). L'utilisateur imprudent risque parailleurs de tomber sur les singularités inhérentes à ces angles s'il n'y prend pas garde.

Cette description très simple est facile à appréhender. Penser en termes de mesures sur les capteurs estune abstraction de plus haut niveau qu'en terme d'objet mathématique interne. Cette description est à l'usagebeaucoup plus parlante que les descriptions classiques. Elle compense également les dicultés évoquées plushaut. Elle est canonique et les données manipulées sont relativement parlantes, même s'il faut parfois quelquestemps pour acquérir des automatismes.

Cette description très simple est la seule chose qui soit nécessaire aux algorithmes présentés plus loin pourcalculer l'orientation. Une bibliothèque a été conçue de sorte que ces algorithmes soient disponibles en boîtenoire, l'utilisateur n'a donc eectivement que les noms des capteurs et les valeurs de consignes à traiter dansson code. En remontant ces noms et ces valeurs jusqu'au niveau des données d'entrées, il peut concevoir deslogiciels multi-mission. La description des capteurs eux-mêmes, purement statique, est faite dans des chiers deconguration lus directement par la bibliothèque.

La description de l'orientation par les consignes de capteurs et la bibliothèque implémentant les algorithmesde résolution à partir de cette description permettent donc de lever la dernière diculté énoncée plus haut etd'obtenir l'indépendance par rapport à la plateforme et aux lois d'orientation.

marmottes-mathematique.tex

Page 15: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 11

On pourrait craindre que cette description ne soit bien adapté qu'aux quelques exemples cités ci-dessus. Ensept ans d'utilisation dans divers projets, aucune limitation résultant de ce choix n'a cependant été rencontrée.De temps à autre, un projet a eu besoin d'un capteur pour lequel aucun modèle mathématique n'était disponibledans la bibliothèque où sont implémentés ces algorithmes. Le modèle du capteur a alors simplement été ajoutéet rien d'autre n'a changé4.

Un autre facteur jouant en faveur de l'adaptabilité de la méthode est qu'outre les capteurs réels du satellite,on peut modéliser des pseudo-capteurs dans le seul but de les utiliser ensuite pour décrire des lois particulières.Ce facteur n'avait pas été prévu lors de l'élaboration des modèles, il s'est imposé de lui même au cours desdivers projets. L'expérience passée a également montré que les lois d'orientation que l'on souhaite modéliserutilisaient souvent des consignes constantes dans le temps, les constantes étant d'ailleurs généralement nulles. Ilfaut cependant noter que ceci n'est pas vrai pour les missions d'observation de la Terre.

2.3 conséquences pour l'utilisateur

Pour l'utilisateur, la description de l'orientation fait intervenir deux types d'informations diérents : la des-cription générale des capteurs et les descriptions d'orientation par association de trois couples capteur/consigne.

Vu du côté de la simulation d'orientation, un capteur est une structure de données statique dont les com-posantes dépendent du type de capteur. À titre indicatif, on peut citer pour un capteur optique l'orientationpar rapport au satellite, la cible (Terre, Soleil, ...), le champ de vue et les axes sensible, neutre et de visée.L'utilisateur devra dénir chacun des capteurs qu'il désire faire intervenir dans ses simulations ; il ne s'agit làque d'écrire des chiers de données, bien plus faciles à valider que du code.

Les capteurs sont souvent similaires (les capteurs solaires sont par exemple systématiquement des capteursd'angle dièdre avec un champ de vue symétrique en double dièdre). Passer d'un satellite à l'autre se limitegénéralement à changer les noms des capteurs et les valeurs numériques des angles d'ouverture des dièdres et àprendre en compte les données d'alignement lorsqu'elles sont mises à jour par le constructeur. Cela arrive parexemple lorsque ce dernier réalise les mesures d'alignement au cours de l'intégration du satellite ou lorsque descapteurs solaires ont des calages diérents pour des lancements en été ou en hiver.

Les couples capteur/consigne dépendent quant à eux de la phase simulée. C'est essentiellement à ce niveauque les spécicités de la mission apparaissent. Les algorithmes sous-jacents ne font aucune hypothèse sur lesparamètres de description qu'on leur soumet ni sur leur succession. Si un satellite a besoin d'une simulationvraiment très spécique, rien n'empêche de créer un logiciel pour cela qui calculera une séquence de consignespropre et délèguera la résolution aux méthodes génériques. Ceci simplie beaucoup le programme par rapportà une simulation spécique de bout en bout. Ce cas ne se rencontre guère que dans le cadre des missionsd'observation de la Terre.

En présence de cas dégradés, le fait que toutes les descriptions soient au niveau des données permet àl'utilisateur d'intervenir rapidement et avec des risques limités. On peut par exemple faire fonctionner un logicielconçu a priori pour utiliser un capteur en en utilisant un autre en cas de panne du premier et de basculement surle redondant. On peut également faire une simulation en saisissant manuellement dans un logiciel les paramètreslus sur les stations de décommutation de la télémesure pour essayer de comprendre comment se comporte le

4l'implémentation a été concue selon les techniques objets avec une séparation nette entre la modélisation des capteurs et lesautres composants

marmottes-mathematique.tex

Page 16: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 12

satellite. On peut enn toujours intervenir sur l'ensemble des paramètres de description des capteurs qui sonttous accessibles dans des chiers5.

2.4 conséquences pour l'implémentation

Le partage net entre les parties description et résolution ouvre la voie à une implémentation très modulaire.La réduction de la taille des composants qui résulte de cette modularité et le potentiel de réutilisation permettentd'implanter des modèles très ns et de les améliorer progressivement. L'historique de la modélisation des capteursTerre montre clairement les gains de cette approche.

À l'origine, le modèle des capteurs Terre se contentait de réaliser une mesure d'angle dièdre et de vérier lavisibilité du limbe Terre dans le champ de vue, en tenant compte d'une logique booléenne entre les diérenteszones de balayage. Après une première tentative maintenant abandonnée de modéliser un capteur spécique à unconstructeur particulier, le modèle a pris en compte la notion de champ d'inhibition pour la Lune et le Soleil. Trèsvite, le champ d'inhibition général a été remplacé par des champs dédiés à chaque astre. Le calcul des inhibitionsa ensuite pris en compte les éclipses entre les diérents corps, ce qui a permis de jouer à cache-cache avec la Lunependant certaines opérations critiques lors d'une mise à poste. Une notion de seuil d'inhibition a été ajoutéepour la Lune, qui n'est réellement gênante qu'aux alentours de la pleine Lune, ce seuil a pendant longtempsété exprimé en terme de luminance, mais des dicultés d'homogénéisation avec les modèles constructeurs ontconduit à exprimer ce seuil en fonction de l'angle de phase de la Lune.

Cet exemple montre que l'on peut introduire des notions très nes dans les modèles, notions dont bénécieronttous les utilisateurs ultérieurs.

Une seconde conséquence sur l'implémentation est qu'il faut prendre garde à ne pas utiliser les spécicitésde tel ou tel capteur dans le c÷ur algorithmique, mais prévoir des pré ou post traitements gérés au niveau descapteurs (par exemple les calculs d'inhibition par les capteurs Terre).

2.5 limitations du modèle

Les exemples de consignes donnés ci-dessus montrent le principe général de la simulation : on donne les va-leurs que doivent mesurer les capteurs lorsque le satellite est dans l'orientation désirée. Le Système de Contrôled'Attitude et d'Orbite étant justement asservi par des capteurs, ceci correspond à une simulation d'un pilo-tage parfait, c'est-à-dire en supposant que les actuateurs (tuyères, roues) qui ne sont pas modélisés contrôlentexactement la dynamique du satellite (inerties, couples).

Les algorithmes génériques ne modélisent que la cinématique du pilotage (chaque détermination d'orientationfournit à la fois l'orientation et la rotation moyenne depuis l'état précédent). Il est cependant possible d'inclurela dynamique, par des calculs faits soit avant l'appel à la résolution (transformation des couples en consignesde vitesse sur les capteurs cinématiques à l'aide des données d'inertie), soit après l'appel (transformation del'évolution d'orientation en couples pour déduire l'activité tuyères et roues).

Un point important à souligner est que les consignes sont considérées comme étant exprimées conformé-ment aux conventions du capteur, et non conformément aux conventions du Système de Contrôle d'Attitude

5tout au moins dans l'implémentation de la méthode réalisée au cnes

marmottes-mathematique.tex

Page 17: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 13

et d'Orbite, en particulier en ce qui concerne le signe des mesures. Ce choix permet d'alimenter directement labibliothèque avec le ux de télémesure pendant les opérations, sans faire intervenir de ltre. Les consignes eec-tivement chargées dans le Système de Contrôle d'Attitude et d'Orbite par télécommandes peuvent donc diérerdes consignes chargées dans la bibliothèque. Ainsi certaines plateformes adoptent la convention selon laquellepour avoir +15 sur le capteur Terre, on charge -15 comme biais de consigne satellite par télécommande. Dansce cas, la bibliothèque utilisera une valeur de consigne de +15 cohérente avec la mesure, pas la valeur -15compatible avec la télécommande.

3 Capteurs

La description d'orientation présentée plus haut a besoin d'une description statique des caractéristiques detous les capteurs utilisés.

De nombreux capteurs diérents sont utilisés sur les satellites. Il s'avère cependant que l'on peut identierdeux grandes catégories, les capteurs géométriques et les capteurs cinématiques. Nous allons voir qu'il est possibled'établir un modèle général des mesures pour chacune de ces catégories, et qu'il sera possible de déterminerl'orientation en se contentant de l'information disponible dans ces modèles généraux.

3.1 capteurs géométriques

On appelle ici capteur géométrique tout capteur qui mesure la direction d'une cible dénie en repère inertiel(Terre, Soleil, ...) par rapport à un repère du capteur xe par rapport au satellite, ou au contraire qui mesureune direction de référence liée au satellite par rapport à un repère inertiel (ascension droite ou déclinaison d'unaxe satellite par exemple). La mesure est généralement un angle dièdre (c'est-à-dire un angle entre plans comme

Fig. 1 capteur solaire d'angle dièdre

~

~k

α

Fig. 2 capteur d'aspect solaire

α

indiqué sur la gure 1) mais peut également être un angle par rapport à un axe (voir gure 2).

Les rotations de Cardan à partir d'un repère de référence (par exemple un repère orbital local) entrentégalement dans la catégorie des capteurs géométriques, et l'on peut démontrer qu'ils correspondent soit à desangles dièdres soit à des angles par rapport à un axe (cf annexe I, page 76).

marmottes-mathematique.tex

Page 18: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 14

Si un capteur mesure un angle dièdre déni en partie par une cible inertielle (cas de la gure 1, où la cibleest le Soleil), imposer une consigne consiste à obliger la cible inertielle observée à rester connée dans un plandéni en repère satellite.

Si un capteur mesure un angle dièdre déni en partie par une direction de référence satellite (par exemplel'axe ~X satellite, dont on cherche à calculer l'ascension droite à l'aide d'un pseudo-capteur d'ascension droite),imposer une consigne consiste à obliger un vecteur satellite à rester conné dans un plan inertiel. Cette contraintepeut être retournée en remarquant qu'elle est équivalente à obliger le vecteur inertiel normal au plan inertiel àrester conner dans le plan satellite normal à la direction de référence satellite.

Si un capteur mesure un angle entre un vecteur inertiel et un vecteur satellite, imposer la consigne consisteà obliger le vecteur inertiel à rester conné sur un cône.

Tous ces cas peuvent être réunis en un seul si on remarque qu'un plan est un cône particulier, de demi-angle au sommet π

2 . D'une façon générale, on modélisera une consigne de capteur géométrique par le cône deconnement d'un vecteur inertiel, cône d'axe ~a déni en repère satellite et de demi-angle au sommet µ.

La modélisation adoptée suppose implicitement que chaque point du cône de connement respecte la consigne.Dans la pratique, certains points de ce cône peuvent tomber hors du champ de vue du capteur, et devront doncêtre éliminés a posteriori (ainsi sur la gure 1 le cône de connement du Soleil passe par ±~k et légèrement audessous de +~ı, alors que le champ de vue peut être limité aux alentours de −~ı).

Si toutes les solutions sont rejetées au cours de ce post-traitement, cela signie que l'orientation désiréen'était pas pilotable. A contrario il peut subsister plusieurs solutions après ce ltrage dans les cas d'utilisationde pseudo-capteurs n'ayant pas de notion de champ de vue (par exemple une mesure de l'ascension droite de ladirection de poussée du moteur d'apogée). La détermination d'orientation sélectionne alors la solution la plusproche de l'état que l'on peut déduire d'une évolution naturelle6 de l'état précédent.

3.2 capteurs cinématiques

On appelle ici capteur cinématique tout capteur qui mesure le mouvement du satellite autour de son centrede gravité. Ces capteurs mesurent soit une vitesse instantanée autour d'un axe, soit l'intégrale au cours du tempsd'une vitesse instantanée.

Il faut ici prendre garde à une subtilité : cette intégrale, même si elle est homogène à un angle, ne correspondpas forcément à un angle géométrique7. En eet, si l'axe autour duquel on mesure les rotations se déplace,l'intégrale correspond à une sommation d'angles non coplanaires. Ceci montre que les gyromètres intégrateursne peuvent pas être assimilés à des capteurs géométriques qui mesureraient un écart entre une direction deréférence mémorisée et le satellite : il s'agit bien de capteurs cinématiques.

Une consigne d'orientation pour ce type de capteur consiste à imposer soit la vitesse mesurée, soit l'angleintégré. En fait, imposer l'angle revient à imposer l'intégrale de la vitesse depuis le moment de l'initialisationdu zéro du gyromètre intégrateur, réalisée après l'étalonnage. Imposer l'intégrale revient à imposer la vitesseinstantanée sur toute une plage de temps. Ces deux types de consigne sont donc équivalents puisque de toute

6l'évolution est calculée par extrapolation de la vitesse de rotation précédente en partant de l'orientation précédente, toutes cesinformations étant fournies à chaque résolution7on entend par angle géométrique un angle mesurable à un instant donné entre deux objets, vecteurs ou plans, à l'aide d'uncompas par exemple, et indépendamment de toute référence à un état précédent

marmottes-mathematique.tex

Page 19: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 15

façon dans ce type de capteur, on est obligé de suivre pas à pas l'évolution de l'orientation qui dépend à chaqueinstant de la loi, mais également de l'orientation à l'instant précédent. On modélisera donc ces capteurs parl'axe (en repère satellite) autour duquel ils réalisent leurs mesures, et la consigne à chaque pas sera la vitesseinstantanée projetée sur cet axe. Il s'agit souvent d'une consigne de vitesse constante, la constante étant nonnulle en mode stabilisé par rotation, nulle en mode trois axes.

4 Lois de pilotage

Une loi de pilotage est le rassemblement à une date donnée de trois consignes, ce qui permet de xer les troisdegrés de liberté d'un solide autour de son centre de gravité. Plusieurs types de rassemblement sont possibles :

4.1 contrôle par trois capteurs géométriques

Ce mode de pilotage correspond par exemple à une man÷uvre d'apogée géocentrique ou à un asservissementen lacet sur le Soleil. Dans ces deux cas une consigne en roulis est donnée au capteur Terre (souvent roulis =0), une consigne en tangage est donnée au capteur Terre, et une consigne en lacet est donnée au capteur solaire(voir gure 3).

Fig. 3 contrôle par trois capteurs géométriques

lacet

tangage

roulis (0)

Avec le modèle que nous nous sommes donnés, trouver une orientation qui respecte les trois consignes revientà trouver le changement de repères qui permet de passer du repère inertiel au repère satellite de telle façon queles trois cibles (Terre, Terre et Soleil dans notre exemple) soient sur les trois cônes de consigne tels que dénisau paragraphe 3.1.

On peut exprimer mathématiquement ce changement de repères : soient ~v1 (Terre), ~v2 (Terre), ~v3 (Soleil)les vecteurs cibles connus en repère inertiel et ~u1, ~u2, ~u3 leurs projections en repère satellite. Le changement de

marmottes-mathematique.tex

Page 20: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 16

repères désiré est celui qui permet de passer d'un triplet de vecteurs à l'autre. Pour pouvoir l'exprimer, il fauttrouver les vecteurs ~ui sachant que ~u1 doit appartenir au cône (~a1, µ1) d'axe ~a1 et de demi-angle au sommetµ1 déni par la mesure désirée pour le premier capteur, que ~u2 doit appartenir au cône (~a2, µ2) d'axe ~a2 et dedemi-angle au sommet µ2 déni par la mesure désirée pour le deuxième capteur, et que ~u3 doit appartenir aucône (~a3, µ3) d'axe ~a3 et de demi-angle au sommet µ3 déni par la mesure désirée pour le troisième capteur. Laméthode de résolution est décrite aux sections 6.1 (page 19) et 7.1 (page 31).

4.2 contrôle par deux capteurs géométriques et un capteur cinématique

Ce mode de pilotage se rencontre lors des man÷uvres d'apogée géocentriques ou lors des recherches Terrepréalables à une acquisition en roulis. Dans ces deux cas une consigne en roulis est donnée au capteur Terre(souvent roulis = 0), une consigne en tangage est donnée au capteur Terre, et une consigne en lacet est donnéeau gyromètre lacet (vitesse de rotation nulle autour de l'axe de lacet pour les man÷uvres d'apogée, vitesse nonnulle pour la recherche Terre).

Dans les cas où la consigne de vitesse est nulle, θL = 0 implique θL =∫θLdt + θ0 = θ0 = cte. L'angle

constant θ0 n'est cependant pas un angle physiquement mesurable par la séparation de deux points, on ne peutdonc pas appliquer la méthode de la section précédente pour déterminer l'orientation. C'est un angle purementmathématique qui est constant, une sorte d'abscisse curviligne mesurée le long d'une courbe due au déplacementde l'axe sensible du gyromètre. Ceci est assez dicile à se représenter dans l'espace, surtout quand l'angle detangage est non nul : il y a alors des eets de couplage entre le mouvement du satellite sur son orbite inclinée, lemouvement autour de l'axe de roulis pour conserver la Terre dans le plan (X,Z) (roulis = 0 ), et le mouvementautour de l'axe de lacet qui doit rester nul malgré tous ces couplages. C'est ce type de modélisation qui ad'ailleurs motivé le développement d'une méthode de résolution générale. Dans les cas où la consigne de vitesseest non nulle, les couplages sont encore plus agrants.

Avec le modèle que nous nous sommes donné, trouver une orientation qui respecte les trois consignes revientà trouver le changement de repères qui permet de passer du repère inertiel au repère satellite de telle façon queles deux cibles (Terre et Terre dans notre exemple) soient sur les deux cônes de consigne tels que dénis auparagraphe 3.1, et que la rotation subie par le satellite depuis le pas précédent conduise à une vitesse de rotationmoyenne se projetant sur l'axe sensible du gyromètre conformément à la consigne de vitesse angulaire.

On peut exprimer mathématiquement ce changement de repères : soient ~v1 (Terre) et ~v2 (Terre) les vecteurscibles connus en repère inertiel et ~u1, ~u2 leurs projections en repère satellite. Soit ~Ω le vecteur rotation instantanéecorrespondant à la rotation subie par le satellite depuis le pas précédent. Le changement de repères désiré estcelui qui permet de passer d'un couple de vecteur à l'autre. Pour pouvoir l'exprimer, il faut trouver les vecteurs~ui et ~Ω sachant que ~u1 doit appartenir au cône (~a1, µ1) d'axe ~a1 et de demi-angle au sommet µ1 déni par lamesure désirée pour le premier capteur, que ~u2 doit appartenir au cône (~a2, µ2) d'axe ~a2 et de demi-angle ausommet µ2 déni par la mesure désirée pour le deuxième capteur, et que la projection de ~Ω sur l'axe sensibledu gyromètre doit être égale à la mesure désirée pour le gyromètre (ω3). La méthode de résolution est décriteaux sections 6.1 (page 19) et 7.2 (page 31).

Une particularité de ce type de pilotage est qu'il dépend de l'état précédent (le capteur cinématique contrôleles changements d'orientation entre deux états du satellite). On ne peut donc calculer une orientation de ce typequ'en intégrant depuis un état initial où l'orientation était connue par d'autres moyens : orientation géométriqueavant le changement de mode, ou orientation de début de man÷uvre optimisée dans le cas d'une intégrationà rebours de la date de début de man÷uvre à la date de réorientation, justement pour trouver l'orientation

marmottes-mathematique.tex

Page 21: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 17

géométrique d'initialisation qui permettra au satellite d'évoluer naturellement jusqu'à la bonne orientation depoussée.

4.3 contrôle par deux capteurs cinématiques et un capteur géométrique

Ce mode de pilotage est typiquement utilisé à la n des man÷uvres de basculement entre deux orientationsstables, les gyromètres gérant la rotation du satellite et le capteur géométrique (par exemple un capteur solaire)étant utilisé pour converger vers une direction particulière. Une utilisation un peu plus complexe concerne lesphases de recherche Terre en roulis, certains satellites réglant l'ouverture du cône de recherche par la combinaisonde deux vitesses angulaires plutôt que par un capteur géométrique.

À titre d'exemple, une loi de ce type peut être pilotée par les consignes : lacet capteur solaire : 0 ; vitesse de roulis : 0,75/s ; vitesse de tangage : 0,2/s.

Avec le modèle que nous nous sommes donnés, trouver une orientation qui respecte les trois consignes revientà trouver le changement de repère qui permet de passer du repère inertiel au repère satellite de telle façon quela rotation subie par le satellite depuis le pas précédent soit telle que le vecteur rotation instantanée ait pourprojections sur les axes ~a1 et ~a2 les valeurs ω1 et ω2 ; simultanément, le vecteur ~v3 connu en repère inertiel, unefois projeté en repère satellite devra appartenir au cône d'axe ~a3 de demi-angle au sommet µ3.

Là encore, l'orientation ne peut se calculer qu'en intégrant depuis une orientation initiale, puisque le capteurcinématique contrôle les changements d'orientation d'un état à un autre du satellite.

Fig. 4 contrôle par un capteur géométrique et deux capteurs cinématiques

−~ı

~

~k

4.4 contrôle par trois capteurs cinématiques

Ce mode de pilotage est utilisé en particulier dans les phases transitoires comme les basculements de mise enorientation de poussée, au cours desquels un gyromètre contrôle la rotation jusqu'à ce qu'un capteur géométrique

marmottes-mathematique.tex

Page 22: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 18

reprenne le contrôle lorsque son astre cible entre dans son champ de vue.

Avec le modèle que nous nous sommes donnés, trouver l'orientation qui respecte les trois consignes revient àfaire tourner l'orientation du pas précédent autour du vecteur rotation instantanée dont les projections sur lesaxes ~a1, ~a2, ~a3 sont respectivement ω1, ω2, et ω3. L'orientation se calcule donc par intégration pas à pas depuisune orientation initiale.

5 Démarche de la résolution

Si l'on ne respecte que deux des trois consignes d'orientation, on xe deux degrés de liberté et le troisième restelibre. Dans la section 6, on démontre que si les deux consignes respectées sont de même type (soit géométrique,soit cinématique), alors on sait exprimer l'orientation sous forme d'une fonction à une variable Q(θ) et la rotationinstantanée sous forme d'une fonction ~Ω(θ) (θ étant le degré de liberté restant), et on connaît le domaine devalidité de la variable scalaire θ. Les fonctions Q et ~Ω sont calculables de façon analytique et ont de bonnespropriétés de continuité et de dérivabilité à l'intérieur du domaine de validité de θ. On démontre également dansla section 6 qu'étant donnée une orientation Q, une rotation instantanée ~Ω et une consigne, on sait calculerde façon analytique une fonction scalaire f(Q, ~Ω) qui a également de bonnes propriétés de continuité et dedérivabilité, et qui s'annule lorsque l'orientation et la rotation instantanée respectent la consigne. La démarchede la résolution est alors la suivante :

modéliser les mesures capteurs en consignes ; organiser les consignes en un groupe de deux consignes identiques et une consigne unique quelconque ; construire les fonctions Q(θ) et ~Ω(θ) qui respectent les deux consignes identiques et calculer le domainede validité de θ ;

chercher tous les θi annulant la fonction f(Q(θ), ~Ω(θ)) dans le domaine de validité de θ, la fonction f étantcelle qui est associée à la troisième consigne ;

rejeter toutes les couples orientation et rotation instantanée (Q(θi), ~Ω(θi)) qui ne respectent pas les champsde vue des capteurs géométriques.

Après ces étapes, il ne devrait rester que l'orientation donnant les mesures capteurs fournies en entrée. S'il nereste aucune orientation, alors l'orientation demandée n'est pas pilotable (en tout cas, pas à cet instant). S'il resteplusieurs orientations, il est vraisemblable que le mode d'orientation décrit soit réellement ambigü et présentedes eets stroboscopiques. C'est en particulier le cas lorsqu'on utilise deux capteurs cinématiques et un capteurgéométrique, puisqu'outre la solution naturelle il existe des solutions parasites respectant toutes les contraintesmais pour lesquelles le satellite fait un nombre entier de tours sur lui même entre deux pas autour d'un axeauquel les capteurs cinématiques sont insensibles. Dans ce cas la sélection a posteriori de la meilleure solutionselon un critère de modication minimale de la rotation instantanée depuis l'état précédant lève correctementl'ambiguïté.

La résolution décrite précédemment peut être coûteuse en temps de calcul. Dans la pratique, l'évolutiond'orientation des satellites est régulière sur de longues périodes de temps. On améliore donc les performances ententant une simple extrapolation de l'orientation précédente (à l'aide de la rotation instantanée associée) avantd'entamer la résolution complète. Si cette extrapolation respecte les trois consignes au seuil de convergence désiré(par défaut un dixième de la précision du capteur concerné), il est inutile de lancer la résolution complète, on secontente de retourner l'orientation extrapolée. L'expérience montre que l'on gagne un facteur de l'ordre de 10 à30 sur le temps de calcul.

marmottes-mathematique.tex

Page 23: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 19

6 Orientations respectant deux consignes identiques

La détermination d'orientation se fait en rajoutant les consignes les unes après les autres, pour restreindrepetit à petit l'ensemble des solutions possibles.

Il s'avère qu'il faut séparer le cas des deux premières consignes du cas de la troisième. On choisit donc detraiter les deux premières en vériant qu'elles sont de même type (c'est toujours possible, au prix d'un éventuelréarrangement). Deux possibilités se présentent alors : les deux consignes sont soit toutes deux géométriques,soit toutes deux cinématiques.

6.1 cas de deux consignes géométriques

Lorsqu'au moins deux capteurs sur les trois sont de type géométrique, respecter les deux consignes corres-pondantes revient à imposer à deux vecteurs ~v1 et ~v2 connus en repère inertiel de rester sur deux cônes (~a1, µ1)et (~a2, µ2) dont les axes ~a1 et ~a2 sont connus en repère satellite. On suppose que µ1 et µ2 appartiennent tousdeux à l'intervalle ]0;π[ (si l'un des angles valait 0 ou π, la consigne correspondante xerait deux degrés deliberté en une seule consigne ; de toutes façons, les champs de vue des capteurs limitent généralement ces anglesà des valeurs de l'ordre de 60 à 120).

On supposera ici, à chaque fois que cela sera nécessaire, que les vecteurs sont non alignés, qu'ils ne sont pasrigoureusement sur les cônes qui vont intervenir (sauf bien sûr s'ils sont dénis par ces cônes), bref qu'il n'y aaucune coïncidence particulière. Tous les cas particuliers seront analysés au paragraphe suivant.

La résolution est faite dans un repère canonique8 tel que l'axe ~a1 du premier cône de consigne (celui surlequel ~v1 se déplace) soit dans le plan (~ı,~k) et dont l'axe ~k soit l'axe ~a2 du second cône de consigne (voir gure 5).Ce repère est xe quel que soit le choix du vecteur ~v1 sur (~a1, µ1), il existe si ~a1 et ~a2 ne sont pas colinéaires.Si ~a1 et ~a2 sont colinéaires, on prend n'importe quel repère vériant ~k = ~a2. À la n des calculs, l'orientationsera donc décrite par un quaternion transformant le repère inertiel en repère canonique, une simple compositionpar l'inverse du quaternion canonique permettra de déterminer le vrai quaternion d'orientation, qui permet depasser du repère inertiel au repère satellite.

~ı =~a1 − (~a1 · ~a2)~a2√

1− (~a1 · ~a2)2~ =

−~a1 ∧ ~a2√1− (~a1 · ~a2)2

~k = ~a2

Dans ce repère les vecteurs ~a1 et ~a2 s'expriment simplement (µ1 et µ2 sont strictement compris entre 0 et π,γ pouvant quant à lui atteindre les valeurs 0 et π) :

~a1

sin γ =

√1− (~a1 · ~a2)2

0cos γ = ~a1 · ~a2

~a2

001

8les premières versions de marmottes (avant la version 7.0) utilisaient un repère basé sur (~v1,~a2) au lieu de (~a1,~a2) commedécrit ici. Les équations résultantes étaient plus simples, mais il était impossible de calculer analytiquement les prolongements parcontinuité que nous verrons plus loin (la singularité se partageant entre le repère et les coordonnées dans le repère).

marmottes-mathematique.tex

Page 24: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 20

Fig. 5 repère de résolution canonique

γ

~a1

~k = ~a2

~

µ1

µ2

6.1.1 résolution générale

Le vecteur ~v2 est à la distance α1,2 de ~v1. Cet angle est connu car on sait calculer en repère inertiel cosα1,2 =~v1 · ~v2. D'autre part, quand ~v2 respecte la seconde consigne, il est à la distance µ2 de ~a2.

Le vecteur ~v2 recherché est donc à l'intersection des cônes (~v1, α1,2) et (~a2, µ2), il peut être déni par un seulparamètre inconnu ϕ représentant l'angle de phase du vecteur autour du cône (~a2, µ2) :

~v2

sinµ2 cosϕsinµ2 sinϕcosµ2

Le but de la résolution va être de trouver ϕ en exprimant que ~v2 est également sur le cône (~v1, α1,2).

Le vecteur ~v1 a une expression plus complexe, que l'on trouve en dénissant au préalable un vecteur ~u surle cône (~a2, µ1) et en considérant que ~v1 est l'image de ~u par la rotation qui transforme ~a2 en ~a1, c'est-à-direla rotation d'axe ~ et d'angle γ. Le vecteur ~u est caractérisé par son angle de phase θ autour du cône (θ sera àterme le paramètre libre du modèle) :

~u

− sinµ1 cos θ− sinµ1 sin θcosµ1

⇒ ~v1

v1,x = sin γ cosµ1 − cos γ sinµ1 cos θv1,y = − sinµ1 sin θv1,z = cos γ cosµ1 + sin γ sinµ1 cos θ

Par construction le vecteur ~v2 est déjà sur le cône (~a2, µ2) ; on trouve l'inconnue ϕ en résolvant l'équation(1) qui indique que ~v2 est également sur le cône (~v1, α1,2), avec α1,2 strictement compris entre 0 et π :

cosα1,2 = ~v1 · ~v2

= (v1,x cosϕ+ v1,y sinϕ) sinµ2 + v1,z cosµ2 (1)

marmottes-mathematique.tex

Page 25: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 21

Fig. 6 positions des vecteurs cibles

~v1

θ

~v2

ϕ

Si v1,x et v1,y ne sont pas simultanément nuls, on peut trouver λ tel que :

v1,x = cosλ√

1− v21,z

v1,y = sinλ√

1− v21,z

⇒ λ = atan2(v1,y, v1,x) (2)

L'équation (1) devient alors :

cos(ϕ− λ) =cosα1,2 − v1,z cosµ2

sinµ2

√1− v2

1,z

ϕ+ = λ+ arccos

(cosα1,2−v1,z cosµ2

sinµ2

√1−v2

1,z

)ϕ− = λ− arccos

(cosα1,2−v1,z cosµ2

sinµ2

√1−v2

1,z

) (3)

Cette équation a des solutions si la fraction dénissant cos(ϕ− λ) est comprise entre −1 et +1, c'est-à-diresi :

cos2 α1,2 + v21,z cos2 µ2 − 2v1,z cosα1,2 cosµ2 ≤ sin2 µ2 − sin2 µ2v

21,z (4)

⇔ v21,z − 2v1,z cosα1,2 cosµ2 + cos2 α1,2 − sin2 µ2 ≤ 0

⇔ (v1,z − cosα1,2 cosµ2 + sinα1,2 sinµ2)(v1,z − cosα1,2 cosµ2 − sinα1,2 sinµ2) ≤ 0⇔ cosα1,2 cosµ2 − sinα1,2 sinµ2 ≤ v1,z ≤ cosα1,2 cosµ2 + sinα1,2 sinµ2

⇔ cos(α1,2 + µ2) ≤ v1,z ≤ cos(α1,2 − µ2) (5)

⇔ cos(α1,2 + µ2)− cos γ cosµ1

sin γ sinµ1≤ cos θ ≤ cos(α1,2 − µ2)− cos γ cosµ1

sin γ sinµ1(6)

⇔ cmin ≤ cos θ ≤ cmax

Dans le cas où ~a1 et ~a2 sont alignés, la condition (4) ne dépend alors plus de θ, on est obligé d'arrêter lecalcul au niveau de l'expression (5). Dans ce cas, on calcule directement la valeur constante de v1,z et on en

marmottes-mathematique.tex

Page 26: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 22

déduit immédiatement soit que la condition (5) est toujours remplie c'est-à-dire que tous les θ de −π à π sontvalides, soit qu'aucun θ n'est valide.

Selon les valeurs des données initiales ~v1 · ~v2 = cosα1,2, ~a1 · ~a2 = cos γ, µ1 et µ2 ; cmin et cmax peuventprendre à peu près n'importe quelles valeurs. On a regroupé dans la table 1 les conséquences que cela avait surle domaine de validité de θ.

Tab. 1 domaines de validitécmin, cmax domaine de validité de θ

cmin < cmax ≤ −1 ∅

[−π;− arccos(cmax)]cmin ≤ −1 ≤ cmax ≤ +1

⋃[arccos(cmax);π]

cmin ≤ −1 ≤ +1 ≤ cmax [−π;π]

[− arccos(cmin);− arccos(cmax)]−1 ≤ cmin < cmax ≤ +1

⋃[arccos(cmax); arccos(cmin)]

−1 ≤ cmin ≤ +1 ≤ cmax [− arccos(cmin); arccos(cmin)]

+1 ≤ cmin < cmax ∅

On dispose donc d'un domaine de validité de θ éventuellement constitué de deux intervalles disjoints, et d'unjeu de formules θ → ~v1 → cos(ϕ− λ)→ ϕ→ ~v2, c'est-à-dire ~v2 = g(θ).

Ces équations ne sont valides que si v1,x et v1,y ne s'annulent pas simultanément. En étudiant plus précisé-ment sous quelles conditions cette annulation peut intervenir, nous allons voir qu'il est possible de réaliser unprolongement par continuité analytique qui permettra d'éviter les problèmes numériques à proximité des pointslitigieux.

6.1.2 traitement des singularités

Le terme v1,y ne s'annule que si θ = 0 ou θ = π ; seules ces deux valeurs peuvent donc conduire à dessingularités. Cependant cette condition n'est pas susante : v1,y s'annule à chaque fois que θ = 0 ou θ = π, maisv1,x peut très bien être non nul et les équations de la résolution générale précédente s'appliquer sans problème.

Ainsi la valeur θ = 0 qui annule déjà v1,y n'annulera également v1,x que si sin(γ − µ1) = 0, c'est-à-dire siγ = µ1 (on rappelle que µ1 est strictement compris entre 0 et π, et que γ est compris largement entre 0 et π, onne peut donc pas avoir γ = π + µ1).

De même la valeur θ = π qui annule déjà v1,y n'annulera également v1,x que si sin(γ + µ1) = 0, c'est-à-diresi γ = π − µ1.

marmottes-mathematique.tex

Page 27: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 23

La valeur 0 n'appartient au domaine de validité de θ et ne correspond à une singularité que si :

(6) ⇒ cos(α1,2 + µ2) ≤ cos(γ − µ1) ≤ cos(α1,2 − µ2)⇒ cos(α1,2 + µ2) ≤ 1 ≤ cos(α1,2 − µ2)

Seule la deuxième inégalité apporte de l'information, puisqu'elle se transforme de façon triviale en égalité :cos(α1,2 − µ2) = 1, d'où α1,2 = µ2.

Observons ce qui se passe aux alentours de cette valeur critique de θ. On peut faire apparaître sin θ2 explici-

tement dans les coordonnées de ~v1 :v1,x = sinµ1 cosµ1(1− cos θ) = 2 sinµ1 cosµ1 sin2 θ

2

v1,y = − sinµ1 sin θ = −2 cos θ2 sinµ1 sin θ2

v1,z = cos2 µ1 + sin2 µ1 cos θ = 1− sin2 µ1(1− cos θ) = 1− 2 sin2 µ1 sin2 θ2

L'équation (1) peut être réécrite pour les θ non nuls, puis simpliée par 2 sinµ1 sin θ2 , ce qui réalise un

prolongement par continuité en θ = 0 :

cosµ2 = 2 sinµ1 sin θ2 sinµ2

(cosµ1 sin θ

2 cosϕ− cos θ2 sinϕ)

+(1− 2 sin2 µ1 sin2 θ

2

)cosµ2

⇔ 2 sinµ1 sin θ2

((cosµ1 sin θ

2 cosϕ− cos θ2 sinϕ) sinµ2 − sinµ1 cosµ2 sin θ2

)= 0

⇔ (cosµ1 sin θ2 cosϕ− cos θ2 sinϕ) sinµ2 = sinµ1 cosµ2 sin θ

2

⇔ cosµ1 sin θ2 cosϕ− cos θ2 sinϕ = sinµ1 cosµ2

sinµ2sin θ

2

Si µ1 6= π/2, les deux termes cosµ1 sin θ2 et − cos θ2 ne s'annulent pas simultanément ; on peut trouver λ0 tel

que :cosµ1 sin θ

2 = cosλ0

√cos2 µ1 sin2 θ

2 + cos2 θ2

− cos θ2 = sinλ0

√cos2 µ1 sin2 θ

2 + cos2 θ2

⇒ λ0 = atan2(− cos

θ

2, cosµ1 sin

θ

2

)(7)

L'équation devient alors :

cos(ϕ− λ0) =sinµ1 cosµ2 sin θ

2

sinµ2

√cos2 µ1 sin2 θ

2 + cos2 θ2

ϕ+ = λ0 + arccos

(sinµ1 sin θ

2cosµ2

sinµ2

√1−sin2 µ1 sin2 θ

2

)ϕ− = λ0 − arccos

(sinµ1 sin θ

2cosµ2

sinµ2

√1−sin2 µ1 sin2 θ

2

) (8)

Si µ1 = π/2 on ne peut pas calculer λ0, un traitement spécique est nécessaire. On sait que dans ce casγ = π/2 et α1,2 = µ2. Les coordonnées de ~v1 se simplient alors considérablement :

v1,x = 0v1,y = − sin θv1,z = cos θ

marmottes-mathematique.tex

Page 28: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 24

L'équation (1) peut être réécrite pour les θ diérents de 0 puis simpliée par 2 sin θ2 , ce qui réalise un

prolongement par continuité en θ = 0 :

sin θ sinϕ sinµ2 + (1− cos θ) cosµ2 = 0⇔ 2 sin θ

2(cos θ2 sinϕ sinµ2 + sin θ2 cosµ2) = 0

⇔ cos θ2 sinϕ sinµ2 + sin θ2 cosµ2 = 0

Le domaine de validité de θ déni par l'équation (6) devient : cos 2µ2 ≤ cos θ ≤ 1, on en déduit que si µ2 estdiérent de π/2 alors θ sera toujours diérent de π, dans ce cas on peut écrire :

sinϕ = −tan θ

2

tanµ2⇒

ϕ+ = π + arcsin tan θ2

tanµ2

ϕ− = − arcsin tan θ2

tanµ2

(9)

Le cas µ1 = µ2 = π/2 est traité dans la section suivante.

La valeur π n'appartient au domaine de validité de θ et ne correspond à une singularité que si :

(6) ⇒ cos(α1,2 + µ2) ≤ cos(γ + µ1) ≤ cos(α1,2 − µ2)⇒ cos(α1,2 + µ2) ≤ −1 ≤ cos(α1,2 − µ2)

Seule la première inégalité apporte de l'information, puisqu'elle se transforme de façon triviale en égalité :cos(α1,2 + µ2) = −1, d'où α1,2 = π − µ2.

Observons ce qui se passe aux alentours de cette valeur critique de θ. On peut faire apparaître cos θ2 explici-tement dans les coordonnées de ~v1 :

v1,x = sinµ1 cosµ1(1 + cos θ) = 2 sinµ1 cosµ1 cos2 θ2

v1,y = − sinµ1 sin θ = −2 sinµ1 sin θ2 cos θ2

v1,z = − cos2 µ1 + sin2 µ1 cos θ = sin2 µ1(1 + cos θ)− 1 = 2 sin2 µ1 cos2 θ2 − 1

L'équation (1) peut être réécrite pour les θ diérents de π, puis simpliée par 2 sinµ1 cos θ2 , ce qui réalise unprolongement par continuité en θ = π :

− cosµ2 = 2 sinµ1 cos θ2 sinµ2

(cosµ1 cos θ2 cosϕ− sin θ

2 sinϕ)

+(2 sin2 µ1 cos2 θ

2 − 1)

cosµ2

⇔ 2 sinµ1 cos θ2((cosµ1 cos θ2 cosϕ− sin θ

2 sinϕ) sinµ2 + sinµ1 cosµ2 cos θ2)

= 0

⇔ (cosµ1 cos θ2 cosϕ− sin θ2 sinϕ) sinµ2 = − sinµ1 cosµ2 cos θ2

⇔ cosµ1 cos θ2 cosϕ− sin θ2 sinϕ = − sinµ1 cosµ2

sinµ2cos θ2

Si µ1 6= π/2, les deux termes cosµ1 cos θ2 et − sin θ2 ne s'annulent pas simultanément ; on peut trouver λπ tel

que :cosµ1 cos θ2 = cosλπ

√sin2 θ

2 + cos2 µ1 cos2 θ2

− sin θ2 = sinλπ

√sin2 θ

2 + cos2 µ1 cos2 θ2

⇒ λπ = atan2(− sin

θ

2, cosµ1 cos

θ

2

)(10)

marmottes-mathematique.tex

Page 29: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 25

L'équation devient alors :

cos(ϕ− λπ) =− sinµ1 cosµ2 cos θ2

sinµ2

√sin2 θ

2 + cos2 µ1 cos2 θ2

ϕ+ = λπ + arccos

(− sinµ1 cos θ

2cosµ2

sinµ2

√1−sin2 µ1 cos2 θ

2

)ϕ− = λπ − arccos

(− sinµ1 cos θ

2cosµ2

sinµ2

√1−sin2 µ1 cos2 θ

2

) (11)

Si µ1 = π/2 on ne peut pas calculer λπ, un traitement spécique est nécessaire. On sait que dans ce casγ = π/2 et α1,2 = π − µ2. Les coordonnées de ~v1 se simplient alors considérablement :

v1,x = 0v1,y = − sin θv1,z = cos θ

L'équation (1) peut être réécrite pour les θ diérents de π puis simpliée par 2 sin π−θ2 , ce qui réalise un

prolongement par continuité en θ = π :

sin θ sinϕ sinµ2 − (1 + cos θ) cosµ2 = 0⇔ 2 sin π−θ

2 (cos π−θ2 sinϕ sinµ2 − sin π−θ2 cosµ2) = 0

⇔ cos π−θ2 sinϕ sinµ2 − sin π−θ2 cosµ2 = 0

Le domaine de validité de θ déni par l'équation (6) devient : −1 ≤ cos θ ≤ cos(π − 2µ2), on en déduit quesi µ2 est diérent de π/2 alors θ sera toujours diérent de 0, dans ce cas on peut écrire :

sinϕ =tan π−θ

2

tanµ2⇒

ϕ+ = π − arcsin tan π−θ2

tanµ2

ϕ− = arcsin tan π−θ2

tanµ2

(12)

Le cas µ1 = µ2 = π/2 est traité dans la section suivante.

6.1.3 familles à un vecteur xe

Les prolongements par continuité de la section précédente ne sont pas capables de trouver toutes les so-lutions, ils se contentent d'améliorer la robustesse des calculs et de trouver les valeurs de ϕ qui sont la suitelogique des valeurs hors alignement. En eet, ils ont été réalisés en considérant que dans des équations du typef(ϕ, θ) sinµ1 sin θ

2 = 0 ou f(ϕ, θ) sinµ1 cos θ2 = 0, c'était le terme f(ϕ, θ) qui s'annulait, d'où une dénitionimplicite d'une fonction ϕ = g(θ). Toutes les valeurs de ϕ entre 0 et 2π annulent cependant les équations dansle cas particulier où c'est sin θ

2 ou cos θ2 qui s'annule. Ces solutions représentent des familles indépendantes :elles ont le même ~v1(θ) mais pas forcément9 le même ~v2(ϕ) que les familles prolongées. Ces familles peuventêtre décrites en trouvant toutes les orientations dénies par ~v1 xe et ~v2 prenant toutes les positions possiblesautour de ~v1.

9les valeurs de ϕ égales au valeurs prolongées conduisent bien entendu à trouver certains couples (~v1, ~v2) dans plusieurs familles,cette duplication des solutions n'a dans la pratique aucune conséquence

marmottes-mathematique.tex

Page 30: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 26

Un autre cas peut être modélisé de façon similaire, il s'agit du cas particulier des prolongements par continuitéen 0 ou π lorsque ces points correspondent à des singularités et qu'en plus on a µ1 = µ2 = π/2. Lorsque ce casprovient d'un prolongement en 0, on a γ = µ1 et α1,2 = µ2, lorsqu'il provient d'un prolongement en π, on aγ = π−µ1 et α1,2 = π−µ2 ; ces deux cas se ramènent donc tous les deux à γ = α1,2 = π/2. Dans ces conditionsl'équation (1) se simplie de façon drastique et se résoud immédiatement pour les valeurs de sin θ non nulles, lasolution se prolongeant de façon triviale pour les valeurs nulles :

sin θ sinϕ = 0⇒ϕ+ = π

ϕ− = 0

ce qui revient à dire que l'orientation est modélisée par deux familles dénies par ~v2 xe et ~v1 prenant toutes lespositions possibles autour de ~v2. Il faut cependant prendre garde que ces familles sont bien des familles généralesprolongées et qu'il faut ajouter les familles d'alignement correspondant à sin θ = 0 et ϕ quelconque, c'est-à-direles familles à ~v1 xe mentionnées au début de cette section.

Un dernier cas se modélisant encore par des familles ayant un vecteur xe correspond à l'alignement de~v1 et ~v2 (c'est-à-dire au cas où α1,2 vaut 0 ou π). Dans ce cas, la donnée du couple (~v1, ~v2) ne sut pas àdéterminer l'orientation, il faut un traitement spécique. Il est très improbable que deux astres diérents soientrigoureusement alignés lorsqu'ils sont vus du satellite. Par contre, il est tout à fait concevable d'avoir deuxconsignes géométriques sur le même astre (par exemple, lacet Soleil = 0 , tangage Soleil = 0) : l'alignementd'un vecteur avec lui-même est inévitable. Ce cas particulier est donc là encore très courant.

On peut tout d'abord remarquer que si ~v2 = −~v1 (cas improbable de deux astres diérents), on peuttransformer la consigne ~v2 est sur le cône (~a2, µ2) en consigne −~v2 sur le cône (−~a2, µ2) . On se ramèneainsi au cas ~v1 = ~v2.

Le vecteur ~v1 se trouve alors à l'intersection des cônes (~a1, µ1) et (~a2, µ2). Si les cônes sont égaux, il ya une innité de solutions : les consignes ne sont pas indépendantes ce qui revient à dire que le problème estmal posé. La bibliothèque de résolution doit dans ce cas générer un message d'erreur. Si les cônes n'ont pasd'intersection, les consignes sont incompatibles, l'orientation n'est pas pilotable. Dans le cas général, il y auradeux intersections, que l'on sait calculer (voir l'annexe F). On a donc là encore deux familles qui peuvent êtredécrites en trouvant toutes les orientations dénies par ~v1 xe.

Dans tous les cas précédents, les familles sont dénies par un vecteur (~v1 ou ~v2) et par toutes les possibilitésde rotation autour de ce vecteur. Les premiers exemples dénissaient ces possibilités par la donnée de l'autrevecteur, mais c'est dans la pratique inutile10, il sut de s'assurer que l'on explore bien toutes les possibilités.On adopte donc la modélisation suivante : tous les membres de la famille i sont dénis par la composition de larotation constante transformant ~v1 en repère inertiel en ~v1i en repère satellite (respectivement ~v2 et ~v2i) et de larotation d'angle θ′ autour du vecteur ~v1i (en repère satellite). Le degré de liberté de ces modèles est l'angle θ′.Les formules permettant de calculer les quaternions de ces rotations sont explicitées dans les annexes D et E.

6.1.4 réduction du domaine de validité

Les modèles décrits jusqu'ici ont tous un unique degré de liberté qui est un angle, éventuellement restreint àun domaine de validité. Cette restriction correspond exclusivement aux conditions mathématiques permettant

10ce n'est de toute façon pas possible pour le dernier exemple, comme nous venons de le remarquer

marmottes-mathematique.tex

Page 31: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 27

de résoudre les équations. Il est cependant possible que l'on sache dès la mise en place des cônes de consigne queles cibles ne sont pas autorisées à sortir de secteurs particuliers de ces cônes de consignes. Un premier exempleest donné par les capteurs d'angles dièdres, dont les consignes dénissent plutôt des demi-plans que des plans ;un autre exemple concerne les capteurs optiques dont les champs de vue limitent les portions utilisables descônes de consigne.

Dans certains cas, ces contraintes technologiques peuvent être superposées aux contraintes mathématiquesdéjà vues. Cela permet alors d'éviter de perdre du temps à chercher des solutions théoriques dans certaines zones,alors que ces solutions seront rejetées dans la phase de ltrage par les contraintes technologiques postérieure àla résolution.

Les intervalles de θ autorisés sont directement liés aux contraintes du premier capteur puisqu'ils décrivent laposition de ~v1. On peut donc les ltrer par ces secteurs de contrainte ; certains intervalles (et donc certaines fa-milles) disparaîtront complètement au travers de ce ltrage, d'autres seront découpés en plusieurs sous-intervalles(ce qui signie qu'ils génèreront plusieurs familles), d'autres enn ne seront pas aectés. Dans la pratique celasignie que la table 1 ne doit pas être appliquée à l'intervalle [cmin; cmax] déni par l'équation (6), mais à une séried'intervalles [cmin,1; cmax,1]

⋃. . .⋃

[cmin,n; cmax,n] résultant du ltrage de l'intervalle d'origine par les secteurs deconsigne du premier capteur.

Le deuxième capteur a également des secteurs de contrainte qui portent sur la cible ~v2, il est cependant plusdélicat de reporter ces contraintes sur les modèles, car ϕ est un résultat du modèle et non une entrée commeθ. On peut cependant les utiliser dans quelques cas simples, comme par exemple lorsque ~v1 est xe et que lemodèle peut être paramétré par ϕ ou lorsque c'est ~v2 qui est xe.

6.1.5 synthèse

On dispose d'une série de six modèles diérents. Le premier correspond aux équations (2) et (3), il s'agit d'unmodèle général qui est applicable lorsqu'aucune singularité ne peut être rencontrée au cours de la résolution.Les quatre suivants correspondent aux équations (7) et (8), à l'équation (9), aux équations (10) et (11), et àl'équation (12). Ils sont applicables lorsqu'une seule singularité doit être rencontrée, et sont valides même auniveau de la singularité grâce à un prolongement par continuité analytique. Le sixième modèle est applicable soitlorsqu'il faut introduire des familles supplémentaires en plus des prolongements, soit pour faire le prolongementlui-même lorsque certains angles sont droits, soit lorsque les cibles sont alignées. Ces modèles sont disjoints lesuns des autres, il n'est donc pas utile de gérer des basculements de modèles selon la valeur de θ11. Une mêmerésolution d'orientation doit cependant gérer plusieurs de ces modèles simultanément, on ne sait pas a priorilaquelle des familles fournira la solution nale respectant la troisième consigne.

Toutes ces familles correspondent à des couples de vecteurs dépendant du paramètre libre θ. Les formulesde l'annexe B, page 49 permettent de trouver l'orientation à partir de ces couples, pour une valeur de θ donnée.Cette orientation et l'orientation précédente permettent de calculer par diérences nies la rotation moyennedepuis le pas précédent. On fait l'hypothèse que la rotation est constantes, la rotation moyenne est donc égaleà la rotation instantanée. On dispose ainsi de l'état complet (orientation et rotation instantanée) pour chercherla valeur du paramètre θ qui permettra de respecter la troisième consigne.

L'algorithme suivant explicite une façon d'organiser les choix pour construire tous les modèles nécessaires à11ces basculements poseraient d'ailleurs des problèmes numériques pour des solutions aux alentours de l'angle de basculement

marmottes-mathematique.tex

Page 32: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 28

une détermination d'orientation. L'utilisation de ces modèles pour faire la résolution n'est pas décrite ici. Onappelle secteur i la série des intervalles autorisés pour le cône i.

Si µ1 = γ = π/2

Si µ2 = α1,2 = π/2

Si ~a2 ∈ secteur 1

créer la famille ~v1 = ~a2 xe, restreinte par ~v2 ∈ secteur 2

Fin si

Si −~a2 ∈ secteur 1

créer la famille ~v1 = −~a2 xe, restreinte par ~v2 ∈ secteur 2

Fin si

Si ~a1 ∈ secteur 2

créer la famille ~v2 = ~a1 xe, restreinte par ~v1 ∈ secteur 1

Fin si

Si −~a1 ∈ secteur 2

créer la famille ~v2 = −~a1 xe, restreinte par ~v1 ∈ secteur 1

Fin si

Sinon

cmin ← cos(α1,2 + µ2), cmax ← cos(α1,2 − µ2)

ltrer le domaine de θ par le secteur 1

Pour chaque intervalle du domaine de θ

Si θ passe par 0

créer la famille ~v1 = ~a2 xe, restreinte par ~v2 ∈ secteur 2

créer les familles de prolongement en 0 par l'équation (9)

Sinon

Si θ passe par π

créer la famille ~v1 = −~a2 xe, restreinte par ~v2 ∈ secteur 2

créer les familles de prolongement en π par l'équation (12)

Sinon

marmottes-mathematique.tex

Page 33: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 29

créer les familles générales par les équations (2) et (3)

Fin si

Fin si

Fin pour

Fin si

Sinon

cmin ← cos(α1,2+µ2)−cos γ cosµ1

sin γ sinµ1, cmax ← cos(α1,2−µ2)−cos γ cosµ1

sin γ sinµ1

ltrer le domaine de θ par le secteur 1

Pour chaque intervalle du secteur 1

Si θ passe par 0 et que µ1 = γ

créer la famille ~v1 = ~a2 xe, restreinte par ~v2 ∈ secteur 2

créer les familles de prolongement en 0 par les équation (7) et (8)

Sinon

Si θ passe par π et que µ1 = π − γ

créer la famille ~v1 = −~a2 xe, restreinte par ~v2 ∈ secteur 2

créer les familles de prolongement en π par les équations (10) et (11)

Sinon

créer les familles générales par les équations (2) et (3)

Fin si

Fin si

Fin pour

Fin si

6.2 cas de deux consignes cinématiques

Lorsqu'au moins deux capteurs sur les trois sont de type cinématique, respecter les deux consignes corres-pondantes revient à imposer au vecteur de rotation instantanée d'avoir pour projection sur les vecteurs ~a1 et ~a2

marmottes-mathematique.tex

Page 34: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 30

les valeurs ω1 et ω2. Les deux consignes sont indépendantes si ~a1 et ~a2 ne sont pas alignés. Dans ce cas, on peutexprimer le vecteur rotation instantanée ~Ω dans le repère non orthonormé (~a1, ~a2, ~a1 ∧ ~a2).

~Ω =ω1 − ω2(~a1 · ~a2)

1− (~a1 · ~a2)2~a1 +

ω2 − ω1(~a1 · ~a2)1− (~a1 · ~a2)2

~a2 + θ(~a1 ∧ ~a2) (13)

Dans cette formule, le seul degré de liberté est θ, et il peut varier de moins l'inni à plus l'inni. On peutréécrire la formule 13 sous la forme :

~Ω = ~u+ θ~v (14)

où ~u et ~v sont des vecteurs constants orthogonaux. On a alors ‖~Ω‖2 = ‖~u‖2 + θ2‖~v‖2, qui représente le carré dela vitesse de rotation instantanée. Les satellites ne tournent généralement pas très vite sur eux-mêmes, dans lapratique on peut limiter le domaine de variation de θ à l'intervalle [−θmax; θmax] avec :

θmax =

√ω2

max − ‖~u‖2‖~v‖2

(15)

où ωmax est une vitesse maximale de rotation. Si l'utilisateur le désire, il peut initialiser cette valeur selon sonsatellite, sachant que s'il ne le fait pas, la bibliothèque utilisera par défaut ωmax = 0,4 radians par seconde (soitenviron 23 degrés par seconde). Cette valeur par défaut est un compromis entre la nécessité de couvrir les casplausibles de satellites très rapides et le risque de générer toute une série d'orientations, solutions de la troisièmeconsigne, selon la vitesse choisie, pour nalement rejeter toutes celles qui correspondent à des rotations plusrapides que quelques dixièmes de degré par seconde.

Pour chaque θ valide, on calcule l'orientation correspondante en supposant le vecteur de rotation constantentre le pas précédent et le pas courant, à l'aide de la relation :

Q(θ, h) = Q(t)E(θ, h) (16)

où le quaternion E(θ, h) d'évolution de l'orientation entre t et t+ h est donné par :

E(θ, h) =

[cos(ω2h)

1ω sin(ω2h)~Ω(θ)

](17)

avec ω = ‖~Ω(θ)‖.

Dans les relations 16 et 17, le seul paramètre libre est θ, les paramètres t et h sont gés par le pas d'intégrationde l'orientation imposé par le programme appelant.

7 fonction d'erreur sur une consigne

Connaissant une orientation donnée par son quaternion Q et une rotation instantanée ~Ω, on cherche àidentier une fonction de cette orientation et de cette rotation s'annulant lorsqu'elles respectent une consignexe. Pour cela, on utilise une fonction d'erreur indiquant l'écart entre une valeur obtenue et la valeur désirée.

Une méthode permettant d'annuler cette fonction d'erreur est donnée dans l'annexe H, page 65. Bien d'autresméthodes peuvent être utilisées, cela n'a pas d'importance pour l'algorithme.

marmottes-mathematique.tex

Page 35: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 31

7.1 cas d'une consigne géométrique

Une consigne géométrique est modélisée par un cône (~a3, µ3) sur lequel un vecteur ~v3 doit rester conné, ~v3

étant la projection en repère satellite d'un vecteur ~u3 connu en repère inertiel. La fonction d'erreur est donnéepar :

f(Q) = arccos(Q(~u3) · ~a3)− µ3 (18)

Cette fonction est continue, indéniment dérivable, bornée entre µ3 et π−µ3, et s'annule lorsque ~v3 = Q(~u3)est sur le cône (~a3, µ3). Les formules permettant de calculer ~v3 = Q(~u3) sont décrites dans l'annexe A.

7.2 cas d'une consigne cinématique

Une consigne cinématique est modélisée par un axe sensible ~a3 et une vitesse ω3 telles que : ~Ω · ~a3 = ω3 où~Ω est le vecteur vitesse de rotation instantanée du satellite.

Si on note Q(t) le quaternion d'orientation au pas précédent et Q(t+ h) le quaternion d'orientation courant(dans la pratique, Q(t+h) est calculé en fonction d'un paramètre θ et non en fonction de t+h voir section 6),alors le quaternion E(h) représentant l'évolution d'orientation au cours du pas est donné par :

E(h) = Q−1(t) (Q(t+ h)) (19)

d'où l'on déduit :~Ω(h) =

2 arccos(e0)h

~e

‖~e‖(20)

où e0 et ~e sont respectivement les composantes scalaire et vectorielle de E(h).

La fonction d'erreur est alors :

f(Q(t+ h)) = 2 arccos(e0)(~e · ~a3)− h√

(1− e20)ω3 (21)

8 Modélisation des capteurs

La modélisation des capteurs a été présentée de façon succinte avec les principes de fonctionnement internes.Nous allons maintenant décrire la partie visible par l'utilisateur et qui devra être dénie dans les chiers deressources : ce sont donc réellement les données d'entrée de la bibliothèque marmottes.

Les nombreux capteurs utilisés sur les satellites ont souvent des caractéristiques communes, ils peuvent êtrehiérarchisés selon la notion classique en analyse orientée objet de généralisation 12. La gure 7 présente cettehiérarchie.

L'abstraction la plus générale correspond à la racine de l'arbre, les spécialisations les plus précises corres-pondant aux feuilles. Les sections suivantes décrivent les données de modélisation propre à chaque niveau. Lemodèle complet d'un capteur Terre regroupe donc les données propres aux capteurs Terre, les données propres

12qui se retrouve au niveau de la conception dans un arbre d'héritage

marmottes-mathematique.tex

Page 36: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 32

aux capteurs dièdres, les données propres aux capteurs optiques, les données propres aux capteurs géométriques(il n'y en a pas) et les données générales à tous les types de capteurs.

Une remarque importante est que l'on considère dans la modélisation qu'un capteur produit une seule mesure.Pour modéliser un capteur réel produisant deux mesures (par exemple un capteur Terre mesurant le roulis et letangage), on dénira deux capteurs au sens de cette modélisation, un pour chacune des mesures.

Fig. 7 Hiérarchie des capteurs

senseur

AA

géométrique

AA

cinématique

AA

gyromètreintégrateur

ascensiondroite déclinaison optique

AA

Cardan

vecteur

AA

dièdre

AA

fonction

AA

planvecteur

cartésien

limbe(

sin θθ

)2

sin θxθx

sin θyθy

e−θ2

2

échantillonné

8.1 caractéristiques générales

Les capteurs sont des équipements de mesure implantés sur les plateformes des satellites. L'implantationse traduit au niveau du modèle par l'orientation du repère interne au capteur par rapport au repère satellite.Tous les axes seront ultérieurement décrits dans le repère capteur et c'est cette orientation qui permettra de lesprojeter en repère satellite. La manière la plus naturelle de dénir cette orientation est de donner les coordonnéesen repère satellite des axes ~ıcapteur, ~capteur et ~kcapteur, il y a bien d'autres manières de dénir cette orientation,décrites dans la documentation utilisateur de la bibliothèque marmottes.

Les mesures fournies par les capteurs sont des scalaires, principalement des angles ou des vitesses angulaires,mais parfois aussi des nombres sans dimension (capteurs cartésiens) ou des gains en dB. Ces scalaires ont uneprécision limitée, caractéristique du capteur. La précision est utilisée lors de l'évaluation de la convergence desalgorithmes de résolution. L'erreur de convergence introduite par cette résolution dans un système sol se doit

marmottes-mathematique.tex

Page 37: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 33

d'être négligeable devant l'erreur intrinsèque du pilotage bord, le seuil de convergence doit donc être inférieurou égal à la précision du capteur. Une convergence trop ne quant à elle augmente la durée des calculs. Lecompromis utilisé par marmottes est de considérer un seuil de convergence égal au dixième de la précision ducapteur.

8.2 caractéristiques des capteurs géométriques

Nous avons vu que les consignes des capteurs géométriques étaient modélisées par des cônes. Il s'agit cepen-dant là d'un calcul interne réalisé à chaque détermination d'orientation par la bibliothèque elle-même, et quin'apparaît pas dans le chier de description des capteurs.

Ces capteurs n'ont pas de caractéristique propre visible pour l'utilisateur.

8.3 caractéristiques des capteurs d'ascension droite

Les capteurs ascension sont des pseudo-capteurs observant un vecteur déni en repère satellite (par exemplela direction de poussée d'un moteur), et mesurant son ascension droite par rapport au repère de Veis. Leur seulecaractéristique spécique est le vecteur observé (exprimé en repère capteur).

Comme nous l'avons vu à la section 3.1, page 13, on peut inverser la consigne. En eet la consigne bruteconsiste à obliger le vecteur ~observe à rester conné dans un plan d'ascension droite donnée, plan obtenu enfaisant tourner le plan ( ~Xin, ~Zin) d'un angle α autour de ~Zin. Ceci revient à dire que le vecteur ~observe doit êtreorthogonal à un certain vecteur ~cible déni comme étant orthogonal au plan d'ascension droite souhaité. Cetteconsigne est strictement équivalente à imposer au vecteur inertiel ~cible à rester conné dans le plan orthogonalà ~observe, plan déni en repère satellite.

Fig. 8 pseudo-capteur d'ascension droite

α

α ~cible

~observe

~Xin

~−Yin

~Zin

marmottes-mathematique.tex

Page 38: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 34

Cible pour la mesure α

~cible

sinα− cosα

0

Cône de consigne pour la mesure α

~axe = ~observeangle =

π

2

Mesure produite

~o = Q−1att( ~observe)

α = atan2(oy, ox)

8.4 caractéristiques des capteurs de déclinaison

Les capteurs déclinaison sont des pseudo-capteurs observant un vecteur déni en repère satellite (par exemplela direction de poussée d'un moteur), et mesurant sa déclinaison par rapport au repère de Veis. Leur seulecaractéristique spécique est le vecteur observé (exprimé en repère capteur).

Comme nous l'avons vu à la section 3.1, page 13, on peut inverser la consigne. En eet la consigne bruteconsiste à obliger le vecteur ~observe à rester conné dans un cône de déclinaison donnée, cône d'axe ~Zin. Cecirevient à dire que le vecteur ~observe doit être séparé de ~Zin d'un angle connu. Cette consigne est strictementéquivalente à imposer au vecteur inertiel ~cible = ~Zin à rester conné dans un cône d'axe ~observe, cône déni enrepère satellite.

Il faut prendre garde avec les capteurs de déclinaison à ne pas utiliser des consignes valant ±π/2. En eet lecône de consigne dégénère dans ce cas en un point situé sur l'axe des pôles, il ne s'agit donc plus d'une variétéà une dimension et les algorithmes de résolution ne fonctionnent plus.

Cible pour la mesure δ

~cible

001

Cône de consigne pour la mesure δ

~axe = ~observeangle =

π

2− δ

Mesure produite

~o = Q−1att( ~observe)

δ = arcsin(oz)

marmottes-mathematique.tex

Page 39: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 35

Fig. 9 pseudo-capteur de déclinaison

π2 − δ

δ

~observe

~Zin = ~cible

8.5 caractéristiques des capteurs optiques

Les capteurs optiques sont des capteurs géométriques qui observent une cible, leurs caractéristiques spéciquessont la cible et le champ de vue du capteur.

La liste des cibles connues de marmottes à la date de rédaction de cette note est : Soleil, pseudo-Soleil(le pseudo-Soleil est visible même à travers la Terre et la Lune, alors que le Soleil est aecté par les éclipses),Terre-Soleil (la direction Terre-Soleil ne prend pas en compte la parallaxe due à la position du satellite,alors que la direction Soleil en tient compte), Lune, Terre, nadir (les points de la surface terrestre au nadirdu satellite le voient exactement à leur verticale locale, en prenant l'ellipticité de la Terre en compte), vitesse,moment (orbital ), devant (direction dans le plan de l'orbite perpendiculaire à la direction du centre Terre),position (qui indique que l'utilisateur donnera lui-même dans le code la position de la cible et qu'il faudra luiappliquer une correction de parallaxe), direction (qui indique que l'utilisateur donnera lui-même dans le codela direction de la cible et qu'il faudra la prendre telle qu'elle), station (la station elle-même est décrite dans unbloc séparé), Polaris, et Canopus13.

Deux cibles particulières de la liste précédente méritent une explication, les cibles position et direction .Ces cibles permettent de prendre en compte les capteurs susceptibles d'observer de nombreuses cibles diérentesselon les conditions ou les besoins de l'utilisateur. La cible position est ainsi bien adaptée à la modélisation despseudo-capteurs mesurant des gains d'antennes par rapport à un émetteur quelconque, éventuellement mobile(cf 8.12, 8.13 et 8.14). L'exemple type est le calcul du bilan de liaison d'un signal émis par un satellite gpsdont on recalcule la position à chaque instant. La cible direction est quant à elle plutôt destinée à modéliserdes capteurs stellaires qui peuvent suivre des centaines voire des milliers d'étoiles diérentes selon la richesse ducatalogue embarqué. Pour modéliser de tels capteurs, une seule entrée dans le chier de description est nécessaire,la cible pouvant être mise à jour à volonté pendant le déroulement du programme. Lorsqu'un tel capteur n'estutilisé qu'en temps que capteur de mesure et pas en consigne, on peut même tester de nombreuses cibles entre

13les deux derniers astres ont été rajoutés uniquement pour le plaisir ...

marmottes-mathematique.tex

Page 40: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 36

chaque détermination d'orientation, par exemple pour tester nement les étoiles visibles après un premier trigrossier.

Un champ de vue est une zone de la sphère unité qui peut être simple, c'est alors un cône déni par son axe(en repère capteur, rappelons-le) et son demi-angle au sommet, ou composée à partir d'une ou de plusieurs autreszones. Dans la terminologie marmottes, ces zones (simples et composées) sont dénommées des champs14. Lesopérations de composition disponibles sont décrites dans la table 2.

Tab. 2 opérations sur les zones géométriques de la sphère unité

nom argumentsintersection champ champréunion champ champdiérence champ champmarge scalaire champ

déplacement rotation champbalayage rotation champ

L'opération marge permet d'ajouter (ou de retirer selon le signe) une marge angulaire sur un champ. L'opé-ration balayage permet de calculer le champ résultant de l'étalement de champ sur la sphère à l'aide d'unerotation (un peu à la manière d'un pinceau). Cette dernière opération est particulièrement utile pour dénir leschamps de vue résultant de balayages optiques de détecteurs.

Fig. 10 champ de vue d'un capteur solaire

50

40

~

~k

À titre d'exemple, voici comment on pourrait décrire le champ de vue du capteur solaire de la gure 10 :14du nom de la classe c++ qui les implante

marmottes-mathematique.tex

Page 41: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 37

dièdre d'axe ~k :intersection du cône ((sin(20), cos(20), 0), 90)avec le cône ((sin(20),− cos(20), 0), 90)

dièdre d'axe ~ :intersection du cône ((sin(25), 0, cos(25)), 90)avec le cône ((sin(25), 0,− cos(25)), 90)

champ de vue :intersections des dièdres d'axes ~ et ~k

Cette description peut être facilement transcrite dans le chier des capteurs, la syntaxe de ce chier est décritedans le manuel d'utilisation de marmottes.

Dans tous les cas de champs de vue, la visibilité d'un astre considéré comme ponctuel est testée par l'inclusiondu point dans le champ complet. Les capteurs Terre15 cependant ne se contentent pas d'observer un point deleur astre cible mais utilisent son limbe, leur champ de vue et leur logique de détermination de la visibilité sontdonc plus complexes (voir section 8.10).

8.6 caractéristiques des capteurs vecteurs

Les capteurs vecteurs sont des capteurs optiques qui mesurent des angles entre l'astre observé et un vecteurde référence.

Le capteur est entièrement déni par l'axe de référence.

Un exemple classique concerne les satellites stabilisés par rotation, qui disposent de capteurs mesurant l'angled'aspect solaire par rapport à l'axe de rotation. L'axe de référence est donc l'axe de rotation du satellite, quidans la pratique dépend de l'implantation du capteur. Pour des raisons d'homogénéité la bibliothèque attendce vecteur en repère capteur, l'utilisateur doit réaliser lui-même la projection entre les repères (ou dire à labibliothèque que le repère capteur est similaire au repère satellite).

Le cône de consigne pour la mesure α s'exprime simplement

~axe = ~referenceangle = α

La mesure produite pour un astre cible dans la direction ~c vaut

~v = Qatt(~c)α = angle(~v, ~reference)

15il s'agit là des capteurs explicitement déclarés de type Terre, un capteur de type dièdre ayant pour cible la Terre la considèreponctuelle, comme tous les autres astres

marmottes-mathematique.tex

Page 42: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 38

Fig. 11 champ de vue d'un capteur vecteur

~reference

~cibleα

8.7 caractéristiques des capteurs plan-vecteurs (élévation)

Les capteurs plan-vecteur 16 mesurent l'élévation par rapport à un plan. Ils sont directement issus des capteursvecteur, à l'aide des règles suivantes :

consigne el evation(α) = consignevecteur (π

2− α)

mesure el evation =π

2−mesurevecteur

8.8 caractéristiques des capteurs cartésiens

Les capteurs cartésiens mesurent la projection d'une direction sur un axe. Ils sont directement issus descapteurs vecteur, à l'aide des règles suivantes :

consignecartesien(x) = consignevecteur (arccos(x))mesurecartesien = cos(mesurevecteur )

8.9 caractéristiques des capteurs dièdres

Les capteurs dièdres sont des capteurs optiques qui mesurent des angles entre un demi-plan de référence(passant par l'axe sensible) et un demi-plan déni par l'astre observé et l'axe sensible. Le capteur est entièrementdéni par l'axe sensible et un vecteur quelconque du demi-plan de référence non aligné avec l'axe sensible. Lamesure produite est un angle compris entre −π et π, l'angle étant orienté du plan de référence vers le plan del'astre conformément au sens de l'axe sensible (voir la gure 12, où l'angle mesuré, α, est positif).

16ce nom extrêmement laid a été choisi après bien des réexions à la suite d'un conit qu'introduisait le terme plus adaptéélévation, si un lecteur désire proposer un meilleur vocable, l'auteur serait heureux de le savoir

marmottes-mathematique.tex

Page 43: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 39

Fig. 12 mesure d'un capteur dièdre

~sensible

~reference

~normale0

~dans0

α

Remarque : à l'intérieur de la bibliothèque, les caractéristiques axe sensible et référence de zéro sontconverties dès la lecture en deux autres vecteurs dans0 et normale0 , plus pratiques pour les calculs. On utilisepour cela les relations :

~normale0 =~sensible ∧ ~reference0

‖ ~sensible ∧ ~reference0‖2~dans0 = ~normale0 ∧ ~sensible

Ces deux vecteurs permettent d'exprimer facilement le cône de consigne et de calculer une mesure :

Cône de consigne pour la mesure α

~axe = cos(α) ~normale0 − sin(α) ~dans0

angle =π

2

Mesure produite pour un astre cible dans la direction ~c

~v = Qatt(~c)α = atan2(~v · ~normale0 , ~v · ~dans0 )

8.10 caractéristiques des capteurs Terre

Les capteurs Terre sont des capteurs dièdres mesurant la position de la Terre à l'aide du limbe. Ils ont laparticularité de pouvoir être inhibés par la Lune ou le Soleil, l'inhibition par la Lune ne se produisant qu'endeçà d'un seuil angulaire17 paramétrable entre 0 et 180 (0 pour la pleine Lune c'est-à-dire que la Lune

17l'angle considéré est l'angle Soleil-satellite-Lune

marmottes-mathematique.tex

Page 44: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 40

n'est jamais gênante et 180 pour la nouvelle Lune c'est-à-dire que la Lune est toujours gênante). Lescapteurs Terre ont donc les caractéristiques des capteurs dièdres (sauf la cible qui est obligatoirement la Terre),mais également un champ d'inhibition pour la Lune, un seuil de phase pour la Lune, et un champ d'inhibitionpour le Soleil.

Les capteurs Terre n'observent pas directement le centre Terre mais plutôt les portions de son limbe quiapparaissent dans des parcelles diérentes du champ de vue. Cette modélisation du limbe est faite en tenantcompte de la position du satellite en connaissant la géométrie de la Terre. Dans l'implémentation actuelle réaliséeau cnes, on utilise un modèle interne avec une Terre sphérique et un rayon infrarouge donné (qui est supérieur aurayon du géoïde à cause de l'eet de l'atmosphère), l'utilisateur ne paramètre rien de particulier. Il est envisagéde rendre ce modèle de corps central paramétrable an de pouvoir utiliser de tels capteurs 18 dans le cadre demissions autour d'autres corps.

De plus, pour produire des mesures globales (roulis et tangage par exemple), ces capteurs doivent combinerles informations issues de chaque parcelle. Ce principe est illustré par le champ de vue de la gure 13 : pourproduire une mesure de roulis le capteur combine soit les informations provenant des parcelles 1 et 2 soit lesinformations provenant des parcelles 3 et 4, pour produire une mesure de tangage le capteur combine soit lesinformations provenant des parcelles 1 et 3 soit les informations provenant des parcelles 2 et 4. Dans le casprésenté sur la gure, le capteur roulis voit la Terre alors que le capteur tangage ne la voit pas.

Cette logique de mesure a un impact sur la visibilité de la Terre considérée comme non ponctuelle, les champsde vue des capteurs Terre sont donc d'un type plus riche que les champs de vue classiques dénis par des champs,on les dénomme des parcelles19. Une parcelle peut être un simple champ ou une combinaison de parcelles à l'aidedes opérations décrites dans la table 3.

Tab. 3 opérations sur les zones logiques de la sphère unité

nom argumentset parcelle parcelleou parcelle parcelle

marge scalaire parcelle

8.11 caractéristiques des capteurs fonctions

Les capteurs de fonction sont des pseudo-capteurs qui ne sont a priori pas destinés à être utilisés en consignemais uniquement en mesure. Ils permettent de modéliser une fonction quelconque sur la sphère unité.

Ces capteurs doivent uniquement être considérés comme l'abstraction commune qui généralise les capteursde gain d'antenne échantillonnés, en (sin θ/θ)2 et en e

−θ22 .

18il faudrait alors changer leur nom ...19du nom des classes c++ Parcelle, ParcelleElementaire, ReunionEtParcelles, et ReunionOuParcelles qui les implantent

marmottes-mathematique.tex

Page 45: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 41

Fig. 13 champ de vue d'un capteur Terre à quatre scans

~

~k

1

2

3

4

8.12 caractéristiques des capteurs de gain échantillonnés

Les capteurs de gain échantillonnés modélisent des gains d'antennes pour une forme de lobe échantillonnéeselon l'angle de dépointage par rapport à l'axe. Ils permettent de calculer la part liée uniquement à l'orientationdans un bilan de liaison. La forme du gain modélisée par ce senseur est une simple interpolation linéaire selonla valeur θ du dépointage entre l'axe d'antenne et la cible par rapport aux points spéciés par l'utilisateurdans le chier de description. En dehors de l'intervalle spécié (c'est-à-dire entre 0 et le plus petit dépointageéchantillonné et entre le plus grand dépointage échantillonné et π), le gain est considéré constant. La valeurretournée a la même dimension que ce que l'utilisateur a mis dans son chier, il s'agit généralement directementde valeurs en dB.

La fonction n'étant pas inversible dans le cas général, on ne peut pas utiliser ces capteurs en consigne , ilssont destinés à être utilisés en mesure uniquement .

Ces capteurs sont caractérisés par l'axe d'antenne, qui correspond à la valeur maximale du gain et par legain maximal.

8.13 caractéristiques des capteurs de gain en (sin(θ/θ0)/(θ/θ0))2

Les capteurs de gain en (sin(θ/θ0)/(θ/θ0))2 modélisent des gains d'antennes pour la forme de lobe spéciée.Ils permettent de calculer la part liée uniquement à l'orientation dans un bilan de liaison. La forme du gain

marmottes-mathematique.tex

Page 46: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 42

modélisée par ce capteur est :

g = 10×logK

(sin(θ/θ0)θ/θ0

)2

log 10où θ est le dépointage entre l'axe d'antenne et la cible. La valeur retournée est donc directement une valeur endB.

La fonction n'étant pas inversible (à moins de se restreindre au lobe primaire), on ne peut pas utiliser cescapteurs en consigne , ils sont destinés à être utilisés en mesure uniquement .

Ces capteurs sont caractérisés par l'axe d'antenne, qui correspond à la valeur maximale du gain et par legain maximal.

8.14 caractéristiques des capteurs de gain en fonction gaussienne

Les capteurs de gain en e−(θ/θ0)2

2 modélisent des gains d'antennes pour la forme de lobe spéciée. Ils per-mettent de calculer la part liée uniquement à l'orientation dans un bilan de liaison. La forme du gain modéliséepar ce capteur est :

g = 10× logKe−(θ/θ0)2

2

log 10où θ est le dépointage entre l'axe d'antenne et la cible. La valeur retournée est donc directement une valeur endB.

La fonction est inversible, mais dans un souci d'homogénéité avec les autres capteurs de gain nous ont poussésà interdire l'utilisation de ces capteurs en consigne , ils sont destinés à être utilisés en mesure uniquement .

Ces capteurs sont caractérisés par l'axe d'antenne, qui correspond à la valeur maximale du gain et par legain maximal.

8.15 caractéristiques des capteurs de Cardan

Les capteurs de Cardan mesurent les rotations successives qui permettent de passer d'un repère de baseau repère satellite ( ~Xsat, ~Ysat, ~Zsat). Plusieurs repères de base sont disponibles, le repère géocentrique ( ~Xin =~s, ~Yin = −~w, ~Zin = −~q)20, le repère orbital (~t, ~n, ~w), le repère orbital (~q,~s, ~w), le repère inertiel de référence (danslequel sont déjà exprimées les positions et vitesses), le repère topocentrique ( ~Xin = −~q, ~Yin = ~Est), et un repèreutilisateur qui peut être modié dynamiquement entre chaque calcul.

Ces capteurs sont très utiles pour simplier la modélisation. Ce ne sont pas systématiquement des pseudo-capteurs, certaines plateformes étant capable de calculer les angles à partir d'information provenant d'autrescapteurs élémentaires et d'un modèle d'orbite et de les fournir dans la télémesure. Il arrive d'ailleurs que dans cecas les mesures élémentaires utilisées ne soient pas retransmises au sol, seules les angles calculés sont disponibles.

De nombreuses dénitions peuvent être données pour les angles, selon l'ordre dans lequel ils sont appliqués.Si cet ordre n'a qu'une importance minime lorsque les angles sont petits (les petites rotations sont presque

20c'est-à-dire que lorsque les angles sont nuls, l'axe ~Zsat est pointé Terre, et l'axe ~Xsat est dans le plan de l'orbite dans le sens dela vitesse

marmottes-mathematique.tex

Page 47: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 43

commutatives), il n'en est pas de même lorsque les rotations sont importantes. marmottes supporte tous lesordres possibles.

Les seules dénitions couramment acceptées par tous 21 sont les dénominations des rotations :

Tab. 4 rotations de Cardannom angle axeroulis ϕ + ~X

tangage θ +~Ylacet ψ +~Z

Les seules caractéristiques spéciques des capteurs de Cardan sont le repère de base, l'angle concerné etle jeu (c'est-à-dire l'ordre) auquel il appartient. La première caractéristique est dénie dans le champ referencedu capteur, les deux dernières caractéristiques étant réunies dans le champ genre où l'angle est écrit en touteslettres et le jeu est décrit par les initiales des angles dans leur ordre d'application ( RTL-roulis , RTL-tangage ,RTL-lacet , TLR-tangage 22, ...). Tous ces mots-clefs peuvent être modiés par l'utilisateur.

La modélisation des consignes et le calcul des mesures pour tous les types d'angles est donnée dans l'annexe I(page 76). Ces formules sont applicables quel que soit le repère de base, il sut en eet de calculer les coordonnéesdes axes canoniques du repère de base en repère inertiel (c'est-à-dire les coordonnées des vecteurs ~Xin, ~Yin et~Zin).

8.16 caractéristiques des capteurs cinématiques

Les capteurs cinématiques mesurent des vitesses de rotation instantanées autour d'un axe sensible. Cet axeest leur seule caractéristique spécique.

8.17 caractéristiques des gyromètres intégrateurs

Les gyromètres intégrateurs mesurent l'intégrale des vitesses de rotation instantanées autour d'un axe sensible.Les spécicités de leur modélisation se limitent à la valeur de la mesure à une date donnée et à cette date.

L'intégration réalisée à bord par ces capteurs n'est pas complètement prédénie. Le centre de contrôle peutà tout moment réinitialiser la valeur intégrée par télécommande (gyro resets ). Ces réinitialisations par le centrede contrôle sont utilisées dans les procédures nominales au cours de la mise à poste par exemple. Dans cesconditions, la simulation faite au sol doit pouvoir reproduire ce comportement. Les valeurs initiales utiliséssont simplement un angle nul à la date de la première utilisation du capteur dans la simulation, et ces valeurssont mises à jour soit par intégration classique à chacun des pas ultérieurs (intégration réalisée directement parle modèle de capteur lorsqu'on lui transmet l'état en n de résolution), soit à l'occasion des réinitialisationssimulées.

21il y a tout de même au moins une exception : les cvi Ariane 422en anglais on trouvera bien-sûr : RPY-roll, RPY-pitch, RPY-yaw, PYR-pitch, ...

marmottes-mathematique.tex

Page 48: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 44

9 Conclusion

Les méthodes qui ont été décrites permettent de réaliser des simulateurs d'évolution d'orientation dans lacomposante sol des systèmes spatiaux. Elles ne répondent pas à tous les besoins liés à l'orientation des satellites.Ni les erreurs de mesures ni les actuateurs ne sont pris en compte ; les études nécessitant leur modélisationdoivent donc ajouter leurs propres algorithmes, même si elles peuvent utiliser également la base présentée. Cesméthodes ne sont pas non plus utilisables à bord, elles sont essentiellement orientées vers de la simulation.

Ces méthodes s'appuient sur une description de l'orientation des satellites très simple et proche des conceptsphysiques familiers aux ingénieurs en mécanique spatiale. Cette description permet de séparer clairement ladescription et la détermination de l'orientation, ce qui permet la mise au point d'outils multi-missions.

Ces méthodes sont implémentées dans une bibliothèque validée opérationnellement. De nombreux projets enont bénécié depluis plusieurs années. Cette bibliothèque est diusée librement par le cnes23.

23http://logiciels.cnes.fr

marmottes-mathematique.tex

Page 49: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 45

Annexes

A Quaternions

L'orientation d'un satellite est déterminée par le changement de repère qui permet d'exprimer un vecteurxe en repère satellite connaissant ses coordonnées inertielles ou inversement. Dans IR3, il existe toujours unerotation autour d'un axe qui permet de transformer un repère en un autre, on représente donc une orientationpar une rotation. Numériquement, la rotation est stockée sous forme de tableaux de nombres qui peuvent être :

la matrice de rotation (tableau de 9 nombres vériant 6 relations) ; les angles d'Euler (3 nombres) ; l'axe et l'angle de rotation (4 nombres vériant une relation) ; un quaternion (4 nombres vériant une relation).Dans tous les cas, l'objet mathématique créé a trois degrés de liberté, mais ils sont plus ou moins dilués dans

tous les nombres qui composent l'objet. Le choix d'un formalisme ou d'un autre se fait en regardant le nombrede composants, la simplicité des opérations (composition de rotations, application d'une rotation à un vecteur,extraction de l'axe et de l'angle de rotation), l'existence de singularités.

Nous avons opté pour une représentation par quaternions principalement pour la simplicité des opérations(surtout quand on considère que nous traitons simultanément et de façon analytique les quaternions et leursdérivées première et seconde par rapport à une variable) et la facilité d'extraction de l'axe et de l'angle derotation. Le quaternion est ainsi à mi-chemin entre un formalisme tout linéaire (les matrices) où les élémentscanoniques (axe et angle) sont cachés, et un formalisme canonique (angles d'Euler ou axe et angle de rotations)qui réclame des opérations trigonométriques directes et inverses. Un quaternion est équivalent à un axe et unangle de rotation où les calculs trigonométriques sont déjà faits.

Soit une rotation d'axe ~u et d'angle θ. Si l'on considère que la rotation fait tourner des vecteurs de l'angle+θ dans un repère xe, le quaternion associé Q est :

Q

q0 = cos(− θ

2)q1 = sin(− θ

2)uxq2 = sin(− θ

2)uyq3 = sin(− θ

2)uz

Nous dénissons l'orientation par la rotation qui appliquée aux coordonnées inertielles d'un vecteur produitles coordonnées en repère satellite du même vecteur. Avec cette convention, l'angle θ utilisé dans les formulesprécédentes est l'opposé de l'angle dont tourne le satellite lorsqu'il passe d'une orientation alignée avec le repèreinertiel à son orientation nale.

On trouve souvent dans la littérature une formulation sans le signe −. Ceci est dû au fait que d'emblée lesauteurs considèrent que c'est le repère qui tourne de θ. Les vecteurs vus dans ce repère semblent donc tournerde −θ, d'où notre notation24.

L'axe ~u étant invariant par la rotation, les coordonnées (ux, uy, uz) peuvent indiéremment être expriméesdans le repère inertiel ou dans le repère satellite.

24nous présentons le quaternion d'une façon générale par les rotations et non pas seulement pour le traitement de l'orientation

marmottes-mathematique.tex

Page 50: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 46

On remarque que le signe de Q est indiérent ; pour inverser la rotation, il faut soit changer le signe de q0,soit changer les signes de q1, q2, q3.

La relation vériée par les composantes du quaternion est :

q20 + q2

1 + q22 + q2

3 = 1

On notera ~q le vecteur de coordonnées : (q1, q2, q3)>.

Si la rotation R′′ est obtenue par deux rotations successives R puis R′ c'est-à-dire que pour tout vecteuron a R′′(~u) = R′(R(~u)), représentées par les quaternions Q et Q′, on calcule le quaternion Q′′ de la rotationcomposée par :

Q′′ = QQ′∣∣∣∣∣ q′′0 = q0q

′0 − ~q · ~q′

~q′′ = q0~q′ + q′0~q + ~q ∧ ~q′

On remarque que cette multiplication n'est pas commutative, et que l'élément neutre (à droite comme à gauche)est le quaternion QI qui représente l'identité :

QI

1000

Attention : La multiplication des quaternions se fait en sens inverse de la multiplication des matrices : le

quaternion associé à R suivie de R′ est le quaternion QQ′ alors que la matrice est M ′M . C'est pour éviter touteconfusion que dans la bibliothèque cantor on ne dénit pas l'opérateur de multiplication (operator *) maisl'opérateur de composition (operator ()), qui conserve la dissymétrie intrinsèque de l'opération. Un utilisateurde cantor en c++ écrirait donc directement : Q_seconde = Q_prime (Q) .

Si ~u est un vecteur dont on connait les coordonnées, que l'on veut les coordonnées de son image ~v par larotation, et si Q est le quaternion qui représente l'orientation, alors on a :

vx

vy

vz

= (2q20 − 1)

ux

uy

uz

− 2q0

q1

q2

q3

∧ux

uy

uz

+ 2(q1ux + q2uy + q3uz)

q1

q2

q3

Remarque : Contrairement aux opérations matricielles, il est moins coûteux de composer deux rotations qued'appliquer une rotation à un vecteur.

On peut calculer la matrice M de rotation (telle que [v] = M [u]) à partir de Q par la relation :

M =

2(q2

0 + q21)− 1 2(q1q2 + q0q3) 2(q1q3 − q0q2)

2(q1q2 − q0q3) 2(q20 + q2

2)− 1 2(q2q3 + q0q1)2(q1q3 + q0q2) 2(q2q3 − q0q1) 2(q2

0 + q23)− 1

Pour calculer Q à partir de M , on remarque que des combinaisons des éléments diagonaux permettentd'exprimer au choix soit q2

0, soit q21, soit q2

2, soit q23. On calcule donc un des qi et on déduit les autres des

marmottes-mathematique.tex

Page 51: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 47

éléments hors diagonale. Il y a donc quatre façons diérentes de calculer Q (qui reviennent au même au signeprès, mais nous avons vu que le signe était indiérent). On choisit le qi que l'on va calculer en premier de façonà avoir q2

i susamment grand. En eet, la racine carrée est très sensible aux erreurs numériques lorsque sonargument est proche de 0, et comme q2

0 + q21 + q2

2 + q23 = 1, on est assuré qu'au moins un des q2

i sera supérieur à14 . On calcule donc Q en suivant l'algorithme suivant :Calculer s0 = M11 +M22 +M33

Si s0 > −0,1Calculer q0 =

√1+s02

En déduire q1 = M23−M324q0

, q2 = M31−M134q0

, q3 = M12−M214q0

Sinon, calculer s1 = M11 −M22 −M33

Si s1 > −0,1Calculer q1 =

√1+s12

En déduire q0 = M23−M324q1

, q2 = M12+M214q1

, q3 = M13+M314q1

Sinon, calculer s2 = −M11 +M22 −M33

Si s2 > −0,1Calculer q2 =

√1+s22

En déduire q0 = M31−M134q2

, q1 = M12+M214q2

, q3 = M32+M234q2

Sinon, calculer s3 = −M11 −M22 +M33 (on a obligatoirement s3 > −0,1)Calculer q3 =

√1+s32

En déduire q0 = M12−M214q3

, q1 = M13+M314q3

, q2 = M32+M234q3

Fin siFin si

Fin siDans la pratique, la matrice M peut être légèrement diérente d'une matrice orthogonale (par exemple

quand la matrice est écrite avec une précision limitée). Il faut alors trouver la matrice orthogonale M ′ la plusproche de M (par exemple au sens de la norme de Frobenius) avant d'en extraire les coecients du quaternion.On trouve M ′ par la méthode itérative suivante :

A0 = M

An+1 = An −AnM

>An −M2

Le critère d'arrêt des itérations est |fn − fn−1| < ε, avec fn = ‖M −An‖2.

On prend alors M ′ = An.

Les formules de passage des quaternions aux angles d'Euler sont :

q0 = cos(θ

2

)cos

(ψ + ϕ

2

)q1 = sin

2

)cos

(ψ − ϕ

2

)q2 = sin

2

)sin(ψ − ϕ

2

)q3 = cos

2

)sin(ψ + ϕ

2

)marmottes-mathematique.tex

Page 52: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 48

Si on s'intéresse à la cinématique de l'orientation, on a la relation suivante :

Q = MQ

M =12

0 −p −q −rp 0 r −qq −r 0 p

r q −p 0

où (p, q, r) sont les coordonnées en repère satellite (c'est-à-dire dans le repère qui tourne) du vecteur rotation

instantanée25. Cette relation permet de calculer pas à pas l'évolution de Q lorsque (p, q, r) varient dans le temps.S'ils sont xes, il est plus pratique de construire le quaternion d'évolution E(t− t0) :

E(t− t0) =

cos(ω2 (t− t0))

1ω sin

(ω2 (t− t0)

) p

q

r

avec ω =

√p2 + q2 + r2

On a alors : Q(t) = Q(t0)(E(t− t0)) par la composition des rotations.

Remarque : La formule précédente, exprimée sous forme matricielle, donne :

Q(t) = G(t− t0)Q(t0)

dans laquelle G(t− t0) est l'exponentielle matricielle de M . On retrouve donc ici la simplication d'écritureapportée par les quaternions.

25c'est-à-dire que (p, q, r) sont les coordonnées de l'axe de rotation instantanée tel qu'il est retourné par Marmottes

marmottes-mathematique.tex

Page 53: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 49

B Méthode des trièdres

B.1 formalisme matriciel

On connait deux vecteurs normés ~v1 et ~v2 à la fois en repère inertiel et en repère satellite. On veut en déduirela matrice de changement de repère.

À partir des vecteurs ~v1 et ~v2 (~v2 diérent de ±~v1), on calcule le trièdre orthonormé (~v′1, ~v′2, ~v′3) par :

~v′1 = ~v1

~v′2 =~v1 ∧ ~v2√

1− (~v1 · ~v2)2

~v′3 = ~v′1 ∧ ~v′2

Ces vecteurs ont pour coordonnées les matrices colonnes r1, r2, r3 en repère satellite et s1, s2, s3 en repèreinertiel.

M = [r1|r2|r3]×

s>1s>2s>3

⇒ [A]sat = M [A]inertiel

B.2 formalisme des quaternions

Connaissant ~u1, ~u2, ~v1, ~v2, trouver Q tel queQ

~u1 → ~v1

~u2 → ~v2

.

La formule générale de calcul de ~v = Q(~u) s'exprime ~v = 2[(~q · ~u)~q + q20~u− q0(~q ∧ ~u)]− ~u, d'où :

~v − ~u = 2[(~q · ~u)~q − ‖~q‖2~u− q0(~q ∧ ~u)] (22)

on pose ~k = (~v1 − ~u1) ∧ (~v2 − ~u2), en appliquant deux fois l'équation 22, on trouve :

~k

4= ‖~q‖4~u1 ∧ ~u2 + q0‖~q‖2~u1 ∧ (~q ∧ ~u2)− ‖~q‖2(~q · ~u2)~u1 ∧ ~q

+q0‖~q‖2(~q ∧ ~u1) ∧ ~u2 + q20(~q ∧ ~u1) ∧ (~q ∧ ~u2)− q0(~q · ~u2)(~q ∧ ~u1) ∧ ~q

−‖~q‖2(~q · ~u1)~q ∧ ~u2 − q0(~q · ~u1)~q ∧ (~q ∧ ~u2) + (~q · ~u1)(~q · ~u2)~q ∧ ~q (23)

les formules du double produit vectoriel donnent :

~u1 ∧ (~q ∧ ~u2) = (~u1 · ~u2)~q − (~u1 · ~q)~u2

(~q ∧ ~u1) ∧ ~u2 = (~u2 · ~q)~u1 − (~u1 · ~u2)~q(~q ∧ ~u1) ∧ (~q ∧ ~u2) = [(~q ∧ ~u1) · ~u2]~q − [(~q ∧ ~u1) · ~q]~u2

= [~q · (~u1 ∧ ~u2)]~q(~q ∧ ~u1) ∧ ~q = ‖~q‖2~u1 − (~u1 · ~q)~q~q ∧ (~q ∧ ~u2) = (~u2 · ~q)~q − ‖~q‖2~u2

marmottes-mathematique.tex

Page 54: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 50

que l'on introduit dans la relation 23, ce qui donne, d'une part, après quelques simplications :

~k

4= ‖~q‖4~u1 ∧ ~u2 + q0‖~q‖2((~u2 · ~q)~u1 − (~u1 · ~q)~u2)

+‖~q‖2((~u2 · ~q)~q ∧ ~u1 − (~u1 · ~q)~q ∧ ~u2)+q2

0(~q · (~u1 ∧ ~u2))~q − q0‖~q‖2((~u2 · ~q)~u1 − (~u1 · ~q)~u2) (24)

on a d'autre part :

(~u2 · ~q)~q ∧ ~u1 = ~u2 ∧ [(~q ∧ ~u1) ∧ ~q] + [~u2 · (~q ∧ ~u1)]~q= ~u2 ∧ [‖~q‖2~u1 − (~u1 · ~q)~q] + [~u2 · (~q ∧ ~u1)]~q

d'où :

(~u2 · ~q)~q ∧ ~u1 − (~u1 · ~q)~q ∧ ~u2 = ‖~q‖2~u2 ∧ ~u1 + (~u2 · (~q ∧ ~u1))~q= ‖~q‖2~u2 ∧ ~u1 + ~q · (~u1 ∧ ~u2)~q

on introduit cette expression dans l'équation 24 pour obtenir :

~k

4= ‖~q‖4~u1 ∧ ~u2 + ‖~q‖4~u2 ∧ ~u1 + ‖~q‖2(~q · (~u1 ∧ ~u2))~q + q2

0(~q · (~u1 ∧ ~u2))~q

~k = 4(~q · (~u1 ∧ ~u2))~q

On déduit de cette expression :

c = ~k · (~u1 ∧ ~u2)= 4[~q · (~u1 ∧ ~u2)]2

⇒ ~q =~k

2√c

(25)

Si ~q n'est pas dans le plan (~u1, ~u2), alors c est positif et l'expression 25 est bien dénie et permet de calculer ~q.Le signe global du quaternion étant indiérent, le choix de ~k

2√cau lieu de −~k

2√cn'a pas d'autre conséquence que

de ger le signe de q0 qui sera déterminé par la suite.

Pour calculer q0, il sut de remarquer que :

~v · (~u ∧ ~q) = 2q0(~u ∧ ~q)2

⇒ q0 =~v · (~u ∧ ~q)2(~u ∧ ~q)2

(26)

L'expression 26 est dénie lorsque ~u n'est pas aligné avec ~q. Si on choisit pour couple (~u, ~v) l'un des couplesayant servi à déterminer ~q, on sait que ~q n'étant pas dans le plan (~u, ~u′) ne peut être aligné avec ~u et donc q0

est calculable.

Une rotation étant une isométrie, on sait que le vecteur image de ~u3 = ~u1∧~u2√1−(~u1·~u2)2

par la rotation est

~v3 = ~v1∧~v2√1−(~v1·~v2)2

. Cette remarque permet de résoudre le cas particulier où ~q est dans le plan (~u1, ~u2), enreprenant les calculs à partir des couples (~u1, ~v1) et (~u3, ~v3). Si après ce changement, ~q est encore dans le plan

marmottes-mathematique.tex

Page 55: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 51

(~u1, ~u3), alors ~q était aligné avec ~u1 ; là encore on peut changer les couples de vecteurs et utiliser (~u2, ~u3), et(~v2, ~v3) pour tenter de résoudre le problème. Si c persiste à être nul, on est dans le cas particulier de l'identité,

on retourne alors le quaternion QI

1000

.

Les formules précédentes supposent que les vecteurs ~u1, ~u2, ~v1, ~v2 sont normés. Il faut donc les normaliseravant d'exécuter l'algorithme.

La rotation qui amène ~u1 en ~v1 et ~u2 en ~v2 n'existe que si ~u1 · ~u2 = ~v1 · ~v2 (une rotation est une isométrie).On peut garantir cette égalité en remplaçant : ~v2 par ~v′2.

~v′2 =

(~u1 · ~u2 − ~v1 · ~v2

√1− (~u1 · ~u2)2

1− (~v1 · ~v2)2

)~v1 +

(√1− (~u1 · ~u2)2

1− (~v1 · ~v2)2

)~v2

ce calcul doit être fait après la normalisation de la remarque précédente, et avant l'entrée dans l'algorithme.

L'algorithme ainsi sécurisé permet de calculer la rotation qui transforme ~u1 en ~v1 et ~v2 en un vecteur situédans le plan (~v1, ~v2) et orienté dans le même sens que ~v2.

La résolution complète du quaternion se fait en suivant l'algorithme suivant :~u1 = ~u1

‖~u1‖~u2 = ~u2

‖~u2‖~v1 = ~v1

‖~v1‖~v2 = ~v2

‖~v2‖

coeff =√

1−(~u1·~u2)2

1−(~v1·~v2)2

~v2 = (~u1 · ~u2 − ~v1 · ~v2 × coeff )~v1 + coeff ~v2

~uref = ~u1

~vref = ~v1

~k = (~v1 − ~u1) ∧ (~v2 − ~u2)c = ~k · (~u1 ∧ ~u2)Si (c < ε), alors

~u3 = ~u1∧~u21−(~u1·~u2)2

~v3 = ~v1∧~v21−(~v1·~v2)2

~k = (~v1 − ~u1) ∧ (~v3 − ~u3)c = ~k · (~u1 ∧ ~u3)Si (c < ε), alors

~k = (~v2 − ~u2) ∧ (~v3 − ~u3)c = ~k · (~u2 ∧ ~u3)Si (c < ε), alors

~q = ~0q0 = 1Retourner (q0, ~q)

Fin si

marmottes-mathematique.tex

Page 56: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 52

~uref = ~u2

~vref = ~v2

Fin siFin si~q = ~k

2√c

q0 = ~vref ·(~uref∧~q)2(~uref∧~q)2

Retourner (q0, ~q)

marmottes-mathematique.tex

Page 57: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 53

C Recherche de vecteurs orthogonaux

Connaissant un vecteur normé ~a, comment trouver un vecteur ~b normé orthogonal à ~a ? Il existe une innitéde solutions possibles, ce qui est gênant du point de vue informatique où l'on veut une solution quelconquechoisie dans cette innité, même si du point de vue mathématique, le fait qu'il en existe au moins une soitsusant. Les coordonnées de ~a dans la base orthonormée (~ı, ~, ~k) sont :

~a

ax

ay

az

Comme ~a est normé, on sait qu'au moins une des coordonnées est inférieure à 1√3en valeur absolue. On

choisit une coordonnée qui soit inférieure à 0,6 (supposons par exemple que ce soit az). On a alors 1− a2z ≥ 0,64

donc le vecteur ~b = ~a∧~k√1−a2

z

est calculable. Ce vecteur est normé et orthogonal à ~a, c'est notre solution. Si on

choisit de travailler à partir de ax, on utilise ~b = ~a∧~ı√1−a2

x

, et si on choisit de travailler à partir de ay, on utilise~b = ~a∧~√

1−a2y

.

marmottes-mathematique.tex

Page 58: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 54

D Rotation transformant un vecteur en un autre

Connaissant deux vecteurs ~a et ~b (‖~a‖ = ‖~b‖), comment trouver une rotation amenant ~a sur ~b ? Ce problèmeest similaire à celui des vecteurs orthogonaux (annexe C)) car là encore, il faut faire un choix dans un ensembleinni de solutions. Supposons tout d'abord ~a et ~b non alignés. On dénit le repère orthonormé (~ı, ~, ~k) par :

~ı =~a

‖~a‖

~ =‖~a‖2~b− (~a ·~b)~a

‖~a‖3√

1− (~a·~b)2

‖~a‖4

~k =~a ∧~b

‖~a‖2√

1− (~a·~b)2

‖~a‖4

Dans ce repère, les vecteurs ~a et ~b ont pour coordonnées :

~a

‖~a‖00

~b

~a·~b‖~a‖ = ‖~b‖ cos(θ)

‖~a‖√

1− (~a·~b)2

‖~a‖4 = ‖~b‖ sin(θ)

0

Une des rotations amenant ~a sur ~b est la rotation d'axe ~k et d'angle θ.

La matrice de cette rotation en repère (~ı, ~, ~k) est :cos(θ) − sin(θ) 0sin(θ) cos(θ) 0

0 0 1

On peut déduire de cette matrice une expression vectorielle traduisant la rotation d'un vecteur ~t quelconque :

R~k,θ(~t) = (~t · ~k)~k + cos(θ)[~t− (~t · ~k)~k] + sin(θ)[~k ∧

(~t− (~t · ~k)~k

)]= cos(θ)~t+ (1− cos(θ))(~t · ~k)~k + sin(θ)~k ∧ ~t

d'où en exprimant cos(θ), sin(θ), et ~k :

R~a,~b

(~t) =~a ·~b‖~a‖2

~t

+‖~a‖2 − ~a ·~b‖~a‖2

~t · (~a ∧~b)

‖~a‖2√

1− (~a·~b)2

|~a‖4

~a ∧~b

‖~a‖2√

1− (~a·~b)2

|~a‖4

+

√√√√1− (~a ·~b)2

|~a‖4~a ∧~b

‖~a‖2√

1− (~a·~b)2

|~a‖4

∧ ~t

=~a ·~b‖~a‖2

~t+~t · (~a ∧~b)

‖~a‖2(‖~a‖2 + ~a ·~b)(~a ∧~b) +

~a ∧~b‖~a‖2

∧ ~t

marmottes-mathematique.tex

Page 59: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 55

On peut alors retraduire cette expression vectorielle sous forme matricielle, mais cette fois dans la base danslaquelle on connait ~a et ~b :

[R(t)] = M [~t]

M =1‖~a‖2

~a ·~b+ c2x

‖~a‖2+~a·~bcxcy

‖~a‖2+~a·~b− cz cxcz

‖~a‖2+~a·~b+ cy

cxcy

‖~a‖2+~a·~b+ cz ~a ·~b+ c2y

‖~a‖2+~a·~bcycz

‖~a‖2+~a·~b− cx

cxcz‖~a‖2+~a·~b

− cy cycz

‖~a‖2+~a·~b+ cx ~a ·~b+ c2z

‖~a‖2+~a·~b

où cx, cy et cz sont les coordonnées de ~a ∧~b.

Lors du calcul de la forme vectorielle de R~a,~b

(~t), nous avons eectué une simplication par 1 − ~a·~b‖~a‖2 . Grâce

à cette simplication, la matrice M ci-dessus est également valide quand ~a = ~b, et devient la matrice identité.Le seul cas particulier à traiter est donc ~a = −~b.

On cherche pour cela un vecteur ~c orthogonal à ~a (voir annexe C) et on calcule la matrice de rotation d'angleπ autour de ~c (voir annexe E).

Remarque : On peut indiéremment considérer dans l'expression de la matrice précédente que c'est le vecteur~a qui tourne pour venir en ~b, ou que le vecteur est xe et que le repère tourne de sorte que ~a représente lescoordonnées avant rotation et que ~b représente les coordonnées après rotation. On a donc simplement [~b] = M [~a],et c'est l'utilisateur qui donne la signication physique qu'il veut à cette expression.

Si on veut exprimer la rotation à l'aide du formalisme des quaternions, on obtient :

Q

q0 = cos(− θ

2)q1 = sin(− θ

2)kxq2 = sin(− θ

2)kyq3 = sin(− θ

2)kz

D'où, en exprimant cos(− θ

2

), sin

(− θ

2

)et ~k :

cos(−θ

2

)=

√1 + cos θ

2=

√√√√‖~a‖2 + ~a ·~b2‖~a‖2

sin(−θ

2

)=

√1− cos θ

2= −

√√√√‖~a‖2 − ~a ·~b2‖~a‖2

~k =~a ∧~b

‖~a‖2√

1− (~a·~b)2

‖~a‖4

On obtient :

q0 =

√√√√12

(1 +

~a ·~b‖~a‖2

)

marmottes-mathematique.tex

Page 60: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 56

q1

q2

q3

=−(~a ∧~b)

‖~a‖2√

2(1 + ~a·~b

‖~a‖2)

=−(~a ∧~b)2q0‖~a‖2

Cette expression est singulière si ~b = −~a (q0 = 0). Dans ce cas, on calcule ~c orthogonal à ~a (voir annexe C) eton calcule le quaternion :

q0 = 0q1

q2

q3

= (~c)

Une application de ces formules est le calcul du quaternion qui transforme un repère initial dans lequel lescoordonnées d'un vecteur sont (vx, vy, vz)> en un repère canonique où les coordonnées de ce même vecteursont (1, 0, 0)>. On a alors :Si vx = −1

q0 = 0q1 = 0q2 = 1q3 = 0

Sinonq0 =

√1+vx

2q1 = 0q2 = −vz√

2(1+vx)

q3 = vy√2(1+vx)

Fin si

marmottes-mathematique.tex

Page 61: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 57

E Rotation d'axe et d'angle donnés

Soit ~k (‖~k‖ = 1), l'axe de la rotation, et soit θ son angle. On considère que les vecteurs sont xes et que c'estle repère qui tourne. La relation vectorielle suivante a été démontrée dans l'annexe D :

R~k,θ(~t) = cos(θ)~t+ (1− cos(θ))(~t · ~k)~k + sin(−θ)~k ∧ ~t

Le signe − provient du fait qu'ici on considère que c'est le repère qui tourne.

Cette expression se traduit sous forme matricielle : R~k,θ(~t) = M [~t] avec :

M =

cos θ + (1− cos θ)k2

x (1− cos θ)kxky + sin θkz (1− cos θ)kxkz − sin θky(1− cos θ)kxky − sin θkz cos θ + (1− cos θ)k2

y (1− cos θ)kykz + sin θkx(1− cos θ)kxkz + sin θky (1− cos θ)kykz − sin θkx cos θ + (1− cos θ)k2

z

Si on veut exprimer la rotation à l'aide du formalisme des quaternions, on obtient :

q0 = cosθ

2

q1 = sinθ

2kx

q2 = sinθ

2ky

q3 = sinθ

2kz

Remarque : cette expression dière de l'expression donnée à l'annexe A car cette fois θ représente l'angle dontle repère tourne (et non pas l'angle dont les vecteurs semblent tourner).

marmottes-mathematique.tex

Page 62: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 58

F Intersection de cônes sur la sphère

Les champs de vue des capteurs géométriques sont dénis comme des combinaisons plus ou moins complexesde cônes (réunions et intersections imbriquées). De plus, dans le cas des capteurs de limbe, le bord de l'astreobservé est également vu par le capteur comme un cône. Enn, les consignes géométriques sont modélisées pardes cônes.

On est donc souvent amené à rencontrer des intersections de cônes sur la sphère unité centrée sur le satellite.

Soient deux cônes (~u, α) et (~v, β) non coaxiaux (voir gure 14). On va chercher à exprimer les coordonnées

Fig. 14 intersection de cônes

~u

α

~v

β

des intersections dans le repère non orthonormé ~u, ~v, ~u ∧ ~v (~u ∧ ~v existe dès lors que les cônes ne sont pascoaxiaux).

~p = a~u+ b~v + c~u ∧ ~v

Les conditions

~p · ~u = cosα~p · ~v = cosβ~p · ~p = 1

permettent d'exprimer les coordonnées :

a =cosα− ~u · ~v cosβ

1− (~u · ~v)2

b =cosβ − ~u · ~v cosα

1− (~u · ~v)2

c = ±√

1− (a~u+ b~v)2

1− (~u · ~v)2

marmottes-mathematique.tex

Page 63: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 59

La condition d'existence de c ((a~u+ b~v) < 1) est la condition d'existence des intersections.

Les deux choix possibles de c donnent les deux solutions quand elles existent, symétriques par rapport auplan (~u, ~v). On notera les solutions ~p+ et ~p− selon le signe de c dans la suite de cette annexe.

Fig. 15 variation des intersections

~u

δα

~v

~p+

~p−

On cherche maintenant à savoir quelle est la partie du cône (~v, β) qui est incluse dans le cône (~u, α) et quelleest la partie qui est hors du cône. On fait donc varier l'angle d'ouverture α et on observe le sens de variation de~p+(α) et ~p−(α) (voir gure 15).

Les dérivées des coordonnées sont :∂a

∂α=

− sinα1− (~u · ~v)2

∂b

∂α=

(~u · ~v) sinα1− (~u · ~v)2

∂[‖a~u+ b~v‖2]∂α

=2 sinα

1− (~u · ~v)2[a~u+ b~v] · [−~u+ (~u · ~v)~v] = −2a sinα

∂c+

∂α=

a sinαc+ (1− (~u · ~v)2)

∂c−∂α

=a sinα

c− (1− (~u · ~v)2)

On en déduit :∂~p+

∂α=

sinα1− (~u · ~v)2

[−~u+ (~u · ~v)~v +

a

c+~u ∧ ~v

]∂~p−∂α

=sinα

1− (~u · ~v)2

[−~u+ (~u · ~v)~v +

a

c−~u ∧ ~v

]

marmottes-mathematique.tex

Page 64: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 60

À ce stade, on peut remarquer que :

~v ∧ ~p+ = a~v ∧ ~u+ b~v ∧ ~v + c+~v ∧ (~u ∧ ~v)= c+ [~u− (~u · ~v)~v]− a~u ∧ ~v

(par application du double produit vectoriel : ~a ∧ (~b ∧ ~c) = (~a · ~c)~b− (~a ·~b)~c)

De même, on démontre :~v ∧ ~p− = c− [~u− (~u · ~v)~v]− a~u ∧ ~v

Donc :

∂~p+

∂α=− sinαc+

~v ∧ ~p+

1− (~u · ~v)2

∂~p−∂α

=− sinαc−

~v ∧ ~p−1− (~u · ~v)2

Comme sin(α) > 0, c+ > 0, c− < 0, 1 − (~u · ~v)2 > 0, une diminution de l'angle d'ouverture α engendre unerotation négative de ~p− autour de ~v, et une rotation positive de ~p+ autour de ~v.

La partie du cône (~v, β) incluse dans le cône (~u, α) est donc la partie qui va de ~p+ vers ~p− en tournantpositivement autour de ~v (voir gure 16). Un raisonnement symétrique montre que la partie du cône (~u, α)incluse dans le cône (~v, β) est la partie qui va de ~p− vers ~p+ en tournant positivement autour de ~u. Ce résultat

Fig. 16 parties incluses

~u ~v

~p+

~p−

est vrai dans toutes les congurations de ~u, ~v, α, β.

marmottes-mathematique.tex

Page 65: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 61

G Dérivation automatique

G.1 besoins

La bibliothèque marmottes est destinée à être appelée au c÷ur des boucles de calcul des logiciels demécanique spatiale, qui peuvent donc demander un grand nombre de déterminations d'orientation (parfoisquelques centaines de milliers d'appels). De plus, la possibilité de passer en cours de calcul, d'un type de capteurà un autre, peut faire évoluer considérablement les ordres de grandeurs manipulés (voire les unités, quand onpasse d'un capteur qui mesure des angles à un capteur qui mesure des vitesses angulaires).

Ces deux points ont conduit à rejeter les méthodes de diérences nies pour calculer les dérivées des fonctionsdans les algorithmes de recherche de zéros.

La complexité des équations a conduit, quant à elle, à rejeter les méthodes où la dérivée symbolique étaitcodée dans le logiciel.

marmottes utilise donc un système de dérivation automatique.

G.2 principe

La dérivation automatique consiste à réaliser le calcul de la dérivée de proche en proche, à chaque opérationélémentaire, en parallèle du calcul de la valeur. Ce sont donc les règles élémentaires de dérivation qui sontcodées (la dérivée de la somme est la somme des dérivées,...). Ce procédé permet d'obtenir un calcul exact (à laprécision de la machine près) sans avoir besoin de coder eectivement la formule symbolique, puisque l'ensembledes calculs est réalisé à chaque opération, en utilisant les valeurs et dérivées courantes.

Cette méthode est applicable quel que soit l'ordre de dérivation nécessaire, la seule contrainte étant que sil'on veut avoir l'ordre n, il faut calculer également tous les ordres de 0 à n− 1.

L'un des inconvénients de cette méthode est que la moindre addition devient un appel de fonction. Ceci peutêtre très largement compensé par l'utilisation des fonctions inline du langage c++ qui évitent le surcoût entemps des appels, et par la surcharge d'opérateurs, qui permet de continuer à écrire : y = sin (x) + 3 * x .C'est le compilateur qui se charge d'interpréter l'expression et de mettre les appels (ou le code dans le cas desfonctions inline) à la place des opérateurs + et * et de la fonction sin.

G.3 formulation

L'ensemble des calculs de fonctions explicites peut être réalisé à l'aide des formules suivantes, dans lesquellesg et h sont les données d'entrée et où f est la fonction calculée.

G.3.1 initialisation

Si la variable selon laquelle on dérive est x, on initialise le calcul en déclarant x comme fonction identité :

f ′′ = 0

marmottes-mathematique.tex

Page 66: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 62

f ′ = 1f = x

La constante c est initialisée comme fonction constante :

f ′′ = 0f ′ = 0f = c

G.3.2 opérations arithmétiques

L'addition de deux fonctions se fait par :

f ′′ = g′′ + h′′

f ′ = g′ + h′

f = g + h

La soustraction de deux fonctions se fait par :

f ′′ = g′′ − h′′

f ′ = g′ − h′

f = g − h

La multiplication de deux fonctions se fait par :

f ′′ = g′′ × h′ + 2g′ × h′ + g × h′′

f ′ = g′ × h+ g × h′

f = g × h

La division de deux fonctions se fait par :

f ′′ =[h(g′′ × h− g × h′′)− 2h′′(g′ × h− g × h′)]

h3

f ′ =g′ × h− g × h′

h2

f =g

h

G.3.3 composition par une fonction scalaire

La composition par une fonction λ se fait par :

f ′′ = λ′(g)× g′′ + λ′′(g)× g′2

f ′ = λ′(g)× g′

f = λ(g)

marmottes-mathematique.tex

Page 67: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 63

Les dérivées des fonctions usuelles sont données par le tableau :

λ(x) λ′(x) λ′′(x)√(x) 1

2√x

−14x3/2

sin(x) cos(x) − sin(x)cos(x) − sin(x) − cos(x)tan(x) 1 + tan2(x) 2 tan(x)[1 + tan2(x)]

arcsin(x) 1√1−x2

x(1−x2)3/2

arccos(x) −1√1−x2

−x(1−x2)3/2

arctan(x) 11+x2

−2x(1+x2)2

ex ex ex

ln(x) 1x

−1x2

G.3.4 règles particulières

Deux fonctions à deux variables sont parfois utilisées dans les calculs et nécessitent des règles particulières, quisont implantées sous forme d'algorithmes faisant intervenir les règles précédentes. xy est calculé par : xy = ey ln(x),α = atan2 (x, y) est calculé par :r =

√x2 + y2

Si (x ≥ 0)α = 2 arctan

(yr+x

)Sinon

β = 2 arctan(

yr−x

)Si (β ≤ 0)

α = −π − βSinon

α = π − βFin si

Fin siIl faut remarquer que le branchement conditionnel sur x ne génère aucun problème pour la dérivation. Eneet, les deux formulations sont toutes deux applicables au voisinage du changement d'alternative et donnent lemême résultat. Le test n'est présent que pour éviter les problèmes numériques qui se posent loin de la zone dechangement. Cet algorithme renvoie un angle compris entre −π et π, comme la fonction atan2 des langages deprogrammation.

G.3.5 implantation informatique

On peut remarquer que dans les formules précédentes, le calcul des dérivées secondes était toujours présentéavant le calcul des dérivées premières, lui même toujours exposé avant le calcul des fonctions. Ce choix a étéréalisé pour le codage, car il permet en eet de rendre les algorithmes valides, même si on stocke f dans unedes variables d'appel g ou h ; en eet, on écrase f ′′ une fois qu'on n'en n'a plus besoin. (g′′ et h′′ n'interviennentjamais dans le calcul de f ′ ou f), il en est de même pour f ′.

marmottes-mathematique.tex

Page 68: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 64

Dans la pratique, marmottes n'utilise que des calculs limités aux dérivées d'ordre 1. En eet, si l'utilisationde dérivation automatique d'ordre 1 permet de mettre en place des algorithmes plus rapides de recherche dezéros, la dérivation jusqu'à l'ordre 2 est considérablement plus coûteuse en temps de calcul, et le gain en nombred'itérations n'est pas énorme, globalement l'expérience montre que l'on perd du temps. L'une des opérations lesplus critiques est la multiplication, qui demande 10 opérations si l'on va jusqu'à l'ordre 2, et qui n'en demandeque 4 si l'on s'arrête à l'ordre 1.

marmottes-mathematique.tex

Page 69: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 65

H Recherche des zéros d'une fonction

H.1 besoins

Le principe de fonctionnement de marmottes consiste à fabriquer puis annuler une fonction scalaire à unevariable respectant toujours deux consignes sur les trois, et s'annulant lorsque la troisième consigne est respectée.

La fonction fabriquée est dénie entre 0 et +1 (au prix d'un changement de variable), elle est dérivablepartout sauf éventuellement aux bornes. Les implantations classiques de capteurs conduisent de plus à desfonctions relativement régulières ayant des extremums locaux bien séparés et des zéros bien séparés. La méthodeprésentée est en fait capable de détecter également des zéros proches les uns des autres.

H.2 principes

H.2.1 encadrement des racines

Le principe de résolution adopté consiste à identier des intervalles monotones entourant chaque zéro, puisà rechercher le zéro correspondant.

Fig. 17 recherche des intervalles monotones

-t

6f(t)

t1 t2 t3 t4 t5 t6 t7 t8

τ0

?

τ1

?

τ2

?

Les intervalles monotones sont trouvés en explorant l'intervalle avec un pas xe et en calculant en chaquepoint la dérivée première de la fonction de façon exacte (par dérivation automatique, conformément à la méthodeexposée dans l'annexe G).

Dans l'exemple de la gure 17, on voit que l'intervalle [t1; t2] est monotone croissant mais n'encadre aucunzéro. L'intervalle [t2; t3] est monotone croissant et encadre un zéro qui devra être recherché par la méthodedécrite plus loin.

marmottes-mathematique.tex

Page 70: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 66

Après calcul de ce zéro, l'exploration se poursuit avec l'intervalle [t3; t4], qui n'est pas monotone (on le détectepar le signe des dérivées), cependant la fonction croît à partir d'une valeur positive puis décroît jusqu'à une autrevaleur également positive, elle ne peut donc pas s'annuler dans l'intervalle dès lors que le pas d'exploration estplus petit que l'écart entre deux extremums locaux 26. Un simple test sur les dérivées montre que l'intervalle [t4; t5]est monotone décroissant, un autre test sur f(t5) montre qu'il est toujours positif ; il ne peut donc contenir aucunzéro. Quand on arrive à l'intervalle [t6; t7], on ne peut pas savoir d'avance s'il y aura des zéros dans l'intervalleou pas, on recherche alors l'extremum local (c'est-à-dire le zéro de la dérivée), en s'arrêtant soit lorsque cetextremum est trouvé soit quand on a un point au-dessous de l'axe, susant pour encadrer un zéro dans unintervalle monotone (voir la gure 18, où l'intervalle [t5; t′] encadre τ1).

Fig. 18 arrêt de la recherche lorsqu'un zéro est encadré

-t

t5 t6

t′

τ1

?

Le point obtenu après convergence de l'algorithme n'a généralement pas une dérivée rigoureusement nulle.Par conséquent, pour que l'analyse du tronçon suivant fonctionne, on force le fait qu'après un maximum lafonction décroît, et qu'elle croît après un minimum, même si l'approximation de l'extremum obtenue a unedérivée du mauvais signe.

An d'éviter les recherches d'extremums inutiles, on fait la remarque suivante : si la fonction f est assezrégulière pour ne pas avoir de grandes variations de la dérivée sur un intervalle, le cas schématisé par la gure 19ne peut pas se produire. On ne fait donc pas de recherche d'extremum si une approximation P de l'extremumparaît vraiment très loin de l'axe par rapport à la valeur observée aux bornes (voir gure 20).

H.2.2 ranage

Une fois détecté un intervalle monotone encadrant la racine, on recherche cette racine par une méthode deNewton modiée pour utiliser les deux bornes de l'intervalle dans une approximation cubique inverse. Cetteapproximation n'est pas calculable si l'une des dérivées est trop petite, on utilise alors une méthode de sécanteen remplacement de la méthode de Newton modiée pour assurer que dans tous les cas le nouveau point seraentre les anciens (voir la gure 21). Une fois la fonction évaluée sur le nouveau point, on remplace une des bornespar ce point de façon a réduire l'intervalle de recherche.

La convergence de l'algorithme est testée par une fonction dénie par l'utilisateur et à qui seront fourniesles bornes et les valeurs de la fonction aux bornes. Cette fonction indiquera en retour si l'une des bornes peut

26il ne peut y avoir qu'un extremum par intervalle, et ici on sait qu'il s'agit d'un maximum

marmottes-mathematique.tex

Page 71: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 67

Fig. 19 fonction irrégulière avec accélération de la dérivée

-tn−1 tn

Fig. 20 approximation d'un extremum par les bornes

-tn−1 tn

ZZZZZZZZZZZZZZZ

P

-

marmottes-mathematique.tex

Page 72: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 68

Fig. 21 utilisation d'une sécante si la méthode de Newton modiée n'est pas applicable

-tn−1 tn

tsecante

QQQQQQQQQQQQQQQQQQQ

être considérée comme ayant convergé vers la solution ou si aucune n'est assez proche. L'utilisateur peut fondersa décision sur la taille de l'intervalle (convergence en abscisse) ou sur les valeurs de la fonction (convergence enordonnée). marmottes utilise la convergence en ordonnée, le seuil de convergence étant pas défaut le dixièmede la précision du capteur concerné.

Si l'utilisateur utilise la convergence en abscisse, la méthode précédente peut échouer dans le cas schématisépar la gure 22, où la borne inférieure de l'intervalle converge vers la racine alors que la borne supérieure en restetoujours éloignée. Il faut donc sécuriser l'algorithme en rééquilibrant l'intervalle quand une borne est beaucoupplus proche de la racine que l'autre en ordonnée. Le rééquilibrage est réalisé en décalant toute la courbe de

Fig. 22 convergence d'une seule borne de l'intervalle

-b

a1 a2 a3

ymin pour une itération, ce qui revient à chercher le point d'ordonnée −ymin sur la courbe originale au lieu derechercher le point d'ordonnée 0 (voir la gure 23).

H.3 algorithme

H.3.1 séparation des zéros

L'algorithme suivant sépare les zéros par découpage de l'intervalle général, avec si nécessaire calcul desextremums locaux. Le même algorithme est utilisé que l'on dispose de la dérivée seconde ou que l'on ne disposeque de la dérivée première (la diérence n'intervient que dans les recherches nes sous-jacentes décrites dans les

marmottes-mathematique.tex

Page 73: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 69

Fig. 23 rééquilibrage de l'intervalle

-b

a

ymin

b′

−ymin

sections H.3.2 et H.3.3). Les entrées de l'algorithme sont les bornes a et b de l'intervalle et le pas de découpage.Les variables min et max sont destinées à encadrer les zéros (f(min) < 0, f(max) > 0), elles ne correspondentdonc pas à des extremums locaux mais aux extremums sur l'intervalle d'encadrement qu'elles dénissent. Si lesvaleurs a, b, pas, min et max sont conservées d'un appel à l'autre, l'algorithme trouve tous les zéros de l'intervalledans l'ordre croissant, en déplaçant la borne a.

Boucler indéniment

ajustement du pas en n de parcours

Si (a + pas > b)

pas ← max (ε, b− a)

Fin si

t← t+ pas

Si (t > b)

échec de la recherche

Fin si

Si f ′(a) et f ′(t) sont de même signe

Si fonction croissante

Si (f(t) ≤ 0)

min ← t

Sinon

Si (f(t) < 0)

t0 ← zéro situé entre min et t, critère de convergence : fonction utilisateur

marmottes-mathematique.tex

Page 74: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 70

a← t

min ← t

retourner t0

Fin si

Fin si

Sinon

Si (f(t) ≥ 0)

max ← t

Sinon

Si (f(max) > 0)

t0 ← zéro situé entre t et max, critère de convergence : fonction utilisateur

a← t

max ← t

retourner t0

Fin si

Fin si

Fin si

Sinon

il y a un extremum entre a et t

Si (f(a) > 0)

Si (f(a) > 0) et (f(t) > 0)

on sait d'emblée que tout l'intervalle est positif

max ← a

mémoriser le fait qu'il faudra réinitialiser max

Sinon

max ← extremum entre a et t, critère de convergence : intervalle entièrement positif

t← max

Fin si

marmottes-mathematique.tex

Page 75: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 71

Sinon

Si (f(a) < 0) et (f(t) < 0)

on sait d'emblée que tout l'intervalle est négatif

min ← a

mémoriser le fait qu'il faudra réinitialiser min

Sinon

min ← extremum entre a et t, critère de convergence : intervalle entièrement négatif

t← min

Fin si

Fin si

à partir de là, on sait qu'il y a au plus un zéro entre min et max

Si (f(min) ≤ 0) et (f(max) ≥ 0)

t0 ← zéro situé ente min et max, critère de convergence : fonction utilisateur

a← t

Si min doit être réinitialisé

min ← t

Fin si

Si max doit être réinitialisé

max ← t

Fin si

Retourner t0

Fin si

Si min doit être réinitialisé

min ← t

Fin si

Si max doit être réinitialisé

max ← t

Fin si

marmottes-mathematique.tex

Page 76: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 72

préparation de l'analyse du tronçon suivant

a← t

Fin si

Fin boucle

H.3.2 recherche d'extremum

Utilisation des seules dérivées premières. Trouver l'extremum de la fonction f entre a et b lorsque l'ondispose de sa dérivée revient à calculer le zéro de la fonction f ′ sans connaître sa dérivée. On utilise pourcela la méthode de Brent. Il s'agit d'une méthode hybride conjugant la bissection et la sécante, avec enamélioration supplémentaire l'utilisation d'une approximation quadratique inverse lorsque l'on a évalué assez depoints distincts au cours des itérations.

Utilisation des dérivées premières et secondes. Lorsque l'on dispose des dérivées secondes, on peututiliser une méthode de Newton modiée pour utiliser les dérivées aux deux bornes de l'intervalle courant pourtrouver l'extremum, en conservant la sécante pour sécuriser l'algorithme en cas de dérivée seconde trop faiblesur une des bornes (ce qui empêche l'utilisation du Newton modié). L'algorithme suivant trouve par cetteconjugaison de méthodes l'extremum de la fonction f entre a et b lorsque l'on sait qu'il y en a un.

Boucler

ya ← f ′(a)

y′a ← f ′′(a)

yb ← f ′(b)

y′b ← f ′′(b)

Si (|ya| > 10|yb|)

intervalle disproportionné, on décale les ordonnées pour chercher −yb au lieu de 0

ya ← ya + yb

yb ← yb + yb

Sinon

Si (|yb| > 10|ya|)

intervalle disproportionné, on décale les ordonnées pour chercher −ya au lieu de 0

yb ← yb + ya

ya ← ya + ya

marmottes-mathematique.tex

Page 77: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 73

Fin si

Fin si

t← a− 1

Si (|y′a| > ε et |y′b| > ε)

les dérivées sont susantes pour appliquer Newton en deux points

r1 ←yay′a+yby

′b

y′ay′b

r2 ← (b−a)(ya+yb)yb−ya

t←ayb−bya−yayb r1−r2yb−ya

yb−ya

Fin si

Si (t < a) ou (t > b)

protection contre les t hors intervalle

t← ayb−byayb−ya

Fin si

m← a+b2

δ ← ε×max(1, |m|)

Si (t < a + δ)

protection contre les t trop proches des bornes (stagnation)

Si (b− a < 1 000δ)

t← m

Sinon

t← 0, 999a + 0, 001b

Fin si

Sinon

Si (t > b− δ)

protection contre les t trop proches des bornes (stagnation)

Si (b− a < 1 000δ)

t← m

marmottes-mathematique.tex

Page 78: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 74

Sinon

t← 0, 001a + 0, 999b

Fin si

Fin si

Fin si

évaluer f ′(t)

Si f ′(t) est du même signe que f ′(a)

a← t

Sinon

b← t

Fin si

Jusqu'à vérication du critère de convergence ou jusqu'à avoir b− a ≤ ε

Si convergence atteinte

Retourner le point ayant convergé

Sinon

Retourner le dernier point calculé

Fin si

H.3.3 ranage des zéros

Utilisation des seuls dérivées premières. La recherche des zéros avec les dérivées premières est similaireà la recherche des extremums avec les dérivées secondes, en remplaçant f ′ par f et f ′′ par f ′.

Utilisation des dérivées premières et secondes. Lorsque l'on dispose des dérivées secondes, on appliqueune méthode de Newton améliorée par l'adjonction de la dérivée seconde, mais on se contente de l'appliquer enune seule borne27.

La progression d'un point à l'autre se fait à l'aide de la formule suivante :

t = a− 2f(a)f ′(a)2f ′2(a)− f(a)f ′′(a)

27simplement parce que l'auteur ne s'est pas préoccupé d'étendre la méthode à deux points dans ce cas ...

marmottes-mathematique.tex

Page 79: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 75

La convergence de ce schéma est d'ordre 3 comme le montre l'analyse de l'erreur εn à chaque itération :

εn+1 =3f ′′(x0)− 2f ′(x0)f ′′′(x0)

12f ′2(x0)ε3n +O(ε4

n)

Il faut tout de même signaler que si le surcoût du calcul simultané de la fonction et de sa dérivée premièreest largement compensé par le gain d'une méthode de Newton (même en un seul point), les dérivées secondesn'apportent souvent pas une diminution susante du nombre d'évaluations de la fonction pour être globalementrentable en nombre d'opérations.

marmottes-mathematique.tex

Page 80: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 76

I rotations de Cardan

Les rotations de Cardan sont des moyens pratiques de représenter l'orientation des satellites, surtout quandelle est peu éloignée d'une orientation de référence dénie par un repère simple.

Elles peuvent également être utilisées pour dénir des orientations sur un domaine de validité très largelorsque les consignes ne sont pas entrées directement par l'utilisateur mais calculées 28 ; en eet les singularitésdes rotations de Cardan existent mais sont limitées à de petites zones, alors que les champs de vue, les éclipses,les alignements, ou les inhibitions obligent souvent à faire des prouesses si l'on veut utiliser un seul jeu decapteurs sur une plage de temps étendue.

Il s'avère que dans tous les cas de capteurs mesurant des angles de Cardan, on peut trouver un vecteurparticulier exprimable en repère de référence et un cône exprimé en repère satellite tels que le vecteur soit surle cône dans l'orientation désirée. Selon les capteurs, soit le vecteur dépend de l'angle mesuré et le cône estconstant, soit le vecteur est constant et le cône dépend de l'angle mesuré. On peut donc systématiquement seramener au modèle classique des capteurs géométriques.

Les sections suivantes donnent les équations nécessaires à cette modélisation dans tous les cas possiblesd'angles de Cardan. La démarche générale est la suivante :

Pour trouver les angles à partir de l'orientation, on commence par exprimer une matrice M telle que ucap =Muin, où ucap donne les coordonnées d'un vecteur quelconque ~u en repère capteur connaissant ses coordonnéesuin en repère de référence. Cette matrice est calculable dès lors que l'on connaît l'orientation. On remarquetoujours que la matrice est inchangée par une transformation particulière 29, ce qui permet d'imposer qu'un desangles soit systématiquement pris entre −π/2 et +π/2, et donc permet de trouver l'angle ne connaissant que sonsinus. Les autres angles se déduisent de la matrice et du premier angle. Dans la pratique, comme seuls quelqueséléments matriciels sont utiles, on ne calcule jamais cette matrice : on se contente de calculer l'image ou l'imageréciproque d'un vecteur canonique pour obtenir la ligne ou la colonne utile.

Pour la modélisation des cônes de consignes connaissant les angles, on remarque dans la matrice précédentecertains éléments plus simples que les autres, et on construit des vecteurs bien choisis en repère inertiel à partirde ces coordonnées simples, vecteurs qui ne dépendent que d'un angle à chaque fois et présentent de bonnespropriétés (à savoir que leur image est sur un cône en repère capteur, que l'on projette simplement en repèresatellite).

I.1 ordre : lacet, puis roulis, puis tangage

La matrice M permettant de convertir un vecteur exprimé en repère de référence en lui-même mais expriméen repère capteur vaut :

M(ψ,ϕ, θ) =

cos θ cosψ − sin θ sinϕ sinψ cos θ sinψ + sin θ sinϕ cosψ − sin θ cosϕ

− cosϕ sinψ cosϕ cosψ sinϕsin θ cosψ + cos θ sinϕ sinψ sin θ sinψ − cos θ sinϕ cosψ cos θ cosϕ

28par exemple par un ltre qui lisse des informations disparates sur une plage de temps29la transformation dépend de l'ordre des rotations, mais il en existe une pour chaque ordre

marmottes-mathematique.tex

Page 81: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 77

M est inchangée par la transformation :

ψ → π + ψ

ϕ → π − ϕθ → π + θ

il est donc licite d'imposer ϕ ∈ [−π/2; +π/2]. On peut donc déduire les angles de la matrice :

ψ = atan2(−M2,1,M2,2)ϕ = arcsin(M2,3)θ = atan2(−M1,3,M3,3)

Pour modéliser analytiquement les consignes connaissant les angles, on utilise la forme simple des éléments dela deuxième ligne et de la dernière colonne de M pour construire des vecteurs particuliers.

Si on connaît ψ, on trouve la consigne :

~uin = cosψ ~Xin + sinψ~Yin doit être sur le cône (~Ycap,π

2)

Si on connaît ϕ, on trouve la consigne :

~Zin doit être sur le cône (~Ycap,π

2− ϕ)

Si on connaît θ, on trouve la consigne :

~Zin doit être sur le cône (cos θ ~Xcap + sin θ ~Zcap,π

2)

I.2 ordre : lacet, puis tangage, puis roulis

La matrice M permettant de convertir un vecteur exprimé en repère de référence en lui-même mais expriméen repère capteur vaut :

M(ψ, θ, ϕ) =

cos θ cosψ cos θ sinψ − sin θ

− cosϕ sinψ + sinϕ sin θ cosψ cosϕ cosψ + sinϕ sin θ sinψ sinϕ cos θsinϕ sinψ + cosϕ sin θ cosψ − sinϕ cosψ + cosϕ sin θ sinψ cosϕ cos θ

M est inchangée par la transformation :

ψ → π + ψ

θ → π − θϕ → π + ϕ

il est donc licite d'imposer θ ∈ [−π/2; +π/2]. On peut donc déduire les angles de la matrice :

ψ = atan2(M1,2,M1,1)θ = − arcsin(M1,3)ϕ = atan2(M2,3,M3,3)

marmottes-mathematique.tex

Page 82: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 78

Pour modéliser analytiquement les consignes connaissant les angles, on utilise la forme simple des éléments dela première ligne et de la dernière colonne de M pour construire des vecteurs particuliers.

Si on connaît ψ, on trouve la consigne :

~uin = − sinψ ~Xin + cosψ~Yin doit être sur le cône ( ~Xcap,π

2)

Si on connaît θ, on trouve la consigne :~Zin doit être sur le cône (− ~Xcap,

π

2− θ)

Si on connaît ϕ, on trouve la consigne :~Zin doit être sur le cône (cosϕ~Ycap − sinϕ~Zcap,

π

2)

I.3 ordre : roulis, puis lacet, puis tangage

La matrice M permettant de convertir un vecteur exprimé en repère de référence en lui-même mais expriméen repère capteur vaut :

M(ϕ,ψ, θ) =

cos θ cosψ cos θ sinψ cosϕ+ sin θ sinϕ cos θ sinψ sinϕ− sin θ cosϕ− sinψ cosψ cosϕ cosψ sinϕ

sin θ cosψ sin θ sinψ cosϕ− cos θ sinϕ sin θ sinψ sinϕ+ cos θ cosϕ

M est inchangée par la transformation :

ϕ → π + ϕ

ψ → π − ψθ → π + θ

il est donc licite d'imposer ψ ∈ [−π/2; +π/2]. On peut donc déduire les angles de la matrice :

ϕ = atan2(M2,3,M2,2)ψ = − arcsin(M2,1)θ = atan2(M3,1,M1,1)

Pour modéliser analytiquement les consignes connaissant les angles, on utilise la forme simple des éléments dela deuxième ligne et de la première colonne de M pour construire des vecteurs particuliers.

Si on connaît ϕ, on trouve la consigne :

~uin = − sinϕ~Yin + cosϕ~Zin doit être sur le cône (~Ycap,π

2)

Si on connaît ψ, on trouve la consigne :~Xin doit être sur le cône (−~Ycap,

π

2− ψ)

Si on connaît θ, on trouve la consigne :~Xin doit être sur le cône (cos θ ~Zcap − sin θ ~Xcap,

π

2)

marmottes-mathematique.tex

Page 83: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 79

I.4 ordre : roulis, puis tangage, puis lacet

La matrice M permettant de convertir un vecteur exprimé en repère de référence en lui-même mais expriméen repère capteur vaut :

M(ϕ, θ, ψ) =

cosψ cos θ cosψ sin θ sinϕ+ sinψ cosϕ − cosψ sin θ cosϕ+ sinψ sinϕ− sinψ cos θ − sinψ sin θ sinϕ+ cosψ cosϕ sinψ sin θ cosϕ+ cosψ sinϕ

sin θ − cos θ sinϕ cos θ cosϕ

M est inchangée par la transformation :

ϕ → π + ϕ

θ → π − θψ → π + ψ

il est donc licite d'imposer θ ∈ [−π/2; +π/2]. On peut donc déduire les angles de la matrice :

ϕ = atan2(−M3,2,M3,3)θ = arcsin(M3,1)ψ = atan2(−M2,1,M1,1)

Pour modéliser analytiquement les consignes connaissant les angles, on utilise la forme simple des éléments dela dernière ligne et de la première colonne de M pour construire des vecteurs particuliers.

Si on connaît ϕ, on trouve la consigne :

~uin = cosϕ~Yin + sinϕ~Zin doit être sur le cône (~Zcap,π

2)

Si on connaît θ, on trouve la consigne :

~Xin doit être sur le cône (~Zcap,π

2− θ)

Si on connaît ψ, on trouve la consigne :

~Xin doit être sur le cône (cosψ~Ycap + sinψ ~Xcap,π

2)

I.5 ordre : tangage, puis lacet, puis roulis

La matrice M permettant de convertir un vecteur exprimé en repère de référence en lui-même mais expriméen repère capteur vaut :

M(θ, ψ, ϕ) =

cosψ cos θ sinψ − cosψ sin θ

− cosϕ sinψ cos θ + sinϕ sin θ cosϕ cosψ cosϕ sinψ sin θ + sinϕ cos θsinϕ sinψ cos θ + cosϕ sin θ − sinϕ cosψ − sinϕ sinψ sin θ + cosϕ cos θ

marmottes-mathematique.tex

Page 84: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 80

M est inchangée par la transformation :

θ → π + θ

ψ → π − ψϕ → π + ϕ

il est donc licite d'imposer ψ ∈ [−π/2; +π/2]. On peut donc déduire les angles de la matrice :

θ = atan2(−M1,3,M1,1)ψ = arcsin(M1,2)ϕ = atan2(−M3,2,M2,2)

Pour modéliser analytiquement les consignes connaissant les angles, on utilise la forme simple des éléments dela première ligne et de la deuxième colonne de M pour construire des vecteurs particuliers.

Si on connaît θ, on trouve la consigne :

~uin = sin θ ~Xin + cos θ ~Zin doit être sur le cône ( ~Xcap,π

2)

Si on connaît ψ, on trouve la consigne :

−~Yin doit être sur le cône (− ~Xcap,π

2− ψ)

Si on connaît ϕ, on trouve la consigne :

−~Yin doit être sur le cône (cosϕ~Zcap + sinϕ~Ycap,π

2)

I.6 ordre : tangage, puis roulis, puis lacet

La matrice M permettant de convertir un vecteur exprimé en repère de référence en lui-même mais expriméen repère capteur vaut :

M(θ, ϕ, ψ) =

cosψ cos θ + sinψ sinϕ sin θ sinψ cosϕ − cosψ sin θ + sinψ sinϕ cos θ− sinψ cos θ + cosψ sinϕ sin θ cosψ cosϕ sinψ sin θ + cosψ sinϕ cos θ

cosϕ sin θ − sinϕ cosϕ cos θ

M est inchangée par la transformation :

θ → π + θ

ϕ → π − ϕψ → π + ψ

il est donc licite d'imposer ϕ ∈ [−π/2; +π/2]. On peut donc déduire les angles de la matrice :

θ = atan2(M3,1,M3,3)ϕ = − arcsin(M3,2)ψ = atan2(M1,2,M2,2)

marmottes-mathematique.tex

Page 85: MARMOTTES - logiciels.cnes.fr · 3 7 17/07/01 L. Maisonobe, correction d'une coquille et de la hiérarchie des capteurs 4 0 01/02/02 L. Maisonobe, création du document CS marmottes-mathematique.tex

MARMOTTES

Référence : ESPACE/MS/CHOPE/MARMOTTES/DM/001

Édit. : 4 Date : 01/02/2002Rév. : 0 Date : 01/02/2002

Page : 81

Pour modéliser analytiquement les consignes connaissant les angles, on utilise la forme simple des éléments dela dernière ligne et de la deuxième colonne de M pour construire des vecteurs particuliers.

Si on connaît θ, on trouve la consigne :

~uin = cos θ ~Xin − sin θ ~Zin doit être sur le cône (~Zcap,π

2)

Si on connaît ϕ, on trouve la consigne :

−~Yin doit être sur le cône (~Zcap,π

2− ϕ)

Si on connaît ψ, on trouve la consigne :

−~Yin doit être sur le cône (cosψ ~Xcap − sinψ~Ycap,π

2)

marmottes-mathematique.tex