I L CONTROLLORE
Affinché al carico venga fornita una tensione dal valore efficace pari a 13.5 V è necessario determinare la durata degli intervalli di conduzione durante i quali chiudere gli interruttori e far ricevere al carico la tensione erogata dal motore secondo un opportuno angolo di circolazione. L’apertura e la chiusura degli interruttori è regolata da una successione di impulsi cosiddetti di On e di Off, che agiscono sui power switch i quali, a loro volta, determinano l’accensione e lo spegnimento dei MOSFET; la determinazione della temporizzazione di questi impulsi è affidata ad un controllore derivante dalla tipologia dei controllori PID (Proporzionale Integrativo Derivativo), ma che viene adattato alle potenzialità offerte dall’utilizzo del microcontrollore. Dopo un breve accenno alla teoria del controllo PID e di alcune delle sue configurazioni, sarà presentato lo studio e l’ottimizzazione del controllore implementato nella realizzazione del progetto.
Riferimenti bibliografici: [14], [15], [16], [19].
I NTRODUZIONE AL CONTROLLO PID
I regolatori lineari più usati in ambito industriale sono certamente i PID, o regolatori ad azione Proporzionale, Integrale, Derivativa. Le ragioni del loro successo sono varie:
- prima di tutto il loro impiego consente di controllare in modo soddisfacente un’ampia gamma di processi;
- in secondo luogo, negli anni sono state sviluppate e largamente utilizzate
semplici regole per la loro taratura automatica, applicabili con buoni risultati
sistema sotto controllo;
- inoltre, per la loro semplicità, i PID possono essere realizzati con le tecnologie più varie: meccaniche, pneumatiche, idrauliche, elettroniche analogiche e digitali. Questo implica una grande disponibilità commerciale, che permette la realizzazione, anche con costi contenuti, di schemi di controllo complessi.
Figura 5.1 – Configurazione classica di un regolatore PID.
La figura 5.1, sostituendo il blocco del regolatore PID con un blocco rappresentante un generico controllore, descrive lo schema di principio di un generico sistema controllato: l’uscita del processo y viene confrontato con un valore di riferimento r, l’errore e derivante da questo confronto viene inviato il controllore che, dopo le opportune elaborazioni, modifica la propria uscita u per portare il processo al livello desiderato.
Tradizionalmente la struttura dei PID viene introdotta in base a considerazioni empiriche secondo le quali è opportuno che la variabile di controllo u sia generata come la somma di tre contributi.
L’andamento nel tempo della variabile di controllo u(t) è:
(5.1)
0
1 ( )
( )
p( )
t( )
di
u t K e t e d T de t
T dt
dove, indicato con y l’uscita misurata del processo, e r la variabile di riferimento, e = r-y è il segnale di errore. Il regolatore PID è caratterizzato dalla costante K
p, detta coefficiente dell’azione proporzionale, e da T
de T
dche sono rispettivamente la costante di tempo dell’azione derivativa e la costante di tempo dell’azione integrale (o tempo di reset), misurate in secondi.
Il primo termine della (5.1) è la parte proporzionale, così detta perché il suo effetto è proporzionale all’errore e tra il segnale di riferimento r e la variabile controllata y. Il secondo è la parte integrativa perché produce in uscita una correzione che rappresenta l’integrale dell’errore nel tempo, ed è richiesto per imporre che l’errore si annulli asintoticamente a fronte di segnali di riferimento o disturbi costanti. Infine abbiamo la parte derivativa, così detta perché fornisce un contributo alla correzione che è funzione della derivata prima di e, ed ha lo scopo di tentare di
“anticipare” l’andamento dell’errore negli istanti futuri e di limitare le sovraelongazioni causate dalla componente integrativa.
Nella figura 5.2 vengono mostrati gli effetti di ogni singola componente del regolatore in un sistema ad anello chiuso. Nell’immagine in alto a sinistra si può vedere l’effetto che si ha sull’uscita di un sistema sollecitato con un gradino di ampiezza unitaria al variare dell’entità del fattore di controllo proporzionale: il sistema non arriva mai al valore di regime (indicato dalla linea tratteggiata), anche se all’aumentare di K
psi avvicina sempre più ad esso; si nota inoltre come di pari passo all’incremento del controllo proporzionale, cresce l’ampiezza delle sovraelongazioni.
Nella figura di destra è invece rappresentato l’andamento dell’uscita dello stesso
sistema sottoposto ad una regolazione di tipo proporzionale ed integrativo: si vede
subito come il processo riesce a raggiungere il valore di regime per qualsiasi valore
della componente integrativa. Come si vede in figura 5.1, il contributo della parte
integrativa del regolatore è inversamente proporzionale a T
i, per cui una piccola
costante di tempo dell’azione integrale vuol dire un grosso contributo di questa
componente alla regolazione: il sistema si avvicina sempre più velocemente al valore
possibile confrontare l’uscita del sistema sottoposto all’azione proporzionale e derivativa con quella dello stesso sistema controllato solo dalla componente lineare:
il processo non arriva mai al valore di regime, ma vengono annullati completamente gli overshoot.
Figura 5.2 – Risposta ad un gradino di ampiezza unitaria (curva tratteggiata): effetti delle varie componenti del controllore PID sull’uscita. Gli andamenti sono stati ricavati per diversi valori dei parametri di controllo.
Componente Tempo di salita Sovraelongazioni Transitorio Errore a regime Proporzionale (Kp) Diminuisce Aumentano Non influisce Diminuisce Integrativa (1/Ti) Diminuisce Aumentano Aumenta Eliminato Derivativa (Td) Non influisce Diminuiscono Diminuisce Non influisce
Tabella 5.1 – Quadro sinottico degli effetti, sull’uscita del processo, delle componenti del regolatore, all’aumentare del contributo di ogni singolo fattore.
Nel dominio di Laplace, l’espressione del regolatore PID analogico ideale diventa:
(5.2) 1
( )
p1
d( )
i
U s K sT E s
T s
.
Tale funzione, a causa della presenza del termine derivativo, ha un numero di poli minore di quello degli zeri: è impropria e non è fisicamente realizzabile. Il termine derivativo, tra l’altro, causa un’amplificazione dei rumori di misura; la sua azione è necessaria fino ad una certa frequenza, oltre la quale è conveniente che vi sia attenuazione per filtrare il rumore fuori dalla banda di regolazione. Per queste ragioni, il termine derivativo è implementato come
(5.3)
1
p d
p d
d
K s T K s T
s T N
,
con valori tipici di N da 5 a 20 per posizionare il polo all’esterno della banda di interesse. L’approssimazione (5.3) può essere interpretata come il termine derivativo ideale sT
dfiltrato da un sistema del primo ordine con costante di tempo T
d/N. In pratica, tale approssimazione si comporta come una derivata per segnali a bassa frequenza. Il guadagno ad alta frequenza risulta essere limitato al valore N·K
d. La struttura del regolatore PID reale è quindi data da:
(5.4) 1
( ) 1 ( )
1
p d
p
i d
K s T
U s K E s
T s s T
N
.
C ONFIGURAZIONI ALTERNATIVE
Oltre alla configurazione classica del regolatore PID che prevede di considerare le tre azioni, proporzionali, integrale e derivativa, agenti direttamente sulla variabile d’errore, come mostrato in figura 5.1, si possono realizzare altre configurazioni dei PID, volte a migliorare le prestazioni del sistema di controllo.
Un inconveniente della realizzazione classica, è quello che la derivazione è effettuata direttamente sull’errore e; in questo caso, in presenza di uno scalino del segnale di riferimento r, l’uscita del derivatore, e di conseguenza la variabile di controllo u, hanno un andamento di tipo impulsivo. Questa brusca variazione può provocare la saturazione dell’attuatore e l’allontanamento del sistema dalla zona di linearità, con riferimento alla quale normalmente si progetta il regolatore. Per queste ragioni frequentemente l’azione derivativa è esercitata sulla sola variabile d’uscita y, come mostrato in figura 5.3.
Figura 5.3 – Configurazione alternativa (PI-D) del controllore PID.
Poiché y è l’uscita di un sistema che usualmente ha le caratteristiche di un
filtro passa basso, le sue variazioni istantanee (e quindi la sua derivata) sono in
genere contenute e la presenza dell’azione derivativa non provoca l’andamento
impulsivo di u. Un’ultima configurazione possibile dei regolatori PID prevede lo
spostamento anche dell’azione proporzionale sulla variabile controllata y; anche in
questo caso l’obiettivo è quello di rendere meno brusche le variazioni della variabile di controllo a fronte di sollecitazioni dovute a rapide variazioni del segnale di riferimento.
T UNING DEI PARAMETRI
La sintesi dei regolatori PID consiste nella scelta della configurazione del regolatore più adatta all’applicazione, e nella scelta dei parametri K
p, T
ie T
d. Questa operazione è indicata come tuning. Tra i metodi di taratura più diffusi sono due quelli più usati ed entrambi si basano su constatazioni empiriche:
- Metodo della risposta a gradino;
- Metodo della risposta in frequenza.
Metodo della risposta a gradino
Questo metodo è conosciuto anche come Metodo di Cohen Coon ed è basato sull’idea di descrivere il processo da sottoporre a controllo con un modello del tipo:
(5.5)
01 A e
sT s
.Essenzialmente il modello comprende un guadagno statico pari ad A
0, un
tempo di ritardo , ed una costante tempo T. Questi parametri possono essere
stimati sperimentalmente applicando in entrata al processo (sconnesso dalla catena di
controllo) un segnale a gradino di ampiezza unitaria e misurando la risposta
temporale del processo. I parametri che caratterizzano la funzione di trasferimento
del processo vengono determinati da un fit dei dati sperimentali ottenuto
approssimando il transitorio misurato in uscita dal processo con la retta tangente nel
punto di flesso. La procedura è illustrata in figura 5.4.
Figura 5.4 – Risposta al gradino del sistema controllato: al processo, operando ad anello aperto, viene mandato in entrata un segnale a gradino di ampiezza unitaria. I dati sperimentali (curva continua) sono approssimati nella zona del flesso con la linea tangente (curva tratteggiata). L’intercetta di tale curva con l’asse di tempi fornisce la stima del ritardo
, mentre la costante tempo T viene fornita dal tempo di salita della curva. Il guadagno in continua A è uguale al valore asintotico (il segnale di ingresso ha ampiezza unitaria).
Una volta noti A
0, e T è possibile calcolare i valori che ottimizzano la resa del controllore, trovando il miglior compromesso tra stabilità e velocità di risposta.
Le relazioni che forniscono i valori dei parametri del controllore in funzione dei dati ottenuti sperimentalmente sono riportate nella tabella sottostante.
P PI PD PID
K
p0
1 R / 3 A R
00.9 R / 12 A R
01.25 R / 6 A R
01.33 R / 4 A R
1/T
i30 3
9 20 R
R
32 6 13 8
R
R
T
d6 2
22 3 R
R
4 11 2R
Tabella 5.2 – Quadro riassuntivo per il dimensionamento del controllore PID attraverso il metodo di Cohen Coon. La quantità R è uguale a /T.
Il metodo appena descritto funziona solo per sistemi stabili ad anello aperto, i quali siano ragionevolmente descritti dal modello semplificato presentato in figura 5.4. Per sistemi più complicati, inclusi quelli che non sono stabili ad anello aperto, si deve ricorrere ad altri metodi.
Metodo di Ziegler e Nichols in frequenza
Il sistema reazionato è stabile ad anello chiuso solo se il guadagno in continua ad anello aperto è mantenuto ad un certo livello (che dipenderà dal sistema);
aumentando il guadagno il sistema diventa instabile. Tra la zona di stabilità (poli della funzione di trasferimento ad anello chiuso con componente reale negativa) e la zona di instabilità (poli con componente reale positiva) esiste un limite (poli con componente reale nulla) in cui il sistema non diverge, ma oscilla con ampiezza di oscillazione costante. Quindi, se aumentando il guadagno in continua si arriva ad una situazione di oscillazione stabile, si può assumere che un valore di guadagno nettamente inferiore a tale limite possa corrispondere ad una condizione di lavoro ragionevole. La procedura da seguire per l’ottimizzazione del controllore è la seguente:
annullare, o quantomeno ridurre al minimo livello possibile, le azioni di integrazione e derivata facendo lavorare il controllore in modo puramente proporzionale;
operando ad anello chiuso, aumentare progressivamente (e prudentemente) il valore di K
pfino a che si osserva che l’uscita y(t) oscilla in modo permanente (limite di stabilità). Indichiare con K
0il valore limite di K
pe con T
0il periodo di oscillazione misurato quando K
p= K
0. Se il sistema non entra mai in oscillazione, il metodo non è applicabile;
a seconda della configurazione del controllore, applicare i parametri riportati
nella tabella seguente.
P PI PD PID Kp 0.5 K0
0.45 K
00.5 K
00.6 K
0TI
– 0.83 T
0– 0.5 T
0TD
– – 0.2 T
00.125 T
0Tabella 5.3 – Quadro sinottico per il tuning del controllore PID attraverso il metodo di Ziegler e Nichols.
I L CONTROLLORE IMPLEMENTATO
I metodi di tuning appena descritti sono applicabili solo a processi lineari e stazionari; non sono, quindi, adeguati ad ottimizzare il regolatore serie in esame: il valore efficace della tensione da regolare non varia linearmente con il tempo di conduzione, che il controllore stesso si propone di determinare. Inoltre, come si vedrà di seguito, un dimensionamento ottimo del controllore per questa applicazione automotive deve tener presente più di un fattore di merito, come ad esempio la frequenza della tensione prodotta dal generatore ed il valore della resistenza dell’utilizzatore.
Nella realizzazione del progetto digitale, poiché il controllo viene effettuato via software, è possibile variare i parametri del controllore adattandoli continuamente all’evoluzione del processo. In base a queste considerazioni si è scelta una configurazione del controllore molto semplice e veloce, come nella (5.6) dove U(n) e U(n+1) rappresentano il valore della dell’uscita del controllore in due consecutivi cicli di regolazione, E(n) è l’errore di regolazione commesso nel precedente ciclo e K*
pè il fattore di controllo proporzionale.
(5.6) U n ( 1) U n ( ) K *
p E n ( )
Una tale configurazione del controllore è di tipo puramente integrativa ed è quindi in grado di auto-sostenersi anche in caso di errore nullo, lasciando invariata la propria uscita tra un ciclo di regolazione ed il successivo, qualora si sia raggiunta una regolazione ottima.
Il punto di forza di questo controllo sta proprio nel fattore di regolazione K*
p, che, ricevendo informazioni sui parametri istantanei del sistema, viene modificato dall’algoritmo di controllo per massimizzare la velocità di conversione. Data la non linearità del processo da controllore in questo progetto, che già di per sé non permette di utilizzare i classici metodi di tuning, e considerando che lo stesso processo prevede, non solo la variazione di frequenza e valore di picco della tensione d’alimentazione, ma anche un cambiamento, tutt’altro che prevedibile e modellizzabile, dello stesso carico, si è ritenuto indispensabile realizzare un controllo che sia in grado di tener conto, ad ogni ciclo di regolazione, di tutti questi fattori circuitali. Con l’aiuto di Matlab è stato modellizzato il sistema motore-regolatore- carico e sono state avviate numerose simulazioni che hanno permesso di ricavare notevoli informazioni sull’evoluzione del ciclo regolativo.
Queste simulazioni hanno evidenziato che per il dimensionamento ottimo del fattore K*
pbisogna tener presente non solo la frequenza di rotazione del motore, ma anche l’entità del carico. Nelle seguenti figure è riportato l’andamento del K*
pottimale in funzione della frequenza e del periodo di V
mo.
Figura 5.5 – Andamento di K*p in funzione della frequenza di Vg. In blu è possibile vedere la curva che meglio ne approssima l’andamento, che ha una forma del tipo 1/x2.
Figura 5.6 – Andamento del fattore di controllo in funzione del periodo di Vmo; in celeste è possibile vedere la quadratica che meglio di ogni altra curva ne approssima l’andamento.
Dalle figure appena proposte, si evince chiaramente che un algoritmo che modifica K*
pin base alla frequenza di V
grisulta molto più dispendioso, in termini computazionali, di una routine che invece tiene conto del periodo; inoltre, per quanto detto in precedenza, il timer misura la durata del periodo della tensione prodotta dal generatore, e quindi un algoritmo che si basa sulla frequenza richiederebbe un’ulteriore elaborazione.
Per la definizione del K*
pottimo si è scelto quel valore del coefficiente che, partendo dalla situazione di riposo, portasse il sistema il più possibile vicino al regime dopo 2 solo cicli di regolazione. Con situazione di riposo s’intende quella che si ha all’accensione del regolatore; come vedremo nel prossimo capitolo, il firmware, in fase di setup, imposta il primo intervallo di conduzione sul valore T
guardiadi 100 cicli di clock, ovvero 6,25 µs. In figura 5.7 è possibile vedere l’andamento della regolazione, per diversi valori della frequenza, in funzione del numero di cicli di regolazione effettutati.
Figura 5.7 – Andamento di Vload-RMS in funzione del numero di cicli di regolazione effettutati, per diverse frequenze di Vmo. Rosso: 2 KHk; blu: 2,7 KHz. Lo 0 sull’asse delle ascisse sta ad indicare l’inizio del processo di regolazione: si ha conduzione per un intervallo di tempo di circa 6 µs ed il valore della tensione efficace sul carico è modesto; dopo il primo ciclo (1), sul carico c’è una tensione maggiore, che arriva al valore desiderato, V*RMS, al ciclo successivo. Dopo appena due cicli di regolazione il sistema è già a regime: le oscillazioni intorno al valore di riferimento sono minime e dovute alla natura discreta del sistema di controllo.
2 KHz
2,7 KHz
L’analisi dei risultati derivanti da queste simulazioni ha portato alla formulazione in termini matematici della relazione che lega K*
pa T, durata del semiperiodo di V
mo, descritta dalla (5.6).
(5.6) K *
p 1.3266 10
6T
2 326.66 T 0.012855 .
Queste simulazioni sono state effettuate con una R
loadpari a 50 ;
successivamente ne sono state eseguite delle altre, cambiando l’entità del carico. In figura 5.8 è possibile vedere come, per una data frequenza, K*
pè modellato dalla resistenza dell’utilizzatore.
Figura 5.8 – Andamento di K*p, in base all’entità di Rload, per una frequenza di Vg pari a 1,5 KHz.
Come annunciato nel capitolo IV, per far ricavare al microcontrollore
informazioni sulla R
load, si è cercata una relazione tra l’intervallo di conduzione
necessario, per una data frequenza, per avere sul carico V* , e la resistenza del
carico stesso. Come si può vedere in figura 5.9 una tale relazione esiste ed ha un andamento simile per tutti i valori di frequenza possibili; si è potuto determinarla quantitativamente grazie alla conoscenza dei dati di targa del generatore: senza conoscere il valore di R
ge di L
g, sarebbe stato impensabile raggiungere un tale risultato.
Figura 5.9 – Relazione che lega la resistenza del carico all’intervallo di conduzione necessario ad avere Vload-RMS = 13,5 V. La curva in rosso si riferisce ad una frequenza di Vg
pari a 3 KHz, mentre quella in blu a 2,5 KHz. Sull’asse X sono riportati i valori degli intervalli di conduzione espressi in numero dei cicli del timer (con una frequenza di clock di 16 MHz). Si è tenuto conto delle caratteristiche del microcontrollore per dimensionare correttamente i risultati delle simulazioni.
Il fitting di questa curva ha dato come risultato una somma di esponenziali, che avrebbe richiesto un eccessivo tempo di elaborazione; si è quindi cercato una modo per rendere più veloce questo calcolo.
In base alla durata del semiperiodo di V
mo, il minor intervallo di conduzione che permette di avere sul carico V*
RMSsi ha quando R
loadè pari a 100 ; indicando con T
100on(T), dove T è appunto la durata del semiperiodo di V
mo, è possibile determinare il valore di R
loadin funzione della differenza () dell’intervallo di conduzione attuale e T
100on(T): quando questa è nulla il carico è di 100 , quanto più
2,5 KHz
3 KHz
dalla 5.7 nella quale a, b, c e d sono i parametri devianti dal fitting della figura 5.9.
(5.7) R
load 100 a exp b c exp c .
Poiché le curve di figura 5.5 e 5.9 hanno qualitativamente lo stesso andamento, si è pensato che invertendo l’ultima relazione si potesse ottenere anche in questo caso una equazione di secondo grado per descrivere l’andamento di R
load. La seguente figura riporta, in funzione di , l’andamento inverso di figura 5.9, per diverse frequenze del generatore.
Figura 5.10 – Andamento inverso della figura 5.9. Sulle ascisse compare
espresso in
numero di cicli del timer, mentre i valori presenti sulle ordinate tengono presente una
R
loadche può variare tra 2 e100 .
La relazione che lega la resistenza del carico all’intervallo di conduzione ha bisogno di un fitting parametrico che tenga conto anche della frequenza di lavoro.
Per semplicità di trattazione in questo elaborato si prescinderà dalla dipendenza dalla frequenza, cosa che non verrà fatta nelle successive implementazioni del regolatore.
Da una media dei fitting ottenuti dalla figura 5.10, si è determinato il fattore di proporzionalità inversa
R , descritto dalla (5.8), un’equazione di secondo grado, che permette di determinare l’entità del carico secondo la (5.9).
(5.8)
R 2.217 10
6
25.883 10
3 0.763 .
(5.9)
100
load R
R
.
In figura 5.11 è riportato l’andamento di T
100on(T) del quale la (5.10) ne
riporta l’espressione matematica.
Figura 5.11 – Relazione tra l’intervallo di conduzione necessario per alimentare correttamente un carico di 100 e la durata di un semiperiodo di Vmo. Entrambe gli assi si riferiscono al numero di cicli di un clock a 16 MHz. In rosso il risultato del fitting.
(5.10) T
on100 T 4.338 10
5 T
2 0.1493 T 829.1
Con la conoscenza di T
100on(T), è possibile determinare l’entità di , dalla differenza tra l’intervallo di conduzione stimato dal controllo nell’attuale ciclo di regolazione e l’intervallo di conduzione minimo calcolato, e si può quindi risalire all’entità del carico.
A questo punto si può quindi passare alla determinazione della relazione che
lega K*
pa R
load, secondo la (5.11), dove con K
100(T) si è indicato il valore del fattore
di controllo per un carico di 100 al variare del semiperiodo di V
moe con
K(R) il
suo fattore di correzione in base alla resistenza dell’utilizzatore.
(5.11)
* 100
P
K
K T K R .
Figura 5.12 – Relazione tra K100 ed il semiperiodo di Vmo, espresso in numero di cicli di un clock a 16 MHz. In rosso il risultato del fitting.
Dal fitting eseguito in figura 5.12 si ricava la seguente espressione:
(5.12) K
100 2.133 10
8 T
2 2.43 10
5 10.44 10
3.
Per la determinazione della legge di
K(R), si è invece determinato
l’andamento di questo fattore per tutte le possibili frequenze ed eseguito un fitting su
ognuno di questi contributi. Successivamente è stata effettuata una media di tutti
risultati ottenuti e si è giunti alla formulazione della (5.13).
(5.13)
K R 7.157 10
5 R
2 12.6 10
3 R 0.445
In figura 5.13 sono riportate alcune delle curve elaborate per la determinazione della precedente relazione. Anche per
K(R), come per
R(T), per semplicità di trattamento, non è stato eseguito il fitting parametrico.
Figura 5.13 – Andamento di