ll controllo Proporzionale-Integrale-Derivativo, è un sistema in retroazione negativa ampiamente impiegato nei sistemi di controllo, questo FB acquisisce in ingresso un valore da un processo PValue, e lo confronta con un valore di riferimento SetPoint. La differenza, il cosiddetto segnale di errore, viene usata per determinare il valore della variabile di uscita Out, che è la variabile di gestione del processo. Il PID regola l’uscita in base a 3 azioni:

Azione proporzionale (P): Il valore del segnale di errore.
Azione integrale (I): I valori passati del segnale di errore.
Azione derivativa (D): Quanto velocemente il segnale di errore varia.

Il valore Out di uscita può variare nel range definito dai parametri OMin e OMax, il segno dell’uscita sarà positivo se SetPoint>PValue o negativo nel caso contrario. Tramite l’ingresso Reverse è possibile invertire la polarità.

Il valore di uscita andrà poi opportunamente scalato per la gestione del processo, può essere ad esempio utilizzato per gestire una modulazione PWM su di un riscaldatore e/o per gestire il riferimento di velocità di un motore.

Function block
CODESYS: Non disponibile
LogicLab: eLLabUtyLib

PIDEnable (BOOL) Abilitazione regolazione PID, attivando l'ingresso si abilita la regolazione. Disattivandolo si
azzera il valore in uscita Out.

IEnable (BOOL) Abilitazione regolazione integrativa, attivando l'ingresso si abilita la regolazione integrativa.

DEnable (BOOL) Abilitazione regolazione derivativa, attivando l'ingresso si abilita la regolazione derivativa.

Reverse (BOOL) Inversione segno su valore in uscita Out.

SetPoint (REAL) Set point, il valore è espresso nell'unità di misura del processo da controllare.

PValue (REAL) Valore acquisito dal processo, il valore è espresso nell'unità di misura del processo da controllare.

PBand (REAL) Banda proporzionale, questo valore definisce il valore di errore oltre al quale la regolazione viene
disabilitata forzando l'uscita Out al massimo ±100%. Il valore è espresso nell'unità di misura del processo da controllare.

ST (REAL) Tempo di scansione, occorre impostare il tempo in cui si desidera vengano eseguite le regolazioni integrativa e derivativa se abilitate, il valore è in mS.

Kp (REAL) Costante proporzionale, si ricorda che più è elevato il valore più è pronta è la regolazione con un conseguente aumento del valore di overshot. Il valore è un numero.

IT (REAL) Tempo integrativo, si ricorda che più è elevato il valore meno è veloce la regolazione integrativa a recuperare l'errore. Il valore è espresso in Sec.

DT (REAL) Tempo derivativo, si ricorda che più è elevato il valore più è veloce la regolazione derivativa a recuperare l'errore. Il valore è espresso in Sec.

OMin (REAL) Valore minimo dell'uscita PID Il valore è espresso in %.

OMax (REAL) Valore massimo dell'uscita PID Il valore è espresso in %.

Enabled (BOOL) Regolazione PID abilitata.

Error (BOOL) Errore nella esecuzione.

Out (REAL) Valore di correzione in uscita dalla regolazione PID. Questo valore deve essere utilizzato per il comando del processo. Il valore è espresso in %.

Errori

In caso di errore eseguendo immediatamente dopo la funzione SysGetLastError è possibile rilevare il codice di errore. Fare riferimento alla tabella seguente per la descrizione.

LogicLab (Ptp114)
PROGRAM FBD_PIDMng_v1
VAR
    IEnable : BOOL; (* I enable *)
    DEnable : BOOL; (* D enable *)
    SetPoint : REAL; (* PID Set point *)
    PValue : REAL; (* PID process value *)
    Proportional : REAL := 2; (* Proportional coefficent (Nr) *)
    Integrative : REAL := 0.0; (* Integrative time (Sec) *)
    Derivative : REAL := 0.0; (* Derivative time (Sec) *)
    PBand : REAL := 50.0; (* Proportional band (%) *)
    AIn : SysGetAnInp; (* Analog input acquisition *)
    PIDFb : PIDMng_v1; (* PID function block *)
    POut : PWMOut; (* PWM out command *)
END_VAR

LogicLab (Ptp114)

Ti è stato utile questo articolo ?

Ultimo aggiornamento: 16 Marzo 2020