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/2
Markierung 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 . Dann finde ich den Radius in diesem Winkel, um die endgültige Position zu erhalten.
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 . Danach berechne ich die Zeit seit der Periapsis neu Verwenden Sie die neue wahre Anomalie und berechnen Sie auch die Orbitalparameter neu.
Ich merkte, wenn ich sollte wenn jemals Und , dann wird der seltsame Umlaufbahn- / Positionswechsel erst am auftreten 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.
Eine kurze Notiz, Ihre Gleichung für den Radius als Funktion der wahren Anomalie fehlt die große Halbachse . Ich verwende lieber das Symbol für die wahre Anomalie statt , da ich das für die Gesamtgeschwindigkeit verwenden werde. So:
omikun