From 1735f778636022e6f8f2fc1108d46ed644b40990 Mon Sep 17 00:00:00 2001 From: Dusan Vojacek Date: Sun, 26 Apr 2026 00:50:04 +0200 Subject: [PATCH] oprava dynamickeho spodniho prahu --- backend/services/planning_engine.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/backend/services/planning_engine.py b/backend/services/planning_engine.py index 2c13f74..18f4b55 100644 --- a/backend/services/planning_engine.py +++ b/backend/services/planning_engine.py @@ -498,7 +498,13 @@ def solve_dispatch( soc_prev_expr = current_soc_wh if t == 0 else soc[t - 1] arb_t = arb_floor_series[t] soc_low_t = soc_min_series[t] - prob += soc_prev_expr >= (arb_t - (arb_t - soc_low_t) * (1 - w_arb[t])) + # Při relaxovaném dnu (soc_low pod DB min_soc Wh) nesmí větev w_arb=1 znovu vynutit arb_t + # (typicky ~rezerva 20 %) — jinak nejde „vypustit“ baterku k planner floor 5 %. + if soc_low_t < min_soc_wh - 1e-3: + arb_cap_t = min(arb_t, soc_low_t) + else: + arb_cap_t = arb_t + prob += soc_prev_expr >= (arb_cap_t - (arb_cap_t - soc_low_t) * (1 - w_arb[t])) prob += bd[t] <= ( s.load_baseline_w + ev_total_t