: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=0.5, e_bat_rated=10000, p_rated_discharge_max=-8000, p_rated_charge_max=8000, discharge_efficiency_init=0.95, charge_efficiency_init=0.95, status_curve=False, loss_rate=0.02, dod_max=0.95, status_aging=False, soh_init=1.0, soh_cycles_max=0.8, bat_cycles_max=5000, bat_cycles_init=0, step_size=60 * 15, bat2ac_efficiency=None, ac2bat_efficiency=None) 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:method:: get_valid_parameters() :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:: __set_energy_within_limit() Check that battery energy limits are not surpassed. .. 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. :raises ValueError: If the discharge rate of the bss, p_min, is positive. :raises ValueError: If the charge rate of the bss, p_max, is negative. .. py:method:: step(timestep) 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 (``ac2bat_efficiency``).