You are on page 1of 60

Università degli Studi di Firenze

Facoltà di Ingegneria

Classe di Lauree in Ingegneria dell’Informazione

Corso di Laurea in Ingegneria Elettronica

A.A. : 2007/2008

Tesi di Laurea
Cont rol l o adatt ati vo a c omm ut az i one di un
si s te m a me c c anic o

Relatore: Ing. Giorgio Battistelli Il candidato: Giovanni Sferro

Firenze, Aprile 2009


Indice
Introduzione …................................................................................................................................4
Capitolo 1: Il sistema meccanico …..................................................................................5
1.1 Il motore in corrente continua DC.................................................................................5
1.2 I modelli cinematici …........................................................................................8
1.3 Le specifiche di progetto...............................................................................................8
Capitolo 2: Tipologie di controllori...............................................................................................12
2.1 Principio del modello interno......................................................................................12
2.2 Controllori a relay........................................................................................................13
2.3 Controllori PID.............................................................................................................15
2.3.1 Controllori P................................................................................................15
2.3.2 Controllori PI...............................................................................................16
2.3.3 Controllori PID...........................................................................................17
Capitolo 3 Metodi di sintesi dei controllori....................................................................................18
3.1 Metodo Ziegler-Nichols in anello chiuso......................................................................18
3.2 Metodo Ziegler-Nichols in anello aperto.......................................................................19
3.3 Internal model control....................................................................................................22
3.4 Criterio di Bode..............................................................................................................23
Capitolo 4 : Progettazione dei controllori e valutazione delle prestazioni......................................24
4.1 Il sistema scarico...........................................................................................................25
4.2 Il sistema a medio carico...............................................................................................27
4.3 Il sistema a pieno carico................................................................................................30
4.4 Test incrociati dei controllori.........................................................................................34
Capitolo 5: Controllo adattativo......................................................................................................38
5.1 Premessa........................................................................................................................38
5.2 Controllo a commutazione con isteresi.........................................................................38
5.3 Funzionali di costo.......................................................................................................40
5.4 Riferimento virtuale......................................................................................................41
Capitolo 6: Risultati simulativi.......................................................................................................43
Conclusioni.....................................................................................................................................53
Appendice 1: L'isteresi....................................................................................................................54

2
Appendice 2: Il supervisore............................................................................................................55
Appendice 3: Il modello a stato condiviso.....................................................................................56
Ringraziamenti...............................................................................................................................58
Riferimenti e bibliografia...............................................................................................................60

3
Introduzione

In un contesto di sempre più elevata industrializzazione dei processi e, conseguentemente, de-


umanizzazione della produzione si riscontra la necessità di creare sistemi in grado di esercitare su se
stessi o su apparati a loro collegati logiche di controllo che rispettino criteri di efficienza e
sicurezza.
Nell’ambito del controllo dei processi, il modello matematico che si ha a disposizione non sempre
rappresenta in maniera ottimale l'impianto reale da controllare e, spesso, i parametri del sistema
possono essere variabili nel tempo e nello spazio, cioè possono dipendere anche da fattori
ambientali o di produzione e non si ha alcuna informazione su come essi variano. Esiste, quindi, la
necessità di arrivare ad avere sistemi di controllo che in presenza di impianti incerti, siano in grado
di fornire segnali di controllo più appropriati possibile, in relazione a come sta funzionando il
sistema nel preciso momento.
Si definiscono quindi sistemi “adattativi”, in cui il sistema di controllo adatta il segnale fornito
all’impianto, sulla base di informazioni ricavate dall’impianto stesso. Fra le tecniche di controllo
adattativo, esiste quella cosiddetta a “commutazione”, che consente di ottenere l’adattamento del
segnale di controllo al sistema tramite la selezione di un controllore tra un certo numero di
controllori candidati. Tra le molte tecniche sviluppate in letteratura nel contesto del controllo
adattativo a commutazione questa tesi rivolge la sua attenzione alla tecnica basata sul cosiddetto
riferimento virtuale.
Il primo capitolo di questa tesi fornisce una descrizione del modello di sistema fisico su cui
andiamo a lavorare, comprese le descrizioni dei singoli elementi della catena cinematica, e la sua
risposta senza sistemi di controllo. Nel secondo capitolo vengono introdotti i tipi di controllori che
andremo ad utilizzare per controllare il sistema ed una parte teorica con i principi cardine del
controllo automatico. Nel terzo capitolo vengono introdotti i metodi di taratura dei controllori
esposti precedentemente. Nel quarto si sintetizzano i controllori ottimali per le tre situazioni di
carico e si eseguono i primi test di prestazione. Nel quinto capitolo si introduce la teoria alla base
del controllo a commutazione basato su riferimento virtuale. Nel sesto capitolo si descrive nel
dettaglio lo schema per il controllo adattativo a commutazione del sistema meccanico preso in
esame.

4
Capitolo1: Il sistema meccanico

Oggetto di questa tesi è la progettazione e la validazione di un sistema per il controllo di un sistema


di trasmissione flessibile costituito da un motore elettrico collegato ad un carico tramite una
puleggia e due cinghie elastiche (Fig 1.1).
Le pulegge sono supposte come elementi fissi ed anelastici, le caratteristiche fisiche delle cinghie
invarianti nel periodo di misura, mentre si suppone che il carico possa variare nel tempo.

1.1 - La catena cinematica in studio [11]


1.1 Il motore in corrente continua DC
Il motore DC si può schematizzare come in Fig. 1.2

1.2 - Modello elettromeccanico del motore DC [5]

5
Si tratta di un modello semplificato di un motore DC che muove un carico inerziale e mostra la
velocità angolare t del carico in funzione della tensione di ingresso V a
In questo modello le dinamiche del motore sono idealizzate: ad esempio il campo magnetico è
supposto costante. Il circuito di ingresso è costituito dalla resistenza di ingresso R e l'induttanza L di
autoinduzione.
Grazie alla semplicità del modello è possibile sviluppare un sistema di equazioni differenziali che
descrivano il sistema. Ad esempio le relazioni tra potenziale elettrico e forza meccanica applicata
sono la legge di Faraday sull'induzione e la legge di Ampere su un conduttore in movimento in un
campo magnetico.
La coppia t  vista all'albero è proporzionale alla corrente it  in ingresso t =K m⋅it 
dove K m è la costante dell'armatura è data dalle caratteristiche fisiche del motore, come la forza
del campo magnetico e il numero di avvolgimenti attorno al nucleo. La forza elettromotrice indotta
V emf è proporzionale alla velocità angolare vista all'albero V emf =K b t con Kb
dipendente anche esso da parametri fisici del motore.

Le leggi che descrivono la parte meccanica del motore sono derivate dalle leggi di Newton, secondo
cui l'inerzia del carico moltiplicata per la derivata della velocità angolare è uguale alla somma delle
coppie applicate all'albero
d
J =−K f t K i t
dt
con K f approssimazione lineare dell'attrito viscoso.
La parte elettrica del motore è descritta dalle formule
di
V app t −V emf t =L R i t
dt

di
V app t =L  Ri tK b t 
dt

Da queste equazioni possiamo derivare due equazioni differenziali che descrivono il sistema, la
prima in base alla derivata di i(t) e la seconda rispetto alla velocità angolare.

di R K V t
=- it - b t  app
dt L L L

6
d K K
=- f t m it 
dt J J

Nella figura 1.3 si può vedere la rappresentazione SISO del motore elettrico risultante da tale
modello.

1.3 - Modello matematico del motore DC [5]


Passando ad esaminare la trasmissione del moto dal motore al carico consideriamo la puleggia come
un elemento che, sostanzialmente, non produce alcun effetto diretto sulla cinematica: esso infatti
non esegue nessun tipo di lavoro (considerandolo senza attrito) sul moto.

Si suppone che il carico possa assumere tre valori nominali: “Pieno carico”, “Mezzo carico”,
“Scarico” che ci consentono di descrivere il sistema nelle condizioni limite in cui andrà ad operare.

In un primo momento si supporrà che, dovendo cambiare il carico, il motore venga fermato e poi
fatto ripartire; questo ci consentirà di considerare il carico come un valore costante e di poter
arrivare alla determinazione di un controllore in ciascuna delle configurazioni considerate.
Vedremo in seguito come un carico variabile nel tempo renda più complicata la definizione di un
controllore soprattutto perché non si insegue più un riferimento fisso e che quindi fattori
determinanti sono anche il ritardo con cui vengono seguiti i nuovi riferimenti, la sensitività alle
piccole variazioni, l'innesco di componenti continue od oscillatorie (ad esempio segnali sinusoidali
in ingresso a funzioni di trasferimento del secondo ordine).

7
1.2 I modelli cinematici
I tre modelli che caratterizzano il sistema sono descritti dalle seguenti funzioni di trasferimento:

