Simulation distribuée dans un simulateur de vol



Documents pareils
Gestion des Prospects : Adresses à exporter

Utiliser les activités de cours de Moodle : le Questionnaire

GUIDE INSTALLATION IAS

Nouveautés apportées à l assessment-tool

[SIMULATEUR DE CREDIT IMMOBILIER]

2. Trouvez la version du firmware que vous souhaitez télécharger dans la rubrique Boot From CD, correspondant à votre modèle de SSD.

LE TABLEAU DE BORD REMONTEE DES COMPTES. Outils de gestion prévisionnelle, d'analyse financière et du contrôle de gestion. TABLE DES MATIERES

KDJHU HQHUJ\ manuel de l'xwlolvdteur tebis

CYBERLEARN COURS MOODLE. SUPPORT DE TRAVAIL Pour professeur-es et assistant-es d'enseignement

(les caractères apparaissent en vidéo inversé : blanc sur fond

PROPOSITION DE CREATION DE SITE INTERNET

Physique Chimie LA GRAVITATION

Kluwer ERP Dashboard - VERO.

Catalogue de formation bureautique

ENREGISTEUR NUMERIQUE USB Guide utilisateur

Manuel d utilisation de Nomad Trading

SYSTEME DE TELERADIAMETRIE H*(10)

Guide pour la rédaction d une Spécification Technique de Besoin (STB)

Cible de Sécurité - Blancco DataCleaner+ v4.8

Les stratégies de Backup dans WSS V3

Basculer entre un réseau domestique et celui de votre lieu de travail

PHASE 1 : choix et définition du sujet du TM.

Dossier Spécial. Les 5 étapes pour vendre ACT! Apprendre à détecter un besoin en Gestion de Contacts

Pour répondre au besoin de sécurité juridique et de prévisibilité, la Loi type devrait traiter des questions suivantes:

Projet de renouvellement de l infrastructure informatique de la Mairie de Châtel-Guyon. Cahier des charges

LIVRE BLANC SEM. Google AdWords Le guide ultime du SEM pour votre Boutique en ligne

ASSODESK.COM Aide en ligne

Meilleures pratiques en matière d'indexation de contenu. Mise à niveau à partir de versions antérieures à la version 6.5

Formation Altium Designer par Transfer

Directory List & Print (Pro) by Infonautics GmbH, Switzerland

GUIDE DE L UTILISATEUR

Article I - Objet. Article II - Conditions d'utilisation de la eboutique

Partage de documents entre tablettes et transfert de ressources

Solutions de pilotage énergétique pour les bâtiments d activité professionnelle

- Le service aux tables. - Le service rapide & commande pour emporter. - Le service à l auto. - La livraison. o Voir le feuillet Livraison.

Gestionnaire de Prêts Margill 4.1

esil PROJET DE MODELISATION ORIENTEE OBJET INFORMATIQUE - 3 ANNEE

Guide d aide à la rédaction d un essai

Fiche de projet pour les institutions publiques

Çi-dessous le livret du module de réservation de sièges. Via Thomascookagent.be (pour les agences)

Procédure d installation

PREPARATION DE VOTRE PFMP Réalisé et testé par Laurence Martin, enseignante au LP du Toulois et chargée de mission en économie et gestion option vente

FICHE DE POSTE Fonction : Chef de Division Contrôle des opérations Financières FONCTION : CHEF DE DIVISION CONTRÔLE DES OPÉRATIONS FINANCIÈRES

Promotion Le défi des étoiles Aéroplan Q1. Qu est-ce que la promotion Le défi des étoiles Aéroplan?

FIELD MANAGER V3, la solution dédiée aux métiers du multiservice

Logiciel de gestion des inscriptions en CPGE

En collaboration avec la direction territoriale du MFA

Terrain de jeu Analogie au sport professionnel

Changement de régime fiscal des Mutuelles et des IP : remarques d ordre actuariel

Service de mobilité interbancaire - Règlement

Utilisation de RAMSIS dans la conception automobile Lisa Denninger Apports et Limites des Mannequins Virtuels 18 Novembre 2014

Dossier de Presse. 1 ier guide Interactif pour créateurs et entrepreneurs

ITIL V3. Les principes de la conception des services

FOCUS : LES SYSTÈMES D INFORMATION

Nous proposons 3 syntaxes au choix :

PROCESSUS DE CERTIFICATION DES MONITEURS JE NAGE INFORMATIONS POUR LES MAITRE ÉVALUATEURS

Note de cadrage de la version Apogée 4.10

Résumé du module 6 : Coût et structure du capital

NOTICE POUR L IMPORT DU FICHIER «IACA» DANS CORRELYCE

Communiqué de lancement : Sage 100 Scanfact Version V15.50

GUIDE D ENTRETIEN POUR LA PHASE 1

«NAVIGUER SUR INTERNET v 2» Support de formation tutoré «Réponses aux remarques les plus souvent posées»

FINAL CUT PRO 7 / DIDACTICIEL / OUVERTURE DU PROGRAMME / REGLAGES / IMPORTATION / EXPORTATION / RACCOURCIS

Service de mobilité interbancaire - Règlement

COMPTE RENDU DE LA COMMISSION COMMUNICATION

GUIDE pour la CONDUITE D ENTRETIEN

ACCORD SUR LE RECOUVREMENT AMIABLE EN CREDIT A LA CONSOMMATION

SERVEUR HORUS NG dans les EPLE

ITIL V2. La gestion de la capacité

Proposition de Veille Internet Campagnes Electorales 2012

Charte de la gestion cookies groupe PVCP 25/09/2014

Formation Référencement / SEO e-commerce

DSP compétences professionnelles région NPC Groupe de travail n 1

CAHIER DES CLAUSES TECHNIQUES PARTICULIERES

MAGESTIA - MODULE MAGESTION COMMERCIALE

Siège social : 12, rue Massue Vincennes cedex

trak monitor Système de gestion de salles de charge HOPPECKE Vos avantages : Domaines d exploitation typiques Motive Power Systems

a) Financement par des tiers : emprunts, crédits bancaires, leasing, crédit spontané (lors d un achat à crédit) ;

Intégration «SugarCRM Asterisk» Ajouter la Téléphonie à votre CRM

Marché public de prestations intellectuelles ETUDE PRELIMINAIRE DANS LE CADRE DE LA CONSTRUCTION D UNE DECHETERIE A PLAISANCE DU TOUCH (31)

Charte de l Association Suisse de Portage des Bébés (ASPB)

Locallife Leader de l édition d annuaires locaux en ligne, Présent en France depuis octobre 2008

SAP Financial Innovation Day 18 Mars 2014 Genève Amélioration du Planning financier : un processus simplifié pour une meilleure qualité de données

LE RVER EN UN COUP D ŒIL

Vente de Capacités de Stockage de gaz du 13 mai 2015

Restitution. Enquête FNOGEC auprès des principaux éditeurs de logiciels. Mise en conformité aux normes SEPA

livraisons en centrale

Chap 10 : L évaluation et la valorisation du potentiel de l équipe commerciale

Le dispositif de qualification OPQIBI pour les audits énergétiques (réglementaires)

Division des Statistiques du Commerce Extérieur

EURLEX : ETAT DES LIEUX et AMELIORATIONS PREVUES

Pour l étude d un logiciel documentaire : o Mener une réflexion technique sur les ressources d un logiciel documentaire : Caractériser le logiciel

SAP SAP ERP SAP ERP FINANCIALS

Les assurances automobiles

Coalition énergie et construction durable

OBSERVATION DES CLASSES

Je suis capable tout seul!

FORMATION SUR «CLOUD COMPUTING : CONCEPTS, TECHNOLOGIES ET APPROCHES DE MIGRATION»

Transcription:

Simulatin distribuée dans un simulateur de vl Rapprt de prjet de recherche 2ème année ISAE-SUPAERO 20 mai 2009 Créé par : Flrence Dumulin, Jérôme Cppens et Cyrille Baetz

Simulatin distribuée dans un simulateur de vl Rapprt de prjet de recherche 2ème année Table des matières Simulatin distribuée dans un simulateur de vl 20/05/2009 1. INTRODUCTION... 2 2. LE FONCTIONNEMENT DU SIMULATEUR FLIGHT GEAR... 2 2.1. DESCRIPTION DE FLIGHT GEAR... 2 2.2. ANALYSE DES SOURCES... 2 2.2.1. AIMODEL (MODELE D INTELLIGENCE ARTIFICIELLE)... 3 2.2.2. AIRCRAFT... 6 2.2.3. AIRPORT... 6 2.2.4. ATC... 7 2.2.5. ATCDCL... 7 2.2.6. AUTOPILOT... 9 2.2.7. COCKPIT... 9 2.2.8. PACKAGE MAIN... 9 2.2.9. ENVIRONNEMENT... 10 2.2.10. FDM... 11 2.2.11. PACKAGE GUI... 16 2.2.12. PACKAGE INSTRUMENTATON... 16 2.2.13. PACKAGE MULTIPLAYER... 16 2.2.14. PACKAGE NAVAIDS... 17 2.2.15. PACKAGE NETWORK... 17 2.2.16. SCENERY... 18 2.2.17. SCRIPTING... 18 2.2.18. SOUND... 19 2.2.19. SYSTEMS... 19 2.2.20. TIME... 20 2.2.21. TRAFIC... 20 2.3. ANALYSE DES ATTRIBUTS DE FONCTIONNEMENT... 22 2.4. MISE EN PERSPECTIVE : POSSIBILITE DE SIMULATION DISTRIBUEE... 25 3. L ARCHITECTURE HLA... 25 3.1. PRESENTATION... 25 3.2. CERTI... 25 3.3. ATTRIBUTS ECHANGES DANS UN SIMULATEUR DE VOL... 26 3.4.PROPOSITION D UN MODELE DE SIMULATEUR EN SIMULATION DISTRIBUEE... 27 4. CONCLUSION... 30 5. ANNEXE... 31 1

