Peak Shaving: Feature Enhancement
Context
This issue covers the implementation of advanced peak shaving strategies, building on the discussion from Issue #39 regarding battery and grid limitations. This will use the function "limited battery charging" (see PR #260 ), which allows granular management of battery SoC and grid feed-in.
Options for Peak Shaving
In the context of dynamic grid pricing and battery management, we need to discuss and implement two main peak shaving options:
-
Avoid Feed-in Below Price Threshold:
- Restrict grid feed-in if the net market price falls below a set threshold (e.g., below zero).
- Battery charging and discharging routines should be scheduled or limited based on expected market price events.
-
Avoid Random Battery Overshoot, Incorporating Expected Events:
- For scenarios where a specific event is expected (e.g., an EV car returns home, requiring a full battery at a known time), allow battery to fill up and accept grid feed-in up to a certain SoC.
- Calculate the expected time and quantity for battery charge, holding enough energy for forecasted needs, and then allow overflow (feed-in) only after reservation is met.
Implementation Notes
- When surplus criteria are met, fill battery up to target SoC (including any reserved energy for later events, e.g., allow_discharge state).
- Calculate where max_soc will be reached, limiting battery charge/discharge accordingly.
- Use functions such as
set_max_charging_from_grid_limit, set_always_allow_discharge_limit, and discharge block controls from existing PR code.
- Integrate logic from
DefaultLogic.calculate_inverter_mode, considering forecasted price events, battery reserves, and grid limitations.
Code Snippet Reference
Related:
Please elaborate and select the preferred option or propose enhancements for the peak shaving strategy. Feedback or further requirements welcome!
Peak Shaving: Feature Enhancement
Context
This issue covers the implementation of advanced peak shaving strategies, building on the discussion from Issue #39 regarding battery and grid limitations. This will use the function "limited battery charging" (see PR #260 ), which allows granular management of battery SoC and grid feed-in.
Options for Peak Shaving
In the context of dynamic grid pricing and battery management, we need to discuss and implement two main peak shaving options:
Avoid Feed-in Below Price Threshold:
Avoid Random Battery Overshoot, Incorporating Expected Events:
Implementation Notes
set_max_charging_from_grid_limit,set_always_allow_discharge_limit, and discharge block controls from existing PR code.DefaultLogic.calculate_inverter_mode, considering forecasted price events, battery reserves, and grid limitations.Code Snippet Reference
src/batcontrol/core.py:set_max_charging_from_grid_limitset_always_allow_discharge_limitDefaultLogic.calculate_inverter_modeRelated:
Please elaborate and select the preferred option or propose enhancements for the peak shaving strategy. Feedback or further requirements welcome!