fix BA81 nevybijeni do site
This commit is contained in:
@@ -29,7 +29,6 @@ logger = logging.getLogger(__name__)
|
||||
# Když DB vrátí NULL (skoro žádná OTE data), denní plán použije krátký fallback (soulad s min hodinami ve fn_planning_horizon_end).
|
||||
_DAILY_FALLBACK_HORIZON_HOURS = 1.0
|
||||
# Shadow cena zbytkové energie na konci horizontu: - (avg_buy * FACTOR / 1000) * soc[T-1] (Kč; soc v Wh).
|
||||
TERMINAL_SOC_VALUE_FACTOR = 0.9
|
||||
INTERVAL_H = 0.25 # 15 minut v hodinách
|
||||
CURTAILMENT_PENALTY = 0.001 # Kč/Wh – malá penalizace za omezení FVE pole A
|
||||
SOLVER_TIME_LIMIT = 10 # sekund
|
||||
@@ -577,9 +576,7 @@ def solve_dispatch(
|
||||
if horizon_slots_h24 > 0
|
||||
else 4.0
|
||||
)
|
||||
terminal_factor = float(
|
||||
getattr(battery, "planner_terminal_soc_value_factor", TERMINAL_SOC_VALUE_FACTOR)
|
||||
)
|
||||
terminal_factor = float(battery.planner_terminal_soc_value_factor)
|
||||
# Kč/Wh: ocenění energie ponechané v baterii na konci horizontu (receding horizon kotva).
|
||||
terminal_soc_kcz_per_wh = (
|
||||
avg_buy_terminal * terminal_factor / 1000.0
|
||||
@@ -1135,6 +1132,7 @@ async def _load_site_context(site_id: int, db):
|
||||
planner_discharge_relax_prewindow_slots=int(relax_prewin)
|
||||
if relax_prewin is not None
|
||||
else DEFAULT_PLANNER_DISCHARGE_RELAX_PREWINDOW_SLOTS,
|
||||
planner_terminal_soc_value_factor=float(b["planner_terminal_soc_value_factor"]),
|
||||
)
|
||||
|
||||
hpj = ctx["heat_pump"]
|
||||
|
||||
Reference in New Issue
Block a user