Controller motore PWM ad alta tensione - I mosfet esplodono


12

Ho cercato in ogni post una risposta a questo problema. Ho costruito un circuito di controllo motore come mostrato in questo diagramma. Ho reso il diagramma il più preciso possibile. I diodi sui mosfet sono stati aggiunti in modo che il simbolo del mosfet sembrasse proprio come il simbolo nella scheda tecnica. Come puoi vedere, è un circuito PWM molto semplice che utilizza una scheda UNO Arduino. Un pedale del potenziometro è collegato a uno degli ingressi analogici e viene utilizzato per determinare il duty cycle dell'uscita pwm sul pin 6 dell'uscita digitale.Collegamento al circuito

Il motore è il più piccolo motore a 48 V di questo tipo prodotto dalla motenergy, ma questo è un motore molto grande rispetto ad altri circuiti che ho visto in questo modo. Può facilmente estrarre circa 200 Amp all'avvio.

Il tipo di circuito funziona - quando il veicolo viene sollevato in modo che le ruote non tocchino il suolo. In quello stato, è molto facile far girare il motore e non assorbe molta corrente. Quando le ruote sono a terra, i mosfet esplodono nel momento in cui inizi a premere il pedale. Ho costruito questo circuito circa 4 volte. Ho anche usato 18 mosfet in parallelo in una versione e tutti e 18 sono esplosi all'istante. (200/18 = circa 7 Amp / mosfet) Ogni mosfet dovrebbe gestire 32 Amp.

Alla fine abbiamo appena acquistato un controller del motore da alltrax e il veicolo funziona bene, ma sono determinato a scoprire perché il mio controller del motore non ha funzionato. Adoro l'elettronica e nel corso degli anni ho costruito molti circuiti difficili. Non riuscirò a dormire bene finché non scoprirò cosa sto facendo di sbagliato.

Ho parlato con un tecnico di Alltrax e ha detto che i loro controller non sono altro che un mucchio di mosfet e condensatori. Ha detto che i condensatori hanno impedito l'esplosione dei mosfet, ma non aveva idea di come fossero collegati al circuito. Penso che abbia un pezzo delle mie informazioni mancanti.

Quindi, qualcuno può dirmi cosa sto facendo di sbagliato? Come devo aggiungere condensatori per risolvere questo problema? Potrebbe essere la frequenza? Abbiamo modificato il timer su Arduino in modo che la nostra frequenza PWM fosse di circa 8000 Hertz, ma il controller Alltrax funziona a 18.000 Hertz strabilianti. So che 18k è piccolo come vanno i controller del motore, ma ho pensato che un motore gigante vorrebbe una frequenza più piccola.

Inoltre, prima di dire che i mosfet non possono essere collegati in parallelo a causa delle lievi differenze tra loro, ho usato esattamente 7 pollici di filo calibro 18 per collegare ciascuno in parallelo. Il filo piccolo fungerebbe da resistore minuscolo e assicurerebbe che ognuno condividesse il carico corrente.

Grazie mille per le tue risposte.


2
Continui a parlare di alcuni controller Alltrax, ma non è visibile nello schema.
Harry Svensson,

1
Il numero di parte per i MOSFET nello schema è accurato / corretto?
ThreePhaseEel

2
Non sono davvero un esperto, ma ho una brutta sensazione basata su qualche esperienza. Quel motore ha una potenza nominale di 13 cavalli. Stai seriamente cercando di controllarlo con un Arduino, 3 FET e 2 resistori? Considera quanto costerebbe un controller industriale per ottenere lo stesso risultato - in modo sicuro ...
Paul Uszak il

3
Quale diodo stai usando attraverso il motore - è meglio essere grande.
Andy aka

1
13 CV / 48 V = 210 A. Caspita, c'è molta corrente. Suppongo 500 ampere quando il motore si blocca? Potresti scrivere un libro su diodi flyback e snubber per una corrente così elevata.
Oskar Skog,

