Berechnung des Geschwindigkeitszustandsvektors mit Orbitalelementen in 2D

Ich schreibe ein kleines Projekt, das eine Umlaufbahn durch Konvertieren von Anfangszustandsvektoren simuliert r und v zu keplerschen Elementen und dann zurück zu konvertieren r und v von diesen Kepler-Elementen, aber einen Frame voraus. Ich habe ein Problem mit dem letzten Teil.

Ich habe den Konvertierungsleitfaden von René Schwarz ziemlich oft verwendet, aber die Transformationen und Drehungen am Ende verwirren mich ehrlich gesagt nur, also habe ich am Ende nur die wahre Anomalie verwendet und | r | neu berechnen r , was zu funktionieren scheint, aber ich bin ratlos, wie ich berechnen soll v , Ich habe die Gleichung für die Geschwindigkeit an jedem Punkt auf einer Umlaufbahn mit

v 2 = μ ( 2 | r | 1 a )

Wo stecke ich einfach den neuen ein | r | und ich bekomme | v | , aber versuchen, diese Gleichung für den Tangentenvektor an einen beliebigen Punkt auf einer Ellipse zu verwenden, wenn der Winkel gegeben ist,

a cos θ ich + b cos θ j

Woher a ist die große Halbachse, b ist die kleine Halbachse, und θ ist der Winkel um die Ellipse (ich habe die True Anomaly als Eingabe für diesen Winkel verwendet, ist das korrekt?) Scheint nicht zu funktionieren, um den Vektor zu finden, der die Ellipse tangiert. Also meine Fragen sind:

  • Wie finde ich die Vektortangente zu einer gegebenen 2D-Orbitalellipse? e und a , ebenso gut wie | r | , | v | , und die wahre, exzentrische und gemeine Anomalie an diesem Punkt? (Ich habe auch einige zusätzliche Elemente, die ich noch nicht verwendet habe, wie das Argument der Periapsis, falls das nützlich ist.)

  • Wie bestimme ich, in welche Richtung dieser Vektor zeigen sollte (damit er nicht in Richtung retrograd zeigt, wenn er in Richtung prograd zeigen sollte), wenn die gleichen Werte wie oben gegeben sind?

+1für eine tolle Umschreibung! :) In diesem Fall gibt es hier möglicherweise eine vorhandene Antwort, die Ihre Frage beantwortet. Ich weiß, dass es zumindest ein paar ähnliche Fragen gegeben hat. Wenn Ihre Frage am Ende als Duplikat markiert wird, indem Sie auf eine vorhandene Antwort verweisen, sehen Sie das nicht als schlechte Sache an. Es ist nur die Art und Weise, wie Stackexchange sicherstellt, dass zukünftige Leser zu weniger, aber qualitativ hochwertigeren Antworten geführt werden. Wenn es nicht hilft, sagen Sie es bitte, und denken Sie daran, dass Sie so viele weitere (Qualitäts-)Follow-up-Fragen sowie völlig neue Fragen stellen können, wie Sie möchten!
Es gibt (mindestens) eine weitere Antwort irgendwo, die ich noch nicht finden kann, die auch hilfreich sein kann. Auch eines der beiden in dieser Antwort verlinkten Dokumente kann hilfreich sein.
Ich habe die meisten davon schon einmal gefunden, aber Nr. 4 sieht hilfreich aus, danke.
Ich bin mir nicht sicher, ob ich etwas falsch implementiere oder nicht; Die Verwendung der Transformationen in Nr. 4 führt zu keinen kohärenten Ergebnissen. Ich verwende das Argument der Periapsis als ω = arctan 2 ( e j , e x ) und Neigung und Länge des aufsteigenden Knotens auf 0 setzen (Wikipedia sagt, dass dies die Konvention auf der Seite Argument der Periapsis ist).

Antworten (2)

Unter der Annahme, dass die Richtung der Periapsis die positive Richtung der x-Achse ist, dann der Vektor a Sünde E ich + b cos E j tangiert die Umlaufbahn am Punkt mit der exzentrischen Anomalie E . Die Geschwindigkeit ist mit diesem Vektor gleichgerichtet, wenn die Umlaufbahn gegen den Uhrzeigersinn verläuft, und gegenläufig, wenn die Umlaufbahn im Uhrzeigersinn verläuft.

Wenn der Winkel zwischen der positiven Richtung der x-Achse und der Richtung der Periapsis ist ω (gegen den Uhrzeigersinn gemessen), dann müssen Sie den Vektor um diesen Winkel drehen, und das Ergebnis ist ( a Sünde E cos ω b cos E Sünde ω ) ich + ( b cos E cos ω a Sünde E Sünde ω ) j .