1. Intrductin L architecture de simulatin distribuée répnd à des bjectifs de perfrmances d interpérabilité, et de réutilisabilité, ce qui la rend très attirante pur répndre à des prblèmes de simulatin industrielle de grande envergure, cmme par exemple celle d un avin réel mettant en jeu plusieurs systèmes déjà existants. Ntre PIR s inscrit dnc dans la cadre de simulatin distribuée d un système cmplexe aérnautique : l avin. Pur répndre à cette prblématique, nus avns adpté la démarche suivante : dans un premier temps nus nus smmes penchés sur le fnctinnement d un simulateur de vl existant, FlightGear, et dans un secnd temps, nus avns prpsé un nuveau mdèle de simulateur fndé sur une architecture distribuée. Dans ce mdèle, nus nus smmes effrcés de mettre en avant les attributs des différents fédérés mis en jeu ainsi que les interactins auxquelles ils suscrivaient. 2. Le fnctinnement du simulateur Flight Gear 2.1. Descriptin de Flight Gear FlightGear est un simulateur de vl gratuit dnt les surces snt libres, afin que n imprte qui puisse apprter des améliratins. Par exemple des améliratins sur les mteurs pur les ingénieurs autant que sur le sn pur ceux dnt c est le dmaine. C est un simulateur de vl civil, mais n peut imaginer d intégrer des armes dans le cde, un dssier y est d ailleurs dédié. L incnvénient majeur de ce lgiciel et sn manque de dcumentatin par certains auteurs, et le fait que certains ajuts n en suppriment pas d autres et entraînent des redndances. C est un thésard qui cmmence le prjet en 1996. Le prjet turne très vite sur Linux et Windws. Les rutines graphiques essentielles snt écrites puis à la fin de la thèse le prjet turne curt. L année suivante il est envisagé de lui intégrer le cde d un lgiciel de simulateur déjà existant pur simplifier le travail d écriture. C est ainsi qu est repris un lgiciel de la Nasa : LaRCsim. Des améliratins nt ensuite été régulièrement apprtées : affichage de la Lune, du Sleil et des étiles, améliratin de la texture de fnd, un autpilte (1998), puis un tableau de brd, quelques sns de mteurs, les lacs et les rivières, la gestin multi jueurs (1999). En 2000 l avin de base du LaRCsim (navin) est remplacé par un Cessna 172 et l utilisateur a désrmais également le chix entre en plus le X15 et un balln à air chaud : c est JSBSim. Actuellement, il est même pssible d avir la mété en temps réel (dssier METAR). JSBSim est le mdèle par défaut depuis 2000. Il cntient tutes les dnnées aérdynamiques de l avin (cefficients de prtance, traînée, effet de sl, usage des ailerns becs et vlets). Un autre mdèle, YASim, utilise des algrithmes différents et est en usage depuis 2002. Il cntient entre autres la frme de l avin : fuselage, ailes, guvernes. Enfin, il existe un dernier mdèle, UIUC dévelppé par une université américaine à partir de LaRCsim. 2.2. Analyse des surces Les surces de FlightGear snt classées dans différents dssiers et sus-dssiers afin de faciliter leur accès. Le lgiciel FlightGear est cdé en C++, langage nn enseigné à Supaer mais qui tut de même se rapprche Simulatin distribuée dans un simulateur de vl 20/05/2009 2

pas mal du langage C, appris en première année, en ce qui cncerne l écriture ; ainsi que du langage Java, appris en deuxième année, pur ce qui est des ntins de classe et d bjet Lin de puvir cmprendre dans le détail l ensemble du cde surce en C++ cnstituant FlightGear, sur lequel même un infrmaticien purrait passer 6 mis sans frcément tut saisir dans le détail, nus nus smmes dnc intéressés à regarder le cntenu de chaque fichier. Vici la liste des fichiers les plus imprtants et la descriptin de leurs principales fnctins : 2.2.1. AIMdel (Mdèle d Intelligence Artificielle) AIBase C est une classe abstraite base pur des bjets avec intelligence artificielle. On peut citer cmme principales méthdes publiques, les méthdes : vid setspeed( duble speed_ktas ); vid setaltitude( duble altitude_ft ); vid setheading( duble heading ); vid setlatitude( duble latitude ); vid setlngitude( duble lngitude ); duble _getcartpsx() cnst; duble _getcartpsy() cnst; duble _getcartpsz() cnst; qui permettent de régler vitesse, altitude, cap, latitude, lngitude de l bjet ; et d btenir les crdnnées cartésiennes de l bjet pur les 3 dernières. De plus les principaux attributs snt : Pur l état actuel du mdèle Simulatin distribuée dans un simulateur de vl 20/05/2009 SGGed ps; // latitude, lngitude, altitude en mètre duble hdg; // cap vrai en degré duble rll; // inclinaisn en degré duble pitch; // assiette en degré duble speed; // vitesse air en knt duble altitude_ft; // altitude au dessus de la mer en pied duble vs; // vitesse verticale en feet par minute Pur l état désiré du mdèle duble tgt_heading; // cap vrai desire en degré duble tgt_altitude_ft; // altitude au dessus de la mer désirée en pied duble tgt_speed; // vitesse air désirée en knt duble tgt_rll; // inclinaisn désirée en degré duble tgt_pitch; // assiette désirée en degré duble tgt_vs; // vitesse verticale désirée en feet par minute AIAircraft 3

Il s agit d une classe dérivée de AIBase. Elle pssède dnc les mêmes attributs que AIBase. Par cntre des méthdes lui snt bien spéfiques. Nus puvns par exemple citer des fnctins de réglage cmme setperfrmance qui permet de régler les perfrmances de l avin à partir d une PerfrmanceData ; u setflightplan qui permet de régler le plan de vl à partir d un AIFlightPlan. Il y a également des fnctins de cmmande de l avin tels : vid AccelT(duble speed); vid PitchT(duble angle); vid RllT(duble angle); vid YawT(duble angle); vid ClimbT(duble altitude); vid TurnT(duble heading); qui dnnent des cnsignes que l avin dit rejindre, dans l rdre nus avns une cnsigne de vitesse, de tangage, de rulis, de lacet, d altitude, de cap. Ces méthdes ne décrivent pas cmment rejindre des cnsignes, mais seulement dnnent la cnsigne à rejindre. Ainsi le dévelppement de la méthde AccelT(duble speed); sera tgt_speed=speed; et c est rien de plus. AIBallistic est aussi une classe dérivée de AIBase. Celle-ci décrit le cmprtement d bjet balistique ce qui n est pas primrdial dans l étude du simulateur de vl si l n ne cnsidère que la simulatin d avins. AIWingman est une classe dérivée de AIBallistic, tut cmme sa mère nus ne nus intéressns pas à cette classe. AIThermal est une classe dérivée de AIBase qui crée un rage, une fis encre nus n irns pas plus lin. AITanker est une classe qui hérite de AIAircraft et qui décrit les caractéristiques d un tanker, cette classe est n est pas imprtante pur faire turner le simulateur de vl, dnc nus ne rentrerns pas plus dans sn détail. AIStrm est une class dérivée de AIBase qui décrit tute les caractéristiques d un rage. AIStatic Simulatin distribuée dans un simulateur de vl 20/05/2009 4

est une classe dérivée de AIBase. Celle-ci décrit le cmprtement d un bjet statique nus n irns pas plus lin avec cette classe qui n est pas indispensable. AIShip est aussi une classe dérivée de AIBase. Celle-ci décrit le cmprtement d un bateau ce qui n est pas primrdial dans l étude du simulateur de vl si l n ne cnsidère que la simulatin d avins. AICarrier est aussi une classe dérivée de AIShip. Celle-ci décrit le cmprtement d un prte avin ce qui n est pas primrdial dans l étude du simulateur de vl si l n ne cnsidère que la simulatin d avins. Perfrmancedata est une classe qui répertrie les perfrmances de l avin cnsidéré. Elle est utilisée pur simuler prprement le vl des avins de AIAircraft. Les attributs de cette classe snt bien sur les perfrmances de l avin : accélératin, décélératin, taux de mntée, vitesse de rtatin, vitesse de décllage, vitesse de mntée, vitesse de crisière, vitesse de descente, vitesse d apprche, vitesse de tuché, vitesse de rulage. Perfrmancedb est une classe qui permet de stcker les perfrmances de l avin actuel pur une réutilisatin ultérieure. Pur ce faire elle enregistre une Perfrmancedata dans un fichier dnné par sn adresse. Simulatin distribuée dans un simulateur de vl 20/05/2009 5 AIManager est une classe de management glbal pur le trafic généré en intelligence artificielle par FlightGear. Cette classe a cmme attributs tutes les infrmatins permettant de lcaliser l avin de l utilisateur : lngitude, latitude, altitude, cap, angle de rulis, angle de tangage, angle de lacet, vitesse ; et a cmme méthdes tutes celles permettant d btenir les attributs précédemment cités (getlngitude, ). AIFlightPlan est une classe qui s ccupe du chargement et du stckage des plans de vl. Cette classe définie entre autre une nuvelle structure qu est le waypint. Ce dernier est cnsitué de : d un nm, d une latitude, d une lngitude, d une altitude, d une vitesse, d un temps de référence et de 2 bléens qui renseignent si l avin est au waypint et si le waypint est au sl. Le plan de vl est dnc cnstitué d un vecteur de waypint et les méthdes qui lui snt appliqués snt :getcurrentwaypint qui returne le waypint actuel, getpreviuswaypint qui returne le waypint précédent, getnextwaypint qui returne le waypint suivant, IncrementWaypint qui va au waypint suivant, deletewaypints et deletewaypints qui respectivement supprime et reinitialize tus les waypints. Submdel est une classe qui mdélisé un sus-mdèle publiable. Cette classe est assez cmplexe à cmprendre, sn utilité reste flue.

