eelib.core.control.EMS.EMS_bss_helper

Helper functions for handling of battery storage systems in EMS.

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

Functions

bss_calc_balance(→ float)

Calculates the set power values of storage based on given p_balance.

bss_strategy_reduce_curtailment(p_balance, p_max, p_min)

This strategy reduces curtailment of the solar power system

bss_set_energy_within_limit(→ float)

Check that battery energy limits are not surpassed.

bss_calc_e_bat(→ float)

Calculates the energy level of the forecasted battery storage system.

bss_calc_p_limits(→ tuple[float, float])

Calculates the bss active power limits for the forecast using input ''bss_e_bat_usable''.

bss_calc_balance(p_balance: float, p_max: float, p_min: float) float

Calculates the set power values of storage based on given p_balance. Resulting in charging and discharging values.

Parameters:
  • p_balance (float) – Input p_balance which storage tries to level

  • p_min (float) – Discharge rate of storage

  • p_max (float) – Charge rate of storage

Returns:

calculated power set value of bss to level p_balance

Return type:

float

Note

This function was created based on the function __set_power_within_limit() in storage_model.

bss_strategy_reduce_curtailment(p_balance: float, p_max: float, p_min: float, bss_charging_limit: float = 0.6)

This strategy reduces curtailment of the solar power system by reducing the bss’ charging power. This decreases self-sufficiency but also the curtailment due to EEG2021 (e.g. feed-in is only allowed at max. 70% of installed power for uncontrolled solar power systems). This operation strategy should not be used in combination with electric vehicle charging. Suitable limits are 30%-60%.

Parameters:
  • p_balance (float) – input balance which bss needs to level

  • p_max (float) – maximum charging power of bss

  • p_min (float) – maximum discharging power of bss

  • bss_charging_limit (float) – Charging limit of batter storage. Defaults to 0.6.

Returns:

reduced charging power for battery storage

Return type:

int

bss_set_energy_within_limit(bss_data: eelib.data.BSSData) float

Check that battery energy limits are not surpassed. Similiar to function in storage_model.py.

Parameters:

bss_data (BSSData) – extract from bss dataclass

Returns:

energy level of the bss after scheduling step

Return type:

float

Note

This function was created based on the function __set_energy_within_limit() in storage_model.

bss_calc_e_bat(step_size: int, bss_data: eelib.data.BSSData) float

Calculates the energy level of the forecasted battery storage system.

Parameters:
  • step_size (int) – simulation step_size

  • bss_data (BSSData) – extract of dataclass for currently scheduled bss

Returns:

energy level of forecasted bss

Return type:

float

Note

This function was created based on the function step() in storage_model.

bss_calc_p_limits(step_size: int, bss_data: eelib.data.BSSData) tuple[float, float]

Calculates the bss active power limits for the forecast using input ‘’bss_e_bat_usable’’.

Parameters:
  • step_size (int) – simulation step_size

  • bss_data (BSSData) – extract of dataclass for currently scheduled bss

Returns:

maximum charging power of bss float: minimum charging (resp. max. discharging) power of bss

Return type:

float

Note

This function was created based on the function __calc_power_limits() in storage_model.