Aero-Matic est une application Web qui utilise une interface HTML pour collecter des données soumises par l'utilisateur dans un avion, puis génère des fichiers de configuration à utiliser avec le modèle de dynamique de vol JSBSIM. Aero-Matic essaie de trouver un équilibre entre la simplicité et la précision lors de la modélisation d'un avion. Les fichiers de configuration générés se traduiront par un modèle d'avion plausible et ne sont basés que sur quelques points de données qui devraient être facilement disponibles à partir de livres ou de sources Internet.
Supposons que nous voulons faire un modèle du MIG-21. Dans ce cas, nous aurons besoin de deux fichiers de configuration, d'une configuration Aero et d'une configuration de moteur . De toute évidence, nous n'aurons pas besoin d'une configuration d'hélice pour le MIG-21.
La première étape consiste à ouvrir un aéromatique dans un navigateur. La première étape consiste à définir un moteur pour le MIG-21. De l'encyclopédie de la puissance aérienne mondiale, je trouve les informations suivantes sur le moteur utilisé par le MiG-21. Nom: tumansky_r25, type: turbine, poussée (sans brûlure): 10000 lb, et la récupération est installée, mais l'injection de l'eau ne l'est pas. Notez que le nom que vous avez choisi pour votre moteur doit être un nom de fichier approprié, alors utilisez uniquement les caractères appropriés.
Lorsque vous cliquez sur le bouton "Générer", Aero-Matic enverra les informations à moteur2.php , qui fera quelques calculs et vous renverra les résultats. Les résultats ressembleront à des ordures car le fichier de configuration n'était pas destiné à être beau dans une fenêtre de navigateur. Si vous affichez la source de document, vous verrez le fichier tel qu'il est vraiment. Enregistrez ce fichier avec le nom de fichier Tumansky_R25.xml et placez-le dans le répertoire $FGROOT/Engine avec tous les autres moteurs.
Évitez le formulaire d'hélice et remplissez la forme aérodynamique. Vous devez d'abord sélectionner un système d'unités, en anglais ou en métrique. Vous ne pouvez pas mélanger des unités! Maintenant pour les données de l'avion. Pour le MIG-21, j'ai les données suivantes. Nom: MIG21, Type: Fighter à moteur unique, Poids de décollage maximal: 22 000 lb, portée: 23,5 pieds, longueur: 51,75 pieds, aire d'aile: 247 pieds carrés, train d'atterrissage du tricycle (ce qui signifie que la troisième roue est devant les roues principales), un moteur, le type de moteur: turbine, mise entente du moteur: Fonlage arrière. Ma source ne dit pas si le MIG-21 avait un amortisseur de lacet, mais comme c'est un jet haute performance, je suppose qu'il en aura besoin.
Cliquez maintenant sur "Générer" et les données seront envoyées à Aero2.php , qui feront des calculs et vous renverra le fichier de configuration. Comme pour le fichier de configuration précédent, il ressemblera à des ordures dans la fenêtre de votre navigateur, mais ressemblera correctement si vous affichez la source de document. Enregistrez ce fichier en tant que Mig21.xml et placez-le dans un dossier $FGROOT/Aircraft/Mig21 . Vous devrez maintenant ouvrir le fichier dans un éditeur de texte et apporter un changement. Dans la section de propulsion du fichier aéro, vous trouverez une référence au nom de fichier de votre moteur, Mig21_engine . Modifiez ce nom pour lire Tumansky_R25 . Votre MIG-21 sera désormais associé à un moteur correct.
Si vous modélisez un avion à moteur multiple, vous devez effectuer le changement ci-dessus pour chaque moteur. Si vous modélisez un avion basé sur l'hélice, vous devez également modifier le nom du fichier de propulseur pour refléter le nom de fichier du fichier de configuration de l'hélice. Cela doit être fait pour chaque hélice.
NOTE!! Sachez que certains navigateurs peuvent être configurés pour ajouter des balises HTML et apporter d'autres modifications aux fichiers sans vous le dire. Cela empêchera Aero-Matic de fonctionner! De plus, certains navigateurs rechargeront la page actuelle lors de l'affichage de la source de document. Cela peut entraîner un mauvais document. Faites également attention aux navigateurs qui sont définis pour récupérer des pages mises en cache plutôt que de nouvelles.
Moteur.php crée un fichier de configuration pour les modules de moteur JSBSIM selon le tableau suivant:
| Type de moteur | Module JSBSIM |
|---|---|
| Piston | Fgpiston |
| Turbine | Fgtibine |
| Turbopropulseur | Fgtibine |
| Fusée | Fgrockier |
Les entrées de l'utilisateur sont d'abord converties en unités anglaises. L'en-tête est ensuite imprimé et les entrées des utilisateurs sont reproduites en tant que commentaires. MAINTENANT engine2.php imprime des données spécifiques au type de moteur. Le seul calcul effectué pour le moteur de piston est le déplacement, qui est basé sur un pouce de 0,625 ch par cube. Toutes les autres valeurs de moteur de piston sont "typiques".
Le moteur de turbine est modélisé avec un rapport de dérivation supposé de 1,0 et un TSFC de 0,8. Les autres données nécessaires au module sont remplies de valeurs «typiques». Les brûlures et l'injection d'eau sont activées si elles sont sélectionnées.
Le moteur à turbopropulse est modélisé comme une turbine avec un rapport de dérivation de 0 et un TSFC de 0,55. La valeur de puissance maximale est convertie en une valeur de poussée maximale en utilisant l'approximation approximative que 1 HP est égal à 2,24 livres de poussée. La poussée devrait ensuite diminuer à des vitesses élevées, simulant ainsi une hélice.
Le moteur à fusée est le moteur X-15 de Jon Berndt.
Prop.php convertit d'abord la saisie des utilisateurs en unités anglaises, puis fait écho à l'entrée en tant que commentaires. L'hélice est modélisée par la première estimation des "pouces de lame linéaires" totaux, à savoir la somme de toutes les longueurs de lame, nécessaires pour absorber la puissance du moteur. J'utilise 5,3 fois la racine carrée de la puissance, une formule basée uniquement sur la courbe d'un échantillon de combinaisons moteur / accessoire. Pas de science ici. Le nombre de lames est estimé à l'aide du tableau suivant:
| Puissance en moteur | Nombre de lames |
|---|---|
| <400 | 2 |
| 400 <- <1400 | 3 |
| 1400+ | 4 |
La masse de chaque lame est estimée à 0,9317 limaces par pied. Les autres valeurs sont "typiques".
Aero.php convertit d'abord la saisie des utilisateurs en unités anglaises. Le premier calcul consiste à estimer la charge des ailes à un poids maximum en fonction du type d'avion selon ce graphique:
| Type d'avion | Chargement des ailes (PSF) |
|---|---|
| Planeur | 7 |
| Léger seul | 14 |
| Jumeau léger | 29 |
| Fighter de la Seconde Guerre mondiale, coureur, aérobatique | 45 |
| Fighter transonique / supersonique unique | 95 |
| Deux chasseurs transoniques / supersoniques du moteur | 100 |
| Deux transports transoniques du moteur | 110 |
| Trois transport transonique du moteur | 110 |
| Four + Transonic de moteur | 110 |
| Transport des accessoires multi-moteurs | 57 |
Si l'utilisateur n'a pas fourni de zone d'aile, le chargement de l'aile et le poids maximal sont utilisés pour en estimer un. Si l'utilisateur fournit une zone d'aile, la charge d'aile réelle est calculée et est utilisée au lieu de la valeur graphique.
Une fois la zone d'aile établie, il est divisé par une portée des ailes pour donner la corde aérodynamique moyenne. Les zones des surfaces de queue sont estimées en multipliant la zone des ailes par un facteur en fonction du type d'avion. Les bras du moment des surfaces de queue sont également estimés à partir de la longueur et du type de l'avion.
Les moments d'inertie de l'avion environ trois axes sont estimés à l'aide de formules et de constantes de Roskam pour divers types d'avion. Actuellement, j'augmente les moments de 50% pour compenser un manque de sensation dans le bâton de contrôle.
Le ZFW du Aircaft, le poids zéro-combustible, est estimé en multipliant le poids maximum d'un facteur selon le type d'avion. Cette valeur est nommée "poids vide" dans la configuration JSBSIM.
Ensuite, le centre de gravité de l'avion, CG, l'emplacement est estimé. L'emplacement longitudinal (axe x) était déjà supposé lorsque le bras de moment horizontal de stablage a été estimé, de sorte que cette distance est utilisée pour obtenir l'emplacement longitudinal du CG du nez, en pouces. Le CG est situé sur l'intersection des axes x et y, sous la supposition que l'avion est symétrique latéralement, de sorte que l'emplacement Y est nul. J'ai mis l'emplacement vertical (z) du CG un peu en dessous de la ligne centrale. L'emplacement du centre aérodynamique est, pour la simplicité, le même que le CG, sauf qu'il est un peu au-dessus du CG pour aider à la stabilité.
L'emplacement du oeil du pilote est ensuite estimé en fonction du type d'avion.
L'emplacement du train d'atterrissage est basé sur l'emplacement CG. Les roues principales du tricycle sont légèrement placées derrière le CG et les roues principales de Taildragger légèrement en avant. La propagation latérale de l'engrenage principal est fonction de la portée des ailes et du type d'avion. La position Z de l'équipement principal est basée sur la longueur de l'avion. Il s'agit de la distance en pouces de la ligne médiane au bas du pneu lorsque l'engrenage est prolongé et suspendu librement. Notez que le planeur présente un problème dans la mesure où JSBSIM prend actuellement en charge trois points de contact au sol, tandis qu'un planeur a besoin de cinq (roue principale, dérapage du nez, roue arrière et délices à deux ailes). Les emplacements du nez ou des roues de queue sont estimés à partir de la longueur de l'avion et de l'emplacement de l'engrenage principal.
Les moteurs et les propulseurs sont positionnés en fonction de la disposition du moteur sélectionné par l'utilisateur, et certaines hypothèses sur l'espacement et l'emplacement du moteur. Il existe des réservoirs de carburant N + 1 pour un avion à moteur N. Tous les réservoirs de carburant sont situés dans le centre de gravité de l'avion et contiennent 500 livres de carburant.
Le FCS, le système de commande de vol, est le même pour chaque avion, à l'exception de l'amortisseur de lacet, qui n'est ajouté que si vous le souhaitez par l'utilisateur.
La force de levage est basée sur une courbe Lift-VS-Alpha en quatre points, en utilisant le CL_0, CL_ALPHA supposé et CL_MAX pour le type d'avion. Un ascenseur supplémentaire dû aux volets est estimé en fonction du type d'avion. Certains types auront une diminution de l'ascenseur en raison des braises de vitesse (ou des spoilers). Tous les types ont une contribution de levage en raison de la déviation de l'ascenseur, en fonction du type d'avion.
La force de traînée se compose de CD0 (traînée à zéro-lift), de CDI (traînée induite), de CDMACH (traînée en raison de la compressibilité), de CDFLAP, de CdGear, de CDSB (Speedbrakes), de CDBETA (traînée en raison du glissement latéral) et de CDDE (traînée en raison de la déflexion de l'élévation).
La seule force latérale utilisée est la force due à l'angle de lacet (glissement latéral).
Les moments de rouleau utilisés sont CLBETA (rouleau dû à la glissière latérale), CLP (amortissement de rouleau), CLR (rouleau dû au taux de lacet), CLDA (rouleau dû aux ailerons) et CLDR (rouleau dû à la déviation du gouvernail).
Les moments de hauteur utilisés sont le CMALPHA (tangage en raison de l'angle d'attaque), CMDE (pas dû à la déviation de l'ascenseur), CMQ (tangage dû au taux de tangage) et CMADOT (pas dû au taux alpha).
Les moments de lacet sont le CNBETA (lacet en raison de la glissière latéral), du CNR (amortissement de lacet), du CNDR (YAW en raison de la déviation du gouvernail) et du CNDA (lacet défavorable).
Ceci est basé sur l'application PHP originale de David P. Culp et a été porté sur HTML / CSS / JavaScript de Bertrand Coconnier.