Flugbahnoptimierung: schneller Vorschaualgorithmus [geschlossen]

Ich interessiere mich schon seit einiger Zeit für Flugbahnoptimierung und habe einige Artikel zu diesem Thema gelesen und das Buch "Raumfahrzeug-Flugbahnoptimierung" von Cambridge University Press gekauft und möchte mit dem Programmieren beginnen, um eine Flugbahn in einem vereinfachten Sonnensystem zu optimieren System, nicht in Echtzeit, sondern so nah wie möglich, ohne dass eine exakte Lösung, aber eine Vorschau auf eine gute Lösung benötigt wird.

Die Bücher und Artikel schlagen verschiedene Ansätze vor, wie z

  • Analytische Lösungen mit dem Primer-Vektor
  • Direkte Transkription + nichtlineare Programmierung
  • Partikelschwarmalgorithmen
  • evolutionäre/genetische Algorithmen

Da ich wenig bis gar keine Erfahrung habe, würde ich gerne wissen, was Sie vorschlagen würden, da ich keine Vergleiche in Bezug auf die Geschwindigkeit dieser Algorithmen finden konnte.

Vielen Dank für Ihre Hilfe!

Dies ist eine sehr weit gefasste Frage. Sie haben es selbst zugegeben; Sie haben ein Buch gekauft und Zeitschriftenartikel gelesen, um das Thema zu verstehen.
So war meine Frage nicht gemeint. Da ich neu in diesem Thema bin, habe ich um Rat gebeten, um mich in die richtige Richtung zu lenken, sonst müsste ich all diese Ansätze selbst ausprobieren - das Verständnis des Themas wird mehr Zeit in Anspruch nehmen, die ich bereit bin zu investieren.
@user2487105 Auf unseren „ Über uns“- und „ Wie man fragt“ -Seiten wird erklärt, dass wir eine Q&A-Website (Fragen und Antworten) und kein Diskussionsforum sind. Daher müssen Fragen spezifisch sein, nicht zu einer längeren Diskussion führen und im Idealfall eine endgültige Antwort haben von angemessener Länge sein. Ihre Frage ist sowohl zu allgemein als auch hauptsächlich meinungsbasiert und daher nicht für unsere Fragen und Antworten geeignet. Aber Sie können gerne an unserem Space Exploration Chat teilnehmen , wo eine offene Diskussion (wie die, die Sie in Ihren Kommentaren zur Antwort fortsetzen) akzeptabel ist und nicht entmutigt wird, nach Meinungen zu fragen (die unterschiedlich sein werden). Danke!
Ich kann dem Chat nicht beitreten - ich brauche 20 Ruf. Trotzdem: Danke.
Codieren Sie nicht selbst etwas. Holen Sie sich ein Flugbahnoptimierungsprogramm wie OTIS oder POST . Beachten Sie, dass Sie beide wahrscheinlich eine US-Person sein müssen, da es sich um exportkontrollierte Software handelt.

Antworten (1)

