|
|
Koordinaten in Strömungsfeld ohne Schleife berechnen? |
|
Cowboy |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.07.2012, 11:40
Titel: Koordinaten in Strömungsfeld ohne Schleife berechnen?
|
 |
|
 |
|
Guten Tag,
ich habe folgende Aufgabenstellung:
In einer Rohrströmung befinden sich Partikel, die durch diese Strömung fortbewegt werden. Ich möchte die Position der Partikel zu einem beliebigen Zeitpunkt berechnen.
Im einfachen Fall habe ich
v (x): Strömungsgeschwindigkeit, Abhängig von der Position im Kanal (x = 0 ist die Kanalmitte, x = R ist an der Rohrwand)
t: Die verstrichene Zeit
Damit kann ich leicht den Ort ausrechnen:
Ort = v(x) * t
Soweit, so gut.
Leider sieht es so aus, dass v nicht nur von x abhängt (parabelförmiges Stömungsprofil), sondern im Rohrverlauf veränderlich ist (bspw. durch ein sich verengendes Rohr), es ist also v(x,y). Bisher habe ich es so gelöst, dass ich eine Schleife programmiert habe. Zuerst wird ein Vektor mit den y-Koordinaten erstellt, der Teil läuft gut (Hier nicht gezeigt). Anschließend die Schleife:
Es wird also die Geschwindigkeit für den aktuellen Punkt aus der Position des zuletzt berechneten Punktes berechnet. Für ordentliche Ergebnisse ist n_Schritte recht groß (>1000) und da ich Octave nutze, dauert das ne ganze Weile. Lässt sich das Problem, dass Werte auf Basis des in dem Vektor zuvor stehenden Wertes berechnet werden, vektorisieren?
Ich bin auf die Antworten gespannt
Gruß
Cord
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 16.07.2012, 12:44
Titel: Re: Koordinaten in Strömungsfeld ohne Schleife berechnen?
|
 |
Hallo Cowboy,
Um Laufzeit zu sparen würde ich zunächst mal alle wiederholten Berechnungen vermeiden:
Wieviel Laufzeit bringt dies?
Gruß, Jan
|
|
|
Cowboy |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.07.2012, 13:18
Titel:
|
 |
Moin Jan,
herzlichen Dank für deine Antwort. All zu viel bringt das leider nicht. In meinem Programm messe ich folgende Zeiten:
Wiederholte Berechnungen in der Schleife:
0,9747 Sekunden
Wiederholte Berechnungen außerhalb der Schleife:
0,8779 Sekunden
Als Vergleich, wenn die Geschwindigkeit nicht von der y-Position abhängt:
0,0005519 Sekunden (!)
Da diese Berechnung wiederum innerhalb einer Schleife steht und einige tausend Mal ausgeführt wird (um die komme ich dann wirklich nicht mehr herum) ist mir sehr daran gelegen, dass dieser Schritt fixer wird
Herzliche Grüße
Cord
|
|
|
Cowboy |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.07.2012, 09:26
Titel:
|
 |
Hallo zusammen,
hat noch jemand eine Idee? Mir würde auch helfen zu wissen, dass das evtl. gar nicht möglich ist... dann brauche ich nicht weiter nach einer Antwort suchen und beiße lieber in den sauren Apfel
Um die Motivation zu erhöhen, setze ich den Status mal auf "komplex"
Gruß
Cord
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 18.07.2012, 13:49
Titel: Re: Koordinaten in Strömungsfeld ohne Schleife berechnen?
|
 |
Hallo Cowboy,
Was hast Du denn weiter versucht? Die grundlegende Strategie sollte ja nun klarer sein. Da Du aber keinen lauffähigen Code (mit Daten!) gepostet hast, können wir das ja auch nicht selber probieren.
Ein weitere Vorschlag: Vektorisiere ein wenig:
Nun liesse sich "v" genaus behandeln. Zum Schluß bliebe noch Ort_x: Hier wird zu jedem Punkt er Wert des vorherliegenden Punktes benötigt. Dies läßt sich üblicherweise per CUMSUM schaffen.
Gruß, Jan
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| RSS
Hosted by:
Copyright © 2007 - 2025
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.
|
|