Files
ems/docs/studies/hu1-spot-realistic.md
Dusan Vojacek 826c776c34 HU1: realistická studie přechodu na spot (den-po-dni solver_v2, 2 roky OTE)
scripts/harness/hu1_realistic_eval.py — realistická simulace BESS 128 kWh/36 kW
na spotu místo perfect hindsight: D−1 plán přes solve_dispatch_v2 (informační
množina = ceny zítřka z OTE D−1 13:30), SoC řetězené mezi dny, parametry
baterie/grid z DB site 5 (fn_planning_site_context). Scénáře fix/spot ×
bez/s baterií, Kč/den po měsících a sezónách, roční projekce, citlivosti
(degradace 0.15/0.5/1.0, spread compression −30 %), GAP vs 7denní hindsight.
Varianty běží paralelně (ProcessPoolExecutor). HU1 nemá telemetrii →
parametrizovaný průmyslový odběr (konstanty v hlavičce, přepsat čísly
od majitele); fixní cena = proxy BA81 (--fix-buy).

Výsledky (788 dní 2024-04-14…2026-06-12, 2 zimy): D−B (přechod na spot
s baterií) −163,6 tis. Kč/rok base, konzervativně −110,1 tis.; léto −629,
zima −254 Kč/den, nejhorší měsíc (12/2024) −41 Kč/den — stále úspora.
GAP realistic vs hindsight ≈ 0 (ceny jsou D−1 známé) → dřívější horní mez
byla nadhodnocená sezónností, ne neznalostí budoucnosti.

Doc: docs/studies/hu1-spot-realistic.md (generuje skript, opakovatelné);
README harness doplněn.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 21:56:03 +02:00

