Verwendung von 2D-Position, -Geschwindigkeit und -Masse zur Bestimmung der parametrischen Positionsgleichungen für einen umlaufenden Körper

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 X ( T ) Und j ( T ) 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 X ( T ) = X + v X T Und j ( T ) = j + v j T .

Diese Frage scheint nicht zum Thema zu gehören, da es um die Programmierung von Simulationen und nicht um ein physikalisches Konzept geht.
Es ist ein bisschen eine Grauzone, aber die Frage ist an sich physikalisch verwandt. Es geht nicht ums Programmieren, sondern darum, parametrische Gleichungen für die Umlaufbahn eines Körpers unter Verwendung bekannter Variablen zu finden.
Hallo Conner, Sie könnten simulieren, dass ein zentraler Körper fixiert ist, aber Ihre Simulation wird nicht genau sein oder die Gleichungen werden ziemlich kompliziert sein. Siehe physical.stackexchange.com/questions/98011/…
Es gibt keine soliden Informationen in diesem Thread. Wollen Sie damit sagen, dass es keine Methode gibt, die mir zur Verfügung stehenden Informationen zu nehmen und eine Reihe von Positionsgleichungen zu entwickeln (vielleicht Integration)?
@BrandonEnright Ich stimme Conner hier zu, dass dies eher Physik in einem Programmierkontext als eine tatsächliche Programmierfrage ist und dass es hier um ein Thema geht.
Keiner dieser Threads enthält relevante Informationen. Ich suche die Entwicklung parametrischer elliptischer Bewegungsgleichungen. Diese Links enthalten keine solchen Informationen.
Link ist ausgefallen. Irgendwelche Archive?

Antworten (3)

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:

R = A ( 1 e 2 ) 1 + e cos θ
Wo R ist der Abstand zwischen dem (kleinen) Objekt und dem Fokus der Umlaufbahn (der gleich der Position des großen festen Objekts oder dem Massenmittelpunkt der beiden ist, wenn das zweite Objekt nicht fest ist), A ist die große Halbachse, e ist die Exzentrizität und θ ist die wahre Anomalie (der Winkel zwischen der Objektposition, dem Fokus und der Position des Objekts bei der größten Annäherung/Periapsis).

Aus den Anfangsbedingungen lassen sich die große Halbachse und die Exzentrizität ableiten:

A = μ R 2 μ R v 2
e = 1 + R v θ 2 μ ( R v 2 μ 2 )
Wo μ ist der Gravitationsparameter des großen festen Objekts ( μ = G M ), v ist die Geschwindigkeit des Objekts und v R ist die Tangentialkomponente der Geschwindigkeit.

Diese tangentiale Komponente der Geschwindigkeit kann mithilfe einer linearen Algebra ermittelt werden (das resultierende Äquivalent des Kreuzprodukts in 2D):

v θ = X v j j v X X 2 + j 2

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:

Δ θ = S ich G N ( v θ v R ) cos 1 ( A ( 1 e 2 ) X 2 + j 2 e X 2 + j 2 ) A T A N 2 ( j , X )
wo die Funktion S ich G N ( X ) bezieht sich darauf, ob X positiv oder negativ ist ( X | X | ) Und v R ist die Radialgeschwindigkeit, die gefunden werden kann durch:
v R = X v X + j v j X 2 + j 2
Dieser Versatzwinkel wird so gewählt, dass die resultierende Bahn definiert ist durch:
X P A T H = R ( θ ) cos ( θ + Δ θ )
j P A T H = R ( θ ) Sünde ( θ + Δ θ )

Ich habe noch eine letzte Anmerkung zur Auswahl des Bereichs von θ , seit wann e 1 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, R M A X . Die Reichweite von θ wird dann sein:

θ M A X = R e A l ( cos 1 ( A ( 1 e 2 ) R M A X e R M A X ) )
θ [ θ M A X , θ M A X ]

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 R zwischen den Körpern gehorcht

R = R M A X ( 1 e ) 1 + e cos ( θ ) .
R M A X ist die maximale Trennung, die meiner Meinung nach die anfängliche Trennung in Ihrer speziellen Simulation ist. Die Exzentrizität e (Formel hier ) ist gegeben durch
e 2 = 1 + 2 E R 4 θ ˙ 2 G 2 M 2 M ,
Wo E ist die Orbitalenergie, G ist die Gravitationskonstante , M ist die Masse, die so schwer ist, dass sie sich im Wesentlichen nicht bewegt, und M ist die leichtere Masse. Dies kann bequemer umgeschrieben werden
e 2 = 1 + 2 ( R v G M ) 2 ( v 2 2 G M R ) ,
Wo v ist die Geschwindigkeit des sich bewegenden Teilchens.

Beachten Sie, dass die Konvention für ist θ um den Winkel von der engsten Annäherung zu messen (d. h. θ = 0 ist das negative j -Achse in Ihrer Simulation). Falls Sie es wollen θ mit der Zeit zuzunehmen, dann ist die (nicht standardmäßige) Transformation in kartesische Koordinaten

X = R Sünde ( θ ) j = R cos ( θ ) ,
vorausgesetzt R = 0 entspricht dem massiven Objekt. In jedem Fall müssen Sie zum Zeichnen der Umlaufbahn nur die Konstante berechnen e an einem Punkt in der Umlaufbahn, Probe θ Berechnen Sie mit beliebig vielen Punkten die Abstände R ( θ ) , und konvertieren Sie die ( R , θ ) Paare zu ( X , j ) .

Ihre dritte Gleichung ist nur bei Periapsis, Apoapsis oder in einer kreisförmigen Umlaufbahn korrekt. Die erste Geschwindigkeitstherme sollte nämlich die Radialgeschwindigkeit sein. Und Sie müssen auch bedenken, dass die Ellipse möglicherweise gedreht wird. Wird eine Antwort veröffentlichen, um diese Dinge ebenfalls anzusprechen.
Ich meinte tangential statt radial.

Orbital-Simulationen können mit den folgenden Beziehungen behandelt werden:

(A) F = M A = M D 2 X D T 2 (B) v = D X D T (C) A = D v D T
Die auf zwei beliebige Körper wirkende Kraft, Masse M Und M ist durch das Newtonsche Gravitationsgesetz gegeben
(D) F = G M M R 2 R ^ = G M M R 3 ( X X ^ + j j ^ )
mit R = X 2 + j 2 . Dann lautet der Algorithmus also:

  1. Berechnen F aus X
  2. Bestimmen Sie die neue Geschwindigkeit v über v N + 1 = v N + A D T
  3. Bestimmen Sie die neue Position X über X N + 1 = X N + v D T
  4. Gehen Sie zurück zu Schritt 1.

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.

Die Frage bezieht sich nicht auf die Simulation, sondern auf den Weg, den das Objekt zurücklegen wird.