Archivi tag: Sensored

Aggiungere i sensori al motore

Il passo successivo è stato quello di aggiungere i tre sensori ad effetto Hall al motore. Vi propongo alcune immagini della trasformazione da Sensorless a Sensored.

IMG_1545

IMG_1544

IMG_1546

I sensori impiegati sono tre SS411A della Honeywell, i quali sono sensori ad effetto Hall con uscita digitale, compensati in temperatura, bipolari e con isteresi (qui il datasheet).

Per il montaggio ho preferito la soluzione in cui i tre pin del sensore sono orientati lungo un raggio, così da rendere possibili piccoli aggiustamenti di posizione piegando il sensore lungo la tangente al rotore, in una direzione o nell’altra. In ultimo, magari, bloccando tutto con resina epossidica.

I sensori vanno disposti ad una distanza angolare, tra loro, di 360°/21. Circa 17°. Ho misurato il raggio su cui stavo disponendo i sensori, ne ho calcolato l’ipotetica circonferenza e ho diviso questa misura per 21. Nel mio caso la distanza tra i sensori deve essere di circa 9.5 mm, quindi ho trovato una combinazione che mettesse d’accordo il più possibile le esigenze di spaziatura tra i sensori e il passo del millefori usato come supporto. In questa fase essere precisi è importante, ma bisogna anche tenere presente che è possibile in un secondo tempo fare piccoli aggiustamenti di posizione dei sensori.

A questo punto, dopo aver realizzato i pochi collegamenti elettrici sia sulla schedina sensori che verso il driver, siamo pronti a verificare che ruotando il rotore i tre sensori commutino correttamente, aprendo e chiudendo verso massa le resistenze R17, R18 e R19 poste sulla scheda driver.

Ora è il momento di connettere i tre fili di alimentazione del motore con i tre fili PH_A, PH_B e PH_C del driver. Ricordate di ancorare bene il motore a un supporto prima di dare alimentazione al driver, usate un Duty Cycle del segnale PWM_IN molto basso 5-10% e una fraquenza di 20kHz . A questo punto  si procede per tentativi, vi conviene comunque provare tutte le possibili combinazioni, sono solo sei. In questi tentativi ci sarà sicuramente una combinazione in cui il motore girerà con meno vibrazioni e assorbendo meno corrente, scegliete quella.

E’ arrivato il momento di fare qualche regolazione. Come prima cosa, a motore in rotazione, lasciando fermo il sensore centrale spostare leggermente gli altri due affinchè le tre onde quadre che troviamo sulle resistenze R17, R18 e R19 siano sfasate di 120° tra loro.

IMG_1552

Ora, sempre a motore in funzione, allentando i dadi di fissaggio della basetta dei sensori ruotate leggermente il gruppo sensori in una direzione e nell’altra fino a trovare la condizione in cui il driver assorbe la minima corrente, fissate la basetta dei sensori. Verificate che lo sfasamento dei tre segnali sia ancora 120°, eventualmete ritoccate leggermente.

Come potete notare nella foto dello schermo dell’Analizzatore di Stati Logici, non tutti e tre i segnali dei sensori hanno un duty cycle del 50%, come dovrebbe essere, solo quello del canale 1 (traccia fucsia) si avvicina molto a questa condizione, gli altri due canali invece hanno un duty cycle del 48% uno e l’altro del 52%. Naturalmente nella foto non si può vedere, ma a motore in rotazione questi segnali hanno delle piccole e continue fluttuazioni temporali (jitter), ma comunque sempre nell’intorno dei valori di cui sopra.

Partendo dal presupposto che le condizioni di funzionamento dei tre sensori siano identiche, ritengo che le irregolarità dei segnali dipendano proprio dai sensori ad effetto Hall, più precisamente dal fatto che le isteresi dei sensori delle tracce 0 e 2 non siano centrate nel punto a zero campo magnetico. Comunque in prima battuta mi sento di dire che queste imprecisioni, data la loro contenuta entità, provocano effetti trascurabili.

OK!!! Le tarature sono finite e come avrete avuto modo di vedere il motore gira molto fluidamente, con pochissime vibrazioni e per di più assorbendo pochissima corrente (0.2-0.4A). Ora potete provare ad aumentare il Duty Cycle.

Saluti

FP

Il driver per motori BLDC

E’ passato un po’ di tempo dall’ultimo articolo, ma non è trascorso invano. In questo periodo ho progettato e realizzato un prototipo di driver per motori brushless sensorizzati.

IMG_1541

Le caratteristiche di questo driver sono state dettate da questo motore. Nell’immagne di seguito potete vedere lo schema elettrico del driver (qui la versione pdf).

MyOpenWheels _ Driver BLDC

Il funzionamento di questo driver è veramente molto semplice. Il cuore di tutto il sistema  è una GAL 16V8 (U2) che sintetizza le sei reti combinatorie (qui la tabella della verità) che pilotano i segnali IN e SD dei tre IRS2104 (U1, U3 e U5). IRS2104 che a loro volta pilotano le tre coppie di mosfet le quali con le loro commutazioni generano una pseudo terna trifase che alimenta e fa girare il motore.

