Partikelbewegung im Strömungsfeld

Mitglied seit
05.11.2004
Beiträge
1.508
Reaktionen
0
Website
ips-clan.com
Servus,

ich habe ein vorgegebenes 2D-Strömungsfeld um eine Kugel. Ich möchte mir allerdings nicht die Stromlinien des Fluids plotten, sondern die Bahn eines Partikels im Fluid!

Das Geschwindigkeits bzw. Strömungsfeld ist ortsabhängig (x,y). Mein erster Ansatz war nun zuerstmal die Stromlinien zu plotten. Dazu löste ich die Bewegungsgleichung iterativ.

Ort_x(i) = Ort_x(i-1) + v_x(i-1)*delta_t + 0,5*delta_v_x(i-1)*delta_t (der letzte Term ist gekürzt im Grunde 0,5*a*t²; a = delta_v/delta_t)
Für die y-Positionen ist es analog.

Ziel ist es eine sog. Grenzpartikelbahn zu finden, wo das Partikel letzendlich auf die Kugel auftrifft. Das Bild zeigt ein paar Stromlinien. Das sind reine Lösungen der obigen Bewegungsgleichung. Das passt auch alles.
partikelbahnennqsfq.png


Habe ich nun aber Partikel im Fluid, so kann ich im einfachsten Fall sagen, dass sie sehr wenig Masse haben (kaum träge) und der Strömung perfekt folgen können -> Partikelbahn = Stromlinie. Habe ich nun aber schwerere Teilchen oder externe Kräfte wie z.B. elektrische, dann verhält sich das Partikel anders. Es hat eine andere Bahntrajektorie als die Stromlinie.. und hier ist das Problem, WO füge ich diese zusätzlichen Terme in die Gleichung ein?
Mein erster Gedanke war, ich füge diese externen Kräfte, die auf das Partikel wirken, in den Beschleunigungsterm ein. Also beispielsweise F_elektrisch = Masse(Partikel)*a(Partikel) --> a(Partikel) = F/m und dieses a schreibe ich dann in die Gleichung:

Ort_x(i) = Ort_x(i-1) + v_x(i-1)*delta_t + 0,5*(delta_v_x(i-1)/delta_t + a(Partikel))*delta_t^2

Macht das alles Sinn? Ich hoffe, ich konnte es einigermaßen verständlich rüberbringen. Bei Unklarheiten mache ich gerne Ergänzungen.

Vielen Dank



Edit: mache ich es so, wie ich es oben geschrieben habe, dann schaffe ich es schon eine Stromlinie in die Kugel zu lenken.
treffer8us9a.png

Aber habe ich jetzt wirklich eine Partikelbahn beschrieben oder einfach nur die Stromlinie in die Kugel gelenkt?
 

mfb

Mitglied seit
18.07.2003
Beiträge
791
Reaktionen
0
Website
diablo3.ingame.de
Ich denke du wirst für die Partikel sowohl Geschwindigkeit als auch Ort fortschreiben müssen.

Ort_x(i) = Ort_x(i-1) + v_x(i-1)*delta_t
v_x(i) = v_x(i-1) + c*delta_t*(v_fluid(Ort_x(i-1)) - v_x(i-1))

Sowas in der Art, über das Integrationsschema müsste man sich nochmal Gedanken machen. Beschleunigung ergibt sich aus der Geschwindigkeitsdifferenz Teilchen<->Fluid. Ich habe hier einen linearen Zusammenhang angenommen, falls dein kleines Teilchen Turbulenz erzeugt brauchst du vielleicht einen quadratischen Term.
 
Mitglied seit
05.11.2004
Beiträge
1.508
Reaktionen
0
Website
ips-clan.com
Hey mfb,

danke für deine Anregungen, aber ich komme damit noch ned so klar..
v_x(i) = v_x(i-1) + c*delta_t*(v_fluid(Ort_x(i-1)) - v_x(i-1))
hier hast du dich vertan oder? delta_t*delta_v ist ja keine Geschwindigkeit. Und wenn ich dich korrigiere, dann stünde c*delta_t*((v_fluid(Ort_x(i-1)) - v_x(i-1))/delta_t)) da und das kann ich wiederum alles rauskürzen (v_x(i) = c*v_fluid)