Modello scarico:
z−2⋅0.28261z−10.50666z−2
P 1  z =
1−1.41833z−11.58939z−2−1.31608z−30.88642z−4

Modello a medio carico:


z −2⋅0.10276z−1 0.18123z−2
P 2  z =
1−1.99185z−12.20265z −2 −1.84083z−30.89413z−4

Modello a pieno carico:


z −2⋅0.06408z−1 0.10407z−2
P 3  z =
1−2.09679z −12.31962z−2−1.93353z−30.87129z−4

Questi modelli derivano da misure fatte partendo dal moto, e quindi dalle tensioni applicate, del
motore DC per osservare i valori restituiti, in uscita, dal sensore si posizione  associato al
carico.
Quindi il sistema si considera affine ad un modello Black Box: traducendo direttamente dall'inglese
il sistema è una scatola nera, cioè non ci è noto ciò che contiene. È possibile studiarne il
comportamento esclusivamente analizzando le risposte che esso produce a fronte delle
sollecitazioni che riceve. Abbiamo quindi un modello, approssimato, del sistema.
Ad esso si contrappone il modello white-box in cui la dinamica interna è ben conosciuta e la
descrizione del modello è perfetta, cioè non approssimata.

Nel caso in esame la struttura interna del sistema (la catena cinematica) ci è nota ma si usa
comunque un modello black-box in quanto un qualunque sistema fisico reale che abbia al suo
interno elementi elastici deve prevedere un certo grado di approssimazione.

1.3 Specifiche di progetto


Le specifiche che cercheremo di soddisfare sono le seguenti:

● Stabilità del sistema: condizione imprescindibile per l'utilizzo fisico del sistema.

8
● Fisica realizzabilità: come per la stabilità è una condizione, ovviamente, imprescindibile.
● Sistemi a minima rotazione di fase: sistemi in cui tutti i poli del sistema di controllo sono
nel raggio di cerchio unitario, per un sistema a tempo discreto.
● Tempo di salita: il tempo che il sistema impiega per passare dal 10% al 90% del valore di
regime per un ingresso al gradino. In questo caso deve essere inferiore a 1s.
● Sovraelongazione: la percentuale di superamento del valore di regime per un ingresso a
gradino, tipica dei sistemi con ordine superiore al primo. In questo esperimento non può
essere maggiore del 10%
● Reiezione dei disturbi al gradino: l'ampiezza all'uscita dei disturbi del gradino ridotta a 1/A
entro 1.2s per ogni carico
● Reiezione di disturbi costanti: all'infinito il sistema deve tendere al valore costante del
gradino
● Attenuazione dei disturbi in frequenza: il sistema deve attenuare i disturbi nella banda 0-
0.2 Hz, per ogni carico.
● Funzione di sensitività: la funzione di sensitività all'uscita deve essere in modulo minore di
6 dB per tutti i carichi (margine di guadagno maggiore di 0.5).
La prima analisi che è stata fatta riguarda il comportamento del sistema non retroazionato né
sottoposto a controllori. Abbiamo quindi valutato, tramite Matlab\Simulink e l'ambiente Sisotool, la
risposta al gradino del sistema nei tre casi di carico.Nello schema seguente abbiamo sintetizzato le
risposte dei modelli:

\ Sistema scarico Sist. a medio carico Sist. a pieno carico


Tempo di salita 0.0684 0.0936 0.1384
Tempo assestamento 8.3204 14.0628 7.1716
Min. Assestamento -0.0122 0.1286 0.3679
Max. Assestamento 2.1461 2.1617 1.8970
Overshoot 101.5952 101.0274 81.1757
Undershoot 1.1490 0 0
Picco 2.1461 2.1617 1.8970
Tempo del picco 0.3000 0.4500 0.5500

9
1.4 - Risposta al gradino del sistema scarico

1.5 - Risposta al gradino del sistema a medio carico

10
1.6 - Risposta al gradino del sistema a pieno carico

Si può vedere come siano sistemi asintoticamente stabili, che convergono tutti ad un valore di
regime, diverso però dal valore di riferimento, anche se con tempi grandemente superiori a quelli di
progetto.
Confrontando le risposte al gradino si può vedere come il sistema che converge più rapidamente sia
quello a pieno carico, seguito da quello scarico e poi, con tempi quasi doppi, quello a medio carico.

Questo comportamento può essere spiegato in maniera abbastanza semplice: la grande massa
presente sul sistema a pieno carico funziona come un'inerzia che tende a regolarizzare il
funzionamento, come fosse un volano. Il volano regolarizza il moto del sistema ma, con la sua
grande massa, necessita che il motore imponga coppie elevate. Questo fenomeno non si ha con il
sistema scarico che non ha masse (volani) da muovere; quindi il motore accelera e frena molto
rapidamente senza inerzie. Il sistema a medio carico non ha nessuno dei vantaggi sopra esposti:
necessita di coppie consistenti per muoversi e offre una massa che regolarizza poco il moto.

11
Capitolo 2: Tipologie di controllori

Nell'uso industriale la scelta dei controllori è fortemente legata, oltre che da vincoli prestazionali,
anche da limitazioni relative ai costi dell'acquisto, alla semplicità di ingegnerizzazione all'interno
del prodotto, all'adattabilità a diverse tipologie di prodotto, alla scalabilità.

Si tendono a preferire controllori con struttura fissa reperibili sul mercato che sia possibile
programmare o adattare a tutta una serie di processi mediante il cambiamento di alcuni parametri
caratteristici, ad esempio le reti di reazione o elementi circuitali esterni al controllore.
In questo capitolo approfondiremo i principi che sono alla base della sintesi dei controllori e
vedremo diversi tipi di controllori generalmente usati nella pratica industriale.

2.1 Principio del modello interno


Prendiamo un generico impianto e consideriamo il problema dell'inseguimento perfetto cioè
lim t->∞ e t =0 .

12
Si definiscono le seguenti quantità:
L s =P  s⋅C  s ⋅H  s

L s 
W  s=
1 L s

B s A s 
L s =  G s =
A s A sB  s

P  s
Y 0 s =
Q s . Q  s

● L'ipotesi di stabilità interna del sistema di controllo implica che G(s) ha sempre tutti i poli a
parte reale minore di zero.
● G(s) coincide nei problemi di inseguimento e reiezione di disturbi posti sull'uscita
dell'impianto
A s
Poiché E  s=G  s⋅Y 0  s= ⋅Y  s Secondo il principio del modello interno per
A s B s  0
avere inseguimento perfetto di un segnale di riferimento Y 0 t ogni polo a parte reale maggiore
di zero di Y 0 s  deve essere anche polo di L(s) con almeno la stessa molteplicità

2.2 Controllori a relay


Il controllore a relay è il sistema di controllo più semplice e dal funzionamento più elementare
disponibile: se il valore di ingresso supera una certa soglia “Vs” il controllore esce con un'uscita
“alta”, altrimenti con un uscita “bassa”.

U =u max se V in V s
U =u min se V in V s
Sua rappresentazione circuitale è il comparatore (un amplificatore operazionale in catena aperta).

Il problema principale di questo tipo di controllori è che, a fronte di una semplicità disarmante, sono
soggetti al fenomeno del “chattering”, ovvero che in presenza di rumore, anche lieve, si possono
avere commutazioni indesiderate tra un'uscita e l'altra. Ciò evidenzia un altro aspetto non molto

13
positivo di questo tipo di controlli: è impossibile tenere un regime costante e, inoltre, non vi è
proporzionalità tra il valore della funzione errore è la velocità con cui si tende al riferimento. Il
sistema chiederà sempre le stesse prestazioni al sistema fisico, presumibilmente il massimo, senza
tenere conto di possibili, e probabili, piccoli aggiustamenti. Ciò innescherà un comportamento di
carattere sinusoidale, non smorzato, della funzione errore.

2.1 – Funzionamento di un comparatore [2]

