Heat Storage

Note

A Heat Storage consists of an element and a controller. The element defines it’s physical parameters, while the controller governs the operational logic.

The create_controlled function creates both and connects them.

Create Controlled Function

pandaprosumer.create_controlled_heat_storage(prosumer, q_capacity_kwh=0.0, name=None, index=None, in_service=True, level=0, order=0, init_soc=0.0, period=0, **kwargs)[source]

Controller

Graphical representation here

Input Static Data

Parameter

Description

Unit

name

Custom name for the Storage

N/A

in_service

Indicates if the Storage is in service

N/A

q_capacity_kwh

Capacity in kilowatt-hours

kWh

Input Time Series

Parameter

Description

Unit

q_received_kw

Received heat power

kW

Output Time Series

Parameter

Description

Unit

soc

State of Charge

%

q_delivered_kw

Delivered heat power

kW

Mapping

The Simple Storage model uses Generic Mapping Scheme.

Model

class pandaprosumer.controller.models.HeatStorageController(prosumer, heat_storage_object, order, level, init_soc=0.0, in_service=True, index=None, **kwargs)[source]

Controller for heat storage systems.

control_step(prosumer)[source]

Executes the control step for the controller.

Parameters:

prosumer – The prosumer object

q_to_deliver_kw(prosumer)[source]

Calculates the heat to deliver in kW.

Parameters:

prosumer – The prosumer object

Returns:

Heat to deliver in kW

q_to_receive_kw(prosumer)[source]

Calculates the heat to receive in kW.

Parameters:

prosumer – The prosumer object

Returns:

Heat to receive in kW

The heat storage model computes the heat received and delivered by the storage element, and updates the state of charge (SOC) accordingly.

\begin{align*} E_\text{received} &= \dot{Q}_\text{received} \cdot \frac{\Delta t}{3600} \\ E_\text{delivered} &= \dot{Q}_\text{delivered} \cdot \frac{\Delta t}{3600} \\ \text{SOC}_{t+1} &= \frac{E_\text{stored}}{Q_\text{capacity}} = \frac{E_\text{stored, t} + E_\text{received} - E_\text{delivered}}{Q_\text{capacity}} \\ \end{align*}

The SOC is adjusted each timestep to reflect the energy balance within the storage unit. If the requested heat exceeds available storage, the delivery is capped to the actual available energy.