3.2 KiB
3.2 KiB
Planning / LP — changelog
Změny v plánovači (planning_engine.py, R__063_fn_load_planning_slots_full.sql) a souvisejících testech.
Formát: datum (ISO) · stručný důvod · soubory · chování / ověření.
2026-05-24 — Arbitráž: OTE místo hodin, export ve špičkách, FVE při sell<0
Problém: Plán ukazoval slabé nabíjení/vybíjení (KV1, BA81) přestože ekonomika (OTE) favorizovala opak. Ve špičkách MILP nevybíjel baterii naplno; noc BA81 držela SoC na rezervě bez exportu; záporný výkup neplnil FVE do baterie.
Změny:
| Oblast | Co | Proč |
|---|---|---|
| R__063 — exportní maska | Místo pevného vyloučení 00–04 na den prvního sell<0: slot vynechat z rozpočtu Wh jen pokud existuje pozdější slot tentýž den (před prvním sell<0) s sell > sell_slot + degradace. |
Řídit se OTE cenami, ne hodinami. BA81 noc může exportovat; home-01 půlnoc se vynechá, pokud je lepší sell ráno. |
| R__063 — fixní tarif | Discharge kandidáti: sell > buy + degradace (ne jen sell > degradace). |
U BA81/KV1 export jen když je výkup nad fixním nákupem. |
| R__063 — PV vrstva A | allow_charge z FVE při sell < 0 bez filtru future_sell_lookahead; filtr „drž na večerní peak“ jen pro sell ≥ 0. |
V záporném výkupním okně nabít z FVE (KV1 block_export). |
| LP — export shortfall | Penalizace nevyužitého exportu na ge_bat, ne na ge; pro všechny allow_discharge_export sloty s kladnou marží (sell > acquisition resp. sell > buy + degrad u fixed). |
Dříve jen high_sell_slot (globální max lookahead) → většina večerních slotů bez tlaku na vývoz. |
| LP — ge_bat push | Min. ~8 kW export z baterie ve všech ekonomicky výhodných discharge slotech (ne jen večer/ráno seznam). | Plán má odpovídat „vylije co dá síť“ ve špičkách. |
| LP — záporný sell + block_export | charge_slots rozšířeny o sloty sell<0 s PV přebytkem; měkká penalizace pv_charge_shortfall (bc_pv vs přebytek FVE). |
Postupné nabíjení / curtail místo plné FVE do baterie. |
Soubory: db/routines/R__063_fn_load_planning_slots_full.sql, backend/services/planning_engine.py, backend/tests/test_planning_charge_slot_selection.py, docs/04-modules/planning.md.
Neměněno (záměrně):
reserve_soc_percentu BA81 (30 %) — podlaha pro prodej do sítě; pod ní jen dům. Noc držela 30 % kvůli zakázanému exportu v masce, ne kvůli špatné rezervě.- Ranní export 5–11 před
sell<0, večerní peak ≥17, kotva SoC — beze změny.
Ověření po deployi:
- Flyway repeatable
R__063+ restart backendu. - Rolling replan BA81 / KV1 / home-01.
- MCP: noc BA81 —
allow_discharge_export=truekde není lepší sell později; večerabs(battery_setpoint_w)řádově kW u slotů sexport_mode=BATTERY_SELL. pytest backend/tests/test_planning_dispatch_milp.py backend/tests/test_planning_charge_slot_selection.py
Šablona pro další záznamy
## YYYY-MM-DD — Krátký titul
**Problém:** …
**Změny:** …
**Soubory:** …
**Ověření:** …