Modellieren/Simulieren von Drücken und Strömungen in einem Rohrnetz

Es fällt mir schwer, Informationen darüber zu finden, wie ich dies modellieren/simulieren kann. Ich habe ein paar Dateien angehängt, die beide ein Beispiel für ein Tank- und Pumpennetzwerk zeigen. Es ist nur Unsinn, dass ich diesen Beitrag nachgeholt habe, aber er zeigt, was für ein System ich zu simulieren versuche.

(Ich habe es stattdessen einfach ins Web gestellt: pdf link , vsd link )

Ich habe im Internet nach Informationen gesucht, wie das geht, aber ich stoße immer wieder auf Formeln, die viel komplexer sind als das, was ich tun muss. Ich möchte nur wissen, wie hoch der Druck und der Durchfluss an jedem Knoten im System sind, mit einer Genauigkeit von etwa 80 %. Es besteht keine Notwendigkeit, die Flüssigkeitskompression zu berücksichtigen, und wir können einfach eine Konstante für den Widerstand verwenden, der durch Ventile oder sich verengende Rohre auftritt. Wir müssen die Reibung des Fluids an der Rohrleitung nicht berücksichtigen. Hitze können wir ignorieren. Es ist noch einmal wichtig anzumerken, dass ich keine vollständige Genauigkeit benötige, es ist viel mehr das Verhalten des simulierten Systems, das wichtig ist.

Ich habe versucht, dies in beide Richtungen zu tun, dh einem Strömungsweg von den Tanks / Quellen nach unten zu folgen und Druckänderungen durch das System zu verbreiten, und ich habe es auch direkt von dem betreffenden Knoten aus versucht und berücksichtigt, dass jeder Knoten hat eine Reihe von Quellenknoten in Bezug auf Drücke und Flüsse. Diese beiden simulierten SW-Systeme werden sehr unberechenbar, je weiter stromabwärts von den Pumpen Sie kommen und je mehr Ein / Aus-Ventile ich in das System einbaue.

Selbst wenn Sie mir nur sagen würden, wo ich suchen oder welches Buch ich lesen soll, wäre das eine große Hilfe. Wenn es irgendwo einen Beispiel-Quellcode gibt, der dies tut, kaufe ich Ihnen ein 60-Unzen-Bier Ihrer Wahl.

Danke im Voraus.


(Nachbearbeitung 4/12)

Danke für die bisherigen Antworten, ich habe am Ende ziemlich viel Zeit damit verbracht, mich nach einer bereits existierenden Lösung umzusehen, weil ich einfach überzeugt war, dass viele schon einmal auf dieses Problem gestoßen sind, und wusste, dass es allgemein lösbar ist Sinn. Einer der Gründe, warum ich so an einer allgemeinen Lösung interessiert war, ist, dass ich 12 weitere dieser Simulationen durchgehen kann, die ich schnell und genau durchführen muss, wenn das der Fall ist.

Ich habe eine andere Software namens EPAnet gefunden, die eine einfachere Lösung zu sein scheint als die unten aufgeführte, und ich schaue im Moment ihr SDK durch und spiele damit herum. Ich werde Sie auf dem Laufenden halten, die wenigen, die daran interessiert sind ... das mag für die meisten keine große Sache sein, aber für die wenigen, die es für wichtig halten, wird es sehr wichtig sein, also werde ich aufschreiben, was ich finde.


(bearbeiten 4/13)

Ich habe die letzten zwei Tage damit verbracht, einen soliden Wrapper um das Toolkit des EPAnet-Programmierers zu bauen und ein Scratch-Programm zu erstellen, das einige der Dinge tut, die ich tun möchte. (Übrigens habe ich einen neuen Rekord für die Anzahl der Male an einem Tag gebrochen, bei denen ich LabVIEW schnell und lautlos zum Absturz bringen kann.)

Darunter ist es wirklich ziemlich komplex, und ich bin begeistert, auf wie viel mathematische Kraft ich mich verlassen kann. Ich glaube nicht, dass sie alle Probleme ausgearbeitet haben, also habe ich einige davon umgangen. Aber es sieht so aus, als ob es bisher eine 80% ige Chance gibt, dass es für das funktioniert, was ich will.

