Capitolo 1 Motori stepper e tecniche PWM

Indice
Indice
Introduzione................................................................................................................. 3
Capitolo 1 ..................................................................................................................... 5
Motori stepper e tecniche PWM ................................................................................ 5
1.1 Generalità ........................................................................................................... 5
1.2 Il principio di funzionamento.............................................................................. 6
1.3 La struttura elettromeccanica............................................................................. 6
1.4 I cambi di velocità...............................................................................................7
1.5 La regolazione PWM della corrente................................................................... 9
1.6 Il pilotaggio dei motori stepper ........................................................................ 10
1.7 Il problema della massima velocità di rotazione.............................................. 12
Capitolo 2 ................................................................................................................... 14
Descrizione dell'unità di potenza ............................................................................. 14
2.1 Generalità sul motore NSK............................................................................... 14
2.2 Descrizione generale.........................................................................................14
Control stage............................................................................................................ 15
PWM stage ............................................................................................................... 16
Power stage.............................................................................................................. 18
Capitolo 3 ................................................................................................................... 19
Realizzazione del prototipo sperimentale ...............................................................19
3.1 Descrizione del layout circuitale ...................................................................... 19
3.2 Fotoincisione dei circuiti stampati ................................................................... 20
Pagina 1
Indice
Principi di base ..................................................................................................... 22
Esposizione ai raggi UV.......................................................................................23
Realizzazione del bromografo.............................................................................. 23
Sviluppo................................................................................................................ 25
Incisione................................................................................................................ 26
Foratura................................................................................................................. 26
Capitolo 4 ................................................................................................................... 27
Pilotaggio dell'unità di potenza................................................................................ 27
4.1 Creazione del diagramma di flusso con Simulink ............................................ 27
4.2 Utilizzo di ControlDesk..................................................................................... 29
Capitolo 5 ................................................................................................................... 30
Verifica sperimentale del prototipo ......................................................................... 30
5.1 Fase preliminare ...............................................................................................30
5.2 Prove sperimentali ............................................................................................31
Conclusioni................................................................................................................. 34
Appendice 1................................................................................................................. 35
Interfacciamento del DSP.........................................................................................35
Introduzione ............................................................................................................. 35
Indirizzamento del DSP ...........................................................................................35
Generazione del diagramma di flusso in Simulink .................................................. 37
Trasferimento dell’esperimento a ControlDesk ......................................................37
Gestione dell'esperimento in ControlDesk ..............................................................38
Appendice 2................................................................................................................. 40
Interfacciamento del TDS220 tramite Matlab 6.1 ................................................. 40
Pagina 2
Introduzione
Introduzione
Nell'ambito delle applicazioni robotiche, spesso sono richieste unità di potenza capaci
di poter pilotare diversi tipi di motori. In questo lavoro di tesi, è stata realizzata
un'unità di potenza a basso costo, in grado di pilotare con prestazioni soddisfacenti
due tipi di motori: il motore a riluttanza variabile e il motore a corrente continua.
Facendo riferimento alla figura 1, si è fatto uso di una scheda di processamento
digitale (DSP) e del software concesso in dotazione, per gestire l'unità di potenza. Da
un semplice personal computer viene generato il segnale di riferimento che, tramite il
DSP giunge all'ingresso di riferimento del controllore hardware. Successivamente
attraverso l'utilizzo di sensori ad effetto Hall viene misurata la corrente che scorre
all'interno delle fasi del motore. Questa misura è utilizzata per il controllo in
retroazione della corrente. La misura della corrente, insieme alla misura della
posizione angolare fornita da eventuali sensori di tipo encoder montati sul motore
stesso, possono inoltre essere inviati al DSP per essere elaborati dal PC nell'ambito di
leggi di controllo più sofisticate.
irif
Controllo
Software
Controllo
Hardware
Motore
θ
Figu
ra 0
DSP
DS1102
Sensore
i
Unità di Potenza
Encoder
Figura 1
Questa tesi costituisce un resoconto sulla realizzazione dell'unità di potenza
rappresentata dal blocco tratteggiato in figura 1.
Pagina 3
Introduzione
Nel capitolo 1 si affronta un discorso generale sui motori stepper, i loro pregi, i
difetti, il principio di funzionamento e la loro struttura elettromeccanica. Inoltre si
forniscono cenni sulla tecnica di regolazione PWM della corrente. Nel capitolo 2
sono riportate le generalità del motore a riluttanza variabile utilizzato in questo lavoro
di tesi, e si fornisce una descrizione generale dei tre stadi fondamentali in cui è stata
divisa l'unità di potenza realizzata. In maniera più dettagliata nel capitolo 3, dopo una
descrizione del layout circuitale con cui sono state realizzate le due schede principali
dell'unità di potenza, sono riportati e commentati i passi elementari che caratterizzano
la tecnica di fotoincisione dei circuiti stampati. Dopo la descrizione del prototipo, nel
capitolo 4 viene descritta la fase di pilotaggio, a partire dal diagramma di flusso
realizzato con Simulink, (che ha permesso di generare i segnali di riferimento per
pilotare il motore) fino alla descrizione dell'interfaccia grafica realizzata con il
pacchetto software ControlDesk. Nell'ultimo capitolo sono descritte le prove
sperimentali effettuate su un motore a riluttanza variabile disponibile presso il nostro
laboratorio di robotica. Infine, nell’appendice 1 sono descritti i passi necessari per
effettuare l’interfacciamento del DSP con il PC; mentre nell’appendice 2 sono
descritte le modalità per l’interfacciamento dell’oscilloscopio TDS 220 con il PC.
Pagina 4
Capitolo 1
I motori stepper
Capitolo 1
Motori stepper e tecniche PWM
1.1 Generalità
I motori passo-passo, spesso chiamati anche step o stepper, sono caratterizzati nel
panorama dei motori elettrici da una serie di particolarità che ne fanno la scelta
(quasi) ideale per tutte quelle applicazioni che richiedono precisione nello
spostamento angolare e nella velocità di rotazione, quali la robotica ed i
servomeccanismi in genere.
I vantaggi dei motori passo-passo sono principalmente i seguenti:
•
E' possibile realizzare azionamenti di precisione controllati da computer in
catena aperta, cioè senza utilizzare sensori di posizione o di velocità. Sono
quindi utilizzabili con relativa semplicità e senza richiedere particolare potenza
di calcolo.
•
Godono di un'elevata robustezza meccanica ed elettrica: infatti non esistono
contatti elettrici striscianti e, se necessario, possono essere realizzati anche in
esecuzione completamente stagna.
•
E' facile far compiere all'albero piccole rotazioni angolari arbitrarie in ambedue
i versi e bloccarlo in una determinata posizione.
•
La velocità di rotazione può essere molto bassa anche senza l'uso di riduttori
meccanici.
Oltre ai vantaggi citati, questi motori hanno anche degli svantaggi di cui i principali
sono i seguenti:
•
Richiedono una logica circuitale di pilotaggio.
Pagina 5
Capitolo 1
I motori stepper
•
Sono caratterizzati da un funzionamento “a scatti” e con forti vibrazioni,
soprattutto ai bassi regimi e se vengono adottate tecniche di pilotaggio troppo
semplici.
•
Hanno un costo elevato, relativamente ad altri tipi di motori con analoghe
prestazioni.
•
Possono garantire velocità di rotazione piuttosto limitate.
1.2 Il principio di funzionamento
I motori passo-passo sono motori che, a differenza dei classici motori elettrici, hanno
un’architettura capace di mantenere fermo l'albero in una posizione di equilibrio: se
alimentati si limitano infatti a bloccarsi in una ben precisa posizione angolare sotto
l’azione di una coppia.
Solo indirettamente è possibile ottenerne la rotazione: occorre inviare al motore una
serie di impulsi di corrente, secondo un'opportuna sequenza, in modo tale da far
spostare, per scatti successivi, la posizione angolare di equilibrio.
1.3 La struttura elettromeccanica
I motori passo-passo si dividono tradizionalmente in tre grandi gruppi: motori a
magnete permanente, motori ibridi e motori a riluttanza variabile. Un motore a
riluttanza variabile è costituito da un rotore in ferro dolce e da uno statore; in figura 2
è riportato un esemplare non particolarmente recente ma in cui si vede chiaramente
la struttura.
Figura 2
Pagina 6
Capitolo 1
I motori stepper
Con riferimento alla figura 2 il rotore appare come un insieme di ruote dentate
affiancate e solidali all'albero. Il numero di denti è variabile a seconda delle
dimensioni del motore. Inoltre, sul rotore non sono presenti fili elettrici: non è
necessaria alcuna connessione elettrica tra la parte in movimento e quella fissa.
Lo statore appare come il classico insieme di avvolgimenti ed il circuito magnetico è
costituito da 4 o, più frequentemente, 8 espansioni polari (in genere due per ogni
fase) da come si nota in figura 2. All'interno dello statore sono presenti piccoli denti
che si affacciano esattamente su quelli del rotore. In particolare, sono esattamente
affacciati al rotore solo il gruppo di denti appartenenti ad una fase; i denti relativi alle
altre fasi sono sfasati rispettivamente di 1/4, 1/2 e 3/4 del passo dei denti. Avvolti
intorno ai poli magnetici dello statore si trovano i fili che, quando percorsi da
corrente, generano il campo magnetico.
1.4 I cambi di velocità
Il motore passo-passo soffre di diversi problemi nel momento in cui viene effettuato
un cambio di velocità, a causa del suo principio di funzionamento che lo rende simile
ad un motore sincrono.
Tutti i dispositivi meccanici, a causa dell'inerzia, non possono subire accelerazioni
troppo brusche. Un classico motore elettrico, reagisce alla richiesta di improvviso
aumento di velocità, con un momentaneo aumento dell'assorbimento di corrente ed
un graduale e relativamente lento aumento di velocità. Al contrario, nel momento in
cui cambia bruscamente la frequenza in ingresso al dispositivo di pilotaggio del
motore passo-passo, lo stepper tenta di adeguarsi (quasi) istantaneamente alla nuova
velocità: se la coppia disponibile è sufficiente, vi è una brusca accelerazione,
praticamente istantanea; se la coppia non basta a vincere l'inerzia e gli attriti,
semplicemente il motore si ferma e, senza un intervento esterno, non è più in grado di
ripartire: si dice che il motore "ha perso il passo".
Questo comportamento deriva dal fatto che la velocità del motore è rigidamente
controllata dall'elettronica e che la corrente assorbita è fissa e praticamente
indipendente dalla coppia meccanica resistente.
Una simile reazione vi è anche nel caso di applicazione di un’improvvisa coppia
resistente al motore già in moto. Un motore DC, per esempio, rallenta per adeguarsi
alla nuova situazione ed eventualmente aumenta l'assorbimento di corrente. Uno
stepper invece non può rallentare: se la coppia resistente è relativamente piccola, la
velocità rimane costante; se la coppia è troppo grande, il motore perde il passo e si
ferma.
Questo comportamento è descritto dal grafico in figura 3, rappresentante il legame tra
coppia e velocità.
Pagina 7
Capitolo 1
I motori stepper
Figura 3
• Un curva identifica l'area, disegnata in grigio chiaro, entro cui il motore può
subire cambi di velocità e inversioni di marcia senza precauzioni particolari: è
sufficiente cambiare la frequenza con cui sono applicate le correnti alle fasi. Essa
è in genere indicata come curva di pull-in
• La zona indicata in grigio scuro, chiamata slew-range, può essere attraversata solo
a condizione di evitare bruschi cambiamenti di velocità. Il cambiamento di
frequenza deve quindi essere continuo e tanto più lento quanto più ci si allontana
dalla curva di pull-in.
• La curva di pull-out indica la massima coppia resistente che può essere applicata
al motore in rotazione ad una data velocità costante senza causare il blocco. Essa
rappresenta le massime prestazioni del motore.
Il grafico in figura 3 dipende non solo dalla struttura elettromeccanica del motore ma
anche dai dispositivi meccanici ad esso collegati (un aumento del momento di inerzia
del carico causa un restringimento dell'area di pull-in) e dal tipo di pilotaggio (una
migliore gestione delle correnti estende entrambe le curve, soprattutto alle velocità
più elevate).
Per i dispositivi commerciali, la documentazione relativa a tali curve non è sempre
disponibile, ma la conoscenza di queste caratteristiche dinamiche può servire come
riferimento nel progetto del software di controllo del motore: per esempio è
opportuno portare gradualmente il motore a regime con un riferimento a rampa, al
fine di portarlo a velocità più elevate.
In applicazioni critiche, è possibile utilizzare un sensore di velocità per riconoscere
l'eventuale blocco del motore, ma spesso si preferisce ignorare il problema ed,
eventualmente, abbondare un poco nel dimensionamento del motore.
Pagina 8
Capitolo 1
I motori stepper
1.5 La regolazione PWM della corrente
La regolazione Pulse Width Modulation (PWM) della corrente è il metodo utilizzato
per la costruzione dell’unità di potenza realizzata in questo lavoro di tesi, in base alle
migliori caratteristiche sia a livello di prestazioni che di consumo energetico.
L'idea su cui si basa la tecnica PWM è quella del cosiddetto “Voltage chopping”. A
mezzo di un semiponte di transistor configurati come interruttori, l’avvolgimento del
motore viene alimentato solo durante una frazione percentuale del tempo totale. In tal
modo, a causa dell’induttanza intrinseca dell’avvolgimento, la corrente si porta (dopo
un inevitabile transitorio) ad un valore di regime che viene mantenuto a meno di
piccole oscillazioni residue provocate dalla natura pulsante dell’alimentazione, e che
sono tanto più piccole quanto più alta è la frequenza del pilotaggio PWM.
Figura 4
In figura 4 è riportato l'andamento delle correnti nel caso in cui si desideri avere un
rettangolo di corrente nella fase. La curva in nero rappresenta il comportamento
ideale, la curva in grigio chiaro rappresenta l'andamento della corrente quando il
pilotaggio è lineare, tramite un semplice transistor (con alimentazione adeguata al
raggiungimento della corrente desiderata), la curva in grigio scuro rappresenta la
corrente con la regolazione PWM (con una tensione di alimentazione tre volte
maggiore), la curva tratteggiata rappresenta l'andamento della corrente nel caso in cui
non fosse spento il transistor al raggiungimento della corrente nominale (ovviamente
tale corrente sarebbe eccessiva e distruttiva per il motore e il transistor).
Si noti come con il pilotaggio PWM il tempo di salita della corrente è molto più
breve rispetto agli altri metodi sopra citati (in quanto è maggiore la tensione di
alimentazione).
Osservazione:
In questo capitolo, l'induttanza dell'avvolgimento è stata considerata costante. In
realtà l'induttanza dell’avvolgimento di motori stepper varia in maniera sostanziale
Pagina 9
Capitolo 1
I motori stepper
sia in funzione della corrente sia, soprattutto, in funzione della posizione angolare
dell'albero. Naturalmente il ragionamento di base non cambia, ma occorre tenere
presente questo fatto qualora si vogliano fare misure accurate dei parametri elettrici
di un motore a riposo, misure poi evidentemente non sufficienti a descrivere
adeguatamente i comportamenti osservati durante il movimento.
1.6 Il pilotaggio dei motori stepper
Esistono vari metodi per pilotare i motori stepper, uno di questi è quello
rappresentato in figura 5, denominato “ponte ad H”.
Figura 5
Il ponte ad H è composto generalmente da quattro MOSFet montati come in figura 4,
e quattro diodi necessari per il ricircolo della corrente residua nell’induttanza del
motore durante la fase di interdizione. Per far passare corrente nella fase devono
essere attivate contemporaneamente coppie di transistor in diagonale (M18 ed M17
per il passaggio della corrente in un verso, M19 ed M16 per il passaggio nell'altro
verso).
Occorre evitare nel modo più assoluto la contemporanea conduzione di due transistor
sullo stesso lato (per esempio M18 e M16), poiché si creerebbe un cortocircuito con
possibile distruzione dei transistor o dell'alimentatore.
Tornando al discorso della corrente residua, quando si pilotano carichi induttivi è
sempre necessario inserire nel circuito il cosiddetto "diodo di ricircolo", pena la
repentina distruzione del transistor di potenza a causa delle tensioni elevate generate
dal motore. Ciò succede perché ciascun avvolgimento del motore passo-passo è
sostanzialmente un induttore, cioè un oggetto che tende a mantenere costante la
corrente che in esso scorre. Quando un transistor si apre, la corrente istantaneamente
Pagina 10
Capitolo 1
I motori stepper
dovrebbe andare a zero; l'induttore tende però ad impedire questa repentina
diminuzione e per fare questo tende a far salire la tensione sul collettore del
transistor. Infatti se prendiamo in esame la formula matematica che lega la tensione,
rispetto alle variazioni di corrente, che avvengono all’interno di un induttore, si ha:
V (t ) = L
di(t )
dt
Con riferimento alla figura 5, assumiamo che M19 e M16 siano in conduzione. In tal
caso, l’induttanza è alimentata a tensione costante e la sua corrente si porta
esponenzialmente ad un valore di regime. Qualora uno dei transistor venga aperto
(cosa che accade nel funzionamento PWM), in assenza di diodi di ricircolo, si
imporrebbe una repentina riduzione di corrente che in base all’equazione sopra
riportata, provoca pericolosi picchi di tensione
La tensione arriva facilmente a picchi di centinaia di volt, che possono danneggiare i
transistor stessi. Tali picchi sono spesso chiamati "tensione di fly-back".
Per evitare questo fenomeno distruttivo, in genere, viene inserito in parallelo alla
bobina del motore un diodo che fornisce alla corrente una via alternativa a quella del
transistor nel momento in cui questo si apre.
Figura 6
Il catodo va connesso alla tensione di alimentazione per mantenere il diodo in
interdizione durante la fase di conduzione del transistor. Nello schema di figura 6 è
rappresentato l’andamento della corrente: a sinistra si considera la situazione in cui il
transistor è in conduzione (la corrente attraversa l'avvolgimento del motore ed il
transistor; nel diodo non passa corrente in quanto esso è polarizzato inversamente). A
destra invece si considera l'andamento della corrente subito dopo l'apertura del
transistor: la stessa corrente che prima attraversava il transistor ora passa nel diodo.
Quest’ultima situazione si esaurisce abbastanza rapidamente, non appena l’energia
immagazzinata nell’induttore sia stata dissipata sulle parti resistive del circuito.
Pagina 11
Capitolo 1
I motori stepper
I diodi da utilizzare devono avere due caratteristiche fondamentali:
• Essere veloci, essere cioè in grado di passare in poco tempo dalla condizione di
interdizione a quella di conduzione e viceversa. In genere sono richiesti tempi di
intervento dell'ordine dei 100 ns o anche meno. Per questo motivo non sono adatti,
per esempio i comuni 1N4001: troppo lenti.
• Essere in grado di gestire picchi di corrente elevati, in quanto al momento dello
spegnimento, tutta la corrente del motore passa nei diodi, ed in genere si tratta di
alcuni Ampere. Per questo motivo non sono adatti per esempio i comuni 1N4148,
che sopportano correnti dell'ordine dei 100 mA.
In genere, utilizzando un ponte ad H (ma anche in altre configurazioni), viene usato il
diodo del substrato sempre presente tra collettore ed emettitore del transistor (o tra
drain e source per i MOS). Questa scelta deve essere valutata con grande attenzione
in quanto molto spesso tale diodo è troppo lento e quindi inefficace. Se occorre
progettare il ponte ad H, è importante verificare questa caratteristica sui fogli tecnici
degli switch scelti (quando questa possibilità è prevista, essa è in genere riportata
esplicitamente).
Un problema legato all'uso dei diodi di ricircolo deriva dal fatto che la corrente che
attraversa i diodi "ritorna" verso la sorgente di alimentazione, causando a volte un
aumento anche considerevole della tensione. In genere l'alimentazione è costituita da
un ponte seguito da un condensatore di filtro: è opportuno che tale condensatore,
generosamente dimensionato, abbia una tensione di lavoro almeno doppia di quella
fornita dal ponte. In genere non è consigliabile usare, neppure per prova, alimentatori
stabilizzati, troppo facili da distruggere in questo modo, anche quando protetti.
1.7 Il problema della massima velocità di rotazione
Come già accennato, ciascun avvolgimento è sostanzialmente equivalente dal punto
di vista elettrico ad un induttore in serie ad un resistore.
In un motore passo-passo in rotazione, la corrente deve passare continuamente da un
valore nullo al valore nominale; se il motore deve ruotare velocemente, queste
commutazioni devono ovviamente essere rapide. Purtroppo la velocità di
commutazione è limitata dalla costante di tempo (indicata dalla lettera τ) del circuito
R-L costituito dall'avvolgimento stesso.
Un induttore tende a mantenere costante la corrente che scorre in esso. Applicando
una tensione a gradino ad un induttore la corrente aumenta secondo una curva
esponenziale il cui andamento dipende dalla costante di tempo:
τ=
La
Ra
Pagina 12
Capitolo 1
I motori stepper
dove La è l'induttanza (in Henry) ed Ra la resistenza (in Ohm) equivalente
dell'avvolgimento. In genere non è possibile agire su La per diminuire tale tempo in
quanto esso dipende dai parametri costruttivi del motore.
Come per tutti i motori elettrici, la coppia meccanica disponibile è proporzionale alla
corrente che attraversa gli avvolgimenti. Questo significa che durante la carica
dell'induttore che costituisce una fase, non tutta la coppia nominale del motore è
subito disponibile. Inoltre, quando la corrente deve andare a zero, in realtà essa
decresce lentamente, e analogamente anche il campo elettromagnetico della fase non
va repentinamente a zero tentando di "frenare" il motore.
Esistono diverse tecniche per ridurre il tempo di commutazione e quindi aumentare la
velocità di rotazione, una tra queste è l'aumento della resistenza interna
dell'avvolgimento.
Osservando la relazione sopra riportata si vede come, per diminuire la τ, basti
aumentare la Ra: la resistenza da utilizzare nella formula del tempo di carica è quella
dell'avvolgimento sommata ad una eventuale resistenza esterna da porre in serie
all'avvolgimento stesso.
Nel caso in cui venga aggiunta in serie all'avvolgimento una resistenza esterna, il
tempo di carica dipende da:
τ=
La
Ra + Rext
tempo evidentemente minore.
Bisogna però fare delle considerazioni: per ottenere la stessa corrente sia nel caso di
assenza che di presenza della resistenza esterna, si dovranno avere tensioni di
alimentazione diverse. Ad esempio, se si intende usare una Rext pari alla Ra, bisogna
raddoppiare la tensione di alimentazione, raddoppiando quindi la potenza elettrica da
fornire. La potenza in eccesso viene dissipata come calore nella resistenza esterna che
deve quindi essere opportunamente dimensionata.
È da notare anche che nel caso in cui sia presente la Rext, la resistenza stessa provvede
anche alla dissipazione della potenza accumulata nella fase durante il pilotaggio
PWM, rendendo più rapido il passaggio allo stato off.
Figura 7
Pagina 13
Capitolo 2
Descrizione dell'unità di potenza
Capitolo 2
Descrizione dell'unità di potenza
2.1 Generalità sul motore NSK
Prima di passare alla descrizione di com'è stata realizzata l'unita di potenza, bisogna
conoscere le caratteristiche tecniche del motore a riluttanza variabile utilizzato: il motore
è l'YS3040GN501 della NSK. Questo motore ha lo statore costituito da tre fasi, ognuna
con sei espansioni polari, arrivando così ad un totale di diciotto espansioni polari. Ogni
espansione è composta da 8 denti, per un totale di 144.
Il rotore invece, ha sulla sua circonferenza esterna un totale di 150 denti, aventi lo stesso
passo di quelli presenti sullo statore. In questo modo, sono esattamente affacciati al
rotore solo il gruppo di denti appartenenti alle espansioni polari di una singola fase; gli
altri gruppi sono sfasati rispettivamente di 1/3 e 2/3 del passo dei denti.
Inoltre, per come è strutturato il motore, per il numero di poli presenti all'interno di esso
e per la tecnica di pilotaggio utilizzata (vedi Capitolo 4), non possono esserci problemi di
blocco dovuti alla perdita di passo, come descritto nel capitolo precedente; bensì il
motore può rimanere fermo soltanto se la coppia disponibile non riesce a vincere l'inerzia
del rotore stesso.
2.2 Descrizione generale
L’unità di potenza realizzata, che permette il funzionamento del motore, è suddivisa
principalmente in tre parti:
• La prima (Control stage) è quella dedicata al controllo di corrente dove entrano i
segnali di riferimento e le misure di corrente, provenienti dai sensori.
• La seconda (PWM Stage) è quella dedicata alla generazione del pilotaggio PWM.
Pagina 14
Capitolo 2
Descrizione dell'unità di potenza
• La terza (Power stage) è quella dedicata all’alta potenza, da cui si prelevano i cavi di
potenza da connettere al motore.
Tutto ciò è rappresentato nello schema a blocchi di figura 8.
Figura 8
Come si può notare in figura 8, c’è un altro stadio non citato tra i precedenti, che è quello
per la generazione del trigger (Trigger generator), necessario al PWM per creare il
segnale modulante a 25KHz. Inoltre, sono forniti in uscita anche i segnali di misura della
corrente che scorre in ogni fase, provenienti da sensori ad effetto Hall.
Control stage
Più in dettaglio, la parte di controllo è costituita da:
• Un circuito, realizzato tramite un LM317, che genera un segnale di +5 volt (tarabile),
utilizzato dai successivi operazionali. Questo è necessario perché i sensori ad effetto
Hall generano un segnale in tensione proporzionale alla corrente che scorre al loro
interno. Questo segnale è compreso tra 0 e +10 volt, ma le misure vengono riferite
tutte a +5 volt; infatti, il sensore associa questo valore intermedio al passaggio nullo
di corrente. Per ogni Ampere, che scorre nella fase, l’uscita del sensore cresce o
decresce di un volt.
• Tre operazionali (LF353), uno per ogni fase, che effettuano la differenza (riferita a +5
volt) tra, il segnale di riferimento da inseguire e quello generato dai sensori ad effetto
Hall.
Pagina 15
Capitolo 2
Descrizione dell'unità di potenza
• Tre operazionali che permettono di effettuare il controllo di tipo proporzionale (P),
essendo stati montati come amplificatori invertenti.
• Tre operazionali utilizzati per effettuare il controllo di tipo integrativo (I), e quindi
montati in configurazione di integratori.
• Tre operazionali utilizzati per effettuare il controllo di tipo derivativo (D), quindi
montati in configurazione di derivatori.
• Infine, tre operazionali1 utilizzati per effettuare, ognuno, la somma dei tre segnali
provenienti dallo stadio di controllo proporzionale (P), da quello integrativo (I) e da
quello derivativo (D), per realizzare un unico controllore, uno per ogni fase, di tipo
PID.
All’interno dell’unità di controllo sono stati montati tre jumpers per ogni fase, utilizzati
per l’attivazione o disattivazione di ogni singolo stadio P, I o D, collegati ognuno ad un
diodo led che si accende quando il relativo stadio è attivo. Questo permette di scegliere
se utilizzare solo un controllo di tipo proporzionale P, oppure di tipo proporzionale
integrativo PI, proporzionale derivativo PD, o un controllo completo di tipo PID
proporzionale integrativo derivativo.
PWM stage
Lo stadio del circuito che genera il segnale PWM è composto da:
• Tre circuiti, uno per ogni fase, costituiti ognuno da un saturatore ed un buffer. Il
circuito di saturazione serve ad evitare che il segnale proveniente dal controllore
superi gli 8.2V e scenda al disotto di 1.8V, mentre il buffer, ottenuto utilizzando un
operazionale configurato in maniera opportuna, serve a disaccoppiare lo stadio PWM
dallo stadio di controllo.
• Un circuito realizzato con un NE555, che genera il segnale di trigger a 25Khz,
utilizzato dagli altri NE555 per generare il segnale PWM.
• Tre NE555, ognuno configurato in maniera da generare un’onda quadra con la stessa
frequenza del trigger, ma avente duty-cycle proporzionale al segnale proveniente
dall’unità di controllo. Per fare in modo che il segnale PWM sia generato in maniera
lineare, bisogna rendere lineare l’andamento del segnale di “threshold”
corrispondente alla carica di un condensatore. Ciò è stato ottenuto tramite un circuito
generatore di corrente costante realizzato con un transistor BC557.
In Figura 9 si può notare come viene generato il segnale di output (PWM) in
funzione del segnale di controllo.
1
Gli operazionali utilizzati effettuano tutte le operazioni riferendosi, come già detto in precedenza, ad una massa di segnale
corrispondente ai +5V generati dall’LM317.
Pagina 16
Capitolo 2
Descrizione dell'unità di potenza
Figura 9
• Un 74HC14 utilizzato per la generazione del ritardo della fase B rispetto alla fase A,
nel caso in cui si voglia utilizzare l'unita di potenza per azionare un motore a corrente
continua. Questo ritardo è generato perché, come si nota in figura 10, per far
funzionare il motore DC, vengono esclusi i due diodi di ricircolo presenti sul ponte
della fase A, ed al posto di questi vengono collegati, tramite altri due diodi, i
MOSFet della fase B, ottenendo cosi un ponte a quattro MOSFet.
Figura 10
Se non ci fosse il generatore di ritardo, durante il passaggio dalla fase A alla fase B
(o viceversa), potrebbe esserci un breve intervallo di conduzione contemporanea dei
MOSFet delle due fasi, dovuto al piccolo ritardo di spegnimento dei MOSFet
precedentemente in conduzione. Ciò provocherebbe un violento passaggio di
corrente verso massa, provocando la rottura certa dei MOSFet. Il generatore di
ritardo, consente l’entrata in conduzione dei MOSFet della fase B, solo dopo la totale
disattivazione di quelli della fase A, tenendo conto dell'eventuale ritardo di
spegnimento.
Pagina 17
Capitolo 2
Descrizione dell'unità di potenza
Power stage
La parte ad alta potenza è costituita da:
• Tre ponti ad H, costituiti ognuno da due MOSFet a canale N per il pilotaggio del
ponte e due diodi di ricircolo che, quando M1 ed M2 sono entrambi aperti,
permettono alla corrente residua contenuta nell'induttanza di tornare verso il circuito
di alimentazione (Ea) per permettere la scarica dell'induttanza stessa.
La configurazione del ponte sopra descritto e rappresentato in figura 11, permette una
gestione di tipo hard-chopping, in cui la corrente inizia a scorrere sul carico L solo
per valori di duty-cycle superiori al 50%.
Figura 11
• Tre sensori ad effetto Hall, uno per ogni ponte, che generano segnali proporzionali
alla corrente che scorre all’interno di ogni fase. Tale misura di corrente è necessaria
per il controllo in corrente che è stato adottato in questa unità di potenza.
• Tre integrati IR2113, ognuno utilizzato per il pilotaggio dei due MOSFet contenuti in
ogni ponte.
• Tre operazionali, utilizzati per bufferizzare i tre segnali provenienti dai sensori di
corrente.
Pagina 18
Capitolo 3
Realizzazione del prototipo sperimentale
Capitolo 3
Realizzazione del prototipo
sperimentale
3.1 Descrizione del layout circuitale
L’unita di potenza descritta nel capitolo precedente, è stata realizzata costruendo due
schede, una per i circuiti a bassa tensione ed una per i circuiti ad alta tensione.
Figura 12
La scheda di bassa tensione, rappresentata in figura 12, è stata divisa in quattro quadranti
fondamentali:
• In alto si trovano i tre controllori PID: uno per ogni fase.
Pagina 19
Capitolo 3
Realizzazione del prototipo sperimentale
• In basso, a sinistra c'è il generatore di trigger ed i tre saturatori+buffer del segnale di
ingresso al PWM generator.
• In basso, al centro ci sono i tre PWM generator, che generano il segnale che gestisce
la scheda ad alta tensione.
• In basso, a destra c'è il generatore di ritardo necessario per il funzionamento del
motore DC.
La scheda ad alta tensione, rappresentata in figura 13, invece, è costituita dai tre ponti
che alimentano le tre fasi, ed ogni ponte è costituito da:
• Il relativo sensore ad effetto Hall che rileva l’andamento della corrente nella fase.
• L’integrato IR2113 per gestire i MOSFet del ponte.
• L’amplificatore operazionale per la realizzazione del buffer sulla misura di corrente.
Figura 13
3.2 Fotoincisione dei circuiti stampati
Le due schede sono state realizzate in due passi, il primo costituito dalla realizzazione
del master del circuito stampato, il secondo costituito dall’incisione del circuito stesso
sulle basette ramate.
Per la realizzazione del master di ogni scheda si è fatto uso del programma OrCAD.
Inizialmente è stato creato, per ogni circuito da realizzare, uno schema elettrico
utilizzando l'applicazione Capture CIS. Successivamente, tramite Layout Plus, si è
passati alla realizzazione della basetta vera e propria. Quest’applicazione, facendo uso
dello schema elettrico costruito in precedenza, è in grado di realizzare un master
autonomamente, posizionando prima i componenti e poi tracciando le piste in maniera
opportuna, facendo loro percorrere a la via più breve per effettuare il collegamento tra un
componente ed un altro. I nuovi master (o maschere) rappresentati in figura 14 e figura
Pagina 20
Capitolo 3
Realizzazione del prototipo sperimentale
15 vengono poi utilizzati per la realizzazione delle basette finali. Per incidere il master
sulle basette ramate si è utilizzata la tecnica della fotoincisione.
Figura 14
Pagina 21
Capitolo 3
Realizzazione del prototipo sperimentale
Figura 15
Principi di base
La fotoincisione di un circuito stampato necessita innanzitutto di una basetta ramata sulla
quale sia stato applicato uno strato di photoresist: un materiale fotosensibile in grado di
Pagina 22
Capitolo 3
Realizzazione del prototipo sperimentale
mutare le proprie caratteristiche chimiche in seguito ad un’esposizione alla luce
ultravioletta (UV). In sostanza, il photoresist ha la funzione di realizzare uno strato
protettivo per il rame della basetta durante l'attacco chimico per l'asportazione del
metallo in eccesso; mantenendo tale strato protettivo solo laddove dovranno esistere le
piste, queste verranno conservate, ottenendo in tal modo il layout desiderato. Per ottenere
la rimozione del photoresist solamente in corrispondenza delle aree nelle quali il rame va
rimosso, si applica una maschera (opaca in determinate aree) sulla basetta, e si espone la
superficie, così protetta, alle radiazioni UV. A questo proposito risulta necessario
effettuare una distinzione: esistono in commercio basette presensibilizzate con
photoresist positivo e basette presensibilizzate con photoresist negativo. Nel primo caso
vanno esposte alla luce solo le aree nelle quali il rame andrà rimosso, nel secondo caso,
viceversa. Generalmente si utilizzano basette con photoresist positivo come quelle usate
da noi; la maschera da realizzare deve allora essere opaca, (o meglio non trasparente) in
corrispondenza delle piste e trasparente in corrispondenza delle aree nelle quali il rame
va rimosso.
Esposizione ai raggi UV
L'esposizione della basetta alle radiazioni UV è stata effettuata tramite un bromografo.
Questo apparecchio, dotato di particolari lampade a raggi ultravioletti (UV), è in grado di
innescare la trasformazione chimica del photoresist.
Realizzazione del bromografo.
Il bromografo utilizzato è stato costruito utilizzando come base di partenza un vecchio
scanner HP. Il primo passo è stato quello di svuotare totalmente l’interno dello scanner,
lasciando solo la scheda di alimentazione che è stata sfruttata per alimentare l’unità di
temporizzazione.
Successivamente nel suo interno è stato installato:
• Un circuito di temporizzazione realizzato tramite un NE555.
• Tre lampade UV-C, con i rispettivi circuiti di alimentazione composti ognuno da un
trasformatore e da uno starter.
Il circuito di temporizzazione è stato realizzato secondo lo schema rappresentato in
figura 16.
A riposo, il circuito si trova con l’uscita Q dell'IC1 a livello basso di 0V, cosìcche Q2
non sia polarizzato, ed il relé non sia eccitato. Con Q dell'IC1 a 0V, sarà basso anche
il pin 7 (DIS) e pertanto C5 rimane scarico. Il contatto NA è collegato al pulsante
esterno di innesco. Se tale contatto NA permane aperto, Q1 è interdetto e pertanto il
trigger (TR) rimane a livello alto attraverso la R4 da 22k.
Non appena il contatto NA si chiude, anche per un breve istante, attraverso D8, C3,
R5 e D3 arriva un impulso positivo alla base di Q1 che va in saturazione portando il
Pagina 23
Capitolo 3
Realizzazione del prototipo sperimentale
pin di trigger (TR) di IC1 al livello basso così da far commutare l'uscita Q dell'NE555
a livello alto.
Figura 16
Pagina 24
Capitolo 3
Realizzazione del prototipo sperimentale
In queste condizioni si polarizza Q1, si eccita il relé RL1 e il transistor Q5 (collegato
tramite il diodo D6 e la resistenza R7 all'uscita dell'NE555) si innesca, tenendo a
livello basso il punto di connessione tra C3 e R5. In questo modo, il segnale di trigger
è mantenuto alto durante tutto il ciclo di temporizzazione, bloccando eventuali altri
impulsi positivi dovuti all’eventuale azionamento del pulsante NA, che potrebbero far
ripartire il timer. Nel frattempo, il pin 7 dell'IC1 (open collector) si apre e lascia
caricare C7 attraverso il potenziometro R2. Quando C7, (e quindi il pin 6 dell'IC1)
raggiunge circa i 2/3 dell’alimentazione (che corrisponde a +12V) è terminato il ciclo
di temporizzazione e l'uscita dell’NE555 torna a livello basso togliendo eccitazione al
relé RL1.
In base alla descrizione appena effettuata, il tempo di eccitazione del relé
temporizzazione dipende dalla resistenza selezionata tramite la regolazione del
trimmer. Quando il trimmer (che è posizionato sul fronte anteriore del bromografo),
viene ruotato completamente verso sinistra, si ha un tempo minimo di 0,1 secondi
circa. Ruotando invece il trimmer completamente nel verso opposto, si ottiene la
temporizzazione massima di circa 2 minuti e mezzo. Il tempo di esposizione utilizzato
per la realizzazione delle schede è di circa 2 minuti e 10 secondi.
Sviluppo
Dopo l’esposizione della scheda fotosensibile tramite bromografo, si passa alla fase dello
sviluppo della basetta, per rimuovere il photoresist laddove si desideri ottenere
l'asportazione del rame. Nel caso di photoresist positivo sarà quello esposto alla luce ad
essere asportato, nel caso di photoresist negativo, viceversa. La soluzione di sviluppo è
costituita da idrossido di sodio (NaOH), noto anche come soda caustica, disciolto in
acqua distillata in una quantità di 8 grammi/litro. La basetta viene immersa nella
soluzione mediante, ad esempio pinze di plastica; è importante non graffiarne la
superficie. Se il photoresist è stato esposto correttamente, dopo alcuni secondi
dall’immersione si nota un oscuramento delle parti non esposte e contemporaneamente si
comincia a vedere dissolversi il photoresist esposto. Per assicurare uno sviluppo
uniforme si deve agitare la basetta o il recipiente; se la basetta è a doppia faccia bisogna
evitare, per ovvi motivi, di appoggiarla sul fondo. Periodicamente, diciamo ogni 30
secondi /1 minuto, si estrae la basetta dalla vaschetta, si lava abbondantemente con acqua
ed infine la si esamina. Lo sviluppo è completo quando il rame che deve essere asportato
appare lucente, senza opacità causate da eventuale photoresist residuo, e il disegno delle
piste risulta ben visibile. In aggiunta, deve essere possibile sentire al tatto lo scalino
dovuto al photoresist che protegge le parti in rame da preservare. Questa operazione
richiede di solito 5-6 minuti. Se lo sviluppo non è completo la basetta va immersa
nuovamente. Occorre prestare attenzione a non esagerare con lo sviluppo; infatti se si
insiste troppo, anche una parte del photoresist non esposto potrebbe essere rimossa. Si
tenga presente che, se il photoresist da rimuovere non è stato disciolto completamente,
ma ne rimane solo qualche sottile strato in alcuni punti, esso sarà poi rimosso dalla
soluzione di cloruro ferrino per l’asportazione del rame. Se dopo dieci minuti di
immersione nella soluzione le piste ancora non appaiono, o appaiono con pochissimo
Pagina 25
Capitolo 3
Realizzazione del prototipo sperimentale
contrasto rispetto al resto, significa che l'esposizione è stata insufficiente, e seppure sia
possibile tentare con uno sviluppo prolungato della basetta, è consigliabile utilizzarne
un'altra.
Incisione
Eseguito lo sviluppo, si esamini la basetta per assicurarsi che non vi siano vistosi graffi
sul photoresist; in caso contrario è consigliabile ritoccare le piste in tali punti con
l'apposita penna per circuiti stampati onde evitare interruzioni nelle tracce in rame.
La basetta quindi va immersa nella soluzione di cloruro ferrico, anche in questo caso ad
esempio con pinze di plastica, per un tempo variabile tra qualche minuto e qualche
decina di minuti. Il tempo di immersione in acido dipende principalmente dal grado di
utilizzo del liquido e dalla temperatura dello stesso. Come per lo sviluppo, anche in
questa fase si deve fare attenzione a garantire un’erosione uniforme sull'intera superficie,
pertanto è opportuno agitare periodicamente la soluzione e muovere la basetta; questo
vale maggiormente per le basette a doppia faccia che per ovvi motivi non vanno adagiate
sul fondo, bensì tenute sospese in qualche modo. La basetta va estratta periodicamente
per controllare il grado di avanzamento del processo. Appena tutto il rame in eccesso è
stato rimosso basta sciacquare la basetta con acqua. Se invece si nota che, anche dopo
un’immersione prolungata, in alcuni punti il rame non è stato rimosso, questo può
significare che il photoresist non è stato rimosso completamente; si può provare allora,
con molta delicatezza, ad eseguire questa operazione con qualche utensile, ad esempio
un cacciavite, facendo però attenzione a non graffiare anche il photoresist che deve
proteggere le piste.
Ad operazione ultimata è possibile rimuovere il photoresist con alcool o acetone, oppure
con carta abrasiva molto fine (grana 500 o maggiore), sebbene il photoresist sia
generalmente saldabile e, di fatto, può proteggere le piste dalla loro lieve e naturale
ossidazione.
Foratura
A questo punto la basetta è quasi pronta: resta solamente da eseguire l'operazione di
foratura. I fori possono essere effettuati con un trapano a colonna, utilizzando una punta
da 1mm di diametro per i fori dove vanno montati i componenti di piccola potenza
(resistenze, condensatori, zoccoletti per integrati ecc..) ed una da 1,2 mm di diametro per
i fori dove vanno montati i componenti di alta potenza (relé, MOSFet, diodi, ecc..). Nel
nostro caso è stato utilizzato un trapano a colonna disponibile presso il laboratorio di
Robotica.
Pagina 26
Capitolo 4
Pilotaggio dell’unità di potenza
Capitolo 4
Pilotaggio dell'unità di potenza
4.1 Creazione del diagramma di flusso con Simulink
Il pilotaggio dell'unità di potenza è stato realizzato interfacciando quest'ultima ad un
PC, utilizzando come hardware una scheda DSP DS1102 della dSpace e come
software il pacchetto applicativo Simulink di Matlab ed il programma ControlDesk
della dSpace.
Tramite Simulink è stato creato il diagramma di flusso rappresentato in figura 17,
utilizzato per la prova generale dell’unità di potenza.
Figura 17
Pagina 27
Capitolo 4
Pilotaggio dell’unità di potenza
Il diagramma nella parte alta serve a trasmettere i segnali di riferimento sui
convertitori digitale/analogico (DAC) del DSP, mentre quello in basso è servito per la
ricezione dei dati dai convertitori analogico/digitale (ADC) del DSP.
Nel primo diagramma sono presenti tre generatori di onda quadra (Pulse Generator).
Questi generano, ognuno, un’onda con valore di Duty-cycle del 33.3% del periodo
totale. Essendo quest'ultimo pari a 33.3 millisecondi, il Duty-cycle avrà una durata di
11.1 millisecondi. Rispetto al primo generatore, il secondo ha gli stessi parametri del
primo, tranne il tempo di ritardo, infatti il segnale viene generato con 11.1
millisecondi di ritardo. La stessa cosa avviene per il terzo generatore, ritardato di 22.2
millisecondi. Le tre ampiezze dei segnali, che hanno valore unitario, vengono tutte
moltiplicate per il guadagno costante 0.4 (questo guadagno servirà poi nell’interfaccia
grafica di ControlDesk per far variare l’ampiezza del segnale di riferimento durante il
funzionamento in Real-time) e sommate ad un valore costante 0.5. L’ultima costante
è necessaria perché l’unità di potenza fa passare corrente nelle fasi, solo con segnali
di riferimento maggiori di 5 volt.
Le due costanti sono state ricavate tenendo presente che il DAC, su ogni canale di
uscita, genera un segnale che varia tra 0 e 10 volt. Tale uscita corrisponde al segnale
inviato al DAC nel diagramma Simulink a meno di un fattore 10. Quindi sommando
la costante 0.5, ad ogni singolo segnale, (che ha un ampiezza massima pari a 0.4) in
ingresso ad ogni canale del DAC si ottiene un segnale tra 0.1 e 0.9, che corrisponde
in uscita ad una tensione che varia tra 1 e 9V. Le tre tensioni in uscita dal DAC del
DSP sono connesse ai riferimenti di tensione della scheda logica dell'unità di potenza.
Figura 18
Pagina 28
Capitolo 4
Pilotaggio dell’unità di potenza
In figura 18 sono rappresentati, ad esempio, i segnali relativi al pilotaggio pulsante
del motore. Si osservi che i segnali sono sfasati di 60 gradi rispetto ad un periodo di
azionamento pari a 33.3 mS.
Questo sfasamento è necessario perché, per permettere al motore di girare, bisogna
attivare in sequenza una fase per volta come già discusso nel capitolo 1.
Il diagramma in basso in figura 17 è utilizzato per l'acquisizione dei tre segnali,
generati dai sensori ad effetto Hall, connessi ai tre ingressi dell'ADC presenti sul
DSP. Poiché gli ingressi del DSP sono scalati di un fattore 10, le uscite ADC nel
blocco Simulink sono moltiplicate per un fattore 10 per ricostruire l'ampiezza
originale. In questo modo vengono generate tre variabili, da utilizzare nel
ControlDesk, per graficare l'andamento della corrente in ogni fase (vedi figura 19).
4.2 Utilizzo di ControlDesk
Tramite il programma ControlDesk, è stata realizzata2 l'interfaccia grafica per il
pilotaggio del motore. Come mostrato in figura 19, l'interfaccia è composta da:
• Uno slider, che permette di far variare l'ampiezza del segnale di riferimento che
arriva su ogni fase modificando, come accennato in precedenza, la costante di
valore 0.4 presente nel diagramma Simulink.
• Un display, che consente di visualizzare la misura esatta dell'ampiezza del segnale
di riferimento.
• Tre grafici, che rappresentano, l'andamento nel tempo del segnale proveniente dai
sensori ad effetto Hall e quindi, in maniera indiretta, l'andamento della corrente
che scorre in ogni fase.
Figura 19
2
Fare riferimento all'APPENDICE 1
Pagina 29
Capitolo 5
Verifica sperimentale del prototipo
Capitolo 5
Verifica sperimentale del prototipo
5.1 Fase preliminare
Prima di effettuare le prove è stato necessario realizzare un cavo per connettere l'unità
di potenza con la scheda DSP installata sul PC. Questo è costituito da un connettore a
62 poli3 che permette la connessione al DSP, ed un connettore a 25 poli che permette
la connessione aull'unità di potenza. La piedinatura di connessione presente sul
connettore a 25 poli è rappresentata in tabella 1.
Tabella 1
NOME
ADC1
ADC2
ADC3
ADC4
Analog GND
Analog GND
Analog GND
Digital GND
DAC1
DAC2
DAC3
DAC4
NC
PIN
6
7
8
9
15
16
17
18
1
2
3
14
4-5-9..13-19..25
TIPO
INPUT
INPUT
INPUT
INPUT
OUTPUT
OUTPUT
OUTPUT
OUTPUT
Una volta effettuata la connessione del bus interno che collega le due schede
dell'unità di potenza con il DSP, ed i vari collegamenti per alimentare il circuito, si è
potuto procedere nell'effettuazione delle prove sperimentali.
3
Per la piedinatura di connessione del DSP DS1102, si è fatto riferimento al manuale Floating-Point Controller
Board della dSPACE.
Pagina 30
Capitolo 5
Verifica sperimentale del prototipo
5.2 Prove sperimentali
Le prove sono state effettuate sul motore YS3040GN501 della NSK rappresentato in
figura 20. Come già detto nel capitolo 2, l'unità di potenza può gestire anche motori
DC come quello in figura 21 (un ESA 35). Entrambi i motori sono disponibili presso
il laboratorio di robotica dell’università di Roma Tor Vrgata.
Figura 20
Figura 21
Inizialmente, è stato fornito il segnale di riferimento generato dal diagramma di
Simulink già citato nel capitolo 4. Analizzando la fase A, sono stati acquisiti
Pagina 31
Capitolo 5
Verifica sperimentale del prototipo
dall'oscilloscopio4 (e successivamente graficati), l'andamento del riferimento,
l'andamento del segnale di controllo e l'andamento della corrente che scorre in ogni
fase (vedi figura 22). I primi due vettori prima di essere graficati sono stati filtrati con
un filtro di media aritmetica centrata implementato in Matlab in una funzione
denominata mac.m, mentre il terzo vettore è stato filtrato con un filtro dinamico.
Figura 22
Bisogna notare come l'andamento della corrente della fase, salga molto lentamente al
valore nominale quando il segnale di riferimento è a livello alto e scenda in simil
modo quando il riferimento torna a livello basso. Questo tempo necessario alla
corrente per arrivare al suo valore nominale, come accennato nel capitolo 1 limita la
velocità massima che può raggiungere il motore. Nel caso in questione la velocità
massima di rotazione, non supera 1 giro ogni 5 sec. Inoltre il motore, gira con un
andamento prevalentemente a scatti. Ciò è stato attenuato utilizzando come segnale di
riferimento un sin6(x) (vedi figura 23), che porta ad una rotazione meno discontinua.
4
Fare riferimento all'appendice 2.
Pagina 32
Capitolo 5
Verifica sperimentale del prototipo
Figura 23
In questo caso, però, la velocità di rotazione del motore si è ulteriormente ridotta a
causa della sovrapposizione parziale dei segnali di riferimento. Questa
sovrapposizione fa sì che la fase successiva venga attivata prima che quella
precedente sia stata disattivata. Quest'ultima quindi richiamando il rotore si comporta
da freno rallentando notevolmente la velocità di rotazione.
Si osservi che per ottenere controlli a coppia costante bisogna affrontare (e risolvere)
un difficile problema di controllo non-lineare legato alla struttura del motore. In ogni
caso, l'unità di potenza realizzata costituisce un elemento essenziale per l'attuazione
di qualsiasi strategia di pilotaggio, dalle più semplici (come quelle in figura 22 e 23)
a quelle più sofisticate che saranno argomenti futuri di studio.
Pagina 33
Conclusioni
Conclusioni
Il lavoro svolto si è articolato in tre punti fondamentali:
• In una fase preliminare sono stati studiati i principi fisici di funzionamento, le
problematiche e le tecniche di pilotaggio dei motori stepper.
• In seguito si è passati alla progettazione ed alla realizzazione dell'unità di potenza,
e del relativo bromografo che ha permesso di realizzarla senza ricorrere alla
tecnica meno accurata del classico pennarello per circuiti stampati.
• Infine, dopo la realizzazione del prototipo e la taratura dei singoli stadi, sono state
effettuate le prove sperimentali, che hanno dimostrato la robustezza e l’affidabilità
dell'unità di potenza, realizzata con componenti elettronici a basso costo.
Pagina 34
Appendice 1
Interfacciamento del DSP
Appendice 1
Interfacciamento del DSP
Introduzione
L’interfacciamento dell’unità di potenza con il computer è stato effettuato tramite il
DSP DS 1102 della dSPACE. Questo dispositivo è dotato di un pacchetto software
chiamato ControlDesk che permette di interfacciare la scheda con il computer e di far
interagire i dati anche con il pacchetto software di calcolo numerico Matlab
installando, all’interno di quest’ultimo, una libreria con adeguate istruzioni per la
gestione del DSP. Sono stati inoltre installati nuovi componenti anche all’interno
delle librerie di Simulink (un pacchetto simulativo con interfaccia utente a blocchi
che lavora in associazione con Matlab), come per esempio l’ADC (convertitore
analogico digitale) e il DAC (convertitore digitale analogico).
Questi nuovi componenti, se utilizzati all’interno di un diagramma di flusso di
Simulink, interagiscono direttamente con i dispositivi corrispondenti presenti sulla
scheda del DSP attraverso un programma associato al DSP, denominato ControlDesk.
Indirizzamento del DSP
Il primo passo da effettuare, dopo l’installazione della scheda DS 1102 all’interno del
computer, è l’indirizzamento della nuova periferica.
Come default, l’indirizzo base è 0300H (00110000B) ma nel caso in esame la
periferica entrava in conflitto con altre periferiche presenti sul PC, e per questo
motivo è stata reindirizzata al nuovo indirizzo 0310H (00110001B).
Per effettuare il reindirizzamento bisogna:
• Configurare gli switch che sono presenti sulla scheda DSP, utilizzando la
stessa configurazione che si imposterà in seguito sulla Register Board.
• Avviare ControlDesk, dal Menù bar selezionare View e quindi Navigator,
appare così la finestra di navigazione nel caso non fosse attiva (vedi figura
24).
Pagina 35
Appendice 1
Interfacciamento del DSP
Figura 24
• Dalla nuova finestra, in basso, selezionare Hardware. Dal Menu bar
selezionare Hardware, quindi Initialization e poi Register.
Si apre così una nuova finestra, rappresentata in figura 25, chiamata Register Board.
Figura 25
• Nella Register Board selezionare, tramite il comando Type, il tipo di scheda
installata (in questo caso la DS1102 DSP Controller Board).
• Per modificare l’indirizzo base, basta muovere gli switch che vanno da 1 a 8
sapendo che 0 = on, 1 = off e come gia accennato la configurazione degli
switch deve essere la stessa impostata sulla scheda DSP.
Se il nuovo indirizzo non entra in conflitto con altre periferiche, selezionando il tasto
Register la scheda verrà installata correttamente.
Pagina 36
Appendice 1
Interfacciamento del DSP
Generazione del diagramma di flusso in Simulink
L’interfaccia tra il computer e la scheda DSP può essere effettuata:
• Utilizzando solo il programma ControlDesk (in questo lavoro di tesi non si è
approfondito questo aspetto).
• Oppure utilizzando Simulink e ControlDesk simultaneamente.
Tramite Simulink si crea un diagramma che genera i segnali di riferimento che vanno
all’unità logica di controllo dell’unità di potenza. Per trasmettere i segnali all’unità si
fa uso dei componenti DAC presenti all’interno delle librerie di Simulink che, come
detto in precedenza, sono stati inseriti durante l’installazione di ControlDesk.
Da qui bisogna generare i files che permettono a ControlDesk di gestire i parametri
ricavati dalla simulazione, effettuata tramite Simulink, i quali hanno lo stesso nome
che è stato dato al file contenente il diagramma di flusso di Simulink, ma diversa
estensione (in particolare, .OBJ e .TRC).
• Una volta creato il diagramma di flusso, dal Menù Bar di Simulink selezionare
Tools quindi RTW Options e si apre una nuova finestra per impostare i
parametri della simulazione.
• Selezionando Solver tramite Type selezionare Fixed-step e tramite Fixed step
size inserire il passo di campionamento, fatto ciò selezionare Apply e chiudere
la finestra.
Ora il sistema è pronto per la creazione dei Files.
• Selezionando nuovamente Tools cliccare su RTW Build, verranno così
compilati e generati i files necessari a far interagire ControlDesk con il DSP.
Trasferimento dell’esperimento a ControlDesk
Tramite il comando RTW Build di Simulink, il DSP si avvia in maniera automatica
mettendo subito in funzione il dispositivo/i connesso/i alle sue porte.
Una volta generati i files tramite il precedente comando, si lancia il programma
ControlDesk, e si pre-impostano i parametri per creare un nuovo esperimento che, in
conclusione, sarà l’interfaccia grafica da utilizzare per la gestione del DSP.
• Utilizzando l’Hardware Navigator bisogna aprire l’object file, che essendo
stato creato con Simulink, si trova all’interno della cartella Work di Matlab.
Per aprire il file basta trascinarlo sopra alla scritta ds 1102 (vedi figura 26).
Selezionando View, e successivamente ToolWindow, appare una nuova finestra.
All’interno di essa selezionare Model, ed in questo modo, sulla destra appariranno le
variabili che sono state utilizzate da Simulink durante la simulazione. Tali variabili
sono riconfigurabili da control desk, rendendo così possibile una gestione versatile
Pagina 37
Appendice 1
Interfacciamento del DSP
dell’esperimento. In particolare, le variabili possono essere collegate ad elementi
grafici, quali indicatori cartesiani, barre di scorrimento e simili, così creando un vero
e proprio pannello di interfacciamento tra utente e DSP.
Figura 26
Gestione dell'esperimento in ControlDesk
Per gestire l'esperimento da ControlDesk, bisogna innanzitutto creare un esperimento.
• Per creare un nuovo esperimento dal Menu Bar selezionare File, quindi New
Experiment nel ControlDesk.
Di seguito va creato il foglio di lavoro dove andranno posizionati gli elementi grafici
che verranno utilizzati per la gestione del DSP. Per creare il foglio bisogna:
• Selezionare File dal Menu Bar, poi New e successivamente Layout. Vengono
così aperte due nuove finestre, una chiamata Layout ed un’altra Instrument
Selector come rappresentato in figura 27.
Per creare uno strumento all’interno del Layout bisogna:
• Cliccare sul gruppo di strumenti contenente lo strumento che si interessa creare
(es. Data Acquisition).
• All’interno di Instrument Selector fare doppio click sull’icona dello strumento
da creare (es. Plotter), e nella finestra Layout disegnare un rettangolo della
dimensione desiderata, usando il mouse.
• Viene così creato lo strumento all’interno del Layout. Il contorno rosso sul
nuovo strumento indica che ancora non esiste una connessione valida con una
Pagina 38
Appendice 1
Interfacciamento del DSP
variabile, ossia lo strumento non è ancora collegato a nessun elemento
dell’esperimento.
• Per generare un collegamento con il nuovo strumento, bisogna prendere una
variabile dall’interno del Variable Browser, e trascinarla sopra lo strumento
creato.
Figura 27
Una volta inseriti tutti gli strumenti desiderati, dal Menù Bar selezionare File e quindi
Save, per salvare il nuovo Layout. Nell’Instrument Navigator, in basso, selezionare
Experiment e andare sul nome dell’esperimento in oggetto (che è stato creato in
precedenza). Cliccando il tasto destro del mouse, selezionare Add All Opened Files
per aggiungere il Layout con i suoi strumenti all’interno dell’esperimento. Seguiti i
precedenti passi, dal Menu Bar selezionare Instrumentation e successivamente
Animation mode per far si che l’esperimento cominci a gestire i dati in Real Time.
Pagina 39
Appendice 2
Interfacciamento del TDS220 tramite Matlab 6.1
Appendice 2
Interfacciamento del TDS220
tramite Matlab 6.1
L’acquisizione dei dati dall’oscilloscopio Tektronix TDS_220, è stata effettuata
tramite Matlab 6.1, utilizzando la libreria che permette di interfacciare la porta seriale
RS232 con Matlab.
Il cavo utilizzato per il collegamento tra l’oscilloscopio ed il PC deve essere di tipo
null-modem, la cui piedinatura è riportata in tabella 2.
Tabella 2
NOME
Ricezione dati
(RxD, Rceive data)
Trasmissione dati
(TxD, Trasmit data)
Terminale dati pronto
(DTR, Data terminal ready)
Massa del segnale
(GND)
Set dati pronto
(DSR, Data set ready)
Richiesta di invio
(RTS, Request to send)
Libero per trasmettere
(CTS, Clear to send)
N° PIN SERIALE
OSC.
N° PIN SERIALE PC
3
2
2
3
4
4
5
5
6
6
8
7
7
8
Tipo di segnale
Per PC input
Per OSC output
Per PC output
Per OSC input
Per PC output
Per OSC input
Per PC input
Per OSC output
Per PC output
Per OSC input
Per PC input
Per OSC output
I principali comandi Matlab che hanno permesso di gestire la porta sono:
• Serial( )
• Fopen( )
Pagina 40
Appendice 2
•
•
•
•
Interfacciamento del TDS220 tramite Matlab 6.1
Fprintf( )
Fscanf( )
Fclose( )
Delete( )
1. Tramite il comando serial( ) si imposta la porta seriale (COM) da utilizzare
per il trasferimento dei dati. Una volta indicata la porta da utilizzare vengono
modificati i parametri (se necessario) per la trasmissione dei dati. In questo caso è
stato impostato il BaudRate a 9600b/sec, il Timeout a 30 sec. e l’InputBuffersize a
500000.
Il timeout è il tempo massimo in cui la porta rimane abilitata alla trasmissione o
ricezione dei dati, ossia se viene inviato un comando dalla seriale al dispositivo ad
essa connesso, il tempo massimo di attesa di risposta non deve superare il tempo
indicato nella variabile timeout, che come default è 10 s, ma nel caso in esame è stato
portato a 30 s. Nel caso venga superato questo tempo, Matlab invia un messaggio
d’errore al prompt.
L’InputBuffersize rappresenta la grandezza del buffer dove vengono immagazzinati i
dati durante l’acquisizione dal dispositivo connesso alla porta.
2. Tramite fopen( ) viene aperta la comunicazione con la porta scelta in
precedenza.
3. Tramite fprintf( ) si iniziano ad inviare i comandi al dispositivo connesso
sulla porta.
4. Con fscanf( ) si ricevono i dati dal dispositivo dopo che gli è stata inviata una
richiesta.
5. Con i comandi fclose( ) e delete( ) si chiude la comunicazione con la
porta.
Dopo questa breve introduzione possiamo passare alla spiegazione dettagliata della
funzione oscilloscopio.m che è riportata nelle ultime pagine dell’appendice 2.
Alla funzione viene passato un solo parametro (d) che può essere 1 o 2. Tale
parametro corrisponde al canale dell’oscilloscopio da cui si desidera acquisire i dati.
La funzione restituisce due vettori contenuti, rispettivamente, nelle variabili volt,
tempi.
Le prime quattro istruzioni abilitano la porta seriale COM1, impostando i parametri
per la comunicazione con l’oscilloscopio.
Dopo aver aperto la comunicazione con la porta seriale si iniziano ad inviare le
istruzioni5 necessarie per acquisire i dati dal TDS220. Ogni istruzione è contenuta tra
apici, all’interno della riga di comando fprinf( ).
fprintf(s,'ACQuire:STATE
OFF'),
Esempio
in
l’istruzione
ACQuire:STATE OFF blocca l’immagine presente sullo schermo del TDS220, per
5
Per le istruzioni utilizzate per la comunicazione con l’oscilloscopio, si è fatto riferimento al Programmer Manual
della Tektronix serieTDS200 disponibile su internet sul sito della Tektronix.
Pagina 41
Appendice 2
Interfacciamento del TDS220 tramite Matlab 6.1
permettere successivamente di acquisire i dati della misura effettuata
dall’oscilloscopio.
Dopo aver acquisito i dati dallo strumento, il primo passo da effettuare è la
conversione in numero della stringa contenuta nella variabile source. Tale
variabile contiene i dati inviati dall’oscilloscopio al PC, ovvero contiene le misure,
non in scala, effettuate campionando l’onda presente sullo schermo
dell’oscilloscopio. Il campionamento è effettuato con un passo di 250 campioni/Div e
quindi con un totale di 2500 campioni, ed i campioni sono separati da virgole.
La conversione da stringa in numero è effettuata nel primo ciclo FOR, usando la
variabile app che contiene i valori risultanti dalla conversione.
I 2500 valori di tensione acquisiti, come già detto, non sono in scala, infatti sono
ventisei volte più grandi rispetto alla scala (Volt/div) impostata sull’oscilloscopio.
Per riportare la misura al suo valore effettivo bisogna, prima acquisire il valore della
scala che si sta utilizzando sull’oscilloscopio, (questo è effettuato tramite la riga di
comando fprintf (s,'WFMPre : WFID?') e il primo ciclo WHILE). Il
valore è memorizzato nella variabile Yunit e, nel secondo ciclo FOR, viene
assegnata la variabile Volt contenete i 2500 valori di tensione in scala.
La stessa cosa viene effettuata per il vettore dei tempi. Per l’acquisizione del valore
della scala dei tempi impostata sull’oscilloscopio, viene utilizzato il secondo ciclo
WHILE e nel secondo ciclo FOR viene assegnata la variabile in scala tempi.
Osservazione:
• Poiché le misure vengono riferite agli assi cartesiani presenti sullo schermo
dell’oscilloscopio è opportuno, prima di collegare le sonde, tarare con
accuratezza lo zero dell’oscilloscopio.
• Prima di acquisire i dati dall’oscilloscopio bisogna controllare che i parametri
della porta seriale RS232 presente su di esso, coincidano con i parametri della
porta seriale del PC. Per effettuare questa verifica basta premere il tasto utilità
presente sul pannello frontale dell’oscilloscopio, selezionare opzioni ed infine
impostazioni della porta RS232.
È stato implementato un esempio che utilizza la funzione oscilloscopio.m,
denominato acquisizione.m, che permette di acquisire tre misure,
memorizzando successivamente i vettori in un file chiamato exp1.mat.
Quest'ultimo file viene utilizzato dal file grafico.m per graficare le tre misure
acquisite. All'interno del file grafico.m viene utilizzata una funzione
denominata mac.m che permette di ''filtrare'' il segnale. La funzione
acquisizione.m è stata utilizzata per generare le figure 22 e, 23 riportate nel
capitolo 5.
Listato della funzione Oscilloscopio.m
function [volt,tempi,Xunit,Yunit]=oscilloscopio(d);
s = serial('COM1');
Pagina 42
Appendice 2
Interfacciamento del TDS220 tramite Matlab 6.1
s.InputBuffersize = 500000;
s.BaudRate =9600;
s.timeout=30;
fopen(s);
fprintf(s,'ACQuire:STATE OFF')
fprintf(s,'DATa : INIT')
switch d
case d==1 | d==3
fprintf(s,'DATa:SOUrce CH1');
case d==2
fprintf(s,'DATa:SOUrce CH2');
end;
fprintf(s,'DATa:ENCdg ASCIi')
fprintf(s,'DATa:WIDth 1')
fprintf(s,'DATa:STARt 1')
fprintf(s,'DATa:STOP 2500')
fprintf(s,'DATa?')
source=fscanf(s)
fprintf(s,'CURVe : block')
fprintf(s,'CURVe?')
fprintf(s,'ACQuire:STATE ON')
source=fscanf(s);
j=1;
k=1;
clear app;
for i=1:size(source,2)
if source(i)==','
app(j)=str2num(stringa);
j=j+1;
k=0;
clear stringa;
else stringa(k)=source(i);
end
k=k+1;
end
fprintf(s,'WFMPre:WFID?')
dati=fscanf(s);
v=0;
z=1;
i=0;
clear str;
while i~=size(dati,2)
i=i+1;
if v==3 & dati(i)~=',' & dati(i)~='s'
str(z)=dati(i);
z=z+1;
elseif v==4 i=size(dati,2);
end
if (dati(i)==',')|(dati(i)=='s')
v=v+1;
end
end
Xunit=str2num(str);
v=0;
z=1;
i=0;
clear str;
while i~=size(dati,2)
i=i+1;
if v==2 & dati(i)~=',' & dati(i)~='V'
str(z)=dati(i);
Pagina 43
Appendice 2
Interfacciamento del TDS220 tramite Matlab 6.1
z=z+1;
elseif v==3 i=size(dati,2);
end
if (dati(i)==',')|(dati(i)=='V')
v=v+1;
end
end
Yunit=str2num(str);
for i=1:2499
tempi(i)=i*Xunit/250 -5*Xunit;
volt(i)=app(i)*Yunit/26;
end
%
%
%
%
%
Tramite questo ciclo For vengono
riscalati i dati acquisiti
coerentemente con le impostazioni
dell'oscilloscopio al
momento dell'acquisizione.
fclose(s);
delete(s);
clear s;
Listato del file acquisizione.m
clear all:
for l = 1:3,
disp('Digitare il numero del canale da cui acquisire le misure');
d=input('CH? :');
while (d~=1) & (d~=2)
disp('Il canale richiesto non è presente digitare 1 o 2');
d=input('CH? :');
end
switch l
case 1,
[volt1,tempi1]=oscilloscopio(d);
case 2,
[volt2,tempi2]=oscilloscopio(d);
case 3,
[volt3,tempi3]=oscilloscopio(d);
end
end
save exp1;
Listato del file Grafico.m
load exp1
v1m=mac(volt1',10);
v2m=mac(volt2',10);
v3m=mac(volt3',10);
figure(1);
subplot(3,1,1);
plot(tempi1,v1m)
subplot(3,1,2);
plot(tempi2,v2m)
subplot(3,1,3);
plot(tempi3,v3m)
Listato della funzione mac.m
function yout=mac(u,n)
temp=[u; u(length(u))*ones(n,1)];
y=zeros(size(temp));
for c=1:n,
Pagina 44
Appendice 2
Interfacciamento del TDS220 tramite Matlab 6.1
temp = [temp(1); temp(1:length(temp)-1)];
y=y + temp;
end
y=y/n;
yout = y((n-1)/2+2:length(u)+(n-1)/2+1);
%plot(u,'b');
%hold on;
%plot(yout,'r');
%hold off;
Pagina 45