Arduino

Arduino

I controllori automatici - Parte 4

In questo progetto, che rappresenta la quarta e conclusiva parte dedicata ai controllori automatici, vi mostrerò l'azione regolatrice completa cioè quella di tipo proporzionale, integrativa e derivativa realizzando quindi un controllo P.I.D.
Prima di passare alla sperimentazione desidero esporvi alcune considerazioni che saranno verificate in seguito.
Un'azione proporzionale corregge il valore in uscita della grandezza controllata aggiungendo e sottraendo, ad ogni aggiornamento temporale, una quantità pari a Kp volte l'errore.
Se il regolatore è impostato in modo da avere una zona neutra cioè un intervallo di non intervento caratterizzato da due limiti, max e min, è chiaro che non ci sarà un ritorno al valore di setpoint perchè permane un errore tale da mantenere la grandezza controllata ad un valore di equilibrio diverso da quello di riferimento.
Il controllore entrerà in azione solo quando questi limiti saranno oltrepassati applicando una regolazione proporzionale all'errore, come ho detto prima.
Se si vuole ridurre questo errore nel più breve tempo possibile bisogna che il controllore associ all'azione precedente un'altra azione di tipo integrativa proporzionale alla somma degli errori che si hanno tra lo stato precedente ed il seguente durante il periodo temporale di osservazione.
In questo modo si riesce ad annullare l'errore a regime portando la grandezza controllata alla convergenza con il setpoint.
Questa operazione, a volte, richiede un certo tempo che può essere abbassato aumentando il coefficiente Ki. Si ricorda che valori troppo elevati possono portare allinstabilità del sistema con un aumento delle oscillazioni intorno al setpoint.
Infine, introducendo un'azione derivativa, si corregge il valore della grandezza controllata in uscita aggiungendo e sottraendo una quantità legata alla differenza degli errori valutati come in precedenza con l'accortezza di non eccedere con gli incrementi di Kd a scapito di una sempre in agguato instabilità del sistema.

In conclusione, un'azione proporzionale con Kp alto fornisce una pronta risposta con un errore, a regime, basso. Per eliminare questo errore si passa ad un'azione combinata P+I poichè la parte integrativa riduce l'errore. Se poi si vogliono ridurre i picchi, si può introdurre un'azione derivativa creando in questo modo un controllo della grandezza d'uscita di tipo P.I.D.
Adesso passiamo alla sperimentazione cioè andiamo a controllare l'altezza dell'acqua del serbatoio dopo che è stato introdotto un disturbo costante nel tempo.
Le prove che ho fatto si basano sulla regolazione del livello quando è stata aperta maggiormente la valvola di uscita dell'acqua posta alla base del serbatoio.
E' naturale che, mantenendo costante la portata di ingresso, l'altezza schende in maniera più o meno veloce per cui il controllore dovrà intervenire sulla valvola di ingresso per aumentare la portata e fare in modo che l'altezza si riposizioni dalle parti del setpoint.
Le prove sono state fatte adottando, all'inizio, un controllo proporzionale e poi in seguito controlli combinati di tipo P.I. e infine di tipo P.I.D. con diversi valori dei coefficienti Kp, Ki e Kd mantenendo inalterata la sezione di uscita.
Ho riportato alcuni grafici che, raggruppati a tre a tre, rappresentano i tre tipi di regolazione.










In questi grafici, ho tenuto i valori di Ki = Kd = 0 mentre ho fatto variare il Kp da 0.1, 1 e 2.
Si nota che, al crescere di Kp, la risposta del sistema è veloce ma ci sono tante oscillazioni, benchè smorzate, prima che ci si attesti in prossimità del setpoint.










Con la regolazione P.I., si nota una riduzione delle oscillazioni ma anche una veloce stabilizzazione ad un valore al di sotto del setpoint dovuto ad un alto Ki.
I valori assegnati in queste tre prove sono di Kp = 1, Kd = 0 e Ki variabile  0.1, 0.41 e 0.5.










Con l'intervento dell'azione derivativa, si nota che il sistema si stabilizza con pochissime oscillazioni di ampiezza non tanto superiore al setpoint tanto da diventare una sola nell'ultimo caso.
I valori adottati dei coefficienti sono: Kp = 1, Ki = 0.21 e Kd variabile da 0.5, 1.01 e 1.8.

Il codice relativo al progetto è disponibile al link: Serb_PID.





Nessun commento:

Posta un commento