Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Controllo Adattativo A Commutazione Di Un Sistema Meccanico
Controllo Adattativo A Commutazione Di Un Sistema Meccanico
Facoltà di Ingegneria
A.A. : 2007/2008
Tesi di Laurea
Cont roll o adat t at i vo a c om m ut az i one di un
si st em a m e cc ani c o
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
di
V app t = L R i 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 Kb V app t
= - i t - t
dt L L L
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).
1.2 I modelli cinematici
I tre modelli che caratterizzano il sistema sono descritti dalle seguenti funzioni di trasferimento:
Modello scarico:
−2 −1 −2
z ⋅0.28261z 0.50666z
P 1 z = −1 −2 −3 −4
1−1.41833z 1.58939z −1.31608z 0.88642z
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.
Stabilità del sistema: condizione imprescindibile per l'utilizzo fisico del sistema.
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:
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.
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.
Si
L s
W s=
1 L s
B s A s
L s = G s =
A s A sB 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 avere
A s B s 0
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à
U =u max se V in V s
U =u min se V in V s
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
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]
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:
C s=k p
con k p costante.
Y0
e reg =lim s->0
〚 1C s⋅P s 〛
con P(s) funzione di trasferimento del processo.
Se sostituiamo C(s) con k p otteniamo
Y0
e reg =lim s->0
〚 1k 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).
k 1
C s=k p i =k p 1
s sTi
con k i costante integrale.
Funzione principale del blocco integrale è quella di annullare l'errore a regime al gradino.
Infatti:
s⋅Y 0
e reg =lim s->0
〚 〛
1 k p⋅sk i⋅P s
=0
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.
Ha funzione di trasferimento:
k 1 k 1
s
C s=k p i k d⋅s=k p⋅ 1
kp
s
ki
s d =k p⋅ 1
kp
s⋅Ti
s⋅Td
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.
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.
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
\ 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 k r e T m e applicando le relazioni
k pl= 2k r k p0 e T l = 4T m . 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.
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:
G a s= e− s (3.1)
1Ts
in cui il parametro è detto ritardo equivalente, mentre T definita costante di tempo equivalente.
Per determinare il modello di cui sopra, vi sono due metodi approssimati che si basano sulla risposta
al gradino u 0 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 yo 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.
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
∞ −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:
\ Kp Ti Td
P T /
PI 0.9T / 3
Ps
è una copia del processo P s che si suppone asintoticamente stabile.
Si calcola l'errore e del sistema in Fig. 3.4, si ha
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
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]
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
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
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.
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.
4.6 - Risposta del sistema scarico col secondo PID
4.7 – Luogo delle radici e diagramma di Bode per il sistema a medio carico con il
secondo controllore PID
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
4.9 - Luogo delle radici e diagramma di Bode per il sistema a pieno carico
con il primo controllore PID
che
4.8 - Risposta del sistema a pieno carico con il primo controllore PID
garantisce 4.98 dB di margine di guadagno e 47.5° di margine di fase.
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.
4.1
0 - Luogo delle radici e diagramma di Bode per il sistema a pieno
carico con il secondo controllore PID
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
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%.
Infine
4.14 – Controllore del sistema a medio carico con modello a pieno carico
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.
4.15 – Controllore del sistema a pieno carico con modello scarico
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).
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 = Put
{ }
u t=C t y− r t (1)
dove t ∈ N :={1,2 ,... , N } .
Quindi si usa per l'accoppiata P ∈ e C t la notazione (P/ C t ).
Come anticipato, associamo a ciascun controllore Ci 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 Ci . 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:
isteresi.
uscita (u,y) del sistema reale retroazionato con il controllore tempo-variante C t (si veda la figura
5.2).
Per quanto riguarda il calcolo del riferimento virtuale vi , supponendo che la funzione di
trasferimento del controllore Ci sia
−1 S i z−1
C i z =
Ri z −1
vi può essere calcolato come
−1 Ri z−1
v i t=C u t y t=
i ut y t
S i z −1
t
∑ ∥y k −v i k ∥2∥u k ∥2
J i t= k =0 t
∑ ∥v i k ∥2c 2
k=0
che consente di valutare la bontà di Ci sulla base delle prestazioni dell'anello virtuale rappresentato
in figura 5.2.
Si noti che affinché vi sia ben definito il polinomio S i z deve essere stabile, ovvero il
−1
w i t = S i z −1 v i t = R i z − 1 u t S i z − 1 y t
Il calcolo di wi può sempre essere eseguito in quanto non richiede nessuna inversione.
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.
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
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.
La
6.4 – Andamento del segnale di commutazione e dell'uscita quando si applica il metodo del
costo del controllo
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.
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.
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.
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.
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
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.
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.
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
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
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.
if isempty(count)
count=0;
end
if isempty(c_pre)
c_pre=3;
end
hyster=0.2;
controller=c_pre;
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
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.
Il blocco “supervisore” integra un codice Embedded Matlab che sceglie il controllore corrispondente
al costo minore.
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);
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
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.