Projektilbewegung mit Drag

Das übergeordnete Ziel ist es, ein Mathematica-Programm zu schreiben, das den Startwinkel berechnet, der die größte Reichweite mit der Funktion [RandomInt] ergibt, aber ich hatte Probleme mit der Physik.

Bei der 2D-Trajektion ohne Reibung kam die größte Reichweite im Winkel 45 .

Aber unter Verwendung des quadratischen Reibungsmodells

F D R A G = k v 2 , k = 1 2 C D ρ A

Wo ρ ist die Luftdichte, A ist die Querschnittsfläche des sich bewegenden Objekts (in diesem Fall ein Kreis) und C D ist der Luftwiderstandsbeiwert.

v 2 = v X 2 + v j 2

An diesem Punkt bin ich mir nicht sicher, wie ich das Problem einrichten soll, da v ist auf beides angewiesen v X Und v j , und können nicht als linear unabhängig voneinander modelliert werden.

Einige gegebene Parameter des Kugelprojektils: (Ich gehe davon aus, dass diese Werte beim Schreiben des Programms leicht in die allgemeine Gleichung eingesetzt werden können)

Anfangsgeschwindigkeit = Zwischen 30 40 M S Masse = 0,145 k G Radius = 0,0367 M Luftdichte = 1.2 k G / M 3 Luftwiderstandsbeiwert = 0,46


Wie würde ich beide Geschwindigkeiten in eine Gleichung einbauen? Für einfache Kinematiken gilt einfach:

T Ö T A l R A N G e = v X T
und wir lösten für v X durch Verwendung von trig-Eigenschaften von v 0 . Aber ist es richtig, diese Widerstandskraft mit den gleichen trigonometrischen Eigenschaften zu modellieren?

v j = v S ich N θ , v X = v C Ö S θ

F = M A = k v 2 M G = ( 1 2 C D ρ A ( v S ich N θ 2 + v C Ö S θ 2 ) M G

Der quadratische 2D-Widerstand wurde auch in diesem Phys.SE-Beitrag und den darin enthaltenen Links berücksichtigt.

Antworten (3)

In zwei Dimensionen kann das zweite Newtonsche Gesetz in Vektorform geschrieben werden als

F N e T = M A
In diesem Fall ist die Nettokraft
F N e T = M G k v 2 v v = M G k v v
so lautet die Bewegungsgleichung
M A = M G k v v
In Komponenten, wenn wir das Positive wählen j Richtung vertikal sein, und mit v = v X 2 + v j 2 wie Sie betonen, erhalten wir
M A X = k v X 2 + v j 2 v X , M A j = M G k v X 2 + v j 2 v j
wie Sie sehen können, sind diese Differentialgleichungen gekoppelt; Die X Gleichung beinhaltet v j und das j -Gleichung beinhaltet v X im Gegensatz zu dem Fall, in dem kein Widerstand vorhanden ist. Sie sollten in der Lage sein, diese simultanen Gleichungen auf Mathematica ziemlich einfach numerisch zu lösen.

Insbesondere können Sie diese Gleichungen lösen, indem Sie die Anfangsposition angeben X ( 0 ) = ( X ( 0 ) , j ( 0 ) und die Anfangsgeschwindigkeit v ( 0 ) = ( v X ( 0 ) , v j ( 0 ) ) = ( v ( 0 ) cos θ , v ( 0 ) Sünde θ ) Wo θ ist der Anfangswinkel, in dem das Projektil abgefeuert wird.

Und wenn Sie herausfinden möchten, bei welchem ​​Winkel die größte Entfernung erreicht werden kann, können Sie die Goldschnittsuche verwenden .

Sie wissen, dass der Luftwiderstand unter den gegebenen kontrollierten Bedingungen in jeder Richtung gleich ist, also müssen Sie nur die Komponente der Geschwindigkeit in der Richtung berechnen, eine senkrecht und die andere parallel zur Bezugsachse und dann die Geschwindigkeit auf beiden Seiten berechnen und dann berechnen der Radius. Wenn Ihnen das geholfen hat, ist es in Ordnung, oder wenn Sie möchten, werde ich es für Sie lösen

Ich schlage vor, eine Funktion zu definieren F ( θ ) das gibt Ihnen die Reichweite des Projektils für einen bestimmten Winkel. Berechnen F Numerisches Lösen der ODE (Sie könnten für diese Aufgabe eine Runge-Kutta-Methode verwenden http://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods )

M D 2 X D T 2 = M G k v v
mit Anfangszustand
X ( 0 ) = ( 0 , 0 ) v ( 0 ) = v X cos ( θ ) + v j Sünde ( θ )
Verwenden Sie dann die ternäre Suche in diesem F um Ihr Ergebnis zu erhalten: http://en.wikipedia.org/wiki/Ternary_search . Sie sollten diesen Algorithmus in der Programmiersprache Ihrer Wahl implementieren können.