Koordinatensysteme für Zustandsvektoren

Ich arbeite derzeit an einem Projekt aus diesem Buch . In Anhang D stellen sie einige Projekte zur Verfügung, die als Überprüfung des gesamten Materials im Buch kodiert werden können. Ich habe das erste Projekt, Site/Track, abgeschlossen und meine Ausgabe kommt der Lösung ziemlich nahe (dank der numerischen Ungenauigkeit von Python). Ich habe versucht, die Orbital-Python-Bibliothek zu verwenden, um meine Lösung zu plotten, um dem Projekt einen schönen visuellen Akzent zu verleihen.

Ich gebe die Zustandsvektoren ein und konvertiere von Entfernungseinheiten und Zeiteinheiten, die im Buch definiert sind, wobei mu = 1 ist, in Meter und Meter pro Sekunde (wie von der Funktionsumwandlungsfunktion von Orbital gefordert). Die Ausgabe war ein Exzentrizitätswert von 0,98 und a große Halbachse etwa gleich dem Erdradius.Das ist offensichtlich nicht korrekt, also habe ich mit dem nächsten Datenpunkt fortgefahren - dasselbe Ergebnis.Okay, vielleicht ist es mein Code?Also habe ich den Zustandsvektor für die ISS nachgeschlagen, den ich hier gefunden habe, und ihn in meinen eingegeben Code und heraus kommt ein schöner Graph der Umlaufbahn. Vielleicht sind es nur die Daten im Buch. Ich gebe ein anderes Beispiel aus dem Buch aus dem Kapitel ein, dem ich gefolgt bin, um das Programm zu erstellen, wo sie Zustandsvektoren in Umlaufbahnelemente umwandeln. Es bekommt diese Berechnung auch perfekt.Ich versuche dann eine weitere Quelle hier, und diese Vektoren funktionieren in meinem Programm nicht. Ich habe auch alle 3 Vektoren in diesen Rechner eingegeben, die ISS und einer aus meinem Buch funktionierten, aber nicht die anderen. Ich versuche, die Widersprüchlichkeit zu finden, die ich offensichtlich vermisse ...

Also meine Frage ist. Gibt es unterschiedliche Referenzrahmen für diese Vektoren, die diese Fehler verursachen könnten? Welche anderen Fehler könnte ich versehentlich einführen?

Hier sind meine Eingabedaten aus dem Buch (funktioniert nicht), die im Buch als IJK-Referenzrahmen (Inertial) definiert sind.

r = [ 1779987.13023855 -4944211.65294755  4065801.40507205] 
v = [ 2082.84303416 -1179.76617351   410.70269708]

Ausgang:

KeplerianElements:
    Semimajor axis (a)                           =   3493.823 km
    Eccentricity (e)                             =      0.950399
    Inclination (i)                              =     45.1 deg
    Right ascension of the ascending node (raan) =    160.3 deg
    Argument of perigee (arg_pe)                 =    303.1 deg
    Mean anomaly at reference epoch (M0)         =    144.4 deg
    Period (T)                                   = 0:34:15.239378
    Reference epoch (ref_epoch)                  = J1970.000
        Mean anomaly (M)                         =    144.4 deg
        Time (t)                                 = 0:00:00
        Epoch (epoch)                            = J1970.000

Die von mir verwendeten ISS-Daten (richtige Grafik gezeigt) sind auf der Website als m50 kartesisch definiert.

r = [4607312.46, -1531324.39, 4749270.39]
v = [4597.800926, 5516.878978, -2671.990580]

Ausgang:

KeplerianElements:
    Semimajor axis (a)                           =   6794.798 km
    Eccentricity (e)                             =      0.000980
    Inclination (i)                              =     51.4 deg
    Right ascension of the ascending node (raan) =    212.9 deg
    Argument of perigee (arg_pe)                 =     53.7 deg
    Mean anomaly at reference epoch (M0)         =     62.7 deg
    Period (T)                                   = 1:32:54.113176
    Reference epoch (ref_epoch)                  = J1970.000
        Mean anomaly (M)                         =     62.7 deg
        Time (t)                                 = 0:00:00
        Epoch (epoch)                            = J1970.000