Wie sieht es denn mit meinem Ansatz aus noch einen Beschleunigungsterm aufgrund externer Kräfte einzufügen? Kompletter Unsinn oder eine Möglichkeit?

Ich stells mir am Ende so vor, dass ich die Partikelmasse/elektrische Kräfte usw per Hand ändere und mir dann dementsprechend verschiedene Partikelbahnen geplottet werden.

Zu meinem Verständnis noch: Kann man sagen, dass ein Strömungsfeld eine Art Kraftfeld ist? Ich habe immer einen Geschwindigkeitsgradienten (=Beschleunigung) und Beschleunigungen kriege ich nur, falls Kräfte einwirken. Ist also dieses Strömungsfeld ein ortsabhängiges Kraftfeld?

Den Ansatz von mfb finde ich aber generell recht gut. Den Grundgedanken hatte ich auch bei meiner Einführung des Beschleunigungsterm im Sinne, jedoch bin ich mir einfach nicht sicher, ob das so "einfach" geht.
Ich dachte auch an superponieren. Teilchenbewegungsgleichung aufstellen und sie mit dem Strömungsfeld überlagern, indem ich die delta_v von Fluid<->Partikel ansetze (@mfb).
 

mfb

Mitglied seit
18.07.2003
Beiträge
791
Reaktionen
0
Website
diablo3.ingame.de
c ist ein Faktor, der die Wechselwirkung zwischen Teilchen und Strömung parametrisiert, und hat die Einheit 1/Zeit (quasi die typische Zeitskala deines Teilchens wenn es sich relativ zum Medium bewegt).

Wie sieht es denn mit meinem Ansatz aus noch einen Beschleunigungsterm aufgrund externer Kräfte einzufügen? Kompletter Unsinn oder eine Möglichkeit?
Kein Problem, einfach dazuschreiben.

Zu meinem Verständnis noch: Kann man sagen, dass ein Strömungsfeld eine Art Kraftfeld ist? Ich habe immer einen Geschwindigkeitsgradienten (=Beschleunigung) und Beschleunigungen kriege ich nur, falls Kräfte einwirken. Ist also dieses Strömungsfeld ein ortsabhängiges Kraftfeld?
Die Kraft hängt vom Ort und der Teilchenbewegung ab, insofern ist das komplizierter als ein ortsabhängiges Kraftfeld.
 
Mitglied seit
05.11.2004
Beiträge
1.508
Reaktionen
0
Website
ips-clan.com
ok, danke. über die inverse zeitskala hab ich schon was gelesen, konnte es nur hier nicht verknüpfen^^

Leider muss ich nochmal nachbohren:
Kein Problem, einfach dazuschreiben

Also du denkst schon, dass ich dann daraus eine Partikelbahn bekomme, wenn ich die einwirkenden Kräfte mit einfließen lasse? Oder lenke ich einfach die Stromlinien um, weil die Annahme (welche ich halt nicht haben möchte) gilt, dass das Partikel der Stromlinie exakt folgen kann. sry :)
 

mfb

Mitglied seit
18.07.2003
Beiträge
791
Reaktionen
0
Website
diablo3.ingame.de
Zunächst mal bestimmst du deine Stromlinien - unter der Annahme, dass dein Teilchen diese nicht wesentlich beeinflusst (sonst wird es kompliziert).
Dann bestimmst du auf Basis dieser Stromlinien die Teilchenbahn. Dazu brauchst du eine Funktion, die die Beschleunigung bestimmt. In meinem Beispiel ist das c*(delta_v) gewesen, wobei delta_v die Partikelbewegung minus der Strombewegung ist. Du kannst aber auch c*(delta_v)+F_extern mit beliebigen externen Kräften nutzen.

Wenn du die Beschleunigung kennst, ist der Rest einfach schrittweise Integration. Bestimme ausgehend von Position und Geschwindigkeit die Beschleunigung, passe die Geschwindigkeit an, passe die Position an, fange von vorne an.
 
Mitglied seit
05.11.2004
Beiträge
1.508
Reaktionen
0
Website
ips-clan.com
jawoll, vielen Dank!

ich habe mich da jetzt an deinen Guide gehalten und ich denke da steckt Potential dahinter :P.
ich habe dein c als tau definiert:

tau = Masse(Partikel)/6*pi*Viskosität(Luft)*Radius(Partikel)

