Wie berechnet man Geschwindigkeiten nach dem Zusammenstoß?

Ich schreibe gerade ein Programm für einen Partikelsimulator. Eine der Anforderungen ist, dass die Partikel realistisch kollidieren. Ich weiß jedoch nicht, wie ich die Endgeschwindigkeiten berechnen soll.

Bei jeder Kollision habe ich die X -Komponente u j -Komponente jeder Geschwindigkeit sowie die Verschiebung und Masse jedes Teilchens.

Ist es möglich, die Richtung und Größe ihrer Geschwindigkeiten nach der Kollision zu berechnen? Wenn das so ist, wie?

Lesen Sie zunächst etwas über Impulserhaltung
Ich habe darüber gelesen und versucht, sowohl die Erhaltung des Impulses als auch die Erhaltung der kinetischen Energie zu verwenden, um eine schöne Gleichung zu finden, aber ich endete mit dieser extrem komplizierten Arbeit. Ich habe mich gefragt, ob es einen besseren Weg gibt.
Der einzig bessere Weg besteht darin, größtenteils unrealistische Annahmen zu treffen (z. B. alle Frontalkollisionen). Wenn Sie Realismus wollen, müssen Sie diese chaotische Formel haben.
Ein Problem: Es gibt a ± an einer Stelle unterschreiben: Ich weiß nicht, wie ich damit umgehen soll.
Ich glaube nicht, dass es eine geben soll ± dort drin, aber es ist möglich, dass das Vorzeichen davon abhängt, ob es sich um eine Frontalkollision handelt oder nicht (dh beide Teilchen in die gleiche Richtung oder in entgegengesetzte Richtungen).
Was hast du probiert und was verstehst du? Wir wissen also, wo wir anfangen müssen. Auch welche Art von Partikeln Sie verwenden möchten, gehe ich von Kugeln aus.
Haben diese Partikel irgendeine Form oder sind es nur Punkte?

Antworten (2)

2-dimensionale Kollision kann im Fall von Kugeln auf ein 1-dimensionales Problem reduziert werden – siehe hier . Der ± Ihnen beim Lösen der kinetischen Energie begegnet, ist wahrscheinlich, weil es zwei Lösungen gibt und die Gleichungen von beiden erfüllt werden. Eine Lösung besteht einfach darin, dass sich die Partikel direkt durchdringen, was Sie verwerfen können.

Diese Gleichungen waren genau das, wonach ich gesucht habe - danke!
Kleiner Kommentar zum Beitrag (v1): Bitte denken Sie daran, Autor, Titel etc. des Links explizit anzugeben, damit der Link im Falle einer Linkfäule rekonstruiert werden kann.

Hinweis: Die einfachste Methode zum Berechnen von Kollisionen verwendet eine Methode zum Anwenden von Impulsen auf Objekte, die zu einem bestimmten Zeitpunkt kollidieren. Der einfachste Algorithmus besteht darin, zu testen, ob sich zwei Objekte zu einem bestimmten Zeitpunkt schneiden, und wenn dies der Fall ist, fixieren Sie es so, dass sie sich nicht mehr schneiden, und wenden Sie dann die berechneten Impulse auf jedes Objekt an. Dies ist jedoch nicht ganz richtig. Sie müssen wirklich herausfinden, welche Kollisionen zuerst stattgefunden haben, die gesamte Simulation zum Moment der ersten Kollision zurückversetzen und die neuen Geschwindigkeiten genau dann berechnen . Dies funktioniert korrekt, wenn Sie viele momentane und voneinander abhängige Kollisionen haben.

Im schlimmsten Fall, wenn die Partikel dicht sind und miteinander in Kontakt kommen, ist die einfachste Methode, die ich gefunden habe (die in dieser Simulation verwendet wird und die ich in dieser Simulation zum Umgang mit Kollisionen verwendet habe ), Kräfte anstelle von Impulsen zu verwenden . Wieder reduzieren Sie es auf ein 1-dimensionales Problem und haben die Wechselwirkungskraft zwischen zwei Teilchen:

F = k D μ v

Wo μ Und k sind Konstanten, k D ist eine Hookesche Federabstoßungskraft , v ist die relative Geschwindigkeit der beiden Teilchen entlang ihrer Kollisionsachse und μ v ist eine viskose Reibungskraft .

Ich glaube, wenn Sie eine genauere Kontaktphysik wünschen (mit genauen Gleitpunktkontakten anstelle einer Federkraft), müssen Sie eine viel ausgefeiltere Methode anwenden.