Risposte:


29

Ecco la scheda tecnica che dovrebbe essere collegata alla tua domanda. Non dovrei cercarlo.

Ogni mosfet dovrebbe gestire 32 Amp

Questo è con VVGS=10


Impostate su , qui volete davvero quanta più tensione possibile (5V sembra essere il massimo). Se fossi in te cambierei in 10 ~ 50Ω e in 100k ~ 1MΩ. Perché se non stai aprendo completamente il MOSFET, allora avrà troppa resistenza e .... esploderà. 5 V × R 2VGSR1R25V×R2R1+R2=4.54VR1R2

Con , è massimo 35mΩR D S ( o n )VGS=10VRDS(on)

P=I2×R=(32A)2×0.035Ω=35.84W , ciò significa che ~ è la dissipazione di potenza prevista quandoVGS=10V

Con , è massimo 45mΩ secondo il foglio dati.VGS=5VRDS(on)

35.84W=I2×0.045Ω , e se spostiamo l'io in giro otteniamo: , quindi puoi aspettarti di lasciare tranquillamente 28A attraverso il MOSFET IF correggi i valori della resistenza. Dovresti assolutamente procurarti un dissipatore di calore per i MOSFET. Forse anche il raffreddamento attivo con una ventola.I=35.840.045=28.2A

Abbiamo modificato il timer su Arduino in modo che la nostra frequenza PWM fosse di circa 8000 Hertz

Non hai bisogno di così alti, 800Hz sarebbe accettabile, questo è ciò a cui passano i comuni driver BLDC (ESC). (Se non erro).


Quello che stai cercando di fare è caricare un gate con un resistore in serie, sembra proprio come l'immagine qui sotto e possiamo usare quel modello per ulteriori equazioni.

La capacità del gate ( ) ha un valore massimo diCiss1040pF

I resistori e il MOSFET formano questo circuito:

Circuito RC

C=Ciss×3=3120pF perché hai 3 in parallelo.

R=R1||R2=909Ω

Vs=4.54V

La tensione sul condensatore segue questa equazione: dove è la tensione attraverso il condensatore e è ciò con cui lo stai alimentando, in nel nostro caso è .

Vc=Ve×(1etRC)
VcVeVs=4.54V

Stai inviando PWM e farò uno scenario assolutamente peggiore per te, è quando stai provando a fare analogWrite (1) , questo è un ciclo di lavoro di . Quindi il tempo in cui il segnale inizia a salire fino a quando non termina con quel ciclo di lavoro e 8kHz è 488,3 nanosecondi.12561256×18000=

Inseriamo i numeri nell'equazione sopra per vedere quale sarà la tensione al gate.

Vc=4.54V×(1e488.3×109(909)×(3120×1012))=0.71V

Il MOSFET inizia ad aprirsi a 1 V minimo e 2,5 V massimo. Quindi, nel peggiore dei casi, non puoi nemmeno aprire il cancello. Quindi è stato chiuso per tutto il tempo.


Un'altra cosa che devo davvero sottolineare è la ragione più probabile per cui i tuoi MOSFET si stanno rompendo è perché quando lo cambi lo fai così lentamente a causa dei giganteschi resistori e con così tante capacità di gate. Ciò significa che quando i MOSFET stanno per passare, passano molta corrente pur avendo molta tensione su di essi. E => calore davvero molto.P=I×V

Vedi questa immagine:

perdite di commutazione

Come puoi capire, non vuoi essere dove si incrociano la linea blu e la linea rossa. E la larghezza di quella transizione è la stessa indipendentemente dalla frequenza di commutazione, quindi più spesso si passa, più tempo viene trascorso in quella transizione dolorosa. Si chiama perdita di commutazione. E si ridimensiona linearmente con la frequenza di commutazione. E i vostri alti resistenze, ad alta capacità, di commutazione ad alta frequenza, molto probabilmente ti fa stare in quella fase di transizione tutto il tempo. E questo equivale a esplosioni o rottura di MOSFET.


