Rozšířený PI regulátor

Lib.Mervis.v1_0.AdvancedPiController

  • Lib.Mervis

Pomocný blok sloužící pro realizaci PI regulátoru s možností sledování akční veličiny.

program test
    var
        pi: lib.mervis.v1_0.AdvancedPiController := (Xp := ..., Ti := ..., Min := ..., Max := ...);
    end_var

    pi(Input := ..., SetPoint := ..., Enable := ..., TrackingEnable := ..., TrackingValue := ..., Output => ...);
end_program
JménoDatový typPovolený rozsahRetainNutno 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
TrackingEnable bool   Ne Ne Povolení funkce sledování hodnoty TrackingValue
TrackingValue real   Ne Ne Sledovaná hodnota
Min real ⇐ 0 Ne Ne Omezení minimální hodnoty výstupu
Max real >= 0 Ne Ne Omezení maximální hodnoty výstupu
Xp real > 0 Ne Ne Šířka pásma
Ti real > 0 Ne Ne Integrační konstanta
TrackingDontIncludePPartbool   Ne Ne Určuje způsob výpočtu nového akčního zásahu v režimu sledování - popis viz níže
TrackingThreshold real   Ne Ne Hodnota pro přepočtení vstupní veličiny na velikost akčního zásahu (např. tedy kolik procent výstupu odpovídá jednomu stupni celsia)
JménoDatový typ Význam
Output real Výstup
TrackingCalculatedThresholdreal Hodnota pro přepočtení vstupní veličiny na velikost akčního zásahu (např. tedy kolik procent výstupu odpovídá jednomu stupni celsia)
InvalidParameters bool Indikace neplatného nastavení regulátoru (Xp, Ti, Min nebo Max mimo povolený rozsah)
Jméno Význam
Adjust Slouží pro úpravu integrační složky tak, aby byla na výstupu maximální hodnota
AdjustToValueSlouží pro úpravu integrační složky tak, aby byla na výstupu požadovaná hodnota
Restart Slouží pro vynulování interních hodnot a restartu výpočtu

Funkční blok realizuje PI regulátor s možností režimu sledování akční veličiny získané např. jiným regulátorem. Pro výpočet výstupu jsou použité následující vzorce:

  • Regulační odchylka

e = SetPoint - Input

  • Proporcionální složka

PPart = (Max - Min) / Xp * e

  • Integrační složka (každý scan cyklus)

IPart = IPart + (Max - Min) / (Xp * Ti) * e * ΔT

  • Výstup

Output = PPart + IPart

Regulátor obsahuje algoritmy pro omezení velikosti integrační složky v případě dosažení saturace - Anti-windup

Pokud je vstup TrackingEnable nastaven na hodnotu true, dochází ke změně chování regulátoru. V každém výpočetním cyklu se použije hodnota TrackingValue jako výchozí pro výpočet nového akčního zásahu. Způsob použití se liší podle nastavení parametru TrackingDontIncludePPart, pokud má hodnotu

  • true. Regulátor vypočte svoji I-složku tak, aby přesně odpovídala TrackingValue - tedy pro výpočet se uvažuje e = 0.
  • false. Regulátor vypočte svoji I-složku tak, aby výstup regulátoru přesně odpovídal TrackingValue - do výpočtu se zahrnou i aktuální hodnoty vstupů SetPoint a Input

Následně dojde k výpočtu nového akčního zásahu (tedy započtení aktuální P-složky), který se nastaví na výstup Output. Pro snažší použití s blokem TrackingPiSelector slouží vstup TrackingThreshold a výstup TrackingCalculatedThreshold, pomocí kterých se určují hystereze pro výběr regulátoru, jehož výstup se použije.

  • 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
  • © Energocentrum Plus, s.r.o. 2017 - 2024