Aero-matic ist eine Webanwendung, die eine HTML-Schnittstelle zum Sammeln von benutzerstechnischen Daten in einem Flugzeug verwendet und dann Konfigurationsdateien für die Verwendung mit dem JSBSIM-Flugdynamikmodell generiert. Aero-Matic versucht ein Gleichgewicht zwischen Einfachheit und Genauigkeit bei der Modellierung eines Flugzeugs. Die generierten Konfigurationsdateien führen zu einem plausiblen Flugzeugmodell und basieren nur auf wenigen Datenpunkten, die leicht aus Büchern oder Internetquellen verfügbar sein sollten.
Nehmen wir an, wir möchten ein Modell des MiG-21 machen. In diesem Fall benötigen wir zwei Konfigurationsdateien, eine AERO -Konfiguration und eine Engine -Konfiguration. Offensichtlich benötigen wir keine Propellerkonfiguration für den MIG-21.
Der erste Schritt besteht darin, die Luftfahrt in einem Browser zu öffnen. Schritt eins besteht darin, einen Motor für den MiG-21 zu definieren. Aus der Encyclopedia of World Airpower finde ich die folgenden Informationen über den von der MIG-21 verwendeten Motor. Name: Tumansky_R25, Typ: Turbine, Schub (ohne Nachbrennen): 10000 Pfund, und das Nachbrennen wird installiert, aber die Wasserinjektion ist jedoch nicht. Beachten Sie, dass der Name, den Sie für Ihre Engine ausgewählt haben, ein geeigneter Dateiname sein sollte. Verwenden Sie daher nur entsprechende Zeichen.
Wenn Sie auf die Schaltfläche "generieren" klicken, sendet Aero-matic die Informationen an Engine2.PHP , wodurch einige Berechnungen durchgeführt werden und die Ergebnisse an Sie zurücksenden. Die Ergebnisse sehen wie Müll aus, da die Konfigurationsdatei in einem Browserfenster nicht gut aussehen sollte. Wenn Sie die Dokumentquelle anzeigen, sehen Sie die Datei so, wie sie wirklich ist. Speichern Sie diese Datei mit dem Dateinamen Tumansky_R25.xml und platzieren Sie sie mit allen anderen Motoren in das $FGROOT/Engine .
Überspringen Sie das Propellerformular und füllen Sie das Aero -Formular aus. Sie müssen zuerst ein Einheitensystem, entweder Englisch oder Metrik, auswählen. Sie können keine Einheiten mischen! Nun für die Flugzeugdaten. Für die MiG-21 habe ich die folgenden Daten. Name: MiG21, Typ: Einmotor -Kämpfer, maximales Startgewicht: 22.000 Pfund, Spannweite: 23,5 Fuß, Länge: 51,75 Fuß, Flügelbereich: 247 Quadratfuß, Dreiradfahrwerk (dh der dritte Rad befindet sich vor den Haupträdern), ein Motor, Motortyp: Turbine, Motorlayout: Acht Fuselage. Meine Quelle sagt nicht, ob der MiG-21 einen Gierdämpfer hatte, aber da es sich um einen Hochleistungsjet handelt, gehe ich davon aus, dass er einen braucht.
Klicken Sie nun auf "Generieren" und die Daten werden an Aero2.PHP gesendet, wodurch einige Berechnungen durchgeführt werden und die Konfigurationsdatei an Sie zurückgegeben werden. Wie bei der vorherigen Konfigurationsdatei sieht es in Ihrem Browserfenster wie Müll aus, sieht jedoch ordnungsgemäß aus, wenn Sie die Dokumentquelle anzeigen. Speichern Sie diese Datei als Mig21.xml und platzieren Sie sie in einen $FGROOT/Aircraft/Mig21 -Ordner. Sie müssen nun die Datei in einem Texteditor öffnen und Änderungen vornehmen. Im Antriebsabschnitt der Aero -Datei finden Sie einen Verweis auf den Dateinamen Ihres Motors Mig21_engine . Bearbeiten Sie diesen Namen, um Tumansky_R25 zu lesen. Ihr MiG-21 wird jetzt mit einem korrekten Motor abgestimmt.
Wenn Sie ein Flugzeug mit mehrsenkendem Flugzeug modellieren, müssen Sie die obige Änderung für jeden Motor vornehmen. Wenn Sie ein propellergesteuertes Flugzeug modellieren, müssen Sie auch den Namen des Thruster-Dateins ändern, um den Dateinamen der Propeller-Konfigurationsdatei widerzuspiegeln. Dies muss für jeden Propeller erfolgen.
NOTIZ!! Beachten Sie, dass einige Browser so konfiguriert werden können, dass sie HTML -Tags hinzufügen und andere Änderungen an Dateien vornehmen können, ohne es Ihnen zu sagen. Dies wird verhindern, dass Aero-Matic funktioniert! Einige Browser laden auch die aktuelle Seite neu, wenn die Dokumentquelle angezeigt wird. Dies kann zu einem schlechten Dokument führen. Achten Sie auch auf Browser, die zwischen zwischengespeicherten Seiten und nicht auf neue abgerufen werden.
Engine.php erstellt eine Konfigurationsdatei für die JSBSIM -Motormodule gemäß der folgenden Tabelle:
| Motortyp | JSBSIM -Modul |
|---|---|
| Kolben | Fgpiston |
| Turbine | FGTurbine |
| Turboprop | FGTurbine |
| Rakete | FGROCKET |
Die Benutzereingaben werden zuerst in englische Einheiten konvertiert. Der Header wird dann gedruckt und Benutzereingaben werden als Kommentare wiedergegeben. Jetzt druckt engine2.php Daten, die für den Motortyp spezifisch sind. Die einzige Berechnung, die für den Kolbenmotor durchgeführt wurde, ist die Verschiebung, die auf einem angenommenen 0,625 PS pro Kubikzoll basiert. Alle anderen Kolbenmotorenwerte sind "typisch".
Der Turbinenmotor ist mit einem angenommenen Bypass -Verhältnis von 1,0 und einem TSFC von 0,8 modelliert. Andere Daten, die vom Modul benötigt werden, sind mit "typischen" Werten gefüllt. Afterburning und Wassereinspritzung sind aktiviert, wenn dies ausgewählt wird.
Der Turboprop -Motor wird als Turbine mit einem Bypass -Verhältnis von 0 und einem TSFC von 0,55 modelliert. Der maximale Leistungswert wird unter Verwendung der groben Näherung in einen maximalen Schubwert umgewandelt, bei dem 1 PS 2,24 Pfund Schubschub entspricht. Der Schub wird dann auf hohe Geschwindigkeiten gesetzt, wodurch ein Propeller simuliert wird.
Der Raketenmotor ist der X-15-Motor von Jon Berndt.
Prop.php konvertiert zuerst die Benutzereingabe in englische Einheiten und spiegelt dann die Eingabe als Kommentare an. Der Propeller wird modelliert, indem zuerst die gesamten "linearen Klingen Zoll", dh die Summe aller Klingenlängen, geschätzt werden, um die Leistung des Motors zu absorbieren. Ich verwende das 5,3-fache der Quadratwurzel der Leistung, eine Formel, die nur auf Kurvenanpassung einer Probe von Motor-/Prop-Kombinationen basiert. Keine Wissenschaft hier. Die Anzahl der Klingen wird unter Verwendung der folgenden Tabelle geschätzt:
| Motorleistung | Anzahl der Klingen |
|---|---|
| <400 | 2 |
| 400 < - <1400 | 3 |
| 1400+ | 4 |
Die Masse jeder Klinge wird auf 0,9317 Schnecken pro Fuß geschätzt. Der Rest der Werte ist "typisch".
Aero.php konvertiert zuerst die Benutzereingabe in englische Einheiten. Die erste Berechnung besteht darin, die Belastung der Flügel mit maximalem Gewicht basierend auf dem Flugzeugtyp gemäß diesem Diagramm zu schätzen:
| Flugzeugtyp | Flügelbelastung (PSF) |
|---|---|
| Segelflugzeug | 7 |
| Leichte Single | 14 |
| Leichtes Zwilling | 29 |
| Kämpfer des Zweiten Weltkriegs, Rennfahrer, Luftfahrt | 45 |
| Einzelner Motor transonisch/Überschallkämpfer | 95 |
| Zwei Motor transonic/Supersonic Fighter | 100 |
| Zwei Motortransonic Transport | 110 |
| Drei transonische Motortransport | 110 |
| Vier+ Motortransonic Transport | 110 |
| Multi-Engine-Stütztransport | 57 |
Wenn der Benutzer keinen Flügelbereich geliefert hat, werden die Flügelbelastung und das maximale Gewicht verwendet, um eine zu schätzen. Wenn der Benutzer einen Flügelbereich liefert , wird die tatsächliche Flügelbelastung berechnet und anstelle des kartierten Werts verwendet.
Sobald das Flügelbereich festgelegt wurde, wird es durch die Flügelspanne geteilt, um den mittleren aerodynamischen Akkord zu ergeben. Die Bereiche der Schwanzoberflächen werden durch Multiplikation der Flügelfläche mit einem Faktor abhängig von Flugzeugtypen geschätzt. Die Momentarme der Schwanzoberflächen werden ähnlich aus der Flugzeuglänge und -art geschätzt.
Die Trägheitsmomente des Flugzeugs über drei Achsen werden unter Verwendung von Roskams Formeln und Konstanten für verschiedene Flugzeugtypen geschätzt. Gegenwärtig erhöhe ich die Momente um 50%, um einen Mangel an Gefühl im Kontrollstock auszugleichen.
Das ZFW des Luftraums, Null-Brennstoff-Gewicht, wird durch Multply des maximalen Gewichts mit einem Faktor gemäß dem Flugzeugtyp geschätzt. Dieser Wert wird in der JSBSIM -Konfiguration als "leeres Gewicht" bezeichnet.
Als nächstes wird der Schwerpunkt des Flugzeugs, CG, geschätzt. Die Längsschnittstelle (X -Achse) wurde bereits angenommen, wenn der horizontale Stabilisierermomentarm geschätzt wurde, sodass dieser Abstand verwendet wird, um die Längsrichtung des CG in Zoll von der Nase aus der Nase zu erhalten. Der CG befindet sich an der Schnittstelle der X- und Y -Achsen unter der Annahme, dass das Flugzeug seitlich symetric ist, sodass der y -Ort Null ist. Ich habe den vertikalen (z) -Port der CG etwas unter die Mittellinie eingestellt. Die Lage des aerodynamischen Zentrums ist der Einfachheit halber der gleiche wie der CG, außer dass es etwas über dem CG ist, um die Stabilität zu unterstützen.
Der Ort des Piloten -Okulars wird dann auf der Grundlage des Flugzeugtyps geschätzt.
Der Standort des Fahrwerks basiert auf dem CG -Standort. Dreiradräder sind leicht hinter dem CG gelegt und die Haupträder der Taildragger leicht vorne. Die laterale Ausbreitung des Hauptgetriebes ist eine Funktion der Flügelspanne und des Flugzeugtyps. Die Z-Position des Hauptrads basiert auf der Länge des Flugzeugs. Dies ist die Entfernung in Zentimeter von der Mittellinie bis zum Boden des Reifens, wenn das Zahnrad verlängert und frei hängt. Beachten Sie, dass der Segelflugzeug ein Problem darstellt, in dem JSBSIM derzeit drei Bodenkontaktpunkte unterstützt, während ein Segelflugzeug fünf benötigt (Hauptrad, Nasenriss, Heckrad und zwei Flügelspitze). Die Orte der Nasen- oder Schwanzräder werden aus der Flugzeuglänge und der Position des Hauptgetriebes geschätzt.
Die Motoren und Triebwerke sind gemäß dem benutzerdefinierten Motorlayout und einigen Annahmen zum Abstand und Standort des Motors positioniert. Es gibt N+1-Kraftstofftanks für ein N-Engined-Flugzeug. Alle Kraftstofftanks befinden sich im Flugzeugzentrum und enthalten 500 Pfund Kraftstoff.
Das FCS, das Flugsteuerungssystem, ist für jedes Flugzeug mit Ausnahme des Gierdämpfers, der nur vom Benutzer gewünscht wird.
Die Auftriebskraft basiert auf einer Lift-VS-Alpha-Kurve aus vier Punkten unter Verwendung der angenommenen Cl_0, Cl_alpha und Cl_max für den Flugzeugtyp. Zusätzlicher Auftrieb aufgrund von Klappen wird auf der Grundlage des Flugzeugtyps geschätzt. Einige Typen haben aufgrund von SpeedBrakes (oder Spoilern) einen Auftriebsabbruch. Alle Typen haben einen Aufzugsbeitrag aufgrund der Aufzugsablenkung, basierend auf dem Flugzeugtyp.
Die Luftwiderstandskraft besteht aus CD0 (Ziehen bei Nullgehalt), CDI (induzierter Widerstand), CDMACH (Ziehen aufgrund der Kompressibilität), CDFlap, CDGear, CDSB (SpeedBrakes), Cdbeta (Drag aufgrund des Seitenschlupfes) und CDDE (Drag aufgrund der Ablenkung des Aufzugs).
Die einzige Nebenkraft ist die Kraft aufgrund des Gierwinkels (Seitenschleife).
Die verwendeten Rollmomente sind Clbeta (Rollen aufgrund von Seitenschleifungen), CLP (Rolldämpfung), CLR (Rollen aufgrund von Gierrate), CLDA (Rollen aufgrund von Quersträgern) und CLDR (Rollen aufgrund der Ruderablenkung).
Die verwendeten Pitch-Momente sind Cmalpha (Tonhöhe aufgrund von Angriffswinkel), CMDE (Tonhöhe aufgrund der Aufzugsablenkung), CMQ (Tonhöhe aufgrund der Tonhöhenrate) und Cmadot (Tonhöhe aufgrund der Alpha-Rate).
Yaw -Momente sind CNBeta (Gier aufgrund von Seitenschleifungen), CNR (Gierdämpfung), CNDR (Gier aufgrund der Ruderablenkung) und CNDA (unerwünschter Gier).
Dies basiert auf der ursprünglichen PHP -Anwendung von David P. Culp und wurde von Bertrand Coconnier auf HTML/CSS/JavaScript portiert.