EaSun Live
EaSun Systém
Efektivní využití solární energie

ExtremeLoadProtection.h - dokumentace

Právě se nacházíte: Home / vyvoj / 

Autor: Pavel Kunor Verze: 1.0 Datum: 2025 Typ: ESP32 Arduino knihovna

Obsah dokumentace

1. Přehled systému 2. Konfigurační proměnné 3. Globální proměnné 4. Funkce
5. Tok zpracování 6. Použití 7. Příklady použití 8. Řešení problémů

1. Přehled systému

TestRezim_ExtremeLoadProtection.h je pokročilý systém ochrany pro ESP32 zařízení, který implementuje víceúrovňovou ochranu před extrémním odběrem energie ze sítě a baterie. Systém kombinuje okamžitou reakci, prediktivní regulaci a adaptivní parametry pro maximální efektivitu a bezpečnost.

Klíčové vlastnosti:

Okamžitá ochrana: Reakce na náhlé nárůsty odběru během 1 sekundy
Prediktivní regulace: Předpovídání trendů na základě historie měření
Adaptivní parametry: Automatické přizpůsobení limitů podle situace
Kritické situace: Ochrana před přetížením sítě a baterie
Automatické obnovení: Postupné vracení parametrů při stabilní situaci

Tok ochranných mechanismů

1. Okamžitá ochrana
2. Prediktivní regulace
3. Adaptivní parametry
4. Kritické situace

2. Konfigurační proměnné

Proměnná Typ Výchozí hodnota Popis
TestRezim_ExtremeProtectionEnabled bool true Globální zapnutí/vypnutí ochranného systému
TestRezim_ExtremeLoadThreshold int 50 Prahová hodnota pro detekci extrémního nárůstu odběru (% za sekundu)
TestRezim_PredictiveThreshold int 100 Prahová hodnota pro prediktivní regulaci (W/500ms)
TestRezim_CriticalGridThreshold int 120 Kritický práh pro odběr ze sítě (% limitu)
TestRezim_CriticalBatteryThreshold int 130 Kritický práh pro odběr z baterie (% limitu)
TestRezim_CriticalSOCThreshold int 15 Kritický práh pro stav baterie (% SOC)
TestRezim_AdaptiveParametersEnabled bool true Povolení adaptivních parametrů

3. Globální proměnné

Historie měření

TestRezim_GridLoadHistory[10]
Historie odběru ze sítě (posledních 10 měření)
TestRezim_GridLoadHistoryIndex
Index aktuálního měření v historii
TestRezim_LastGridLoadTime
Čas posledního měření odběru ze sítě

Stav ochrany

TestRezim_ExtremeProtectionActive
Stav aktivní okamžité ochrany
TestRezim_PredictiveProtectionActive
Stav aktivní prediktivní ochrany
TestRezim_CriticalProtectionActive
Stav aktivní kritické ochrany

Adaptivní parametry

TestRezim_OriginalCezWMax
Původní limit odběru ze sítě
TestRezim_OriginalBatteryMaxWatt
Původní limit odběru z baterie
TestRezim_AdaptiveCezWMax
Aktuální adaptivní limit sítě

4. Funkce a jejich návaznost na aplikaci

4.1 Okamžitá ochrana - TestRezim_ExtremeLoadProtection()

Parametr Popis
currentPwm Aktuální hodnota PWM z hlavní aplikace
Návratová hodnota Popis
float Upravená hodnota PWM pro bezpečný provoz
Funkčnost
Monitoruje odběr ze sítě každou sekundu
Detekuje náhlé nárůsty nad nastavený práh
Snižuje PWM na 30% při detekci problému
Loguje události do sériového portu
Nastavuje stav TestRezim_ExtremeProtectionActive
Návaznost na aplikaci: Tato funkce je volána z hlavní smyčky aplikace před každým nastavením PWM výstupu. Integruje se s globálními proměnnými cezW (aktuální odběr ze sítě) a WebSerialAno (nastavení logování).

