Orbitalposition nach Geschwindigkeitsänderung bestimmen

Ich arbeite an einem Satellitensimulator für ein Projekt/Spiel und stecke bei diesem einen bisschen Physik fest. Bisher habe ich einen Satelliten, der sich auf einer 2D-Ebene um die Erde dreht und der Keplerschen Bewegung unter Verwendung der Kepler-Gleichung folgt. Alles ist in Ordnung und der Satellit wird problemlos viele Male umkreisen. Ich kann auch die Geschwindigkeit des Satelliten ändern, um Apo-/Peri-Punkte zu manipulieren und die Periapsis zu vergrößern.

Das Problem tritt jedoch auf, wenn ich die Geschwindigkeit ändere, sobald der Satellit die PI/2Markierung passiert, die gesamte Umlaufbahn umgedreht wird (Erhöhung der Periapsis wird um versetzt PI) ​​und die wahre Anomalie auf 0 zurückgesetzt wird.

So wird es derzeit implementiert: Mit der Annahme, dass der Satellit bei t0 an der Periapsis beginnt, finde ich die exzentrische und wahre Anomalie, wenn eine Zeit seit der Periapsis gegeben ist w . Dann finde ich den Radius in diesem Winkel, um die endgültige Position zu erhalten.

T 0 = 0
E 0 = 0
M ( 0 ) = E 0 e Sünde E 0
N = G M A 3
E = k e P l e R ( e , M )
v = 2 bräunen 1 ( ( 1 + e ) ( 1 e ) bräunen E 2 )
R = A 1 e 2 1 + e cos v

Wenn ich die Geschwindigkeit des Satelliten aktualisiere (Flugbahnwinkel ϕ wird nach Geschwindigkeitsänderung neu berechnet), berechne ich eine neue wahre Anomalie mit ϕ , finde ich dann den Unterschied zwischen der alten wahren Anomalie und der neuen wahren Anomalie und füge dies der Augmentation der Periapsis hinzu w . Danach berechne ich die Zeit seit der Periapsis neu T Verwenden Sie die neue wahre Anomalie und berechnen Sie auch die Orbitalparameter neu.

v e l = G M 2 R 1 A
ϕ = bräunen 1 ( e Sünde v 1 + e cos v )
v 2 = bräunen 1 R v G M cos ϕ Sünde ϕ R v G M cos 2 ϕ 1
w + = v 2 v
E = cos 1 e + cos v 1 + e cos v
M = E e Sünde E
N = G M A 3
T = M N
C A l C u l A T e Ö R B ich T ( )

Ich merkte, wenn ich sollte v = v + π wenn jemals v 2 < 0 Und v > 0 , dann wird der seltsame Umlaufbahn- / Positionswechsel erst am auftreten v = π Ansonsten weiß ich nicht, was das Problem ist. Ich würde mich sehr freuen, wenn mir jemand den Weg weisen könnte, da ich mir darüber schon lange den Kopf zerbreche.

Antworten (1)

Eine kurze Notiz, Ihre Gleichung für den Radius R als Funktion der wahren Anomalie fehlt die große Halbachse A . Ich verwende lieber das Symbol θ für die wahre Anomalie statt v , da ich das für die Gesamtgeschwindigkeit verwenden werde. So:

R ( θ ) = A ( 1 e 2 ) 1 + e cos θ
Und die Art und Weise, wie ich meine neuen Trajektorienparameter nach einer Geschwindigkeitsänderung berechnen würde, ist die Auswertung der großen Halbachse A und Exzentrizität e :
A = μ R 2 μ R v 2
e = 1 + R 3 ω 2 μ ( R v 2 μ 2 )
Wo μ ist der Gravitationsparameter (Sie verwenden G M ) Und ω ist die Winkelgeschwindigkeit, so dass die Tangentialgeschwindigkeit gleich ist v θ = R ω .
Daraus können Sie die wahre Anomalie berechnen über:
θ = cos 1 ( A ( 1 e 2 ) R e R )
Der Arkuskosinus gibt jedoch einen Wert zwischen zurück 0 Und π und um den Rest des Bogens abzudecken (Form π Zu 0 ) muss man sich die Radialgeschwindigkeit anschauen R ˙ oder v R . Wenn dies negativ ist, bedeutet dies, dass Sie Ihre Apoapsis überschritten haben und dass die wahre Anomalie größer sein wird als π oder negativ (je nachdem, für welchen Bereich Sie verwenden möchten θ ), also würde die wahre Anomalie einfach zu:
θ = cos 1 ( A ( 1 e 2 ) R e R )
PS: Dies könnte eine nützliche Frage sein , da sie einen expliziten Ausdruck für die Zeit als Funktion Ihrer Position enthält.

Ich verwende die mittlere Bewegung, um die Zeit zu berechnen. Andernfalls müssen die beiden Änderungen, die ich vornehmen musste, den Acos verwenden, um die wahre Anomalie anstelle meines Atan zu finden, und die Zeit berücksichtigen, in der die wahre Anomalie negativ ist. Es funktioniert jetzt wie erwartet. Vielen Dank!