IL METODO DEL FATTORE DI SCALA GLOBALE
1.1 – ll metodo del fattore di scala globale
Il progetto di un sistema di controllo digitale può avvalersi del cosiddetto metodo del fattore di
scala globale (FSG), attraverso il quale è possibile stabilire una corrispondenza biunivoca tra il valore
reale delle variabili utilizzate in uno schema a blocchi e la loro rappresentazione interna al
microprocessore.
Il fattore di scala globale, secondo la definizione, è il numero per il quale è necessario dividere una
grandezza rappresentata in un microprocessore al fine di ottenerne il valore espresso nella sua unità di
misura naturale. Il suo calcolo è relativamente semplice e dipende sia dalle caratteristiche dei
trasduttori che da quelle del microprocessore utilizzato nell’implementazione del controllo.
1.2 – Applicazione ad un azionamento per motore PMSM
Il metodo del fattore di scala globale ha validità generale e può essere utilizzato per il progetto di
un qualsiasi controllo digitale, ma al fine di spiegarne le peculiarità lo particolarizzeremo ad un caso
specifico, ossia al progetto di un azionamento per motore sincrono a magneti permanenti.
Di seguito, nella figura (1.2.1), si riporta lo schema a blocchi di un PMSM sincrono, completo degli
ingressi e delle uscite fornite dal controllo digitale.
Fig.1.2.1 – Schema a blocchi di un PMSM isotropo con ingressi ed uscite del controllo digitale.
Come si può facilmente osservare, sia gli ingressi che le uscite del controllo passano attraverso
alcune costanti moltiplicative, che vanno a formare proprio i fattori di scala globale, il cui scopo è
quello di collegaree il valore naturale con quello utilizzato dal microprocessore. Alcune di queste
costanti derivano dalla struttura dell'azionamento; altre vengono introdotte artificialmente per rendere
omogenee la rappresentazioni interne delle varie grandezze. Per capire più in dettaglio questa
situazione, si analizzano in sequenza gli ingressi del controllo, l’anello di velocità e di corrente del
controllo stesso, ed infine le uscite.
1.2.1 – Fattore di scala della corrente di fase
Solitamente la misura di una corrente di fase viene effettuata mediante una sonda Hall ed un
convertitore analogico/digitale in cascata (figura 1.2.1.1).
Fig.1.2.1.1 – Fattore di scala globale della corrente di fase.
1
IL METODO DEL FATTORE DI SCALA GLOBALE
La sonda Hall restituisce una tensione proporzionale al valore della corrente misurata, mentre
all’uscita del convertitore A/D si ottiene la rappresentazione interna al processore della corrente stessa.
Possiamo dunque scrivere:
ia [V ] = i a [ A] ⋅ K HALL
ia [ µP] = ia [V ] ⋅ K A / D
(1.2.1.1)
(1.2.1.2)
dove KHALL e KA/D sono le costanti moltiplicative associate a ciascun blocco; in generale KHALL
dipende dal rapporto di trasferimento della sonda, dalla resistenza di carico e dal numero di spire.
Dalla definizione di fattore di scala globale, pertanto, si ricava:
ia [V ] = ia [ A] ⋅ K HALL
ia [ µP] = ia [V ] ⋅ K A / D
i [ µP ]
ia [V ] = a
⇒ fsg ia = K HALL ⋅ K A / D
fsg ia
(1.2.1.3)
(1.2.1.4)
(1.2.1.5)
Come esempio applicativo, supponiamo che la sonda Hall riceva in ingresso una corrente compresa
tra 0 e 10 ampere, restituendo in uscita una tensione tra 0 e 5 volt. Se ipotizziamo che l'A/D abbia una
risoluzione di 10 bit, si ottiene:
5
10
210 − 1
K A/ D =
5
5 210 − 1
⇒ fsg ia = ⋅
= 102,3
10
5
K HALL =
(1.2.1.6)
(1.2.1.7)
(1.2.1.8)
1.2.2 – Fattore di scala della posizione meccanico-elettrica
La misura della posizione meccanico-elettrica assoluta θ me in un motore PMSM è necessaria per la
realizzazione del controllo in orientamento di campo, e viene effettuata mediante un resolver-todigital. Tale sensore ha una risoluzione dipendente dalla velocità del motore: più quest’ultima è
elevata, meno bit si hanno disposizione per la rappresentazione digitale (solitamente si utilizzano 12 o
14 bit).
Se indichiamo con Nb il numero di bit utilizzati dal resolver, e supponendo che quest’ultimo abbia
lo stesso numero di poli del motore, il fattore di scala della posizione meccanico-elettrica risulta pari a
(figura 1.2.2.1):
fsg ϑme =
2 Nb − 1
2π
(1.2.2.1)
Fig.1.2.2.1 – Fattore di scala globale della posizione meccanico-elettrica.
2
IL METODO DEL FATTORE DI SCALA GLOBALE
Come noto, all’interno dello schema di controllo in orientamento di campo vengono utilizzati anche
il seno ed il coseno della posizione meccanico-elettrica. In linea di principio, il resolver fornisce
direttamente in uscita questi valori in formato analogico, ma se si vogliono risparmiare due
convertitori A/D e c’è sufficiente spazio di memoria nel microprocessore, si può pensare di calcolare
tali funzioni a partire dalla misura di θ me.
A questo scopo è sufficiente salvare in memoria una tabella contenente i valori di un intero periodo
del seno o del coseno; essendo posta a valle del resolver-to-digital, è verosimile pensare che essa sia
composta da 2Nb locazioni indirizzabili da θ me [µP] (solitamente 2Nb=212=4096 valori). Ogni singola
cella della tabella può avere precisione variabile, dipendente dal numero di bit Nbt da cui è composta;
in generale, Nbt deve essere sufficiente a rendere distinguibile ogni locazione dalle altre, senza
rischiare di incorrere in overflow (nella pratica è sufficiente imporre Nbt=12 bit).
Alla luce di queste considerazioni, anche la tabella introduce un proprio fattore di scala per le
grandezze sin(θ me) e cos(θ me), pari a (figura 1.2.2.2):
fsg sin (ϑme ) = fsg cos(ϑme ) = 2 Nbt −1
(1.2.2.2)
Fig.1.2.2.2 – Fattore di scala globale di sin(θme) e cos(θme).
Alla luce di queste considerazioni, siamo già in grado di calcolare il fattore di scala globale delle
correnti id ed iq del sistema di riferimento solidale al rotore. Come noto, la trasformazione abc/dq
consta di una combinazione lineare delle correnti di fase ia, ib, ic e di sin(θ me) e cos(θ me), per cui si può
facilmente ricavare:
(
fsg iq = fsg id = K HALL ⋅ K A / D ⋅ 2 Nbt −1
)
(1.2.2.3)
1.2.3 – Fattore di scala della velocità meccanico-elettrica
La velocità meccanico-elettrica ω me può essere direttamente letta dall’uscita del resolver oppure, se
si intende risparmiare un A/D, calcolata differenziando la misura dell'angolo θ me. Se indichiamo con
Tcω il periodo di campionamento per l'angolo θ me (e quindi la durata di un ciclo di controllo della
velocità), si ricava:
ω me [rad / s] =
ϑ me (k )[rad ] − ϑ me (k − 1)[rad ]
Tcω
=
ϑ me (k )[ µP] − ϑ me (k − 1)[ µP]
fsg ϑme
⋅
1
Tcω
(1.2.3.1)
Se non ci sono problemi di overflow, è opportuno considerare come ωme [µP] solamente la
differenza tra la rappresentazione digitale degli angoli. In questo modo la costante Tcω può essere
inglobata insieme al fattore fsg θme, evitando di far eseguire al processore una divisione che, come noto,
è costosa in termini computazionali. Pertanto si ottiene:
3
IL METODO DEL FATTORE DI SCALA GLOBALE
ω me [rad / s] = ω me [ µP] ⋅
⇒ fsg ωme = fsg ϑme Tcω =
1
(1.2.3.2)
fsg ϑmeTcω
2 Nb − 1
Tcω
2π
(1.2.3.3)
Se si ha qualche dubbio sul calcolo del fattore di scala globale, è possibile operare una verifica
dimensionale a posteriori. Dalla formula (1.2.3.3) si ricava che fsgωme ha dimensione [s/rad], e ciò è
conforme alla definizione di fattore di scala globale. Più in generale, ogni fattore di scala deve avere
dimensioni pari all’inverso di quelle della grandezza a cui si riferisce.
1.2.4 – Anello di controllo della velocità
Consideriamo ora l’anello di controllo della velocità di un PMSM isotropo, che come abbiamo
visto è composto da un blocco PI nel sistema di riferimento dq solidale al flusso di rotore (figura
1.2.4.1).
Fig.1.2.4.1 – Anello di controllo della velocità in un PMSM isotropo.
Innanzitutto, bisogna sottolineare che le costanti proporzionale ed integrale del PI, così come
calcolate nella fase di progetto “a tavolino”, sono quasi sempre dei numeri reali. Per ovviare al
problema della loro memorizzazione in un microprocessore che tratta solo numeri interi, risulta
necessario utilizzare un fattore di scala adeguato per ognuno di essi (figura 1.2.4.2).
Fig.1.2.4.2 – Fattori di scala globale di Kpω e τiω.
Si potrebbe obiettare che al giorno d’oggi sono ormai disponibili processori in grado di manipolare
con facilità numeri in formato floating-point. Si ricordi tuttavia che le operazioni su tale formato sono
molto costose in termini computazionali, e pertanto il rischio è quello di incorrere in un controllo con
prestazioni insufficienti per la dinamica desiderata.
Nasce ora il problema di determinare adeguatamente sia fsg Kpω che fsg τiω. Questi fattori di scala
devono soddisfare due esigenze contrastanti: in primo luogo, sarebbe auspicabile che permettessero
un’adeguata risoluzione di Kpω [µP] e τiω [µP], in modo da facilitare eventuali modifiche e tarature
successive. Ciò risulta possibile utilizzando fattori di scala molto grandi, in cui le cifre meno
4
IL METODO DEL FATTORE DI SCALA GLOBALE
significative di Kpω e τiω risultano seguite, nella rappresentazione interna al processore, da molti zeri
(ad esempio, da Kpω=1,4 a Kpω [µP]=140000 con fsg Kpω=100000).
Questa scelta contrasta però con la massima risoluzione interna al processore: il rischio è quello di
incorrere in overflow con i risultati che ne conseguono. Per tale motivo, solitamente è prassi scegliere
questi fattori di scala globali in modo che ci sia uno zero seguente alla cifra meno significativa di Kpω
e τiω (ad esempio, da Kpω=1,4 a Kpω [µP]=140 con fsg Kpω=100). Se è possibile, è utile fare in modo che
la rappresentazione interna delle costanti del PI sia una potenza di 2: le moltiplicazioni nell’anello di
velocità potrebbero quindi essere eseguite mediante degli shiftamenti, notevolmente più veloci in
termini computazionali.
Consideriamo ora il ramo integrale dello schema riportato in figura (1.2.4.1). L’equazione generale
che, secondo la teoria, permette la generazione di i*q,int (k+1) è la seguente:
iq*,int (k + 1)[ A] = iq*,int (k )[ A] +
K pω
τ iω
⋅ eω [rad / s ] ⋅ Tcω [ s ]
(1.2.4.1)
Possiamo riscrivere questa formula utilizzando le rappresentazioni interne del processore:
i q*,int (k + 1)[ µP]
fsg i*q ,int Tcω [ s ]
=
iq*,int (k )[ µP]
fsg i*q ,int Tcω [ s ]
+
K pω [ µP]
fsg Kpω
⋅
fsg τiω eω [ µP]
⋅
τ iω [ µP] fsg ωme
(1.2.4.2)
Dovendo ottenere termini omogenei nell’equazione, è necessario che sia a sinistra che a destra
dell’uguale i fattori di scala siano i medesimi. Pertanto si ottiene:
fsg i*q ,int =
fsg Kpω fsg ωme
(1.2.4.3)
fsg τiω Tcω [ s ]
Si osservi come la divisione per Tcω [s] rappresenti una sorta di "normalizzazione" del fattore di
scala rispetto al periodo di campionamento della velocità. Un analogo fattore di scala sarebbe stato
ricavato se, nell’equazione (1.2.4.2), fosse stato introdotto un Tcω [µP]=1 e, quindi, fsgTcω=1/Tcω [s].
Trattiamo ora il ramo proporzionale dello schema di figura (1.2.4.1). L’equazione generale che
permette la generazione di i*’q,prop è la seguente:
i *'q , prop [ A] = K pω ⋅ eω [rad / s ]
(1.2.4.4)
Utilizzando le rappresentazioni interne al processore si ottiene:
i *'q , prop [ µP ]
fsg i*'q , prop
=
K pω [ µP ] eω [ µP ]
⋅
fsg Kpω
fsg ωme
(1.2.4.5)
E’ quindi facile ricavare:
fsg i*'q , prop = fsg Kpω fsg ωme
(1.2.4.6)
Osservando nuovamente lo schema di figura (1.2.4.1), ci si rende conto che il ramo proporzionale e
quello integrale vengono sommati al fine di generare il riferimento di corrente i*q [µP]. Per evitare di
sommare termini non coerenti fra loro, è necessario che il ramo integrale o il ramo proporzionale siano
moltiplicati per una costante che equalizzi il fattore di scala di entrambi i rami; nella figura (1.2.4.1) si
è scelto di porre una costante C1 nel ramo proporzionale, ma la scelta non è ovviamente univoca.
5
IL METODO DEL FATTORE DI SCALA GLOBALE
Dai fattori di scala precedentemente calcolati è facile ottenere:
C1 =
fsg i*q ,int
fsg i*'q , prop
=
1
fsg τiω Tcω [ s ]
(1.2.4.7)
Passiamo ora alla parte conclusiva dell’anello di velocità, che prevede la limitazione del
riferimento di corrente i*q [µP]. Sappiamo che il massimo riferimento di corrente in uscita non deve
superare la corrente nominale IN [A] riportata nel datasheet del motore. Pertanto, fissando un valore
iq,REFH [µP] per il limite superiore dell blocco limitatore, si ha:
iq ,REFH [ µP ] = I N [ A] ⋅ fsg i*q
(1.2.4.8)
Attraverso questa formula è possibile ricavare facilmente il valore di fsg i*q. Per quanto riguarda il
limitatore posto sul ramo integrale, la sua presenza si giustifica considerando che è utile evitare
l’integrazione di parti che sarebbero comunque limitate in uscita. Il suo limite superiore può essere
modificato dinamicamente secondo la formula:
iq , REFH ,int = i q , REFH [ µP] − i q*, prop [ µP]
(1.2.4.9)
La sottrazione ha senso perché le grandezze coinvolte sono coerenti; i limiti inferiori dei due
limitatori sono esattamente gli opposti dei limiti superiori appena calcolati.
1.2.5 – Anello di controllo della corrente
Consideriamo ora l’anello di controllo di corrente di un motore PMSM, costituito da due PI e dai
blocchi sommatori che disaccoppiano gli assi dq (figura 1.2.5.1).
Fig.1.2.5.1 – Anello di controllo della corrente in un motore PMSM.
Innanzitutto è necessario procedere all’equalizzazione del fattore di scala di iq o di i*q, affinché la
sottrazione che ci restituisce eiq risulti coerente. Un primo modo, poco dispendioso in termini di
risorse, per raggiungere questo obiettivo prevede la modifica di fsg iq, inglobando le opportune costanti
moltiplicative nella tabella contenente le codifiche di sin(θ me) e cos(θ me). In altre parole, il fattore di
scala delle funzioni trigonometriche non sarebbe più uguale a 2Nbt-1, ma risulterebbe pari a:
6
IL METODO DEL FATTORE DI SCALA GLOBALE
fsg sin (ϑme ) =
fsg i*q
(1.2.5.1)
fsg ia
Qualora questa operazione risulti impossibile a causa di numeri troppo piccoli, è necessario
moltiplicare il riferimento i*q [µP] per una costante C2 il cui valore è pari a:
C2 =
fsg iq
fsg i*q
=
fsg ia 2 Nbt −1
fsg i*q
(1.2.5.2)
Alla luce di queste considerazioni, si può ben capire che la scelta dei fattori di scala globale non è,
in generale, un’operazione univoca: spesso è necessario ritornare sulle scelte effettuate, al fine di
ritoccare alcuni valori ed ottenere prestazioni migliori.
Il procedimento per il calcolo dei fattori di scala del ramo integrale e proporzionale è del tutto
simile al caso già trattato in precedenza a riguardo dell’anello di velocità. In particolare, i due anelli di
figura (1.2.5.1) sono uguali e quindi si può fissare:
fsg Kpid = fsg Kpiq
(1.2.5.3)
fsg τiid = fsg τiiq
(1.2.5.4)
Fig.1.2.5.2 – Fattori di scala globale di Kpiq e τiiq.
La costante C3 che rende omogenei gli apporti dei due rami risulta pari a:
C3 =
1
fsg τiiq Tc [ s ]
(1.2.5.5)
dove Tc [s] è il periodo di campionamento della corrente, coincidente con il periodo di switching della
SVM, e che risulta più piccolo (di solito 4 o 5 volte) del Tcω utilizzato in precedenza. Ciò è dovuto al
fatto che l’anello di corrente è interno a quello di velocità, per cui in un periodo Tcω è necessario
svolgere tutti i calcoli relativi all’anello di velocità ed all’anello di corrente, più ulteriori operazioni
per la gestione generale del processore.
Passiamo ora all’analisi della parte finale dell’anello di corrente. In primo luogo, si osservi che è
conveniente porre i limitatori d’uscita dopo i feedforward ed i disaccoppiamenti d’anello; inoltre, il
riferimento Yuq, sulla falsariga di quanto già visto per l’anello di velocità, ha una fattore di scala pari a:
fsg Yuq =
fsg Kpiq fsg i*q
(1.2.5.6)
fsg τiiq Tc [ s ]
Dal punto di vista numerico, è conveniente mantenere per i disaccoppiamenti il fattore di scala di
Yuq. Dato che i termini ωmeLsid e ωmeLsiq hanno già due fattori di scala fissati, l’unico modificabile è
quello dell’induttanza sincrona Ls, che risulta necessariamente:
7
IL METODO DEL FATTORE DI SCALA GLOBALE
fsg Ls =
fsg Yuq
(1.2.5.7)
fsg ωme fsg iq
Ciò risulta fattibile a patto che Ls[H] fsg Ls > 1 in modo significativo, altrimenti occorre moltiplicare
tutti gli addendi dei nodi di compensazione per un’ulteriore costante. In modo analogo, per i termini
feedforward si ottiene necessariamente:
fsg λmg =
fsg Yuq
(1.2.5.8)
fsg ωme
Anche in questo caso la condizione da verificare è che λmg [Wb/m2] fsgλmg >1 in modo significativo.
Per ultimo, i riferimenti di tensione passano attraverso un limitatore, alla cui uscita sono finalmente
pronti u*d e u*q. Per identificare il limite superiore, possiamo pensare che u*d sia limitata superiormente
dalla metà della tensione nominale generabile dal modulatore vettoriale (se questa è ovviamente
sopportata dal motore). Sappiamo che il massimo vettore spaziale generabile ha un modulo pari a
2/3Udc; dovendo applicare una terna di tensioni sinusoidali, che nel piano αβ corrispondono ad un
vettore rotante di modulo costante, la massima tensione nominale generabile UN è data
dall’intersezione tra l’esagono prodotto dalla SVM e la circonferenza inscritta internamente
all’esagono stesso. Pertanto si ricava:
U
2
U N = U dc cos 30 ° = dc
3
3
( )
(1.2.5.9)
A questo punto le limitazioni superiori per u*d e u*q sono facilmente calcolabili:
u d , H [ µP ] = 0,5 ⋅ U N ⋅ fsg u*d
u q , H [ µP ] =
(U
fsg u *d ) − (u d , H [ µP ])
2
N
(1.2.5.10)
2
(1.2.5.11)
Per quanto riguarda i limitatori della parte integrale, dovrebbe essere sufficiente limitare il segnale
al 50% della tensione nominale UN:
u d , H int [ µP ] = u d , H [ µP ]
(1.2.5.12)
u q , H int [ µP ] = u d , H int [ µP ]
(1.2.5.13)
Come già visto per l’anello di velocità, i limiti inferiori di tutti i blocchi limitatori sono gli inversi
dei rispettivi superiori.
1.2.6 – Modulatore vettoriale di tensione
Vogliamo ora analizzare i fattori di scala globali della parte di controllo a valle dell’anello di
corrente, ossia il modulatore vettoriale che genera i riferimenti temporali per l’applicazione del
corretto vettore spaziale (parte più a destra della figura 1.2.5.1).
In generale, le uscite del sistema di controllo Tm [QT] e Tm+1 [QT] rappresentano una parte delicata
dell’azionamento. Dal punto di vista strettamente realizzativo, il sistema di controllo è interamente
digitale, per cui esso genera direttamente gli switching pattern per gli IGBT a valle; solitamente questi
pattern sono rappresentati da segnali compresi tra 0 e 5 V, opportunamente amplificati da buffer
8
IL METODO DEL FATTORE DI SCALA GLOBALE
esterni e disaccoppiati otticamente. Tralasceremo, in questa sede, le problematiche di compensazione
delle non idealità della parte di potenza.
Abbiamo già visto che il tempo di applicazione Tm [s] è esprimibile attraverso la seguente
equazione:
Tm [ s ] = 3
Tc  *  mπ  *
 mπ
