:py:mod:`eelib.core.devices.tes.tes_model` ========================================== .. py:module:: eelib.core.devices.tes.tes_model .. autoapi-nested-parse:: eElib thermal energy storage (TES) model. Various sources could be used for the dimensioning of the TES, e.g. https://www.baunetzwissen.de/heizung/fachwissen/speicher/dimensionierung-von-pufferspeichern-161296 The arguably most popular is within the VDI 4645, using the - time_blocked_period: time duration for limited operation of hp, in h - specific_required_volume: specific required volume after VDI 4645, in l/(kW*h) with - density_water = 1 kg/l - spec_heat_storage_coeff_water = 4.186 * 1000 / 3600 Wh/(kg*K) Then the storage volume in l is p_hp_th_max / 1000 * time_blocked_period * specific_required_volume. The correlation between volume and capacity then is as follows: V in l = C in Wh / (d in kg/l * c_p in Wh/kg/K * Delta_T in K) | Author: elenia@TUBS | Copyright 2025 elenia | This file is part of eELib, which is free software under the terms of the GNU GPL Version 3. Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: eelib.core.devices.tes.tes_model.TES .. py:class:: TES(eid: str, soc_init: int | float = 0.5, storage_volume_l: int | float = 300, temp_supply: int | float = 55, temp_room: int | float = 21, charge_efficiency: int | float = 1.0, discharge_efficiency: int | float = 1.0, loss_rate: int | float = 0.082, step_size: int = 900) A thermal energy storage TES model can be instantiated with default values or with a map of initial values. An energy management model can be used to determine ``p_th_set`` values. .. py:attribute:: DENSITY_WATER :value: '1' .. py:attribute:: SPEC_HEAT_STORAGE_COEFF_WATER :value: '1.1627777777777777' .. py:attribute:: _VALID_PARAMETERS .. py:attribute:: eid .. py:attribute:: soc_init :value: '0.5' .. py:attribute:: p_th :value: '0' .. py:attribute:: charge_efficiency :value: '1.0' .. py:attribute:: discharge_efficiency :value: '1.0' .. py:attribute:: loss_rate :value: '0.082' .. py:attribute:: storage_volume_l :value: '300' .. py:attribute:: temp_supply :value: '55' .. py:attribute:: temp_room :value: '21' .. py:attribute:: step_size :value: '900' .. py:attribute:: timestep :value: '0' .. py:attribute:: soc :value: '0.5' .. py:attribute:: self_discharge_step :value: '0.0008541666666666667' .. py:attribute:: e_tes_rated :value: '11860.333333333332' .. py:attribute:: e_tes .. py:attribute:: p_th_set .. py:method:: get_valid_parameters() -> dict :classmethod: Returns dictionary containing valid parameter types and values. :returns: valid parameters for this model :rtype: dict .. py:method:: _set_power_within_limit() Sets the thermal power of the TES based on its charging and discharging limits and the current thermal power setpoint. .. py:method:: _calc_power_limits() Calculates (dis-)charging power limits based on stored energy, self-discharge and efficiency. .. py:method:: step(timestep: int) Performs simulation step of eELib TES model. Calculates energy and power limits. Sets power within limits based on input properties. :param timestep: Current simulation time :type timestep: int