:py:mod:`eelib.core.devices.bss.bss_model` ========================================== .. py:module:: eelib.core.devices.bss.bss_model .. autoapi-nested-parse:: eElib battery storage system (BSS) model. The battery and inverter are both modeled together. Among other things , dynamic efficiency is taken into account. | Author: elenia@TUBS | Copyright 2024 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.bss.bss_model.BSS .. py:class:: BSS(eid: str, soc_init: float = 0.5, e_bss_rated: float = 10000, p_rated_discharge_max: float = -8000, p_rated_charge_max: float = 8000, discharge_efficiency_init: float = 0.95, charge_efficiency_init: float = 0.95, status_curve: bool = False, loss_rate: float = 0.02, soc_min: float = 0.1, soc_max: float = 1.0, status_aging: bool = False, soh_init: float = 1.0, soh_cycles_max: float = 0.8, bss_cycles_max: float = 5000, bss_cycles_init: float = 0, step_size: int = 60 * 15, ac2bss_efficiency: list | None = None, bat2ac_efficiency: list | None = None, bss_threshold: float = 0.0125) An electrical BSS model can be instantiated with default values or with a map of initial values. An energy management model can be used to determine ``p_set`` values. .. py:attribute:: _VALID_PARAMETERS .. py:attribute:: eid .. py:attribute:: e_bss_rated :value: '10000' .. py:attribute:: p_rated_discharge_max :value: '-8000' .. py:attribute:: p_rated_charge_max :value: '8000' .. py:attribute:: discharge_efficiency_init :value: '0.95' .. py:attribute:: charge_efficiency_init :value: '0.95' .. py:attribute:: status_curve :value: 'False' .. py:attribute:: loss_rate :value: '0.02' .. py:attribute:: soc_init :value: '0.5' .. py:attribute:: soc_min :value: '0.1' .. py:attribute:: soc_max :value: '1.0' .. py:attribute:: status_aging :value: 'False' .. py:attribute:: soh_init :value: '1.0' .. py:attribute:: soh_cycles_max :value: '0.8' .. py:attribute:: bss_cycles_max :value: '5000' .. py:attribute:: bss_cycles_init :value: '0' .. py:attribute:: step_size :value: '900' .. py:attribute:: p_max :value: '8000' .. py:attribute:: p_min :value: '-8000' .. py:attribute:: bss_cycles :value: 'None' .. py:attribute:: p :value: '0' .. py:attribute:: bat2ac_efficiency :value: 'None' .. py:attribute:: ac2bss_efficiency :value: 'None' .. py:attribute:: bss_threshold :value: '0.0125' .. py:attribute:: soc :value: '0.5' .. py:attribute:: e_bss_usable :value: '10000' .. py:attribute:: e_bat .. py:attribute:: e_cycle :value: '20000' .. py:attribute:: soh :value: '1.0' .. py:attribute:: p_set .. py:attribute:: charge_efficiency :value: '0.95' .. py:attribute:: discharge_efficiency :value: '0.95' .. py:attribute:: charge_efficiency_max :value: '0.95' .. py:attribute:: discharge_efficiency_max :value: '0.95' .. py:attribute:: timestep :value: '0' .. py:attribute:: self_discharge_step :value: '6.944444444444445e-06' .. 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 active power limit of the battery based on its rated charge and discharge capacities and the current active power setpoint. .. py:method:: _calc_charging_efficiency() Sets dynamic (dis)charging efficiency levels ("charge_efficiency" / "discharge_efficiency"). .. py:method:: _calc_power_limits() Sets (dis)charging power limits. .. py:method:: step(timestep: int) Performs simulation step of eELib battery model. Calculates all of the Dynamic Properties based on the Input Properties. :param timestep: Current simulation time :type timestep: int .. py:method:: _calculate_aging_status() Calculates the state of health (soh) and then checks if the soh limit has been reached. | soh = soh_init - #cycles * aging_of_one_cycle | aging_of_one_cycle = (soh_init - soh_end) / #max_cycles :raises ValueError: When minimum soh has been reached for the battery .. py:method:: _calc_discharge_efficiency() Calculation of dynamic discharging efficiency (``bat2ac_efficiency``). .. py:method:: _calc_charge_efficiency() Calculation of dynamic charging efficiency (``ac2bss_efficiency``).