Files
ems/docs/studies/hu1-spot-realistic.md
Dusan Vojacek 55deae984e
All checks were successful
CI and deploy / migration-check (push) Successful in 19s
CI and deploy / deploy (push) Successful in 1m5s
HU1 studie: --pure-bess a --rt-eff flagy + výsledky čistého BESS
Zadání majitele: čistý BESS bez odběru, export povolen, varianta bez ztrát.
Výsledky (365 dní vč. zimy 25/26): arbitráž na spotu +129.4 tis. Kč/rok
(η=1.0) / +110.0 tis. (η=0.9); konzervativně (spready −30 % + deg 0.5)
+63.4 tis. Na fixní smlouvě jen ~24–35 tis. → spot je podmínka smysluplnosti
BESS. Léto ~378 Kč/den, zima ~308.

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

155 lines
7.9 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í, η 1.00/1.00,
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 | 0 | -55 | 0 | -378 | -378 | -323 |
| zima (103) | 363 | 0 | -144 | 0 | -308 | -308 | -164 |
## 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 | 0 | -14 | 0 | -271 | -271 | -258 |
| 2024-05 | 31 | 0 | -7 | 0 | -301 | -301 | -294 |
| 2024-06 | 30 | 0 | -47 | 0 | -346 | -346 | -298 |
| 2024-07 | 31 | 0 | -35 | 0 | -333 | -333 | -298 |
| 2024-08 | 31 | 0 | -75 | 0 | -392 | -392 | -317 |
| 2024-09 | 30 | 0 | -65 | 0 | -359 | -359 | -294 |
| 2024-10 | 31 | 0 | -72 | 0 | -339 | -339 | -267 |
| 2024-11 | 30 | 0 | -231 | 0 | -307 | -307 | -76 |
| 2024-12 | 31 | 0 | -285 | 0 | -311 | -311 | -26 |
| 2025-01 | 31 | 0 | -180 | 0 | -278 | -278 | -98 |
| 2025-02 | 28 | 0 | -175 | 0 | -271 | -271 | -96 |
| 2025-03 | 30 | 0 | -70 | 0 | -368 | -368 | -298 |
| 2025-04 | 30 | 0 | -34 | 0 | -394 | -394 | -361 |
| 2025-05 | 31 | 0 | -27 | 0 | -389 | -389 | -362 |
| 2025-06 | 30 | 0 | -61 | 0 | -423 | -423 | -361 |
| 2025-07 | 30 | 0 | -43 | 0 | -266 | -266 | -223 |
| 2025-08 | 31 | 0 | -37 | 0 | -345 | -345 | -307 |
| 2025-09 | 30 | 0 | -137 | 0 | -478 | -478 | -340 |
| 2025-10 | 31 | 0 | -123 | 0 | -404 | -404 | -281 |
| 2025-11 | 30 | 0 | -121 | 0 | -268 | -268 | -147 |
| 2025-12 | 31 | 0 | -50 | 0 | -173 | -173 | -123 |
| 2026-01 | 31 | 0 | -213 | 0 | -269 | -269 | -56 |
| 2026-02 | 28 | 0 | -36 | 0 | -198 | -198 | -162 |
| 2026-03 | 31 | 0 | -160 | 0 | -493 | -493 | -333 |
| 2026-04 | 30 | 0 | -57 | 0 | -483 | -483 | -426 |
| 2026-05 | 31 | 0 | -101 | 0 | -477 | -477 | -376 |
| 2026-06 | 12 | 0 | -82 | 0 | -359 | -359 | -278 |
## Roční projekce (posledních 365 simulovaných dní)
| metrika | Kč/rok |
|---------|--------|
| A fix bez baterie | 0 |
| B fix + baterie (dnešní stav) | -35136 |
| C spot bez baterie | 0 |
| D spot + baterie (návrh) | -129394 |
| **DB: přechod na spot (s baterií)** | **-94258** |
| DA: spot+baterie vs fix bez baterie | -129394 |
| CA: jen změna smlouvy, bez baterie | +0 |
| CD: hodnota baterie na spotu | +129394 |
**Interval nejistoty DB: -94258 … -42535 Kč/rok**
(konzervativní = spready 30 % + degradace 0.50 Kč/kWh na obou stranách).
## GAP realistic vs perfect hindsight (scénář D)
Hindsight varianta přeskočena (--skip-hindsight).
## Citlivosti (roční projekce, Kč/rok)
| varianta | Kč/rok |
|----------|--------|
| D deg 0.15 | -129394 |
| D deg 0.50 | -104542 |
| D deg 1.00 | -77960 |
| D compress 30 % | -85622 |
| D compress 30 % + deg 0.50 | -63410 |
| B compress 30 % | -20874 |
| C compress 30 % | 0 |
## 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): -323 Kč/den; zima (103): -164 Kč/den.
Nejslabší měsíc v datech (2024-12): DB -26 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
**-94258 Kč/rok** (DB), konzervativně -42535 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.