Optimalizace místo pravidel
Když má dům fotovoltaiku, baterii, elektroauto a spotový tarif, začne to obvykle sadou automatizací. Když je cena záporná, nabíjej. Když svítí slunce a baterie je plná, pusť auto. Když je večer drahá elektřina, vybíjej baterii.
Každé pravidlo samo o sobě dává smysl. Problém je, že spolu soupeří o stejné zdroje a nevidí do budoucnosti.
Kde pravidla narazí
- Neznají zítřek. Nabít baterii ze sítě teď za průměrnou cenu je špatný nápad, když zítra dopoledne bude svítit a v poledne bude cena záporná.
- Konflikty se řeší pořadím. Auto, baterie i spotřebiče chtějí stejnou energii. Výsledek pak závisí na tom, která automatizace se spustila dřív.
- Každá výjimka je další podmínka. Po pár měsících je strom podmínek nečitelný a nikdo neví, proč se systém zachoval tak, jak se zachoval.
Formulace jako optimalizační úloha
Místo pravidel popíšu systém: co platí fyzikálně a co chci minimalizovat. Horizont rozdělím na časové sloty a pro každý slot hledám, kolik energie jde kam.
- Proměnné: nabíjení a vybíjení baterie, výkon wallboxů, nákup a prodej do sítě.
- Omezení: energetická bilance v každém slotu, kapacita a výkon baterie, limity jističe, požadovaný stav nabití auta v čase odjezdu.
- Cíl: minimalizovat náklady za horizont podle spotových cen a předpovědi výroby.
Celočíselné proměnné (proto MILP, ne jen LP) se hodí tam, kde je realita nespojitá: baterie nemá současně nabíjet i vybíjet, wallbox má minimální nabíjecí proud a pod ním nejede vůbec.
Co to přináší
Rozhodnutí vychází z celého horizontu najednou, takže konflikty mezi spotřebiči řeší solver, ne pořadí automatizací. Nový požadavek je nové omezení, ne další větev podmínek. A když se plán nepovede, dá se zpětně podívat, z jakých vstupů vznikl.
Home Assistant v tomhle uspořádání slouží jako zdroj dat a vykonavatel plánu. Rozhodování je jinde a je explicitní.
Kde je to těžší
Model je jen tak dobrý jako vstupy. Předpověď výroby se mýlí, spotřeba domu je šum a auto přijede jindy, než měl plán. Proto se plán průběžně přepočítává a skutečné řízení (třeba proud wallboxů) běží v rychlejší smyčce na ESP32, které reaguje na aktuální stav a hlásí odchylky zpátky.
← Všechny poznámky