diff --git a/docs/04-modules/planning-arbitrage-accounting.md b/docs/04-modules/planning-arbitrage-accounting.md index 15150c8..f2fb2a5 100644 --- a/docs/04-modules/planning-arbitrage-accounting.md +++ b/docs/04-modules/planning-arbitrage-accounting.md @@ -77,6 +77,51 @@ Použití `min(buy)` jako „acquisition cost“ pro večerní export: --- +## 3b. Výprodejní strana: marginální cena, ne špička (proč baterie nedrží jen na nejdražší slot) + +Zrcadlo sekce 3 na **prodejní** straně. Častá intuice: „baterie drží, protože večer +je jeden drahý slot (sell 2,76 Kč) — prodá se za něj“. **Ne.** Stejně jako se 64 kWh +**nenabije** v jedné čtvrthodině, tak se ani **nevyprodá** do jednoho slotu — strop +exportu (home-01 **13,5 kW**) pustí jen ~**3,4 kWh / 15 min**. Vybití celé baterie do +sítě tedy zabere **hodiny** a rozloží se přes **více** prodejních slotů s **klesající** +cenou. + +**Klíčový princip — MILP je marginální:** účelová funkce `Σ (ge[t] × sell[t])` přes +**všechny** sloty s **per-slot stropem** `ge[t] ≤ max_export` znamená, že solver +prodává **nejdřív nejdražší sloty** a každou další kWh až za **nižší** dosažitelnou +cenu. Rozhodnutí **„držet baterii vs. vybít teď“** se tedy poměřuje proti +**MARGINÁLNÍ ceně** = nejnižší z **reálně využitých** prodejních slotů, **ne** proti +špičce. Baterie drží jen tolik, dokud i ta **marginální** vyvezená kWh (prodaná v tom +nejlevnějším z použitých oken) bije alternativu (krytí loadu / další držení); nad to +prodá / spotřebuje dřív. + +**Konkrétní příklad (home-01, večer 2026-06-14, plán):** baterie nabitá za odpolední +**záporné** ceny (SoC ~100 %) se vyváží na **stropu 13,5 kW napříč 20:30–23:00**, ne jen +do špičky 22:00: + +| slot | sell Kč/kWh | export | pozn. | +|------|-------------|--------|-------| +| 20:30 | 2,21 | 13,5 kW | | +| 21:00 | 2,20 | 13,5 kW | marginální (nejnižší použitý) | +| 21:30 | 2,25 | 13,5 kW | | +| **22:00** | **2,76** | 13,5 kW | **špička — jen jeden slot** | +| 22:30 | 2,47 | 13,5 kW | | +| 23:00 | 2,32 | 13,5 kW | | + +SoC klesne 92 → 32 % (~38 kWh) za **6** slotů. Do špičky 2,76 jde jen **jeden** slot; +marginální kWh se prodá za **~2,2**. Kdyby solver oceňoval **celou** baterii špičkou +2,76, **držel by víc**, než je optimální. Že vyváží napříč oknem = důkaz, že počítá +**marginálně se stropem**, ne naivně na špičku. + +**Caveat — kde to marginální NENÍ:** platí jen pro sloty **uvnitř horizontu** (viditelná +prodejní okna). Energie zbylá **za horizontem** (`soc[T−1]`) se ocení **jedním skalárem** +(`terminal_soc_value` = průměr buy prvních 24 h × faktor, pravidlo §16), **ne** pořádnou +marginální budoucí prodejní křivkou. Pro „dnešní večer v horizontu“ je to správně +marginální; zpřesnění terminal value (počasím/cenou vážené, „fáze 3e“) je +v `docs/06-open-questions.md` a `docs/04-modules/planning-extended-horizon.md`. + +--- + ## 4. Co používat místo toho (směr návrhu) | Pojem | Význam | Poznámka |