La GAL 16V8 accende e spegne i mosfet, in base ai 6 segnali d’ingresso. Tre di questi provengono dall’esterno, cioè dal sistema di controllo che comanderà il presente driver e sono EN (abilitazione), DIR (direzione) e PWM_IN (ingresso PWM). In breve, il livello 1 all’ingresso EN abilita l’azionamento, il livello logico 1 o 0 all’ingresso DIR determina la direzione di rotazione del motore e in ultimo il segnale all’ingresso PWM_IN modula la corrente negli avvolgimenti del motore, quindi ne fa variare la coppia e la velocità di rotazione. Gli altri tre segnali che entrano nella GAL 16V8 (U2) sono SA, SB e SC, cioè i segnali provenienti dal sensore interno al motore, che individuano la posizione istantanea del rotore.

Dall’esterno, quindi, si dovranno fornire i tre segnali per il controllo del motore cioè EN, DIR e PWM_IN, ma al tempo stesso riceveremo dal driver BLDC le seguenti informazioni:

  1. Segnale analogico funzione della corrente assorbita dal motore da -75A a +75A;
  2. Segnale analogico funzione della temperatura del motore da 2°C a 100°C;
  3. Coppia di segnali in quadratura di fase (emulazione encoder) ENC_A e ENC_B.

Con la presenza di questi segnali di feedback un generico sistema di controllo potrà avere tutte le informazioni necessarie alla gestione delle funzionalità e delle sicurezze.

Il sensore di temperatura LM35DZ connesso al connettore J4, viene a sua volta montato in contatto termico con il motore.

La GAL 16V8 U4 è quella che si occupa di trasformare i segnali SA, SB e SC in ENC_A ed ENC_B, per fare ciò viene sintetizzato al suo interno il seguente schema elettrico.

MyOpenWheels _ Emul Encoder

La risoluzione dei segnali emulati ENC_A e ENC_B dipende strettamente dalle caratteristiche del motore. Nel nostro caso, ad esempio, il motore ha 12  poli statorici e 14 poli rotorici, percui ci saranno 42 commutazioni per giro. 21 per ENC_A e altrettanti per ENC_B.

Naturalmente nel caso non dovessero servire i segnali di emulazione dell’encoder, si può omettere dal circuito U4, la seconda GAL16V8.

Desidero ringraziare Enzo Caruana, che mi ha aiutato nelle varie fasi di questo progetto, nonchè mi ha “iniziato” alla logica programmabile. Questo è il mio primo progetto che fa uso di PLD, e devo ammettere che il risultato mi ha entusiasmato.

Un saluto a tutti.

FP

Vi ricordo che tutto il materiale di queste pagine è reso disponibile secondo la licenza CC BY-NC-SA 3.0.

GAL Commutazioni

GAL Encoder

PS: Il software utilizzato per compilare i file JED è WinCUPL di Atmel gratuitamente scaricabile da qui, previo registrazione.

Quale motore?

Per dimensionare il motore sono partito dalla considerazione che MOWs dovrà riuscire, a pieno carico, ad arrampicarsi  agevolmente su una pendenza di 30° (57%). Nelle strade è difficile trovare pendenze così spinte, ma al contrario le rampe che portano dai garage alla strada spesso hanno pendenze di questa entità.

Altra caratteristica voluta è la capacità di MOWs di raggiungere i 20 Km/h nella maggior parte delle condizioni operative, e di avere a tale velocità una riserva “notevole” di potenza per contrastare eventuali richieste del conducente di aumento della velocità.

A conti fatti ho scelto questo Turnigy Aerodrive SK3 – 6374-149kv, motore per aereomodelli. Le informazioni tecniche del motore sono piuttosto carenti:

18184

Potenza : 2250 W

Tensione : 44.4 V

Corrente max : 70 A

Resistenza Int. : 0.021 Ohm

Max vel no load : 6600 RPM

Peso : 840 g

Manca quindi una curva di coppia, non è specificato un rendimento, ma dato che è stato usato con successo in monopattini e mini go-kart elettrici allora do per scontato che i 2,25 kW ci siano tutti, non potrà certamente erogare all’albero la massima potenza in modo continuo, ma quando serve, per alcuni secondi i 2 kW te li dovrebbe dare.

Il motore è però un BLDC Sensorless, e questo è un problema, bisognerà provvedere ad aggiungere esternamete tre sensori ad effetto Hall. Questo perchè la tecnica di pilotaggio “Sensorless” non può funzionare correttamente a basse velocità.

Si comincia a delineare un percorso:

  1. progettare e realizzare un prototipo di driver Sensored;
  2. comprare una coppia di motori;
  3. testare l’assieme motore, driver e sensori;
  4. finalmente caratterizzare il gruppo driver-motore estraendo la curva di coppia, la curva di rendimento etc.

Questo è quello che avrei intenzione di fare nel prossimo futuro. Una volta in possesso di caratteristiche più complete del motore sarà possibile studiare soluzioni di trasmissione del moto alle ruote. Già prevedo però l’utilizzo di un riduttore epicicloidale direttamente sul motore e subito in uscita un gruppo pignone-catena-corona.

Ciao

FP