v_Partikel_x(i)=[v_Fluid_x(Ort_Partikel_x)](i-1)-tau*(1-rho(Luft)/rho(Partikel))*g
Ort_Partikel_x(i)=Ort_Partikel_x(i-1)+delta_t*v_Partikel_x(i-1)
y wieder analog.

Das Ergebnis passt auf den ersten Blick mal. g zeigt in negativer x-Richtung --> die Partikelbahn sieht demnach plausibel aus.
partikelbahn_stromlinj4x74.png


Das Geschwindigkeitsanpassen verstehe ich grade im Moment noch ned so, aber das schau ich mir nachher an^^

Vielen Dank mfb

Edit: ja jetzt glaube weiß ich, was du mit der Geschwindigkeitsanpassung meintest^^ Ich muss natürlich den Ort des Partikels in das Strömungsfeld einsetzen.
 
Zuletzt bearbeitet:
Mitglied seit
05.11.2004
Beiträge
1.508
Reaktionen
0
Website
ips-clan.com
da hast du recht, ich nahm Stationärität an...:hammer:
Du meinst schon den mx''-Term, den ich dann einfach weggelassen habe? Wo ich etwas über die Zeitskala gelesen habe, stand drin:

Im weiteren Verlauf soll die Relaxationszeit [tau] den wesentlichen Indikator für die Trägheit eines Tropfens darstellen. Kleines [tau] bedeutet schwach ausgeprägte Trägheit, und umgekehrt.

hmm :hum:

Falls mein erster Satz völliger Blödsinn ist, im tau steckt doch die Masse des Partikels mit drin..?!

[Hirn ausgelaugt]
 
Zuletzt bearbeitet:
Mitglied seit
21.01.2009
Beiträge
667
Reaktionen
0
kannst du nicht einfach das Kräftegleichgewicht aufstellen?

mx'' = F + 0.5*rho*(v_fluid - v_partikel)^2*A*cw
 
Zuletzt bearbeitet:

mfb

Mitglied seit
18.07.2003
Beiträge
791
Reaktionen
0
Website
diablo3.ingame.de
Das tau beeinflusst die Beschleunigung, nicht (direkt) die Geschwindigkeit. Um Trägheit zu berücksichtigen muss deine Kurve zwingend die vorherige Geschwindigkeit berücksichtigen, um die neue Geschwindigkeit zu berechnen. Die Änderung davon ist eben durch die Beschleunigung gegeben.

ma = [Summe aller Kräfte]
a ist die zeitliche Änderung der Geschwindigkeit, und die Geschwindigkeit ist die zeitliche Änderung des Orts.

[Summe aller Kräfte] sind externe Kräfte sowie m/tau * (v_fluid - v_partikel).
Größeres tau -> kleinere Beschleunigung durch Geschwindigkeitsdifferenzen -> größere Trägheit.
 
Mitglied seit
05.11.2004
Beiträge
1.508
Reaktionen
0
Website
ips-clan.com
Hey,

ja das Kräftegleichgewicht habe ich angesetzt. Es waren in diesem Fall die Auftriebskraft, das Stoke'sche Reibungsgesetz und die Schwerkraft. Da ich Stationärität vorausgesetzt hatte, fiehl der ma-Term natürlich weg. Ich will ihn aber eigentlich schon drinhaben^^

Nach ein paar Umformungen auf dem Papier komme ich dann auf folgendes:
tau*delta_v_Partikel/delta_t = v_Fluid-v_Partikel+tau*g*(1-rho_Fluid/rho_Partikel)
<->
tau*(v_Partikel(i)-v_Partikel(i-1))/delta_t = v_Fluid(x,y)(i-1)-v_Partikel(i)+tau*g*(1-rho_Fluid/rho_Partikel)

Aufgelöst nach v_Partikel(i):

v_Partikel(i) = (1/(1+delta_t/tau))*(v_Partikel(i-1)+(delta_t/tau)*(v_Fluid(x,y)(i-1)+tau*g*(1-rho_Fluid/rho_Partikel)))
Ich habe noch keine Vereinfachungen/Umformungen gemacht, aber würde der Ansatz stimmen? Streiche ich den ma-Term wieder raus, kriege ich meine obige Formel.

Ich bin mir allerdings grade noch ein bisschen unsicher mit den Iterationszahlen i. Ich glaube fast in dem fett gedruckten Term muss ein (i) statt dem (i-1) rein, aber dann müsste ich ja schon den Ort(i) kennen, den ich mir ja erst mit der Geschwindigkeit v_Partikel(i) bestimme..?

