Windup
Con il termine windup integrale si fa riferimento a un'anomala sovraelongazione non lineare che può presentarsi nei controllori con azione integrale (ad esempio PID).
L'insorgenza del windup può verificarsi quando il comando di attuazione raggiunge dei valori massimi e minimi (detti di saturazione).
La saturazione può avvenire, ad esempio, quando un controllore PID ha come ingresso un gradino. In tal caso l'azione derivativa farà innalzare bruscamente il valore dell'uscita, e l'integratore inizierà ad accrescere il suo valore in uscita per via dell'errore non nullo. Quando il valore in uscita al controllore è tale da saturare il comando di attuazione, anche se l'uscita dell'integratore continuerà a crescere fin quando l'errore non diventerà nullo, il comando di attuazione rimarrà costante.
Se il sistema è stabile, dopo un dato intervallo di tempo l'errore diventerà nullo e l'integratore inizierà a scaricarsi, e fino a quando il valore di uscita non sarà inferiore alla saturazione (relativa all'attuatore), il segnale di controllo rimarrà costante. Questo fenomeno fa sì che il sistema, dopo aver raggiunto la condizione di errore nullo, si allontani in direzione opposta, creando un effetto di sovraelongazione dalle caratteristiche non lineari e un maggiore tempo di assestamento.
In realtà bisognerebbe considerare che una implementazione reale dell'integratore preveda anche per esso delle soglie di saturazione, dunque è sufficiente correlare le soglie di saturazione dell'integratore e dell'attuatore.
Schema anti-windup
modificaUna soluzione pratica è scalare il segnale di controllo, garantendo che al valore massimo in uscita al controllore corrisponda il valore massimo di attuazione. In questo modo si elimina completamente l'effetto di windup.
L'operazione appena descritta nella pratica viene realizzata anche per sfruttare al massimo la risoluzione disponibile, per questo motivo alcuni considerano il windup un problema teorico. Tuttavia nelle simulazioni spesso l'azione integrale non contiene saturazioni (i cui valori dipendono dalla tecnologia con cui si implementa il controllore), e dunque può essere utile avere a disposizione una soluzione che non coinvolga elementi non lineari (quali le saturazioni).
Un altro accorgimento possibile è quello di retroazionare la componente derivativa facendo in modo che la sua uscita non passi per l'integratore. In caso di valori molto alti dell'uscita (di tipo impulsivo) l'impianto andrà comunque in saturazione, ma l'integratore non si caricherà, riducendo il fenomeno di windup.