Hier sind einige kurze Informationen, die auf meiner Erfahrung mit dem Codieren / Recherchieren in jedem dieser Bereiche basieren:

  • Primer-Vektor: Der Primer-Vektor hat eine ziemlich elegante Lösung, sobald Sie den Hamilton-Operator und andere erforderliche Variablen im Algorithmus (z. B. die Adjungierten) gefunden haben. Sobald Sie in der Lage sind, das Problem einzurichten, fällt die Lösung in der Regel ziemlich gut aus. Die meisten Anwendungen, die ich mit Primer-Vektoren gesehen habe, sind Teil des Problems der „optimalen Übertragung“.
  • Nichtlineare Programmierung: NLP kann ziemlich umständlich und schwierig zu codieren sein, und am Ende müssen Sie oft viele Einschränkungen codieren. ABER - von den vier, die Sie erwähnt haben, haben frühere Literaturrecherchen gezeigt, dass NLP die besten Ergebnisse liefert. Conway gibt einige großartige Beispiele, die in diesem Text enthalten sein können oder auch nicht, aber untersuchen Sie seine Verfolgungs-/Ausweicharbeit und die von NLP generierten Trajektorien.
  • Partikelschwarm: PSO ist einer meiner Lieblingsalgorithmen. Showalter und Black [1] verwendeten kürzlich PSO, um reaktionsschnelle Theatermanöver zu erzeugen (diese Arbeit beinhaltet tatsächlich ein PSO innerhalb eines PSO). In Bezug auf Orbitaltransfers werden Sie feststellen, dass ein Großteil der Zeit, die Sie in einem PSO verbringen, damit verbracht wird, Ihre Flugbahn zu verbreiten. Sie können dies mit der Keplerschen Bewegung vereinfachen, aber die vollständige numerische Integration mit Störungen höherer Ordnung erhöht Ihre Rechenzeit.
  • Genetische Algorithmen: GAs können sehr rechenintensiv sein, je nachdem, ob Sie eine Einzelziel- oder Mehrzieloptimierung, Ihre Designvariablen, Ihre Einschränkungen usw. durchführen. Darüber hinaus hängen GAs auch von Ihrer Mindestanzahl an generierten Generationen ab. Es gibt viele Varianten des GA, aber die Rechenzeit eines GA ist, so kann man argumentieren, benutzerabhängig.

Randnotizen:

  • Diese Algorithmen hängen auch davon ab, wie komplex Ihre Kostenfunktion ist, und von Ihren Konvergenzkriterien.
  • Die Rechenzeit ist eine Funktion der Genauigkeit Ihres Modells

Wenn Sie NLP schließlich als einen Algorithmus mit höherer Genauigkeit betrachten, stellt sich die Frage: „Was ist meine anfängliche Vermutung?“ um das NLP zu füttern (da Ihre Konvergenz in einem numerischen Algorithmus oft darauf basiert, wie nahe Sie an einer Antwort sind). Sie können PSO oder Primer-Vektor oder eine beliebige Anzahl/Kombination von Optimierungsroutinen als Aufwärm-/Anfangsschätzung für NLP oder ein Modell mit höherer Genauigkeit verwenden, das Sie in die Nähe einer hoffentlich guten Lösung bringt.

1: http://arc.aiaa.org/doi/abs/10.2514/1.A32989

Danke für deine schnelle Antwort! Einige Ihrer Punkte wurden auch in dem erwähnt, was ich bisher gelesen habe, aber das ist nur eine teilweise Antwort auf meine Frage; Nach dem, was Sie gesagt haben, sind GAs ziemlich gut, um globale Minima der Kostenfunktion zu finden, selbst mit einer schlechten ersten Schätzung, aber sie sind ziemlich langsam. Ich suche nach einer Lösung, die so schnell wie möglich ist, aber bei der das Finden der globalen Minima nicht erforderlich ist - eine "gute" Lösung ist in Ordnung. Ich bin mir also immer noch nicht sicher, welchen Ansatz ich wählen soll; Wie bereits erwähnt, sollte es sich um eine Vorschau handeln.
Sie haben vorgeschlagen, dass PSO als Präprozessor verwendet werden könnte, da sie eine gute Schätzung erstellen, aber langsam zur optimalen Lösung konvergieren. Ich weiß, diese Fragen sind ziemlich allgemein und daher schwer zu beantworten, aber nehmen Sie unser Sonnensystem als Beispiel: Wenn ich einen interplanetaren Transfer von, sagen wir, der Erde zum Jupiter berechnen wollte, berücksichtigen Sie alle Planeten und die Sonne und begrenzen Sie die Übergangszeit bis zu einem Jahr wäre es möglich, die notwendigen Manöver innerhalb einer Minute zu berechnen? Bitte entschuldigen Sie diese Art von Fragen, aber ich bin auf diesem Gebiet ziemlich unerfahren.