You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I would like to start a discussion on how the values of pressure, velocity and potentially temperature should be initialized in case of time series simulations. In pandapower, there are many different options available. Looking at the documentation, I find the following text:
init (str, “auto”) - initialization method of the loadflow pandapower supports four methods for initializing the loadflow:
- “auto” - init defaults to “dc” if calculate_voltage_angles is True or “flat” otherwise
- “flat”- flat start with voltage of 1.0pu and angle of 0° at all PQ-buses and 0° for PV buses as initial solution
- “dc” - initial DC loadflow before the AC loadflow. The results of the DC loadflow are used as initial solution for the AC loadflow.
- “results” - voltage vector of last loadflow from net.res_bus is used as initial solution. This can be useful to accelerate convergence in iterative loadflows like time series calculations.
init_vm_pu (string/float/array/Series, None) - Allows to define initialization specifically for voltage magnitudes. Only works with init == “auto”!
- “auto”: all buses are initialized with the mean value of all voltage controlled elements in the grid
- “flat” for flat start from 1.0
- “results”: voltage magnitude vector is taken from result table
- a float with which all voltage magnitudes are initialized
- an iterable with a voltage magnitude value for each bus (length and order has to match with the buses in net.bus)
- a pandas Series with a voltage magnitude value for each bus (indexes have to match the indexes in net.bus)
In general, I think that it makes sense to implement a similar strategy in pandapipes. However, we have a less rigid and in some places more implicit approach to building our internal structures. I see the following obstacles:
Extracting results from results tables means that they have to be taken from all branch result tables for velocity and all node result tables for pressure and temperature.
If we consider internal nodes and edges, the results are not even included in any tables.
Therefore I think that it makes sense to only extract results from the internal structure (node_pit, branch_pit). This raises the following questions:
Do we want to make sure that the previous pipeflow has led to valid results, or should this be left to the user?
If we want to allow handing over an initialization vector (a float would be no problem), how can we support the user to hand over the correct values in the correct positions? The pit is created on the basis of the component list, i.e. in a specific order, but the user should be able to understand the order in which e.g. branch elements are inserted into the branch_pit and whether there are internal branches or nodes. Do we want to support this process? Could we for instance provide a function that inserts initial values from user input in the correct positions of the pit or creates a correctly sorted array from it? And if this is possible by going through all the components, will this still save any time?
I would like to implement a first suggestion on how to extract results from the pit and reuse the values as initial values for a new pipeflow. Then at least we would have the two options of a flat init and extracting from results, which should be a good first step.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
This discussion is moved from issue #86:
I would like to start a discussion on how the values of pressure, velocity and potentially temperature should be initialized in case of time series simulations. In pandapower, there are many different options available. Looking at the documentation, I find the following text:
In general, I think that it makes sense to implement a similar strategy in pandapipes. However, we have a less rigid and in some places more implicit approach to building our internal structures. I see the following obstacles:
Therefore I think that it makes sense to only extract results from the internal structure (node_pit, branch_pit). This raises the following questions:
I would like to implement a first suggestion on how to extract results from the pit and reuse the values as initial values for a new pipeflow. Then at least we would have the two options of a flat init and extracting from results, which should be a good first step.
Beta Was this translation helpful? Give feedback.
All reactions