uα sin
 − u β cos

U dc [V ] 
 3 
 3



(1.2.6.1)
dove Tc è il periodo di switching della SVM ed Udc [V] è la tensione disponibile sul DC bus. Per Tm+1
vale una formula del tutto analoga, per cui possiamo concentrare la nostra attenzione sull’equazione
appena riportata.
E’ inoltre noto, e lo si può riscontrare nella figura 1.2.5.1, che la trasformazione dq/αβ prevede di
moltiplicare u*d e u*q per il seno ed il coseno dell’angolo θme. Pertanto il fattore di scala di u*α e u*β è il
medesimo e risulta pari a:
fsg u *α = fsg u*d fsg ϑme
(1.2.6.2)
Nei sistemi di controllo più precisi anche la tensione Udc viene misurata, al fine di evitare un
calcolo errato di Tm e Tm+1 nel caso di calo della tensione disponibile. Questo significa che anche ad
Udc è associato un fattore di scala globale fsg Udc, dovuto al condizionamento del segnale ed alla
conversione A/D (figura 1.2.6.1).
Fig.1.2.6.1 – Fattore di scala globale di Udc.
Possiamo ora riscrivere l’espressione di Tm utilizzando le rappresentazioni interne al processore:


 mπ 
 mπ 
sin
cos
[ µP]
[ µP] 
*
*

