In gewissem Kontext bin ich Spieleentwickler und baue ein Flugsimulationsspiel. Mein Ziel ist eine realistische Flugphysik – keine Arcade-Physik.
Ich habe Probleme mit der Mathematik - es verhält sich nicht so, wie ich es von einem Flugzeug erwarten würde. Denken Sie daran, ich bin kein Aerodynamiker!
Ich verwende einen konstanten Schub, der nach vorne gerichtet ist (lokal), eine konstante Gewichtskraft, die nach unten gerichtet ist (Welt), einen mit den folgenden Gleichungen berechneten Auftrieb, der senkrecht zur Geschwindigkeit gerichtet ist, und einen Widerstand, der entgegengesetzt zur Geschwindigkeit gerichtet ist. Ich habe auch eine Abwärtskraft, die von den Aufzügen bereitgestellt wird.
Mein Flugzeug basiert lose auf einem A320 und verwendet eine Vielzahl von Zahlen, die online zu finden sind. Die Masse beträgt 72.000 kg, die Flügelspannweite beträgt etwa 35 m, die Flügelfläche etwa 122 m, der Triebwerksschub beträgt jeweils 110.000 N.
wird mit einer Tabelle gegen Anstellwinkel abgeschätzt, wo , , usw.
wird geschätzt, wo , , Und , als:
Wenn das Flugzeug beschleunigt, hebt es erst bei etwa 300 Knoten vom Boden ab. Wenn es dies tut, fällt es kurzzeitig wieder nach unten, prallt von der Landebahn ab und steigt dann schnell auf.
Die Höhenruderkräfte sind eindeutig falsch. Zuvor habe ich nur einen einfachen Schieberegler verwendet, mit dem ich manuell eine Kraft zwischen -300.000 N und 300.000 N für den Aufzug ausgewählt habe. Ich habe dann versucht, die Auftriebsgleichung mit einer Schätzung der Flügelgröße und -fläche zu verwenden, aber die Kraft war viel zu stark. Es erzeugte zu viel Drehmoment und das Flugzeug drehte sich fast auf der Stelle. Ich war mir auch nicht sicher, wie ich die Auftriebsgleichung mit Benutzereingaben steuern sollte.
Die Bremskraft funktioniert auch nicht richtig. Selbst wenn ich den Schub auf Null reduziere, ist die erzeugte Widerstandskraft so winzig, dass es ewig dauern würde, das Flugzeug abzubremsen.
Dies ist ein Screenshot meines Flugzeugs auf der Landebahn. Zum Zeitpunkt der Aufnahme des Screenshots flog das Flugzeug mit 212 Knoten, erzeugte einen Auftrieb von 444.000 N und einen Luftwiderstand von 16.000 N. Das blaue Quadrat repräsentiert die resultierende Kraft.
Wenn Unity Kräfte für Sie handhabt, müssen Sie jede Kraft an dem Punkt auf der Ebene anwenden, an dem sie erzeugt wird. Wenden Sie beispielsweise für Ihre Flügel die Auftriebskraft jedes Flügels am Massenmittelpunkt dieses Flügels an. Wenden Sie die Kraft nicht im Massenmittelpunkt des gesamten Flugzeugs an. Denn nur so kann Unity das richtige Drehmoment berechnen.
Ein Spiel, das bei einer solchen Simulation gute Arbeit leistet, ist das Kerbal Space Program. Ich schlage vor, Sie lesen dieses Tutorial zum Flugzeugdesign für dieses Spiel. Grundsätzlich muss der Auftriebsschwerpunkt (CoL) über dem Massenschwerpunkt (CoM) liegen. Wenn Sie bewegliche Steuerflächen in Ihrem Flugzeug haben, sollten diese so platziert werden, dass sich das CoL aus Stabilitätsgründen leicht hinter dem CoM befindet, aber das CoL sich leicht vor das CoM bewegt, wenn Sie die Steuerflächen bewegen. Das Flugzeug hebt dann nur beim Hochziehen ab.
Um den CoL zu berechnen, müssen Sie die Summe aller Auftriebskräfte am Körper nehmen und dann den Punkt relativ zum CoM berechnen, an dem die gesamte Auftriebskraft das gleiche Drehmoment erzeugen würde wie alle Auftriebskräfte zusammen. Sie können aber auch einfach mit der Position Ihrer Flügel herumspielen, bis Sie ein stabiles Flugzeug erhalten.
Ich habe diese Gleichungen gefunden:
Wo: Schubkraft
Rollwiderstand Kraft
Luftwiderstandskraft
Auftriebskraft
Flügelfläche
Aus Gleichung (2)
so für wir bekommen:
aus Gleichung (1) erhält man:
nach einigem Rechnen und mit du erhältst:
Das Flugzeug kann nur abheben, wenn
Die Startstrecke beträgt:
Für Airbus A340 mit:
600 [kN]
275 [t]
du erhältst:
Und
Es ist nicht klar, wie Sie die Drehung des Flugzeugs um die horizontale Querachse berücksichtigen. Wenn beispielsweise das Flugzeug abhebt, ist der Schub nicht mehr horizontal gerichtet. Sie sollten die Angriffspunkte der Kräfte berücksichtigen: Der Auftrieb wirkt hauptsächlich auf die Flügel, das Gewicht auf den Massenmittelpunkt usw.
Dies wird viel mehr als zwei Gleichungen erfordern. Wenn ich dieses Problem programmieren würde, würde ich mit einem Freikörperdiagramm des Flugzeugs beginnen und alle darauf wirkenden Kräfte zeichnen. Die Referenzebene (anstelle des Referenzrahmens) wäre ebener Boden. Kräfte müssten relativ zu dieser Ebene in horizontale und vertikale Komponenten zerlegt werden.
Außerdem würde ich den Schwerpunkt bestimmen und anhand der ermittelten Kräfte das Drehmoment des Flugzeugs um die drei bekannten Rotationsachsen bestimmen. Die Rotationsrate würde vom Trägheitsmoment des Flugzeugs in jeder dieser Achsen abhängen, was möglicherweise nicht so einfach zu erreichen ist, da das Flugzeug keine "bequeme" Form hat und seine Gewichtsverteilung um diese Achsen möglicherweise nicht ideal ist . Darüber hinaus wird mit der Drehung ein Widerstand verbunden sein, und Sie haben einen anderen Widerstandskoeffizienten, der jeder Rotationsachse zugeordnet ist.
Dies ist KEIN einfaches Problem. Es kann besser sein, nach dem realistischsten Arcade-Physikbeispiel zu suchen, das Sie finden können, einige Nachforschungen zu diesem Beispiel anzustellen und eine Lösung zu implementieren, die Ihr spezielles Flugzeug basierend auf diesem Beispiel verwendet.
Thomas Fritsch
\rho
).Herr Matt
Azzinoth
Herr Matt
Azzinoth
BowlOfRed
Herr Matt
BowlOfRed
John Alexiou
Herr Matt
John Alexiou
John Alexiou