====== Jednoduchý PI regulátor s Enable vstupem (v1.2) ====== {{:cs:mervis-ide:35-help:simplepicontrollerwithen.png}} ==== Celé jméno ==== Lib.Mervis.v1_2.SimplePiControllerWithEn ==== Potřebné reference projektu ==== * Lib.Mervis ===== Popis ===== Pomocný blok sloužící pro realizaci jednoduchého PI regulátoru doplněného o //Enable//. ===== Použití v ST ===== program test var pi: lib.mervis.v1_2.SimplePiControllerWithEn := (Xp := ..., Ti := ..., Min := ..., Max := ...); end_var pi(Input := ..., SetPoint := ..., Enable := ..., Output => ...); end_program ===== Vstupy ===== |Jméno|Datový typ|Povolený rozsah|Retain|Nutno připojit |Význam| |Input |real |  |Ne |Ano |Skutečná hodnota | | |SetPoint|real |  |Ne |Ano |Žádaná hodnota | | |Enable |bool |  |Ne |Ne |Povolení funkce, pokud je //false// je na výstupu hodnota 0| | |Min |real |<= 0 |Ne |Ne |Minimální hodnota výstupu | | |Max |real |>= 0 |Ne |Ne |Maximální hodnota výstupu | | |Xp |real |> 0 |Ne |Ne |Šířka pásma | | |Ti |real |> 0 |Ne |Ne |Integrační konstanta | | ===== Výstupy ===== |Jméno|Datový typ |Význam| |Output |real |Výstup | | |InvalidParameters|bool |Indikace neplatného nastavení regulátoru (//Xp, Ti, Min nebo Max// mimo povolený rozsah)| | ===== Metody bloku ===== |Jméno |Význam| |[[..:simplepicontrollerwithen_adjust.htm|Adjust]] |Slouží pro úpravu integrační složky tak, aby byla na výstupu maximální hodnota | | |[[..:simplepicontrollerwithen_adjusttovalue.htm|AdjustToValue]]|Slouží pro úpravu integrační složky tak, aby byla na výstupu požadovaná hodnota| | |[[..:simplepicontrollerwithen_restart.htm|Restart]] |Slouží pro vynulování interních hodnot a restartu výpočtu | | ===== Podrobný popis funkce ===== Funkční blok realizuje PI regulátor. Pro výpočet výstupu jsou použité následující vzorce: * Regulační odchylka\\ **e = SetPoint - Input** * Integrační složka (každý scan cyklus)\\ **IPart = IPart + (Max - Min) / (Xp * Ti) * e * ΔT** * Výstup\\ **Output = (Max - Min) / Xp * e + IPart** Regulátor obsahuje algoritmy pro omezení velikosti integrační složky v případě dosažení saturace - **Anti-windup** ==== Poznámky k použití ==== * Pro použití při řízení **ohřevu** se regulátor zapojuje následovně * SetPoint = Žádaná hodnota * Input = Měřená hodnota * Pro použití při řízení **chlazení** se regulátor zapojuje následovně * SetPoint = Měřená hodnota * Input = Žádaná hodnota * **!** Regulátor na základě své definice a implementaci anti-windup **neumožňuje pracovat v režimu "bez nuly"**, tzn. kdy v rozsahu //Min//..//Max// není obsažena nulová hodnota - toto je také indikováno pomocí výstupu //InvalidParameters// ===== Verze ===== {{indexmenu>.005-simplepicontrollerwithen#2}}