Non ho davvero il tempo di fare più calcoli, ma credo che tu ne abbia l'idea. Ecco un link a uno schema se vuoi giocare. Quale dovresti! .


Il mio ultimo consiglio è quello di ottenere un driver MOSFET in modo da poter pompare diversi AMPS nel gate, in questo momento stai pompando milliampere.


A proposito del Doctor Circuit, per quanto riguarda il tuo ultimo paragrafo, questo è solo un problema con i transistor BJT, forniscono più corrente il più caldo che sono, i MOSFET tuttavia forniscono meno corrente il più caldo che sono, quindi non hanno bisogno di alcun tipo speciale di bilanciamento, lo faranno bilanciare automaticamente.


CONTINUAZIONE, Tempo di salita e Tempo di caduta.

Ero piuttosto cattivo nell'esempio sopra, commutazione a 8kHz e 1/256 duty cycle. Sarò più gentile e guarderò il duty cycle del 50% = 128/256. Voglio sapere e dirti quante volte sei nella tua dolorosa transizione.

Quindi abbiamo ottenuto i seguenti parametri rilevanti per la transizione dolorosa :

td(on) = Tempo di ritardo accensione = Tempo di salita accensione = Tempo di ritardo spegnimento = Tempo di caduta spegnimento
tr
td(off)
tf

Farò alcune brutte approssimazioni, presumo che il plateau del mugnaio non esista, presumo che la tensione attraverso il MOSFET diminuisca linearmente all'accensione e aumenti linearmente allo spegnimento. Presumo che la corrente che fluisce attraverso il MOSFET aumenti linearmente all'accensione e diminuisca linearmente allo spegnimento. Suppongo che il tuo motore assorba 200A durante uno stato di regime costante del 50% con un certo carico, ad esempio il tuo corpo. Quindi 200A mentre ci sei e acceleri. (Maggiore è la coppia erogata dal motore, proporzionalmente maggiore sarà la corrente assorbita).

Ora ai numeri. Dal foglio dati conosciamo i seguenti valori massimi:

td(on) = 40ns = 430ns = 130ns = 230ns
tr
td(off)
tf

Quindi va bene, prima voglio sapere quanto dura un periodo di 8kHz della transizione sopra. La transizione avviene una volta ogni periodo. I ritardi non influiscono davvero sulla transizione (a meno che non stiamo passando a frequenze davvero molto alte, come 1MHz).

tempo in transizione con duty cycle del 50% e fs a 8kHz = Ho pensato di vedere un valore molto più grande, questo sta ignorando il roba da miller-plateau e parassita, e ignorando la carica del cancello lento. Anche questo sta ignorando il fatto che il tempo di salita e di discesa è in realtà dal 10% al 90% del segnale, non dallo 0% al 100% che sto assumendo nei miei calcoli. Quindi moltiplicerei 0,528 per 2 per rendere la mia approssimazione più vicina alla realtà. Quindi 1%.tr+tf18000=0.00528=0.528%

Ora sappiamo quanto spesso trascorriamo del tempo in quella dolorosa transizione. Vediamo quanto è davvero doloroso.

P=1T0TP(t)dt

Vr(t)=48V(1t430ns)
Ir(t)=200A430nst

Vf(t)=48V230nst
If(t)=200A(1t230ns)

P=Pr+Pf
Pr=1tr0trVr(t)×Ir(t)dt
Pf=1tf0tfVf(t)×If(t)dt

Pr=1600W LOL! Stessa risposta, strano
Pf=1600W
P=Pr+Pf=3200W

Ora torniamo a quanto spesso hai speso in questa transizione da 3200 W. Era circa l'1% quando la realtà entra in gioco. (E ho pensato che sarebbe stato molto più spesso).

