- Quando l`ingegneria incontra la pratica

annuncio pubblicitario
Università degli Studi di Firenze
Facoltà di Ingegneria
Corso di Laurea in Ingegneria dell'Automazione
Relazione:
Progetto di un convertitore buck-boost PWM con
controllo digitale per LED di potenza
Studenti:
Sabrina Martorana, Elia Mazzuoli, Marco Montagni,
Salvo Vincenzo.
Anno Accademico 2012/2013
Indice
Introduzione
vi
1 Convertitore buck-boost PWM DC-DC
1
1.1
Analisi in DC di un convertitore buck-boost PWM . . . . . . . .
1
1.1.1
Descrizione del circuito
1
1.1.2
Funzionamento CCM
1.1.3
Funzione di trasferimento DC in modalità CCM
1.1.4
Condizioni limite per la modalità CCM
1.1.5
Limite CCM/DCM . . . . . . . . . . . . . . . . . . . . . .
7
1.1.6
Convertitori di potenza DC-DC PWM . . . . . . . . . . .
7
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
1
. . . . .
5
. . . . . . . . . .
6
2 Dimensionamento dei componenti
10
2.1
Alimentazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2
Il carico
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
11
2.3
Calcolo dei parametri fondamentali . . . . . . . . . . . . . . . . .
11
2.3.1
Dimensionamento dell'induttore
. . . . . . . . . . . . . .
13
2.3.2
Scelta dei dispositivi a semiconduttore . . . . . . . . . . .
14
2.3.3
Dimensionamento della capacità
15
. . . . . . . . . . . . . .
2.4
Calcolo del rendimento . . . . . . . . . . . . . . . . . . . . . . . .
16
2.5
Foglio di calcolo Excel
16
. . . . . . . . . . . . . . . . . . . . . . . .
3 Modello ai piccoli segnali del buck-boost e rete di retroazione
con controllo digitale
19
3.1
Modello ai piccoli segnali del buck-boost PWM in funzionamento
CCM Open loop
. . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.2
Modello Led di potenza
. . . . . . . . . . . . . . . . . . . . . . .
24
3.3
Progetto della rete di retroazione . . . . . . . . . . . . . . . . . .
27
4 Realizzazione del circuito
4.1
4.2
35
Realizzazione dello schema elettrico . . . . . . . . . . . . . . . . .
35
4.1.1
Interfacciamento con il PC
. . . . . . . . . . . . . . . . .
35
4.1.2
Alimentazione . . . . . . . . . . . . . . . . . . . . . . . . .
38
4.1.3
Dimensionamento circuiti di prelievo . . . . . . . . . . . .
Realizzazione del layout
. . . . . . . . . . . . . . . . . . . . . . .
5 Implementazione rmware e software
5.1
Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2
Il dsPIC33FJ128MC802
5.3
Firmware
38
38
42
42
. . . . . . . . . . . . . . . . . . . . . . .
42
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
i
INDICE
ii
5.3.1
Congurazione delle periferiche . . . . . . . . . . . . . . .
45
5.3.2
Il regolatore PI . . . . . . . . . . . . . . . . . . . . . . . .
46
5.3.3
Il ramo di feedback . . . . . . . . . . . . . . . . . . . . . .
47
5.3.4
Il le Main.c
. . . . . . . . . . . . . . . . . . . . . . . . .
49
5.3.5
La comunicazione seriale . . . . . . . . . . . . . . . . . . .
50
Risultati e Conclusioni
53
5.4
Prove sperimentali e risultati
. . . . . . . . . . . . . . . . . . . .
53
5.5
Conclusioni e sviluppi futuri . . . . . . . . . . . . . . . . . . . . .
60
Bibliograa
62
Elenco delle gure
1.1
Schema circuitale di un convertitore buck-boost.
. . . . . . . . .
2
1.2
Circuito equivalente - Interruttore ON, diodo OFF. . . . . . . . .
2
1.3
Circuito equivalente - Interruttore OFF, diodo ON. . . . . . . . .
3
1.4
Andamento temporale delle grandezze in gioco in un convertitore
buck-boost PWM in modalità di funzionamento CCM. . . . . . .
4
1.5
Forma d'onda della corrente sull'induttore al limite CCM/DCM.
7
1.6
Corrente di carico normalizzata in funzione del parametro D al
limite CCM/DCM per un convertiore buck-boost. . . . . . . . . .
1.7
8
Resistenza di carico normalizzata in funzione del parametro D al
limite CCM/DCM per un convertiore buck-boost. . . . . . . . . .
9
2.1
Immagine del Cree XLamp XR-E LED Cool White. . . . . . . .
11
2.2
Prima parte del DC-DC sul foglio Excel. . . . . . . . . . . . . . .
17
2.3
Seconda parte del DC-DC sul foglio Excel. . . . . . . . . . . . . .
18
3.1
Schema della cella di commutazione.
. . . . . . . . . . . . . . . .
20
3.2
Modello della cella di commutazione. . . . . . . . . . . . . . . . .
21
3.3
Modello dc della cella di commutazione.
. . . . . . . . . . . . . .
21
3.4
Modello ac della cella di commutazione.
. . . . . . . . . . . . . .
22
3.5
Schema a blocchi del modello in frequenza ai piccoli segnali di un
generico convertitore dc-dc.
3.6
. . . . . . . . . . . . . . . . . . . . .
condensatore. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.7
22
Circuito del buck-boost con componenti parassite di induttore e
22
Modello per piccoli segnali per il buck-boost PWM in funzionamento CCM.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Mv (s)
3.8
Modello per il calcolo di
3.9
Caratteristica tensione-corrente del LED Cree XLamp XR-E Cool
White per
Tj = 25◦ .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
22
24
25
3.10 Caratteristica tensione-corrente del LED Cree XLamp XR-E Cool
White con misure (Tj
= 25◦ ).
. . . . . . . . . . . . . . . . . . .
25
3.11 Caratteristica tensione-corrente del diodo LED ottenuta per interpolazione.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.12 Retta tangente al punto di lavoro
(VD , ID )
del LED.
. . . . . . .
26
26
3.13 Schema di principio del voltage-mode control per un convertitore
dc-dc.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
3.14 Modello a piccoli segnali del convertitore ad anello chiuso utilizzando il voltage-mode control. . . . . . . . . . . . . . . . . . . . .
3.15 Modulazione PWM in un convertitore dc-dc.
iii
. . . . . . . . . . .
28
28
ELENCO DELLE FIGURE
iv
Tp (s) in condizione di funzionamento
(3.54V, 0.7A) in modalità buck (VI = 4.35V ). .
di Bode di Tc (s). . . . . . . . . . . . . . . . . . . . .
di Bode di LC (s) in condizione di funzionamento
3.16 Diagramma di Bode di
nominale del LED
3.17 Diagramma
3.18 Diagramma
nominale del LED in modalità buck.
3.19 Diagramma di Bode di
LC (s)
. . . . . . . . . . . . . . . .
29
30
30
in condizione di funzionamento
nominale del LED in modalità boost. . . . . . . . . . . . . . . . .
31
3.20 PID discreto realizzato in Simulink per il convertitore buck-boost
in analisi.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
3.21 Modello Simulink del convertitore buck-boost PWM retroazionato in tensione con controllore PI discreto.
3.22 Andamento nel tempo di
anello chiuso.
vO (t)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
iO (t)
3.23 Andamento nel tempo di
anello chiuso.
32
33
in modalità buck, simulazione ad
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.24 Andamento nel tempo di
anello chiuso.
. . . . . . . . . . . . .
in modalità buck, simulazione ad
34
vO (t) in modalità boost, simulazione ad
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
3.25 Andamento nel tempo di iO (t) in modalità boost, simulazione ad
anello chiuso.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
4.1
Schema elettrico della scheda slave (analogica).
. . . . . . . . . .
36
4.2
Schema elettrico della scheda master (digitale). . . . . . . . . . .
36
4.3
Convertitore USB-RS232.
37
4.4
Circuito di ingresso dei pin capionatori.
4.5
Partitore di prelievo
4.6
Layout dei due circuiti.
. . . . . . . . . . . . . . . . . . . . . . .
40
4.7
Schede realizzate. . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
5.1
Schema a blocchi della periferica ADC. . . . . . . . . . . . . . . .
44
5.2
Schema a blocchi tempo continuo che viene implementato attra-
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . .
39
. . . . . . . . . . . . . . . . . . . . . . . . .
39
verso la funzione 5.3.2. . . . . . . . . . . . . . . . . . . . . . . . .
47
5.3
Struttura di un comando interpretabile.
. . . . . . . . . . . . . .
51
5.4
Tensione di pilotaggio del gate
. . . . . . . . . . . . . . . .
54
5.5
Tensione
. . . . . . . . . . . . . . . . .
54
5.6
Tensione ai capi del diodo. . . . . . . . . . . . . . . . . . . . . . .
55
5.7
Schede realizzate. . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
5.8
Circuito per la misura del rendimento. . . . . . . . . . . . . . . .
55
5.9
Rendimento con
vL
vGS .
ai capi dell'induttore.
5.10 Rendimento con
vI = 3V . . .
vI = 4, 45V .
. . . . . . . . . . . . . . . . . . . .
56
. . . . . . . . . . . . . . . . . . . .
56
5.11 Risposta al gradino in modalità buck, un campione ogni
5.12 Andamento dell'errore
e = vR − vO
gradino in modalità buck.
5ms.
. .
57
associato alla risposta al
. . . . . . . . . . . . . . . . . . . . . .
57
5.13 Modulazione PWM associata alla risposta al gradino in modalità
buck. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.14 Risposta al gradino in modalità boost, un campione ogni
10ms.
58
.
58
gradino in modalità boost. . . . . . . . . . . . . . . . . . . . . . .
58
5.15 Andamento dell'errore
e = vR − vO
associato alla risposta al
5.16 Modulazione PWM associata alla risposta al gradino in modalità
boost.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
ELENCO DELLE FIGURE
v
vO a fronte di variazioni della tensione
vI , con una tensione di riferimento costante; un
campione ogni 10ms. . . . . . . . . . . . . . . . . . . . . . . . . .
Andamento dell'errore e = vR − vO associato a variazioni della tensione di alimentazione vI , con una tensione di riferimento
59
costante. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
5.17 Tensione ai capi del LED
di alimentazione
5.18
5.19 Modulazione PWM associata a variazioni della tensione di alimentazione
vI ,
con una tensione di riferimento costante. . . . . .
59
Introduzione
La luce e l'illuminazione sono elementi alla base della nostra vita quotidiana e
la strada per un futuro energetico sostenibile e compatibile con l'ambiente passa
attraverso l'individuazione e lo sviluppo di nuove tecnologie per ridurre i costi
dell'illuminazione aumentando ecienza ed adabilità.
È in questo scenario
che emerge la tecnologia LED (Light Emitting Diode) in sostituzione delle
sorgenti di luce tradizionali, i suoi vantaggi sono numerevoli ed importanti [10]:
•
Risparmio energetico: a parità di potenza assorbita, il LED produce un
usso luminoso di circa cinque volte superiore a quello delle lampade ad
incandescenza ed alogene.
•
Bassa potenza richiesta: al contrario delle lampade tradizionali, i LED
hanno bisogno di correnti talmente ridotte che è possibile tranquillamente autoalimentarli con energie rinnovabili (luce solare o vento).
Questo
concetto è già applicato con successo, ad esempio nella segnaletica e ai
lampioni per l'illuminazione urbana.
•
Funzionamento in sicurezza: rispetto alle lampade normali, che lavorano
a tensione di rete, i comuni LED sono più sicuri, perché alimentati a bassa
o a bassissima tensione (normalmente fra i 3 e i 24 V in continua).
•
Elevata durata di vita: i diodi LED hanno una vita media di 25000 ore e
superano abbondantemente le 750 ore delle lampade ad incandescenza e
le 10000 ore delle lampade uorescenti, per cui risultano particolarmente
adatti all'utilizzo in situazioni in cui è oneroso, dicoltoso o pericoloso
sostituire la sorgente luminosa, l'elevata durata di vita si traduce, inoltre,
in un notevole risparmio sui costi di manutenzione.
•
Resistenza agli urti e alle sollecitazioni: i diodi sono meccanicamente robusti in quanto dispositivi a stato solido, privi di lamento interno: al
contrario delle lampade ad incandescenza non rischiano dunque di rompersi in caso di cadute accidentali, neppure a caldo. Si prestano quindi
anche ad applicazioni illuminotecniche in condizioni estreme, come nelle
pavimentazioni e nelle piscine.
•
Dimensioni e peso ridotti: i LED sono molto più piccoli delle lampade
tradizionali e per questo rappresentano quindi un'ottima soluzione per
dispositivi portatili, come cellulari e torce.
•
Accensione a freddo: al contrario delle lampade uorescenti, i LED hanno
tempo di accensione pari a zero no a temperature di
−40◦ C ,
usso emesso è immediatamente pari al usso di regime.
vi
per cui il
INTRODUZIONE
•
vii
Ecocompatibilità: i LED sono caratterizzati dall'assenza totale di radiazioni IR e UV e dall'assenza di mercurio che rende il prodotto riciclabile.
Queste caratteristiche hanno decretato una continua ricerca ed un crescente
successo commerciale della tecnologia LED.
I LED devono però essere alimentati da una corrente costante per poter ottere
valori di luminosità e temperatura di colore uniformi, la corrente di pilotaggio ha
infatti una correlazione diretta con diversi parametri tra cui il usso luminoso.
Il progetto e l'impiego di un adeguato circuito di pilotaggio risulta quindi essere
un elemento essenziale per il corretto utilizzo dei LED ed allo stato attuale
tipiche soluzioni risultano essere:
•
Utilizzo di un generatore di tensione costante con resistenza in serie.
•
Utilizzo di regolatori lineari con alimentazione a corrente costante.
•
Utilizzo di convertitori dc-dc a commutazione.
Nella prima soluzione si collegano in serie un generatore di tensione costante,
una resistenza (che ha funzione di limitare la corrente) ed il LED stesso. Questa soluzione è la più semplice ma risulta assolutamente inadeguata per LED
di potenza destinati all'illuminazione ed è tipicamente impiegata per i piccoli
LED che svolgono una semplice funzione segnaletica. L'inadeguatezza di questa
soluzione è facilmente spiegabile in quanto i LED ad alta potenza hanno correnti
nominali che superano i 350mA e quindi la potenza dissipata nella resistenza
non sarebbe più trascurabile ed abbasserebbe drasticamente l'ecienza del circuito.
Per garantire un controllo più accurato della corrente del LED è possibile ricorrere a regolatori lineari, in particolare per applicazioni con bassa dierenza
tra tensione di ingresso e di uscita. Per tensioni di alimentazione molto variabili, nel caso di applicazioni a corrente medio - alta (è questo il caso dei LED
di potenza) l'uso di regolatori lineari è sconsigliato a causa dell'elevata dissipazione di potenza e della bassa ecienza. Per far fronte a queste situazioni,
nell'impiego dei LED di potenza, si ricorre all'utilizzo dei convertitori dc-dc a
commutazione con modulazione PWM, in quanto orono un'elevata ecienza
di conversione e la possibilità di elevare (boost), abbassare (buck) o elevare ed
abbassare (buck-boost) la tensione o la corrente di uscita rispetto a quella di
ingresso.
Per applicazioni in cui sono presenti un numero limitato di LED la topologia di
convertitore comunemente impiegata è il buck, che rappresenta anche la soluzione più semplice per pilotare LED di potenza. Sebbene la topologia buck sia
quella preferita, i regolatori boost stanno riscuotendo successo come soluzione
per pilotaggio dei LED in quelle applicazioni di illuminazione che richiedono il
pilotaggio di stringhe di LED. In queste applicazioni la caduta di tensione totale
della stringa di LED è pari alla somma delle singole cadute di tutti i LED e potrebbe essere superiore alla tensione di ingresso del sistema: in questo contesto
è necessario l'impiego di convertitori boost o buck-boost.
Rispetto alle tradizionali tecnologie di illuminazione, essendo il LED un dispositivo a stato solido, è inoltre attraente l'impiego di microntrollori per realizzare il
controllo che pilota il LED. Utilizzando un microcontrollore, anziché la classica
INTRODUZIONE
viii
rete di retroazione analogica, è dunque possibile avvalersi dei numerosi vantaggi
del controllo digitale:
•
Maggiore essibilità: è possibile migliorare e personalizzare le applicazioni
attraverso modiche software e non hardware.
•
È possibile realizzare interfacce software in grado di gestire innumerevoli
applicazioni ad esempio l'illuminazione su vasta scala o l'illuminazione
decorativa (lighting design).
•
I componenti digitali sono meno sensibili all'invecchiamento, a variazioni
ambientali ed al rumore.
•
Possibilità di implementare tecniche di controllo avanzato, ad esempio
tecniche di controllo ottimo o adattivo. Tecniche non attuabili attraverso
una normale rete di retroazione analogica.
•
Dimensioni e costi ridotti.
L'oggetto di questo elaborato è dunque lo studio e la realizzazione di un
convertitore buck-boost PWM con controllo digitale per LED di potenza. Lo
studio è pensato per un'applicazione d'illuminazione portatile con alimentazione
d'ingresso variabile, che sfruttando l'elevata emissione luminosa per Watt del
LED presenterà un'elevata durata della batteria e tempi di tempi accensione e
spegnimento trascurabili. A tal ne è stato studiato (Capitolo 1) e dimensionato
(Capitolo 2) un buck-boost in grado di pilotare adeguatamente un LED di potenza con corrente nominale di 0.7 A. Si è provveduto a modellare il circuito ed a
costruire un opportuno controllo tempo discreto sul modello individuato, così da
controllare il convertitore attraverso il cosiddetto voltage-mode control (Capitolo 3). Sono state eettuate opportune simulazioni software mediante LTspice,
Matlab e Simulink e nel Capitolo 4 si descrive il progetto e la realizzazione dei
circuiti stampati che vogliono dimostrare la bontà degli studi presentati.
So-
no state quindi realizzate due schede: il convertitore buck-boost ed un circuito
di controllo che monta un microcontrollore PIC, che consente il funzionamento
sia ad anello aperto che ad anello chiuso, attraverso il controllo progettato nel
Capitolo 3. Inne è stata realizzata un'interfaccia software in grado di gestire
tramite porta seriale la modalità di funzionamento del buck-boost (anello aperto o chiuso), regolare l'intensità luminosa del LED e di registrare l'andamento
della tensione ai capi del LED.
Capitolo 1
Convertitore buck-boost
PWM DC-DC
Il buck-boost è una tipologia di convertitore DC-DC non isolato di tipo step-
down/step-up , ovvero che consente di ottenere un'uscita continua di valore
maggiore o minore del valore della tensione in ingresso. Il livello dell'uscita è
regolato agendo sul duty cycle del transistore. Questo capitolo descrive il convertitore buck-boost, con particolare interesse alla modalità di funzionamento
CCM Continuos Conduction Mode ed alle relazioni che lo caratterizzano.
1.1
Analisi in DC di un convertitore buck-boost
PWM
1.1.1 Descrizione del circuito
Lo schema circuitale di un convertitore buck-boost PWM è mostrato in Figura 1.1. Consiste in un MOSFET di potenza, utilizzato come interruttore con-
L, un diodo, un condensatore C ed un carico modellato
RL . Nel seguito, la frequenza di commutazione dell'interrut1
tore verrà indicata con fs = 1/T e con D , il rapporto D = ton /T.
Come si può vedere dallo schema, il terminale source del transistor non è controllato, un induttore
con una resistenza
nesso a massa e ciò rappresenta una dicoltà nel pilotare il dispositivo stesso,
inoltre la polarità dell'uscita risulta opposta a quella dell'ingresso.
Il convertitore può presentare due modalità di funzionamento: CCM - Continuos
Conduction Mode - e DCM - Discontinuos Conduction Mode - a seconda che la
corrente sull'induttore non si annulli o meno durante il ciclo di commutazione.
1.1.2 Funzionamento CCM
Per l'analisi del circuito, mostrato in Figura 1.1, sono necessarie le seguenti
ipotesi di lavoro:
- il MOSFET di potenza e il diodo sono assunti come interruttori ideali;
1t
on
è l'intervallo di tempo in cui l'interruttore è posto nello stato di ON.
1
CAPITOLO 1.
CONVERTITORE BUCK-BOOST PWM DC-DC
Figura 1.1:
Figura 1.2:
2
Schema circuitale di un convertitore buck-boost.
Circuito equivalente - Interruttore ON, diodo OFF.
- i componenti passivi sono lineari, tempo invarianti e indipendenti dalla
frequenza;
- l'impedenza d'uscita del generatore di tensione
VI
è pari a zero;
- le perdite di commutazione sono pari a zero.
L'analisi verrà inoltre suddivisa tenendo conto di due intervalli temporali:
-
0 < t 6 DT
-
DT < t 6 T .
Intervallo temporale 0 < t 6 DT
Come mostrato Figura 1.2, durante l'intervallo temporale
0 < t 6 DT ,
l'inter-
ruttore è posto nello stato di ON e il diodo in quello di OFF. La tensione
ai capi del diodo vale, approssimativamente
interdetto.
La tensione
sono nulle e la tensione
Tale tensione (formula
guentemente la corrente
iL (0)2 :
2 i (0)
L
Z
0
t
iL
nel diodo
diL
dt
(1.1)
(1.1)) risulta pari alla tensione d'ingresso e consecresce linearmente a partire da un valore iniziale
1
vL dt + iL (0) =
L
calcolata al tempo
vD
e fa sì che il diodo sia
vS ai capi dell'interruttore e la corrente iD
vL ai capi dell'induttanza è pari a:
vL = V I = L
1
iL = iS =
L
−(VI − VO )
t = 0.
Z
t
VI dt + iL (0) =
0
VI
t + iL (0);
L
(1.2)
CAPITOLO 1.
CONVERTITORE BUCK-BOOST PWM DC-DC
Figura 1.3:
3
Circuito equivalente - Interruttore OFF, diodo ON.
t = DT :
il picco di corrente sull'induttore, si ha invece per
iL (DT ) =
VI DT
VI D
+ iL (0) =
+ iL (0).
L
fs L
(1.3)
Il valore del ripple di corrente attraverso l'induttore, risulta quindi pari a:
∆iL = iL (DT ) − iL (0) =
VI D
VI DT
=
.
L
fs L
(1.4)
vD ai capi del diodo, si utilizza per
MV DC = VO /VI = IO /II = D/(1 − D)
Per quanto riguarda invece la tensione
il calcolo la funzione di trasferimento
(Ÿ1.1.3):
vD = −(VI + VO ) = −
1
MV DC
=−
+1
VO
.
D
(1.5)
Dall'osservazione della Figura 1.4 è facile evincere quanto detto.
Intervallo temporale DT
<t6T
Durante l'intervallo temporale
DT < t 6 T ,
come mostrato in Figura 1.3, l'in-
terruttore risulta spento e il diodo in conduzione. La corrente iS dell'interruttore
e la tensione
vD
del diodo sono pari a zero. La tensione
vL
ai capi dell'induttore,
risulta essere:
vL = −VO = L
diL
dt
e provoca una decrescita lineare della corrente
(1.6)
iL
(si veda la Figura 1.4):
Z
Z
1 t
1 t
iL = iD =
vL dt + iL (DT ) =
(−VO )dt + iL (DT ) =
L DT
L DT
VO
VO
VI D
=−
(t − DT ) + iL (DT ) = −
(t − DT ) +
+ iL (0);
L
L
fs L
dove
iL (DT )
è la corrente sull'induttore al tempo
t = DT .
(1.7)
Il valore del
ripple della corrente sull'induttore è:
∆iL = iL (DT ) − iL (T ) =
Poichè
VO /VI = D/(1 − D),
VO T (1 − D)
VO (1 − D)
=
.
L
fs L
(1.8)
la tensione ai capi dell'interruttore è data da:
CAPITOLO 1.
Figura 1.4:
CONVERTITORE BUCK-BOOST PWM DC-DC
4
Andamento temporale delle grandezze in gioco in un convertitore
buck-boost PWM in modalità di funzionamento CCM.
CAPITOLO 1.
CONVERTITORE BUCK-BOOST PWM DC-DC
vS = VSM = VI + VO =
V0
,
D
5
(1.9)
e il suo massimo valore è pari a:
VSM max = VDM max = VImax + VO =
VO
.
Dmin
(1.10)
I picchi di corrente del diodo e dell'interruttore sono:
IDM = IL(peak) = II + IO +
∆iL
IO
∆iL
=
+
.
2
1−D
2
(1.11)
I massimi valori dei picchi di corrente sono:
∆iLmax
=
2
IDM max = ISM max ≈ IImax + IOmax +
=
IOmax
∆iLmax
+
.
1 − Dmax
2
(1.12)
1.1.3 Funzione di trasferimento DC in modalità CCM
Per la determinazione della funzione di trasferimento
MV DC = VO /VI , riferenA+ = A− . Si può
dosi alla Figura 1.4, si utilizza il bilanciamento Volt-secondi,
quindi scrivere:
DT VI = (1 − D)T VO ,
VO =
(1.13)
DVI
.
1−D
(1.14)
La funzione di trasferimento di tensione in dc del convertitore risulta quindi
essere:
MV DC ≡
VO
II
D
=
=
.
VI
IO
1−D
(1.15)
dove:
0 ≤ MV DC < ∞
MV DC
0
aumenta da
la tensione di uscita
VO
a
∞
mentre
D
va da
0
(1.16)
a
1.
Dalla
(1.14) si vede che
RL e dipende
VI ; tuttavia MV DC è altamente sensibile alle perdite,
di D si avvicina ad 1. Dalla (1.15) si ricava:
è indipendente dalla resistenza di carico
solamente dalla tensione
specie quando il valore
D=
MV DC
MV DC + 1
(1.17)
e la sensibilità della tensione d'uscita in funzione del duty cycle è descritta
dalla (1.18):
S=
VI
dVO
=
.
dD
(1 − D)2
(1.18)
CAPITOLO 1.
CONVERTITORE BUCK-BOOST PWM DC-DC
6
Inoltre la funzione di trasferimento dc in corrente risulta essere:
MIDC =
IO
1−D
=
.
II
D
(1.19)
1.1.4 Condizioni limite per la modalità CCM
Considerando che la potenza in ingresso è pari a
PO = IO VO
II VI = IO VO ).
è
PI = II VI
e quella in uscita
e trascurando le perdite di potenza si ha che
PO = PI
(cioè
Quindi:
MV DC =
IO
1
D
VO
=
=
=
.
VI
II
MI DC
1−D
(1.20)
Pertanto:
VImax = VO
1 − Dmin
.
Dmin
(1.21)
Le tensioni massime sull'interruttore e diodo a regime stazionario in CCM
risultano essere:
VSM max = VDM max = VImax + VO =
VO
.
Dmin
(1.22)
Il ripple massimo di corrente sull'induttore è determinato dalla
(1.23)
VO (1 − Dmin )
.
fs L
∆iLmax =
(1.23)
Dalla (1.20) la componente dc della correnti d'ingresso è pari a:
II = MV DC IO =
Il valore massimo della
a
MV DCmax
e
Dmax .
II
D
IO .
1−D
si verica in corrispondeza di
La corrente media sull'induttore
IS
IOmax
e
VImin ,
cioè
Quindi:
IImax = MV DCmax IOmax =
sull'interruttore
(1.24)
IL
Dmax
IOmax .
1 − Dmax
è pari alla somma della corrente media
e della corrente media sul diodo
rente media sull'interruttore
corrente media sul diodo
ID
IS
(1.25)
ID ;
ma a sua volta la cor-
è pari alla corrente media in ingresso
é uguale alla corrente media in uscita
IL = IS + ID = II + IO =
IO
.
1−D
II
e la
IO :
(1.26)
Quindi, la massima variazione e il picco massimo di corrente del diodo in
stato stazionario in CCM risultano:
ISM max = IDM max = IImax = IOmax +
=
dove
∆iL = ∆iLmin
e
IOmax
VO (1 − Dmax )
+
;
1 − Dmax
2fs L
II = IImax .
∆iLmin
=
2
(1.27)
CAPITOLO 1.
Figura 1.5:
CONVERTITORE BUCK-BOOST PWM DC-DC
7
Forma d'onda della corrente sull'induttore al limite CCM/DCM.
1.1.5 Limite CCM/DCM
La forma d'onda di corrente sull'induttore al limite CCM/DCM è ragurata in
Figura 1.5 e può essere descritta dalla
iL =
Dalla (1.15)
VI
t
L
(1.28):
per 0 < t 6 DT.
VI = VO (1 − D)/D,
(1.28)
pertanto:
∆iLmax = iL (DT ) =
VI DT
VO (1 − Dmin )
=
.
L
fs Lmin
(1.29)
La corrente continua sull'induttore al limite CCM/DCM è:
ILB =
dove il pedice
B
VO (1 − Dmin )
∆iLmax
=
;
2
2fs Lmin
(1.30)
sta per boundary.
1.1.6 Convertitori di potenza DC-DC PWM
Si analizza inne la resistenza di carico e la corrente d'uscita al limite CCM/DCM.
Da (1.26) si ricava:
IL =
IO
,
1−D
(1.31)
che determina la corrente d'uscita al limite:
IOB = ILB (1 − Dmin ) =
VO (1 − Dmin )2
.
2fs L
(1.32)
Al limite, la resistenza di carico vale:
RLB =
VO
2fs L
=
.
IOB
(1 − Dmin )2
(1.33)
Quindi il minimo valore dell'induttanza L può essere determinato come
segue:
Lmin =
VO (1 − Dmin )2
RLmax (1 − Dmin )2
=
.
2fs IOB
2fs
(1.34)
CAPITOLO 1.
Figura 1.6:
CONVERTITORE BUCK-BOOST PWM DC-DC
8
Corrente di carico normalizzata in funzione del parametro D al
limite CCM/DCM per un convertiore buck-boost.
In ultimo, risulta essere interessante ragurare l'andamento della resistenza
e della corrente di carico normalizzati in funzione del parametro D. Al limite
CCM/DCM risulteranno:
2
D)
IOB /(VO /2fs L) = (1 − D)2
e
RLB /(2fs L) = 1/(1 −
. Gli andamenti sono invece riportarti in Figura 1.6 e Figura 1.7.
CAPITOLO 1.
Figura 1.7:
CONVERTITORE BUCK-BOOST PWM DC-DC
9
Resistenza di carico normalizzata in funzione del parametro D al
limite CCM/DCM per un convertiore buck-boost.
Capitolo 2
Dimensionamento dei
componenti
In questo capitolo vengono dimensionati gli elementi circuitali che compongono
il convertitore buck-boost progettato per la modalità CCM, si noti che il dimensionamento analitico dovrà essere adattato ai componenti presenti in commercio
e che pertanto sarà necessario eettuare scelte appropriate.
Per tale scopo è
stata quindi costruita un'opportuna tabella excel in grado di calcolare automaticamente i valori di soglia minima di ogni componente e che potrà anche essere
utilizzata in futuro per dimensionare nuovi convertitori buck-boost.
2.1
Alimentazione
Il DC-DC progettato può essere alimentato con la tensione di una o più pile che
formano una batteria di celle, che genera una dierenza di potenziale nominale
dipendente dalla tipologia di ossidoriduzione utilizzata dalla cella per accumulare energia. Inoltre la tensione che manifesta una qualsiasi cella è dipendente
anche dalla quantità di energia accumulata: se la cella è scarica manifesta una
tensione minore, altrimenti sarà maggiore.
Nel particolare è stata scelta una
tecnologia di batterie alcaline Manganese Dioxide con una tensione a vuoto di
1,53V quando cariche, che decade rapidamente a 1,45V (assunto come valore
nominale) no ad arrivare ad 1V quando è quasi totalmente scarica. Per motivi
didattici e per vericare il corretto funzionamento del dispositivo sia da buck
che da boost è stato deciso di utilizzare 2 o 3 batterie in serie, al ne di evitare di
aspettare una scarica equivalente. In tal modo è stato ottenuto rispettivamente
2,9V e 4,35V come condizioni analitiche nominali
VImin
e
VImax
per l'alimenta-
zione. Inoltre prevedendo un funzionamento da rete domestica e considerando
la garanzia del fornitore di un
±
10% sui 230V nominali forniti e pensando di
alimentare il dispositivo con trasformatore dalla rete da 3,2V o, e no a 3,9V si
ricade negli intervalli di funzionamento equivalenti.
10
CAPITOLO 2.
2.2
DIMENSIONAMENTO DEI COMPONENTI
11
Il carico
Come anticipato, il carico del buck-boost è un LED di potenza [7] ed in condizioni nominali deve essere alimentato da una corrente di 700mA. Al ne di
individuare i limiti di funzionamento è stata eettuata la seguente suddivisione
in accordo con [7]:
•
Condizione limite massima:
•
Condizione nominale:
•
Condizione limite minima:
IOmax =1A; VOmax =3,7V .
IOnom =0,7A; VOnom =3,54V .
IOmin =0,1A; VOmin =3,1V .
Questo LED ottiene un usso luminoso di 100lm che è paragonabile ad una
lampadina ad incandescenza da 15W, infatti i Led corrispondono ad una classe
energetica A e riscuotono un meritato successo nel campo dell'illuminazione. La
temperatura di colore, derivata dal tipo di drogaggio del LED, risulta ininuente
ai ni del funzionamento del dispositivo e potrà essere scelta in base alle esigenze.
E' probabile che a bassa luminosità prevalgano i fosfori utilizzati per ridurre
le frequenze emesse dalla giunzione in una gamma visibile che si traduce in
una variazione del colore a seconda del livello di funzionamento: riducendo la
corrente che lo attraversa, il LED emetterà una luce andante al giallo.
In quest'ultimo caso si otterrebbe un dispositivo non lmabile o non fotografabile in modo professionale dato che la frequenza di campionamento del sensore
ottico sicuramente comparabile, lmerebbe istanti in cui il LED è spento o non
del tutto acceso.
Figura 2.1:
2.3
Immagine del Cree XLamp XR-E LED Cool White.
Calcolo dei parametri fondamentali
Al ne di dimensionare le componenti del convertitore dc-dc è necessario calcolare le potenze in gioco e lo scostamento dal valore di tensione di ingresso che
dovrà essere adempito dai componenti stessi e dall'induttore nel particolare. Per
prima cosa si procede con il calcolo della potenza in uscita massima e minima
in riferimento ai parametri deniti in 2.2.
POmax = VOmax IOmax = 3, 7 ∗ 1 = 3, 7W
(2.1)
POmin = VOmin IOmin = 3, 1 ∗ 0, 1 ' 0, 31W
(2.2)
Per ottenere un convertitore che lavori in CCM è necessario valutare la resistenza equivalente del carico sia minima che massima, ipotizzando un funzionamento lineare per il LED si ottiene:
RLmin =
VOmax
3, 7
=
= 3, 7Ω
IOmax
1
(2.3)
CAPITOLO 2.
DIMENSIONAMENTO DEI COMPONENTI
RLmax =
VOmin
3, 1
=
= 31Ω
IOmin
0, 1
12
(2.4)
Per ottenere il guadagno del sistema e successivamente calcolare il valore di
induttanza minima richiesta, per il funzionamento in CCM, è necessario calcolare il valore della funzione di trasferimento di tensione
MV DC
nel caso minimo,
massimo e nominale. Nel caso specico, avendo deciso di usare 2 o 3 batterie
alcaline in serie, questi parametri faranno riferimento a 2 livelli di tensione di
ingresso distinti; inoltre prevedendo diverse condizioni di luminosità del LED
sono stati previsti 3 casi limite di funzionamento: luminosità minima, nominale
e massima. Per questo motivo è stato deciso di calcolare tutte le possibili casistiche.
Nel caso di tensione di ingresso minima:
MV DCmin =
3, 1
VOmin
=
= 1, 03
VImin
3
(2.5)
MV DCnom =
VOnom
3, 6
=
= 1, 2
VImin
3
(2.6)
MV DCmax =
VOmax
3, 7
= 1, 23
=
VImin
3
(2.7)
Nel caso di tensione di ingresso massima:
MV DCmin =
VOmin
3, 1
= 0.68
=
VImax
4, 5
(2.8)
MV DCnom =
VOnom
3, 6
= 0, 8
=
VImax
4, 5
(2.9)
MV DCmin =
VOmax
3, 7
= 0.82
=
VImax
4, 5
(2.10)
Se tutto funzionasse idealmente questi valori di guadagno andrebbero bene, ma
è necessario inserire una approssimazione di idealità dato che il convertitore
non avrà un rendimento ideale unitario.
Ipotizzando quindi un rendimento
globale di 0,85 sono stati calcolati i valori del duty cycle sui quali verrà calcolata
l'induttanza del convertitore. Nel caso di tensione di ingresso minima:
Dmin =
MV DCmin
1, 03
=
= 0, 548
MV DCmin + η
1, 03 + 0, 85
(2.11)
Dmom =
MV DCmon
1, 2
=
= 0, 585
MV DCnom + η
1, 2 + 0, 85
(2.12)
Dmax =
MV DCmax
1, 23
=
= 0, 591
MV DCmax + η
2, 23 + 0, 85
(2.13)
Nel caso di tensione di ingresso massima:
Dmin =
MV DCmin
0, 68
=
= 0, 44
MV DCmin + η
0, 68 + 0, 85
(2.14)
CAPITOLO 2.
DIMENSIONAMENTO DEI COMPONENTI
13
Dmom =
MV DCmon
0, 8
=
= 0, 484
MV DCnom + η
0, 8 + 0, 85
(2.15)
Dmax =
MV DCmax
0, 82
=
= 0, 491
MV DCmax + η
0, 82 + 0, 85
(2.16)
Dai risultati ottenuti è possibile vericare che se il duty è superiore a 0,5 la
tensione di uscita del convertitore sarà maggiore della tensione di alimentazione
mentre in caso contrario sarà minore.
2.3.1 Dimensionamento dell'induttore
L'induttore che compone il circuito dovrà essere di un valore tale da garantire la
continuità di corrente ed il funzionamento in CCM con i valori di resistenza equivalente di carico trovati. Per uno scopo di pilotaggio di un Led la frequenza del
PWM è stata scelta in modo tale che le variazioni del ripple che di conseguenza
variano la luminosità del LED siano abbastanza rapide dal poter vericare una
luminosità costante all'occhio ma anche stando lontani dai parametri parassiti
dei componenti. Inoltre una alta frequenza di commutazione del PWM ha come
eetto anche una scelta nale dell'induttore di valore più piccolo.
Cercando
informazioni su dispositivi simili è stata vericata una frequenza del PWM che
va dai 200 ai 400kHz. Avendo una retroazione digitale, e ottenendo comunque
dei valori accettabili commerciali di induttanza, è stata scelta la
fs
del PWM di
250kHz. Per il calcolo del valore minimo, che sarà dipendente dal periodo del
duty ON minimo, dalla frequenza globale del PWM e dalla resistenza di carico
massima si ottiene:
Lmin =
31(1 − 0, 44)2
RLmax (1 − Dmin )2
= 19µH
=
2fS
2 × 250E 3
(2.17)
Scelto da 100µH. Dato che la corrente che scorre nell'induttore non sarà costante alimentando sia il carico sia la capacità quando il mosfet sarà interdetto
e si caricherà quando il mosfet sarà in conduzione è necessario anche calcolare la variazione picco-picco per poi vericare che tale corrente sia sostenibile
dall'induttore:
4iLmin =
VOmax (1 − Dmax )
3, 7(1 − 0, 591)
=
= 0, 06A
fS L
100E −6 × 250E 3
(2.18)
La corrente continua nell'induttore sarà data dalla formula:
Ilmax = MV DCmax IOmax = 1, 23 × 1 = 1, 23A
(2.19)
La corrente in termini equivalenti e quindi media sull'induttore è:
ILrms =
1
IOmax
=
= 2, 44A
1 − Dmax
1 − 0, 591
(2.20)
Avendo questi dati e confermati dalle simulazioni è stato possibile scegliere in
modo opportuno l'induttore che avendo una resistenza serie di 25mΩ risulta
dissipare una potenza:
2
PrL = rL ILrms
= 0, 025 × 2, 442 = 0, 149W
(2.21)
CAPITOLO 2.
DIMENSIONAMENTO DEI COMPONENTI
14
Inoltre dalle simulazioni è stato possibile valutare diversi tipi di induttore, ma è
stato possibile vericare un incremento notevole delle prestazioni in termini di
tensione con un valore di resistenza parassita serie più piccolo possibile. Inoltre
è stato necessario utilizzare un induttore di tipo toroidale per evitare che il usso
disperso si concateni con altre piste e sporchi i segnali.
2.3.2 Scelta dei dispositivi a semiconduttore
Il mosfet di potenza sarà scelto per sopportare le caratteristiche di tensione,
VDSS che sarà al massimo
VImax +VOmax e potrà essere scelta di
La corrente sopportata ISM che attraver-
corrente, e potenza. Nel particolare la tensione di
10V equivalente alla somma di tensioni
un valore ragionevolmente superiore.
sa il Mosfet, nei periodi in cui è in conduzione, dovrà essere ragionevolmente
superiore alla corrente
ILrms .
Per quanto riguarda la tensione di pilotaggio do-
vrà essere scelta relativa al dispositivo che modula il PWM, nel caso del
DSP
Microcip di 3,3V . La corrente di pilotaggio del transistor è anch'esso un parametro critico nella progettazione, poiché deve essere abbastanza alta da permettere
tempi brevi di commutazione, ma al contempo più bassa della massima corrente
erogabile del
DSP .
Nel caso specico tale corrente è limitata da una resistenza
in serie posta tra il Gate e l'uscita del PWM con un Pull-down verso massa.
Tale valore poteva essere calcolato analiticamente considerando l'energia necessaria alla capacità parassita del mosfet [8], ma dalle simulazioni è stato possibile
adattare al meglio la resistenza. Nel caso in cui si limiti troppo la corrente l'on-
VDS
Ton o
da quadra risultante sulla tensione
non descriverebbe più un gradino non
comparabile con la grandezza del
del
Tof f
facendo scorrere nell'indutto-
re una corrente estremamente alta. Poiché in questa maglia ci sono repentine
variazioni di corrente può comportarsi come un induttore ad una spira, generando un campo magnetico variabile, e quindi potrebbe andare ad inuire sulla
qualità dei segnali più delicati e per queste ragioni sarà opportuno fare questa
maglia più piccola possibile. La potenza persa e sulla quale è stata considerata
la dissipazione termica massima verrà calcolata con la
RDS
da [8] dopo aver
calcolato la corrente rms sul mosfet.
ISrms
√
√
1 0.591
IOmax Dmax
= 1.87A
=
=
1 − Dmax
1 − 0, 591
2
PrDS = RDS ISrms
= 0, 08 × 1.872 = 0.279W
(2.22)
(2.23)
È anche possibile calcolare la potenza persa nello switching:
Psw = fS CO (VImax + VOmax )2 = 250E 3 × 4, 1E −12 (4, 5 + 3, 7)2 = 6, 89pW
(2.24)
Per quanto concerne la scelta del diodo esso dovrà essere di tipo veloce e quindi
schottky. Per la scelta è necessario valutare la corrente di stress massima che
risulta essere la somma tra la metà della corrente di picco picco sull'induttore, la
corrente che deve alimentare il carico quando il mosfet è interdetto e la corrente
per alimentare il carico:
ISM max = IDM max = IImax + IOmax +
0, 06
4iLmin
= 1, 23 + 1 +
= 2, 26A
2
2
(2.25)
CAPITOLO 2.
DIMENSIONAMENTO DEI COMPONENTI
15
e calcolare la tensione di stress massima:
VSM max = VDM max = VOmax + VImax = 3, 7 + 4, 5 = 8, 2 ' 10V
(2.26)
è stato dunque scelto il diodo [9]. Calcolando la corrente rms sul diodo:
IDrms = √
1
IOmax
=√
= 1.56A
1 − 0, 591
1 − Dmax
e considerando dal modello LTSpice di questo diodo la resistenza
(2.27)
RF
sarà
possibile calcolare la potenza dissipata sulla resistenza parassita:
2
PRF = RF IDrms
= 0, 0299 × 1, 562 = 72, 76mW
(2.28)
Che sommata alla potenza dissipata sul diodo:
PV F = VF IOmax = 0, 3 × 1 = 0, 3mW
(2.29)
Avrà come risultato la potenza persa complessiva sul diodo:
PD = PV F + PRF = 0, 3 + 0, 073 = 0, 373 = 373mW
(2.30)
2.3.3 Dimensionamento della capacità
La scelta di una adeguata capacità avrà come eetto una variazione minima
della tensione
VOut .
In generale più sarà grande la capacità e più sarà piccolo il
ripple che manifesta ai suoi capi, ma dovendo anche fornire una corrente di circa
1A quando l'induttore si carica e il mosfet è in conduzione risulta di particolare
rilievo anche la resistenza parassita serie interna.
circa il 5%:
Considerando un ripple di
VOmax
3, 7
=
= 185mV
20
20
Vr =
(2.31)
E Assumendo un valore di caduta di potenziale picco-picco massima sulla resistenza interna
VRcpp =100mV
interna:
RCmax =
si ottiene il valore massimo della resistenza
VRcpp
IDM max
=
0, 1
= 44mΩ
2, 27
(2.32)
Per ottenere il ripple desiderato attraverso il ltro con la tensione:
VCpp = Vr − Vrcpp = 185 − 100 = 85mV
(2.33)
Si calcola la capacità minima:
Cmin =
Dmax VO
0, 591 × 3, 7
=
= 28µF
fs RLmin VCpp
250E 3 × 3, 7 × 0, 085
(2.34)
Scelto da 47µF. Per calcolare le perdite di potenza è prima necessario calcolare
la corrente rms sul ltro:
r
ICrms = IOmax
Dmax
=1×
1 − Dmax
r
0, 591
= 1, 2A
1 − 0, 591
(2.35)
Scegliendo la capacità con la resistenza equivalente serie più piccola ovvero
Rc =0,035Ω
data dalla tecnologia al Tantalio, la potenza persa sarà data da:
2
PRc = RC ICrms
= 0, 035 × 1, 2 = 42mW
(2.36)
CAPITOLO 2.
2.4
DIMENSIONAMENTO DEI COMPONENTI
16
Calcolo del rendimento
Il calcolo del rendimendo di un convertitore DC-DC prevede la conoscenza di
tutti parametri parassiti e del punto di lavoro, legato ad duty e al carico, per
il calcolo della potenza persa.
Il punto di lavoro e la potenza persa è stata
calcolata nelle condizioni peggiori di utilizzo, ovvero considerando il
Dmax
con le
relative correnti e tensioni e potenze calcolate precedentemente su ogni singolo
componente, ottenendo il rendimento
η
minimo del dispositivo.
La potenza
persa totale sarà:
PLS = PrDS + Psw + PD + PrL + PRc =
= 0, 279 + 6, 89E −12 + 0, 373 + 0, 149 + 0, 042 = 0, 843W
(2.37)
(2.38)
Il rendimento risulta:
η=
3, 7 × 1
PO
=
= 0, 814 → 81%
PO + PLS
(3, 7 × 1) + 0, 843
(2.39)
Questo valore dierisce da quello ipotizzato del 85% iniziale, e dovrebbe essere
iniziato un processo iterativo considerando il nuovo rendimento trovato e ricalcolandolo tutte le potenze riferite al nuovo duty riferito a questo valore, ma
considerando i valori dei componenti reali, che si discostano sempre dai valori forniti del costruttore di almeno un 2-3%, è possibile accettare questo dato
analitico e valutarne il valore eettivo una volta messo in opera il sistema.
2.5
Foglio di calcolo Excel
Volendo eettuare una variazione rapida dei parametri, sia per altri progetti
di DC-DC e sia per sviluppare al meglio il convertitore, è stato costruito un
foglio di calcolo Excel che vericasse velocemente i calcoli analitici in modo da
ottimizzare i parametri con i dati voluti. Per questo è stato pensato sia di poter
intervenire sul numero di batterie in serie, ed ottenere in tal modo i valori nominali di tensione, sia sulla tecnologia di realizzazione delle celle, e vericare con
le tensioni minime e massime il funzionamento desiderato. I colori della tabella
rappresentano i valori da inserire in blu scuro e quelli che ricava automaticamente in azzurro. Dovendo vericare il funzionamento sia da buck che da boost,
dato dall'uso di 2 o 3 pile in serie, è stato deciso di sdoppiare la tabella in due
righe ottenendo i funzionamenti limite nelle due congurazioni. Dalla tabella è
possibile notare che la tensione di ingresso con 3 pile scariche equivale alla tensione di ingresso con 2 pile cariche, per questa ragione è stato pensato utilizzare
le due congurazioni a ni didattici per evitare di attendere l'equivalente scarica
di 3 pile. Inoltre per il funzionamento sono stati considerati i casi limite sia con
2 pile scariche sia con 3 pile cariche. Volendo simulare il circuito su LTSpice
è stato vericato il duty per tutte le congurazioni possibili ottenendo il valore di induttanza minima richiesta per le varie congurazioni come è possibile
vedere dalla tabella sottostante. Chiaramente avendo considerato anche il caso
peggiore, ovvero anche con due pile scariche, il duty-cycle rispettivo riferito al
Led max acceso sarà più alto di quello considerato nei calcoli precedentemente.
Le approssimazioni usate dal programma risultano leggermente dierenti considerando le cifre decimali e per questo i risultati si discostano di poco da quelli
calcolati in precedenza.
CAPITOLO 2.
DIMENSIONAMENTO DEI COMPONENTI
Figura 2.2:
Prima parte del DC-DC sul foglio Excel.
17
CAPITOLO 2.
DIMENSIONAMENTO DEI COMPONENTI
Figura 2.3:
Seconda parte del DC-DC sul foglio Excel.
18
Capitolo 3
Modello ai piccoli segnali del
buck-boost e rete di
retroazione con controllo
digitale
In questo capitolo sono modellati il buck-boost PWM in funzionamento CCM
(Ÿ3.1) ed il LED di potenza a disposizione (Ÿ3.2).
A partire da questi mo-
delli si progetta un controllore digitale opportuno e si procede alla verica
del suo funzionamento in anello chiuso con opportune simulazioni Matlab e
Simulink(Ÿ3.3).
3.1
Modello ai piccoli segnali del buck-boost PWM
in funzionamento CCM Open loop
L'obiettivo di questa sezione è la costruzione di un modello ai piccoli segnali per
il buck-boost PWM in funzionamento CCM. A tal ne è necessario per prima
cosa modellare la cosidetta cella di commutazione, che risulta esser presente
in tutti i convertitori DC-DC, il cui schema è riportato in gura 3.1.
Le correnti totali istantanee e le tensioni possono essere presentate come somma
delle rispettive componenti DC ed AC, il ciclo di lavoro invece può essere espresso
come somma del valore nominale
D
e della sua perturbazione
quindi le seguenti relazioni:
19
d;
si ottengono
CAPITOLO 3. MODELLO PICCOLI SEGNALI E CONTROLLO DIGITALE20
Figura 3.1:
Schema della cella di commutazione.
iS = IS + is
(3.1)
iL = IL + il
(3.2)
iD = ID + id
(3.3)
vS = V S + vs
(3.4)
vLD = VLD + vld
(3.5)
vSD = VSD + vsd
(3.6)
vI = V I + vi
(3.7)
vO = V O + vo
d¯ = D + d
(3.8)
(3.9)
dove l'ampiezza delle componenti AC è assunta molto più piccola delle rispettive componenti DC.
Inoltre per l'analisi stazionaria dei convertitori deve risultare:
iS = d¯ · iL
vLD = d¯ · vSD
(3.10)
(3.11)
Sostituendo quindi 3.1, 3.2 e 3.9 in 3.10 si ottiene:
iS = (D + d)(IL + il ) = D · IL + D · il + d · IL + d · il
(3.12)
Analogamente sostituendo 3.5, 3.6 e 3.9 in 3.10:
vLD = (D + d)(VSD + vsd ) = D · VSD + D · vsd + d · VSD + d · vsd
Si ipotizza che i termini
d · vsd
e
d · il
(3.13)
sono trascurabili nelle rispettive equazioni,
in questo modo si ottiene il seguente modello lineare della cella di commutazione
valido per un generico convertitore:
iS = D · IL + D · il + d · IL
vLD = D · VSD + D · vsd + d · VSD
(3.14)
(3.15)
CAPITOLO 3. MODELLO PICCOLI SEGNALI E CONTROLLO DIGITALE21
S
vSD
+
D
−
VSDd
+
il D
IL d
IL D
vsd D
+
VSD D
+
L
Figura 3.2:
S
Modello della cella di commutazione.
VSD
+
I LD
D
−
+
VSD D
L
Figura 3.3:
Modello dc della cella di commutazione.
Le equazioni 3.14 e 3.15 possono essere rappresentate da generatori di corrente
e tensione controllati, come è possibile vedere in gura 3.2, e sfruttando il principio della sovrapposizione degli eetti, è facile ricavare il modello DC (gura
3.3) ed AC (gura 3.4) della cella di commutazione.
Si introducono ora le seguenti funzioni di trasferimento:
vo (s) d(s) vi =0
vo (s) Mv (s) =
vi (s) Tp (s) =
(3.16)
(3.17)
d=0
Per poter caratterizzare un generico convertitore dc-dc nel dominio della frequenza è quindi possibile far riferimento allo schema a blocchi visibile in gura 3.5.
È ora possibile analizzare il buck-boost in gura 3.6 al ne di individuare
Tp (s)
e
MV (s), si noti che sono
rc del condensatore
resistenze serie
stati introdotti come elementi parassiti le
e
rl
dell'induttore, mentre l'interruttore è
considerato ideale. Utilizzando il modello ai piccoli segnali trovato per la cella
di commutazione (gura 3.4) si ottiene il modello circuitale in gura 3.7.
•
Calcolo Tp(s):
CAPITOLO 3. MODELLO PICCOLI SEGNALI E CONTROLLO DIGITALE22
S
D
−
vsd
+
VSDd
+
il D
IL d
vsd D
+
L
Figura 3.4:
Modello ac della cella di commutazione.
vo
vo’’ +
Mv
+
vo’
vi
Tp
d
Figura 3.5:
Schema a blocchi del modello in frequenza ai piccoli segnali di un
generico convertitore dc-dc.
S
D
iS
vI
iD
+
L
C
iL
Figura 3.6:
RLoad
rc
rl
Circuito del buck-boost con componenti parassite di induttore e
condensatore.
id
vsd
+
−
+
IL d
VSDd
Di l
+
+
vi
−
C
vsd D
+
RLoad vo
−
L
rC
il
Z1
rl
Z2
Figura 3.7:
Modello
per
piccoli
segnali
per
il
buck-boost
PWM
in
funzionamento CCM.
vi = 0
vsd = vi − vo = −vo
(3.18)
(3.19)
CAPITOLO 3. MODELLO PICCOLI SEGNALI E CONTROLLO DIGITALE23
IL · d + D · il = il + id
KCL:
il (1 − D) + id − IL · d = 0
(3.20)
il · z1 − vo + D · vo − VSD · d = 0
KVL:
il · z1 = vo − D · vo + VSD · d
il =
vo (1 − D) + VSD · d
z1
(3.21)
Sostituendo (3.21) in (3.20) si ottiene:
VSD · d(1 − D) vo
vo (1 − D)2
+
+
− IL · d = 0
z1
z1
z2
(1 − D)2
1
VSD (1 − D)
vo
+
+d
− IL = 0
z1
z2
z1
Inne da (3.23) è facile ottenere
z1 (s) = rl + s · L
e
z2 (s) =
È inoltre opportuno esprimere
(3.23)
Tp (s) :
VSD (1 − D)
IL −
vo (s) z1
=
=
Tp (s) =
d(s) vi =0
(1 − D)2
1
+
z1
z2
VSD (1 − D)
VSD (1 − D)
IL 1 −
IL z1 −
z2
IL z1
IL
=
=
(1 − D)2 z2 + z1
(1 − D)2
1
+
z1
z2
dove
(3.22)
(3.24)
1
)
Rload (rc + s·C
.
1
Rload + s·C + rc
IL
e
VSD
di
TP (s)
−IO = (1 − D)IL
D
VO = −
VI
1−D
in funzione di
VI :
(3.25)
(3.26)
IO
D
=
VI
(3.27)
(1 − D)Rload
(1 − D)2 Rload
D
(1 − D)VI + D · VI
= VI − VO = VI − −
VI =
=
1−D
1−D
1
VI
(3.28)
=
1−D
IL = −
VSD
•
Calcolo Mv(s):
Ponendo
modello di gura 3.8.
d=0
il modello in gura 3.7 si semplica nel
CAPITOLO 3. MODELLO PICCOLI SEGNALI E CONTROLLO DIGITALE24
id
−
vsd
+
Di l
+
vsd D
C
+
+
vi
−
RLoad vo
−
L
rC
il
Z1
rl
Z2
Figura 3.8:
KCL:
Modello per il calcolo di
il + id − D · il = 0
il = −
KVL:
Mv (s)
dove
id =
vo
z2
vo
id
=−
1−D
(1 − D)z2
(3.29)
vo − il · z1 + D · vsd = 0
il · z1 = vo + D(vi − vo )
il · z1 = D · vi + (1 − D)vo
(3.30)
Sostituendo (3.29) in (3.30) si ottiene:
vo
z1 = D · vi + (1 − D)vo
z2 (1 − D)
z1
−vo (1 − D) +
= D · vi
z2 (1 − D)
−
A partire da (3.23) è facile ottenere
vo (s) Mv (s) =
=−
vi (s) d=0
3.2
(3.31)
(3.32)
Mv (s):
D
z1
(1 − D) 1 +
z2 (1 − D)2
(3.33)
Modello Led di potenza
R
Come visto in Ÿ2.2, il LED di potenza scelto in questo elaborato è il Cree
R XR-E LED Cool White.
XLamp
Il datasheet di questo dispositivo [9]
non fornisce alcun modello matematico, limitandosi a riportare il graco della
caratteristica tensione-corrente del LED riportata in gura 3.9.
Al ne di costruire un modello matematico di questo dispositivo, si è provveduto a misurare alcune coppie corrente-tensione riportate in gura 3.10.
Eettuata quest'operazione è stato impostato un problema d'interpolazione
polinomiale per individuare i coecienti dell'equazione caratteristica del diodo:
iD = IS eK·vD − 1
dove:
(3.34)
CAPITOLO 3. MODELLO PICCOLI SEGNALI E CONTROLLO DIGITALE25
Figura 3.9:
White per
Caratteristica tensione-corrente del LED Cree XLamp XR-E Cool
Tj = 25◦ .
Figura 3.10:
Caratteristica tensione-corrente del LED Cree XLamp XR-E
Cool White con misure (Tj
= 25◦ ).
CAPITOLO 3. MODELLO PICCOLI SEGNALI E CONTROLLO DIGITALE26
1.1
Punti misurati sulla caratteristica del datasheet
Caratteristica del diodo per interpolazione
1
0.9
0.8
iD
0.7
0.6
0.5
0.4
0.3
0.2
0.1
2.8
2.9
3
3.1
3.2
3.3
3.4
3.5
3.6
3.7
vD
Figura 3.11:
Caratteristica tensione-corrente del diodo LED ottenuta per
interpolazione.
• IS
è l'intensità della corrente di saturazione.
• K
è una costante che dipende dalla carica elementare dell'elettrone
k , dalla
l'emissività .
costante di Boltzmann
giunzione e
temperatura assoluta
T
q , dalla
della supercie di
Il risultato di quest'operazione è dato dai seguenti parametri:
IS = 4.919 · 10−5
K = 2.697
[A]
(3.35)
−1
[V ]
(3.36)
Tali parametri deniscono il modello cercato del diodo LED e forniscono a
caratteristica in gura 3.11 .
Si vuole adesso denire il modello a piccoli segnali del diodo LED e dalla
gura 3.12 si vede che la caratteristica eponenziale del diodo può essere approssimata correttamente dalla retta tangente al punto di lavoro
(VD , ID ) =
(3.54V, 0.7A).
Figura 3.12:
Retta tangente al punto di lavoro
La conduttanza di piccolo segnale
gd
del diodo è:
(VD , ID )
del LED.
CAPITOLO 3. MODELLO PICCOLI SEGNALI E CONTROLLO DIGITALE27
∂iD = 1.893S
gd =
∂vD vD =VD
Quindi la resistenza ai piccoli segnali del diodo
rd =
rd
(3.37)
è data da:
1
= 0.528Ω
gd
(3.38)
Modellando il diodo come una resistenza risulta valido il modello a piccoli segnali
del convertitore con carico resistivo trovato in Ÿ3.1.
3.3
Progetto della rete di retroazione
Obbiettivo di questa sezione è controllare il buck-boost attraverso il cosiddetto voltage-mode control, si realizza dunque una retroazione sulla tensione di
uscita
vO
del buck-boost tramite un opportuno controllore che verrà discretiz-
zato per l'implementazione su DSP (digital signal processor). In gura 3.13 è
possibile vedere lo schema per il controllo in tensione di un convertitore dc-dc.
Voltage
reference
Error
Amplifier
Error signal
Controller
Control
voltage
Comparator
PWM signal
dc-dc Converter
Sawtooth
waveform
Output voltage
Figura 3.13:
Schema di principio del voltage-mode control per un convertitore
dc-dc.
In un convertitore dc-dc è molto importante il progetto di un circuito/algoritmo di controllo per:
•
Mantenere
•
Aumentare la stabilità del processo in catena chiusa; a tal ne è desiderato
vO
il più vicino possibile alla tensione di riferimento desiderata.
un margine di fase
mϕ > 45◦
e margine di guadagno
•
Reiettare disturbi sulla tensione d'ingresso.
•
Diminuire la risposta transitoria del convertitore.
mg
elevato.
Con riferimento a Ÿ3.1, è presentato il modello a piccoli segnali del convertitore ad anello chiuso utilizzando il voltage-mode control in gura 3.14,
dove
TPWM(s)
è la funzione di trasferimento che modella la modulazione
PWM che comanda il gate del mosfet del convertitore.
In particolare, con riferimento alla gura 3.15 si ha:
ve
dT
=
VM
T
d
1
=
ve
VM
(3.39)
(3.40)
CAPITOLO 3. MODELLO PICCOLI SEGNALI E CONTROLLO DIGITALE28
Mv
vi
vo’’
ve
+
vc
Tc
TPWM
d
vo’
Tp
vo
vf
vr
Figura 3.14:
Modello a piccoli segnali del convertitore ad anello chiuso
utilizzando il voltage-mode control.
v rampa (t)
VM
ve
t
d(t)
dT
t
T
Figura 3.15:
Modulazione PWM in un convertitore dc-dc.
ovvero:
TPWM =
dove
VM
1
VM
(3.41)
è l'ampiezza massima raggiunta dalla rampa e che in questo lavoro
risulta essere
VM = 1,
dunque
TPWM(s) = 1.
Per progettare un opportuno controllore
Tc (s)
è necessario studiare la fun-
zione ad anello aperto del sistema in gura 3.14 che coincide con
dunque stati studiati i diagrammi di Bode di
Tp (s)
Tp (s);
sono
nelle varie condizioni di
funzionamento del circuito: LED spento, LED nominale e LED a luce massima
(IO
= 3V ).
Utilizzando i
datasheet delle componenti scelte, in condizioni nominali del LED
= 1A)
in modalità buck (VI
(3.54V, 0.7A),
il caso peggiore in termini di
mϕ
= 4.35V )
e boost (VI
è dato dal buck-boost in funzionamento buck,
il cui diagramma di Bode è riportato in gura 3.16. Da tale diagramma di Bode
è possibile individuare margine di fase e di guadagno:
mg = 5.91dB;
mϕ = −53.2◦ ;
(3.42)
CAPITOLO 3. MODELLO PICCOLI SEGNALI E CONTROLLO DIGITALE29
Diagramma di Bode: mg = 5.91 dB, mφ = −53.2°
Modulo (dB)
30
20
10
0
Fase (deg)
−10
360
270
180
90
1
10
2
3
10
Figura 3.16:
4
10
Diagramma di Bode di
nominale del LED
(3.54V, 0.7A)
5
10
Frequenza (rad/s)
Tp (s)
6
10
7
10
10
in condizione di funzionamento
in modalità buck (VI
= 4.35V ).
I valori riportati in (3.42) sono indice che la funzione ad anello chiuso
W (s) =
Tp (s)
1 + Tp (s)
è instabile, infatti in assenza di controllore
W (s)
presenta
poli a parte reale positiva.
È dunque necessario individuare un opportuno controllore stabilizzante
di opportune prestazioni, operazione non banale in quanto
Tp (s)
Tc (s)
è un sistema a
fase non minima, con uno zero a parte reale positiva che in questo caso specico
risulta essere:
z1 ' 2.569 · 103 .
É dunque possibile impostare una sintesi per tentativi con il controllore che
è stato scelto in forma PI (proporzionale integrativo) con lo scopo di alzare
il margine di fase.
L'obbiettivo imposto per questa sintesi è
mϕ ≥ 60◦ ,
si
impongono quindi le seguenti condizioni:
|Tp (jωϕ )|db = 0
Tp (jωϕ ) = −180◦ + mϕ
(3.43)
Imponendo le condizioni in (3.43) è possibile trovare il seguente controllore PI:
Tc (s) = 0.0146 + 58.5 ·
1
s
(3.44)
il cui diagramma di Bode è riportato in gura 3.17.
Utilizzando il controllore PI in (3.44) si ottiene una nuova funzione d'anello
LC (s) = Tc (s) · Tp (s)
• mg = 15.5dB
che presenta:
e
mϕ = 60◦
per il funzionamento nominale del LED in
modalità buck (diagramma di Bode in gura 3.18).
• mg = 8.95dB
e
mϕ = 43.6◦
per il funzionamento nominale del LED in
modalità boost (diagramma di Bode in gura 3.19).
Trovato il controllore teorico tempo continuo è necessario trovare il corrispondente controllore tempo discreto per l'implementazione su DSP. A tal ne occorre discretizzare il termine integrale in (3.44) ad esempio attraverso il
CAPITOLO 3. MODELLO PICCOLI SEGNALI E CONTROLLO DIGITALE30
Diagramma di Bode di TC(s)
Modulo (dB)
0
−10
−20
−30
Fase (deg)
−40
0
−45
−90
2
10
3
4
10
5
10
10
Frequenza (rad/s)
Figura 3.17:
Diagramma di Bode di
Tc (s).
Diagramma di Bode L (s) (modalità buck): m = 15.5 dB, m = 60°
C
g
φ
Modulo (dB)
50
0
Fase (deg)
−50
270
225
180
135
90
1
10
Figura 3.18:
2
10
3
4
10
5
10
Frequenza (rad/s)
Diagramma di Bode di
LC (s)
6
10
10
7
10
in condizione di funzionamento
nominale del LED in modalità buck.
metodo metodo di Eulero in avanti:
Zt
yP I (t) = yP (t) + yI (t) = KP · e(t) + KI
e(τ )dτ
(3.45)
0
kTS
Z
yP I (kTS ) = KP · e(kTS ) + KI
e(τ )dτ
(3.46)
0
(k−1)T
Z S
yP I (kTS ) = KP · e(kTS ) + KI
kTS
Z
e(τ )dτ + KI
0
e(τ )dτ
(3.47)
(k−1)TS
kTS
Z
yP I (kTS ) = KP · e(kTS ) + yI (k − 1)TS + KI
e(τ )dτ
(3.48)
(k−1)TS
yP I (kTS ) ' KP · e(kTS ) + yI (k − 1)TS + KI
TS e (k − 1)TS
(3.49)
CAPITOLO 3. MODELLO PICCOLI SEGNALI E CONTROLLO DIGITALE31
Diagramma di Bode LC(s) (modalità boost): mg= 8.95 dB, mφ = 43.6°
Modulo (dB)
50
0
Fase (deg)
−50
270
225
180
135
90
1
10
Figura 3.19:
2
3
10
10
4
5
10
Frequenza (rad/s)
Diagramma di Bode di
LC (s)
6
10
7
10
10
in condizione di funzionamento
nominale del LED in modalità boost.
v_E
1
-KTs
1
-K-
z
Unit Delay
K_I
v_C
1
-KK_P
Figura 3.20:
PID discreto realizzato in Simulink per il convertitore buck-boost
in analisi.
dove
kTS , k ∈ N.
L'equazione alle dierenze (3.49) è facilmente implementabile in Simulink (gura 3.20) ed in qualsiasi linguaggio di programmazione per microcontrollori, si
nota inoltre che l'errore fatto dall'approssimazione del metodo di Eulero diminuisce col diminuire di
TS
che in questo elaborato è stato ssato a
10−5 s.
Per simulare il buck-boost in anello chiuso con controllore PI discreto è stato
realizzato un opportuno modello Simulink (gura 3.21) attraverso la combinazione di blocchi Simscape e Simulink, in particolare è stato necessario creare
anche un modello Simscape ad hoc per il LED di potenza.
Il ramo di retroazione del processo modella l'algoritmo di controllo del dsp ed
è stato impostato a tempo di discreto con
TS = 10−5 s,
dove la conversione tra
segnale analogico e digitale avviene nel blocco somma che fa la dierenza tra
la tensione di riferimento e la tensione
vO .
È stato inoltre realizzato un modello
Simulink del buck-boost in catena aperta, in tal modo è stato possibile vericare
la correttezza delle simulazioni Simulink con un equivalente modello realizzato
con Ltspice: entrambi i simulatori forniscono risultati in perfetto accordo.
Modello
Simulink
del
f(x)=0
v_I
Scope Duty Cycle
Solver
Configuration
powergui
Duty Cycle
4.5 V (buck)
v_C
PWM
PWM
Massa
s
d
L
+
PS S
D
-
i_L
retroazionato in tensione con controllore PI discreto.
convertitore
v_C
v_E
u
Controllore PI discreto
C
Controllo PI2
e
i_O
S PS
v_C
xlamp
pi vecchio
Led
v_E
Simscape
I
+
-
Scope i_O
+
-
+
-
Figura 3.21:
+
Continuous
Manual Switch
Ritardo
DSP
PS S
Vref
3.54
Led On
v_O
Vref1
3.1
Led Off
scope v_O
CAPITOLO 3. MODELLO PICCOLI SEGNALI E CONTROLLO DIGITALE32
buck-boost
PWM
+
V
-
I
+
CAPITOLO 3. MODELLO PICCOLI SEGNALI E CONTROLLO DIGITALE33
Si riportano nella seguente tabella 3.1 i risultati ottenuti dalle simulazioni
in catena chiusa del buck-boost:
Parametro
Modalità buck (VI
∆VO
∆IO
Tabella 3.1:
= 4.5 V )
Modalità boost (VI
0.118 V (3.33%)
0.157 A (22.42%)
=3 V)
0.120 V (3.39%)
0.191 A (27.8%)
Risultati ottenuti dalle simulazioni in anello chiuso del buck-boost
PWM.
In entrambe le modalità di funzionamento si ottengono risultati comparabili ed il funzionamento leggermente migliore della modalità buck è facilmente
spiegabile in quanto il controllore PI è stato costruito sul modello a piccoli segnali in modalità buck. È possibile vedere che il controllo voltage-mode con
PI adoperato ssa in modo accurato la tensione ai capi del LED, ma anche
piccole variazioni di quest'ultima producono per la caratteristica esponenziale
del LED variazioni non trascurabili sulla corrente
iO .
Ad ogni modo queste
variazioni di corrente non sono tali da produrre variazioni di luminosità apprezzabili all'occhio umano. In conclusione le simulazioni eettuate dimostrano che
il buck-boost è stato dimensionato correttamente e che il controllo presentato e realizzato in questo elaborato è una valida soluzione per pilotare LED di
potenza.
4
3.5
3
vO [V]
2.5
2
1.5
1
0.5
0
0
0.005
Figura 3.22:
anello chiuso.
0.01
0.015
0.02
0.025
Tempo [s]
Andamento nel tempo di
0.03
0.035
0.04
vO (t) in modalità buck,
0.045
0.05
simulazione ad
CAPITOLO 3. MODELLO PICCOLI SEGNALI E CONTROLLO DIGITALE34
0.8
0.7
0.6
iO [A]
0.5
0.4
0.3
0.2
0.1
0
−0.1
0
0.005
Figura 3.23:
0.01
0.015
0.02
0.025
Tempo [s]
0.03
0.035
0.04
0.045
0.05
Andamento nel tempo di iO (t) in modalità buck, simulazione ad
anello chiuso.
4
3.5
3
vO [V]
2.5
2
1.5
1
0.5
0
−0.5
0
0.005
Figura 3.24:
0.01
0.015
0.02
0.025
Tempo [s]
Andamento nel tempo di
vO (t)
0.03
0.035
0.04
0.045
0.05
in modalità boost, simulazione
ad anello chiuso.
1.2
1
iO [A]
0.8
0.6
0.4
0.2
0
−0.2
0
0.005
Figura 3.25:
0.01
0.015
0.02
0.025
Tempo [s]
Andamento nel tempo di
ad anello chiuso.
iO (t)
0.03
0.035
0.04
0.045
0.05
in modalità boost, simulazione
Capitolo 4
Realizzazione del circuito
In questo capitolo verranno discusse le modalità e gli strumenti utilizzati per la
realizzazione pratica del circuito nale e tutti gli accorgimenti presi al ne di
ottenere un prodotto funzionante.
4.1
Realizzazione dello schema elettrico
La realizzazione dello schema elettrico, in alcuni casi, può dierire molto da
quello ottenuto a seguito dello studio teorico di un problema. All'atto pratico
infatti non si può fare a meno di arontare questioni quali l'inserimento di test
point, resistenze di sensing, problemi dovuti alla raggiungibilità di alcune parti
del circuito (necessarie per debug) etc.
Tenendo conto di queste necessità è
stato elaborato lo schema elettrico della parte prettamente analogica (gura
4.1) e digitale(gura 4.2). La scelta di dividere il circuito in due parti è fatta
per avere la possibilità di cambiare con facilità la parte analogica, la quale può
essere nel tempo migliorata o completamente sostituita, mentre la parte digitale
necessita solo di un aggiornamento software.
Nello schema della scheda master possiamo notare sulla sinistra i componenti
necessari al corretto funzionamento del DSP, mentre sulla destra i collegamenti
che andranno ad interfacciarsi con la scheda analogica, la seriale che andrà ad
interfacciarsi con il PC ed inne il connettore per la sonda esterna di calore
che può essere collegata in un punto strategico del dissipatore per preservare il
led da surriscaldamenti che potrebbero danneggiarlo. La gran quantità di pin
che rimane scollegata concede agli sviluppatori la possibilità di aggiungere altre
utilità come led indicativi o altri tipi di componenti o sensori.
4.1.1 Interfacciamento con il PC
Una delle caratteristiche principali che contraddistingue il progetto è la grande
libertà di interfacciamento che il DSP mette a disposizione. Tra le periferiche
interne del dispositivo ci sono infatti le seguenti interfacce hardware:
I2C Si tratta di un protocollo di comunicazione molto famoso, che richiede
l'ausilio di solo due cavi e, che permette a molti dispositivi di aacciarsi contemporaneamente al bus.
35
Questo standard di comunicazione
CAPITOLO 4.
REALIZZAZIONE PRATICA DEL CIRCUITO
Figura 4.1:
Schema elettrico della scheda slave (analogica).
Figura 4.2:
Schema elettrico della scheda master (digitale).
36
CAPITOLO 4.
REALIZZAZIONE PRATICA DEL CIRCUITO
Figura 4.3:
37
Convertitore USB-RS232.
permette di coprire distanze di solo qualche metro e non è pratico per
l'interfacciamento con il PC.
SPI Si tratta anche questo di un protocollo molto diuso, che richiede l'ausilio
di 3 linee di comunicazione più una per ogni dispositivo che si aaccia
al bus. Questo standard permette di coprire distanze di pochi centimetri
ed anche se risulta molto più rapido dell' I2C rimane poco pratico per le
comunicazioni con il PC.
CAN Il protocollo CAN è stato progettato per lavorare in ambienti con elevati
disturbi elettromagnetici e, può coprire distanze anche di quante centinaio
di metri. Nonostante sia il più lento tra tutti i protocolli disponibili rimane
quello più ecace per il progetto in esame.
UART Questa periferica permette la gestione del protocollo seriale RS-232. Data
l'ampia diusione di tale standard nei PC da molti anni risulta il modo migliore per comunicare con esso. Questa periferica permette inoltre
buone velocità di comunicazione e può coprire distanze di qualche metro.
Come accennato nei punti precedenti la comunicazione per mezzo del protocollo
CAN è la migliore opzione, sebbene non sia stato adottato nella progettazione
del prototipo in esame. Si è optato invece per una comunicazione RS-232 poiché
richiede minori complicazioni hardware e software.
In tutti i PC si trovano
infatti già disponili i driver per la comunicazione seriale e, sono presenti in
commercio dei convertitori hardware di immediato impiego. Per l'utilizzo di un
protocollo CAN invece si sarebbe dovuto sviluppare entrambe queste parti che
non rappresentano un punto cruciale della trattazione. Sarà possibile in futuro
con leggere modiche hardware e software passare dall'uno all'altro.
Come è
vero che praticamente tutti i sistemi operativi hanno a disposizione driver per
la comunicazione seriale è anche vero che la grande maggioranza dei moderni PC
non possiede più un connettore COM (di tipico utilizzo per la comunicazione RS232). Quello che si fa allora è utilizzare un convertitore USB-RS232. I dispositivi
che si collegano all'USB possono infatti mostrarsi al PC come qualsiasi altra
periferica, nel nostro caso una seriale. Il convertitore utilizzato è il MM232R
mostrato in gura 4.3.
CAPITOLO 4.
REALIZZAZIONE PRATICA DEL CIRCUITO
38
4.1.2 Alimentazione
Le due parti del circuito, digitale ed analogica, possiedono due alimentazioni
distinte. Questo perché la parte digitale necessita di lavorare con tensioni stabilizzare a 3.3 Volt, mentre la parte analogica ha una escursione molto più ampia.
Tenere separate le due alimentazioni evita che i disturbi introdotti sulla linea di
alimentazione dalle rapide commutazioni del mosfet si ripercuotano sulla parte
digitale. Un'ulteriore vantaggio pratico è dato dal fatto che è possibile prevedere una alimentazione di potenza ed una di segnale, quest'ultima proveniente
direttamente dal bus di comunicazione.
4.1.3 Dimensionamento circuiti di prelievo
Un fattore molto importate nella realizzazione pratica del progetto sono i livelli
di tensione di funzionamento della parte analogica, che possono essere (come
accade in questo caso) incompatibili con la parte digitale, che ha l'esigenza di
campionare alcuni di questi valori. Poiché tutti i livelli di tensione da campionare
possono essere più alti della massima tensione sopportabile dal DSP si è scelto
di adattare i livelli con dei partitori di tensione. Si potrebbe essere tentati dal
realizzare questi partitori di tensione con dei valori alti di resistenza, in modo
da diminuire al massimo il loro eetto sulle linee controllate. Questo purtroppo
non è possibile poiché come specicato dal costruttore [3] la parte analogica del
DSP che si occupa del campionamento introduce alcune limitazioni. Nella gura
4.4 si può vedere il circuito equivalente di ingresso del campionatore riportato
dal costruttore. La capacità Cpin risulta trascurabile se la resistenza attraverso
la quale si collega la sorgente risulta minore uguale a 500Ohm.
Si è imposto
quindi nel partitore di prelievo di gura 4.5 i seguenti valori:
V LineM ax = 9V olt
V inM ax = 3, 3V olt
(4.1)
R1 = 390Ω
da cui
R2 = 225, 78Ω
(4.2)
Il valore commerciale più vicino risulta 220Ω che reinserito nei valori del partitore fa si che il valore massimo per
Vin
diventi 3,24 Volt. Questo fa si che nel
caso peggiore su ognuno dei due partitori resistivi scorra una corrente di 17mA
che andrà ad abbassare il rendimento del circuito.
4.2
Realizzazione del layout
Una volta arrivati alla versione denitiva dello schema elettrico si è passati alla
realizzazione del layout. Per fare questo ci siamo serviti del software freeware
Eagle CAD 6.3. La versione denitiva delle due schede (per comodità realizzate
entrambe a singola faccia) può essere apprezzata nella gura 4.6.
I due master sono quindi stati stampati su pellicola trasparente ad alto
contrasto permettendo lo sviluppo delle piastre ramate presensibilizzate tramite
esposizione a raggi ultravioletti. Successivamente si è provveduto all'incisione
per mezzo di soluzioni apposite e al taglio. Inne foratura e montaggio di tutti
i componenti. Le fasi della realizzazione sono riportate in gura 4.7.
CAPITOLO 4.
REALIZZAZIONE PRATICA DEL CIRCUITO
Figura 4.4:
Circuito di ingresso dei pin capionatori.
Figura 4.5:
Partitore di prelievo
39
CAPITOLO 4.
REALIZZAZIONE PRATICA DEL CIRCUITO
(a)
Master
.
Figura 4.6:
(b)
Slave
Layout dei due circuiti.
.
40
CAPITOLO 4.
(a)
(c)
REALIZZAZIONE PRATICA DEL CIRCUITO
Esposizione
.
(b)
Taglio foratura
.
Figura 4.7:
(d)
Incisione
Saldatura
Schede realizzate.
.
.
41
Capitolo 5
Implementazione rmware e
software
In questo capitolo verranno illustrate le parti fondamentali del software lato PC
e del rmware residente invece direttamente sul DSP che assieme costituiscono la
parte digitale del progetto. Verrà fornita inoltre una panoramica sulle periferiche
interne utilizzate del DSP.
5.1
Software
Per lo sviluppo del software sul lato pc è stato scelto il noto linguaggio di
programmazione C++, abbinato alle librerie Qt sviluppate dalla nokia (ora
appartenenti a Digia), che forniscono un'ampia gamma di utilità già sviluppate
ed ottimizzate.
Un altro componente essenziale che è stato utilizzato è dato
dalle librerie OpenSource QExtSerial che forniscono un comodo approccio alla
comunicazione seriale appoggiandosi anch'esse alle Qt.
Poiché sviluppato in
C++ non esiste un sistema operativo di riferimento da preferirsi per fare girare il
software, ma è suciente ricompilare il codice direttamente per l'OS desiderato.
Il software residente sul PC ha una duplice funzione; la prima di fornire una
base di debug durante il test del sistema permettendo di aprire o chiudere a
piacimento la catena di retroazione e permettendo di monitorare e salvare i dati
del controllore per vericarne il corretto funzionamento.
invece di fornire una
vREF
La seconda è quella
al PI tramite seriale e la possibilità di controllare
simultaneamente una grande quantità di dispositivi simili che condividono lo
stesso bus di comunicazione.
5.2
Il dsPIC33FJ128MC802
Per questo progetto è stato scelto un DSP a 16 bit della nota casa Microchip
Technology Inc. nello specico il modello dsPIC33FJ128MC802. Questo dispositivo risulta molto comodo per l'applicazione in esame poiché dotato di ottime
caratteristiche in termini di velocità, memoria ed in quanto consente di campionare vari ingressi in simultanea agevolando lo sviluppo del sistema in real time.
42
CAPITOLO 5.
IMPLEMENTAZIONE FIRMWARE E SOFTWARE
43
Il dispositivo, come riportato sul datasheet, possiede molte periferiche interne;
tuttavia verranno esposte solo quelle utilizzate:
UART
Questa periferica si occupa di fornire lo strato hardware necessario ad una
comunicazione seriale, gestisce inoltre in autonomia una grande varietà di
casistiche come l'errore di accavallamento dei caratteri ricevuti, la generazione di interrupt etc. Una precisazione da fare riguarda il fatto che questa
periferica è compatibile con la RS-232 per quanto riguarda il protocollo di
comunicazione, ma non per quanto riguarda i livelli logici.
Timers
Questa periferica contiene al suo interno vari contatori binari hardware,
che una volta avviati risultano completamente indipendenti dal resto delle
periferiche e del rmware.
Per mezzo di questi contatori estremamen-
te precisi è possibile generare eventi ad intervalli di tempo prestabiliti o
scandire le esecuzione di istruzioni in sistemi real time.
ADC
Questa periferica è di gran lunga la più importante per la realizzazione del
controllore, dispone infatti di 4 S&H congurabili per eseguire un campionamento in simultanea per non perdere informazioni di fase dei valori
campionati. Lo schema interno di questa periferica è riportato in gura
5.1. La velocità di questo convertitore è molto elevata considerando che
la sua ubicazione è interna al dispositivo e non esterna come invece molte
volte accade quanto c'è la necessità di alta velocità di campionamento.
Questo tra le altre cose riduce drasticamente la quantità di componenti
elettronici necessari al funzionamento della scheda. Inoltre, poichè la periferica è disponibile internamente, si risparmia l'onere di un'interfaccia con
un dispositivo esterno che richiede sempre una certa attenzione. Congurando la periferica per un campionamento di 10 bit si ha a disposizione
una velocità massima di campionamento di 1.1MS/sec per 1, 2 o 4 canali
in simultanea. E' possibile inoltre aumentare la precisione no a 12 bit
riducendo la velocità a 512kS/sec ed un singolo canale. Per la nostra applicazione questa possibilità è stata accantonata, tenendo presente che un
punto fondamentale del progetto è che le due tensioni ai capi del diodo
siano campionate nel medesimo istante.
PWM 6ch
Questa periferica mette a disposizione tutto l'hardware necessario alla generazione di un segnale rettangolare con periodo e duty cycle regolabile a
piacere entro alcuni limiti (320 step per passare dallo 0% al 100%). Un'utilità che si è rivelata fondamentale durante lo sviluppo dell'applicazione,
è la possibilità di scegliere lo stato della linea del PWM all'avvio ed al
reset (che può avvenire anche a causa di un errore software).
Come si
è accennato precedentemente infatti se per errore la linea PWM dovesse
rimanere allo stato logico alto per troppo tempo il canale del mosfet (e forse anche il circuito di alimentazione a monte) potrebbero venire distrutti
dall'eccessivo passaggio di corrente incontrollato.
DMA
L'azione di questa periferica non è immediatamente visibile e scontata
come potrebbe esserlo per le periferiche no a qui descritte. Il DMA svolge
semplicemente ed in autonomia (dopo un corretto settaggio) una serie di
operazioni sistematiche tra la memoria RAM e le periferiche sollevando
dall'incarico la CPU che può continuare quindi ad eseguire istruzioni no
a che non arriva un segnale di ne operazione.
A prima vista questa
CAPITOLO 5.
IMPLEMENTAZIONE FIRMWARE E SOFTWARE
Figura 5.1:
Schema a blocchi della periferica ADC.
44
CAPITOLO 5.
IMPLEMENTAZIONE FIRMWARE E SOFTWARE
45
funzionalità potrebbe sembrare superua ma analizzando bene il codice
e le tempistiche (come faremo in questo capitolo) si noterà come essa sia
essenziale al corretto funzionamento di sistemi in real time.
5.3
Firmware
L'ambiente di sviluppo fornito dal produttore è MPLAB che permette di impostare comodamente molte congurazioni del dsPIC e di sviluppare il sorgente
con il noto linguaggio di programmazione C.
5.3.1 Congurazione delle periferiche
Vengono adesso analizzate le esigenze di ogni periferica e la loro congurazione
dal punto di vista del rmware. In molte applicazioni questa parte può essere
sorvolata rimandando il lettore a manuali o tutorial. Nell'applicazione trattata
è invece necessario spiegare nel dettaglio alcune delle congurazioni poiché esse
fanno parte integrante del sistema di controllo.
Per questioni di leggibilità si
riporteranno solo i valori assegnati ad ogni registro essenziale su una tabella;
per il codice completo si rimanda alle appendici. La prima parte analizzata è
quella della periferica ADC:
Registro
Bits
Valore
Descrizione
AD1CON1
ADDMABM
1
Stand-alone DMA buer mode
AD1CON1
AD12B
0
Conversione a 10 bit
AD1CON1
FORM
0b00
Unsigned integer format
AD1CON1
SSRC
0b010
Campionamento dettato dal Timer 3.
AD1CON1
ASAM
1
Il campionamento incomincia in automatico
AD1CON2
CHPS
0b10
Campiona CH0, CH1, CH2 e CH3
AD1CON2
SMPI
0
Incrementa contatore ad ogni campione
AD1CON2
BUFM
0
Sposta tutto il campione di 16 bit insieme
AD1CON3
ADRC
0
Clock derived from system clock
AD1CON3
ADCS
4
Tad = 125ns
DMA0CON
SIZE
0
Chiedi una word alla periferica
DMA0CON
HALF
0
Interrupt quando tutto il blocco dati è nito.
Tabella 5.1:
Congurazione della periferica ADC.
In particolar modo occorre prestare attenzione alla specica scelta per il
campionamento che deve avvenire alla frequenza ssa di 100KHz quindi con un
periodo di
TS = 10µs.
Per garantire questa condizione è necessario che dopo
la chiusura del S&H (che avviene esattamente all'inizio di ogni campione) i 4
valori prelevati siano convertiti e l'uscita del controllore PI sia calcolata prima
che avvenga il successivo istante di campionamento. Se questa condizione non
dovesse essere vericata i risultati non sarebbero attendibili. In particolare il bit
AD12B posto a 0 specica che desideriamo una conversione a 10 bit. Settando
a 0 i bit ADRC del registro AD1CON3 si specica che il clock di lavoro per
la periferica è lo stesso utilizzato per il sistema; questo sappiamo essere un
CAPITOLO 5.
IMPLEMENTAZIONE FIRMWARE E SOFTWARE
46
oscillatore al quarzo dotato di enorme precisione. Settando invece i bit ADCS
al valore 14 (0000 1110) si specica quanto segue:
TAD = TCY · (ADCS + 1) =
con
TCY
1
· 5 = 125ns
40 · 106
(5.1)
periodo del clock di sistema alla frequenza di lavoro di 40 MIPS. Da
questa appena trovata si ricava il tempo totale di conversione per tutti e 4 i
campioni:
TSIM = TSM P + (M · TCON V ) = 6µs
con
(5.2)
M = 4 numero di canali campionati, TCON V = 12 · TAD tempo di conversioTSM P = 0 tempo di campionamento del segnale che
ne per ogni canale ed inne
è uguale a zero perché il S&H rimane sempre chiuso (caricandosi alla tensione
di linea) no a che non arriva l'interrupt di campionamento, in quell'istante si
chiude e comincia subito la conversione, annullando di fatto tale parametro. Le
congurazione per l'unico timer in uso sono invece riportate in tabella 5.2:
Registro
Bits
Valore
Descrizione
TMR3
0
Valore di partenza del timer.
PR3
400
Colpi di clock dopo i quali viene generato interrupt
Tabella 5.2:
Congurazione del timer per il real time.
Il timer molto semplicemente si limita a contare a partire dal valore impostato nel registro TMR3 no ad arrivare al valore impostato in PR3, ogni
conteggio se non diversamente specicato corrisponde ad un colpo di clock del
sistema
TCY = 25ns,
quindi si avrà:
TS = 400 ∗ TCY = 10µs
(5.3)
Arrivato alla ne del conteggio il timer sveglia la periferica ADC che apre il S&H
no a quel momento chiuso sulla linea e fa si che inizi la sequenza di conversione
discussa precedentemente.
5.3.2 Il regolatore PI
In questa sezione viene spiegato il regolatore PI che risulta composto da due
parti di codice. Nella prima parte si dichiara la struttura per il regolatore
Codice 5.1:
Struttura dati del PI.
typedef struct {
float Gain ;
float IGain ;
float Up_Limit ;
float Low_Limit ;
float Integrator ;
bool sat ;
} reg_PI ;
nella seconda invece si crea la funzione che calcola l'uscita del regolatore.
CAPITOLO 5.
IMPLEMENTAZIONE FIRMWARE E SOFTWARE
47
float calc_PI ( reg_PI * Pi , float input , float ts )
{
}
float out ;
// Pi . Integrator = Pi . Integrator + input * Pi . IGain ;
out = ( Pi - > Gain * input ) + Pi - > Integrator ;
if (( out >= Pi - > Low_Limit ) && ( out <= Pi - > Up_Limit )){
Pi - > Integrator += input * Pi - > IGain * ts ;
Pi - > sat = false ;
} else {
if ( out < Pi - > Low_Limit )
out = Pi - > Low_Limit ;
else
out = Pi - > Up_Limit ;
if ( Pi - > Integrator < Pi - > Low_Limit )
Pi - > Integrator = Pi - > Low_Limit ;
else
Pi - > Integrator = Pi - > Up_Limit ;
Pi - > sat = true ;
}
return out ;
In questo modo è stato discretizzato lo schema a blocchi tempo continuo di gura 5.2 come visto in Ÿ3.3. Gli argomenti della funzione sono input (l'errore), una
variabile che rappresenta il nostro regolatore ed inne il tempo di campionamento in secondi. Occorre precisare inne che tale codice funziona correttamente
solo se chiamato ad intervalli regolari di tempo uguale a
è
TS
che nel nostro caso
10µs.
Figura 5.2:
Schema a blocchi tempo continuo che viene implementato
attraverso la funzione 5.3.2.
5.3.3 Il ramo di feedback
Sono adesso analizzate quelle parti di codice che permettono al regolatore di
svolgere correttamente le sue funzioni, mantenendo però disponibili altre importanti funzionalità. Una delle caratteristiche del progetto è la possibilità di
vedere i risultati dei calcoli e lo stato in cui si trova il controllore, per far si che
CAPITOLO 5.
IMPLEMENTAZIONE FIRMWARE E SOFTWARE
48
l'invio di questi dati non occupasse troppe risorse si sono denite delle apposite
variabili create ad hoc:
typedef union {
float value ;
char valueChar [4];
} sFloat ;
La variabile sFloat (serial oat) può essere trattata a piacimento sia come oat
vero e proprio nel caso in cui si eettuano calcoli, che come serie di char utili
invece quando si vuole inviare il dato attraverso la seriale senza essere costretti
a fare nessuna conversione. L'utilità di questa scelta dal punto di vista del risparmio di risorse è palese.
Si riporta adesso nel listato sottostante la funzione che si occupa invece dell'intera retroazione digitale.
void __attribute__ (( __interrupt__ , auto_psv )) _DMA0Interrupt ( void )
{
if ( adcCounterBuffer == 0){
// I dati sono nel buffer A
vLed . value = VSTEP * CONST *(( float ) BufferADCA [1] -( float ) BufferADCA [2]);
vBat . value = VSTEP * CONST *( float )( BufferADCA [2]);
} else {
// I dati sono nel buffer B
vLed . value = VSTEP * CONST *(( float ) BufferADCB [1] -( float ) BufferADCB [2]);
vBat . value = VSTEP * CONST *( float )( BufferADCB [2]);
}
adcCounterBuffer ^= 1; // Switch buffer
}
if ( pidON ){
// Qui viene calcolato il Pi e fatta la correzione del PWM
errore . value = vRef . value - vLed . value ;
out2 = calc_PI (& pid , errore . value , 0.00001);
P1DC1 = ( int )(320 * out2 );
}
IFS0bits . DMA0IF = 0;
La prima cosa da notare è che questa funzione non può essere richiamata
normalmente, ma viene eseguita a seguito di una catena di eventi qui elencati:
I Il timer nisce il suo conteggio e sveglia la periferica ADC.
II La periferica ADC apre simultaneamente tutti i S&H e da inizio alla fase
di conversione dei segnali.
III Il primo segnale viene convertito e scritto sul registro ADC1BUF0, come
si vede nella gura 5.1.
Alla ne della conversione viene generato un
interrupt che viene intercettato dal DMA. Il DMA si occupa di trasferire
il campione dal registro ADC1BUF0 alla porzione di RAM appositamente
riservata ai campioni, i vettori BuerADCX[Y].
IV Il punto III viene eseguito per tutti e 4 i canali, il trasferimento dei dati
alla RAM per mezzo del DMA avviene in contemporanea alla conversione del dato successivo (in questo modo tutte le tempistiche calcolate
precedentemente sono preservate).
CAPITOLO 5.
IMPLEMENTAZIONE FIRMWARE E SOFTWARE
49
V Alla ne della scrittura del quarto campione il DMA genera un interrupt
che esegue la funzione riportata nel listato 5.3.3
La prima istruzione eseguita è il controllo della variabile adcCounterBuer, questa variabile può essere 0 o 1 in funzione di quale buer di RAM debba essere
letto.
Sono presenti in memoria RAM due buer identici (BuerADCA[4] e
BuerADCB[4]) contenenti alternativamente i segnali campionati. Questi due
buer si scambiano secondo la tecnica ping-pong riportata nel manuale del DMA
[5]. Una volta stabilito il buer in utilizzo si prelevano i campioni e si eseguono
alcune conversioni. Nella posizione 1 del buer risiede il campione del canale
AN0 che corrisponde al segnale D+ del LED, mentre nella posizione 2 risiede il
campione del canale AN1 che corrisponde al segnale D-. L'informazione necessaria al ramo di feedback è
VLED = VD+ −VD−
che viene ricavata dalla seguente
istruzione:
vLed . value = VSTEP * CONST *(( float ) BufferADCA [1] -( float ) BufferADCA [2]);
Il risultato della conversione proveniente dal convertitore analogico digitale è un
numero intero compreso tra 0 e 1024, ogni passo ha un valore in tensione pari
3.3
1024 = 0.0033222656V olt che viene quindi moltiplicato al risultato
della dierenza dei due campioni per avere la tensione eettivamente applicata
a
VST EP =
al pin del DSP. Un'ulteriore costante correttiva è applicata per compensare il
fatto che la tensione è prelevata per mezzo di un partitore di tensione, quindi conoscendo i valori di tale partitore (discusso nei capitoli precedenti) si ha
390+220
= 2.7727272727. Questi dati nel caso in cui la variabile
220
pidON sia false non vengono utilizzati, ma solo memorizzati temporaneamente
CON ST =
nella RAM ed eventualmente (se perviene una richiesta dalla seriale)inviati al
PC; in questo caso il circuito è controllato in catena aperta ed il PI non ha la
possibilità di variare il PWM. Al contrario nel caso in cui la variabile pidON sia
true allora l'errore dato dalla dierenza tra la vRef (ricevuta tramite seriale) e,
vLed (misurata come precedentemente descritto) vanno a fornire l'input per il
calcolo della retroazione. In questo caso il PI può aggiornare il valore di PWM
da un minimo del 0 ad un massimo di 320, questo range è quello disponibile per
il dispositivo con la frequenza di lavoro scelta (si veda la congurazione della
periferica PWM). Il valore calcolato viene quindi messo nel registro P1DC1 che
provvede ad aggiornare il duty-cycle al successivo periodo disponibile.
5.3.4 Il le Main.c
Nel main (che per questioni di leggibilità non viene riportato per intero) si
trovano inizialmente le seguenti istruzioni
DMA0STA
DMA0STB
DMA1STA
DMA1STB
DMA2STA
=
=
=
=
=
__builtin_dmaoffset ( BufferADCA );
__builtin_dmaoffset ( BufferADCB );
__builtin_dmaoffset ( BufferRxA );
__builtin_dmaoffset ( BufferRxB );
__builtin_dmaoffset ( BufferTx1 );
con queste si impostano gli indirizzi di riferimento con il quali i vari canali
del DMA andranno ad interagire. Vengono successivamente richiamate tutte le
funzioni di settaggio delle periferiche descritte precedentemente, viene inoltre
settata la giusta direzione per gli I/O utilizzati. Per congurare i parametri del
PI all'avvio invece si utilizza il seguente codice
CAPITOLO 5.
IMPLEMENTAZIONE FIRMWARE E SOFTWARE
50
pid . Gain = 0.014602019758039;
pid . IGain = 58.548510882553350;
pid . Integrator = 0;
pid . Low_Limit = 0;
pid . Up_Limit = 0.8;
pid . sat = false ;
nel quale si impostano i guadagni calcolati attraverso le simulazioni ed i valori
di saturazione massimi per l'integratore e l'uscita: 0% e '80% rispettivamente
per il valore di duty cicle inferiore e superiore. Il main vero e proprio è riportato
di seguito
while (1){
if ( monitorFlag ){
PWM . value = ( float ) P1DC1 ;
test1 . value = pid . Gain ;
test2 . value = pid . IGain ;
test3 . value = pid . Integrator ;
UART1monitorSend (& vLed , & errore , & temperatura , & PWM , & test1 , & test2 , & test3 )
monitorFlag = 0;
}
}
è molto semplice e non svolge nessuna funzione se non quella di entrare in un
ciclo innito. Nessuna istruzione viene eseguita dentro al main poiché tutto ciò
che riguarda il controllo è gestito automaticamente dalle funzioni preimpostate.
All'interno dell'unica if presente si entra solo quando c'è una richiesta da parte
dell'utente di un pacchetto monitor, quest'ultimo è formato da una serie di dati
di controllo che fornisce un resoconto sullo stato del controllore ad un certo
istante di tempo (qui è fondamentale l'utilizzo del nuovo di tipo dichiarato
sFloat).
5.3.5 La comunicazione seriale
Come è già stato accennato l'utilizzo della seriale è legato ad una sola questione
di comodità, qualsiasi altro tipo di comunicazione può essere utilizzato lasciando
inalterate le caratteristiche del controllore n qui descritte.
La funzione di
ricezione viene riportato nel listato sottostante.
void __attribute__ (( __interrupt__ , auto_psv )) _DMA1Interrupt ( void )
{
if ( rxCountBuffer == 0){
// I dati stanno nel buffer A
if (( BufferRxA [0] & 0 x00FF ) == '@ ' ){
monitorFlag = 1;
} else if (( BufferRxA [0] & 0 x00FF ) == 'k ' ){ // K
copyVariable ( BufferRxA , & k );
pid . Gain = k . value ;
} else if (( BufferRxA [0] & 0 x00FF ) == 'i ' ){ // Ki
copyVariable ( BufferRxA , & ki );
pid . IGain = ki . value ;
} else if (( BufferRxA [0] & 0 x00FF ) == 'v ' ){ // Vref
copyVariable ( BufferRxA , & vRef );
CAPITOLO 5.
IMPLEMENTAZIONE FIRMWARE E SOFTWARE
} else if (( BufferRxA [0] & 0 x00FF ) == 'y ' ){
copyVariable ( BufferRxA , & dty );
P1DC1 = ( int ) dty . value ;
} else if (( BufferRxA [0] & 0 x00FF ) == 's ' ){
copyVariable ( BufferRxA , & timeSoft );
softStartFlag = 1;
} else if (( BufferRxA [0] & 0 x00FF ) == 'o ' ){
pidON = 1;
} else if (( BufferRxA [0] & 0 x00FF ) == 't ' ){
pidON = 0;
P1DC1 = 0;
}
} else {
...
}
rxCountBuffer ^= 1; // Switch buffer
51
// Duty
// Softstart
// On PID
// Stop pid
IFS0bits . DMA1IF = 0;
}
Anche qui per la ricezione si utilizza la tecnica ping pong, quindi in RAM saranno presenti due buer di identiche dimensioni che si alternano la memorizzazione
dei caratteri in arrivo. L'esecuzione di questa funzione è del tutto simile a quella che regolamenta il feedback, infatti il codice viene eseguito a seguito della
ricezione consecutiva di 5 caratteri da parte della seriale. Il messaggio ricevuto
deve avere la seguente sintassi per essere interpretato correttamente: La parte
Figura 5.3:
Struttura di un comando interpretabile.
cerchiata di celeste è un carattere ascii, seguito dalla parte cerchiata in arancione che invece è una serie di 4 caratteri che viene interpretata in maniera diversa
in funzione del tipo di comando ricevuto. Come si vede dalla funzione il primo
carattere viene confrontato con una lista di possibilità in base alle quali poi
viene compiuta una azione diversa. I comandi disponibili ad ora sono:
@
Richiesta di un campione da parte del PC, con la ricezione di questo ca-
rattere i 4 caratteri successivi vengono ignorati e viene alzato il ag monitorFlag che, come è stato visto in precedenza, viene elaborato all'interno
del ciclo innito del main.
k
Richiesta di variazione in real time del guadagno proporzionale. I successivi 4 byte vanno a comporre un singolo valore oat che poi viene assegnato
al guadagno proporzionale del PI.
i
Richiesta di variazione in real time del guadagno integrativo. Del tutto
simile al punto precedente.
v
Richiesta di variazione in real time del valore di tensione di riferimento. I 4
byte successivi vanno a comporre un oat che poi sarà il nuovo riferimento
di tensione da inseguire per il controllo. Questa possibilità di variazione è
una delle caratteristiche fondamentali del progetto.
CAPITOLO 5.
y
IMPLEMENTAZIONE FIRMWARE E SOFTWARE
Richiesta di variazione in real time del valore di duty cycle.
52
I 4 byte
successivi al carattere di comando vanno a costituire un oat che poi viene
successivamente trasformato in intero ed inserito nell'apposito registro che
attua la variazione.
s
Richiesta di soft start. I primi due byte successivi al comando andranno
a comporre il numero intero di millisecondi in cui si desidera che il duty
cycle arrivi al valore impostato dal numero intero composto dai successivi
due byte che seguono. Una volta che si è arrivati al duty cycle desiderato
nel tempo desiderato la funzione chiude la catena di controllo settando ad
1 il ag
o
pidON.
Richiesta di accensione del controllore. Questa funzione molto semplicemente setta il ag
pidON ad 1, conseguentemente si attiva la retroazione
di controllo. Il 4 byte successivi al carattere di comando vengono ignorati.
t
Richiesta di disattivazione del PI. Il ag
pidON viene impostato a zero
ed il duty cycle viene settato a zero per questioni di sicurezza. I 4 byte
successivi al carattere di comando vengono ignorati.
Risultati e Conclusioni
5.4
Prove sperimentali e risultati
Come primo passo sono state valutate le forme d'onda su alcuni punti fondamentali del convertitore al ne di vericarne il corretto funzionamento. Nella
gura 5.4 è possibile vedere la tensione di pilotaggio sul gate del MOSFET proveniente dal DSP. In particolare si può notare la presenza di uno smussamento
dell'onda rettangolare, dovuto al fatto che la corrente che carica la capacità di
gate è limitata, per questioni di sicurezza, da una resistenza di
10Ω.
La gura
5.5 mostra invece la tensione ai capi dell'induttore ed in accordo con la teoria
(in caso stazionario) l'area negativa risulta uguale all'area positiva rispettando
la condizione di bilanciamento dei Volt-Secondi. La gura 5.6 mostra invece
la tensione ai capi del diodo che risulta essere sempre negativa ed inferiore alla
tensione di break-down. Inne nella gura 5.7 è possibile apprezzare il ripple
di tensione ai capi del diodo LED in caso di funzionamento in modalità buck
e boost.
Per la modalità Boost è presente un ripple di
300mV ,
mentre nella
modalità Buck si può notare come invece questo ripple venga ridotto di circa la
metà: questi risultati sono in accordo con le simulazioni teoriche eettuate nel
Capitolo 3.
Nonostante siano state previste all'interno del circuito delle opportune resistenze di sensing per valutare le forme d'onda delle correnti; non è stato possibile
eettuare delle misure attendibili delle stesse in quanto lo strumento di misura
a disposizione si è dimostrato inadeguato.
Al ne di valutare la del dispositivo si è provveduto a valutarne il rendimento
calcolando la potenza assorbita dal diodo LED. Sono state tracciate due curve
per due diversi valori di tensione di alimentazione in ingresso:
to boost) e
4, 45V
3V
(funzionamen-
(funzionamento buck). Per eettuare la misura il circuito è
stato montato come in gura 5.8. Una volta ssata la tensione di ingresso
vI
si è
provveduto a variare il riferimento di tensione sull'interfaccia software, in modo
tale da ottenere tutta la gamma di correnti supportate dal LED. Monitorando
poi le tensioni e le correnti entranti ed uscenti dal convertitore si sono potuti
costruire i graci di gura 5.9 e 5.10.
E' possibile notare che ogni graco ripor-
ta non una ma due curve di rendimento. La curva denominata semplicemente
Rendimento riporta esattamente il rapporto tra la potenza in uscita e quella in
ingresso, mentre quella denominata Rendimento corretto toglie dal conteggio la
potenza dissipata sui partitori di tensione necessari al prelievo della tensione di
uscita per la retroazione. La potenza dissipata dai partitori di prelievo degrada sensibilmente il rendimento del convertitore, ma è bene precisare che questi
53
RISULTATI E CONCLUSIONI
Figura 5.4:
Figura 5.5:
54
Tensione di pilotaggio del gate
Tensione
vL
vGS .
ai capi dell'induttore.
RISULTATI E CONCLUSIONI
Figura 5.6:
(a)
55
Tensione ai capi del diodo.
Ripple in Buck mode
.
Figura 5.7:
Figura 5.8:
(b)
Ripple in Boost mode
Schede realizzate.
Circuito per la misura del rendimento.
.
RISULTATI E CONCLUSIONI
Figura 5.9:
Figura 5.10:
56
Rendimento con
Rendimento con
vI = 3V .
vI = 4, 45V .
RISULTATI E CONCLUSIONI
57
4
3.5
3
2.5
2
1.5
1
0.5
vref
0
vLED
−0.5
0.8
0.9
1
1.1
1.2
1.3
1.4
4
x 10
Figura 5.11:
Risposta al gradino in modalità buck, un campione ogni
5ms.
3.5
3
2.5
2
1.5
1
0.5
0
−0.5
0.8
0.9
1
1.1
1.2
1.3
1.4
4
x 10
Figura 5.12:
Andamento dell'errore
e = v R − vO
associato alla risposta al
gradino in modalità buck.
possono essere sostituiti con un apposito buer opportunamente dimensionato,
in grado di perturbare meno il rendimento totale. Un buer infatti permetterebbe di aacciarsi alle linee da monitorare con un'alta impedenza di ingresso e
al contempo con una bassa impedenza in uscita, come richiesto per il corretto
funzionamento della periferica ADC del DSP.
Grazie all'interfaccia software costruita è possibile salvare l'andamento di alcune grandezze d'interesse:
v O , vI , vR
e duty-cycle; è stato dunque possibile
utilizzare la comunicazione seriale per eettuare diverse prove al ne di vericare il funzionamento ad anello chiuso del dispositivo. In particolare nelle gure
5.11 e 5.14 è stata valutata la risposta al gradino in funzionamento buck e boost
del dispositivo, evidenziando un tempo di salita trascurabile.
Inoltre è stata valutata la tensione ai capi del LED
della tensione di alimentazione
a
3.42V ,
vI
vO
a fronte di variazioni
con una tensione di riferimento costante, pari
in modo tale da avere sul LED una corrente di circa
0.7A.
Come è
possibile vedere dalla gura 5.17 il controllore è in grado di reiettare le variazioni
della tensione di alimentazione modicando opportunamente il PWM (gura
5.19).
RISULTATI E CONCLUSIONI
58
0.5
0.4
0.3
0.2
0.1
0
2000
Figura 5.13:
4000
6000
8000
10000
12000
14000
Modulazione PWM associata alla risposta al gradino in modalità
buck.
3.5
3
2.5
2
1.5
1
0.5
0
vREF
v
LED
−0.5
400
Figura 5.14:
600
800
1000
1200
1400
1600
1800
2000
Risposta al gradino in modalità boost, un campione ogni
10ms.
3.5
3
2.5
2
1.5
1
0.5
0
−0.5
400
Figura 5.15:
600
800
1000
1200
Andamento dell'errore
1400
1600
e = v R − vO
1800
2000
associato alla risposta al
gradino in modalità boost.
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
400
Figura 5.16:
boost.
600
800
1000
1200
1400
1600
1800
2000
Modulazione PWM associata alla risposta al gradino in modalità
RISULTATI E CONCLUSIONI
59
8
vREF
v
LED
vI
7
6
5
4
3
2
0
500
Figura 5.17:
1000
1500
2000
2500
Tensione ai capi del LED
di alimentazione
vI ,
3000
vO
3500
4000
4500
5000
a fronte di variazioni della tensione
con una tensione di riferimento costante; un campione ogni
10ms.
0.15
0.1
0.05
0
−0.05
−0.1
−0.15
−0.2
0
Figura 5.18:
1000
2000
Andamento dell'errore
tensione di alimentazione
vI ,
3000
4000
e = vR − vO
5000
associato a variazioni della
con una tensione di riferimento costante.
0.7
0.65
0.6
0.55
0.5
0.45
0.4
0.35
0
Figura 5.19:
alimentazione
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
Modulazione PWM associata a variazioni della tensione di
vI ,
con una tensione di riferimento costante.
RISULTATI E CONCLUSIONI
5.5
60
Conclusioni e sviluppi futuri
In questo elaborato è stato studiato e realizzato un convertitore buck-boost
PWM con controllo digitale per LED di potenza. Lo studio è stato pensato per
un'applicazione d'illuminazione portatile con alimentazione d'ingresso variabile,
che sfruttando l'elevata emissione luminosa per Watt del LED risulta in grado
di fornire un'elevata durata della batteria e tempi di accensione e spegnimento
trascurabili. A tal ne è stato studiato (Capitolo 1) e dimensionato (Capitolo
2) un buck-boost in grado di pilotare adeguatamente un LED di potenza con
corrente nominale di 0.7 A. Si è provveduto a modellare il circuito ed a costruire un opportuno controllore PI tempo discreto sul modello individuato, così da
controllare il convertitore attraverso il cosiddetto voltage-mode control (Capitolo 3). Sono state dunque eettuate opportune simulazioni software mediante
LTspice, Matlab e Simulink e concluso lo studio teorico si è provveduto alla
realizzazione del progetto, al ne di validare gli studi teorici svolti.
Sono state quindi progettate e realizzate due schede: il convertitore buck-boost
ed un circuito di controllo che monta un dsp PIC, che consente il funzionamento
sia ad anello aperto che ad anello chiuso.
In particolare il controllore teorico
progettato nel Capitolo 3 è risultato funzionare correttamente sul convertitore
ed è in grado di fornire ripple limitati in tensione in accordo con l'analisi teorica eettuata. Non è stato possibile valutare il comportamento della corrente
sul LED poichè lo strumento di misura a disposizione è risultato inadeguato a
questo scopo.
In particolare la scelta di controllare il convertitore mediante un controllo digitale consente una maggiore essibilità anche in funzione di futuri nuovi sviluppi,
consentendo di migliorare e personalizzare l'applicazione attraverso modiche
software e non hardware.
In particolare è stata realizzata un'interfaccia con la quale è possibile tarare
da remoto i parametri del PI e regolare la tensione di riferimento per uno o
più dispositivi aacciati sul bus di comunicazione. Inoltre l'interfaccia software
realizzata consente di salvare l'andamento di alcune grandezze d'interesse del
dispositivo:
v O , vI , vR
e duty-cycle.
Il presente elaborato ha portato alla costruzione di un dispositivo molto essibile e con notevoli margini di miglioramento. Avendo infatti introdotto in un
circuito prettamente analogico una retroazione digitale sarà possibile sviluppare
in modo indipendente vari aspetti del progetto, in tal senso si propongono:
•
Miglioramenti circuitali : è possibile migliorare il rendimento del circuito
diminuendo la perturbazione introdotta dai canali di prelievo delle tensioni monitorate. Sostituendo infatti i partitori resistivi con un buer di
tensione opportunamente dimensionato è possibile eliminare la corrente
che scorre costantemente sulle resistenze di prelievo, ottenendo di conseguenza un miglioramento delle prestazioni in termini di consumi.
Un'ulteriore abbassamento dei consumi può essere ottenuto diminuendo la
velocità di calcolo del DSP; infatti nell'applicazione realizzata si è utilizzata la velocità massima, questa può però essere regolata dallo sviluppatore
a valori più bassi al ne di raggiungere il miglior compromesso in termini
di consumo/prestazioni.
Un'ulteriore miglioramento circuitale potrebbe essere l'introduzione di un
RISULTATI E CONCLUSIONI
61
apposito driver per il pilotaggio del MOSFET. Infatti nonostante si sia
appurato che le correnti erogabili dal DSP sono sucienti a pilotare il
transistor esse sono molto vicine ai valori massimi consentiti; questo può
tradursi in un abbassamento della vita del circuito ovviabile introducendo
un driver per ridurre tale stress.
•
Miglioramenti di controllo : Il fatto di avere un controllo implementato a
livello rmware permette grandi vantaggi per quanto riguarda l'implementazione di controlli avanzati (es. tecniche di controllo ottimo o adattativo). È possibile infatti senza modiche circuitali cambiare completamente
metodo di controllo. Può essere addirittura previsto per mezzo di un bootloader caricato sul DSP un aggiornamento del controllo a distanza o un
cambio di controllo in real-time.
•
Miglioramenti software : E' possibile realizzare un sistema complesso di
illuminazione in grado di gestire una grande quantità di dispositivi del
tutto simili a quello presentato in questo elaborato, al ne di realizzare
opere d'illuminazione su vasta scala o illuminazione decorativa (lighting
design). Concentrando l'attenzione sul software ed il bus di comunicazione sarà possibile delegare per intero la gestione di tali sistemi complessi
d'illuminazione ad un singolo calcolatore opportunamente programmato.
Bibliograa
[1] Marian K. Kazimierczuk, Pulse-width Modulated DC-DC Power Conver-
ters, Wiley, 2008.
[2] Microchip
Technology
Inc.,
dsPIC33FJ128MCX02/X04
Datasheet,
DS70291B, 2008.
[3] Microchip
Technology
Inc.,
Section
16.
Analog-to-Digital
Converter
(ADC), DS70183D, 2011.
[4] Microchip Technology Inc., Section 17. UART, DS70188E, 2011.
[5] Microchip Technology Inc., Section 38. Direct Memory Access (DMA),
DS70215C, 2011.
[6] Microchip Technology Inc., Section 14. Motor Control PWM, DS70187E,
2011.
[7] Cree, XLamp XR-E LED Datasheet, CLD-DS05.011, 2009.
[8] International Rectier, IRLML6346TRPbF Datasheet, PD-97584, 2010.
[9] STMicroelectronics, STPS1L30A/U Datasheet, 2003.
[10] F. Bisegna, F. Gugliermetti, M. Barbalace, L. Monti Stato dell'arte dei
LED (Light Emitting Diodes), 2010.
62
Scarica