WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Tropfenprofil - Differentialgleichung

 

Soeckle
Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 04.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.07.2009, 14:20     Titel: Tropfenprofil - Differentialgleichung
  Antworten mit Zitat      
Hallo,

ich möchte das Profil eines hängenden Tropfen berechnen.
Dafür setze ich die Druckdifferenz (Kapillardruck) gleich dem aus der Gewichtskraft resultieren Kraft und der Referenzdruckdifferenz.

Ich komme damit auf folgende Gleichung:

sigma*(1/R_1+1/R_2)=-rho*g*z+2*sigma/r

wobei:
Code:

rho=1000;                        %Dichte
sigma=72.75*10^(-3);      %Oberflaechenspannung
g=9.81;                            %Gravitationsbeschleunigung
r=1;                                 %Radius am Scheitelpunkt (angenommen)
 


Nun weiss ich weiterhin wie sich R_1 und R_2 berechnen:
Code:

%sigma*((dz/dx)'/(1+(dzdx)^2)^(3/2)+dzdx/(x*(1+(dzdx)^2)^(1/2))=-rho*g*z+2*sigma/r
 


Ich habe dann weiterhin die Gleichung in eine Differentialgleichung 1.Ordnung umgewandelt und folgende Zeilen geschrieben:
Code:

options = odeset('RelTol', 1e-02,'AbsTol',1.0e-02);    
[x,z] = ode45(@tropfen,[0 10],[0.3; 0],options,rho,sigma,g,r);
 

mit der function
Code:

function [dzdx] = tropfen(x,z,rho,sigma,g,r)
dzdx = [z(2); (-rho*g*z(1)/sigma+2/r-z(2)/x/(1-z(2)^2)^(1/2))*(1+z(2)^2)^(3/2)];
 


Da der Tropfen symmetrisch ist, berechne ich nur für positive x. Weiterhin sind mir die Anfangsbedinungen bekannt. am Scheitelpunkt ist die erste Ableitung =0. Der Wert für z ist geschätzt oder geraten.
Leider bekomme ich nur komplexe Zahlen für z oder NaN. Hat jemand eine Idee, was ich hier vergessen haben könnte?

Vielen Dank schonmal für eure Hilfe,
LG,
Soeckle
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.07.2009, 14:33     Titel:
  Antworten mit Zitat      
Hallo,

die Funktion tropfen gibt beim ersten Aufruf schon NaN zurück. Das liegt daran, dass in dem Moment x = 0 und in der Funktion durch x geteilt wird.

Wo allerdings der Fehler in deinem Modell liegt, kann ich dir auch nicht beantworten. Oder doch? Wenn x eine Art Zeit ist, wundert es mich, dass x explizit in der Gleichung vorkommt.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Soeckle
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 04.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.07.2009, 15:06     Titel:
  Antworten mit Zitat      
Hallo Harald,

gut, das durch 0 teilen kann ich ja umgehen.
Dann heisst die Zeile folgenderweise:
Code:

[x,z] = ode45(@tropfen,[0.0001 10],[0.3; 0],options,rho,sigma,g,r);


Das ist natürlich nicht sonderlich elegant, aber bringt Fortschritt. Jetzt ernte ich wieder komplexe Zahlen, leider auch nicht mein Ziel.

Vermutlich liegt das an x, welches, wie du schon meintest, explizit in der Gleichung steht. Ich habe mir noch andere Ausführungen zum Thema Tropfen angeschaut. Alle nutzen diese Gleichung. Einige nutzen das klassiche Runge-Kutta-Verfahren. Aber ich denke, es muss auch einfacher gehen.
Noch jemand eine Idee?

lg,
soeckle
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.07.2009, 15:38     Titel:
  Antworten mit Zitat      
Hallo,

Das Problem ist, dass z(2) nach -1 läuft (schau dir die Werte an, bevor sie komplex werden) und damit der Wert unter der Wurzel negativ wird. Hat sich da vielleicht ein Vorzeichenfehler eingeschlichen, bei dem Term (1-z(2)^2)^(1/2) ?

Bei mir gibt es übrigens auch eine Warnung, die auf ein Problem hindeutet:
Warning: Failure at t=1.338858e-004. Unable to meet integration tolerances without reducing the step size below the smallest value
allowed (4.336809e-019) at time t.

Wenn du dir die Rückgabe (x-Werte) anschaust, siehst du, dass die Schrittweite da vollkommen in die Knie gegangen ist.

Kurz und gut, meine Vermutung: entweder ein Vorzeichenfehler, oder das Modell liefert nach einer gewissen Zeit keine brauchbaren Ergebnisse mehr (z.B. wenn der Tropfen reisst).

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Soeckle
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 04.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.07.2009, 19:25     Titel:
  Antworten mit Zitat      
Hallo,

super. Tatsächlich, das war ein Vorzeichenfehler. (wieso ist mir das nicht aufgefallen).

Dennoch bleibt das Problem weiterhin bestehen:
x ist nicht die Zeit! Hier soll nur die Tropfenform (als Querschnitt in der z-x-Ebene) abgebildet werden.
Die Tropfenform ergibt sich allein aus den Flüssigkeitseigenschaften (Dichte, Oberflächenspannung) und der Gravitationsbeschleunigung.
Ich gebe mit "r" nur den Radius im Scheitelpunkt vor.
Es stimmt, x läuft eigentlich irgendwo zwischen 0 und 0.02. Das kann man sich ja vorstellen. Aber alles probieren/wertebereiche ändern half bisher nichts.

Noch mehr gute Ideen?

LG,
soeckle
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.07.2009, 08:35     Titel:
  Antworten mit Zitat      
Guten Morgen,

Leider erst mal nicht.
Das Problem liegt darin, dass die Ableitung in z(2) schneller steigt als z(2) an sich, was zu einem mehr als exponentiellen Verhalten führen würde.

Ich kann also nur empfehlen, die Gleichung nochmal sorgfältig zu überprüfen (hast du evtl eine Referenz dazu?)

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Soeckle
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 04.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.07.2009, 11:30     Titel:
  Antworten mit Zitat      
Hallo,

es gibt wenige Beschreibungen zum hängenden Tropfen. Die meisten Publikationen beziehen sich auf Probleme mit sitzenden Tropfen. Aber hier mal ein öffentlicher Link, wo die Herleitung der Gleichung beschrieben wird.

http://www.kruss.de/de/theorie/mess.....g-des-kontaktwinkels.html
unter 4.1 Die Fundamentalgleichung der Tropfenkontur.

Hier beziehen sie sich allerdings auf die Krümmungen und das Problem wird schlussendlich über Bogenlänge und Winkel beschrieben. Das sieht mir aber stark danach aus, als könnte ich das dann nicht mehr mit ode45 lösen. Denn dort steckt dann x,z,s und phi drin.
Ich dachte, das Problem sollte mit x und z vollständig beschrieben sein, oder irre ich mich da?

LG,
soeckle
Private Nachricht senden Benutzer-Profile anzeigen
 
Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 30.07.2009, 13:43     Titel:
  Antworten mit Zitat      
Shocked
Ich kann nur mit ein paar Ansätzen dienen...

* Vielleicht liegt das mit den Komplexen auch an
Code:
[0 10],[0.3; 0]
 

Also, das eine ist vertikal, das andere horizontal.

* Auf die Gefahr hin, mich völlig zu blamieren: fehlt für eine vollst. Beschreibung nicht noch der Volumeninhalt des Tröpfchens?
bzw: würdest du mit sowas wie V=x^2*z das System überdimensionieren ? Die DGLs scheinen sich für mich nur aus Addhäsion/Kohäsion und freiem Fall zu ergeben.

* bei der auskommentierten Gleichung tritt doch (dz/dx)' [-> Ableitung von dz/dx, oder?] auf, aber in deiner Funktion finde ich nur die Auflösung nach dzdx... Irgendwie fehlt da ein Integrationsschritt...
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.07.2009, 14:01     Titel:
  Antworten mit Zitat      
Die komplexe Ausgabe ist, glaube ich, vom Tisch.
Da das eine x-Werte (normalerweise Zeitintervall) und das andere z-Werte (kann generell auch einer oder viele sein) ist, sollten die Dimensionen keine Probleme sein.

Von der Physik eines solchen Systems habe ich leider keine Ahnung, ich kann bestenfalls bestehende Gleichungen umsetzen Smile

Wenn ich es richtig auffasse, ist es quasi eine DGL in dz/dx, deswegen kommt das sowie die Ableitung davon vor.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 30.07.2009, 14:30     Titel:
  Antworten mit Zitat      
Naja, die Physiker integrieren ja gerne mal über Körper...
Ich finde das alles etwas abgedreht...
Aber das mit dx/dz und dx*dz fiel mir halt auf... und ich könnte nur mit grosser Mühe die DGL umformulieren...
Private Nachricht senden Benutzer-Profile anzeigen
 
Soeckle
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 04.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.07.2009, 15:16     Titel:
  Antworten mit Zitat      
Hallo,

danke für die Hilfe und Denkanregungen von Euch.
Ich habe jetzt mal die einzelnen Schritte, wie ich von der Anfangsgleichung zu der Formulierung für Matlab gekommen bin, aufgeschrieben (siehe angehängte pdf-Datei). Versteckt sich dort ein Fehler?

Ich brauche hier das Volumen des Körpers nicht. Ich gebe ja noch 'r' als Radius im Scheitelpunkt vor. Weiterhin ist eine 'Anfangsbedingung' die Gesamthöhe des Tropfens gegeben. Damit ist eigentlich alles definiert.

Es bleibt eine Herausforderung.

LG,
soeckle

tropfen.pdf
 Beschreibung:

Download
 Dateiname:  tropfen.pdf
 Dateigröße:  35.34 KB
 Heruntergeladen:  507 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.07.2009, 15:33     Titel:
  Antworten mit Zitat      
Hallo,

überprüf doch nochmal, ob deine Startwerte sinnvoll sind. Ich habe das mal mit [0.001; 0] statt [0.3; 0] laufen lassen, und dann klappt das bei mir (und wenn ich es plotte, sieht es sogar wie ein Wassertropfen aus Smile ).

Viele Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Soeckle
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 04.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.07.2009, 19:18     Titel:
  Antworten mit Zitat      
Hallo,

juhuuu, ich kann tatsächlich die Form eines Tropfens erkennen. Vielen DANK!!!!
Allerdings kommen da auch gleich drei neue ? hinzu.
1. Wo liegt denn nun mein Koordinatensystem?
Also logisch ist, das der Scheitelpunkt hier oben ist. Ist auch logisch wenn man sich die Gleichung betrachtet. Aber wieso liegt z=0 mitten im Tropfen?

2. Wenn ich mir die Einschnürung anschauen möchte (indem ich r verkleinere), bekomme ich eine Fehlermeldung. Da müsste ich, wenn ich richtig überlegt habe, R1 und R2 mit beiden Vorzeichen versehen (bisher beide als positiv angenommen). Aber wie baut man das in Matlab in die Funktion ode45 ein?
Das ist vermutlich auch der Grund, warum die Funktion über Bogenlänge und Winkel beschrieben werden sollte.

3. Wieso verändert sich die Form des Tropfens fast gar nicht, wenn ich den Kontaktwinkel ändere? (Hier 10°.)
Code:

function [dzdx] = drop_shape_01(x,z,rho,sigma,g,r)

dzdx = [z(2); (-rho*g*z(1)/sigma+2*cos(10*pi/180)/r-z(2)/x/(1+z(2)^2)^(1/2))*(1+z(2)^2)^(3/2)];
 


Es bleibt eine Herausforderung. Wichtig wären mir Fragen 1 und 2. Die dritte wird sich schon irgendwie klären.

LG,
Soeckle

ps: Super Team hier.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.07.2009, 19:44     Titel:
  Antworten mit Zitat      
1. die x-Achse ist x, die y-Achse ist z. Wie das in deiner Anwendung zu deuten ist, kann ich dir auch nicht sagen. Ich würde es so interpretieren, dass der Tropfen symmetrisch zur x-Achse ist, und die andere Hälfte fehlt.

2. Warum nicht das ganze spiegeln? WELCHE Fehlermeldung?

3. Sorry, aber ich verstehe nichts von der Physik.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Soeckle
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 04.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.07.2009, 20:23     Titel:
  Antworten mit Zitat      
Hallo,

zu 1. nein. Der Tropfen ist symmetrisch zur z-Achse, nicht zur x-Achse. Aus Symmetriegründen habe ich auf der x-Achse nur von 0 (oder fast 0) bis 0.05 berechnet. Somit habe ich die rechte Seite des Tropfens. Die linke Seite bekomme ich durch Spiegeln an der z-Achse.

zu 2. Es ist nicht das Problem der anderen Seite. Bei zu kleinem r kann er die Schrittgrösse für x nicht halten (da mal nachzuschauen, hast du mir ganz zu Beginn dieser Diskussion geraten - seitedem beobachte ich auch x)
Das Problem ist, wenn ich die Form (oder die halbe Form) des Tropfens darstellen möchte, kurz bevor er sich ablöst (das entspricht kleinem r), funktionert das nicht. Das ist auch der Grund, warum ein Tropfen nicht einfach mit f(x) dargestellt werden kann.

zu 3. Irgendetwas muss ich ja auch mal allein lösen Smile.

LG,
soeckle
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.