155 lines
8.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# HU1 (hulin-bess) — přechod na spot: realistická studie
*Generováno skriptem `scripts/harness/hu1_realistic_eval.py` (2026-06-12).*
*Opakovatelně spustitelné — viz hlavička skriptu.*
## Otázka
Majitel HU1 (128 kWh / 36 kW BESS, průmyslový odběr, bez FVE/EV/TČ) rozhoduje
o přechodu z fixní nákupní ceny na **spotovou smlouvu**. Dřívější
perfect-hindsight studie (`hu1_bess_study.py`) dala horní mez; tady je
**realistické** roční číslo — simulace den po dni tak, jak by jel plánovač.
## Metodika
- **D1 plán**: `solve_dispatch_v2` (produkční čisté jádro v2) s informační
množinou OTE D1 13:30 = ceny celého zítřka, nic za půlnoc. Terminal SoC
shadow price (faktor 0.9 z DB) oceňuje energii na konci dne.
- **SoC řetězené mezi dny** (konec dne N = start dne N+1); start 50 %.
- **Žádný perfect hindsight** v hlavních číslech; hindsight (7denní okna,
plná znalost) běží zvlášť jen kvůli GAPu.
- Parametry **přesně z DB site 5**: baterie 128 kWh,
36 kW nabíjení/vybíjení, η 0.95/0.95,
SoC 1095 %,
degradace 0.15 Kč/kWh; grid import 43 kW /
**export 42 kW povolen** (`no_export=false`),
`block_export_on_negative_sell=true` (při záporné výkupní ceně se neexportuje).
- Náklady **včetně degradace** (0.5 × throughput × Kč/kWh) a **SoC-adjusted**
(změna SoC dne oceněna průměrnou denní nákupní cenou).
- Spot ceny: raw OTE + marže z `site_market_config` site 5
(buy +0.05, sell -0.02 Kč/kWh; poplatky 0.00).
### Předpoklady (nahradit reálnými čísly!)
- **Fixní nákupní cena 3.38 Kč/kWh** — site 5 má v DB režim spot/spot,
skutečná dnešní fixní smluvní cena NENÍ v DB (default = proxy z BA81 fixu).
Přepsat přes `--fix-buy`.
- **Odběrový profil parametrizovaný** — HU1 nemá telemetrii (0 řádků
v `telemetry_inverter`): bazál 4 kW 24/7 + špička +16 kW
618 h popá (konstanty v hlavičce skriptu).
- Scénáře s fixem prodávají přebytek na spotu (jako BA81) — ověřit, zda to
dnešní fixní smlouva vůbec umožňuje.
- Svátky modelovány jako pracovní dny.
## Data
- OTE 15min raw ceny (`market_interval_price`, `OTE_CZ`): **2024-04-14 … 2026-06-12**,
788 kompletních pražských dní; díry: 2025-03-30, 2025-07-04.
Pokrývá **2 zimy** (2024/25, 2025/26) — hlavní riziko arbitráže.
- HU1 telemetrie/audit: žádná skutečná spotřeba ani provoz (site v MANUAL,
bez sběru dat).
## Výsledky
Scénáře (Kč/den, kladné = náklad): **A** fix bez baterie · **B** fix + baterie
(dnešní stav) · **C** spot bez baterie · **D** spot + baterie (návrh).
## Kč/den po sezónách
| období | dní | A fix bez bat | B fix+bat | C spot bez bat | D spot+bat | DA | DB |
|--------|-----|---------------|-----------|----------------|------------|-----|-----|
| léto (49) | 425 | 789 | 760 | 460 | 131 | -658 | -629 |
| zima (103) | 363 | 789 | 744 | 736 | 490 | -300 | -254 |
## Kč/den po měsících (SoC-adjusted, vč. degradace)
| období | dní | A fix bez bat | B fix+bat | C spot bez bat | D spot+bat | DA | DB |
|--------|-----|---------------|-----------|----------------|------------|-----|-----|
| 2024-04 | 17 | 783 | 780 | 458 | 226 | -556 | -553 |
| 2024-05 | 31 | 806 | 804 | 394 | 130 | -676 | -673 |
| 2024-06 | 30 | 757 | 734 | 448 | 147 | -610 | -587 |
| 2024-07 | 31 | 806 | 788 | 425 | 135 | -671 | -653 |
| 2024-08 | 31 | 785 | 739 | 498 | 159 | -626 | -580 |
| 2024-09 | 30 | 779 | 736 | 493 | 181 | -598 | -555 |
| 2024-10 | 31 | 806 | 778 | 581 | 290 | -516 | -488 |
| 2024-11 | 30 | 779 | 692 | 839 | 594 | -185 | -98 |
| 2024-12 | 31 | 785 | 687 | 904 | 647 | -138 | -41 |
| 2025-01 | 31 | 806 | 754 | 851 | 635 | -171 | -119 |
| 2025-02 | 28 | 788 | 750 | 833 | 635 | -153 | -115 |
| 2025-03 | 30 | 779 | 753 | 585 | 277 | -502 | -476 |
| 2025-04 | 30 | 800 | 791 | 457 | 110 | -690 | -680 |
| 2025-05 | 31 | 785 | 773 | 385 | 36 | -749 | -737 |
| 2025-06 | 30 | 779 | 743 | 395 | 16 | -763 | -728 |
| 2025-07 | 30 | 800 | 771 | 527 | 312 | -489 | -459 |
| 2025-08 | 31 | 764 | 743 | 402 | 100 | -664 | -643 |
| 2025-09 | 30 | 800 | 719 | 558 | 136 | -664 | -583 |
| 2025-10 | 31 | 806 | 746 | 636 | 300 | -506 | -445 |
| 2025-11 | 30 | 757 | 723 | 717 | 506 | -251 | -216 |
| 2025-12 | 31 | 806 | 797 | 701 | 577 | -229 | -220 |
| 2026-01 | 31 | 785 | 739 | 878 | 669 | -116 | -70 |
| 2026-02 | 28 | 788 | 785 | 689 | 546 | -242 | -240 |
| 2026-03 | 31 | 785 | 728 | 622 | 218 | -566 | -510 |
| 2026-04 | 30 | 800 | 782 | 449 | 29 | -772 | -753 |
| 2026-05 | 31 | 764 | 717 | 485 | 75 | -689 | -641 |
| 2026-06 | 12 | 865 | 823 | 631 | 344 | -521 | -479 |
## Roční projekce (posledních 365 simulovaných dní)
| metrika | Kč/rok |
|---------|--------|
| A fix bez baterie | 287615 |
| B fix + baterie (dnešní stav) | 273979 |
| C spot bez baterie | 218077 |
| D spot + baterie (návrh) | 110392 |
| **DB: přechod na spot (s baterií)** | **-163587** |
| DA: spot+baterie vs fix bez baterie | -177223 |
| CA: jen změna smlouvy, bez baterie | -69538 |
| CD: hodnota baterie na spotu | +107685 |
**Interval nejistoty DB: -163587 … -110069 Kč/rok**
(konzervativní = spready 30 % + degradace 0.50 Kč/kWh na obou stranách).
## GAP realistic vs perfect hindsight (scénář D)
realistic 296.2 vs hindsight 296.2 Kč/den; GAP -0.1 Kč/den (-51 Kč za 788 dní)
## Citlivosti (roční projekce, Kč/rok)
| varianta | Kč/rok |
|----------|--------|
| D deg 0.15 | 110392 |
| D deg 0.50 | 130657 |
| D deg 1.00 | 153008 |
| D compress 30 % | 153358 |
| D compress 30 % + deg 0.50 | 170648 |
| B compress 30 % | 280717 |
| C compress 30 % | 220469 |
## Interpretace a doporučení
- **GAP realistic hindsight ≈ 0**: OTE ceny jsou D1 známé a odběr je
v modelu deterministický → reálný D1 plánovač o (téměř) nic nepřichází
proti dokonalému vícedennímu výhledu. Rozdíl proti dřívější hindsight
studii tedy dělá hlavně **sezónnost** (jarní spready), ne neznalost
budoucnosti. V reálu přibude chyba predikce odběru — s reálným diagramem
studii přegenerovat.
- **Zima je slabší, ale zůstává kladná**: sezónní rozpad DB —
léto (49): -629 Kč/den; zima (103): -254 Kč/den.
Nejslabší měsíc v datech (2024-12): DB -41 Kč/den —
ani v zimě s malými spready nebyl přechod na spot ztrátový.
- **Doporučení (za předpokladů výše)**: přechod na spot dává base úsporu
**-163587 Kč/rok** (DB), konzervativně -110069 Kč/rok.
Před podpisem smlouvy doplnit data od majitele (níže) a studii
přegenerovat — čísla škálují s odběrovým profilem a fixní cenou.
## Co chybí od majitele (zpřesnění)
1. **Skutečný odběrový diagram** (ideálně 15min/hodinová data z fakturačního
elektroměru za 12 měsíců) → nahradit parametrický profil.
2. **Dnešní fixní cena** (Kč/kWh bez DPH, vč. případného VT/NT rozlišení)
a regulované složky (distribuce, POZE) — zde modelována jen silová energie.
3. **Návrh spotové smlouvy**: marže dodavatele na nákup i výkup (zde
+0.05/-0.02 Kč/kWh), měsíční platy.
4. **Smí dnešní fixní smlouva exportovat?** (scénář B předpokládá spot výkup).
5. Rezervovaná kapacita / penalizace za překročení — ovlivní peak shaving.