2.2.2. Aircraft Aircraft cette classe décrit différentes rutines de l avin. Entre autre cette classe à pur but d afficher divers paramètres de l avin au standard ut tels lngitude, latitude, altitude, les 3 angles phi, thêta, psi mais aussi des états des cmmandes cmme la guverne de prfndeur, les ailerns, la guverne de directin, et la manette des gaz. Cette classe pssède aussi des méthde de mise a jur de la psitin actuelle de l avin et du HUD ainsi que des méthdes de réinitialisatin de quelques sus-systèmes. Cntrls est une classe qui définit une interface standard à tutes les cmmandes de simulatin de vl. Tus les éléments de l avin snt passés en revue : cmmande de vl, mteur, paramètres mteurs, carburant, en passant par des mécanismes divers, les systèmes hydrauliques, pneumatiques, électriques, la pressurisatin, les feux/phares, les armements éventuels, le pilte autmatique. Et pur chacun de ces éléments il existe une méthde get et set. Replay est une classe qui permet d enregistrer et de relire des vls. Ntns juste que seln la durée du vl, la qualité de la vidé ne sera pas la même. 2.2.3. Airprt Simple est une classe permettant de gérer l identité de l aérprt, sa latitude, sa lngitude, sn altitude. Runways est une classe gérant les infs cncernant les pistes d un aérprt : nm de l aérprt dnt elle dépend, latitude, lngitude, altitude, rientatin, lngueur, largeur, surface. Xmllader permet de prendre en charge des aérprts cdés en XML Parking Simulatin distribuée dans un simulateur de vl 20/05/2009 6

est une classe qui définit le pint de parking de l aérprt sur lequel va apparaître initialement l avin de l utilisateur Apt_lader charge la base de dnnées d un aérprt à partir d un fichier de base de dnnée de tus les aérprts. 2.2.4. ATC Dans ce package un seul fichier trafficcntrl qui cntient plusieurs classes. FGATCInstructin est une classe qui a pur arguments des instructins : vitesse, cap, altitude, garder psitin, changer vitesse, changer cap, changer altitude, et pur méthdes les habituels get et set qui snt assciés. FGTrafficRecrd est une classe dnt l bjectif est d enregistrer l état du trafic ActiveRunway est une classe utile pur garder un œil sur les avins qui nt une clairance d atterrissage pur une piste dnnée. FGTwerCntrl est une classe qui définit une tur de cntrôle et sa gestin du trafic aérien Simulatin distribuée dans un simulateur de vl 20/05/2009 2.2.5. ATCDCL AIEntity est une classe qui implémente le minimum nécessaire pur une entitée d intelligence artificielle : une psitin, une rientatin, un mdèle 3D asscié et la pssibilité de buger. Elle ne fait rien d utile mais tutes les entitées d intelligence artificielle divent en dériver. AIGAVFRTraffic est une classe dérivée de AIEntity avec suffisamment de lgique pur vler en VFR et interagir avec le mdèle de trafic aérien. En attribut les perfrmances de l avin et en méthde la pssibilité d enregistrer la transmissin et la pssibilité de returner sur l aérdrme de départ au pint de parking initial. 7

AILcalTraffic cette classe est semblable à la précédente, sauf qu elle ne cncerne pas un vl VFR général mais seulement un vl lcal à prximité de l aérdrme de départ. AIPlane est une classe abstraite dérivée de AIEntity à laquelle est ajuté des exigences pratiques prpres à un AIPlane cmme la pssibilité d envyer un message radi de cmmunicatin ainsi que des perfrmances détaillées. Apprach est une classe qui gère les apprches autur d un aérdrme. Elle fixe par exemple le nmbre maximal d avin en apprche, le nmbre max de waypints pur la phase d apprche et le temps minimum entre 2 messages. addplane et remveplane snt 2 méthdes qui permettent respectivement d ajuter un avin à la liste des avins en apprche et de supprimer un avin de cette même liste lrsqu il n est plus prche de l aérprt. ATC est une classe abstraite qui servira de mdèle pur les classes Atis et Twer. ATCutils définit un ensemble de fnctins utilitaires pur le cntrôle de trafic aérien. Par exemple la fnctin CnvertNumTSpkenDigits cnvertit un nmbre quelcnque en chiffres parlés ; u la fnctin GetPhneticIdent qui returne le phnetic d une lettre quelcnque de l alphabet ; u encre la fnctin GetHeadingFrmT qui calcule le cap à prendre pur aller d un pint à un autre. ATCVice est la classe qui permet d ajuter la vix au niveau du cntrôle aérien. La méthde LadVice charge 2 fichiers, l un cntenant les sns audis bruts et l autre cntenant la psitin des mts. Atis est une classe qui étend la classe ATC. Elle est destinée aux aérdrmes cntrôlés par des agents qui ne snt pas des cntrôleurs aériens. Cmmlist est une classe qui permet d asscier un aérprt à une fréquence radi et réciprquement. Grund est une classe qui permet le cntrôle des avins au rulage pur les grs aérprts Simulatin distribuée dans un simulateur de vl 20/05/2009 8

Twer est une classe qui étend la classe ATC. Elle est destinée aux aérdrmes cntrôlés par de vrais cntrôleurs aériens. 2.2.6. Autpilt Rute_mgr est une classe qui gère une rute, c est à dire un ensemble de waypints. Entre autres elle pssède cmme méthdes : new_waypint qui permet de créer un nuveau waypint, add_waypint qui permet de l ajuter à la rute, et setetaprpertyfrmdistance qui permet d estimer l heure d arrivée au waypint suivant en fnctin de la distance qu il reste à parcurir. Xmlaut décrit une manière plus flexible et générique pur cnstruire des piltes autmatiques. 2.2.7. Cckpit Dans le package cckpit, snt détaillés tus les éléments qui cnstituent le cckpit de l avin un à un. Pas de header pur ce package, seulement les fichiers cntenant le cde. Chaque fichier crrespnd à un instrument et est basé sur le mdèle suivant : les attributs snt les paramètres dnt l instrument a besin (par exemple vitesse pur l anémmètre) et les méthdes permettent de représenter et dessiner l instrument en questin. 2.2.8. Package Main Simulatin distribuée dans un simulateur de vl 20/05/2009 Fichiers c++ Btstrap Messages d erreur cameragrup camera : zm fg_cmmands Cntient tutes les fnctins pur gérer une simulatin : reset, démarrer une nuvelle partie, quitter la partie en curs, la sauvegarder, charger une ancienne partie. Cette classe permet également de fixer les préférences, l envirnnement (visibilité, heure, niveau de la mer, température, altitude) 9

