Řízení výkonu NPA R04 – uživatelská příručka
Platí pro verzi NPA R04: 2.13.beta20 · Vytvořeno: 2026-06-17
Tento dokument vysvětluje, jak jednotka NPA R04 řídí činný výkon výrobny: jak se nastavují rozpadová místa, jak se zadávají povely a omezení a jak se ladí regulátory. Na konci jsou praktické příklady s grafy – včetně přesného doregulování na procenta, řízení měničů s velkým dopravním zpožděním a ukázky, kdy regulátor začne kmitat.
Tato příručka popisuje regulaci činného výkonu (modul
NRegulation2). Řízení BESS, cos φ a jalového výkonu sem nepatří – mají samostatné dokumenty (BESS vizbess.md, cos φ a jalový výkon samostatně).
Obsah
- Jak řízení funguje (přehled)
- Nastavení rozpadového místa
- Povely a omezení
- Nastavení regulátorů
- Příklady s grafy
- Postup ladění (cookbook)
1. Jak řízení funguje (přehled)
Regulační smyčka běží každých 500 ms
(NRegulation2::Loop). V každém kroku:
POVELY / OMEZENÍ ZPĚTNÁ VAZBA
- povel P0..P4 (DŘ) -> pomalá měření výkonu
- přetoky do DS -> rychlá výrobny
- spotové ceny, SoP |
| |
v |
[ Suma požadovaný výkon ] <-----------+
vyber přísnější (rychlá / pomalá)
|
v
[ PI regulátor reg1 / reg2 ]
|
v
[ rozpad do míst podle priority ]
Spojitá: pošle přesné %
Px: vybere nejvyšší stupeň P0..P4
|
v
[ zařízení / měniče ]
- Požadovaný výkon se počítá ze dvou větví:
- pomalý – z povelu distribuce
P0..P4(=PowerLimitv %), - rychlý – z omezení přetoku do sítě (povolený přetok, SoP rezervovaný výkon, spotové ceny).
- pomalý – z povelu distribuce
- Regulátor použije tu přísnější větev: je-li rychlý požadavek ≤ pomalý, řídí rychlý regulátor přetoků (reg2), jinak pomalý regulátor povelů (reg1).
- Výsledné procento se rozdělí do rozpadových míst podle priority a podle toho, zda místo umí spojité řízení nebo jen stupňové povely Px.
Rychlá orientace v menu
Veškeré nastavení se dělá ve webovém rozhraní jednotky (horní menu). Kde co najdete:
| Co nastavujete | Cesta v menu |
|---|---|
Vlastnosti místa, způsob řízení, povely Px (lo_*) |
Rozpadová místa → klik na místo → editace |
SoP rezervovaný výkon/příkon, úrovně P0–P4
(fs_sopRsrvPwr, fs_rgP0…4) |
Nastavení výrobny |
Omezení přetoku do sítě (fs_flwRest…) |
Nastavení výrobny |
Konstanty regulátorů činného výkonu
(fs_reg1/2_k/i+/i-), spotové ceny
(fs_TarifPacLimit…) |
Nastavení výrobny → dole Nastavení placených funkcí |
Editovat hodnoty placených funkcí (včetně konstant regulátorů) může jen účet s vyšším oprávněním; běžný uživatel je vidí jen ke čtení.
2. Nastavení rozpadového místa
Menu: Rozpadová místa → klikněte na konkrétní místo → tlačítko editace.
2.1 Základní údaje
| Pole | Klíč | Význam |
|---|---|---|
| Typ | lo_typeDs |
regulaci činného výkonu řeší typy FVE, MVE, KGJ, BPS, VTE, DA, HE (BESS, TUV, AKU, Wallbox mají vlastní řízení) |
| Instalovaný výkon | lo_insPower |
špičkový instalovaný výkon [Wp] |
| Skutečný činný výkon | lo_Power |
jmenovitý činný výkon měničů [W] |
Maximální výkon místa pro regulaci =
min(lo_Power, lo_insPower) (když je
lo_insPower zadán), jinak lo_Power. Procenta
se vždy počítají z tohoto maxima.
2.2 Způsob regulace
zařízení (lo_regDev)
Toto je klíčové rozhodnutí podle toho, co zařízení v daném místě umí:
| Volba | Klíč | Kdy použít |
|---|---|---|
| Spojitá regulace | Spojita |
Zařízení umí přijmout libovolné % (měniče FVE, KGJ s plynulým řízením…). Regulátor pošle přesné procento. |
| Regulace povely Px | Px |
Zařízení neumí plynulé řízení – jen pevné stupně (relé, přepínání odboček, starší měniče reagující jen na povelové úrovně). Regulátor vybere nejvyšší stupeň, jehož výkon nepřekročí požadované %. |
| Bez regulace | none |
Místo se nereguluje. Vypne se (0 %) jen pokud je požadováno < 100 %. |
Px = „jen pro zařízení, která neumožňují plynulé řízení". Místo plynulého procenta se používá 5 pevných stupňů
P0…P4(viz dále). Regulátor nikdy nenastaví procento „mezi" stupni – sníží se na nejbližší nižší nebo rovný stupeň, aby nedošlo k překročení limitu.
2.3 Mapování
povelů Px na procenta (lo_rgP0…lo_rgP4)
Distribuce posílá povelové úrovně P0…P4. Pro každou
úroveň se v místě nastaví, na kolik procent výkonu se
má místo omezit:
| Úroveň | Klíč | Typický význam |
|---|---|---|
| P0 | lo_rgP0 |
např. 100 % (plný výkon) |
| P1 | lo_rgP1 |
např. 60 % |
| P2 | lo_rgP2 |
např. 30 % |
| P3 | lo_rgP3 |
např. 10 % |
| P4 | lo_rgP4 |
např. 0 % (stop) |
Globální výchozí hodnoty z továrního nastavení se zobrazují vedle
(fs_rgP0…fs_rgP4). Tlačítkem Nastavit u
každého stupně lze povel ručně otestovat
(setlocationlevelp). Pole Manuální nastavení
výkonu (lo_rgGlobal, povel „Px") nastaví místo
ručně na zadané % (setlocationpower).
2.4 Priorita vypínání
(lo_regPwrPriority)
Když je nutné omezit výkon, místa se obsluhují podle priority (0 = nejvyšší přednost zůstat v provozu):
- Zapíná se od nejnižšího čísla, vypíná se od nejvyššího.
- Místo s nižším číslem priority dostane výkon dřív a vypíná se jako poslední.
- Místo s vyšším číslem se omezuje/vypíná jako první.
- Místa se stejnou prioritou a stejným
lo_regDevtvoří skupinu regulovanou společně; spojitá místa se v rámci stejné priority řadí za stupňová (Px).
2.5 Řízení
externím PLC přes Modbus (lo_regExtPLC)
| Volba | Klíč | Význam |
|---|---|---|
| Neaktivní | none |
bez vlivu |
| Řízení výkonu v % | regP_prc |
nadřazené PLC zapisuje DS_power_value [%] |
| Řízení výkonu v kW | regP_kw |
nadřazené PLC zapisuje Power_export_limit |
Z lokálního požadavku a hodnoty od PLC se vždy bere přísnější (nižší) hodnota.
3. Povely a omezení
Menu: Nastavení výrobny (spotové ceny jsou dole v Nastavení placených funkcí).
Zdroje požadovaného výkonu:
3.0 SoP – Celkový instalovaný výkon
| Pole | Klíč | Význam |
|---|---|---|
| SoP – Celkový instalovaný výkon | fs_sopTotalPwr |
celkový instalovaný výkon výrobny dle Smlouvy o připojení [W] – jen ke čtení, dopočítává se automaticky |
Jak se hodnota počítá nyní: pole je v menu
zablokované (disabled) a nezadává se ručně. Hodnota se
dopočítává v C++ a neukládá jako součet „Instalovaný výkon"
(lo_insPower) všech rozpadových míst (s fallbackem
na lo_Power, pokud je lo_insPower = 0).
Změna od verze 2.13.beta18 (2026-06-11). Dříve šlo o ručně editovatelnou položku: uživatel zadával celkový instalovaný výkon do pole a hodnota se ukládala do configu pod klíčem
fs_sopTotalPwr. Regulace ji ale nikdy nečetla – pro výpočty vždy používalaGetInstalovanyVykon()(součetlo_insPower), takže ručně zadaná hodnota mohla být s realitou nekonzistentní. Od beta18 je pole jen ke čtení a ukládaný klíčfs_sopTotalPwrse navíc při načtení configu z configu maže (hodnota se vždy dopočítá), aby v něm nezůstávala zastaralá ručně zadaná data.
3.1 Povely distribučního dispečinku (DŘ)
Povel chodí z dispečinku po sběrnici/Modbusu, v menu se nezadává. Mapování úrovní na % se nastavuje u jednotlivých míst (viz 2.3).
- Povel
P0…P4→PowerLimitv % → pomalý požadovaný výkon =PowerLimit% × instalovaný výkon. - Mapování úrovně na % řeší každé místo přes
lo_rgP0…4(viz 2.3).
3.2 Omezení přetoku do sítě
Menu: Nastavení výrobny → Nastavení hodnot omezení činného výkonu výrobny a SoP.
| Pole | Klíč | Význam |
|---|---|---|
| Systémové řízení přetoků | fs_flwRestsw |
zapnutí regulace přetoku (true/false) |
| Povolený přetok | fs_flwRest |
maximální dovolený přetok do DS [W] |
| Celkový rezervovaný výkon (SoP) | fs_sopRsrvPwr |
smluvní maximum přetoku – nejvyšší priorita,
aplikuje se vždy (i při vypnutém
fs_flwRestsw) |
| Měření | fs_mRs |
fs_measPhase = regulace po fázích (najde fázi s
největším přetokem), jinak podle sumy P |
Přetok = záporná spotřeba na hlavním elektroměru (TML). Regulátor drží přetok na/pod povolenou hodnotou → rychlá větev.
3.3 Spotové ceny
Menu: Nastavení výrobny → Nastavení placených funkcí (SPOT ceny).
| Pole | Klíč | Význam |
|---|---|---|
| Tarifní limit | fs_TarifPacLimit |
zapnutí řízení podle spotových cen |
| Cena nákupu (distribuce) | fs_TarifPacLimitRate |
[Kč/MWh] |
| Cena prodeje (obchodník) | fs_TarifRedemptionPacLimitRate |
[Kč/MWh] |
| Regulovat na | fs_TarifPacLimitValue |
cílový přetok při nevýhodné ceně |
Při nevýhodné výkupní ceně se přetok omezí (nebo se při záporných cenách výkon stáhne na 0 – „vyplatí se i mařit"). Bere se vždy přísnější z nastaveného přetoku a přetoku podle cen.
Jalový výkon / cos φ a BESS mají vlastní regulátory (reg3, reg4) a jsou popsány v samostatných dokumentech (BESS viz
bess.md). V této příručce je neřešíme.
4. Nastavení regulátorů
Menu: Nastavení výrobny → dole Nastavení placených funkcí → tabulka Nastavení regulátoru. Konstanty mají u sebe nápovědu (najetím myší na pole). Editace jen pro účet s vyšším oprávněním.
Činný výkon řídí dva PI regulátory (další dva – reg3 pro cos φ a reg4 pro BESS – mají samostatné dokumenty):
| # | Název v UI | Klíče | Co reguluje |
|---|---|---|---|
| 1 | Regulátor pro povely Px z DŘ | fs_reg1_k, fs_reg1_i+,
fs_reg1_i- |
pomalá regulace podle povelů distribuce |
| 2 | Regulátor pro přetoky do DS | fs_reg2_k, fs_reg2_i+,
fs_reg2_i- |
rychlá regulace přetoku |
4.1 Význam konstant
Každý regulátor má tři konstanty:
k– proporcionální konstanta (P). Působí okamžitě úměrně regulační odchylce.k = 0→ P složka vyřazena; odchylku koriguje jen integrační složka (nad rámec stále přítomné dopředné vazby na žádanou hodnotu, viz 4.2). Výchozí stav.- Malé
k(řádově 0,001–0,01) už má silný vliv (odchylka je ve wattech, tj. velká čísla). - Příliš velké
k→ překmity až nestabilita.
i+– integrační konstanta pro stoupání (odchylka > 0, tj. měření je pod žádanou hodnotou → výkon roste).i-– integrační konstanta pro klesání (odchylka < 0, tj. měření je nad žádanou hodnotou → výkon klesá).- Integrační konstanta je časová konstanta: čím menší číslo, tím rychlejší přibližování (jednotky = velmi rychlé, ale hrozí překmit; desítky = pomalé a stabilní).
i = 0→ integrační složka vyřazena a integrátor vynulován.
Asymetrie
i+≠i-umožňuje např. rychle stáhnout přetok a pomalu najíždět zpět. Výchozí regulátor přetoků mái-= 5 (rychlý pokles) ai+= 20 (pomalý nárůst).
4.2 Vzorec regulátoru
Regulátory běží v každém kroku (0,5 s). Regulace činného výkonu (reg1, reg2) má tvar s dopřednou vazbou (výstup startuje na žádané hodnotě a PI ji jen koriguje):
odchylka = žádaná - měřená
integrátor += odchylka / i+ (když odchylka > 0)
integrátor += odchylka / i- (když odchylka < 0)
výstup = žádaná + (žádaná / y_max) * ( k * odchylka + integrátor )
y_max = maximální výkon na fázi (instalovaný výkon /
3).
Důležité vlastnosti:
- Integrátor odstraní trvalou odchylku – akumuluje
se, dokud měření ≠ žádaná hodnota. Proto i při
k = 0regulátor dojede přesně na cílovou hodnotu (přesné doregulování). - Při
i+=i-= 0 je integrace vyřazena, takževýstup = žádaná– na výstup jde přímo procento z povelu a odchylka se vůbec nedoreguluje (okamžitý povel, viz 5.1 B). - Při
žádaná = 0(vypnutá regulace) a při nulovém měření se integrátor resetuje (jinak by „nafoukl" a po zapnutí způsobil překmit). - Anti-windup: při saturaci výstupu (na
y_min/y_max) se integrátor po fázích zmrazí.
5. Příklady s grafy
Grafy jsou ilustrační (perioda kroku 0,5 s). Žádaná hodnota = 60 %, místo se rozbíhá z 0.
5.1 Přesné doregulování vs. okamžitý povel
Podle nastavení integračních konstant se regulátor chová dvěma zcela odlišnými způsoby. Rozdíl je v tom, zda se vůbec řeší odchylka mezi žádanou a skutečně naměřenou hodnotou.
A) Přesné doregulování (zpětnovazební)
Regulátor sleduje odchylku a integrační složkou ji postupně vynuluje – skutečně naměřený výkon přesně dojede na žádané procento (dorovná i ztráty, derating, nepřesnost měničů). Je o něco pomalejší, protože musí doregulovat.
fs_reg1_k = 0 (P vyřazeno)
fs_reg1_i+ = 20 (doregulování nahoru)
fs_reg1_i- = 20 (doregulování dolů)
výkon [%]
100|
80|
60|..............____________________ <- žádaná 60 % (měřená DOJEDE přesně)
40| _.-'
20| _.-'
0|__.-'_____________________________ čas ->
0 2 4 6 8 10 12 14 16 [s]
integrátor dorovná odchylku, měřená se ustálí PŘESNĚ na 60 %
B) Okamžitý povel (rychlý, bez doregulování odchylky)
Vyřaď i integrační složku (vše na 0). Pak
k·odchylka + integrátor = 0 a podle vzorce platí
výstup = žádaná. Na výstup se v prvním kroku
ihned přepíše procento z povelu a drží – odchylka se
vůbec neřeší (žádná zpětná vazba). Nejrychlejší možná reakce,
ale skutečně naměřená hodnota se nedoreguluje (zůstane,
jaká vyjde).
fs_reg1_k = 0 (P vyřazeno)
fs_reg1_i+ = 0 (integrace vyřazena)
fs_reg1_i- = 0 (integrace vyřazena)
výkon [%]
60|__________________________________ <- výstup = povel 60 % (ihned, drží)
55| ........________________________ <- skutečná ~55 %, NEdoreguluje se
30| .
0|_.________________________________ čas ->
0 0,5 2 4 6 8 10 12 [s]
v 1. kroku (0,5 s) se na výstup zapíše 60 % z povelu a drží;
případná odchylka (zde 5 %) se nekoriguje
Shrnutí:
i+/i-> 0 → přesné doregulování (měřená dojede na cíl, pomalejší);i+=i-= 0 → okamžitý povel (na výstup se ihned zapíše % z povelu, odchylka se neřeší). Proporcionálníknech v obou případech na 0.
5.2 Měniče s velkým dopravním zpožděním
Problém: měnič na změnu žádané hodnoty zareaguje až za několik sekund (dopravní zpoždění / mrtvá doba). Agresivní regulátor „nevidí" efekt svého zásahu, přidá ještě víc – a přestřelí.
Řešení: regulátor zpomalit – integrační konstanta musí být výrazně větší než dopravní zpoždění. P složku držet na nule:
fs_reg2_k = 0 (žádné okamžité skoky)
fs_reg2_i+ = 40 (pomalé, opatrné najíždění)
fs_reg2_i- = 30
ŠPATNĚ - rychlý regulátor (i+ = 3) na měniči se zpožděním 3 s:
výkon [%]
90| /\ /\
75| / \ / \ /\
60|..../....\..../....\..../..\..... <- žádaná 60 % (překmity)
45| / \ / \ / \
30| / \/ \/ \
0|_/_______________________________ čas ->
SPRÁVNĚ - pomalý regulátor (i+ = 40) na stejném měniči:
výkon [%]
60|............____________________ <- žádaná 60 % (hladké)
45| _.-'
30| _.-'
15| _.'
0|_.'____________________________ čas ->
0 2 4 6 8 10 12 14 [s]
Pravidlo: čím větší dopravní zpoždění měniče, tím větší
i+/i-(pomalejší regulátor). Orientačně volte integrační konstantu několikanásobek mrtvé doby.
5.3 Co se stane při kmitání (špatné parametry)
Když je k příliš velké nebo i příliš malé
vzhledem k dynamice soustavy (a zpoždění), regulátor se dostane do
trvalého kmitání až nestability:
fs_reg2_k = 0,05 <- příliš velké
fs_reg2_i+ = 2 <- příliš rychlé
výkon [%]
100| /\ /\ /\ /\
80| / \ / \ / \ / \
60|../....\..../....\..../....\..../....\. <- žádaná 60 %
40| / \ / \ / \ / \
20|/ \/ \/ \/ \
0|_______________________________________ čas ->
0 2 4 6 8 10 12 14 16 [s]
amplituda neklesá -> systém NEDOJEDE, kmitá kolem žádané
Projevy kmitání: výkon i přetok „pendlují", měniče přepínají nahoru/dolů, na elektroměru oscilace. Náprava:
- Sniž
k(ideálně na0). - Zvětši
i+/i-(zpomalení integrace). - Pokud kmitání přetrvává, zkontroluj dopravní zpoždění měničů (viz 5.2).
Postupné tlumení po opravě (k=0, i+ zvětšeno z 2 na 25):
výkon [%]
75| /\
60|../..\._.....____________________ <- žádaná 60 % (kmit se utlumí)
45| / V
30|/
0|_________________________________ čas ->
5.4 Asymetrie i+ / i- – rychlé stažení přetoku, pomalý náběh
Pro regulaci přetoku se hodí rychle stáhnout výkon (bezpečnost – nepřekročit limit) a pomalu najíždět zpět (klid sítě):
fs_reg2_k = 0
fs_reg2_i+ = 20 (pomalý nárůst)
fs_reg2_i- = 5 (rychlý pokles)
výkon [%]
80|_____ <- výroba běží
60| \ <- PŘETOK! rychlé stažení (i- = 5)
40| \___
20| '------____ <- pomalé najíždění (i+ = 20)
0| '-------____ čas ->
0 2 4 6 8 10 12 [s]
6. Postup ladění (cookbook)
- Začni od továrního nastavení –
k = 0, integrace v desítkách (reg1i± = 20, reg2i+ = 20,i- = 5). Tento stav je stabilní a dojede přesně. - Příliš pomalá reakce? Postupně
zmenšuj
i+/i-(např. 20 → 10). Po každé změně sleduj překmit. - Objeví se překmit/kmitání? Vrať
izpět na vyšší hodnotu a/nebo nechk = 0.kzvyšuj jen výjimečně a po malých krocích (0,001 → 0,005 → 0,01). - Měniče reagují se zpožděním? Drž
k = 0ainastav na několikanásobek mrtvé doby (viz 5.2). - Přetoky musí být přísné? Nastav
i-(pokles) výrazně menší neži+(nárůst) – viz 5.4. - Zařízení neumí plynulé řízení? Přepni místo na
lo_regDev = Pxa vyplňlo_rgP0…4.
| Situace | k |
i+ |
i- |
|---|---|---|---|
| Přesné doregulování (měřená dojede na cíl) | 0 | 20 | 20 |
| Okamžitý povel (ihned zapíše %, neřeší odchylku) | 0 | 0 | 0 |
| Rychlejší doregulování (svižné měniče) | 0 | 8–12 | 8–12 |
| Velké dopravní zpoždění měničů | 0 | 30–60 | 30–60 |
| Přísné přetoky (rychle dolů, pomalu nahoru) | 0 | 20 | 5 |
| ⚠️ Nestabilní (NEPOUŽÍVAT) | ≥ 0,05 | ≤ 2 | ≤ 2 |
Zlaté pravidlo: pro přesnost a stabilitu nech
k = 0a laď jen integračními konstantamii+/i-. Proporcionální složku přidávej jen, když potřebuješ rychlejší okamžitou reakci a víš, že soustava nemá velké zpoždění.
Zdrojové soubory
| Část | Soubor / symbol |
|---|---|
| Hlavní smyčka regulace | nregulation2.cpp →
NRegulation2::Loop() |
| PI regulátor (činný výkon) | npicontroller.cpp → updateParam() |
| Rozpad do míst, priorita, Px | nregulation2.cpp →
GetLocationPrioritySort(),
GroupSetPower() |
| Povely distribuce / přetoky / SoP / spotové ceny | nregulation2.cpp →
RegulacePodleDistribuce(),
RegulacePodlePretoku(),
RegulacePodleSpotCen() |
| Výchozí konstanty regulátorů | nregulation2.h → NR_CONST[] |
| UI – nastavení místa | html/v2/location_edit.html |
| UI – nastavení regulátorů | html/v2/factory_settings_edit_paid_features.html |