L’obbiettivo principale del Controllo Automatico è di modificare il comportamento di un sistema (quale può essere un motore CC, un braccio manipolatore, una catena di montaggio, ecc.) tramite l’utilizzo di un controllore; ovvero di modificarne le uscite agendo sugli ingressi. ALT! Cosa sono sistemi, ingressi, uscite, controllori?! Non temete, siete capitati nel posto giusto per scoprirlo!
Questo articolo vuole essere infatti un’introduzione al Controllo Automatico o Teoria del controllo e ai concetti e nozioni che vi fanno capo.
Full disclaimer: il taglio è divulgativo, quindi cercherò di mantenere la trattazione il più discorsiva possibile, limitando i noiosi formuloni la matematica allo stretto indispensabile. Non mancheranno comunque accenni a una trattazione più rigorosa, ma ai fini della comprensione generale si possono saltare tranquillamente.
Cosa si intende per sistema?
Con sistema fisico (o, talvolta, in teoria del controllo, impianto) si intende una porzione di
spazio separata fisicamente o logicamente dall’ambiente (o universo) e con il quale interagisce.
Tale porzione dello spazio è caratterizzata da un insieme di fenomeni, governati da leggi immutabili, che vi hanno luogo e che è possibile descrivere matematicamente. Le interazioni con l’ambiente si distinguono generalmente in “cause”, ovvero grandezze agenti sul sistema, ed “effetti”, cioè le risposte del sistema a tali cause.
Le grandezze che dall’esterno agiscono sul sistema vengono chiamate ingressi ([latex] u [/latex]) e gli effetti che si verificano, invece, uscite ([latex] y [/latex]).
Per fissare le idee, vediamo un paio di esempi: un motore CC interagisce con l’ambiente ricevendo in ingresso una tensione e fornendo in uscita una coppia sull’albero motore; un circuito elettrico riceve in ingresso un segnale elettrico e in base ai fenomeni che si verificano nei suoi componenti (resistenze, capacità, induttanze, ecc) fornisce in uscita un segnale diverso.
Un sistema viene generalmente rappresentato (vedi figura) come un “blocco”, per distinguerlo dal resto dell’universo, con una freccia entrante (cause) ed una uscente (effetti).
Si identifica, inoltre, una terza serie di grandezze, dette stati ([latex] x [/latex]), che rappresentano i fenomeni che hanno luogo internamente al sistema e determinano gli effetti visibili all’esterno.
Se pensiamo ad un circuito elettrico, le tensioni ai capi di resistenze e condensatori possono essere considerati gli stati del sistema. Per semplicità consideriamo unicamente la relazione che lega gli ingressi alle uscite, trattando il sistema come una black-box; matematicamente essa viene espressa con un’equazione differenziale:
[latex]a_n \frac{d^ny(t)}{dt^n}+a_{n-1} \frac{d^{n-1}y(t)}{dt^{n-1}}+…+a_0 y(t) = b_m \frac{d^mu(t)}{dt^m}+…+b_0 u(t)[/latex].
Maggiori informazioni sulla rappresentazione dei sistemi nello spoiler che trovate qui sotto.
Per prima cosa alcune dovute precisazioni. I sistemi che vengono trattati sono sistemi:
- lineari (per cui cioè vale il principio di sovrapposizione degli effetti),
- causali (cioè l’effetto di una causa che si verifica al tempo [latex]t[/latex] non si manifesta prima del tempo [latex]t[/latex]) e
- tempo invarianti (i fenomeni che si sviluppano nel sistema sono regolati da leggi immutabili nel tempo).
Inoltre come ingressi del sistema si considerano anche gli stati iniziali, che rappresentano il sistema per tempi precedenti [latex]t_0[/latex], detto istante iniziale. Si è parlato in generale di ingressi ed uscite, al plurale; si distinguono però due tipi di sistemi: SISO (single-input single-output) e MIMO (multiple-input multiple-output).
La descrizione ingresso-uscita di un sistema è esprimibile, in modo equivalente, tramite la sua funzione di trasferimento [latex]W(s)[/latex] che lega le trasformate di Laplace di ingressi e uscite secondo la relazione: [latex]Y(s) = W(s)*U(s)[/latex].
C’è poi un secondo tipo di rappresentazione detta di stato (o state-space) che caratterizza il sistema tramite quattro matrici [latex](F, G, H, D)[/latex]. Le matrici esprimono l’evoluzione degli stati (in funzione dello stato stesso per tempi precedenti e degli ingressi) e delle uscite (in funzione dello stato e degli ingressi):
[latex]\dot{x}(t)=Fx(t)+Gu(t)\\y(t)=Hx(t)+Du(t).[/latex]
In generale la rappresentazione di stato è più potente e permette di verificare un maggior numero di proprietà del sistema che, invece, non sono accessibili da una rappresentazione ingresso-uscita. Ad esempio con quella ingresso-uscita è possibile accertare solo la stabilità BIBO (ovvero a ingresso limitato in modulo corrisponde uscita limitata in modulo) mentre con quella di stato anche la stabilità asintotica (convergenza di tutte le traiettorie, o evoluzioni, di stato e di uscita).
Ora che abbiamo il nostro sistema fisico e una sua descrizione matematica, detta modello, passiamo alla prossima domanda:
Cosa significa controllare un sistema?
Distinguiamo per prima cosa due tipi di problemi di controllo:
- problemi di regolazione: consistono nel far sì che l’uscita rimanga fissa (a regime) ad un valore costante desiderato, ottenuto fornendo al sistema un ingresso a sua volta costante. Un esempio potrebbe essere il problema di mantenere costante la velocità di rotazione dell’albero di un motore CC;
- problemi di asservimento: si vuole “inseguire” il segnale di ingresso, ovvero fare in modo che l’andamento dell’uscita sia quanto più simile a quello dell’ingresso. Si tratta in questo caso di problemi più complessi, quindi nel seguito faremo riferimento solo a quelli di regolazione.
Il feedback
Ora che abbiamo il nostro problema, la regolazione, vediamo come risolverlo; e per farlo introduciamo il concetto di retroazione (dall’uscita) o feedback.
Come si vede in figura la retroazione consiste nel riportare all’ingresso del sistema la sua uscita; in questo modo l’effettivo ingresso è costituito dalla differenza fra il riferimento [latex]r(t)[/latex] (ingresso esterno) e l’uscita.
Tale differenza viene chiamata errore [latex]e(t) = r(t) – y(t)[/latex]; il sistema di partenza viene detto in catena aperta mentre il sistema complessivo (dal riferimento all’uscita) viene detto in catena chiusa.
[spoiler]Se si indica con [latex]G(s)[/latex] la funzione di trasferimento del sistema in catena aperta, si verifica facilmente che la funzione di trasferimento del sistema complessivo risulta essere:
[latex]W(s) = \frac{G(s)}{1+G(s)}[/latex].
Si noti che dovrà valere [latex]G(\infty) \neq -1[/latex] per garantire che la funzione di trasferimento sia sempre (strettamente) propria.[/spoiler]
In generale un sistema retroazionato presenta una dinamica (cioè un comportamento) complessa e molto diversa rispetto a quella del sistema originale. Ed in questo sta proprio la forza del feedback, che l’ha reso uno strumento fondamentale per la teoria dei controlli. Ma non solo, dato che viene utilizzato anche come modello interpretativo di fenomeni analizzati da altre discipline: dall’economia, alla biologia, alla fisica, ecc.
Nella figura sottostante è illustrato lo schema logico di un controllo in retroazione (unitaria). Si vede subito che, come nello schema precedente, l’uscita è riportata in ingresso e combinata con il riferimento esterno, per formare l’errore. La differenza sta ora nel fatto che l’errore viene fornito in ingresso al controllore e che la sua uscita, il comando, diventa l’ingresso del sistema.
Si distingue in generale fra due tipi di retroazione: dall’uscita, che considereremo nel resto dell’articolo, e dallo stato, caso in cui l’ingresso in un istante del sistema è una combinazione lineare di un ingresso esterno e degli stati al tempo precedente. Inoltre vanno distinte la retroazione positiva, in cui l’uscita (o lo stato) viene sommata all’ingresso e negativa (il nostro caso) in cui viene sottratta.
Possiamo allora dare una prima definizione intuitiva di controllore: si tratta di un secondo sistema che, in base a un prefissato “algoritmo” e all’errore che legge, fornisce l’ingresso all’impianto, al fine di stabilizzarne l’uscita ad un valore fisso. Pensiamo per esempio di avere un motore CC e di volerne fissare la velocità di rotazione (l’uscita) ad un valore scelto da noi (il riferimento).
Il controllore ad ogni istante riceve l’errore (cioè la differenza di velocità da colmare) e aumenta o diminuisce la tensione di alimentazione del motore fino a che, a regime, esso non si annulla. Per chiarire spero ancora meglio le idee, vediamo un esempio di sistema di controllo: il PID.
Il controllo PID
Questa classe di controllori gode di una gran diffusione, grazie alla semplicità di implementazione e di settaggio. Il nome PID sta per: proporzionale, integrativo e derivativo; infatti, come si vede dallo schema il controllore è composto da tre elementi diversi.
Elenchiamo brevemente le caratteristiche di questi elementi, ovvero “l’algoritmo” che li contraddistingue:
- Proporzionale: questo blocco si limita a moltiplicare l’errore per un fattore fissato, detto guadagno proporzionale; cioè esercita un’azione tanto più energica quanto maggiore è l’errore. Un modo molto intuitivo di comprenderne la funzione è di pensare al controllore come ad una molla che connette una massa ad un riferimento fisso. Quanto più noi allontaniamo/avviciniamo la massa rispetto al riferimento, tanto maggiore sarà la forza esercitata dalla molla per riportare la massa nella posizione iniziale.
- Derivativo: riprendendo l’analogia della molla, cosa succede se allontaniamo la massa e poi la rilasciamo? La molla comincia ad oscillare, tirando la massa prima da una parte e poi dall’altra; in un moto che, se non ci fosse l’attrito, sarebbe perpetuo. In generale però le oscillazioni non sono gradite in un problema di regolazione. Per farvi fronte si introduce quindi il controllo derivativo: esso non valuta direttamente l’errore, quanto la sua derivata prima. Se pensiamo all’errore come una variabile di posizione, la derivata prima dell’errore corrisponderà alla velocità, ovvero la rapidità con cui varia l’errore. Sarebbe come introdurre nel sistema massa-molla uno smorzatore che in base al valore della velocità della massa applica una forza atta a ridurla.
- Integrativo: arrivati a questo punto il controllore riduce l’errore fra riferimento e uscita e smorza le oscillazioni. Ma se il nostro sistema fosse ad esempio un braccio meccanico, soggetto alla gravità? Il sistema sarebbe soggetto ad una forza costante, che sfalserebbe di un certo valore l’uscita finale del sistema. A questo problema fa fronte il controllo integrativo che, appunto, integra l’errore su un dato intervallo di tempo.
Soluzione di un problema di controllo
Fino ad ora abbiamo visto solo uno degli “ingredienti” di un problema di controllo, il sistema, ma ne manca ancora uno fondamentale: le specifiche. Se ne distinguono quattro principali:
- tempo di salita [latex]t_r[/latex]: indica in quanto tempo l’uscita del sistema deve portarsi dal 10% al 90% del valore finale;
- tempo di assestamento [latex]t_s[/latex]: cioè il tempo dopo il quale l’uscita deve trovarsi in un intervallo compreso fra il 95% e il 105% del valore finale;
- massima sovraelongazione [latex]M_P[/latex]: ovvero il valore massimo che l’uscita può assumere quando, prima di assestarsi, oscilla attorno al valore finale;
- errore a regime permanente [latex]e_{rp}[/latex]: cioè il massimo scostamento effettivo dal valore desiderato che viene accettato.
Risolvere il problema di controllo consiste quindi nel progettare un controllore, ad esempio un PID, tale per cui il sistema complessivo risultante verifichi le specifiche assegnate. I passaggi principali della soluzione sono i seguenti:
- modellizzazione del sistema, cioè ricavare una descrizione matematica del sistema vero, a partire da principi della fisica, della meccanica ecc. In generale bisogna trovare il giusto modello che, pur non essendo eccessivamente dettagliato, riesce comunque a catturare i fenomeni principali del sistema;
- progettazione del controllore, cioè scegliere il giusti tipo di controllore e tarare (tuning) i suoi parametri;
- simulazione, ad esempio utilizzando MATLAB.
Dal risultato delle simulazioni è possibile capire se il sistema si comporta come desiderato o se, ad esempio a causa di eccessive approssimazioni nel modello, è necessario ripetere alcune fasi.
In genere vengono fornite anche ulteriori specifiche di cui tener conto: sulla stabilità del sistema, sul tempo di campionamento (vedi sotto), ecc. Inoltre attualmente la maggior parte dei sistemi di controllo sono implementati impiegando dispositivi digitali (ad esempio microprocessori) che lavorano con segnali campionati e quantizzati. Nasce quindi la disciplina dei controlli digitali, caratterizzati dal ricorso a equazioni alle differenze e alla trasformata Zeta, invece che alle equazioni differenziali e alla trasformata di Laplace. S
toricamente, però, la teoria dei controlli si è sviluppata per progettare controllori analogici, che venivano implementati con reti elettriche, tubi a vuoto, ecc. Perciò molti degli strumenti di progetto utilizzati, come i diagrammi di Bode, il criterio di Nyquist e il luogo delle radici, sono validi nel continuo, ovvero per sistemi analogici. Di conseguenza si distinguono due possibili approcci alla progettazione di controllori: nel continuo, cioè viene progettato un controllore a tempo continuo e poi lo si discretizza, tramite campionamento e quantizzazione; oppure nel discreto, utilizzando appositi strumenti come le equazioni diofantee. Fondamentale, nel controllo digitale, sarà la scelta del tempo di campionamento.
Conclusioni
La disciplina dei controlli automatici è in realtà vastissima, in questo articolo non abbiamo fatto altro che grattare la superficie. Ci sono moltissimi altri approcci, come quello già nominato dello spazio di stato (vedi teoria dei sistemi), e tantissimi strumenti matematici, anche molto complessi, che permettono di risolvere i problemi di controllo.
Con questo articolo ho voluto fare un’introduzione alla disciplina e ad alcune delle problematiche che si incontrano che fosse alla portata di tutti. Spero di aver stimolato la curiosità di alcuni e, per ulteriori informazioni, rimando alle fonti e al portale Wikipedia dedicato, che può essere un ottimo punto di partenza per approfondire.
- Bisiacco M., Valcher M.E., 2015. Controlli automatici. Tutto quello che avreste voluto sapere a riguardo ma non avete mai osato chiedere. Libreria Progetto, Padova.
- Fornasini E., 2015. Appunti di teoria dei sistemi. Libreria Progetto, Padova.
- Calimani R., Lepschy A., 1990. Feedback. Guida ai cicli a retroazione: dal controllo automatico al controllo biologico. Garzanti Editore.
- Oppenheim A.V., 2014. Signals and systems. Pearson.