Un miglioramento significativo al controllore a relay si ha adottando una “isteresi” (che tratteremo


più avanti nell'elaborato) cioè un sistema per cui la commutazioni non avvengono per lo stesso
valore di soglia ma per valori sufficientemente diversi per scongiurare il fenomeno del chattering.
Sua rappresentazione circuitale è il trigger di Shmitt (si vedano le figure 2.2 e 2.3).

2.2 - Rappresentazione circuitale del Trigger di Shmitt [2]

14
2.3 - Rappresentazione del comportamento del Trigger di Shmitt [2]

2.3 Controllori PID

I controllori PID sono i più usati nell'ambito industriale perché garantiscono buone prestazioni
generali, grande capacità di adattabilità a molti tipi di processi, pervasività sul mercato, bassi costi e
tool di sviluppo già disponibili e gratuiti.
Sono teoricamente costituiti da 3 blocchi: Proporzionale, Integrale, Derivativo.
I tre blocchi non sono,ovviamente, tutti necessari e si possono quindi ottenere controllori P, PI, PID.

2.3.1 Proporzionale P:

Un regolatore di questo tipo è caratterizzato da una funzione di trasferimento

C  s=k p

con k p costante.

Quindi si ha, semplicemente, una moltiplicazione del segnale errore.


Questo controllore non riesce ad ottenere una reiezione completa dell'errore al gradino ma si limita
a limitarlo
e reg =lim t->∞  et 
ovvero in frequenza:
e reg =lim s->0  s⋅E  s 

15
con E  s trasformata di Laplace di e(t).

Per un riferimento costante Y 0 l'errore a regime è:

e reg =lim s->0 〚 Y0


1C  s⋅P  s  〛
con P(s) funzione di trasferimento del processo.
Se sostituiamo C(s) con k p otteniamo

e reg =lim s->0


〚 Y0
1k p⋅P  s 〛
da cui si evince che, in generale, anche per k p molto grandi non si ha un errore a regime nullo.
Condizione peraltro non riproducibile nella pratica perché si potrebbe avere una perdita contestuale
della stabilità. Un valore di k p molto elevato ha però effetti benefici sui tempi di risposta del
segnale (banda passante).

2.3.2 Proporzionale integrale PI:

Il controllore PI aggiunge al Proporzionale anche un blocco integratore

k
C  s=k p  i =k p 1
s
1
sTi  
con k i costante integrale.

Funzione principale del blocco integrale è quella di annullare l'errore a regime al gradino.
Infatti:

e reg =lim s->0


〚  s⋅Y 0 
1 k p⋅sk i⋅P  s 
=0

16
Dinamicamente l'integratore peggiora la stabilità del sistema perché introduce un ritardo di fase di
90°. Inoltre la presenza di un integratore pone il sistema nella condizione di essere soggetto a
fenomeni di “wind-up”, dovuti ad una possibile saturazione dell'azione integrale.

2.3.3 Proporzionale Integrale Derivativo PID:

Ha funzione di trasferimento:

 
ki k
C  s=k p 
s
k d⋅s=k p⋅ 1
1
kp
s 
s d =k p⋅ 1
kp  1
 s⋅Ti 
s⋅Td 
ki

La presenza di un fattore derivativo migliora la stabilità perché introduce un anticipo di 90° sulla
fase. Ciò ha però un effetto deleterio sulla banda del segnale: aumentandola si aumenta anche il
contributo in alta frequenza del rumore sia in forma sinusoidale che di rumore bianco; peggiorando
il rapporto segnale\rumore.

Nella realtà l'equazione caratteristica del PID non è quella indicata sopra perché non è fisicamente
realizzabile un sistema che ha modulo crescente con la frequenza quindi l'azione derivativa reale è:

k p⋅s⋅Td
G s =
s⋅Td
1 
N

con N parametro compreso tra 10 e100 perché il polo introdotto per avere la fisica realizzabilità sia
fuori dalla banda di segnale.

17
Capitolo 3: Metodi di sintesi dei controllori

In questo capitolo introduciamo alcuni metodi per la sintesi dei regolatori PID introdotti
precedentemente.
In condizioni reali la funzione di trasferimento del sistema fisico non è nota in forma chiusa ma ne
possiamo ricavare una rappresentazione abbastanza fedele mediante alcune tecniche di rilevazione
(ad esempio la risposta al gradino, all'impulso e ad altri segnali particolari). La rappresentazione
esatta del sistema fisico può, infatti, essere così gravosa dal punto di vista computazionale da
richiedere tempi di elaborazione che superano la durata dello studio.
La sintesi del controllore deve quindi procedere per metodi approssimati, tecniche che sono state
sviluppate sin dagli anni 40. Infatti nel 1942 Ziegler e Nichols presentarono due metodi: “in anello
chiuso” e “in anello aperto”.
Successivamente sono stati sviluppati altri metodi, più specificatamente progettati per tipi
particolari di controllori e, con l'avvento dell'elettronica e dell'informatica, di software e hardware in
grado di effettuare la taratura automatica dei controllori partendo sia dal sistema fisico retroazionato
che dal sistema con appositi controllori di test.
Nel seguito si supporrà che il sistema sia asintoticamente stabile e a guadagno positivo.

3.1 Metodo Ziegler-Nichols in anello chiuso

Il metodo Ziegler-Nichols in anello chiuso è di gran lunga il più usato nella sintesi. Si basa su alcuni
semplici passaggi:

1° Metodo

● Si pone k i =k d =0
● Si aumenta il k p fino a giungere nella condizione limite di oscillazione permanente di y
con periodo T. Tale guadagno è noto come guadagno critico k c .
● Una volta determinati k c e T i parametri dei controllori P,PI,PID sono quelli determinati
in tabella

18
\ Kp Ti Td
P 0.5 Kc
PI 0.45 Kc 0.8T
PID 0.6 Kc 0.5T 0.125T

Approfondendo lo studio si nota come k c non sia altro che il margine di guadagno del sistema
retroazionato, quindi questo metodo è applicabile solo se tale margine è finito.
2⋅
Inoltre T = dove ̇ è la pulsazione corrispondente al margine di guadagno.
̇

2° Metodo

● Si pone k i =k d =0
● Si pone k p pari ad un valore k p0 che garantisca transistori lenti e nessuna
sovraelongazione.
● Si misura la risposta al gradino identificando i parametri kr e T m e applicando le
relazioni k pl =2k r k p0 e T l =4Tm . I due parametri vengono misurati dal grafico della
risposta temporale con k r pari alla distanza tra l'origine e l'intercetta tra l'asse y e la
tangente alla curva in k p0 . T m è la distanza tra l'intersezione della tangente con l'asse t
e il tempo del valore medio dell'escursione dell'uscita.

3.2 Metodo Ziegler-Nichols in anello aperto

Ora analizziamo i metodi di taratura dei parametri dei regolatori PID, sviluppati per sistemi con
ingresso al gradino non oscillante. Sono basati su un modello semplificato del sistema descritto
dalla funzione di trasferimento:


Ga  s= e− s (3.1)
1Ts

in cui il parametro  è detto ritardo equivalente, mentre T definita costante di tempo equivalente.

19
Per determinare il modello di cui sopra, vi sono due metodi approssimati che si basano sulla
risposta al gradino u0 del sistema ottenuta sperimentalmente: il metodo della tangente ed il
metodo delle aree.
Consideriamo il primo metodo e la figura 3.1. Il modulo del guadagno può essere ricavato
direttamente come rapporto tra l'uscita a regime y o ed il valore u 0 del gradino in ingresso
y0
= .
u0
Il punto di massima pendenza della curva che, come vedremo ha una grande importanza, è
identificato da  e la tangente nel punto interseca il valore asintotico di uscita nell'istante
T  .
Ottenere valori veritieri dei parametri può essere estremamente complicato in condizioni di forte
rumore, soprattutto per quanto riguarda il punto di massima pendenza della curva e la sua tangente.

3.1 - Modello Ziegler-Nichols, metodo della tangente[7]

Il secondo metodo, quello delle aree, può risolvere il problema perché è basato sul calcolo di
integrali che eliminano parte del rumore.
Consideriamo ancora la risposta al gradino di ampiezza u 0 del sistema (3.1), come per il metodo

y0
della tangente il guadagno è determinato come = .
u0

20
3.2 - Modello Ziegler-Nichols, metodo delle aree [7]

Facendo riferimento alla figura 3.2, inoltre l'area S 1 è data da:

∞ −t
S 1=⋅u 0⋅∫0 ⋅u 0⋅e  dt=⋅u 0⋅T = y 0⋅T 

Dalla sua valutazione si ricava, quindi, il valore di t . Considerando ora l'area S2 compresa tra
la curva, l'asse dei tempi e una retta verticale passante per il punto di ascissa t , si ha:

T −t
⋅u 0⋅T y 0⋅T
S 2=∫0 ⋅u 0⋅1−e  dt= =
e e

e⋅S 2
T=
y0

Si noti che il metodo delle aree risulta più vantaggioso del metodo della tangente, in presenza di
segnali rumorosi, in quanto il calcolo di un'area è meno sensibile del calcolo di una tangente. Dopo
aver ricavato il modello approssimato del sistema il controllore PID può essere sintetizzato come in
tabella:

21
\ Kp Ti Td
P T /
PI 0.9T/  3
PID 1.2T/ 2 0.5 

3.3 Internal model control


Un altro modo per effettuare la taratura dei PID e’ quello di ricorrere alla tecnica dell’Internal
Model Control (IMC). Tale tecnica si basa sulla rappresentazione del sistema mostrata nello schema
in figura

3.3 - Schema con Internal Model Control

P  s è una copia del processo P  s che si suppone asintoticamente stabile.


Si calcola l'errore e del sistema in Fig. 3.4, si ha

e=r− y P  w−u=r − P⋅u−


 
P⋅w P⋅u
che, sotto l'ipotesi 
P=P 
diventa e=r− P⋅w .
In pratica la soluzione adottata, che consiste nel progettare un controllore che abbia al suo interno
una copia del sistema, è equivalente al sistema:

3.4 - Schema con blocco di saturazione esterno

22
in cui il blocco non lineare di saturazione è stato portato fuori dall'anello di controllo.
3.4 Criterio di Bode

E' un criterio dalla formulazione semplice, che può essere applicato se il sistema non ha poli a parte
reale maggiore di 0.

In un sistema L(s) senza poli a minima rotazione di fase, con il diagramma di Bode del modulo di
L  j  che attraversa l'asse a 0 dB una sola volta, indicato con  il guadagno di L(s) e con
m il margine di fase, condizione necessaria e sufficiente perché il sistema retroazionato sia
asintoticamente stabile è che risulti 0 e m 0 .

23
Capitolo 4 : Progettazione dei controllori e valutazione delle prestazioni

La scelta del tipo di controllore da utilizzare avviene, come precedentemente esposto, in base a
molti criteri ed, una volta scelta la classe dei controllori di interesse, si procede alla loro sintesi ed
alla loro analisi.
Per rendere più veloce e più efficiente la sintesi dei controllori si è fatto uso del software
Matlab/Simulink con i moduli “Sisotool”, “Robust control toolbox” e ”Control system toolbox”.
La scelta è caduta sui controllori PID che presentano notevoli vantaggi: essere disponibili sul
mercato e quindi implementabili rapidamente e con problemi di ingegnerizzazione minimi;
garantire reiezione completa dei disturbi (PI) e tempi di salita limitati (PID).

Lo schema di controllo a cui si farà riferimento in questo capitolo è riportato in figura 4.1:

4.1 - Modello Matlab generico per un sistema SISO in


retroazione[5]

Se non altrimenti indicato le funzioni F e H sono definite F=H=1.


Nei paragrafi seguenti verranno riportati i comportamenti dei vari sistemi, con la seguente legenda:
● grafico blu: andamento dell'uscita Y in risposta ad un riferimento a gradino.
● grafico verde: andamento dell'uscita U in risposta ad un riferimento a gradino.
● grafico rosso: andamento dell'uscita Y in risposta al segnale di rumore du
● grafico azzurro: andamento dell'uscita Y in risposta al segnale di rumore dy
● Le zone in giallo rappresentano i vincoli prestazionali elencati in fase di definizione del

24
sistema (tempo di salita, sovraelongazione,...)
Si è proceduto quindi, singolarmente, all'analisi della stabilità per ogni modello.

4.1 Il sistema scarico


Come preventivato il sistema che garantisce una più ampia libertà nella scelta del controllore è il
“Sistema scarico” questo perché probabilmente il comportamento del sistema si avvicina
maggiormente ad un sistema anelastico.
Il primo test viene effettuato con un controllore Proporzionale e la risposta al gradino risultante è
riportata in figura 4.2: il sistema non tende al riferimento e la risposta è una funzione sinusoidale
che oscilla attorno ad un valore di circa 0,1.

4.2 - Risposta del sistema scarico con controllore P

Si è usato quindi un controllore PI che, oltre a garantire la stabilità, permette una certa libertà nella
scelta dei parametri.
Il controllore scelto è un PI che segue il metodo del modello interno del processo:

25
z −1.7
C 1  z =
9.3 z −1
Il controllore risulta non a minima rotazione di fase per la presenza di uno zero al di fuori del raggio
di cerchio unitario.
Analizzando il comportamento del sistema si nota come spostare lo zero positivo verso il raggio di
cerchio unitario porti il sistema all'instabilità in maniera progressiva, spostarlo nell'altro senso porta
il sistema a sovraelongare e a mantenere sostanzialmente inalterato il margine di fase.

4.3 - Risposta del sistema scarico con PID

26
Un controllore PID

1
1− z
20
C 1  z =
250⋅z  z −1

garantisce margini di modifica del sistema più ampi del PI appena sintetizzato, pur essendo sempre
non a minima rotazione di fase, e tempi di salita più rapidi. Si è quindi adottato questo controllore
nei test successivi.

4.2 Il sistema a medio carico


La procedura che è stata usata per la sintesi del controllore per il medio carico è la stessa usata in
precedenza per il sistema scarico e ha portato al primo tentativo, sfruttando la tecnica IMC, al
controllore:

1.568−z 
C 2  z =
12.51 z −1 z−0.2

4,4 – Luogo delle radici e diagramma di Bode per il sistema a


medio carico con il controllore PID

27
4.5 - Risposta del sistema a medio carico con PID

Con il primo controllore otteniamo un overshoot al 12% per i primi 2 picchi, 27.8° margine di fase,
4,82 db margine di guadagno.

Si procede quindi portando il polo in alta frequenza ad una frequenza più bassa, ottenendo un
overshoot circa del 2% con 6.29 dB di margine di ampiezza e 55.6° di margine di fase. Si rileva
anche un aumento della sensibilità in ingresso.

Dopo alcuni passi di ottimizzazione si arriva al controllore:

1.31−z 
C 2  z =
40.42 z−1 z −0.865
che garantisce prestazioni ottime e stabilità. Rimane purtroppo il problema che non è un sistema a
minima rotazione di fase. Quindi sarà questo nuovo sistema ad essere utilizzato successivamente.

28
4.6 - Risposta del sistema scarico col secondo PID

Si è proceduto andando ad analizzare il diagramma di Bode del controllore C 2 ed a spostare, sul


diagramma stesso, i poli per migliorare la risposta. Si è ottenuto quindi un secondo controllore:
 z −1,649
C 2=
28,06  z−1 z −0.6532
che ha uno zero all'esterno del cerchio di raggio unitario. Risulta comunque un margine di guadagno
di 6.29 dB e 55.8° di margine di fase.
Dato che garantisce prestazioni migliori, seppur in misura minima, si è utilizzato questo nei test
sucessivi.

29
4.7 – Luogo delle radici e diagramma di Bode per il sistema a medio carico con il
secondo controllore PID

4.3 Il sistema a pieno carico

Come per il sistema a medio carico si sono trovati controllori stabilizzanti che rispettano i vincoli
prestazionali ma non a minima rotazione di fase, il primo controllore trovato è:

1.862−z 
C 3  z =
32.9 z −1 z−0.5

30
4.8 - Risposta del sistema a pieno carico con il primo controllore PID

31
4.9 - Luogo delle radici e diagramma di Bode per il sistema a pieno carico con
il primo controllore PID

che garantisce 4.98 dB di margine di guadagno e 47.5° di margine di fase.

Modificando questo controllore si giunge al secondo sistema

1.862−z 
C 3  z =
44.1  z−1 z−0.66

che garantisce 5.67 dB di margine di guadagno e 62° di margine di fase. La contropartita di questa
migliore stabilità è che i vincoli prestazionali vengono soddisfatti senza lasciare praticamente
nessun margine all'incertezza (si veda ad esempio il tempo di salita). Ciò non costituisce,
ovviamente, un problema di stabilità ma di limitazione all'impiego pratico.
Per questo motivo, sebbene il secondo controllore garantisca prestazioni migliori, si è utilizzato il
primo controllore.

32
4.10 - Luogo delle radici e diagramma di Bode per il sistema a pieno
carico con il secondo controllore PID

4.11 – Risposta del sistema a pieno carico col secondo PID

33
4.4 Test incrociati dei controllori
Si è proceduto poi a verificare il comportamento dei tre controllori così ottenuti testando tutte le
possibili combinazioni controllore-modello; combinando il controllore del sistema scarico con il
sistema da medio carico si ottiene un sistema instabile.

4.12 – Controllore del sistema scarico con modello a medio carico


Medesimo risultato si ottiene con il sistema a pieno carico, anche se con tempi leggermente più
lunghi dovuta all'ampia massa che funge da volano.

4.13 – Controllore del sistema scarico con modello a pieno carico

34
Continuiamo con il controllore del sistema a medio carico: il sistema scarico è stabile ma non centra
le specifiche di progetto in fatto di tempo di salita mentre soddisfa tutte le altre condizioni.

4.13 – Controllore del sistema a medio carico con modello scarico


Usando il controllore del sistema medio sul sistema a pieno carico si ha un sistema che rispetta tutti
i vincoli eccetto la sovraelongazione che raggiunge il valore del 19%.

35
4.14 – Controllore del sistema a medio carico con modello a pieno carico

Infine testando il controllore per il pieno carico: con il sistema scarico si ottiene un comportamento
tipico di un sistema del primo ordine con un avvicinamento lento e senza sovraelongazione; con il
sistema a medio carico si ottiene un sistema che rispetta tutti i vincoli imposti al sistema.

36
4.15 – Controllore del sistema a pieno carico con modello scarico

37
Capitolo 5: Controllo adattativo
5.1 Premessa
La sintesi dei controllori è un'attività relativamente semplice che consente di trovare funzioni di
controllo in grado di stabilizzare e garantire prestazioni ottimali in condizioni di funzionamento
prossime a quelle rappresentate in fase di progettazione.
Nella pratica, tuttavia, si ha spesso la necessità di un sistema di controllo che fornisca prestazioni
ottime in tutte le possibili condizioni di funzionamento, condizione che, come è facile intuire,
risulta spesso impossibile da ottenere con un singolo controllore.
Ad esempio non si può pretendere da un sistema che abbia tempi di reazione e salita ridotti e che
contemporaneamente abbia un'ottima reiezione ai disturbi, concetti che sono palesemente in
contrasto tra di loro essendo entrambi legati, in maniera opposta, alla derivata del segnale.
Possiamo quindi intravedere una possibile soluzione al problema: disporre di più controllori da
utilizzare al variare delle condizioni di funzionamento.
Possiamo ipotizzare che il sistema integri un controllore per le condizioni ottimali di funzionamento
(basso rumore, valori di ingresso nel range ottimale) completamente dedicato alle prestazioni.
Ciò permette di “devolvere” la stabilità e la reiezione dei disturbi in condizioni non ottimali ad un
controllore con vincoli prestazionali molto meno stringenti.

Abbiamo visto come avere a disposizione molteplici controllori sia un ottimo modo per avere
prestazioni eccellenti in gran parte delle possibili condizioni di funzionamento.
Nel seguito del capitolo verrà presentata una particolare metodologia, il controllo adattativo a
commutazione (in inglese Adaptive Switching Control, ASC), attraverso la quale si renderà
possibile scegliere in linea, ad ogni istante temporale, quale tra gli N controllori candidati deve
essere inscritto in retroazione con l'impianto. Tale scelta avverrà confrontando opportuni funzionali
di costo.
In particolare, l'attenzione verrà rivolta agli algoritmi basati sui riferimenti virtuali ottenendo così
quelli che sono i cosiddetti sistemi VRASC (Virtual Reference Adaptive Switching Control).

5.2 Controllo a commutazione con isteresi


Come detto, in questo capitolo ci occuperemo di introdurre e, successivamente, approfondire la
teoria che sta alla base del controllo adattivo a commutazione.

38
5.1 - Schema del controllo adattativo a commutazione [8]

In Fig. 5.1 possiamo vedere lo schema di funzionamento del controllo adattativo a commutazione: P
è il processo da controllare tramite uno dei controllori C 1 ,..., C N , la scelta del controllore da
utilizzare viene presa dal blocco “supervisore” S.
Si può notare come il controllo adattativo a commutazione non sia altro che una specializzazione
del classico schema retroazionato ad un grado di libertà.
Il supervisore opera ricostruendo il funzionamento del blocco P, senza conoscerne la reale funzione
di trasferimento, ma avendo come ingressi l'uscita del controllore u t e l'uscita del processo
y t . All'interno del blocco supervisore è integrata una logica che, tramite funzionali N di costo,
sceglie il controllore più appropriato per far convergere y t al riferimento r t .

Tali funzionali di costo consentono di scegliere tra N controllori, quello che garantisce le
prestazioni migliori ad ogni istante temporale.
Supponiamo che, a causa dell'incertezza sia spaziale che temporale dei parametri, P appartenga ad
un insieme di impianti  . Consideriamo anche un insieme C 1 ,..., C N di controllori progettati
attorno a N punti di funzionamento nominale dell'impianto.
Se indichiamo con C  t il controllore selezionato tra gli N dal supervisore all'istante corrente,
possiamo dire che il sistema descritto in precedenza può essere espresso formalmente:

{ y t =Put 
u t=C  t   y−r t } (1)

 :={1,2 ,... , N } .
dove  t ∈ N

39
Quindi si usa per l'accoppiata P ∈ e C t  la notazione (P/ C t  ).
Come anticipato, associamo a ciascun controllore C i un opportuno funzionale di costo V i t ,
calcolato, ad ogni istante temporale, sulla base dei dati in ingresso ed in uscita dall'impianto, ovvero
sulla base di u(r), y(r), per r ≤t . Tale funzionale r costituisce una misura di prestazione per il
controllore C i . Più esso è piccola, maggiore è l'utilità presunta dell'uso dell'indice i.
Per evitare che si abbiano frequenti commutazioni tra un controllore e l'altro a causa del rumore
(fenomeno del “chattering” già trattato nel capitolo (2.2) si introduce un meccanismo d'isteresi
nella logica di commutazione tra controllori.
Si adotta quindi la seguente logica di commutazione con isteresi:

t  =
{ t−1:V  t−1 t V  th
t:V  t  t≥V  th } (2)

dove  } ; 0 = 0 ∈ N


t :=arg mini {V i t ,i∈ N  (3) . Il valore reale positivo h è detto
costante di isteresi.

5.3 Funzionali di costo


Come si può facilmente intuire, la scelta dei funzionali di costo riveste un ruolo fondamentale nel
controllo a commutazione, di funzionale di costo. Essi ci permettono di fare le successive
valutazioni e scelte in merito a quale controllore scegliere tra gli N a disposizione del supervisore. I
funzionali di costo utilizzati in questa tesi sono così definiti: poniamo 0, c2 0 .
Il funzionale di costo avrà come equazione:
t

∑ ∥y  k −r k ∥2∥u  k ∥2 


J i t = k =0 t (4)
∑ ∥r k ∥ c
2 2

k=0

Dove il primo termine al numeratore rappresenta l'energia dell'errore di inseguimento (ottenuto


come la differenza tra il valore dell'uscita ed il valore del riferimento nello stesso istante di
campionamento. Il secondo termine indica l'energia del controllo, ovvero il costo di effettuare
variazioni sul sistema. Il termine al denominatore rappresenta, ovviamente, l'energia del

40
riferimento. Il parametro  permette di modificare il contributo al costo del controllo e il termine
c 2 è inserito per evitare errori di divisione per zero.
Naturalmente un funzionale di costo di questo tipo può essere adattato unicamente per valutare le
prestazioni del controllore attualmente inserito in retroazione con l'impianto. Tuttavia, nel contesto
del controllo adattativo a commutazione, occorre associare un funzionale di costo a ciascun
controllore candidato.
Per fare questo si introduce il concetto di riferimento virtuale.

5.4 Riferimento virtuale


La definizione di riferimento virtuale risulta quindi fondamentale in quanto consente di calcolare
funzionale di costo del tipo (4) per tutti i controllori candidati.
Dato un controllore candidato C i , il riferimento virtuale v i ad esso associato è l'ipotetico
riferimento che se inviato al sistema retroazionato con C i riprodurrebbe le stesse coppie
ingresso-uscita (u,y) del sistema reale retroazionato con il controllore tempo-variante C t  (si
veda la figura 5.2).

5.2 - Anello di retroazione virtuale associato al


controllore Ci

Per quanto riguarda il calcolo del riferimento virtuale v i , supponendo che la funzione di
trasferimento del controllore C i sia

−1 S i  z−1
C i  z =
Ri  z −1 

v i può essere calcolato come

41
Ri  z−1
v i t=C−1
i u t y t= ut  y t
S i  z −1 

A questo punto, è possibile associare al controllore c i il funzionale di costo

∑ ∥y  k −v i k ∥2∥u k ∥2 


J i t= k =0 t

∑ ∥v i  k ∥2c 2
k=0

che consente di valutare la bontà di C i sulla base delle prestazioni dell'anello virtuale
rappresentato in figura 5.2.
Si noti che affinché v i sia ben definito il polinomio S i  z −1 deve essere stabile, ovvero il

controllore C i deve essere stabilmente invertibile e quindi a minima rotazione di fase.


Nel caso questa condizione non sia soddisfatta, in luogo di v i si può usare il segnale w i
ottenuto filtrando il riferimento virtuale secondo la formula

w i t =S i  z −1 v i t=Ri  z−1 u tS i  z−1  y t

Il calcolo di w i può sempre essere eseguito in quanto non richiede nessuna inversione.

42
Capitolo 6: Risultati simulativi

Scopo principale di questa tesi è portare la logica del controllo adattativo a commutazione con
isteresi in una catena cinematica aperta, rappresentata dal sistema di trasmissione flessibile descritto
nel capitolo 1, per poi valutarne le prestazioni.
A questo scopo è stato sviluppato un modello Matlab\Simulink del processo fisico e del sistema di
controllo adattativo considerato.

6.1 - Modello Matlab\Simulink

Come si evince dalla figura 6.1 il modello è costituito da un ingresso a gradino; dai tre controllori
sintetizzati nei capitoli precedenti per i tre casi d'uso; dal modello fisico “Modello cinematico” del
sistema rappresentato, per omogeneità con i controllori, con la rappresentazione nello spazio degli
stati; da un blocco “Funzionale di costo” e da un blocco “Supervisore”.

Si nota inoltre uno switch che seleziona il controllore in base ad un parametro di uscita del blocco
“Supervisore” il quale fornisce anche il valore “r”(il valore del riferimento) al funzionale di costo
per il calcolo del costo del controllo.

La somma del valore costante “Carico” e della funzione periodica “Variazioni” viene presa come

43
variabile di ingresso del Modello cinematico come indice dello switch che comanda la scelta tra i
tre modelli fisici del sistema.
Si è scelta questa rappresentazione per le fluttuazioni del carico, in luogo di un valore totalmente
casuale, perché si è supposto che, nel caso reale, la catena cinematica in esame sia parte di un
processo produttivo che fornisce valori di carico con variazioni piuttosto regolari.

Il blocco “Supervisore” include il nucleo della scelta del controllore più adatto a regolare
l'impianto: riceve in ingresso due valori “u” e ”y” rispettivamente l'ingresso del modello cinematico
e la sua uscita.
Al suo interno (figura 6.2) vi sono tre funzioni per il calcolo del riferimento virtuale filtrato wi ;
tre blocchi funzionali di costo identici a quello visto in precedenza, che forniscono tre costi alla
funzione “selector” ed al blocco “min” che fornisce il valore minimo tra loro.

6.2 - Sottoblocco Supervisore

La funzione “selector” costituisce il vero cuore decisionale in cui viene scelto quale controllore
utilizzare per soddisfare nel modo migliore le specifiche. Riceve in ingresso i tre funzionali di costo
ed il loro minimo per confrontarli; al suo interno è integrata una logica di isteresi per evitare
commutazioni molto frequenti e relative a piccole variazioni. Per il codice in linguaggio Matlab e le
relative spiegazioni si veda l'Appendice 2.
Per la taratura del supervisore si è utilizzato, in un primo tempo, un sistema semplice ma efficace: si

44
è proceduto pilotando la funzione selector moltiplicando il risultato dei tre riferimenti virtuali
filtrati per valori costanti opportunamente scelti.
Si è visto infatti che la funzione selector non riesce a soddisfare tutti i vincoli di progetto
semplicemente analizzando i funzionali di costo.
Aggiungendo in uscita dai blocchi “Riferimento virtuale” un blocco guadagno si sono potuti
modificare i funzionali di costo relativi ai tre sistemi in maniera totalmente trasparente agli altri
blocchi del modello, si ha quindi una modifica facilmente adattabile ad ogni risposta desiderata
senza dover re-ingegnerizzare l'intero modello.
In figura 6.2 questi blocchi sono contraddistinti dai nomi “Gain”,”Gain1”,”Gain2” .
Si è tentato in un primo momento di utilizzare vari risolutori numerici per determinare i valori
ottimali per i tre guadagni ma i tentativi hanno dato risultati non soddisfacenti: i risolutori
forniscono valori, se riescono a determinare soluzioni valide, che non garantiscono margini di
incertezza accettabili per un sistema reale. Si è quindi proceduto cercando manualmente dei valori.
I valori scelti sono (0,05;12;1) che rappresentano un insieme minimo delle soluzioni trovate ma che
garantiscono prestazioni ampiamente soddisfatte ed una eccellente robustezza al cambiamento, sia
della sequenza di variazioni che della frequenza con cui queste variazioni si succedono.
Si ottengono infatti le seguenti prestazioni con il set di variazioni usato finora:
•Tempo di salita: 0,95 sec.
•Sovraelongazione:1,09

•Tempo di assestamento: 3,5 sec.


Nello specifico di questi risultati non vi è quasi uso del controllore del sistema scarico: questo è da
imputarsi al fatto che con la maggioranza delle sequenze (parametro “Variazioni” del sistema) di
sistemi fisici testati ha fornito prestazioni molto simili a quelle del controllore a medio carico non
garantendo al contempo la stabilità del sistema.
Dopo il naturale tempo di assestamento del sistema si nota come venga correttamente inseguito il
riferimento; si può notare come quando vi sia il passaggio tra i modelli si inneschi una variazione
dell'uscita di ampiezza molto limitata.
Nel caso che, al momento del passaggio, sia selezionato il controllore medio l'uscita varia in
[0.985;1.015] e, nel caso degli altri controllori, in [0.97;1.01].
Sono quindi variazioni molto piccole che vengono eliminate in un tempo medio di 2 secondi
quando si passa al modello scarico o quello a pieno carico e circa 1 secondo quando si passa al
modello medio. Per una visione più precisa del fenomeno si rimanda alla Fig. 6.3.

45
6.3 – Andamento dell'uscita in corrispondenza del cambio di sistema
Successivamente si è tentato un diverso approccio: invece di moltiplicare il valore del riferimento
virtuale si è andati a modificare il valore del costo del controllo all'interno del funzionale di costo
relativo ad ogni controllore. Questa tecnica consente di avere una sensibilità maggiore alle
variazioni dei parametri e una complessità strutturale del supervisore minore. Inoltre non presenta le
piccole variazioni al cambio di modello fisico viste poco fa e fa uso di tutti e tre i controllori,
sebbene in maniera diversa a secondi dei parametri con cui si effettua la taratura.
Una caratteristica che, però, si mette in evidenza con questa configurazione è l'ampiezza della curva
subito dopo la salita (Fig.6.4): l'uscita scende ad un valore molto basso, nell'ordine di 0.58-0.62, per
poi risalire correttamente verso il valore di riferimento.

6.4 – Andamento del segnale di commutazione e dell'uscita quando si applica il metodo del
costo del controllo

46
Nella prima fase di test si è proceduto, come esposto precedentemente, a effettuare una
moltiplicazione del valore del riferimento virtuale per pilotare la scelta del controllore da utilizzare;
tecnica che ha ottenuto i risultati già esposti. Successivamente si è provata la strada di modificare il
costo del controllo all'interno dei funzionali di costo; quindi il passo successivo è stato unire queste
due tecniche.
E' stato finalmente possibile trovare, tramite algoritmi di calcolo, valori che soddisfano tutti i
vincoli di progetto e permettono anche una buona robustezza.
Lo svantaggio è costituito dall'aumentato costo computazionale richiesto per il calcolo dei 6
parametri in luogo dei 3 dei casi precedenti (sulla macchina usata per i calcoli ha richiesto un tempo
circa 10 volte superiore per eseguire le stesse 100 iterazioni).
Sono stati eseguiti test con tutti gli algoritmi forniti da Matlab\Simulink (Pattern search, Gradient
descent, Simplex search) e hanno fornito gli stessi valori:
C 1 =2.5524 C 2 =0.4528 C 3 =12.1077 M 1 =0.8320 M 2 =0.9356 M 3 =2.4493
Utilizzando questi valori sono stati fatti dei confronti con un modello utilizzante gli stessi
controllori sintetizzati nel capitolo 4 assegnati staticamente al modello fisico a cui si riferiscono.
Il modello usato utilizza (Fig.6.5) gli stessi ingressi per il sistema VRASC e per il sistema statico, in
modo tale da assicurare il sincronismo e l'uniformità degli ingressi.

6.5 - Il modello Simulink per i confronti

Eseguendo test con la stessa sequenza di modelli fisici si nota come, per sistemi lentamente
variabili, le uscite siano simili se non sovrapponibili (per commutazioni intervallate di 6 secondi o
più). Dai risultati si possono considerare lentamente variabili tutti i sistemi con commutazioni

47
intervallate di più di 2 secondi. Nelle immagini seguenti in viola è visualizzata l'uscita del sistema
statico ed in giallo quella del sistema commutato.

6.6 - Le uscite per t>2sec. : in viola il sistema statico

Per un intervallo di 1 sec. la risposta è quella in Fig. 6.7: la risposta del sistema statico differisce
notevolmente da quella del sistema VRASC e viola i vincoli progettuali.

6.7 - Le uscite per t=1sec. : in viola il sistema statico

In particolare possiamo notare come il sistema dinamico risenta minimamente dei cambi tra modelli
molto diversi, rimanendo ampiamente nei limiti di progetto, mentre il sistema statico necessita di

48
tempi molto superiori al secondo per convergere al valore di regime, con la conseguenza che l'uscita
non potrà mai tendere al valore di regime. Inoltre la sua uscita è formata non tanto da curve ma da
spezzate che impongono accelerazioni di valore molto elevati, questo provocherebbe nel sistema
reale un grosso dispendio energetico nell'immediato e, sicuramente, come conseguenza nel medio-
lungo periodo, rotture e malfunzionamenti.
Per intervalli di commutazione inferiori al secondo le uscite divergono ulteriormente: il sistema
statico garantisce un tempo di salita molto rapido ma una sovraelongazione molto marcata ma, a
parziale compensazione, una convergenza al valore di regime più veloce e con un percorso
leggermente migliore. Un problema che affligge il sistema dinamico, per tempi [0.6;0.9] è che non
viene più rispettata la condizione sul tempo di salita, che aumenta fino a 1.2 sec.
Valori critici per l'intervallo di commutazione sono 0.5-0.6 sec. Per i quali neanche il sistema
VRASC riesce a garantire i vincoli di progetto: si riscontrano sovraelongazione marcata (40%) e
tempi di assestamento superiori ai 10 sec. Situazione che non varia molto se si cambia il set di
modelli in esame. E' comunque rispettata la stabilità del sistema.

Per valori inferiori [0.1,0.4] il sistema dinamico continua a comportarsi sensibilmente meglio del
sistema statico per tempo di assestamento e “qualità” del percorso seguito, ma non riesce a
raggiungere il 90% del valore finale entro il limite di 1 sec.

6.8 - Le uscite per t=[0,1-0,4]sec. : in viola il sistema statico


Verificato che il sistema a commutazione garantisce prestazioni migliori di quelle di un sistema
staticamente assegnato passiamo a valutare le prestazioni del sistema Vrasc nello specifico.

49
E' stato impostato, in fase di progetto, che il controllore di default sia il controllore per il pieno
carico. Questo perché garantisce la stabilità e la reiezione dei disturbi qualunque sia l'ingresso;
provando a cambiare il controllore di default si nota che per sistemi lentamente variabili (intervalli
di commutazione >= 1 sec.) il controllore che garantisce prestazioni migliori è quello per il sistema
scarico. Infatti vengono centrati i limiti di progetto ma solo nella condizione di partenza a massimo
carico, nelle altre condizioni parte come un sistema del primo ordine, non centrando il vincolo del
tempo di salita. Risulta comunque stabilizzabile fino ad un intervallo di commutazione di 0.8 sec.

Oltre che questi test si sono eseguiti altri test, di robustezza, modificando il valore del riferimento
una volta che il sistema aveva raggiunto il valore di regime. Si è visto come nonostante si
introducano (Fig.6.9) modifiche nell'ordine del 40-60% il sistema riesca, in un tempo di 1,5 sec. a
ritornare correttamente al valore di riferimento, soddisfacendo quindi anche le specifiche di
progetto.
Se andiamo a confrontare le prestazioni del sistema Vrasc e di quello statico le curve differiscono
maggiormente, come atteso, al diminuire del tempo tra le modifiche. La Fig.6.10 mostra la
differenza per un intervallo di 1 sec.

6.9 - L'uscita a seguito di modifiche del valore di regime

50
6.10 - Le uscite per t=1sec. : in viola il sistema statico

Se si effettua un confronto tra il sistema commutato ed un sistema in cui sia fissato il controllore a
pieno carico si può notare come le risposte siano coincidenti per sistemi lentamente variabili ed
addirittura il sistema statico sia migliore per sistemi variabili con tempi minori di un secondo. Ma se
si cambia il set di commutazioni e si usano in partenza modelli scarichi o a medio carico il sistema
statico non riesce a raggiungere il tempo di assestamento desiderato.
Dopo aver testato il modello Matlab\Simulink definito nello spazio degli stati abbiamo provato a
sintetizzare lo stesso modello con la logica dello stato condiviso. Abbiamo quindi un solo
controllore che, a seconda dei parametri di ingresso, assume i parametri relativi al sistema da
modellizzare.
In questo caso si è rappresentato lo stato condiviso come un blocco Embedded Matlab per la scelta
del modello cinematico ed un altro blocco simile per la scelta del controllore.
I blocchi contengono un codice Matlab che calcola l'uscita e l'aggiornamento dello stato, codice che
è incluso e commentato nell'Appendice 3.
Una soluzione che integri il tutto nello stesso blocco Embedded Matlab è stata scartata, sebbene sia
stata oggetto di test, perché si è ritenuto più realistico avere due blocchi distinti, con le loro
incertezze ed i loro errori di computazione, che un unico codice Matlab che idealizzi un intero
processo fisico.

Il primo problema rilevato riguarda l'impossibilità del Simulink di risolvere il modello così come

51
sopra descritto. Infatti al primo passo in cui viene eseguito il codice Matlab viene rilevato un errore:
il risolutore non è in grado di determinare il valore della retroazione in ingresso perché tale valore
dipende dall'uscita che si appresta a calcolare. Si arriverebbe quindi ad un assurdo computazionale.
A tale errore si può ovviare inserendo un blocco di ritardo nella retroazione, soluzione che, però,
porta il sistema a reagire con un passo di campionamento di ritardo rispetto all'ingresso.
Tale blocco di ritardo deve essere inserito, per le medesime motivazioni, anche sul collegamento
che porta l'uscita del controllore al supervisore.
Questo porta il sistema a reagire con un ritardo di due tempi di campionamento sulle variazioni
dell'uscita del modello cinematico. Cioè, nel caso in esame, un tempo di 0.1 sec.

Si è proceduto a testare, per completezza, soluzioni ibride che utilizzano il blocco del modello
cinematico a stato condiviso e i controllori definiti nello spazio degli stati, per testare le prestazioni
dei due diversi sistemi. La risposta, sebbene stabile e con prestazioni non troppo distanti dai
requisiti di progetto, risente molto degli errori di arrotondamento della funzione di aggiornamento
dello stato.
Da queste considerazioni ritengo che lo stato condiviso sia un tipo di implementazione che non
porta vantaggi tangibili: si ha un blocco che deve eseguire operazioni complesse come il calcolo
dell'inversa e con una eccessiva sensibilità agli errori, inoltre nella fase di implementazione
hardware richiede un blocco programmabile.

52
Conclusioni

In questa tesi è stato affrontato il problema del controllo di un sistema di trasmissione flessibile in
presenza di variazioni di carico. L'approccio risolutivo proposto si è basato sul paradigma del
controllo adattativo a commutazione. Sono stati quindi progettati tre controllori, ciascuno dei quali
adattato ad una particolare situazione di carico.
Si è visto come un modello di un processo fisico possa evolvere verso stati che porterebbero le
componenti meccaniche in condizioni non ottimali o a subire danneggiamenti e che, pertanto, si
debba ricorrere ad un meccanismo di controllo che piloti i cinematismi.
La fase successiva è stata definire un blocco supervisore che permettesse di scegliere
dinamicamente, in funzione dei valori dei riferimenti virtuali, il controllore più adatto a raggiungere
l'obbiettivo prefissato . Poi si è proceduto a eseguire valutazioni prestazionali.
L'esperienza ha dimostrato come la tecnica del riferimento virtuale consenta di trovare un
controllore stabile che garantisce, al contempo, prestazioni decisamente migliori rispetto a quelle
ottenibili con i controllori definiti staticamente: il sistema risponde con maggior velocità ad un
riferimento a gradino, ha una sovraelongazione minore e reagisce più velocemente e più
efficacemente ai cambiamenti di modello ed ai disturbi. Non si riscontrano differenze per sistemi
che non variano o che variano lentamente, mentre per sistemi variabili rapidamente si nota un netto
miglioramento in ogni analisi, sia nelle prestazioni che nella reiezione dei disturbi.
Questo ci porta a consigliare senza riserve l'implementazione di una logica adattativa ad ogni
processo fisico che lo necessiti. Infatti il costo computazionale necessario a determinare il modello
del sistema e a sintetizzare successivamente i parametri dei controllori è modesto e, in fase di
implementazione hardware, si può utilizzare componentistica standard reperibile sul mercato
adattabile con un minimo sforzo.
Sviluppi futuri potrebbero essere l'implementazione di una o più logiche fuzzy in vece di una logica
basata sul costo all'interno del supervisore, questo per garantire comportamenti maggiormente
diversificati. Ad esempio si potrebbero garantire tempi differenti a seconda del cambiamento di
modello in atto per migliorare l'efficienza energetica del processo o per limitarne l'usura .
Successivamente si potrebbe pensare di superare la limitazione di controllori determinati a priori
per avere controllori in autosintonia (ovvero che variano in linea adattandosi alle variazioni del
processo da controllare), anche se ciò necessita di una potenza di calcolo notevole.

53
Appendice 1: L'isteresi
L'isteresi è la caratteristica di un sistema di reagire in ritardo alle sollecitazioni applicate e in
dipendenza dello stato precedente.

Se la risposta di un sistema con isteresi viene rappresentata in un grafico in funzione dello stimolo,
si ottiene una caratteristica curva chiusa.

L'isteresi [4]

In un sistema privo di isteresi la curva costituisce una linea singola. In presenza di isteresi si ottiene
invece uno sdoppiamento della curva: se percorsa da sinistra a destra si ha un cammino, se percorsa
in senso inverso se ne ottiene un altro. In molti dei fenomeni fisici in cui si ha tale caratteristica si
ottengono due tratti orizzontali: uno superiore ed uno inferiore. Questi rappresentano i limiti di
saturazione. Per un sistema in esame, al variare di alcune condizioni, si può avere una famiglia di
curve, spazianti dalla quasi singola ad un'area racchiusa pressoché quadrata. L'ampiezza della curva
chiusa è indice dell'entità dell'isteresi. Le famiglie di curve possono essere disposte nella terza
dimensione a delimitare una forma tridimensionale detta isteroide.

L'isteresi può essere sfruttata per filtrare segnali indesiderati nei sistemi di controllo, tenendo conto
della storia recente del segnale. Per esempio nei controlli termostatici un elemento riscaldatore (una
caldaia) viene acceso quando la temperatura scende sotto un valore T1 ma non viene spento fino a

che non avviene il superamento di una temperatura T2 maggiore della prima. Ciò previene

commutazioni indesiderate dovute all'imprecisione e alle deboli fluttuazioni intorno ad un unico


valore di soglia.

Nei circuiti elettronici si usa il Trigger di Shmitt (già trattato nel capitolo 2.2) che genera un’isteresi
di aspetto simile a quella generata nei materiali magnetici. Il circuito serve ad eliminare il rumore

54
presente sui segnali. Può essere realizzato mediante componenti discreti (amplificatori operazionali
o transistor) ma è presente sugli ingressi di numerosi circuiti logici delle varie famiglie (TTL,
CMOS, ecc.).

Appendice 2: Il supervisore
Il blocco “supervisore” integra un codice Embedded Matlab che sceglie il controllore
corrispondente al costo minore.
function [controller,rext] = selector(min, j1, j2, j3, r1, r2, r3)
% Questo blocco implementa il selettore che confronta tra i diversi funzionali di costo
% associati.
% Viene implementata anche una logica di isteresi.

persistent c_pre costo_pre hyster count


rext=1;
if isempty(costo_pre)
costo_pre=5;
end

if isempty(count)
count=0;
end

if isempty(c_pre)
c_pre=3;
end

hyster=0.2;
controller=c_pre;

if (min<=costo_pre && (costo_pre-min)>=hyster)


%costo_pre=min;

if min==j1
controller=1;
c_pre=controller;
rext=r1;
end;

if min==j2
controller=2;
c_pre=controller;
rext=r2;
end;

if min==j3

55
controller=3;
c_pre=controller;
rext=r3;
end
count=count+1;
else
controller=c_pre;
count=count+1;
end
end

le variabili c_pre, costo_pre, hyster sono definite con il parametro persistent che ha una funzione
molto simile al parametro static del C\C++: le variabili in questione vengono definite alla prima
iterazione della funzione selector e mantengono il loro valore in tutte le successive iterazioni. Se
andiamo ad analizzare il codice vediamo che la definizione di hyster come variabile persistente non
porta conseguenze sulla funzione dato che ha valore costante. Questa contraddizione è da mettersi
in relazione con la possibilità, prevista nel codice, ma inattivata, di avere un valore di isteresi
variabile con il costo del controllore, cioè un valore di isteresi definito come percentuale dello
scarto tra costo del controllo usato ed il valore minimo del controllo.

Appendice 3: Il modello a stato condiviso

Il blocco “supervisore” integra un codice Embedded Matlab che sceglie il controllore


corrispondente al costo minore.

function u = fcn(e, controllore)

persistent Xn;
persistent A B C D
I=eye(2);

if isempty(A)
A= ones(2,2);
B= ones(2,1);
C= ones(1,2);
D=1;
end

if isempty(Xn)
Xn=ones(2,1);

56
end

if (e~=0)
%controllore vuoto
if (controllore==1)
A=[1 0;0 0];
B=[0.2094; 0];
C=[0.3694 0];
D=0.1103;
end

%controllore medio
if (controllore==2)
A=[0.6532 0.9979;0 1];
B=[0; 0.25];
C=[0.1422 -0.1425];
D=0;
end

%controllore pieno
if (controllore==3)
A=[0.6845 1.336;0 1];
B=[0; 0.125];
C=[0.1391 -0.1041];
D=0;
end

u=C*Xn+D*e;
Xn=A*Xn+B*e;

else
u=1;
end

end

57
Questo lavoro è dedicato a:

Tutti quelli che mi hanno amato,


perché mi hanno accompagnato nel cammino.
Tutti coloro che mi hanno odiato,
perché hanno tracciato il cammino.

58
Le dediche extended edition:

Voglio ringraziare tutti coloro che leggeranno questo testo, anche poche pagine, perché mi hanno
dato fiducia in tutti questi anni, perché hanno condiviso con me anni e mesi e giorni passati sui libri
a chiedersi chi ce lo aveva fatto fare.

Voglio ringraziare Giacomo, Alberto, Filippo, Federico ed Emanuele per le interminabili nottate
passate a uccidere mostri e sconfiggere eretici, cercando di non cadere nelle fameliche nebbie e per
le serate con Raggard e Pelor. Che ogni Ts su tempra vi vada a buon fine.

Voglio ringraziare Claudio, Donato, Alessio, oltre alle persone di cui sopra, per tutte le serate
passate a sparare cazzate, per i computer fatti a pezzi, per i film visti e realizzati. Che ci sia sempre
una pizza di Gigi ovunque voi andiate.

Voglio ringraziare i miei colleghi della Fratellanza: Francesco, Gianni, Piero, Carlotta, Alex, Vanni,
Aldo, Lucia, Claudio e tutti gli altri per tutti gli ubriachi raccattati, per tutti i servizi alle 3 del
mattino, per le paste delle 5, per i servizi taxi, le sfuriate della Bestia, per quella volta che il medico
ha vomitato, per l'asmatico di Grassina, per il cappuccino pagato da Aldo.

Voglio ringraziare Bruce Dickinson, Yoko Kanno, Don Zauker, Alan Moore, George Orwell,
William Gibson, Tolkien, i ragazzi del Progetto Prometeo, gli Hammerfall, i Manowar, i Blind
Guardian, i Gemboy e i film di Carlettofx, Spike Spiegel, Jet Black e Faye Valentine e tutti gli altri.
Loro sanno perché.

Voglio ringraziare i miei genitori perché mi hanno fatto crescere e mi hanno permesso di studiare.
La vita insegna che i giudizi si fanno alla fine.

Per ultima ringrazio Carlotta, anche perché non ho parole a sufficienza per ringraziarti di tutto ciò
che rappresenti per me. Spero, nei prossimi anni, ti trovare parole e gesti che ti sappiano
ricompensare.

59
Riferimenti e bibliografia

[1] Bolzern, Scattolini, Schiavoni:. Fondamenti di Controlli Automatici (terza edizione). McGraw-
Hill,2008.
[2] Masotti Leonardo: Dispense del corso di Elettronica 2; Università di Firenze.
[3] Varie immagini reperite su Internet.
[4] Wikipedia.it
[5]Il sito internet di supporto per Matlab\Simulink:
http://www.mathworks.com/access/helpdesk/help/techdoc/matlab.shtml
[6] Tesi Alberto: Dispense del corso Controlli Automatici; Università di Firenze.
[7] Niccolai Alessandro: Analisi e controllo di un processo termico; Tesi per l'Università di Firenze.
[8] Piatti Marco: Integrazione di un controllore in auto sintonia nel controllo
adattativo a commutazione; Tesi per l'Università di Firenze.
[9] E. Mosca: Optimal, Predictive and Adaptive control; Prentice Hall, 1995.
[10] Joao P. Hespanha, Daniel Liberzon, A. Stephen Morse: Overcoming the limitations of
adaptive control by means of logic-based switching; Elsevier Science 2003.
[11] I.D. Landau, D. Rey, A. Karini, A.Voda, A. Franco: A flexible transmission system a
benchmark for Robust digital control; European Journal of Control, 1995.
[12] Doyle, Francis, Tannenbaum: Feedback Control Theory; Maxwell McMillan, 1992.
[13] Goodwin, Graebe, Salgado: Control System Design; Prentice-Hall, 2001.
[14] Isidori. Sistemi di Controllo: seconda edizione, Vol. I. Siderea, Roma, 1993.
[15] M.C. Campi , A. Lecchini, S.M. Savaresi: An application of the Virtual Reference Feedback
Tuning (VRFT) method to a benchmark active suspension system; IEEE Transactions on
Automatic Control, 2006.

60

You might also like