| Autor: Pavel Kunor |
Verze: 1.0 |
Datum: 2025 |
Typ: ESP32 Arduino knihovna |
|
Obsah dokumentace
|
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ů.
|