Cieco alla guida di un motore DC senza spazzole BLDC


8

Sto cercando di creare un controller BLDC con un MCU e sto leggendo la guida atmel AVR444 che passa attraverso un design e un software necessari per un driver controllato con timing back-emf senza sensori.

Sto allargando la mia comprensione dell'argomento. L'applicazione che sto guardando è per un quadricottero RC, quindi il livello di precisione della velocità non è critico finché la spinta complessiva può variare con una risposta piuttosto rapida. Nemmeno il carico varierà molto. Il motore sarà a 3 fasi (avvolgimenti a Y), circa 5-10 V, <10 A immagino.

Comprendo il concetto di back-emf negli avvolgimenti flottanti per sincronizzare ruotando il campo elettrico. Tuttavia, la mia comprensione è anche che la coppia sperimentata sul rotore è proporzionale alla differenza di rotazione tra il campo elettrico e il campo permanente del rotore. Quindi il rotore di solito è leggermente indietro, causando una coppia per costringerlo a cercare di recuperare.

La nota dell'app AVR444 progetta il software per guidare la tenda del motore (usando un timing fisso) per cominciare, e accelerarlo fino a un certo punto, quindi lasciare che il software di controllo back-emf prenda il sopravvento. Questo ha perfettamente senso per me, ma ciò di cui sono curioso è qual è il limite di guida della tenda del motore?

Finché non vi è una differenza enorme tra la velocità di rotazione del rotore e la velocità di rotazione del campo elettrico, la coppia accelera il rotore e lo forza per adattarsi al campo elettrico. Poiché il campo elettrico è controllato dal software, quale sarebbe il problema di guidare ciecamente il campo elettrico e supporre che il rotore tenga il passo? Di tanto in tanto è probabile che scivoli rotazioni, ma a velocità ragionevolmente elevate (da 1000 a 5000 giri / min) e con un certo grado di inerzia, questo sarà sicuramente nella media? Se la velocità varia di 100 rpm avanti e indietro, non sono troppo agitato.

Utilizzando una tensione fissa per l'azionamento del motore e una frequenza di rotazione fissa, mi aspetto che la corrente negli avvolgimenti vari con la quantità di coppia necessaria affinché il rotore corrisponda al passo con la rotazione elettrica. Un limitatore di corrente sull'alimentatore potrebbe fermare qualcosa di troppo folle.

Pensieri? Mi rendo conto che il metodo preferito è usare back-emf in un loop di controllo, ma sto cercando un'idea su quali sarebbero i limiti di non usare un loop di controllo e guidare ciecamente un motore BLDC.

EDIT: Oltre ad essere un punto di ricerca interessante, ha anche un uso pratico. Guidare ciecamente i motori BLDC è un compito abbastanza banale, che un singolo controllo MCU potrebbe eseguire. Il progetto attuale che sto guardando richiede piccoli MCU separati per eseguire circuiti di controllo stretti per motore. In un design con 4 motori (forse più), è la differenza tra 1 e 5 MCU sulla scheda.


"A colpo d'occhio" Direi che subiresti una grave perdita di prestazioni rispetto al controllo adeguato. Il motivo per l'avvio a circuito aperto è che non è disponibile alcun feedback, a differenza dei sistemi basati su sensori in cui il controllo è chiuso da fermo. Con il feedback back-emf ad anello chiuso puoi guidare il motore a raggiungere le massime prestazioni possibili consentendo all'angolo tra il campo di guida e i campi condotti di aumentare fino a un certo limite che decidi che non causerà slittamento. senza feedback, non hai idea di cosa stia facendo il rotore. ...
Russell McMahon,

... Commento: Ho giocato con il controllo del motore BLDC circa 2 anni fa con poca esperienza pratica da allora. I miei commenti si basano su ricordi pratici ma sbiaditi nel tempo | Scavare nella memoria del passato: non è solo una questione di "rotazioni di scorrimento" che implicano una spinta continua nella direzione desiderata. Quando si fa scivolare la direzione di marcia si inverte e il rotore è soggetto a forze di decelerazione. Man mano che il campo continua a ruotare rispetto al rotore, entrerai in una zona di marcia avanti e poi, se ancora scivoli, vai di nuovo a marcia indietro, ecc ...
Russell McMahon,

... Il motore potrebbe sincronizzarsi bene e rapidamente, ma potrebbe non esserlo. È possibile che si verifichino esplosioni di oscillazione dell'unità ogni volta che si scivola. | Dubito che sia davvero una decisione da 1 o 5 MCU - se hai valutato di avere un MCU con motori remoti dovrebbe essere fattibile. Ma il costo di un MCU è assolutamente minimo rispetto a tutti gli altri costi e replicare una progettazione corretta più volte costa solo hardware economico.
Russell McMahon,

Capisco cosa vuoi dire. Quando si fa scivolare una rotazione, non si inerpicherà fino a quella successiva - subirà una coppia negativa facendola rallentare, suscettibile di causare oscillazioni.
Oliver,

