Mass Storage

Physical Model

A mass storage unit draws/injects a specified mass flow from/into the connected junction. It is implemented similar to a sink, i.e. positive mass flow values correspond to charging of the storage unit, negative mass flows means discharge of the storage unit.

The mass storage component is meant for all storage applications that do not involve relevant temperature changes or changes in the fluid’s composition, e.g., a water tower. It is always assumed that the discharged fluid is of the same temperature and composition as the fluid at the junction where the unit is connected to.

In stationary calculations (c.f. The Pipeflow Function), it acts as a simple sink/source, without changing m_stored_kg (since the duration of the mass flow is unknown). For dynamic behaviour across time steps, an accompaning BasicController has to be implemented, in which the charging / discharging behaviour and duration of timesteps is defined. The dynamic calculation can then be started by run_control (for one time step) or run_timeseries for time series.

Tip

An example storage controller can be found in the respective tutorial.

Warning

This component is only intended for mass storage applications and will likely lead to wrong results if it is used for district heating network applications.

Create Function

For creating a single mass storage:

Component Table Data

net.mass_storage

Parameter

Datatype

Value Range

Explanation

net

pandapipesNet

The pandapipes net object in whose mass_storage table the new unit will be added

junction

integer

> 0

Index of connected junction

mdot_kg_per_s

float

> 0: charging,< 0: discharging

Mass flow in stationary pipeflow calculation [kg/s]

init_m_stored_kg

float

greq 0

The initially stored mass in the storage in kg.

min_m_stored_kg

float

greq 0

Minimum amount of fluid that can be stored in the storage unit. (To be used with controllers)

max_m_stored_kg

float

> 0

Maximum amount of fluid that can be stored in the storage unit. (To be used with controllers)

scaling

float

> 0

An optional scaling factor to be set customly (default 1.0). Factor will be applied on mdot_kg_per_s.

name

string

Name of the mass storage unit

index

integer

> 0

Force a specified ID if it is available. Default None, i.e. the index one higher than the highest already existing index is selected.

in_service

boolean

True / False

Specifies if the mass storage is in service.

type

string

Component type (default ‘mass_storage’), can be used to distinguish between different kinds of mass storage. Not considered by pandapipes’ calculations.

Result Table Data

net.res_mass_storage

Parameter

Datatype

Explanation

mdot_kg_per_s

float

mass flow [kg/s] (> 0: charging / < 0: discharging)

More columns may be added by controller implemente by the user, e.g., m_stored_kg, filling_level_percent, etc.