Ausnutzung der maximalen Beschleunigung aaa für Verschiebung ddd mit Anfangsgeschwindigkeit v0v0v_0 und Endgeschwindigkeit v1v1v_1

Problem

Mein Ziel ist es, ein Objekt von Punkt a nach b zu bewegen (Verschiebung D ) so schnell wie möglich unter Ausnutzung der maximal verfügbaren Beschleunigung A M A X , unter Berücksichtigung der Anfangsgeschwindigkeit v 0 und Endgeschwindigkeit v 1 .

Ausarbeitung

Ich arbeite an der Physik von Raumschiffen, was bedeutet, dass es keine Reibung oder Luftwiderstand gibt. Die Richtung des Objekts ist nicht notwendigerweise parallel zur Richtung seiner Geschwindigkeit, noch sind die Anfangs- und Endgeschwindigkeiten notwendigerweise parallel.


Auflösen für eine Dimension

Ich habe damit begonnen, dies in einer Dimension mit den Formeln für konstante Beschleunigung zu lösen , insbesondere:

D = v 1 2 v 0 2 2 A
Wie meine Intuition mir sagt, sollte es eine Verschiebung geben D 0 wo konstante Beschleunigung A M A X durchgeführt wird (wo das Objekt seine maximale Geschwindigkeit erreicht v M A X ) gefolgt von einer Verschiebung D 1 wo ständige Verzögerung A M A X ist durchgeführt. Aus der obigen Gleichung und aus:

D = D 0 + D 1

Wir glauben, dass:

D = v M A X 2 v 0 2 2 A M A X + v 1 2 v M A X 2 2 A M A X

Auflösen für v M A X gibt:

v M A X 2 = 2 A M A X D + v 1 2 + v 0 2 2

Mit diesen Informationen kann ich das Objekt beschleunigen bis v M A X erreicht ist und dann abbremsen.


Lösen für 3 Dimensionen

Dies in 3 Dimensionen zu tun ist etwas schwieriger. Ich gehe davon aus | | A | | sollte konstant und gleich der maximal verfügbaren Beschleunigung sein A M A X . Mein erster Versuch hier war zu rechnen v M A X (wie oben) für jede Achse separat. Das Problem besteht jedoch darin, eine geeignete Beschleunigungsverteilung entlang jeder Achse zu finden, wenn sich die Verschiebung ändert (bei einem sich bewegenden Ziel), sodass das Objekt beispielsweise nicht in die Umlaufbahn geht.

In einem anderen Versuch habe ich die folgende feder-/dämpferähnliche Berechnung durchgeführt, um sie zu finden A :

S = v 1 v 0 + D
A = S | | S | | A M A X
Beim Beschleunigen funktioniert das gut, aber die Verzögerung setzt zu früh ein.

Ich habe versucht, im Internet nach diesen Informationen zu suchen, aber ohne Erfolg, irgendwelche Vorschläge?

Sind v 1 Und v 2 nicht unbedingt parallel?
Interessanter Link @Qmechanic, es ist sehr ähnlich, obwohl es nicht einfach ist, es in 3 Dimensionen anzuwenden.
@ ja72 Die Anfangs- und Endgeschwindigkeit sind nicht unbedingt parallel.

Antworten (2)

Am Ende habe ich eine Lösung von Christer Swahn aus seinem Blog verwendet: http://mmoarch.blogspot.se/2012/05/computing-space-travel.html

Die Trajektorie wird angenähert und dann unter Verwendung der Bisektionsmethode optimiert. Ein nahezu perfektes Ergebnis wird normalerweise nach 10 Iterationen erreicht. Siehe vollständige Lösung (Java-Implementierung) unter: http://mmoarch.blogspot.se/2012/05/computing-space-travel-implementation.html

Problem. Auf Masseobjekt M liegt bei R A = ( 0 0 0 ) mit Geschwindigkeit v A = ( v A 0 0 ) und muss Punkt erreichen R B = ( D X D j 0 ) mit Geschwindigkeit v B = ( v B cos θ v B Sünde θ 0 ) in der minimalen Zeitdauer, auf die die Beschleunigungsgröße begrenzt ist | A | G .