µ
u
P
[
]
Tm [ µP]
fsg Udc uα [ µP]
3 
β
 3 


=
⋅ 
−
⋅
fsg  mπ 
fsg u *β
fsg  mπ  
fsg Tm 3Tc [ s ] U dc [ µP]  fsg u*α
sin 
cos 




 3 
 3 


(1.2.6.3)
A questo punto il fattore di scala globale di Tm [s] è facilmente ricavabile:
fsg u*α fsg
fsg Tm =
 mπ 
sin 

 3 
(1.2.6.4)
3Tc [ s ] fsg Udc
Dobbiamo però porre attenzione che il valore numerico di Tm non può essere casuale. Tutte le
tempistiche di un microprocessore sono regolate da un clock interno, la cui frequenza è fissata ed
eventualmente può essere scalata; il periodo del clock può essere convenientemente considerato come
risoluzione temporale del processore, ed indicato genericamente con QT. Pertanto, come anche
riportato nella figura 1.2.5.1, è necessario che Tm e Tm+1 assumano valori multipli del quanto temporale
QT:
9
IL METODO DEL FATTORE DI SCALA GLOBALE
Tm [QT ] =
Tm [ s ] Tm [ µP]
3Tc [ s ] fsg Udc
=
= Tm [ µP] ⋅
QT
fsg Tm QT
fsg u*α fsg  mπ  QT
(1.2.6.5)
sin 

 3 
La costante C4 dello schema di figura 1.2.5.1 vale pertanto:
C4 =
3Tc [ s ] fsg Udc
fsg u*α fsg  mπ  QT
(1.2.6.6)
sin 

 3 
Una volta calcolato Tm [QT], tale valore può essere memorizzato nei registri interni del processore
ed utilizzato per attivare la commutazione degli IGBT. Come già accennato in precedenza, sarebbe
auspicabile che C4 fosse una potenza di 2, in modo che la moltiplicazione possa essere calcolata
mediante shiftamenti, notevolmente più veloci rispetto all’utilizzo di un moltiplicatore. Per
raggiungere tale obiettivo è possibile agire, in linea di principio, su ciascuno dei termini che
compongono C4, ma quello più semplice e meno problematico da modificare è fsgsin(mπ/3).
10