Pavg=3200W×1%=32W Hmm, di nuovo ho pensato che avrei visto qualcosa di molto ... più grande.


E ... calcoliamo l'altro 99% delle volte! Di cui mi ero completamente dimenticato. Ecco la grande esplosione! Sapevo che c'era qualcosa che avevo dimenticato.

P 50 % @ 8 k H z = 32 W + 1800 W × 49,5 % = 923 WP=I2×R=(200A)2×(0.045Ω)=1800W E trascorri il 49,5% del tempo in questa modalità di conduzione. Quindi il tuo totaleP50%@8kHz=32W+1800W×49.5%=923W

Con 3 MOSFET in parallelo sono per MOSFET. Questo è ancora ... EX-PU-LOSIVE!32W+1800W×49.5%3=329W

Eccoci. C'è la bomba che stai cercando. EX-PU-Losion

Questa è la mia ultima modifica.


4
Penso che tu stia chiaramente mostrando quanto sia difficile guidare 13 cavalli in modo sicuro e affidabile. E gli schizzi maliziosi? Cosa fa il motore quando OP sta caricando un nuovo schizzo e i pin sono fluttuanti / indefiniti? E forse cortocircuitando la sorgente a 48 V - sarà interessante. C'è molto da fare per evitare delusioni / incendi ...
Paul Uszak,

7
Bene, siamo solo felici che stia scherzando con 48V e non 480V. Puoi sopravvivere alle ustioni e imparare per la vita, ma è difficile imparare dalla morte per insufficienza cardiaca.
Harry Svensson,

3
@DoctorCircuit 1 nF è la capacità del gate, The . Non puoi rimuoverli. Fanno parte del MOSFET . Il tuo Arduino può spingere circa 20 mA attraverso i loro transistor. Quello è ancora milliampere . È necessario spingere diversi AMPS affinché questo sia persino vicino a qualcosa che funzioni. È necessario un altro stadio tra Arduino e MOSFET che guidano il carico. Un inverter logico potrebbe forse fare il lavoro. Ma questo è ciò di cui hai veramente bisogno per spingere diversi AMPS. Ciss
Harry Svensson,

2
@DoctorCircuit Questo sarà il mio ultimo commento. Guarda questo video . Guarda il tutto per divertimento. Intorno alle 5:12 mostra i MOSFET usati. Che è circa 1/3 del tuo. Ed è fatto per un motore molto meno esigente. Il tempo di salita (che fa parte della transizione dolorosa) è 430 ns per il tuo MOSFET e 110 ns per l'ATP206. Il tempo di caduta, che è anche parte della transizione dolorosa, è di 230 ns per il tuo e di 73 ns per l'ATP206. Quindi trascorre circa 3-4 volte meno nella transizione dolorosa. Quindi un motore molto più debole ha un MOSFET molto migliore. RDS(ON)
Harry Svensson,

3
@DoctorCircuit Ho mentito, questo è il mio ultimo commento. Se realizzerai un inverter logico da solo anziché acquistare un driver mosfet. Quindi devi davvero assicurarti di non mettere in corto i mosfet durante la loro transizione. Ecco come lo fai.
Harry Svensson,

8

I MOSFET moderni richiedono una commutazione rapida, per evitare di indugiare in una regione pericolosa in cui il feedback positivo (interno al silicio) provoca la distruzione. Leggi gli ultimi paragrafi di questa risposta per la spiegazione del documento della NASA.

RIEPILOGO RAPIDO: quel resistore di gate ----- 1Kohm ------ è troppo grande. Usa un Power Driver IC, con cappuccio di bypass 0,1UF sul suo VDD da 12/15/18 volt in modo che i gate MOSFET possano essere caricati rapidamente per una rapida accensione.

I MOSFET si saranno distrutti a causa delle valutazioni SOA dell'area operativa sicura, dove Tensione * Corrente * PulseWidth definisce la dissipazione di potenza.