TBC..

Sieht bisher mal plausibel aus, schwerere Partikel fliegen viel länger "gerade aus" bei Kurven und leichte Partikel folgen den Stromlinien nahezu perfekt.
 
Zuletzt bearbeitet:

mfb

Mitglied seit
18.07.2003
Beiträge
791
Reaktionen
0
Website
diablo3.ingame.de
Die Frage nach i, i-1 ist nicht einfach zu beantworten. Bei "v_Fluid-v_Partikel" sollten jedenfalls beide am gleichen Ort (also auch zur gleichen Zeit) ausgewertet werden.

Die einfachste Möglichkeit ist, mit der Geschwindigkeit anzufangen und dabei jeweils die alten Geschwindigkeits- und Ortswerte zu nehmen. Danach dann den neuen Ort anhand der alten Geschwindigkeit bestimmen. Das entspricht in etwa dem expliziten Euler-Verfahren.
Besser wäre sowas wie Leapfrog, insbesondere in der Darstellung im Punkt "Mehrschrittverfahren" ist das ziemlich handlich und liefert gute Ergebnisse.

Es gibt noch viel mehr Verfahren.
 
Mitglied seit
21.01.2009
Beiträge
667
Reaktionen
0
Du musst deine DGL 2. Ordnung erstmal in ein System erster Ordnung umwandeln, dann kannst du darauf ein numerisches Verfahren (z.B. Euler Vorwärts) anwenden.

x(i) = x(i-1) + v(i-1)*dt
v(i) = v(i-1) + a(i-1)*dt
a(i) = F(i)/m + rho_fluid/(2m)*(v_fluid(x(i)) - v(i))^2*A*cw

(Wenn du keinen quadratischen Term bei den Geschwindigkeiten haben willst, kannst du auch nur das erste Glied der Taylorentwicklung nehmen.)
In dem Term rho_fluid/(2m)*(v_fluid(x(i)) - v(i))^2*A*cw steckt dann dein tau.


Da ich Stationärität vorausgesetzt hatte, fiehl der ma-Term natürlich weg.

Du berechnest hier eine Teilchenbewegung und keine Strömung, da kannst du den ma Term nicht einfach weglassen. Das würde bedeuten, dass dein Partikel masselos wäre.
 
Zuletzt bearbeitet:
Mitglied seit
05.11.2004
Beiträge
1.508
Reaktionen
0
Website
ips-clan.com
Morgen Jungs,

nochmals vielen Dank für die Vorschläge usw.:)

Zu den DGLs und deren Solver: Ich arbeite mit MatLab und da kann man DGLs 2. Ordnung nicht ohne Weiteres lösen, sondern muss sie mit einem "Trick" in ein System DGLs 1. Ordnung umschreiben, damit man sie mit den Standard-Solvern lösen kann.
Ich wusste allerdings im Vorfeld nicht, welche Ordnung ich bekommen werde, weil ich noch nicht wusste, welche Kräfte ich alle auf mein Partikel einwirken lasse. Darum habe ich mir selber ein einfaches Programm geschrieben, welches mir die Bewegungsgleichungen löst (von Prinzip her ist es wie mfb schon sagte ein expliziter Euler).
Das Leapfrog-Verfahren werde ich mir mal anschauen! Ich wollte nun zuerst mal versuchen die "basics" zum Laufen zu bringen. Ab jetzt kann dann optimiert werden. (ich baute noch elektrische Kräfte ein und habe noch vor die Diffusion bzw. Brownsche-Molekularbewegung zu implementieren)

@cheeseNonion
Wie schon gesagt, du hast recht, dass man z.B. für MatLab die Ordnung der DGLs verringern muss, ums mit den Standard-Solvern zu lösen, aber ich mache es per "Hand". Mein tau ist in der Stoke'schen Reibung drin, vielleicht baue ich später noch deine Newton'sche Reibung ein, falls meine Reynolds-Zahlen größer werden.