4.2 Prediktivní regulace - TestRezim_PredictiveRegulation()

Parametr Popis
currentPwm Aktuální hodnota PWM z hlavní aplikace
Návratová hodnota Popis
float Upravená hodnota PWM s prediktivní ochranou
Funkčnost
Aktualizuje historii odběru každých 500ms
Vypočítává trend změn z posledních 10 měření
Předpovídá budoucí nárůst odběru
Snižuje PWM o 30% při detekci trendu
Nastavuje stav TestRezim_PredictiveProtectionActive
Návaznost na aplikaci: Tato funkce pracuje s historií měření TestRezim_GridLoadHistory a analyzuje trendy změn. Je volána po okamžité ochraně a před adaptivními parametry. Spolupracuje s globální proměnnou cezW pro získání aktuálních hodnot.

4.3 Adaptivní parametry - TestRezim_AdaptiveParameters()

Funkčnost
Kontroluje situaci každých 30 sekund
Snižuje limity při blížení se k maximům
Uchovává původní hodnoty pro obnovení
Automaticky upravuje cezWMax a batteryMaxWatt
Návaznost na aplikaci
Pracuje s globálními proměnnými cezWMax a batteryMaxWatt
Monitoruje cezW a batteryW pro detekci blížení se limitům
Ukládá původní hodnoty do TestRezim_Original* proměnných
Je volána z hlavní integrační funkce

4.4 Resetování parametrů - TestRezim_ResetAdaptiveParameters()

Funkčnost
Kontroluje stabilitu každou minutu
Po 5 minutách stability obnovuje parametry
Postupně zvyšuje limity o 10%
Vrací původní hodnoty při dlouhodobé stabilitě
Návaznost na aplikaci
Kontroluje stabilitu pomocí TestRezim_StablePeriodCounter
Obnovuje cezWMax a batteryMaxWatt na původní hodnoty
Pracuje s TestRezim_Adaptive* proměnnými
Je volána z hlavní integrační funkce

4.5 Kritické situace - TestRezim_CriticalSituationProtection()

Kritické situace Reakce
Extrémní odběr ze sítě PWM snížen na 20%
Extrémní odběr z baterie PWM snížen na 10%
Nízký stav baterie PWM snížen na 15%
Kombinace problémů Úplné vypnutí topení
Návaznost na aplikaci
Monitoruje cezW, batteryW a batterySOC
Používá cezWMax a batteryMaxWatt pro výpočty
Nastavuje TestRezim_CriticalProtectionActive
Je volána jako poslední v řetězci ochran

4.6 Hlavní integrační funkce - TestRezim_ApplyExtremeLoadProtection()

Pořadí aplikace
1. Okamžitá ochrana
2. Prediktivní regulace
3. Adaptivní parametry
4. Resetování parametrů
5. Kritické situace
Návaznost na aplikaci
Hlavní vstupní bod pro celý ochranný systém
Volána z hlavní smyčky aplikace
Obsahuje watchdog reset pro stabilitu
Vrací finální PWM hodnotu pro aplikaci

4.7 Monitoring a diagnostika

Funkce Účel
TestRezim_GetProtectionStatus() Vrátí stav všech ochranných mechanismů
TestRezim_ResetAllProtection() Resetuje všechny ochranné mechanismy
Návaznost na aplikaci
Používá se pro diagnostiku a ladění
Vrací informace o stavu všech ochran
Umožňuje manuální reset systému
Integruje se s WebSerialAno pro logování

5. Tok zpracování a návaznost na aplikaci

Detailní tok zpracování

1. Kontrola povolení
2. Okamžitá ochrana (1s interval)
3. Prediktivní regulace (500ms interval)
4. Adaptivní parametry (30s interval)
5. Reset parametrů (60s interval)
6. Kritické situace (kontinuálně)
7. Vrácení upraveného PWM

Návaznost na hlavní aplikaci