Supponendo che le giunzioni FET siano profonde 10U (SWAG), si dispone di una TAU da 1,14 microsecondi per la costante temporale tematica dell'area attiva FET. Con la moltiplicazione Miller, il tempo di accensione supererà di gran lunga quello, con 48 volt attraverso i FET e senza limiti di corrente.

===================================

modifica il 18 marzo 2018

La NASA ha diagnosticato guasti di MOSFET in diversi progetti in corso come dovuti all'uso di MOSFET MODERNI (il writeup della NASA è apparso nel 2010; l'industria automobilistica ha scoperto questo meccanismo di guasto nel 1997). Il comportamento in precedenza a coefficiente di temperatura negativo dei MOSFET a tecnologia precedente è stato spinto nelle regioni a corrente più elevata e ora esiste una nuova regione non sicura nella regione a moderato. La NASA ha riportato quei progetti alla VECCHIA TECNOLOGIA, in modo da poter costruire sistemi affidabili.

Cosa significa questo oggi? Abbastanza semplice

--- Non indugiare più di 1 microsecondo nella regione di commutazione. ---

--- Caricare rapidamente la capacità del gate, inclusa la capacità del gate-drain. ---

Il titolo del documento della NASA [pubblicato nel 2010] è

"Supporto per la caratterizzazione dell'operazione di instabilità termica del MOSFET di potenza" e qui viene citata la frase chiave "i progetti ora in fase di realizzazione consentono alla regione dominata dal vettore di carica (una volta piccola e al di fuori dell'area interessata) di diventare importante e all'interno dell'area operativa sicura ( SOA)".

Per quanto riguarda i vecchi (robusti MOSFET), ho estratto questa frase:

"I MOSFET precedenti erano principalmente gestiti nella regione dominata dalla carica di mobilità. Pur mantenendo la stessa tensione di gate, la regione dominata dalla carica di mobilità riduce la corrente all'aumentare delle temperature, diminuendo a sua volta la corrente consentendo al sistema di avere un feedback negativo lontano dalla fuga termica. In effetti quando i nuovi MOSFET di potenza hanno alte tensioni di gate, le parti sono dominate dalla carica di mobilità. È stato l'intento non detto dei produttori di mantenere i MOSFET nella regione dominata dalla carica di mobilità, così come sono usati come interruttore ad alta velocità. Le parti più vecchie hanno un'area dominata dal portatore di carica. L'area, tuttavia, è al di fuori della normale SOA e si verificano guasti per altri motivi. "


7

Innanzitutto, hai scelto i FET sbagliati.

FQP30N06 ha 40 mOhm RdsON a Vgs = 10V. A Vgs = 5V non è specificato, il che significa che non funzionerà.

Scegliere un MOSFET è un compromesso: grandi MOSFET con grandi stampi in silicone e basso RdsON hanno molta capacità e cambiano lentamente. MOSFET più piccoli cambiano più velocemente ma hanno RdsON più alto.

Tuttavia, passerai a 500-1000 Hz e la tua corrente è enorme, quindi RdsON conta molto più della velocità.

Pertanto, è necessario selezionare MOSFET To-220 (per il raffreddamento) con RdsON molto basso (come alcuni mOhm), specificato in un Vg di ... continua a leggere.

In secondo luogo, si utilizza il gate drive 5V su un FET specificato per il gate drive 10V, quindi non è completamente acceso. Quindi si riscalda ed esplode. Chiunque può vederlo guardando il foglio dati.

Considerando la corrente, andrei con un gate drive a 12V per rendere RdsON il più basso possibile. Quindi puoi scegliere FET specificati Vgs 5V o 10V, nessun problema.

OK. Ora hai un sacco di FET e devi guidarli con 12V. Ovviamente hai bisogno di un driver che emetta qualche amplificatore nel gate per accenderlo e spegnerlo rapidamente. Controlla la categoria "MOSFET driver" su mouser / digikey, ci sono tonnellate di prodotti adatti che accetteranno il 5V dal tuo arduino e guideranno correttamente un FET.