Gehen wir von einer allgemeinen Lösung aus und versuchen diese am Ende zu optimieren. Ich schlage einen fünfstufigen Prozess vor (inspiriert vom Rennwagenfahren). Ich ändere die Notation, um die Schritte besser verfolgen zu können. Auch der Richtungsvektor bei A ist e A = ( 1 0 0 ) und bei B ist e B = ( cos θ Sünde θ 0 ) . Auch die Normalenvektoren sind N A = ( 0 1 0 ) Und N B = ( Sünde θ cos θ 0 ) , Wo θ ist der erforderliche Drehwinkel zwischen A und B . Diese finden Sie unter cos θ = ± v A v B | v A | | v B | . Um das Zeichen zu finden, verwenden Sie S ich G N ( k ^ ( v A × v B ) ) um zu sehen, ob Sie nach links oder rechts abbiegen müssen.

  1. Beschleunigen Sie auf eine maximale Geschwindigkeit v 1 auf einer geraden Linie vom Startort R 0 = R A und Geschwindigkeit v 0 = v A e A . Die Endgeschwindigkeit ist v 1 = v 1 e A , Stellung R 1 = R A + v 1 2 v A 2 2 G e A , und Zeit T 1 = v 1 v A G .

  2. Verzögern Sie auf eine gewünschte Kurvengeschwindigkeit v C auf einer geraden Linie. Die Endgeschwindigkeit ist v 2 = v C e A , Stellung R 2 = R 1 + v 1 2 v C 2 2 G e A , und Zeit T 2 = T 1 + v 1 v C G .

  3. Drehen Sie, um Ihre Geschwindigkeit an die Endgeschwindigkeit anzupassen v B und entlang der geraden Linie positionieren, die durch den endgültigen Standort definiert ist R B und Geschwindigkeitsrichtung. Der Kurvenradius ist R = v C 2 G S ich G N ( θ ) . Die Endgeschwindigkeit ist v 3 = v C e B , Stellung ist R 3 = R 2 + ( N A N B ) v C 2 G S ich G N ( θ ) , und Zeit T 3 = T 2 + v C G θ .

  4. Beschleunigen Sie auf eine maximale Geschwindigkeit v 4 auf einer geraden Linie. Die Endgeschwindigkeit ist v 4 = v 4 e B , Stellung R 4 = R 3 + v 4 2 v C 2 2 G e B , und Zeit T 4 = T 3 + v 4 v C G .

  5. Bremsen Sie bis zur endgültigen Position ab R B und Geschwindigkeit v B = v B e B auf einer geraden Linie. Die Endgeschwindigkeit ist v B , Stellung R B = R 4 + v 4 2 v B 2 2 G e B , und Zeit T B = T 4 + v 4 v B G .

Skizzieren

Die Gesamtzeit ist

T = 1 G ( 2 v 1 + 2 v 4 + ( θ 2 ) v C ) 1 G ( v A + v B )
Wo v 1 , v 4 Und v C sind unbekannt. Endstellung ist
D X = 2 v 1 2 v A 2 v C 2 2 G + 2 v 4 2 v B 2 v C 2 2 G cos θ + v C 2 G | Sünde θ |
D j = 2 v 4 2 v B 2 v C 2 2 G Sünde θ + v C 2 G ( 1 cos θ ) S ich G N θ

Die letzte Position wird verwendet, um Geschwindigkeiten zu finden v 1 Und v 4

v 1 = v A 2 2 + v C 2 2 + G ( D X Sünde θ D j cos θ ) Sünde θ v C 2 | bräunen θ 2 |
v 4 = v B 2 2 + v C 2 2 + G D j Sünde θ v C 2 | bräunen θ 2 |

Am Ende ist die Zeit eine Funktion von v C nur, aber es ist nicht einfach, diese Funktion zu optimieren. Überlegen Sie, das Folgende zu lösen

D T D v C = 1 G ( 2 D v 1 D v C + 2 D v 4 D v C + θ 2 ) = 0

Danke für die Antwort, das ist eine gute Lösung im Rennwagenfahren. Leider arbeite ich an der Raumschiffphysik, was die optimale Route etwas anders macht, siehe mein Update.
Ihre Methode, John Alexiou, hat mir sehr gut gefallen. Wenn es keine Reibung gibt, wie bei einem Raumschiff, müssen wir einen Schub liefern, der variiert werden muss, um den gewünschten Punkt unter allen Einschränkungen zu erreichen. Wie können Sie Ihre Lösung ändern, können Sie mir sagen? Ich bin sehr daran interessiert, es zu lösen
@Paracetamol - Ich werde meine Antwort auf eine Frage nicht ändern, um Ihren spezifischen Bedürfnissen für eine nicht verwandte Frage gerecht zu werden. Bitte stellen Sie eine neue Frage mit den Anforderungen, die Sie haben.
Ich wollte nicht, dass Sie es ändern, ich meinte, was in diesem Fall passieren würde, da es auch hier gefragt wurde (nur als Kommentar hier), ohne die Antwort zu bearbeiten
@Paracetamol - Um die Kurve zu umrunden, ist zusätzlich zum Inline-Schub zum Beschleunigen und Verlangsamen ein senkrechter Schub erforderlich. Wenn der Tangentenvektor ist e ^ und der Normalenvektor ist N ^ Dann
v = v e ^ A = v ˙ e ^ + v 2 R N ^
So zerlegen sich Geschwindigkeiten und Beschleunigungen in tangentiale und normale Richtungen.