Sie stoßen immer wieder auf entsetzliche Schwierigkeiten, weil das vollständige Problem eines der "harten" Probleme der Physik (und übrigens auch der Berechnungsmethoden) ist. Es ist nicht mein Gebiet, aber ich kenne ein paar Leute, die darin tätig sind. Ich glaube nicht, dass sie jemals ein System verwenden, das so einfach ist, wie Sie es beschreiben.
60 Unzen Bier klingt für mich nach einer feinen Prämie :) Nur um es klarzustellen (sorry, wenn ich blind bin): Ist Ihre Situation stationär (dh mit konstantem Durchfluss) oder nicht (aufgrund der endlichen Wassermenge in diesen Tanks)?
Es ist nicht stationär, aber wenn ich zumindest ein stationäres Modell zum Laufen bringen könnte, wäre ich viel besser dran als jetzt. Ich denke, ich könnte besondere Bedingungen hinzufügen, um ein nicht stationäres System ziemlich korrekt zu modellieren.
@Ben Phillips Hast du daran gedacht, dein Problem in einen Stromkreis umzuwandeln? Ihr vereinfachtes Verhalten scheint einer elektrischen Analogie zugänglich zu sein (Bombe -> Quelle, Rohr -> Widerstand, Tank -> Kondensator, ...).
Verzeihen Sie die naive Frage, aber könnten Sie die verschiedenen Symbole im Diagramm erklären? Die Panzer sind offensichtlich genug. Ich nehme an, das Ding mit den zwei Dreiecken ist ein Ventil. Was ist mit den zwei kleinen Kreisen mit Linien durch sie hindurch? Und das Dreieck aus horizontalen Linien (sieht aus wie ein elektrisches Erdungssymbol)? Außerdem, was ist die Wirkung eines Ventils? Begrenzt es die Durchflussmenge auf einen festen Wert oder stellt es nur eine feste Blende dar, oder ...?
Ich vermute, wie @mmc erwähnt, dass Sie dies in der von Ihnen beschriebenen Annäherung als ein System linearer Gleichungen schreiben könnten.
@nibot: Kein Problem, aber ich werde es nicht direkt erklären - es ist gut, solche Fragen zu stellen, wenn Sie es nicht wissen, viel besser, als so zu tun, wie Sie es tun. Versuchen Sie, so etwas wie „Visio-Ventilschema“ oder „Rohrsystem-Schemasymbole“ zu googeln. Und lassen Sie uns wissen, was Sie finden!

Antworten (2)

Mein Rat ist, sich die Lattice-Boltzmann-Methode anzusehen, die robust und einfach für athermische, nicht komprimierbare Strömungen ist. Probieren Sie zum Beispiel diese Open-Source-GPL3-Software aus:

http://www.lbmethod.org/palabos/

Danke für die Antwort, sieht so aus, als würde ich diese Woche viel darüber lesen und GCC verwenden.
Ich denke nicht, dass das eine gute Idee ist – explizite CFDs sind in diesem Fall eine enorme Übertreibung. Ich kann leider nicht helfen, aber es gibt sicherlich eine Engineering-Software, die genau das tut.
@mbq: Ich denke, das ist es auch, und es wurde bereits getan. Ich verwende ein Toolkit, das weit mehr Informationen liefert, als ich brauche, aber ich konnte es reduzieren. Das möchte ich in ein paar Tagen schreiben, wenn ich es sicher weiß. Das EPAnet-Toolkit versucht, die Wasserqualität zu modellieren, aber dazu müssen sie zuerst das tun, was mich interessiert, nämlich den Druck an jedem Knoten und den Durchfluss durch Rohre. Schön!

Es stellt sich heraus, dass EPAnet tatsächlich tun kann, was ich will. Es ist ein wenig haarig, es anzuschließen, da ich glaube, dass seit 5 Jahren oder länger keine wirklichen Updates mehr gekommen sind, aber es gibt mehrere kommerzielle Produkte, die ihre zugrunde liegende Engine auf EPAnet basieren, auch wenn sie es ein wenig erweitern oder optimieren. Diese kleine Tatsache gab mir beim Vorwärtspflügen mehr Selbstvertrauen, dass ich nicht in einen Kaninchenbau gesprungen bin.