L O STUDIO DI FATTIBILITÀ
Dopo l’acquisizione delle nozioni base riguardanti il problema della regolazione serie, è stata effettuata la modellizzazione del sistema in esame per poter ricavare, in seguito a simulazioni software, informazioni utili per la scelta di un microcontrollore equipaggiato con la giusta quantità, e qualità, di periferiche. In questo capitolo verranno presentati e discussi i risultati delle varie simulazioni che stanno alla base del successivo lavoro di progettazione del regolatore serie in tecnologia digitale.
Riferimenti bibliografici: [19], [11], [12], [13].
L E SIMULAZIONI
In questa fase del lavoro ci si è avvalsi dell’aiuto del potente ambiente di
calcolo offerto da MATLAB. È stata effettuata una simulazione preliminare per
determinare se il generatore è in grado di alimentare correttamente il carico per
ognuno dei suoi possibili valori. Date le specifiche del sistema, i problemi di
alimentazione si potranno verificare per alimentare un carico di pochi Ohm, in
quanto la partizione di V
gtra R
load, R
ge L
gpotrebbe generare una V
modi valore
troppo basso. Questa simulazione preliminare ha mostrato che per R
load= 1 non ci
sarà la possibilità di avere la V
load-RMSdesiderata, mentre già con 2 di carico, si
presenta la necessità della regolazione. In figura 3.1 è riportato l’andamento della
tensione sul carico, al variare della frequenza di V
g(e quindi anche della sua
ampiezza), per R
load= 1 .
Figura 3.1 – Andamento della tensione sul carico, per Rload=1
, al variare della frequenza di. Vg.Il modello simulato successivamente è stato quello proposto in figura 3.2, ed ha fornito informazioni sulla frequenza minima richiesta al generatore per fornire al carico la tensione RMS desiderata di 13,5 V, ossia la frequenza al di sotto della quale si è sempre in regime di regolazione passiva, a prescindere dal valore del carico, e sugli intervalli di conduzione richiesti in regime di alta velocità di rotazione.
Vmo
Vload
Rload 100 Lg 1m SW
Rg 1
-+
Vg
Figura 3.2 – Schema del circuito modellizzato durante le simulazioni per la determinazione della minima frequenza al di sotto della quale il sistema necessita sempre di una regolazione passiva.
Dalle specifiche del progetto risulta che V
gè direttamente proporzione alla velocità di rotazione del motore; inoltre questa tensione subisce una partizione tra R
ge R
load,tanto più evidente quanto più i valori della resistenza dell’utilizzatore
diminuiscono. Per questo motivo è ragionevole aspettarsi che per basse frequenze di rotazione il motore non sia in grado di fornire all’utilizzatore la tensione desiderata.
Questa è la così detta regolazione passiva durante la quale, con riferimento alla figura 3.2, l’interruttore SW viene tenuto sempre chiuso. Conoscere il valore minimo della frequenza alla quale il motore riesce a fornire al carico una tensione dal valore efficace maggiore dei 13,5 V richiesti, entrando quindi nella fase attiva della regolazione, è fondamentale per determinare le specifiche della prima periferica di cui dovrà essere equipaggiato il microcontrollore: il contatore.
Il contatore, riducendone all’essenziale la descrizione, è schematizzabile con un generatore di clock ed un registro, il cui valore viene incrementato ad ogni ciclo di
clock. Questa periferica scandisce il tempo all’interno del microcontrollore e graziead essa gli interruttori potranno essere pilotati con la giusta temporizzazione: è essenziale, quindi, scegliere la giusta velocità del clock e l’adeguata dimensione del registro del contatore per evitare il temuto overflow, ossia un azzeramento non desiderato, e conseguente al raggiungimento del valore massimo, del contenuto del registro.
La massima erogazione di tensione al carico avviene quando quest’ultimo
assume il suo massimo valore di resistenza; per determinare la minima frequenza del
generatore alla quale può instaurarsi il regime di regolazione attiva, nella
simulazione si è quindi imposto il più alto valore di resistenza ammesso dalle
specifiche, ossia R
load= 100 . Dalla seguente tabella, che riporta i risultati di questa
simulazione, si evince che a frequenze inferiori a 388 Hz il motore non è in grado di
alimentare correttamente il carico, per 100 e di conseguenza per nessuno degli altri
possibili valori. In figura 3.2, invece, sono riportati i lavori delle frequenze
necessarie per uscire dalla regolazione passiva anche per gli altri valori di R
load.
V
load-RMS(V) Frequenza di V
g(Hz) RPM motore (1/min)
13,248 380 760
13,283 381 762
13,318 382 764
13,352 383 766
13,387 384 768
13,422 385 770
13,456 386 772
13,491 387 774
13,526 388 776
13,561 389 778
13,595 390 780
13,630 391 782
13,665 392 784
13,699 393 786
13,734 394 788
13,769 395 790
Tabella 3.1 – Risultati delle simulazioni del circuito di figura 3.2. Oltre al valore efficace della tensione sul carico e alla frequenza della tensione del generatore, è riportato anche il numero corrispondente di giri al minuto del motore ottenibile tramite la relazione (0.1), ossia
60 /
f p
. Si noti come solo sopra i 388 Hz il generatore sia in grado di alimentare correttamente il carico.Figura 3.3 – Frequenza limite della regolazione passiva per ogni valore del carico. Con Rload inferiore a 10 il generatore deve lavorare ad alte frequenza per fornire all’utilizzatore la tensione RMS desiderata.
Il successivo obiettivo delle simulazioni è stato quello di misurare il più breve intervallo di tempo, nella fase di regolazione attiva, in cui gli interruttori devono rimanere chiusi per erogare al carico la tensione V*
RMS. Questo parametro si ricava imponendo al motore la sua massima velocità di rotazione ed al carico, ovviamente, il suo massimo valore di resistenza, ed è importante ai fini della scelta della seconda periferica: il Convertitore Analogico-Digitale.
L’ADC (Analog to Digital Converter) è un dispositivo che permette di
convertire una grandezza analogica in un valore numerico, ed in questo progetto è
utilizzato per leggere digitalmente la tensione ai capi del carico, per poterne ricavare
il valore efficace. Un tale dispositivo è caratterizzato, tra l’altro, dalla dinamica di
ingresso che determina i limiti di variazione dell’ampiezza della grandezza analogica
che deve convertire, dalla risoluzione, solitamente espressa in bit, che è un indice del
numero di valori discreti sui quali viene ricondotto l’ingresso, e dal Sampling Rate
(Frequenza di Campionamento, in italiano), sul quale si concentra questa nuova serie
di simulazioni. Questo parametro altro non è se non un indice della velocità di
conversione dell’ADC ed è fondamentale che sia dimensionato nel modo corretto affinché la serie di numeri prodotti dal convertitore permetta di risalire con la precisione desiderata al segnale analogico che l’ha generata.
In queste simulazioni in primo luogo è stato determinato il minimo intervallo di conduzione necessario per alimentare correttamente il carico massimo, alla massima frequenza del generatore, e di conseguenza alla massima ampiezza della tensione da esso prodotta. E’ stato simulato nuovamente il circuito di figura 3.2, ma stavolta con V
galla frequenza di 3 KHz e con SW inizialmente aperto e successivamente chiuso per intervalli di tempo sempre maggiori.
V
load-RMS(V) Intervallo di conduzione (µs)
Istante di chiusura dell’interruttore (µs)
13,4964 37,3965 138,2577
13,4973 37,3976 138,2567
13,4981 37,3987 138,2557
13,4989 37,3997 138,2547
13,4997 37,4008 138,2537
13,5005 37,4019 138,2527
13,5018 37,4029 138,2517
13,5022 37,4040 138,2507
13,5030 37,4051 138,2497
13,5038 37,4062 138,2487
Tabella 3.2 – Risultati delle simulazioni. Sono tabulati il valore RMS della tensione sul carico, l’istante in cui l’interruttore è stato chiuso (misurato a partire dall’inizio del semiperiodo positivo della tensione del generatore) ed il corrispondente intervallo di conduzione.
Dalla tabella 3.2, nella quale sono riportati i risultati di questo studio, si può vedere l’intervallo minimo di conduzione ha un valore di circa 37,4 µs.
Determinata la durata di questo intervallo, che da qui in avanti verrà chiamato
Ton
min, il modello schematizzato in figura 3.2 è stato modificato con l’inserimento,
in parallelo al carico, di un ADC con un numero di bit di risoluzione pari a 8, che
corrispondono a 256 livelli di quantizzazione, e una dinamica di ingresso che si estende tra 0 e 5 V, con a monte un partitore resistivo per adattare le escursioni di V
loadalla dinamica dell’ADC. La sequenza dei valori discretizzati della V
loadottenuta tramite il convertitore, è stata elaborata attraverso la (3.1), formula per il calcolo del RMS di una funzione tempo-discreta, per determinarne il valore efficace.
(3.1)
21
1
NRMS i
i
v v
N
.
Nella (3.1) N rappresenta il numero di elementi prelevati da V
loadsui quali viene effettuata la sommatoria; un tale numero varia a seconda del Sampling Rate del campionatore. Maggiore sarà N, più il risultato della (3.1) sarà simile al vero valore RMS della tensione, ossia quello che si ricava dalla seguente relazione:
(3.2)
2
1
2
2 1
1
T( )
rms T
v v t dt
T T
Variando, di volta in volta, la velocità del convertitore sono state effettuate
diverse simulazioni che, dal confronto tra i valori efficaci derivanti dalle (3.1) e (3.2)
riportato nella Tabella 3.3, consigliano l’utilizzo di un ADC in grado di prelevare
almeno 9 campioni della V
loaddurante Ton
min, ovvero con un Sampling Rate non
inferiore a 220 KHz, al fine di mantenere l’errore al di sotto dell’ 1%. Questo appena
effettuato è un dimensionamento worst case: una frequenza di V
modi 3 KHz ed un
carico di 100 sono le condizioni limite del funzionamento del convertitore; per
ogni valore di carico e frequenza inferiore a quelli presi in esame in queste
simulazioni avranno necessità di un intervallo di conduzione maggiore dei 37,4 µs
calcolati e quindi consentiranno un numero maggiore di conversioni.
RMS ideale (V)
Sampling Rate (KHz)
conversioni in Ton
minRMS calcolato (V)
errore %
13.5006 80 3 12,7794
-5,3417313.5006 100 4 13,2231
-2,0548713.5006 120 5 13,1757
-2,4058913.5006 140 6 13,3237
-1,3097513.5006 160 6 13,2531
-1,8328213.5006 180 7 13,4379
-0,4641513.5006 200 8 13,3392
-1,1952213.5006 220 9 13,4343
-0,4909113.5006 240 9 13,3756
-0,9254613.5006 260 10 13,4603
-0,2983113.5006 280 11 13,3818
-0,8798113.5006 300 12 13,4679
-0,2422913.5006 320 12 13,4015
-0,733813.5006 340 13 13,4804
-0,1494413.5006 360 14 13,4415
-0,43717Tabella 3.3 – Risultati delle simulazioni per la determinazione del Sampling Rate minimo.
Altre simulazioni del sistema saranno presentate nei successivi capitoli in
quanto, dopo lo studio di fattibilità, sono state ripetute tenendo presente le
caratteristiche del microntrollore scelto per la realizzazione della parte di controllo,
al fine di poter dimensionare correttamente l’algoritmo di controllo.
C ONSIDERAZIONI SULLA SCELTA DEL MICROCONTROLLORE PIÙ OPPORTUNO
In base alle specifiche del progetto ed ai risultati delle simulazioni sopra descritte, si è orientata la ricerca del microcontrollore verso un dispositivo equipaggiato con le seguenti specifiche e periferiche:
Frequenza di clock: come spiegato nei precedenti capitoli, è lo zero crossing che determina le tempistiche d’intervento del regolatore. V
moattraversa lo zero due volte in un periodo: sarà in quest’intervallo di tempo che il microcontrollore dovrà elaborare tutti i dati ricavati dal sistema. I limiti più stringenti a questa specifica saranno dati dalla massima frequenza raggiungibile da V
mo, che risulta essere 3 KHz. Un semiperiodo a questa frequenza ha la durata di circa 166 µs. Un’ipotesi verosimile è che il microcontrollore riesca ad eseguire un’operazione in un unico ciclo di clock;
sotto una tale ipotesi, verificata con la maggior parte delle operazioni e dei microcontrollori, si è stimato che già una frequenza di clock di 8 MHz sarebbe sufficiente a consentire tutte le elaborazioni necessarie, consentendo di effettuare circa 1300 operazioni nel semiperiodo di durata minima.
Interruzioni: normalmente l'esecuzione del codice da parte del processore è
sequenziale, seguendo il flusso logico del programma in esecuzione e senza
distrazioni da questo compito; l’interruzione è un’azione asincrona che
sospende l’attività normale del processore e determina l’esecuzione di
un’appropriata routine di sistema. In generale il processore risponde ad
un'interruzione (o interrupt) memorizzando le informazioni sul processo in
corso, individuando la sorgente dell'interrupt ed eseguendo un processo che
gestisce il servizio richiesto. Una volta completata l'esecuzione, il processore
riprende l'attività sospesa. Le richieste d’interruzione possono essere interne,
quando sono generate da periferiche interne al microcontrollore stesso, o
esterne, quando arrivano da un qualsiasi circuito esterno sui pin d’ingresso
del microcontrollore. Si è pensato di poter sfruttare il meccanismo delle
interruzioni per comunicare al microcontrollore gli istanti d’attraversamento dello zero (interruzioni esterne) e per determinare gli istanti di chiusura degli interruttori (interruzioni interne).
Comparatore analogico: il comparatore analogico è un dispositivo che effettua il confronto tra due grandezze variabili, una delle quali considerata come riferimento per l’altra, ed ha un’uscita che può assumere solo due valori: alto o basso, a seconda se la grandezza da confrontare sia maggiore o minore del riferimento. Alcuni microcontrollori sono equipaggiati con un comparatore analogico: si è orientata la ricerca verso un microcontrollore dotato di questa periferica, in modo da poter realizzare anche lo zero crossing senza dover ricorrere all’utilizzo di circuiteria accessoria.
ADC: in realtà le simulazioni per la determinazione del Sampling Rate minimo, sono state ripetute più volte variando anche il numero di bit di risoluzione. I risultati ottenuti hanno mostrato che, a parità di frequenza di campionamento, la precisione ottenuta risulta pressoché invariata all’aumentare dei bit di risoluzione. La dinamica d’ingresso degli ADC interni dipende dal range delle alimentazioni del microcontrollore stesso, per cui, durante la ricerca sul mercato, è stato trascurato questo parametro.
Timer: poiché si è pensato di utilizzare questa periferica come
frequenzimetro, ed allo stesso tempo per generare la temporizzazione degli
impulsi di On e di Off, per quest’ultima funzione si richiede al timer una
frequenza di clock non inferiore a 8 MHz. Con una tale frequenza è possibile
intervenire sulle temporizzazioni con step di ampiezza pari a 0,125 µs. Il
registro del contatore sarà azzerato ad ogni occorrenza dello zero crossing,
per cui, per svolgere correttamente la funzione di frequenzimetro, dovrà
essere in grado di contare un semiperiodo che varia tra 166,667 µs, che si ha
alla massima frequenza di V
mo, a 1,667 ms, che si ha in corrispondenza della
minima frequenza di lavoro. Ad essere discriminante per le specifiche di
questa periferica è il semiperiodo più lungo, in quanto alla fine di questo
intervallo di tempo nel registro del contatore sarà scritto il numero più
grande. Ad ogni ciclo di clock il timer incrementa di 1 il contenuto del suo
registro, per cui è possibile determinare il contenuto del contatore dopo 1,667
ms attraverso la (3.3), dove con C
*è indicato il valore del registro, con T
*l’intervallo di tempo in cui il timer è in funzione, e con f
timerla frequenza del clock della periferica, e int() è una funzione che restituisce la parte intera della moltiplicazione.
(3.3) C
* int( T
* f
timer)
In tabella 3.4 sono riportati i risultati della (3.3) calcolata con diverse frequenze del timer; inoltre è riportato il numero di bit del registro necessari a contenere il valore C
*, il valore massimo di C
*scrivibile all’interno del registro con quel dato numero di bit e la durata del periodo del clock del timer, che rappresenterà il minimo intervallo di correzione attuabile alla regolazione.
Un’altra caratteristica richiesta al timer è la funzione compare match. Questa funzione permette di poter scrivere, in un ulteriore registro della periferica, un valore numerico. Quando, a seguito degli incrementi del conteggio, il contenuto del registro contatore eguaglia il valore numerico inserito, la periferica invia una richiesta d’interruzione. Si intende sfruttare questa richiesta di interruzione per far eseguire al microcontrollore una routine che piloti gli interruttori.
f
timerC* Numero di bit C
*massimo T
timer=1/f
timer8 MHz 13336 16 65535 0.125 µs
16 MHz 26672 16 65535 62,5 ns
32 MHz 53344 16 65535 31.25 ns
Tabella 3.4 – Dati sul dimensionamento del timer.
Nella seguente tabella sono riassunte le specifiche richieste al microcontrollore più adatto alla realizzazione della parte di controllo del regolatore serie.
periferica caratteristica specifica frequenza clock 8 MHz Unità di calcolo interruzioni esterne presenti
interruzioni interne presenti
comparatore analogico presente
ADC
Sampling Rate 200 MHz
f
timer 8 MHz
timer numero bit contatore 16
compare matchpresente
Tabella 3.5 – Quadro sinottico delle caratteristiche richieste al microcontrollore. Per la frequenza di clock dell’unità di calcolo si è fatto riferimento all’architettura dei microcontrollori AVR della ATMEL, utilizzati per la realizzazione del progetto.