Ich habe eine Frage zur Schwerkraft. Ich programmiere einen Orbit-Simulator. Ich habe alles am Laufen, aber ich möchte die Umlaufbahn des kleineren Körpers rendern (der größere Körper ist fixiert). Dazu benötige ich die parametrischen Gleichungen für die Körperposition zu einem beliebigen Zeitpunkt (d. h. ich benötige eine Und Funktion). Ich habe Zugriff auf die Position, Geschwindigkeit und Masse jedes Körpers. Ich habe keine anderen zugänglichen Variablen.
PS Hier ist ein Link zu dem, was ich bisher habe. Die Gleichungen, die derzeit zum Zeichnen der Umlaufbahn verwendet werden, sind Und .
Diese Antwort ist eine Ergänzung zu Chris Whites Antwort.
Erstens gibt es keine expliziten Gleichungen für die Position eines Objekts, das einer Kepler-Umlaufbahn folgt, als Funktion der Zeit. Wenn jedoch die Anfangsbedingungen bekannt sind, kann der Weg, dem das Objekt folgen wird, sowie die Geschwindigkeit, Beschleunigung usw. gefunden werden. an jeder beliebigen Stelle. Dieser Weg kann durch die folgende Gleichung beschrieben werden:
Aus den Anfangsbedingungen lassen sich die große Halbachse und die Exzentrizität ableiten:
Diese tangentiale Komponente der Geschwindigkeit kann mithilfe einer linearen Algebra ermittelt werden (das resultierende Äquivalent des Kreuzprodukts in 2D):
Die Position der Periapsis kann einen beliebigen Winkel relativ zum Fokus und der Achse haben, in der Sie Positionen darstellen. Sie müssen also den gefundenen Pfad um einen bestimmten Winkel versetzen/drehen, um ihn an die Anfangsbedingungen anzupassen.
Dieser Versatzwinkel von , nennen wir es , kann wie folgt berechnet werden:
Ich habe noch eine letzte Anmerkung zur Auswahl des Bereichs von , seit wann dann ist die Bahn keine Ellipse mehr, sondern eine Parabel oder Hyperbel, die sich bis ins Unendliche erstreckt. Um zu vermeiden, dass Sie versuchen, dies zu zeichnen, können Sie den Bereich einschränken . Zum Beispiel durch die Wahl eines maximalen Radius, . Die Reichweite von wird dann sein:
Es scheint, dass Sie den schwierigen Teil bereits erledigt haben, nämlich die Position des Objekts als Funktion der Zeit zu entwickeln. Außerdem scheint die Simulation über mehrere Umlaufbahnen hinweg stabil zu sein. (Aber irgendwann laufen die Dinge schief; vielleicht möchten Sie sich eine Antwort ansehen, die ich auf What is the correct way of integration in astronomy simulations geschrieben habe? )
Mein Verständnis ist also, dass alles, was Sie wirklich brauchen, die gesamte Umlaufbahn ist. In diesem Fall besteht keine Notwendigkeit, es zu einer Funktion der tatsächlichen Zeit zu machen (das ist schwierig). Stattdessen können wir auf Keplers erstes Gesetz zurückgreifen , das besagt, dass die Trennung zwischen den Körpern gehorcht
Beachten Sie, dass die Konvention für ist um den Winkel von der engsten Annäherung zu messen (d. h. ist das negative -Achse in Ihrer Simulation). Falls Sie es wollen mit der Zeit zuzunehmen, dann ist die (nicht standardmäßige) Transformation in kartesische Koordinaten
Orbital-Simulationen können mit den folgenden Beziehungen behandelt werden:
Dies kann unter Verwendung der oben angegebenen genauen Gleichungen erfolgen, ist aber nicht sehr lange numerisch stabil. Methoden höherer Ordnung wie Runge-Kutta 3/4/5 halten Ihre Stabilität für längere Zeiträume, sind aber nicht perfekt.
Wenn dies nicht die benötigten Informationen sind, lassen Sie es mich wissen und ich werde versuchen, Ihnen zu helfen, wo ich kann, aber es scheint mir, dass Sie nur Gleichung (d) in Bezug auf die anderen wissen mussten.
Brandon Enright
Conner Rühl
Brandon Enright
Conner Rühl
Kyle Kanos
David z
Conner Rühl
SOFe