Ich bin Auszubildender und arbeite an einem im Unternehmen entwickelten numerischen Orbitalpropagator. Ich kann Ihnen den Code nicht zeigen, aber ich kann Ihnen sagen, dass der Propagator entwickelt wurde, um in Simulink zu arbeiten. Meine Aufgabe war es, den Propagator zu extrahieren, um ihn als Matlab-Skript zu verwenden. Um die Funktionsweise meines Skripts zu bewerten, vergleiche ich die erhaltenen Ergebnisse mit denen eines anderen numerischen Propagators (GMAT). Die anfänglichen Orbitalelemente stammen von einer SSO-Repeat-Ground-Track-Umlaufbahn. Im Moment betrachte ich die Störungen nur aufgrund von J2 und verwende einen Integrator vom Typ Runge Kutta vierter Ordnung. Die Analysen mit den beiden Propagatoren über einen Zeitraum von 52 Tagen mit einer festen Schrittweite von 60 Sekunden haben die in der Abbildung gezeigten unterschiedlichen Trends (links zeigt die Orbitalelemente, rechts den Zustandsvektor).
Ich kann diesen Unterschied nicht erklären, insbesondere im Zustandsvektor, von dem die Orbitalelemente abgeleitet sind. Zuerst dachte ich, es läge an den Referenzsystemen, da die GMAT-Daten im ICRF sind, während meine Propagator-Daten im GCRS sind. Also habe ich die gleichen Konvertierungsfunktionen auf die GMAT-Daten angewendet und beim Vergleich (dieser neuen Ergebnisse) mit den ursprünglichen gab es keine Fehler, außer denen aufgrund der numerischen Werte. Also dachte ich, es sei die Geopotentialfunktion, die falsch sei. Aber selbst in diesem Fall waren die von der Funktion berechneten Beschleunigungen, die denselben Zustandsvektor von GMAT übergeben, dieselben wie die von der Software bereitgestellten. Ich denke also, dass es die Schuld des Integrators sein könnte, da es die in der nächsten Abbildung gezeigte periodische Drift des Fehlers gibt.
Der Runge-Kutta scheint aber auch im Vergleich zu dem, was ich im Internet gefunden habe, gut aufgestellt zu sein. Können Sie sich einen Grund vorstellen, der diese Diskrepanzen erklärt?
Ich füge weitere Diagramme hinzu, um Ihnen den Trend der Orbitalelemente und des Zustandsvektors in 24 Stunden zu zeigen. Im Laufe der Zeit nehmen die Unterschiede tendenziell zu. Insbesondere scheint mein Propagator im Vergleich zu dem von GMAT beschleunigt zu sein.
Sie sollten überprüfen, welchen Propagator GMAT verwendet. Eine RK4-Methode mit konstanter Schrittgröße wird im Laufe der Zeit von der wahren Lösung der ODE abweichen. Wenn GMAT also eine adaptive Schrittgrößenmethode verwendet, die an einigen Stellen von der Größenordnung von Millisekunden bis zu mehreren zehn Sekunden reicht, wird dies wahrscheinlich der Fall sein näher an der Lösung als RK4.
Im Wesentlichen macht die Konstante Schrittgröße von RK4 Folgendes: Es nimmt mehrere Auswertungen der Ableitung zwischen jetzt und dem nächsten Zeitschritt vor, um eine bessere Schätzung zu erhalten, wie sich die Funktion ändert (im Gegensatz zu einer Euler-Methode 1. Ordnung). ). Anschließend wird ein gewichteter Mittelwert dieser Schätzungen ermittelt, um zu bestimmen, welche Ableitung für diesen Schritt verwendet wird. Wie aus dem Diagramm ersichtlich ist, wird die Fläche unter der Kurve an einigen Stellen unterschätzt und an anderen überschätzt, was im Laufe der Zeit zu Fehlern führt.
Hier ist eine verkleinerte Version (und ein 500-Sekunden-Zeitschritt), um den Effekt zu zeigen.
Da Sie 60 Sekunden verwenden, wird der Fehler weniger schnell wachsen, aber dennoch mit der Zeit driften.
Ein Solver mit adaptiver Schrittgröße ändert seine Schrittgröße basierend darauf, wie schnell sich die Ableitung ändert (die zweite Ableitung):
Wenn also die Ableitung näher an der Konstante liegt, bedeutet dies, dass die Lösung nahezu linear ist, sodass der Solver größere Zeitschritte ausführen kann. Aber wenn sich die Ableitung ändert, ist die Lösung nichtlinear, der Solver muss kleinere Zeitschritte machen.
Die gebräuchlichste dieser Methoden ist RK4-5, die die Lösung der RK4- und RK5-Methoden vergleicht und je nachdem, wie unterschiedlich sie sind, den Zeitschritt entsprechend ändert.
Insgesamt ist also möglicherweise nichts falsch an Ihrem Modell / Ihrer RK4-Implementierung, es kann davon abhängen, welchen Propagator GMAT verwendet, mit dem Sie Ihre Lösung vergleichen
Wenn Sie neugierig sind, stammen diese Screenshots aus einem Video, das ich zu ODE-Lösern gemacht habe:
+1
Beim Betrachten des ersten Diagramms des OP und des Differenzdiagramms ist mir als erstes aufgefallen, dass das Blau im Vergleich zum Rot immer "unscharf" ist. die Fehlerausschläge innerhalb einer Umlaufbahn scheinen groß zu sein. Das stimmt sicherlich damit überein, dass die Schrittgröße für die verwendete Methode zu groß ist; gemittelt über jede volle Umlaufbahn können die Fehler dazu neigen, sich aufzuheben, aber symmetrische Abweichungen innerhalb der Umlaufbahn können es verrauschter aussehen lassen.Die vorherigen Antworten enthalten einige gute allgemeine Informationen, aber TBH finde ich nicht sehr hilfreich für die Frage.
Die grundlegendste Plausibilitätsprüfung mit einem numerischen Solver lautet: Wie ändert sich das Ergebnis, wenn Sie die Schrittweite variieren? Halten Sie es so einfach wie möglich. Simulieren Sie über einen einzigen Tag und probieren Sie verschiedene Schrittgrößen aus. Versuchen Sie zum Beispiel einen Schritt von 6 Sekunden, 30 Sekunden, 200 Sekunden, 600 Sekunden. Wie unterscheiden sie sich?
Die 600 Sekunden werden sich wahrscheinlich sehr seltsam verhalten, aber die anderen – ich weiß nicht, Sie sollten es versuchen. Wenn die h = 6 Sekunden-Lösung im Wesentlichen die gleiche ist wie Ihre h = 60 s-Lösung, insbesondere wenn sie durchweg die gleichen Abweichungen vom GMAT aufweist – dann haben Sie offensichtlich ein grundlegenderes Problem, das nichts damit zu tun hat der Integrator überhaupt. Das können viele verschiedene Dinge sein.
Erst wenn Sie festgestellt haben, dass Sie definitiv alles so eingerichtet haben, wie es sein sollte, sollten Sie sich darauf konzentrieren, das Beste aus Ihrem numerischen Löser herauszuholen.
Ihr numerischer Integrator RK4 ist für diese Aufgabe ungeeignet. Die Ordnung ist viel zu niedrig für die gewünschte Genauigkeit. Es ist auch eine feste Schrittgröße. Sie haben Ihre Recherchen dazu nicht durchgeführt. Die Fehlerfortpflanzungsraten für RK-Integratoren mit fester Schrittweite sind so schlimm wie es nur geht. Erforschen Sie Prädiktor-Korrektor-Integratoren höherer Ordnung ... Ordnung 8 mit (mindestens) 64-Bit-Gleitkommaoperationen (auch wenn es sich um feste Schritte handelt).
Sie könnten sich eingebettete RK-Integratoren ansehen, die einen RK-Integrator niedrigerer Ordnung als Prädiktor innerhalb eines RK-Integrators höherer Ordnung verwenden. Sehen Sie sich RK78 als Ersatz für Ihr RK4 an. In der Vergangenheit war dieser Integrator ein Arbeitstier für Orbitalmechaniker. Dieser gibt Ihnen viel bessere Datenvereinbarungen und eine gute Genauigkeit über längere Zeitintervalle.
Adams-Moulton, oder noch besser Adams-Bashforth-Moulton, sind Prädiktor-Korrektoren, die leicht in jeder gewünschten Reihenfolge codiert werden können. Ihre Fehlerfortpflanzungsraten sind geringer als bei jedem RK-Verfahren derselben Größenordnung. Gauss-Radau-Integratoren sind auch sehr genau und gut geeignet für Orbitalmechanik-Integrationen. Codieren Sie sie nicht selbst. Herunterladen.
Es gibt viele Prädiktor-Korrektur-Methoden mit variablen Schritten, die die beste Genauigkeit und die kleinsten Fehlerfortpflanzungsraten über längere Zeitintervalle liefern. Mit diesen Methoden liefern Ihre numerischen Integrationen die beste Genauigkeit, die Sie erwarten können ... aber sie müssen von hoher Ordnung sein. Bestellung 8 ist gut.
Bevor Sie mit irgendeinem hier oder anderswo erwähnten Integrator in Ihr Projekt einsteigen, testen Sie Ihre Integratorauswahl anhand der Lösung des 2-Körper-Problems, ausgedrückt in kartesischen Koordinaten. Das ist die schlechteste Art, die 2-Körper-Gleichungen zu schreiben, und diese Form der Gleichungen wird Ihre Integratoren am besten belasten. Da die 2-Körper-Problemlösung in jedem Koordinatensystem in geschlossener Form vorliegt, werden Sie sehen, wie sich ausgewählte Integratoren in Bezug auf Fehlerfortpflanzung und Genauigkeit über kurze und lange Zeitintervalle verhalten.
Ihr Projekt ist keineswegs trivial, und Sie benötigen einen Integrator, der dieser Aufgabe gewachsen ist. Durch numerische Integrationen des 2-Körper-Problems erhalten Sie eine gute Vorstellung von dem zu verwendenden Integrator. Stellen Sie sicher, dass Ihre Anfangsbedingungen Ihnen eine 2-Körper-Umlaufbahn mit anständig hoher Exzentrizität geben: e >= 0,3. Werden Sie nicht verrückt mit einem sehr hohen e (0,8). Integratoren mit fester Schrittweite werden bei Orbits mit hoher Exzentrizität (e = 0,8) schnell sterben. Ihre Todesrate ist umgekehrt proportional zur Ordnung des Integrators.
Viel Glück.
äh
linksherum
Frank
linksherum