Komponenta aplikace Interakce
Hlavní smyčka (loop) Volá TestRezim_ApplyExtremeLoadProtection()
PWM řízení Přijímá upravenou PWM hodnotu
Měření odběru Poskytuje cezW, batteryW, batterySOC
Konfigurace limitů Používá cezWMax, batteryMaxWatt
Logování Používá WebSerialAno pro výstup
Watchdog Obsahuje esp_task_wdt_reset()

6. Použití a integrace do aplikace

6.1 Základní integrace

Krok Popis
1. Include #include "TestRezim_ExtremeLoadProtection.h"
2. Setup TestRezim_ExtremeProtectionEnabled = true;
3. Loop Volání TestRezim_ApplyExtremeLoadProtection()
4. PWM Použití upravené PWM hodnoty

6.2 Konfigurace parametrů

Parametr Doporučená hodnota
ExtremeLoadThreshold 30-80 (podle citlivosti)
PredictiveThreshold 60-150 (podle rychlosti reakce)
CriticalGridThreshold 100-140 (podle bezpečnosti)
AdaptiveParametersEnabled true (pro automatické přizpůsobení)

6.3 Monitoring stavu

Funkce Účel Návaznost
TestRezim_GetProtectionStatus() Získání stavu všech ochran Používá se pro diagnostiku
TestRezim_ExtremeProtectionActive Kontrola aktivní okamžité ochrany Monitorování v hlavní smyčce
TestRezim_CriticalProtectionActive Kontrola aktivní kritické ochrany Upozornění na kritické situace

7. Příklady použití pro různé typy systémů

7.1 Konzervativní nastavení

Parametr Hodnota
ExtremeLoadThreshold 30
PredictiveThreshold 60
CriticalGridThreshold 100
CriticalBatteryThreshold 110

Použití: Citlivé systémy, domácí aplikace

7.2 Agresivní nastavení

Parametr Hodnota
ExtremeLoadThreshold 80
PredictiveThreshold 150
CriticalGridThreshold 140
CriticalBatteryThreshold 150

Použití: Robustní systémy, průmyslové aplikace

7.3 Pevné limity

Parametr Hodnota
AdaptiveParametersEnabled false
ExtremeLoadThreshold 50
PredictiveThreshold 100
CriticalGridThreshold 120

Použití: Systémy s pevnými limity

8. Řešení problémů a ladění

8.1 Časté problémy

Problém Řešení
Systém příliš často snižuje PWM Zvýšit prahové hodnoty nebo vypnout prediktivní regulaci
Systém nereaguje na extrémní situace Zkontrolovat TestRezim_ExtremeProtectionEnabled = true
Parametry se neobnovují Zkontrolovat stabilitu a TestRezim_AdaptiveParametersEnabled
Watchdog reset Funkce obsahuje esp_task_wdt_reset() pro stabilitu

8.2 Ladění a diagnostika

Akce Účel
WebSerialAno = 14 Povolení detailního logování
TestRezim_ResetAllProtection() Reset všech ochranných mechanismů
TestRezim_GetProtectionStatus() Kontrola stavu systému
Monitorování TestRezim_*Active Sledování aktivních ochran

8.3 Doporučené hodnoty pro různé systémy

Typ systému ExtremeLoadThreshold PredictiveThreshold CriticalGridThreshold Návaznost na aplikaci
Malý domácí systém 30-40 50-80 100-110 Citlivé na změny, rychlá reakce
Střední komerční systém 50-60 80-120 110-120 Vyvažuje výkon a bezpečnost
Velký průmyslový systém 70-80 120-200 120-140 Maximální výkon, robustní ochrana

Dokumentace vytvořena pro TestRezim_ExtremeLoadProtection.h v1.0

Autor: Pavel Kunor | Datum: 2025

Tip: Pro optimální nastavení začněte s výchozími hodnotami a postupně je upravujte podle chování vašeho systému. Monitorujte logy pro lepší pochopení chování ochranných mechanismů.