eelib.core.devices.bss.bss_model

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

BSS

An electrical BSS model can be instantiated with default values or with a map of

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.

_VALID_PARAMETERS
eid
e_bss_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'
soc_init = '0.5'
soc_min = '0.1'
soc_max = '1.0'
status_aging = 'False'
soh_init = '1.0'
soh_cycles_max = '0.8'
bss_cycles_max = '5000'
bss_cycles_init = '0'
step_size = '900'
p_max = '8000'
p_min = '-8000'
bss_cycles = 'None'
p = '0'
bat2ac_efficiency = 'None'
ac2bss_efficiency = 'None'
bss_threshold = '0.0125'
soc = '0.5'
e_bss_usable = '10000'
e_bat
e_cycle = '20000'
soh = '1.0'
p_set
charge_efficiency = '0.95'
discharge_efficiency = '0.95'
charge_efficiency_max = '0.95'
discharge_efficiency_max = '0.95'
timestep = '0'
self_discharge_step = '6.944444444444445e-06'
classmethod get_valid_parameters() dict

Returns dictionary containing valid parameter types and values.

Returns:

valid parameters for this model

Return type:

dict

_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.

_calc_charging_efficiency()

Sets dynamic (dis)charging efficiency levels (“charge_efficiency” / “discharge_efficiency”).

_calc_power_limits()

Sets (dis)charging power limits.

step(timestep: int)

Performs simulation step of eELib battery model. Calculates all of the Dynamic Properties based on the Input Properties.

Parameters:

timestep (int) – Current simulation time

_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

_calc_discharge_efficiency()

Calculation of dynamic discharging efficiency (bat2ac_efficiency).

_calc_charge_efficiency()

Calculation of dynamic charging efficiency (ac2bss_efficiency).