@Oliver: non proprio. Una volta che scivola, la coppia media improvvisamente scende a zero e il motore si bloccherà completamente. Fondamentalmente non puoi recuperare senza qualche altro feedback. Pensa a cosa è un errore. Hai provato a guidare il motore più velocemente di quanto potesse andare. A brevissimo termine vedrà una coppia negativa, quindi le cose peggioreranno. Non c'è quindi alcun meccanismo per accelerare il motore per rimetterlo in sincronia. Perché non usare i sensori Hall? Ciò consentirebbe una guida efficiente, che conta quando si utilizza la batteria.
Olin Lathrop,

Risposte:


11

Guidare una tenda per motore è una cattiva idea per diversi motivi:

  1. È inefficiente. Il modo più efficiente per far funzionare il motore è che il campo magentic sia di 90 ° davanti al rotore. Detto in altro modo, la coppia sul rotore è il prodotto incrociato del campo magnetico motore e dell'orientamento magnetico del rotore.

    Con il feedback di posizione, il campo magnetico può essere mantenuto vicino all'angolo ottimale, il che significa che la corrente spinge effettivamente il motore invece di tenerlo in posizione. Detto in altro modo, l'ampiezza è esattamente ciò che deve essere per mantenere il motore che gira alla velocità desiderata nella configurazione di coppia massima. Quando non sai dove si trova il rotore, finisci per guidare troppo il motore.

    Un altro modo di vedere questo è che il campo guida ha una componente seno e coseno. Diciamo che il coseno è la parte a 90 ° davanti al rotore e la parte del seno è dove si trova attualmente il rotore. Qualsiasi angolo di fase può essere pensato solo come un diverso mix di componenti seno e coseno. Tuttavia, solo il componente coseno sposta il motore. Il componente sinusoidale provoca solo riscaldamento e rappresenta energia sprecata.

  2. Una volta perso il blocco, il gioco è finito. Con una trasmissione fissa, l'angolo di trasmissione sarà solo leggermente più avanti del rotore con una coppia bassa. All'aumentare della velocità (e la tensione effettiva dell'azionamento diminuisce automaticamente a causa di EMF posteriore) o il carico aumenta, l'azionamento fisso si alzerà di 90 ° prima del rotore.

    Tuttavia, a questo punto è proprio sul bordo e qualsiasi modifica causerà meno coppia. Se il carico sul motore aumenta, il rotore resterà indietro di oltre 90 °, il che provoca una coppia inferiore, il che gli fa perdere ancora di più. Nel giro di 1/4 di giro successivo, la coppia in avanti diminuirà a zero. Quindi per il successivo 1/2 giro successivo, la coppia motrice spinge il rotore all'indietro.

    A questo punto sei totalmente fregato. Ricorda che ti sei imbattuto in questa situazione in primo luogo perché la coppia motrice non ha potuto tenere il passo con il carico e hai appena sperimentato una marcia netta negativa negli ultimi 3/4 di giro. Se il carico viene rimosso improvvisamente e se sei molto fortunato, il rotore potrebbe essere in grado di accelerare per sincronizzarsi con l'unità nel prossimo ciclo 1/4, ma certamente non se qualunque condizione abbia causato il problema in primo luogo è ancora presente.

    Una volta che il rotore non è sincronizzato, la coppia netta su una qualsiasi rotazione è 0. Il prodotto di due onde sinusoidali di frequenza diversa è sempre in media 0, indipendentemente dall'angolo di fase tra di loro.


Vale la pena notare che mentre i motori passo-passo e i motori brushless sono concettualmente molto simili, e i primi sono generalmente costruiti in modo da poter dissipare in sicurezza il 100% della potenza operativa nominale come calore, la maggior parte dei motori brushless non può essere trattata in modo sicuro in questo modo?
supercat,

@Olin bene dopo tutti questi anni in cui l'unità senza sensori o cieca è ancora decisamente inferiore. Non ho fatto alcun lavoro su questo, quindi penso che tu abbia ragione +1. Ricordo quando avevo i capelli e non ero in sovrappeso un collega del college che lavorava su questo per i suoi padroni. Questo era il 1986 mentre avevo un posto di ricerca e stavo ripetendo un corso di sistemi di controllo. Gli mostrai le mie cose e mi mostrò la configurazione del motore BLDC. Non l'aiutai che era tutta roba micro. Ciò che fece fu adeguato per una lavatrice. Non era perfetto. Mi stupisce che dopo tutti questi anni la guida cieca non sia stata perfezionata.
Autistico,

@Aut: L'azionamento sensorless e cieco sono totalmente diversi. Sensorless è un modo diverso di inferire la posizione del rotore, ma alla fine utilizza ancora la posizione assunta per guidare il motore. Sensorless può funzionare abbastanza bene se implementato correttamente.
Olin Lathrop,

0

quindi il livello di precisione della velocità non è critico fintanto che la spinta complessiva può variare con una risposta piuttosto rapida

non proprio come funziona, basta google su come le nuove esc per quadricotteri vanno oltre il servo pwm standard per motivi di velocità e precisione.

In secondo luogo, "l'avvio cieco" ha il solo scopo di far muovere il rotore, in modo casuale ma in movimento, quindi la sua posizione iniziale può essere determinata dall'emf posteriore che induce

Ricorda anche che i BLDC sono motori sincroni, "slip" non ha un posto importante qui. Grandi risorse per imparare la "math" molto ma la teoria fondamentale in modo "umano" può essere trovata nei forum "sfera infinita" :-)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.