Ich bin nicht qualifiziert, diese Frage zu beantworten, aber wenn ich es wäre, würde ich Ihre Eingabedaten und die Ausgaben Ihres Programms für jeden der von Ihnen erwähnten Fälle sehen wollen, nicht nur Worte darüber.
"Die Ausgabe war ein Exzentrizitätswert von 0,98" Warum kann ich diese Zahl nicht in Ihren Tabellen finden?
Und vor allem, wo ist der Code?
An Ihrem ersten Beispiel stimmt offensichtlich etwas nicht, denn eine große Halbachse kleiner als der Erdradius ist nicht möglich. Bate, Mueller und White enthalten viel Material über Flugbahnen ballistischer Raketen, daher ist es immer gut zu überprüfen, ob die Daten, die sie Ihnen gegeben haben, einer "Umlaufbahn" entsprechen, die zwischen Start und Aufprall nur 20 Minuten dauert, aber eine < 3500 km ist zu jeder Zeit tief im Erdinneren.
@RyanC es ist ein guter Punkt; Ich habe die Hypothese aufgestellt , dass es sich um eine wiederverwendbare erste Stufe handelt.
SE angepasst. Danke, es gibt keinen Code, weil ich nicht glaube, dass mein Code das Problem ist, da alle Ausgaben übereinstimmen. Ich stimme @uhoh zu und denke, dass die Geschwindigkeit das Problem ist, weshalb ich diesen myreaders.info/05_Satellites_Orbit_Elements.pdf-Datensatz nachgeschlagen habe . Diese haben immer noch schreckliche, fast hyperbolische Umlaufbahnen, aber ich werde es in die Vis-Viva-Gleichung einsetzen, um zu überprüfen, ob die Daten für einen Satelliten nur schlecht sind. Unter der Annahme, dass die Daten „schlecht“ sind, gehe ich davon aus, dass der einzige Zustandsvektor, der eine „gute“ Umlaufbahn erzeugt, die ISS ist. Vielleicht werde ich SPICE nach weiteren Datensätzen zum Testen durchsuchen.

Antworten (1)

Hier ist eine Teilantwort, bis Sie weitere Informationen hinzufügen, wie in den Kommentaren angefordert

dank der numerischen Ungenauigkeit von Python

Ich glaube nicht, dass Sie sich der Grenze von Pythons Floats nähern. Erinnern wir uns stattdessen daran, dass Keplersche Umlaufbahnen nur theoretische Annäherungen sind. Die größten Abweichungen kommen von der äquatorialen Abflachung der Erde, wie sie ausgedrückt wird J 2 was etwa einem 1-Promille-Effekt entspricht. Wenn Sie nur die zentrale verwenden G M / R 2 erzwingen, dass Sie um 0,1 % absteigen werden. Dann gibt es noch Multipolterme höherer Ordnung, Schwerkraft von Sonne und Mond usw.

Hier sind die anfänglichen Zustandsvektoren, die Sie melden. (Ich denke, Sie haben in Ihrer Quelle von einheitenlosen Zahlen konvertiert? Es wäre schön, sie auch zu sehen.)

r = [1779987.13023855, -4944211.65294755, 4065801.40507205]  
v = [2082.84303416, -1179.76617351, 410.70269708]  

Die vis-viva-Gleichung ist unglaublich nützlich. Für Umlaufbahnen mit zentraler Kraft (Keplerian) werden die Skalarwerte in Beziehung gesetzt A , R Und v unabhängig davon, in welche Richtung diese letzten beiden Vektoren zeigen, also ist es sehr praktisch!

v 2 = G M ( 2 R 1 A )

oder

1 A = 2 R v 2 G M

Der Standardgravitationsparameter der Erde (das Produkt G M ) ist etwa 3,986E+14 m^3/2^2.

Du hast R = 6644,12 km und v = 2,42874 km/s. Der Äquatorialradius der Erde (6378,137 km) wird normalerweise verwendet, um einen Höhenwert zuzuweisen, sodass sich das Objekt in einer Höhe von 266 km befindet und sich nur 31 % der 7,746 km/s bewegt, die für eine kreisförmige Umlaufbahn in dieser Entfernung erforderlich sind, also ja werde hart in die Erde eintauchen.

Die obige vis-viva-Gleichung ergibt A = 3493,823 km genau so, wie Sie es in der Ausgabe anzeigen, was keine Überraschung ist, daher werde ich die anderen Elemente nicht bestätigen.

Es könnte ein schlecht durchdachtes Problem sein, das Raumschiff in einen tiefen Tauchgang zu schicken, oder da es so langsam ist, könnte es sogar den Wiedereintritt überleben, wenn es Triebwerke hat, ein bisschen wie eine wiederverwendbare erste Stufe an der Spitze seines Bogens!

Danke schön. Ich wusste, dass die Geschwindigkeitswerte schlecht aussahen, ich habe nur versucht, einige hübsche grafische Darstellungen der Daten zu erstellen :)