Replies: 3 comments
-
Hi Geert, we will talk about this in the developer team, but I have a first idea. Generally speaking, what you want to do is modifying a component parameter (mdot_kg_per_s of the sinks) in dependence of an output variable of the pipe flow calculation (nodal pressure), which leads to a circularity. We have a similar behaviour in power grids, e. g. when the tap position of transformers ("RONT") could be set in dependence of the voltage. For this, pandapower provides the concept of controllers. Controllers can manipulate components' parameters during the power / pipe flow calculation. A basic controller from pandapower can be found here. In pandapipes, the run_control procedure is already implemented, but currently only so called "multi net" controllers are available (for a different purpose). Nonetheless, I think pandapower's "characteristic controller" could be quite easily adapted to fit your needs. I hope this first idea helps you in developing your approach. Best regards, |
Beta Was this translation helpful? Give feedback.
-
Hi Jolando,
Thank you for the quick reply.
I'll have a look into these controllers.
Although these might create a lot of overhead for a network with many
similar leaks (like pipes with orifices, irrigation, ...).
The way Epanet seems to tackle this is by reversing the relation.
The user specifies outflow as a function of pressure at the node: Q = f(p),
typically Q = C * sqrt(p).
Epanet reverses this: p = (Q/C)^2, and they add the node pressure drop to
the pipe pressure drop. They give Q an initial guess and calculate the
network until balanced.
Details in Epanet manual, under hydraulics.
Best regards,
Geert
…On Thu, 2 Dec 2021 at 15:34, jkisse ***@***.***> wrote:
Hi Geert,
we will talk about this in the developer team, but I have a first idea.
Generally speaking, what you want to do is modifying a component parameter
(mdot_kg_per_s of the sinks) in dependence of an output variable of the
pipe flow calculation (nodal pressure), which leads to a circularity.
We have a similar behaviour in power grids, e. g. when the tap position of
transformers ("RONT") could be set in dependence of the voltage. For this,
pandapower provides the concept of controllers
<https://pandapower.readthedocs.io/en/latest/control.html>. Controllers
can manipulate components' parameters during the power / pipe flow
calculation. A basic controller from pandapower can be found here
<https://github.com/e2nIEE/pandapower/blob/develop/pandapower/control/controller/characteristic_control.py>
.
In pandapipes, the run_control procedure is already implemented, but
currently only so called "multi net" controllers are available (for a
different purpose). Nonetheless, I think pandapower's "basic controller"
could be quite easily adapted to fit your needs.
I hope this first idea helps you in developing your approach.
Best regards,
Jolando
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#327 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AEDVNJJUMMQ3XT6GYFGHJQLUO57YPANCNFSM5JD44SRA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
Beta Was this translation helpful? Give feedback.
-
Hi Geert,
The calculation of the example takes ~30 ms on my system. It would be very interesting for us to hear if this is helpful for your question. Best regards, |
Beta Was this translation helpful? Give feedback.
-
Hi,
I'm evaluating Pandapipes vs Epanet (WNTR python interface) for analyzing water/gas networks.
Pandapipes looks to have a more friendly api and is more general (also for gas, compressible fluids, ...).
A common use case is pressure dependant demand at the nodes.
Typically: flowrate = C * sqrt(pressure) ; with C the discharge coefficient.
Is called an emitter in Epanet, used to model e.g. leaks, ... .
In Pandapipes, I can't find a straightforward option for this.
I assume this can be modelled with a node + valve + common sink for all these emitters, but that looks cumbersome.
Any option to implement this at the node level?
Best regards,
Geert
Beta Was this translation helpful? Give feedback.
All reactions