Avrai bisogno di un'alimentazione a 12V, ma non è un problema dato che hai 48V, usa un convertitore DC-DC.

Terzo, devi abbandonare l'Arduino.

Questo tipo di controller ha bisogno di un limite di corrente e questo deve agire prima che esplodano i MOSFET (non dopo).

Il modo in cui è fatto è molto semplice. Metti un sensore di corrente (molto probabilmente l'effetto Hall qui) e un comparatore. Quando la corrente supera una soglia, il PWM viene ripristinato, attende un po 'e quindi riprende. Quando la corrente supera una soglia molto più grande, ciò significa che qualcuno ha bloccato un cacciavite nei terminali di uscita, quindi il PWM si ferma definitivamente e non riprende.

Ciò deve avvenire a una velocità incompatibile con il software.

La maggior parte dei microcontrollori commercializzati per il controllo dei motori include comparatori analogici collegati all'unità PWM, per questo scopo specifico. Il micro sull'Arduino non è uno di quelli.


4

Non vi è alcun rilevamento di corrente e quindi nessuna limitazione di corrente sull'azionamento del motore. La potenziale corrente del motore a zero giri / min potrebbe essere migliaia di ampere perché la resistenza degli avvolgimenti dei grandi motori a corrente continua può essere di miliohm. Dovresti applicare una qualche forma di limite di corrente a meno che tu non voglia usare un'enorme quantità di mosfet e ancora rischiare di farli saltare in aria. il gate drive deve essere controllato su un ambito. Probabilmente sarà troppo lento causando un eccessivo riscaldamento del mosfet. Considera un chip del driver o una sorta di circuito del driver discreto. Il tuo drive del motore come la maggior parte è una commutazione difficile e quindi ha perdite di commutazione proporzionali alla frequenza . Prova a ridurre il test di frequenza PWM per il rumore audio obiezioni. Potresti essere in grado di ridurre notevolmente F senza ottenere troppi lamenti. Questo raffredderà i feti.


2

Se disponi di un modello accurato di tutti i componenti LTSpice, puoi analizzare il motivo per cui non funziona.

Un modello accurato della scarica Q durante la commutazione di corrente porta alla comprensione del progetto che è necessario il gm di ogni stadio accuratamente selezionato o il suo rapporto RdsOn inverso.

Se si conosce il rapporto degli interruttori elettromeccanici come relè reed, relè di potenza, solenoidi e contattori di grande potenza, il rapporto tra corrente di contatto e corrente di bobina scende gradualmente da> 3k a 100: 1 La differenza principale è che la corrente del gate FET dopo la commutazione.

Esaminare il foglio dati e verificare la tensione RdsOn gate3 che si prevede di utilizzare. Dovrebbe essere almeno 3 volte la tensione di soglia Vgs (th) per una commutazione efficiente.

Suggerimenti di riepilogo

  • 1) Usa gli stadi in cascata di RdsOn come i BJT in cascata con un rapporto hFe di 100

    • ad es. se RdsOn è 1mΩ, utilizzare un driver da 100mΩ e che utilizzerà un driver da 10 Ω (altrimenti la velocità di risposta è degradata, la perdita di potenza aumenta quindi l'autoriscaldamento, portando a FET fusi o che esplodono)
  • 2) Usa Vgs> = 3x Vgs (th) NO MATTER A CHE Vgs (th) è valutato a. (e <Vgs max)

  • ps

    • Ho dimenticato di menzionare insieme a 1) il Rdson del FETS / DCR con gange del rapporto motore dovrebbe essere di circa 1: 100 o 1% (dare o avere) per ridurre al minimo le perdite di conduzione. Anche se un po 'del% ha spesso bisogno di un raffreddamento ad aria forzata e una maggiore causa di disastri.
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.