Renderer Envirnnement : bruillard, lumiere Splash Affiche un petit écran dans lequel n peut écrire. Culeurs différentes : ruge = autpilt, vert = unknwn (a vérif) Cmmande également la camera. WindwSystemAdaptater Dssier «mdel» Acmdel Met à jur la lngitude, latitude et altitude mdelmgr chix du mdèle d avin (je cris) passage en mde rulis, tangage panelnde détecte les clics de suris et le pint cliqué (crdnnées du pint) 2.2.9. Envirnnement Atmsphère Cette classe mdélise le cmprtement de l atmsphère suivant les lis de la physique : variatin de la température et de la pressin en fnctin de l altitude et de la gravité, variatin différente seln la tranche d atmsphère (tris cas : altitude inférieure à 11 km, cmprise entre 11 et 20 km, cmprise entre 20 et 32 km. On ne peut aller au-delà. Chaque instance de cette classe représente une masse d air dans laquelle l avin peut évluer dans tus les sens (haut, bas, gauche, drite) envirnment Mdélise l envirnnement naturel pur un lieu et un temps dnné, c est-à-dire la visibilité, la température, le vent, le niveau de la mer en ce lieu, les turbulences, etc. Cette classe dit être ensuite déplacée dans le dssier «simgear». Ces dnnées snt initialisées lrsque l utilisateur fait sn chix de cnfiguratin de départ, puis snt actualisées ensuite seln les évlutins de l avin (include simgear) Simulatin distribuée dans un simulateur de vl 20/05/2009 10

envirnment_ctrl Utilise la classe envirnment ci-dessus. Cette classe permet de fixer les latitude, lngitude et altitude initiales puis de les btenir en curs de vl. Cntient également la péride de rafraîchissement de l envirnnement, et les deltas maximums entre deux températures, pressins, altitudes, frces du vent, densités de nuages. envirnment_mgr et fgcluds Ces deux classes fixent la densité des cuches de nuages. Fgmetar Returne la pluie, la grêle, la neige qui tmbe et qui est au sl. precipitatin_mgr Calcule l intensité des précipitatins en fnctin de l altitude ainsi que la directin du vent et sa frce et met à jur le graphisme de la pluie qui tmbe. 2.2.10. FDM Simulatin distribuée dans un simulateur de vl 20/05/2009 JSBSim Cntient les utils mathématiques (vecteurs, matrices, fnctins), un sus dssier «mdel» dans lequel n truve «atmsphere» qui a l air d initialiser les dates et dnnées d envirnnement (température, altitude ), «prpulsin» (engine, prpeller, rcket ) et «flight_cntrl» (filter, gradient, sens, kinematic ) Dssier Initializatin FGInitialCnditin Fixe les vitesses de l avin dans les différents repères (avin, vent) ainsi que le mach (vitesse_avin/vitesse_sn) seln les cnditins initiales chisies par l utilisateur, c est-à-dire si l avin n est pas au sl à l arrêt au début. Cmme les vitesses snt tutes liées par des changements de repère, la mdificatin de l une d entre elles entraîne la mise à jur de tutes les autres. Cette classe permet aussi de fixer les angles d Euler Dssier Math Cntient tutes les classes créant et gérant les matrices et vecteurs utilisées, spécifie entre autres leurs dimensins. Dssier Mdels FGAtmsphere 11

Permet de récupérer tutes les dnnées à une altitude dnnée : pressin, température, densité. Cette classe est dnc redndante avec celle qu n truve dans le dssier Envirnment. FGAerdynamics Cntient tutes les frmules dnnant les cefficients et les frces qui mdélisent le cmprtement de l avin. Snt également pris en cmpte et traités ici le décrchage, l angle d incidence maximum et l effet de sl. LaRCSim Ce dssier cntient des fichiers C et nn pas C++. Il a été écrit par un auteur différent et n vit qu il y a beaucup de redites avec d autres fichiers d autres dssiers. Il cntient entre autres quatre mdèles d avins : «basic», «cherkee», «c172» et «navin». Pur chacun de ces types, n a un fichier «gear», «engine», «aer» alrs qu a priri n a besin des mêmes fnctins avec des cnstantes qui varient pur les avins. En particulier pur tus les calculs de frces aérdynamiques, n purrait avir un seul fichier qui cntient tutes les frmules et les calculs, et que les cnstantes spécifiques (Cx0, alpha0 ) à chaque avin sient stckées dans un autre fichier. Ensuite, n purrait gagner du cde et de la mémire en utilisant les mêmes frmules de calcul pur chaque mdèle. En effet, les frces aérdynamiques snt calculées de quatre manières différentes pur les quatre avins! De même les cnstantes spécifiques à chaque avin nt des nms différents seln les mdèles ce qui ne facilite pas le passage d un fichier à l autre. Prblème des cefficients cnstants : vid cherkee_aer() /*flat ** Cherkee (flat t, VectrStanja &X, flat *U)*/ { static flat Cza = -19149.0/(146.69*146.69*157.5/2.0*0.00238), Czat = -73.4*4*146.69/0.00238/157.5/5.25, Czq = -2.655*4*2400.0/32.2/0.00238/157.5/146.69/5.25, Cma = -21662.0 *2/146.69/0.00238/157.5/146.69/5.25, Cmat = -892.4 *4/146.69/0.00238/157.5/146.69/5.25, Cmq = -2405.1 *4/0.00238/157.5/146.69/5.25/5.25, Czde = -1050.49 *2/0.00238/157.5/146.69/146.69, Cmde = -12771.9 *2/0.00238/157.5/146.69/146.69/5.25, Clb = -12891.0/(146.69*146.69*157.5/2.0*0.00238)/30.0, Clp = -0.4704, Clr = 0.1665, Cyb = -1169.8/(146.69*146.69*157.5/2.0*0.00238), Cyp = -0.0342, Cnb = 11127.2/(146.69*146.69*157.5/2.0*0.00238)/30.0, Cnp = -0.0691, Cnr = -0.0930, Cyf = -14.072/(146.69*146.69*157.5/2.0*0.00238), Cyps = 89.229/(146.69*146.69*157.5/2.0*0.00238), Clf = -5812.4/(146.69*146.69*157.5/2.0*0.00238)/30.0, //%Clda? Cnf = -853.93/(146.69*146.69*157.5/2.0*0.00238)/30.0, //%Cnda? Cnps = -1149.0/(146.69*146.69*157.5/2.0*0.00238)/30.0, //%Cndr? Cyr = 1.923/(146.69*146.69*157.5/2.0*0.00238), Simulatin distribuée dans un simulateur de vl 20/05/2009 12

Cx0 = -0.4645/(157.5*0.3048*0.3048), Cz0 = -0.11875, Cm0 = 0.0959, Clda = -5812.4/(146.69*146.69*157.5/2.0*0.00238)/30.0, // Clf Cnda = -853.93/(146.69*146.69*157.5/2.0*0.00238)/30.0, // Cnf Cndr = -1149.0/(146.69*146.69*157.5/2.0*0.00238)/30.0, // Cnps /* printf("initialize= %d\n",initialize); */ /* printf("initializing aer mdel...initialize= %d\n", Initialize); */ /*nndimensinalizatin quantities*/ /*units here are ft and lbs */ cbar=4.9; /*mean aer chrd ft*/ b=35.8; /*wing span ft */ Sw=174; /*wing planfrm surface area ft^2*/ rpiare=0.054; /*reciprcal f Pi*AR*e*/ lbare=3.682; /*elevatr mment arm / MAC*/ CLadt=1.7; CLq=3.9; CLb=0; Ai=1.24; Cdb=0.036; Cda=0.13; /*Nt used*/ Cdde=0.06; Simulatin distribuée dans un simulateur de vl 20/05/2009 Cma=-1.8; Cmadt=-5.2; Cmq=-12.4; Cmb=-0.02; Cmde=-1.28; CLde=-Cmde / lbare; /* kinda backwards, huh? */ Clbeta=-0.089; Clp=-0.47; Clr=0.096; Clda=-0.09; Cldr=0.0147; Cnbeta=0.065; Cnp=-0.03; Cnr=-0.099; Cnda=-0.0053; Cndr=-0.0657; Cybeta=-0.31; Cyp=-0.037; 13

Cyr=0.21; Cyda=0.0; Cydr=0.187; MaxTakeffWeight=2550; EmptyWeight=1500; Zcg=0.51; Prblème des calculs des frces Cas du mdèle basic /* ttal frces in bdy axes */ Cx_drela = -CD_drela*Cs_alpha + CL_drela*Sin_alpha*Cs_beta*Cs_beta; Cz_drela = -CD_drela*Sin_alpha - CL_drela*Cs_alpha*Cs_beta*Cs_beta; Cy_drela = CY_b*Std_Beta + CY_p*Phat + CY_r*Rhat + CY_dr*rudder; /* set dimensinal frces and mments */ QS = 0.5*Density*V_rel_wind*V_rel_wind * S_ref; F_X_aer = Cx_drela * QS; F_Y_aer = Cy_drela * QS; F_Z_aer = Cz_drela * QS; Cas du mdèle c172 qs=dynamic_pressure*sw; qscbar=qs*cbar; qsb=qs*b; /* printf("aer: Wb: %7.4f, Ub: %7.4f, Alpha: %7.4f, elev: %7.4f, ail: %7.4f, rud: %7.4f, lng_trim: %7.4f\n",W_bdy,U_bdy,Alpha*RAD_TO_DEG,elevatr*RAD_TO_DEG,ailern*RAD_TO_DEG,rudder *RAD_TO_DEG,lng_trim*RAD_TO_DEG); printf("aer: Theta: %7.4f, Gamma: %7.4f, Beta: %7.4f, Phi: %7.4f, Psi: %7.4f\n",Theta*RAD_TO_DEG,Gamma_vert_rad*RAD_TO_DEG,Beta*RAD_TO_DEG,Phi*RAD_TO_DE G,Psi*RAD_TO_DEG); */ /* sum cefficients */ CLwbh = interp(cltable,alpha_ind,ncl,std_alpha); /* printf("clwbh: %g\n",clwbh); */ CL = CLb + interp(dclf,flap_ind,ndf,flap_psitin); Cd = Cdb + interp(dcdf,flap_ind,ndf,flap_psitin); Cm = Cmb + interp(dcmf,flap_ind,ndf,flap_psitin); /* printf("fp: %g\n",flap_psitin); Simulatin distribuée dans un simulateur de vl 20/05/2009 14

printf("cl: %g\n",cl); printf("cd: %g\n",cd); printf("cm: %g\n",cm); */ CL = CL + CLwbh + (CLadt*Std_Alpha_dt + CLq*Theta_dt)*cbar_2V + CLde*elevatr; cd = Cd + rpiare*ai*ai*cl*cl + Cdde*elevatr; cy = Cybeta*Std_Beta + (Cyp*P_bdy + Cyr*R_bdy)*b_2V + Cyda*ailern + Cydr*rudder; cm = Cm + Cma*Std_Alpha + (Cmq*Q_bdy + Cmadt*Std_Alpha_dt)*cbar_2V + Cmde*(elevatr); cn = Cnbeta*Std_Beta + (Cnp*P_bdy + Cnr*R_bdy)*b_2V + Cnda*ailern + Cndr*rudder; crll=clbeta*std_beta + (Clp*P_bdy + Clr*R_bdy)*b_2V + Clda*ailern + Cldr*rudder; /* printf("aer: CL: %7.4f, Cd: %7.4f, Cm: %7.4f, Cy: %7.4f, Cn: %7.4f, Cl: %7.4f\n",CL,cd,cm,cy,cn,crll); */ /*calculate wind axes frces*/ F_X_wind=-1*cd*qS; F_Y_wind=cy*qS; F_Z_wind=-1*CL*qS; /* printf("v_rel_wind: %7.4f, Fxwind: %7.4f Fywind: %7.4f Fzwind: %7.4f\n",V_rel_wind,F_X_wind,F_Y_wind,F_Z_wind); */ /*calculate mments and bdy axis frces */ Simulatin distribuée dans un simulateur de vl 20/05/2009 /* requires ugly wind-axes t bdy-axes transfrm */ F_X_aer = F_X_wind*Cs_alpha*Cs_beta - F_Y_wind*Cs_alpha*Sin_beta - F_Z_wind*Sin_alpha; F_Y_aer = F_X_wind*Sin_beta + F_Y_wind*Cs_beta; F_Z_aer = F_X_wind*Sin_alpha*Cs_beta - F_Y_wind*Sin_alpha*Sin_beta + F_Z_wind*Cs_alpha; Sur ces deux exemples n vit que dans l un n calcule d abrd les cefficients adimensinnés, puis n multiplie par QS = ½.ρ. V 2. S ref pur btenir les frces, tandis que dans l autre cas n calcule également les cefficients mais pas de la même manière, puis n calcule les frces dans le repère lié au vent, enfin n effectue un changement de repère pur passer dans le repère aérdynamique. 15

SP Récupère tutes les dnnées : pitch, rll, altitude, speed YASim Dnnées sur l altitude, la densité, etc : il est redndant avec «atms_62» mais celui-ci est en c++ tandis que l autre est en C, ce snt différentes versins par des auteurs différents Cntient également les mdèles des hélices, rtrs, etc. 2.2.11. Package GUI Liste des aérprts Graphismes/culeurs 2.2.12. Package Instrumentatn Tus les indicateurs : vitesse, vitesse verticale, altitude, jauge 2.2.13. Package Multiplayer Classe mpmessages Chaque message utilisé pur des cmmunicatins multi-jueurs cnsiste en un titre parfis accmpagné d un paquet de dnnées. Ces deux éléments cmbinés snt envyés à une adresse IP. Il y a deux types de messages : les messages de chat entre les jueurs et les messages de psitin qui regrupent les infrmatins suivantes : Le temps auquel le paquet de dnnées a été émis La psitin par rapprt aux axes terrestres L rientatin par rapprt à la terre (angles) la vitesse abslue par rapprt à la terre La vitesse angulaire Les accélératins Tutes ces infrmatins snt grupées en paquets de taille dnnée, ce qui est aussi géré par la classe. Simulatin distribuée dans un simulateur de vl 20/05/2009 16

Classe multiplaymgr Cntient les méthdes pur envyer les messages et les recevir (interactin avec la classe précédente) : SendMyPsitin SendTextMessage PrcessPsMsg PrcessChatMsg Update 2.2.14. Package Navaids Classe awynet Elle cntient en réalité plusieurs classes permettant de régler la latitude et la lngitude du pilte autmatique, mais aussi de définir une nuvelle rute à suivre : les nms des méthdes snt élquents! setindex setstartnderef setendnderef setstart setend settype setbase settp setname settrackdistance findnearestnde findshrtestrute Classe fix Charge les rutes en lisant les check pint ligne par ligne et cnstruit la carte. Il y aurait un bjet fix par navigatin. Classe fixlist Gère les bjets du type fix, permet par exemple de les rechercher dans la base de dnnée Simulatin distribuée dans un simulateur de vl 20/05/2009 Classe navdb Charge et initialise la base de dnnée des navigatins : fgnavdbinit Classe navlist Je ne cmprends pas trp la différence entre une nav et une fix, mais cette classe crrespnd pur les nav à la classe fixlist pur les fix! Il y a par exemple aussi une fnctin de recherche, mais avec beaucup plus d ptins que fixlist, à cmmencer par une recherche par prximité par rapprt à la psitin curante. Classe navreccrd Cmme sn nm l indique, elle permet l enregistrement des nav. Plusieurs ptins cmme la fréquence d acquisitin et les dnnées à enregistrer Classe psitinned Permet de returner tutes les caractéristiques du vl à un instant dnné 2.2.15. Package Netwrk 17

Il y a beaucup de classes dans ce package. Nus ne nterns que les classes centrales. Il s agit surtut de cnnexins entre les prts, et de gestin de server mais nus n avns pas assez de recul en la matière pur une analyse plus détaillée. Les dnnées échangées snt cdées dans des paquets de bits u chaque bit à un rôle (inclinaisn, tangage ) Classe ATC-main Initialise le hardware (cartes réseau etc.) Cree le maping réseau, vérifie le bn fnctinnement en envyant des messages radi Classe Atlas Gere l affichage à la cnsle des crdnnées de l avin seln les nrmes standard 2.2.16. Scenery Classe titlemgr Gère la dispnibilité u nn des paysages pur les différentes latitudes et les mets en mémire cash s ils snt dispnibles. Classe Scenery Définit une structure cntenant tus les paramètres glbaux des paysages en fnctin de la psitin curante : les méthdes type snt : get_elevatin_m get_cart_grund_intersectin Classe redut Gère les cameras utilisées! Vici un exemple de méthdes implémentées dans cette classe Switch setreferenceframe 2.2.17. Scripting Partie qui gère l intégratin du cde en nasal Classe Nasal-sys Simulatin distribuée dans un simulateur de vl 20/05/2009 18

Charge un fichier en nasal à partir d une surce extérieur et l insère cmme étant un mdule glbal dans les surces de FlightGear. Cette classe a aussi des méthdes qui permettent de vérifier la bnne exécutin des mdules en nasal. Dans cette classe il y a aussi des méthdes qui fnt références à des Timers Nasal, mais je ne les aie pas cmpris. 2.2.18. Sund Classe Vice Gère les attributs de la vix : Vlume Vitesse Présence u nn Classe Mrse Cde la manière d envyer les ti et les ta en bits Pssède aussi une méthde qui émet les sns crrespndants Classe Fg_fx Ce mdule utilise FGSundMgr pur générer des effets snres basés sur les cnditins de vl de mment. Il faut aussi initialiser ce mdule avant le début de la simulatin. Ce mdule charge et jue les effets définis dans un fichier XML et les fait varier seln les cnditins curantes Ces mdules maintiennent en fait une suite de fichier de messages audi suivant le principe de playlist. Ils snt jués les uns à la suite des autres sans recuvrement jusqu à la fin de la playlist. Simulatin distribuée dans un simulateur de vl 20/05/2009 Les méthdes implémentées permettent ntamment d ajuter un sn à la playlist. (On remarque que le sn de flight gear est assez smmaire). Classe Beacn Gère les bips de l ILS dans la finale en fnctin de l altitude et de l élignement du terrain (plan idéal d apprche) 2.2.19. Systems Classe Vacuum Mdélisatin d une pmpe à vide au niveau des mteurs. Les méthdes de cette classe nt pur entrée des dnnées mteurs cmme des régimes des différents étages (rpm1 et rpm2 dans flight gear). La méthde principale est un calcul de pressin dans la pmpe à vide. Classe Static Mdélise une prise de pressin statique à partir de la pressin extérieure grâce à un mdèle. 19

Classe Pitt Mdélise un tube de Pitt. La srtie est la smme de la pressin dynamique et de la pressin statique (pas seulement la pressin dynamique). Classe Electrical Base pur tus les cmpsants électriques : batteries, interrupteurs etc. Cntient par exemple des méthdes pur dire s ils snt dispnibles u nn sur l avin, et pur cnnaitre leur état (n/ff, énergie restante, etc.) 2.2.20. Time Classe Tmp Cntient une méthde qui met à jur péridiquement le temps du jeu et une autre qui règle péridiquement la psitin du sleil Classe Sunslver Etant dnné le temps de flight gear, cette classe permet le calcul de la psitin du sleil et renvie les angles qui permettent de le situer. Cette méthde a aussi besin des dnnées de psitin latitude et lngitude pur puvir fnctinner. Classe Light Cette méthde ressemble à la précédente mais calcule une luminsité assciée à une psitin du sleil. 2.2.21. Trafic Classe Schedule Cntrôle les niveaux de vls attribués à un avin en fnctin des dnnées avins (vls réalisables). Cntrôle les hraires de départ et d arrivée d un vl (ainsi que leur durée). +aérprts de départ et d arrivée. Classe Schedflight Attribue un schedule à chaque vl Classe TrafficMgr Cette classe cntient les définitins d un gestinnaire de trafic de haut niveau pur flight gear. Le mécanisme de recnnaissance du trafic est le suivant : Lecture des dnnées d un fichier texte simple furnit de base par flight gear Simulatin distribuée dans un simulateur de vl 20/05/2009 20

Créatin d une nuvelle base de dnnées de SchedFlights. Chaque avin dit avir une liste de vls qu il est capable d effectuer (liner, turisme etc.). On le lit On classe les vls par pririté (je n ai pas cmpris cmment fnctinnaient ces prirités) On met à jur le vl le plus urgent Simulatin distribuée dans un simulateur de vl 20/05/2009 21

2.3. Analyse des attributs de fnctinnement Le système de prpriétés que met en avant FlightGear peut paraître cmplexe au premier abrd mais en creusant un peu plus, n se rend cmpte qu'il s'agit d'un mécanisme très cmplet et très riche qui permet de mdifier très finement le cmprtement du simulateur. Sa richesse peut dnner une impressin de cmplexité, mais si l n s intéresse au principal cette cmplexité n est qu apparente. Une bnne cmpréhensin de l'arbre des prpriétés permet d'avir une bnne visibilité de ce qu'il est pssible de faire sus FlightGear, de cmprendre une grande partie de sn fnctinnement. On peut vir les prpriétés cmme des variables glbales qui peuvent être typées (NONE : aucun type défini, cette prpriété ne purra pas être utilisée pur effectuer un calcul numérique ; STRING : type permettant d'affecter du texte ; BOOL : pur bléen si égale à 0 alrs est faux, sinn est vrai ; INT : pur integer, valeur entière psitive u négative ; DOUBLE : valeur à virgule flttante), mdifiées, u crées et supprimées à la vlée pur une grande partie d entre elles. Les prpriétés snt rganisées et hiérarchisées afin d'amélirer la lisibilité du cde qui les explite, et aussi permettre à l'utilisateur de retruver le plus facilement pssible la prpriété recherchée. Il existe une règle implicite dans FlightGear pur le nmmage des prpriétés et des nœuds : les nms snt tujurs écrits en minuscule les nms n'utilisent pas d'espace, en effet le signe - (mins) est utilisé pur séparer les différents éléments d'un nm, par exemple engine-pump désigne l état de la pmpe électrique du mteur il est utile d'indiquer quelle est la dimensin de la prpriété (inhg, HPa, km, kts, etc.), par exemple speed-kts spécifie une vitesse en knts. Pur afficher et puvir naviguer dans la fenêtre présentant une arbrescence des prpriétés lrsqu une simulatin FlightGear est lancée il faut sélectinner Files Brwse Internal Prperties. S uvre alrs le fênetre suivante : Simulatin distribuée dans un simulateur de vl 20/05/2009 22

Simulatin distribuée dans un simulateur de vl 20/05/2009 Il est alrs pssible de naviguer dans l arbre des prpriétés de FlightGear, afin d bserver (et éventuellement afin de mdifier) certains paramètres échangés dans le lgiciel de simulatin de vl. On peut par exemple faire un essai simple avec les feux de navigatin en chisissant une vue extérieure à l avin si l n inverse la valeur de cntrls/lighting/nav-lights (false = éteint ; true = allumé), l état des feux de navigatins sur l avin à l écran va changer. 23

Les prpriétés snt classées seln leur appartenance à des catégries. Les plus intéressantes snt: cntrls (tut ce qui a attrait aux cntrôles de l'appareil cmme la manette de gaz u le manche à balai, mais aussi tut ce qui est cntrôle hydraulique, pneumatique, électrique, des feux/phares, cntrôle aussi de système plus spécifique cmme l armement éventuel de l avin, le siège, ) engines (tus les paramètres en relatin avec le(s) mteur(s) de l avin cnsidéré) instrumentatin (les prpriétés liées à l'affichage des instruments de vl, n remarquera que chaque instrument est un nœud et que des prpriétés cmmunes à différents instruments snt dnc présentes plusieurs fis dans l arbre, de plus pur chaque instrument la prpriété serviceable qui est un bléen indique si l avin cnsidéré pssède ce type d instrument (true si ui false sinn)) fdm (tus les paramètres utilisés par le mdèle de vl, la plupart ne snt pas mdifiables directement car se snt des cnstantes de la mécanique du vl) Le détail de ces 4 catégries est dnné en annexe. On peut nter également que la catégrie envirnnement est intéressante, en effet celle-ci dnné tus les paramètres qui déterminent l envirnnement autur de l avin, cmme les nuages (pur lesquels snt différenciés les types, les hauteurs, les extensins verticales), le vent, les turbulences, mais aussi le pressins, température, hygrmétrie de référence Cet arbre des prpriétés internes de FlightGear nus a été très utile pur mieux cmprendre le fnctinnement de FlightGear. En effet il détaille tus les paramètres qui snt échangés lrsque le simulateur est lancé. De plus l rganisatin de cet arbre permet de cmprendre les interactins entre les différents mdules, alrs que le cde surce qui reste difficilement interprétable ne le permet pas. Enfin cet arbre des prpriétés nus a permis de ne pas ublier de fédéré u d attribut, au mment de cncevir un simulateur en simulatin distribuée. Simulatin distribuée dans un simulateur de vl 20/05/2009 24

2.4. Mise en perspective : pssibilité de simulatin distribuée L rganisatin des attributs de fnctinnement en types bien définis nus incite à nus lancer dans la deuxième partie de ntre pir : la simulatin distribuée. Il est en effet ttalement envisageable que les différents grupes de fichiers surces dialguent par l intermédiaire d un RTI en mettant à jur des attributs qu ils nt en cmmun. 3. L architecture HLA 3.1. Présentatin La simulatin distribuée présente deux applicatins essentielles. La première cncerne l augmentatin des perfrmances : permettre de faire turner différentes machines en parallèle pur réduire les temps de calcul u résudre les prblèmes de mémire. La secnde applicatin cncerne l échange de dnnées entres sites distincts. Dans ntre cas, il s agit de mdéliser un simulateur de vl au sein d une fédératin, la fédératin étant l avin dans sn ensemble. Les fédérés qui vnt être mis à jur régulièrement snt les différentes parties que nus avns islées lrs de la mdélisatin de l avin, par exemple l envirnnement, la visualisatin du cckpit, les dnnées avin Le principe de HLA est le suivant : au sein d un ensemble, la fédératin, n a un certain nmbres de fédérés, autant que nécessaires, qui échangent des infrmatins entre eux nn pas directement mais à travers la fédératin uniquement. Simulatin distribuée dans un simulateur de vl 20/05/2009 Ci-dessus, un graphe représentant la manière avec laquelle les fédérés mettent à jur leurs attributs par l intermédiaire du RTIg (n vit aussi le mécanisme d initialisatin et de créatin de la federatin) 3.2. CERTI CERTI est un lgiciel qui permet une implémentatin RTI (Run Time Infrastructure) de HLA. Les fédérés échangent leurs infrmatins via des RTIA (RTIAmbassadr), un par fédéré, qui les relient au RTIG (RTI 25

Gateway). A chaque itératin du temps cmmun à la fédératin, les dnnées qui divent être mises à jur le snt de la manière suivante : chaque fédéré envie ses infrmatins à la fédératin, qui les redistribue ensuite. Les fédérés peuvent suscrire à des interactins : ici, ns interactins snt uniquement de type «mise à jur». Mise à jur de la psitin : latitude, lngitude, altitude, cette dernière entraînant un recalcul des températures et pressin, des frces s exerçant sur l avin, et un nuvel affichage du tableau de brd, avec un altimètre mis à jur. Mise à jur également de l hrlge de l avin, qui définit le temps de vl, pur calculer la cnsmmatin d essence et dnc le niveau restant dans les réservirs. Schéma récapitulatif du fnctinnement du RTI : en cercle, les fédérés appartenant à la fédératin. Une autre dimensin imprtante de ce type de simulatin est la gestin du temps : une hrlge régit la federatin et tus les federés accmpagnent leurs messages d un temps d émissin qui permet de se recaler sur le temps du rti. De cette manière, aucun des fédérés ne peut prendre un temps d avance sur les autres ce qui entrainerait des erreurs et des décalages faussant les résultats significativement. Dans le cas de ntre simulateur de vl, n chisit un temps de rafraîchissement (ù snt effectuées les mises à jur) crrespndant au mde le plus rapide que l n peut rencntrer en mécanique du vl. Typiquement, ce temps est la répnse de premier rdre à un écheln de cmmande et le temps de répnse est de l rdre de 1/10 s. 3.3. Attributs échangés dans un simulateur de vl On se basera dans tute la suite sur le travail effectué sur les prpriétés internes. Il faudra cependant faire une selectin et quitte à perdre en précisin, mettre certains attributs. Simulatin distribuée dans un simulateur de vl 20/05/2009 26

3.4.Prpsitin d un mdèle de simulateur en simulatin distribuée Périphériques Jystick Clavier suris Envirnnement Mdèle atmsphère (T, P = f (h)) Mété lcale (nuages, vent, pluie) Psitin avin Altitude Lngitude Latitude Angles rulis, tangage, lacet Heure Cntrôles Mteur Vlets, becs Freins Armement Lumières AVION Visualisatin instrumentatin cckpit Altimètre Anémmètre Hrizn artificiel Jauge essence Dnnées avin Cefficients cnstants (Cx0, alpha0 ) Masse à vide Allngement Cnsmmatin spécifique mteur Capteurs Niveau essence Température mteur Température extérieure Vitesse Pressin Calcul des frces Traînée Prtance Mments Alarmes Décrchage Température anrmale

Envirnnement Mdèle atmsphère (T, P = f (h)) Mété lcale (nuages, vent, pluie) Mise à jur des température et pressin Psitin avin Altitude Lngitude Latitude Angles rulis, tangage, lacet Heure Mise à jur de l heure et de la psitin Visualisatin instrumentatin cckpit Altimètre Anémmètre Hrizn artificiel Jauge essence Mise à jur de l affichage des instruments Périphériques Jystick Clavier suris Mise à jur des actins de l utilisateur RTI Cntrôles Mteur Vlets, becs Freins Armement Lumières Mise à jur des cntrôles Simulatin distribuée dans un simulateur de vl 20/05/2009 28

Calcul des frces Traînée Prtance Mments Dnnées avin Cefficients cnstants (Cx0, alpha0 ) Masse à vide Allngement Cnsmmatin spécifique mteur Mise à jur des vitesses et angles dnc des cefficients Pas de mise à jur Simulatin distribuée dans un simulateur de vl 20/05/2009 Capteurs Niveau essence Température mteur Température extérieure Vitesse Pressin Mise à jur du temps (cnsmmatin essence et chauffe mteur), de la vitesse et l altitude RTI Alarmes Décrchage Température anrmale Mise à jur des températures et cefficient de prtance (décrchage) 29

4. Cnclusin La tâche de «dépeçage» de FlightGear s est révélée plus ardue que prévue, car cmme n l a dit dans la présentatin de FlightGear, des cdes déjà existant nt été utilisés directement, parfis en plus d un cde déjà écrit, cmme c est le cas pur LaRCsim et JSBSim. Nus avns dnc truvé beaucup de redndances dans les fichiers, et nus ne savns pas quels fichiers snt exécutés au lancement du prgramme. Un autre pint qui a psé prblème est le manque flagrant de cmmentaires du cde, inégal seln les auteurs mais jamais très détaillé. Grâce à ce «dépeçage» et à l étude de FlightGear en curs de simulatin (cf annexes), nus avns pu identifier les différents mdules à créer pur mdéliser l avin en utilisant des fédérés et les prpriétés du HLA. Nus avns fait un mdèle le plus simple pssible mais en tenant cmpte tutefis de tut ce que nus savns indispensable au vl d un avin cmpte tenu de ns curs à Supaer : lis de la dynamique du vl ; système de capteurs. Nus avns ainsi pu prpser un mdèle dans lequel les interactins se limitent à la mise à jur des paramètres qui évluent. Nus n avns pas eu le temps nécessaire à l écriture et l implantatin du mdèle que nus prpsns. Néanmins il nus paraît évident que l usage de fédérés rendra le lgiciel plus clair et plus accessible, évitant les multiples redndances que nus avns rencntrées. De plus, il sera également plus facile de prpser un autre mdèle d avin, les dnnées spécifiques à un avin étant tutes regrupées dans le même mdule.

5. Annexe Simulatin distribuée dans un simulateur de vl 20/05/2009 cntrls APU fire-switch = ff-start-run = anti-ice engine carb-heat = inlet-heat = armament master-arm = release-all = statin jettisn-all = release-all = release-stick = stick-size = autflight altitude-selected = autpilt engage = autthrttle-arm = autthrttle-engage = bank-angle-select = heading-select = latéral-mde = mach-selected = vertical-mde = vertical-speed-select = electric APU-generatr = battery-switch = engine bus-tie = generatr = external-pwer = engines engine thrttle_idle = flight BLC = ailern = ailern-trim = drag-chute = elevatr = elevatr-trim = flaps = flaps-serviceable = rudder = 31

rudder-trim = slats = speedbrake = spilers = wing-fld = wing-sweep = fuel dump-valve = tank bst-pump = fuel_selectr = t_engine = t_tank = gear antiskid = brake-left = brake-parking = brake-right = catapult-launch-cmd = cpilt-brake-left = cpilt-brake-right = gear-dwn = launchbar = steering = tailhk = tailwheel-lck = wheel alternate-extensin = hydraulic system electric-pump = engine-pump = lighting beacn = dme-nrm = instruments-nrm = landing-lights = nav-lights = panel-nrm = strbe = taxi-light = turn-ff-lights = pneumatic APU-bleed = engine bleed = pressurizatin dump = mde = utflw-valve = pack Simulatin distribuée dans un simulateur de vl 20/05/2009 32

pack-n = seat cmd_selectr_valve = eject initiate = status = switches master-alt = master-avinics = master-bat = Simulatin distribuée dans un simulateur de vl 20/05/2009 engines engine amp-v = cht-degf = cranking = egt-degf = fuel-cnsumed-lbs = fuel-flw-gph = fuel-flw_pph = mp-si = il-pressure-psi = il-temperature-degf = ut-f-fuel = rpm = running = starter = thrust_lb = thruster feathered = pitch = rpm = trque = instrumentatin adf errr-deg = frequencies selected-khz = standby-khz = ident = 33

ident-audible = in-range = indicated-bearing-deg = mde = rtatin-deg = vlume-nrm = airspeed-indicatr indicated-speed-kt = altimeter indicated-altitude-ft = mde-c-alt-ft = pressure-alt-ft = setting-inhg = attitude-indicatr caged = caged-flag = cnfig hrizn-ffset-deg = indicated-pitch-deg = indicated-rll-deg = internal-pitch-deg = internal-rll-deg = spin = tumble-nrm = clck indicated-hur = indicated-min = indicated-sec = indicated-shrt-string = indicated-string= lcal-hur = lcal-shrt-string = ffset-sec = cmm frequencies selected-mhz standby-mhz ptt= vlume = cmm[1] frequencies selected-mhz standby-mhz ptt= Simulatin distribuée dans un simulateur de vl 20/05/2009 34

Simulatin distribuée dans un simulateur de vl 20/05/2009 35 vlume = dme frequencies selected-mhz = surce = in-range = indicated-distance-nm = indicated-grund-speed-kt = indicated-time-min = switch-psitin = encder indicated-altitude-ft = mde-c-alt-ft = pressure-alt-ft = setting-inhg = gps lamp-test = gps-annunciatr lamp-test = heading-indicatr indicated-heading-deg = ffset-deg = servicable = spin = heading-indicatr-fg ffset-deg = kln89 scan-pull = kr-87 inputs rtatin-deg = utputs selected-khz = stanfby-khz = kt-70 annunciatrs alt = fl = gnd = n = reply = sby = inputs digit1 = digit2 = digit3 = digit4 = func-knb =

ident-btn = utputs flight-level = id-cde = magnetic-cmpass indicated-heading-deg = marker-beacn audi-btn = inner = middle = uter = pwer-btn = vlume = mk-vii cnfiguratin-mdule categry-1 = categry-10 = categry-11 = categry-12 = categry-13 = categry-14 = categry-15 = categry-16 = categry-17 = categry-2 = categry-3 = categry-4 = categry-5 = categry-6 = categry-7 = categry-8 = categry-9 = input-feeders arinc429 barmetric-altitude-rate = cmputed-airspeed = décisin-height = glideslpe-deviatin = radi-altitude = rll-angle = uncrrected-barmetric-altitude = discrètes autpilt-engaged = décisin-height = glideslpe-inhibit = landing-flaps = landing-gear = Simulatin distribuée dans un simulateur de vl 20/05/2009 36

Simulatin distribuée dans un simulateur de vl 20/05/2009 inputs arinc429 barmetric-altitude-rate = barmetric-altitude-rate-ncd = cmputed-airspeed = cmputed-airspeed-ncd = decisin-height = decisin-height-ncd = glideslpe-deviatin = glideslpe-deviatin-ncd = gps-altitude = gps-latitude = gps-lngitude = gps-vertical-figure-f-merit = lcalizer-deviatin = rll-angle = rll-angle-ncd = uncrrected-barmetric-altitude = uncrrected-barmetric-altitude-ncd = discretes audi-inhibt = autpilt-engaged = decisin-height = glideslpe-cancel = glideslpe-inhibit = gpws-inhibit = landing-flaps = landing-gear = mde6-lw-vlume = mmentary-flap-verride = rs-232 present-status = utputs arinc429 egpwc-alert-discrete-3 = egpwc-lgic-discretes = egpws-alert-discrete-1 = egpws-lgic-discrete-2 = mde6-calluts-discrete-1 = mde6-calluts-discrete-2 = discretes audi-n = flap-averride = glideslpe-cancel = gpws-alert = gpws-inp = gpws-warning = steep-apprach = tad-inp = speaker max-dist = rientatin 37

nav inner-cne = uter-cne = x = y = z = pitch = psitin x = y = z = reference-dist = vlume = audi-btn = back-curse-btn = cdi serviceable crsstrack-errr-m = crsstrack-heading-errr-deg = data-is-valid = frequencies selected-mhz = selected-mhz-fmt = standby-mhz = standby-mhz-fmt = frm-flag = gs gs-distance = gs-needle-deflectin = gs-rate-f-climb = has-gs = heading-deg = heading-needle-deflectin = ident = in-range = nav-distance = nav-id = nav-id_asc1 = nav-id_asc2 = nav-id_asc3 = nav-id_asc4 = nav-lc = pwer-btn = radials actual-deg = reciprcal-radial-deg = selected-deg = target-aut-hdg-deg = target-radial-deg = Simulatin distribuée dans un simulateur de vl 20/05/2009 38

Simulatin distribuée dans un simulateur de vl 20/05/2009 39 slaved-t-gps = time-t-intercept-sec = t-flag = t-frm vlume = nav[1] audi-btn = back-curse-btn = cdi serviceable crsstrack-errr-m = crsstrack-heading-errr-deg = data-is-valid = frequencies selected-mhz = selected-mhz-fmt = standby-mhz = standby-mhz-fmt = frm-flag = gs gs-distance = gs-needle-deflectin = gs-rate-f-climb = has-gs = heading-deg = heading-needle-deflectin = ident = in-range = nav-distance = nav-id = nav-id_asc1 = nav-id_asc2 = nav-id_asc3 = nav-id_asc4 = nav-lc = pwer-btn = radials actual-deg = reciprcal-radial-deg = selected-deg = target-aut-hdg-deg = target-radial-deg = slaved-t-gps = time-t-intercept-sec = t-flag = t-frm

vlume = slip-skid-ball indicated-slip-skid = verride = tacan display channel = rtatin = x-shift = y-shift = frequencies selected-channel = selected-mhz = ident = in-range = indicated-bearing-true-deg = indicated-distance-nm = indicated-grund-speed-kt = indicated-time-min = name = switch-psitin = transpnder flight-level = id-cde = inputs turn-indicatr indicated-turn-rate = spin = vertical-speed-indicatr indicated-speed-fpm = wxradar display-cntrls WX = centre = data = ps = heading-marker = limit-deg = mde-cntrl = reference-range-nm = status = tilt = trk = Simulatin distribuée dans un simulateur de vl 20/05/2009 40

Simulatin distribuée dans un simulateur de vl 20/05/2009 41 fdm jbsim acceleratins a-pilt-x-ft-sec2 = a-pilt-y-ft-sec2 = a-pilt-z-ft-sec2 = n-pilt-x-nrm = n-pilt-y-nrm = n-pilt-z-nrm = pdt-rad_sec = qdt-rad_sec = rdt-rad_sec = udt-fps = vdt-fps = wdt-fps = aer alpha-deg = alpha-max-deg = alpha-min-deg = alpha-rad = alpha-wing-rad = alphadt-deg_sec = alphadt-rad_sec = beta-deg = beta-rad = betadt-deg_sec = betadt-rad_sec = bi2vel = ci2vel = cl-squared = cefficient CDDe = CDDf = CDbeta = CD = CDwbh = CLDe = CLDf = CLadt = CLq = CLwbh = CYb = CYda =

CYdr = CYp = CYr = ClDa = Cldr = Clp = Clr = Cmadt = Cmalpha = Cmde = Cmdf = Cm = Cmq = Cnb = Cnda = Cndr = Cnp = Cnr = functin kcdge = kclge = h_b-cg-ft = h_b-mac-ft = mag-beta-deg = mag-beta-rad = qbar-area = qbar-psf = qbaruv-psf = qbaruw-psf = stall-hyst-nrm = atmsphere P-psf = P-sl-psf = T-R = T-sl-R = T-sl-dev-F = a-fps = a-rati = a-sl-fps = delta = delta-t = density-altitude = p-turb-rad_sec = psiw-rad = q-turb-rad_sec = r-turb-rad_sec = rh-sl-slugs_ft3 = rh-slugs_ft3 = sigma = theta = Simulatin distribuée dans un simulateur de vl 20/05/2009 42

Simulatin distribuée dans un simulateur de vl 20/05/2009 attitude heading-true-rad = phi-rad = pitch-rad = psi-rad = rll-rad = theta-rad = fcs advance-cmd-nrm = advance-ps-nrm = ailern-cmd-nrm = center-brake-cmd-nrm = elevatr-cmd-nrm = elevatr-cntrl = elevatr-ps-deg = elevatr-ps-rad = elevatr-psitin-nmrmalized = feather-cmd-nrm = feather-ps-nrm = flap-cmd-nrm = flap-ps-deg = flap-ps-nrm = flap-ps-rad = flap-psitin-nrmalizer = flaps-cntrl = left-ailern-cntrl = left-ailern-ps-deg = left-ailern-ps-nrm = left-ailern-ps-rad = left-ailern-psitin-nrmalized = left-brake-cmd-nrm = mag-elevatr-ps-rad = mag-left-ailern-ps-rad = mag-right-ailern-ps-rad = mag-rudder-ps-rad = mag-speedbrake-ps-rad = mag-spiler-ps-rad = mixture-cmd-nrm = mixture-ps-nrm = pitch-trim-cmd-nrm = pitch-trim-sum = right-ailern-cntrl = right-ailern-ps-deg = right-ailern-ps-nrm = right-ailern-ps-rad = right-ailern-psitin-nrmalized = right-brake-cmd-nrm = 43

rll-trim-cmd-nrm = rll-trim-sum = rudder-cmd-nrm = rudder-cntrl = rudder-ps-deg = rudder-ps-nrm = rudder-ps-rad = spiler-cmd-nrm = spiler-ps-deg = spiler-ps-nrm = spiler-ps-rad = steer-cmd-nrm = steer-ps-deg = thrttle-cmd-nrm = thrttle-ps-nrm = yaw-trim-cmd-nrm = yaw-trim-sum = flight-path gamma-rad = psi-gt-rad = frces fbx-aer-lbs = fbx-gear-lbs = fbx-ttal-lbs = fby-aer-lbs = fby-gear-lbs = fby-ttal-lbs = fbz-aer-lbs = fbz-gear-lbs = fbz-ttal-lbs = fwx-aer-lbs = fwy-aer-lbs = fwz-aer-lbs = hld-dwn = ld-nrm = gear gear-cmd-nrm = gear-ps-nrm = num-units = unit slip-angle-deg = ic alpha-deg = alpha-rad = beta-deg = beta-rad = gamma-deg = gamma-rad = Simulatin distribuée dans un simulateur de vl 20/05/2009 44

Simulatin distribuée dans un simulateur de vl 20/05/2009 h-agl-ft = h-sl-ft = lat-gc-deg = lat-gc-rad = ln-gc-deg = ln-gc-rad = mach = p-rad_sec = phi-deg = phi-rad = psi-true-deg = psi-true-rad = q-rad_sec = r-rad_sec = rc-fpm = rc-fps = sea-level-radius-ft = terrain-altitude-ft = thêta-deg = thêta-rad = u-fps = v-fps = vc-kts = ve-kts = vg-kts = vg-fps = vt-kts = vt-fps = vw-bx-fps = vw-by-fps = vw-bz-fps = vw-dir-deg = vw-dwn-fps = vw-east-fps = vw-mag-fps = vw-nrth-fps = w-fps = inertia cg-x-in = cg-y-in = cg-z-in = mass-slugs = weight-lbs = metrics Sh-sqft = Sv-sqft = Sw-sqft = 45

aer-rp-x-in = aer-rp-y-in = aer-rp-z-in = bw-ft = cbarw-ft = eyepint-x-in = eyepint-y-in = eyepint-z-in = iw-deg = lh-ft = lh-nrm = lv-ft = lv-nrm = runway-radius = vbarh-nrm = vbarv-nrm = visualrefpint-x-in = visualrefpint-y-in = visualrefpint-z-in = mments l-aer-lbsft = l-gear-lbsft = l-ttal-lbsft = m-aer-lbsft = m-gear-lbsft = m-ttal-lbsft = n-aer-lbsft = n-gear-lbsft = n-ttal-lbsft = psitin epa-rad = h-agl-ft = h-sl-ft = lat-gc-rad = lng-gc-rad = radius-t-vehicule-ft = prpulsin active_engine = engine advance-rati = blade-angle = pitch-angle-rad = thrust-cefficient = yaw-angle-rad = magnet-cmd = pt-lbs_sqft = starter_cmd = tat-c = Simulatin distribuée dans un simulateur de vl 20/05/2009 46

Simulatin distribuée dans un simulateur de vl 20/05/2009 tat-r = ttal-fuel-lbs = sim-time-sec = simulatin d_trim = terminate = systems stall-warn-nrm = velcities h-dt-fps = mach = machu = p-aer-rad_sec = p-rad_sec = phidt-rad_sec = psidt-rad_sec = q-aer-rad_sec = q-rad_sec = r-aer-rad_sec = r-rad_sec = thetadt-rad_sec = u-aer-fps = u-fps = v-aer-fps = v-dwn-fps = v-fps = v-nrth-fps = vc-fps = vc-kts = ve-fps = ve-kts = vg-fps = vt-fps = w-aer-fps = w-fps = trim ailern = pitch-trim = rudder = thrttle = trimmed = 47