Für die y-Komponente der letzten Gleichung, die Sie mir geben, liegt die Ausgabe zwischen -a und a. Bedeutet das, dass ich das Argument der Periapsis falsch berechne? Ich habe diese Gleichung aus Wikipedia verwendet: ω = arctan 2 ( e j , e x ) . Der x-Wert reicht auch von einem wirklich niedrigen Wert zu einem anderen.
Sind e x und e j die Koordinaten der Periapsis relativ zum Hauptfokus? Dann ist es richtig. Aber ich weiß nicht, warum die j -Komponente des letzten Ausdrucks würde zwischen wechseln a und a . Wenn Sie beheben ω und variieren E , dann sollte es zwischen wechseln ( a Sünde ω ) 2 + ( b cos ω ) 2 und ( a Sünde ω ) 2 + ( b cos ω ) 2 .
Diese Probleme wurden behoben, nur zufällige Fehler, die aufgrund meiner ständigen Optimierungen auftauchten. Das Ergebnis sieht immer noch nicht richtig aus. Ich beginne mit einem Zustandsvektor von (0, -350) (m / s) und (0, ~ 200) (km) von meiner Hauptmasse, daher sollte die Geschwindigkeit keine Größe über 350 haben (Periapsis ist wo Ich fange an), aber mit v = | v | cos ( t ) ich + | v | Sünde ( t ) j wo t ist die Überschrift des Vektors, den Sie angegeben haben, und hat eine Größe im Bereich von 0 bis 700. Wenn Sie sich die Zahlen ansehen, macht es v x schwingen entgegengesetzt zu v j , als wäre einer bei Apoapsis, während der andere bei Periapsis ist.
Außerdem verfügt meine Codierungsbibliothek über eine Vektorrotationsfunktion, die diese Funktion verwendet a Sünde E ich + b cos E j sollte funktionieren, oder? Soweit ich der Quelle entnehmen kann, dreht es sich, indem es den Vektor in einen Winkel umwandelt, den Eingabewinkel addiert und dann wieder in einen Vektor umwandelt. Ist das eine äquivalente Drehung?
"Ich starte mit einem Zustandsvektor von (0,-350) (m/s) und (0,~200) (km) von meiner Hauptmasse": zeigt die Startgeschwindigkeit auf die Hauptmasse? Dann ist es keine Periapsis, wegen der Drehung: ja, so wie du es beschreibst, sollte es funktionieren.
Oh hoppla, ich wollte (200, 0) für r sagen. Jedenfalls tritt das Problem immer noch auf. Es könnte jedoch ein Fehler in meinem Code sein, ich kann es noch nicht sagen, ich überarbeite es nur.

Um den Geschwindigkeitsvektor in einem Zweikörperproblem zu berechnen, können Sie den Flugbahnwinkel verwenden ϕ f p a (aus Grundlagen der Astrodynamik und Anwendungen, D. Vallado). ϕ f p a ist der vom lokalen Horizont zum Geschwindigkeitsvektor gemessene Winkel. Berechnen Sie dazu den Drehimpuls, der konstant ist:

h = r 0 × v 0

Die Positionsvektornorm | | r | | ist:

| | r | | = a 1 e 2 1 + e cos f
wo f ist die wahre Anomalie. Wie Sie zuvor gezeigt haben, ist die Geschwindigkeitsnorm eine Funktion von r ist
v 2 = μ ( 2 | | r | | 1 a )

So, ϕ f p a errechnet sich wie folgt:

cos ϕ f p a = | | h | | | | r | | | | v | |
Sünde ϕ f p a = | | h | | | | r | | | | v | | × e Sünde f 1 + e cos f
ϕ f p a = atan2 ( Sünde ϕ f p a , cos ϕ f p a )

Bevor ich Ihnen den Geschwindigkeitsvektorausdruck zeige, müssen wir die folgenden Richtungsvektoren definieren:

Richtungen

Woher r ^ ist die Richtung von r , t ^ ist in der Geschwindigkeitsrichtung, und n ^ ist normal auf die Umlaufbahn und auf t ^ . Außerdem die Wegbeschreibung r ^ und s ^ sind senkrecht. Also der Geschwindigkeitsvektor v kann ausgedrückt werden als:

v = | | v | | t ^ = | | v | | ( s ^ cos ϕ f p a + r ^ Sünde ϕ f p a )

Die Berechnung von r und s ^ als Funktion einer Trägheitsrichtung ist eine einfache Aufgabe, wenn man den wahren Anomaliewinkel verwendet f .

Ich werde das morgen ausprobieren, aber auf den ersten Blick sieht es so aus, als hättest du einen kleinen Tippfehler, wenn du es zeigst v = v t ^ meinst du das v = | v | cos ( t ^ ) ich + | v | Sünde ( t ^ ) k ?
Nein. t ^ ist ein Einheitsvektor, kein Skalar. Die Berechnung des Sinus oder Cosinus hat also keine Bedeutung. v = | | v | | ist die Norm von v und t ^ ist ein Einheitsvektor in v Richtung.