1
Introduzione
Fin dall’inizio della loro apparizione i controllori di tipo PID hanno ricoperto un
ruolo chiave nel mondo dell’automazione, grazie alla loro versatilità e alla loro struttura
semplice. Essi utilizzano in modo combinato tre leggi di controllo: azione
proporzionale, azione integrale e azione derivativa . Da qui l’acronimo PID, che
identifica questi particolari controllori. Benché utilizzino una tecnologia realizzativa
antiquata per gli standard tecnologici attuali (possono infatti essere di tipo meccanico,
idraulico o anche elettronico e digitale), questi controllori vengono ancora diffusamente
utilizzati soprattutto per la relativa semplicità di taratura dei loro parametri di lavoro. E’
infatti ragionevole ritenere che il controllore PID, nelle sue innumerevoli varianti,
gestisca attualmente circa il 95% degli anelli di regolazione presenti negli impianti.
Il presente lavoro di tesina affronta il problema della progettazione di alcuni
algoritmi di autotuning realizzati interamente in linguaggio di programmazione C, in
grado di sintetizzare un controllore PID per processi solitamente equiparabili a sistemi
del primo o secondo ordine con ritardo. Successivamente si è passati alla realizzazione
delle corrispondenti librerie statiche e dinamiche, per utilizzo stand-alone in due diversi
ambienti di sviluppo come LabVIEW e Modelica.
La sintesi dei controllori PID consiste nella scelta della configurazione più adatta
all'applicazione dei parametri :
p
K (costante di proporzionalità) ;
i
T (tempo di
integrazione) ;
d
T (tempo derivativo ) e
s
T (periodo di campionamento per gli algoritmi
digitali).
I regolatori PID commercialmente disponibili sono previsti per il controllo di
variabili di processo relativamente lente, mentre per le variabili veloci si ricorre a
routine di controllo ad hoc.
La procedura di tuning, solitamente fatta manualmente, non è banale e può
richiedere molti tentativi che devono essere poi verificati, comportando un notevole
dispendio di tempo. Le prestazioni del sistema dipenderanno, inoltre, dall’esperienza
INTRODUZIONE
2
dell’utente, che si occupa della sintonizzazione e dalla conoscenza che si ha del
processo.
Normalmente, la procedura da effettuare è la seguente:
l’operatore osserva il comportamento del sistema da controllare, anche
stimolandolo con segnali noti, in modo da dedurre le informazioni
necessarie;
fissa il comportamento che ritiene di poter ottenere con il controllo a
controreazione;
calcola su base euristica il valore dei parametri che il regolatore deve avere
per ottenere tale comportamento.
Va evidenziato il fatto che la procedura di tuning non va effettuata solo al momento
della sua installazione, ma deve essere ripetuta tutte le volte che è necessario. In alcuni
casi, infatti, sarà opportuno effettuarla nuovamente. Come, ad esempio, nei seguenti
casi:
quando viene modificato il punto di lavoro con conseguente variazione del
guadagno e/o della dinamica dell’attuatore o del sistema da controllare;
quando si verificano variazioni delle modalità operative in grado di alterarne
il comportamento statico e/o dinamico;
quando agiscono disturbi esterni in grado di alterare le caratteristiche del
sistema da controllare;
quando si riscontrano cambiamenti del comportamento del sistema dovuti,
per esempio, ad invecchiamento.
INTRODUZIONE
3
Nasce, quindi, l’esigenza di realizzare un metodo il cui scopo è ottenere la
regolazione automatica del controllore. Dalla formalizzazione di tali passi viene
progettato il sistema di autotuning.
Demandare il calcolo dei parametri allo stesso sistema di gestione del controllo PID
permette di scavalcare completamente tutte queste difficoltà e di poter ricalcolare
automaticamente, in campo, i loro valori, ogni qualvolta lo si ritiene necessario.
Alcune indicazioni operative, che caratterizzano un buon metodo di autotuning,
sono:
il regolatore deve essere facile da sintonizzare;
la procedura di auto-tuning non deve essere dispendiosa in termini di tempo
e non deve disturbare significativamente il sistema;
il controllo deve essere stabile, flessibile, robusto e adattarsi a diverse
dinamiche (ritardi più o meno marcati, presenza di disturbi esterni, etc.);
deve essere possibile velocizzare o rallentare la prontezza del sistema in
modo semplice;
le informazioni necessarie per il tuning devono essere direttamente
disponibili;
le perfomances del sistema devono migliorare.
Per realizzare lo scopo si può ricorrere a tecniche adattative di self-tuning, oppure di
auto-tuning. Le prime prevedono la sintonizzazione del regolatore on-line ogni volta
che le specifiche date non sono più soddisfatte; le seconde, sviluppate in questo lavoro,
eseguono la taratura non di continuo, ma su richiesta di un operatore o di un segnale
esterno. Si tratta, quindi, di tuning on-demand.
La letteratura è ricca di tecniche di autotuning, molte di esse come le “model based
approaches”, che permettono di ottenere in modo esplicito il modello del processo e,
INTRODUZIONE
4
di conseguenza, il tuning del regolatore è basato su tale modello; in altre, chiamate
“characteristics based approaches”, non vi è alcuna stima del sistema.
In questo lavoro si è focalizzata l’attenzione su 3 differenti approcci :
1. Characteristics based autotuner nel dominio della frequenza
(Metodo Relay based);
2. Model based autotuner con contextual model parametrisation
(Metodo IMC-λ);
3. Model based autotuner nel dominio del tempo
(Metodo delle aree con sintesi IMC ).
La scelta della realizzazione in C non è casuale. Oltre ai noti vantaggi che un
linguaggio di programmazione come esso offre, tra cui efficienza, sinteticità e
portabilità, l’obiettivo era rivolto alla realizzazione di appropriate librerie statiche e
dinamiche per uso stand-alone in Modelica e LabVIEW. Infatti , è noto che la
separazione del codice in librerie a collegamento dinamico e statico permette di
suddividere il codice eseguibile in parti concettualmente separate, che verranno caricate
solo se effettivamente necessarie. Inoltre, una singola libreria, caricata in memoria, può
essere utilizzata da più programmi, senza la necessità di essere nuovamente caricata, il
che permette di risparmiare le risorse del sistema.
Partendo dal codice C sviluppato, sono state realizzate delle simulazioni sia nello
stesso ambiente, graficandone il risultato con l’ausilio del programma SciLab (noto
pacchetto di programmi gratuiti per la computazione numerica sviluppati dallo INRIA e
dallo ENPC in Francia), sia in ambiente LabVIEW e Modelica.
La caratteristica fondamentale di LabVIEW rispetto agli altri ambienti di sviluppo è
l'uso di un linguaggio di programmazione grafico, detto linguaggio G, che permette di
utilizzare schemi a blocchi invece che linee di codice. Inoltre, risulta adatto per
implementazione su impianto; quindi, la libreria sviluppata consente di provare in
simulazione esattamente il codice che verrà utilizzato per i calcoli.
INTRODUZIONE
5
D’altro canto Modelica, un linguaggio di modellazione a oggetti definito
formalmente e sviluppato dalla Modelica Association, grazie alle vaste librerie di
modelli, consente una modellazione fedele di sistemi integrati anche molto complessi.
In entrambi, mediante l’editor grafico e alcune librerie multi-engineering, si semplifica
la modellazione: le librerie contengono elementi corrispondenti a dispositivi fisici che
devono essere semplicemente trascinati sul foglio di lavoro per costruire il modello,
mentre le interazioni fra i componenti sono riprodotte e descritte dalle connessioni
grafiche. Questo significa che i modelli possono essere organizzati in maniera intuitiva
con le stesse modalità con cui si compone il sistema fisico reale.
La stesura del codice, le simulazioni e la creazione di librerie è stata realizzata e
testata intermente in ambiente Windows. Con opportune modifiche sarà possibile,
quindi, esportare il tutto in ambiente Linux. Inoltre, il codice realizzato sarà rilasciato
sotto GNU GPL. Come ogni licenza di software libero, essa concede ai licenziatari il
permesso di modificare il programma, di copiarlo e di ridistribuirlo con o senza
modifiche, gratuitamente o a pagamento, secondo i termini della GPL stessa.
6
Capitolo 1
Metodi di Autotuning PID
Questo capitolo contiene nella prima parte delle nozioni generali sui regolatori PID,
evidenziandone struttura, vantaggi e svantaggi. In particolare, ne verrà considerata una
particolare forma chiamata ISA-PID utilizzata in questa tesina negli algoritmi di
controllo degli autotuner. Saranno anche descritte le modalità di implementazione
possibili per il calcolo del controllo a tempo discreto ed una particolare modalità di
controllo chiamata con l’acronimo IMC utilizzata per uno dei metodi di autotuning
realizzato. Successivamente, è presentata una panoramica sulle possibili politiche
adottabili per realizzare un autotuning PID ed alcune delle diverse varianti che sono
proposte in letteratura. Si potrà notare che l’argomento è molto vasto ed oggetto di
continuo studio per ottenere risultati sempre migliori.
1.1 Introduzione ai controllori PID
Il successo dei regolatori PID è legato a diversi fattori:
notevole efficacia nella regolazione di un’ampia gamma di processi
industriali, anche in relazione alle specifiche di prestazione non sempre
stringenti;
relativa semplicità di taratura;
importanza e convenienza economica della standardizzazione.
CAPITOLO 1 METODI DI AUTOTUNING PID
7
In molti sistemi di controllo non è difficile notare prestazioni scadenti che sono
dovute a svariati motivi. I principali, sono dovuti a problemi nei sensori negli attuatori ,
rumore, filtri anti-aliasing inadeguati, errori di calibrazione dei sensori, eccessivo
filtraggio nei sensori “smart”, cattivo dimensionamento, isteresi o attriti statici nelle
valvole di regolazione . In presenza di problemi di tale natura, il ruolo della legge di
controllo può diventare modesto, per cui viene meno la motivazione di cercare leggi di
controllo più sofisticate di quelle PID. Spesso, infatti, sono anche frequentemente usati
come elementi di schemi di controllo più complessi e articolati, come il controllo in
cascata che, sfruttando la conoscenza di specifiche proprietà dinamiche del processo,
possono portare notevolissimi miglioramenti delle prestazioni a fronte di costi e sforzi
realizzativi relativamente modesti.
Inoltre, per sfruttare pienamente algoritmi di controllo più complessi, è necessaria
anche una conoscenza approfondita del processo da controllare e ciò richiede
investimenti non trascurabili e con ritorni non quantificabili a priori per lo sviluppo, la
messa a punto e la validazione di modelli matematici accurati.
In sintesi, si può forse affermare che i PID hanno successo perché rappresentano
una soluzione non facilmente superabile, in generale, nel rapporto efficacia/costo
(globale), almeno nella maggior parte dei casi dove le specifiche non siano
estremamente stringenti.
Il termine controllo definisce l’azione svolta per portare e mantenere ad un valore
prefissato un parametro fisico di un impianto o di un processo (ad esempio: la
temperatura di un forno, il livello di un fluido in un serbatoio, la posizione del braccio
di un robot, la velocità di rotazione di un motore, ecc.). Indicando con ) (t r il valore
che si vuole far assumere alla variabile controllata e con ) (t y il valore effettivamente
assunto da tale grandezza, possiamo introdurre una funzione d’errore definita come:
) ( ) ( ) ( t y t r t e . Lo scopo dell’ azione di controllo è quello di applicare la migliore
scelta possibile della funzione ) (t u , detta variabile di controllo, che :
renda il sistema asintoticamente stabile;
minimizzi il valor medio di ) (t e ;