Stationärität bedeutet doch, dass keine Kräfte bzw. ein Kräftegleichgewicht auf mein Partikel wirkt. Es wird nicht beschleunigt! Diese Annahme hätte gegolten, wenn es sich z.B. um einen Fallschirmspringer (=Partikel) gehandelt hätte, der dann seinen Schirm öffnet und irgendwann mit einer konstanten Geschwindigkeit landet, da Gewichtskraft = Luftwiderstand ist. Bei mir gebe ich ja ein Strömungsfeld um eine Kugel vor, sodass ich immer Richtungsänderungen, sprich Krafteinwirkungen, habe.
Aber masselos würde ich jetzt nicht sagen.

Noch ein paar Ergebnisse zur Trägheit ohne elektrische Kräfte:
leicht0xsdn.png

ein leichtes Partikel kann der Stromlinie perfekt folgen -> plausibel

mittelschwerqwsxg.png

ein mittelschweres Partikel kann der Stromlinie noch einigermaßen gut folgen, aber wie man recht schön sehen kann, ist die Partikelbahn ein bisschen nach rechts verschoben, was Trägheit ja bedeutet -> plausibel

schwer33sor.png

das schwere Partikel lässt sich gar nicht beirren und vom Kurs abbringen und kracht schön auf die Kugel -> plausibel

Ist noch ein elektrisches Feld im Spiel, werden die Partikel noch schneller an der Kugel abgeschieden:
elektrisch_leicht0wsf7.png

hier nochmal das leichte Partikel bei angelegtem elektrischen Feld. Jetzt trifft das Partikel die Kugel.

Sollte ich noch Fehler finden, so werde ich sie hier noch posten. Es ist auch irgendwo klar, dass Fehler meinerseits gemacht wurden, aber das soll nur eine erste Abschätzung werden :).

Bedanke mich für eure gute Hilfe!
 
Mitglied seit
05.08.2012
Beiträge
1.408
Reaktionen
0
Ich finde ja die elektrische Ablenkung im letzten Bild, gerade rund um den Einschlagpunkt sieht übertrieben aus.
Wird aber schon stimmen, ihr seid die Experten.
 
Mitglied seit
21.01.2009
Beiträge
667
Reaktionen
0
Na gut, masse- (Stromlinien) oder beschleunigungslos (Fallschirmspringer) ;)
Das zweite wäre aber einfach nur die Triviallösung (eine gerade Linie mit konstanter Geschwindigkeit).

x(i) = x(i-1) + v(i-1)*dt
v(i) = v(i-1) + a(i-1)*dt
a(i) = F(i)/m + rho_fluid/(2m)*(v_fluid(x(i)) - v(i))^2*A*cw

Das, was ich da oben hingeschrieben habe, ist die Lösung "per Hand" (mit dem expl. EV). Das kannst du quasi so in Matlab eintippen. Unsere beiden Lösungen sollten aber äquivalent sein, ich wollte dir nur die Herleitung zeigen.

Wenn du Stoke'sche Reibung annimmst wird die letzte Gleichung zu

a(i) = F(i)/m + 1/(m*tau)*(v_fluid(i) - v(i))

Das mit der Taylorentwicklung war Mist.
 
Zuletzt bearbeitet:
Mitglied seit
05.11.2004
Beiträge
1.508
Reaktionen
0
Website
ips-clan.com
Ich finde ja die elektrische Ablenkung im letzten Bild, gerade rund um den Einschlagpunkt sieht übertrieben aus.
Wird aber schon stimmen, ihr seid die Experten.

Ich bin auch kein Experte, aber die elektrische Kraft ist ~1/r^2 und in dem vorliegendem Strömungsfeld ist per Definition an der Stelle x=0 die Vertikalgeschwindigkeit v_Fluid_y Null. Auch kurz davor (und dahinter) sind die vertikalen Geschwindigkeiten relativ niedrig. Also muss die elektrische Kraft nicht gegen einen Geschwindigkeitsgradienten ankämpfen.

strmungsfeld_vykfjp4.jpg

In der Mitte bei v=0 ist die Kugel. Sie war hier noch größer als in den anderen Bildern^^
 

mfb

Mitglied seit
18.07.2003
Beiträge
791
Reaktionen
0
Website
diablo3.ingame.de
Sieht hübsch aus :).
Auch die Bahn mit E-Feld kann ich mir gut vorstellen. Innerhalb des Knicks ist das E-Feld weitgehend konstant, aber die Geschwindigkeit des Fluids nimmt ab und das Teilchen fliegt zunehmend gerade auf die Kugel zu.
 
Oben