Use observed SoC for neg-prep cushion and evening drain (v40).
Some checks failed
CI and deploy / migration-check (push) Failing after 26s
CI and deploy / deploy (push) Has been skipped

Pre-neg forecast cushion and evening push before negative-sell days now use telemetry SoC instead of chaining LP targets across days, so the planner does not stop discharging early when BMS is higher than the model.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Dusan Vojacek
2026-05-29 00:20:05 +02:00
parent a7dff75e58
commit 88df09640c
5 changed files with 306 additions and 34 deletions

View File

@@ -162,6 +162,20 @@ večer 26.5 → vybít bat před neg 27.5 (headroom)
**Ověření:** `NegSellPrepWindowV36Tests`, `solver_params.inputs.pre_neg_cushion_by_day`, `neg_evening_before_neg_slots`.
### 4.6 v40 — pozorované SoC pro neg-prep (Plan 5) ✅
**Tag:** `2026-05-29-neg-prep-observed-soc-v40`
| Problém v36 | Oprava v40 |
|-------------|------------|
| Cushion / večerní výboj z **modelového** SoC (řetězení cílů mezi dny) | **`observed_soc_wh`** z telemetrie; žádné `soc_est := soc_target[first_neg]` |
| BMS výš → plán „už mám headroom“ nevidí | Cushion OK pokud `observed_soc ≥ soc_target[first_neg]` |
| Večerní výboj pod exportuje | Rozpočet `max(0, observed reserve night_baseload_buffer)``neg_evening_push_slots` |
**Kód:** `_pre_neg_pv_export_bundle`, `_neg_evening_discharge_budget_wh`, `_neg_evening_before_neg_push_indices` v `planning_engine.py`.
**Ověření:** `ObservedSocNegPrepTests`; MCP `solver_params.inputs.observed_soc_wh`, `neg_evening_export_budget_wh`, `neg_evening_push_slots`.
---
## 5. Specifikace rampy (v35 — reference)