🧠 Adaptivní řízení topných těles ESP32 Grid Load System
Kompletní technická dokumentace souboru vypocet02.h - Detailní popis fungování inteligentního PWM řízení při zapnutém Adaptivni_adaptiveControlEnabled = true
📅 Datum vytvoření: 2025 📁 Soubor: vypocet02.h 🎯 Účel: Inteligentní adaptivní řízení PWM topení podle dostupné solární energie, nastavení distributorů a typu měniče 🔧 Systém: ESP32-Grid-Load-Vypocet s podporou ECO i klasických měničů
📋 Co tento dokument obsahuje:
Tento dokument popisuje komplexní fungování adaptivního řízení topných těles v ESP32-Grid-Load-Vypocet systému.
Zaměřuje se na výpočet spotřeby v bodech, podrobný průběh algoritmů a praktické implementace.
Adaptivní řízení topení je pokročilý systém, který inteligentně řídí výkon topných těl na základě dostupné solární energie a nastavení distributorů. Systém dokáže:
Automaticky upravovat PWM podle dostupné solární energie
Respektovat nastavení distributorů (pouze solár vs. možnost čerpání ze sítě)
Chránit před přetoky do sítě a nadměrným odběrem
Učit se z chování měniče pro optimální výkon
Postupně upravovat výkon pro stabilitu systému
Ochrana baterie podle SOC a maximálního odběru
🔄 Tok řízení systému
Start
→
Prioritní kontroly
→
Analýza distributorů
→
Výpočet dostupné energie
→
Adaptivní optimalizace
→
Bezpečnostní kontroly
→
Aplikace PWM
2. 🎯 Hlavní komponenty systému
1. Hlavní řídicí funkce
Adaptivni_OvladaniPwmSSR() - centrální funkce volaná z hlavní smyčky
Kontroluje prioritní podmínky (baterie, ochrana)
Volá výpočet výkonu topení
Aplikuje vypočítaný PWM na výstup
2. Výpočetní funkce
TestRezim_CalculateHeatingPower() - výpočet optimálního výkonu topení
Analyzuje distribuční podmínky
Počítá dostupnou energii v bodech
Převádí na procenta PWM (0-100%)
3. Inteligentní adaptace
Adaptivni_IntelligentAdaptiveControl() - učící se optimalizace
Testuje reakci měniče na změny PWM
Adaptuje parametry podle chování systému
Chrání před přetoky do sítě
Rozlišuje ECO a klasické měniče
3. 📊 Detailní výpočet spotřeby v bodech
START: Adaptivni_OvladaniPwmSSR()
⬇️
KROK 1: Prioritní kontroly baterie
⬇️
KROK 2: Výpočet výkonu v bodech
⬇️
KROK 3: Aplikace PWM výstupu
🔋 KROK 1: Prioritní kontroly baterie
Kontrola 1A: Minimální SOC baterie
if (batterySOCMin > 0 && batterySOC <= batterySOCMin) {
TestRezim_ApplyPwmOutput(0.0f); // Topení VYPNUTO
return; // Ukončení funkce
}
Účel: Ochrana baterie před nadměrným vybíjením
Akce: Topení se okamžitě vypne, pokud je SOC ≤ minimální hodnota
Kontrola 1B: Maximální odběr z baterie
if (batteryMaxWatt != 0 && batteryW < batteryMaxWatt) {
TestRezim_ApplyPwmOutput(0.0f); // Topení VYPNUTO
return; // Ukončení funkce
}
Účel: Ochrana před nadměrným výkonovým odběrem
Akce: Topení se vypne při překročení povoleného odběru
ECO měniče (Anern 6200 ECO):
• Agresivnější přístup (větší kroky PWM × 1.5)
• Menší práh pro spuštění (100W místo 200W)
• Rychlejší reakce na změny
• Kontinuální zvyšování při přebytku > 50W
Klasické měniče:
• Konzervativnější přístup
• Postupné zvyšování PWM
• Učení se podle reakce měniče
• Adaptivní interval testování
Detailní logika ECO vs. Klasické měniče
if (Adaptivni_ecoInverterMode) {
// ECO MĚNIČ REŽIM: Agresivnější přístup
if (currentPwm < 15.0) {
if (solarW > (loadW + 100)) { // Menší práh pro ECO
optimizedPwm = currentPwm + (Adaptivni_pwmTestStep * 1.5);
}
} else if (solarW > (loadW + 50)) {
optimizedPwm = currentPwm + Adaptivni_pwmTestStep;
Adaptivni_inverterResponding = true;
}
} else {
// STANDARDNÍ REŽIM pro klasické měniče
if (currentPwm < 10.0) {
if (solarW > (loadW + 200)) { // Vyšší práh
optimizedPwm = currentPwm + Adaptivni_pwmTestStep;
}
} else if (Adaptivni_inverterResponding) {
// Učení se reakce měniče
optimizedPwm = currentPwm + Adaptivni_pwmTestStep;
}
}
5. 📊 Proměnné a nastavení
🔧 Hlavní řídící proměnné adaptivního systému
Proměnná
Typ
Rozsah
Výchozí
Popis použití
Adaptivni_adaptiveControlEnabled
bool
true/false
true
Hlavní přepínač adaptivního řízení
Adaptivni_adaptiveTestInterval
int
1000-10000ms
3000
Interval testování měniče
Adaptivni_pwmTestStep
float
1.0-20.0%
5.0
Velikost kroku PWM změn
Adaptivni_solarResponseThreshold
float
10.0-200.0W
50.0
Práh pozitivní reakce měniče
Adaptivni_maxGridFlow
int
50-1000W
200
Maximální přetok do sítě
Adaptivni_ecoInverterMode
bool
true/false
true
Režim ECO měniče (agresivnější)
🔗 Existující systémové proměnné
Proměnná
Popis
Použití v algoritmu
Kritické hodnoty
distributor1, distributor2, distributor3
Stavy distributorů
Určují režim řízení
0=solár, 1=síť, 2=minmax
temp5
Max odběr od distributora (%)
Limit PWM v síťovém režimu
0-100%
solarW, solarWMin
Aktuální a min. solární výroba
Základ pro výpočet energie
W hodnoty
cezW
Tok ze/do sítě
+ odběr, - přetok
Kritické pro bezpečnost
batterySOC, batterySOCMin
Stav nabití baterie
Prioritní ochrana
% hodnoty
batteryW, batteryMaxWatt
Výkon baterie
Ochrana před přetížením
W hodnoty (záporné = odběr)
6. 🛡️ Bezpečnostní opatření a ochrana
⚠️ Hierarchie bezpečnostních kontrol
PRIORITA 1: Ochrana baterie
• SOC kontrola: batterySOC ≤ batterySOCMin → topení VYPNUTO
• Výkonová kontrola: batteryW < batteryMaxWatt → topení VYPNUTO
• Okamžitá akce bez čekání na interval
PRIORITA 2: Ochrana před přetoky
• Přetok do sítě: cezW < -maxGridFlow → rychlé snížení PWM
• Poloviční interval pro rychlejší reakci
• Dvojnásobný krok snížení
PRIORITA 3: Limit odběru ze sítě
• Vysoký odběr: cezW > cezWMax → postupné snížení
• Respektování intervalu
• Jemnější kroky (× 0.5)
PRIORITA 4: Respektování temp5
• PWM nikdy nepřekročí temp5 hodnotu
• Automatické omezení v síťovém režimu
• Ochrana distributora
🔒 Postupné změny pro stabilitu
// Kontrola intervalu před změnou PWM
if ((currentTime - Adaptivni_lastAdaptiveTest) < Adaptivni_adaptiveTestInterval) {
return currentPwm; // Příliš brzy na další změnu
}
// Bezpečné omezení PWM
optimizedPwm = (optimizedPwm < 0.0f) ? 0.0f :
((optimizedPwm > 100.0f) ? 100.0f : optimizedPwm);
7. 📈 Praktické příklady výpočtů
Příklad 1: Slunečný den - režim pouze solár
Parametr
Hodnota
Jednotka
Poznámka
solarW
1500.00
W
Aktuální solární výroba
solarWMin
200.00
W
Minimální práh
cezW
-300.00
W
Přetok do sítě
distributor1,2,3
0,0,0
-
Pouze solární režim
Výpočet krok za krokem:
// 1. Kontrola režimu distributorů
distributorDisabled = true (všechny = 0)
// 2. Kontrola minimální solární výroby
solarW (1500) >= solarWMin (200) ✓
// 3. Výpočet solárního přebytku
solarSurplus = 1500 - 200 = 1300W
// 4. Přidání přetoku do sítě
cezW = -300W < -50W → přidej abs(-300) = 300W
solarSurplus = 1300 + 300 = 1600W
// 5. Převod na procenta
heatingPercent = 1600 / 20.0 = 80.00%
// 6. Omezení rozsahu
heatingPercent = min(max(80%, 0%), 100%) = 80%
// 7. PWM výstup
pwmValue = 80 * 2.55 = 204
→ Výsledek: ~1600W topení při 80% PWM
Příklad 2: Oblačný den - síťový režim
Parametr
Hodnota
Jednotka
Poznámka
solarW
600.00
W
Nízká solární výroba
solarWMin
800.00
W
Vyšší práh
cezW
400.00
W
Odběr ze sítě
temp5
60.00
%
Max od distributora
distributor1,2,3
1,1,1
-
Síťový režim
Výpočet krok za krokem:
// 1. Kontrola režimu distributorů
distributorAllowed = true (alespoň jeden = 1)
// 2. Základní solární energie
availableEnergy = max(0.0, 600 - 800) = 0W
// 3. Solár je pod minimem a temp5 > 0
solarW (600) < solarWMin (800) a temp5 = 60%
maxDistributorPower = (60/100) * 2000 = 1200W
// 4. Čerpáme ze sítě (cezW > 0)
cezW = 400W > 0 → čerpáme ze sítě
remainingCapacity = 1200 - 400 = 800W
availableEnergy = 0 + 800 = 800W
// 5. Převod na procenta
heatingPercent = 800 / 20.0 = 40.00%
// 6. Omezení podle temp5
heatingPercent = min(40%, 60%) = 40%
// 7. PWM výstup
pwmValue = 40 * 2.55 = 102
→ Výsledek: ~800W topení při 40% PWM
=== ADAPTIVNÍ TOPENÍ - VÝPOČET ===
Baterie SOC: 85%, Min: 20%
Baterie W: -150W, Max: -200W
Distributory (1,2,3): 1, 1, 0
SolarW: 1500W, Min: 200W
CezW: -300.0W, Temp5: 80%
Distributor povolen: ANO
REŽIM: Může čerpat od distributora
Celková dostupná energie: 1600.0W -> topení: 80.0%
PWM: 80.0% (204), AdaptTeplo: 80.0%
=== ADAPTIVE PWM CONTROL ===
Current PWM: 75.0%
Solar change: 150.0W
Grid flow: -300.0W
Inverter responding: YES
ADAPTIVE ECO: Kontinualni zvysovani pro ECO menic
ADAPTIVE: PWM 75.0% → 83.0%
===========================
🎯 Web interface template proměnné
Template proměnná
Funkce
Příklad hodnoty
%ADAPTIVE_ENABLED_STATUS%
Adaptivni_ProcessAdaptiveTemplateVariables()
ZAPNUTO / VYPNUTO
%ECO_INVERTER_STATUS%
Typ měniče
ECO měnič / Klasický měnič
%ADAPTIVE_TEST_INTERVAL%
Interval testování
3000
%ADAPTIVE_TEST_STEP%
Velikost kroku
5.0
%ADAPTIVE_SOLAR_THRESHOLD%
Práh reakce
50
%ADAPTIVE_MAX_GRID_FLOW%
Max přetok
200
10. 🚀 Instalace a troubleshooting
📁 Aktivace systému
Krok 1: Základní aktivace
// Zapnutí adaptivního řízení
Adaptivni_adaptiveControlEnabled = true;
// Načtení nastavení ze SPIFFS
Adaptivni_LoadAdaptiveSettings();
// Nastavení web handlerů
Adaptivni_SetupAdaptiveWebHandlers();
Krok 2: Konfigurace distributorů
// Pro režim pouze solár
distributor1 = 0; distributor2 = 0; distributor3 = 0;
solarWMin = 500; // 500W minimum
// Pro síťový režim
distributor1 = 1; distributor2 = 1; distributor3 = 1;
temp5 = 60; // Max 60% PWM od distributora
solarWMin = 200; // Nižší práh díky síti
❌ Časté problémy a řešení
Problém
Možná příčina
Řešení
Ověření
Topení se nezapíná
batterySOC ≤ batterySOCMin
Nabijte baterii nebo snižte SOCMin
WebSerialAno=14, kontrola SOC
PWM se nezvyšuje
solarW < solarWMin
Snižte solarWMin nebo počkejte na slunce
Porovnejte solarW vs solarWMin
Časté oscilace PWM
Příliš malý interval
Zvyšte adaptiveTestInterval
Sledujte časy změn
Přetoky do sítě
Příliš agresivní kroky
Snižte pwmTestStep
Kontrola cezW hodnot
Pomalé reakce
Dlouhý interval nebo velký práh
Snižte interval a práh
ECO režim pro rychlejší reakce
🔍 Diagnostické kroky
Aktivujte debug:WebSerialAno = 14 nebo 15
Zkontrolujte základní podmínky:
Adaptivni_adaptiveControlEnabled = true?
Hodnoty distributorů a temp5?
SOC baterie vs. SOCMin?
solarW vs. solarWMin?
Sledujte debug výpisy:
Který režim je aktivní (POUZE SOLÁR / SÍŤOVÝ)?
Jaká je dostupná energie v bodech?
Reaguje měnič na změny PWM?
Otestujte web interface:
Přístup na /adaptive
Uložení nastavení přes /getadaptivesettings
Kontrola SPIFFS souborů
⚠️ Bezpečnostní upozornění:
• Vždy testujte s nízkými hodnotami PWM
• Sledujte teploty topných těles
• Ověřte správné zapojení PWM výstupu
• Mějte možnost manuálního vypnutí
✅ Výhody kompletního adaptivního řízení:
• Automatická optimalizace podle typu měniče
• Ochrana před přetoky do sítě
• Maximální využití solární energie
• Učení se chování systému
• Ochrana baterie a distributorů
• Výpočet spotřeby v reálných bodech
• Webové rozhraní pro konfiguraci
📝 Závěrečná poznámka: Tento dokument popisuje komplexní fungování adaptivního řízení topných těles v souboru vypocet02.h.
Systém je navržen pro maximální efektivitu, bezpečnost a adaptabilitu při využívání obnovitelné energie v různých konfiguracích ESP32-Grid-Load systémů.
Dokumentace vytvořena: Verze systému: ESP32-Grid-Load-Vypocet89 Soubor: vypocet02.h Funkce: Adaptivní řízení topení s inteligentním algoritmem