Ich habe versucht, eine Orbitalsimulation mit der Patched-Conics-Approximation wie dem Kerbal Space Program zu erstellen. Ich habe zunächst versucht, die Kepler-Gleichung mit der Newton-Methode zu lösen, dies ließ jedoch zu wünschen übrig, da viele Anfangsvariablen wie die große Halbachse und die Exzentrizität im Voraus bereitgestellt werden müssen, während ich nur einen Radiusvektor und einen Geschwindigkeitsvektor habe. Auch dieser Ansatz scheint bei parabolischen oder hyperbolischen (oder geradlinigen) Umlaufbahnen auseinanderzufallen, ganz zu schweigen davon, dass er ziemlich rechenintensiv ist. Dies führte mich zur Goodyear-Methode aus Lamonts Antwort auf diese Frage.
Bestimmung der Orbitalposition zu einem zukünftigen Zeitpunkt
Es ist mir jedoch nicht gelungen, gültige Ergebnisse zu erzielen. Alle Radiusvektoren, die ich daraus bekomme, bilden gerade Linien. Soweit ich weiß, ist alles, was erforderlich ist, der anfängliche Radiusvektor, der Geschwindigkeitsvektor, der Gravitationsparameter und das Zeitintervall. Ich habe diese Werte in SI-Einheiten angegeben, also Meter und Sekunden. Erwartet es unterschiedliche Einheiten?
Wenn all dies fehlschlägt, gibt es andere allgemeine Lösungen für das Zwei-Körper-Problem, die nur den anfänglichen Radiusvektor und den Geschwindigkeitsvektor erfordern und zu einem späteren Zeitpunkt "t" einen Radiusvektor und einen Geschwindigkeitsvektor zurückgeben können? Und welche davon eignen sich am besten für eine gepatchte Kegelschnittnäherung?
Sie haben wahrscheinlich bereits eine Antwort gefunden, als Sie diese Frage gestellt haben, aber ich gebe trotzdem eine Antwort, falls es hilft.
Die Verwendung der Orbitalelemente ist der "richtige Weg", dies zu tun. Es gibt 6 davon, die in diesem Wikipedia-Artikel beschrieben werden :
Die ersten fünf von ihnen beschreiben die Geometrie einer Umlaufbahn vollständig in 3D. Die wahre Anomalie ist ein Winkel, der sich auf die Position des Körpers/Raumfahrzeugs auf dieser Umlaufbahn bezieht. Sie können alle diese Parameter aus Anfangszustandsvektoren (Position und Geschwindigkeit) berechnen, wenn Sie die Standard-Gravitationsparameter des Attraktorkörpers kennen. Die Mathematik wird in diesem PDF von René Schwarz beschrieben , wie man kartesische Orbitalzustandsvektoren in Orbitalelemente umwandelt.
Sobald Sie die Elemente einer Umlaufbahn haben, können Sie sie verwenden, um die Zustandsvektoren (Positions-/Radiusvektor und Geschwindigkeitsvektor) zu jedem beliebigen Zeitpunkt zu berechnen, indem Sie diesem anderen PDF folgen, in dem beschrieben wird, wie man Umlaufbahnelemente in kartesische Zustandsvektoren umwandelt. Einige im Dokument beschriebene Formeln funktionieren jedoch nur für elliptische Umlaufbahnen. Für hyperbolische Bahnen (wann ) müssen Sie andere Formeln für die exzentrische und wahre Anomalie verwenden (siehe diesen Wikipedia-Artikel und die zweite Antwort auf diesen Beitrag ) sowie die Formel für den Geschwindigkeitsvektor aus dem Dokument anpassen (siehe diesen Beitrag ).
Die "kompliziert" aussehenden Rotationsmatrizen, die die Position und Geschwindigkeit des Raumfahrzeugs/Körpers im 3D-Raum festlegen, können in diesen Schritten entwickelt werden:
(Beachten Sie, dass er in den Dokumenten von René Schwarz die z-Achse als die "oben" -Achse betrachtet, anstelle der y-Achse.)
Der Fall einer parabelförmigen Umlaufbahn ( ) kann, wie notovny in einem Kommentar sagte, höflich ignoriert werden (wende den Straußenalgorithmus an ).
Beachten Sie jedoch, dass Sie möglicherweise Extremfälle berücksichtigen müssen. dh wenn Sie es mit Umlaufbahnen zu tun haben, die Kreisbahnen sehr nahe kommen oder eine Nullneigung haben. In diesen Fällen funktionieren die Formeln für Winkel, wie die wahre Anomalie im ersten Dokument, nicht (sie geben NaN-Werte wegen der Fließkommagenauigkeit und Rundungen). Für diese speziellen Fälle müssen Sie also Standardvektoren setzen, zB den exzentrischen Vektor, und daraus die Winkel berechnen.
Was die Einheiten betrifft, erwarten die Formeln tatsächlich SI-Einheiten. (Sie können jedoch ein beliebiges Vielfaches dieser Einheiten verwenden, solange Sie dies in den Gleichungen berücksichtigen).
Litho
Leerstern240
notovny
Lamont
Lamont