Contrôleur de moteur PWM haute tension - Les mosfets explosent


12

J'ai cherché dans chaque message une réponse à ce problème. J'ai construit un circuit de contrôleur de moteur comme indiqué dans ce schéma. J'ai rendu le diagramme aussi précis que possible. Les diodes sur les mosfets ont été ajoutées pour que le symbole du mosfet ressemble à celui de la fiche technique. Comme vous pouvez le voir, il s'agit d'un circuit PWM très simple utilisant une carte Arduino UNO. Une pédale de potentiomètre est attachée à l'une des entrées analogiques et est utilisée pour déterminer le rapport cyclique de la sortie PWM sur la broche de sortie numérique 6.Lien de circuit

Le moteur est le plus petit moteur 48v de ce type fabriqué par motenergy, mais c'est un très gros moteur par rapport aux autres circuits que j'ai vus comme celui-ci. Il peut facilement tirer environ 200 ampères au démarrage.

Le circuit fonctionne en quelque sorte - lorsque le véhicule est soulevé de sorte que les roues ne touchent pas le sol. Dans cet état, il est très facile pour le moteur de tourner et il ne consomme pas autant de courant. Lorsque les roues sont au sol, les mosfets explosent au moment où vous commencez à appuyer sur la pédale. J'ai construit ce circuit environ 4 fois maintenant. J'ai même utilisé 18 mosfets en parallèle dans une version, et tous les 18 ont explosé instantanément. (200/18 = environ 7 ampères / mosfet) Chaque mosfet doit gérer 32 ampères.

Nous venons finalement d'acheter un contrôleur de moteur chez alltrax, et le véhicule fonctionne bien, mais je suis déterminé à découvrir pourquoi mon propre contrôleur de moteur n'a pas fonctionné. J'adore l'électronique et j'ai construit de nombreux circuits difficiles au fil des ans. Je ne pourrai pas bien dormir avant de découvrir ce que je fais mal.

J'ai parlé à un technicien d'Alltrax, et il a dit que leurs contrôleurs n'étaient rien d'autre qu'un tas de mosfets et de condensateurs. Il a dit que les condensateurs empêchaient les mosfets d'exploser, mais il n'avait aucune idée de la façon dont ils sont câblés dans le circuit. Je pense qu'il a une partie de mes informations manquantes.

Alors, quelqu'un peut-il me dire ce que je fais mal? Comment dois-je ajouter des condensateurs pour résoudre ce problème? Serait-ce la fréquence? Nous avons modifié la minuterie de l'Arduino afin que notre fréquence PWM soit d'environ 8 000 Hertz, mais le contrôleur Alltrax fonctionne à un rythme époustouflant de 18 000 Hertz. Je sais que 18k est petit comme les contrôleurs de moteur, mais je pensais qu'un moteur géant aimerait une fréquence plus petite.

De plus, avant de dire que les mosfets ne peuvent pas être câblés en parallèle en raison de légères différences entre eux, j'ai utilisé exactement 7 pouces de fil de calibre 18 pour connecter chacun en parallèle. Le petit fil agirait comme une minuscule résistance et garantirait que chacun partage la charge actuelle.

Merci beaucoup pour vos réponses.


2
Vous continuez à parler de certains contrôleurs Alltrax, mais ce n'est pas visible dans le schéma.
Harry Svensson

1
Le numéro de pièce des MOSFET dans le schéma est-il exact / correct?
ThreePhaseEel

2
Je ne suis vraiment pas un expert - mais j'ai un mauvais pressentiment basé sur une certaine expérience. Ce moteur est évalué à 13 chevaux. Vous essayez sérieusement de contrôler la vitesse avec un Arduino, 3 FET et 2 résistances? Considérez ce qu'il en coûterait à un contrôleur industriel pour y parvenir - en toute sécurité ...
Paul Uszak

3
Quelle diode utilisez-vous à travers le moteur - il vaut mieux être grand.
Andy aka

1
13 ch / 48 V = 210 A. Wow, c'est beaucoup de courant. Je suppose que 500 ampères ish lorsque le moteur cale? Vous pourriez écrire un livre sur les diodes flyback et les amortisseurs pour un courant aussi élevé.
Oskar Skog

Réponses:


29

Voici la fiche technique qui devrait être liée à votre question. Je ne devrais pas avoir à le chercher.

Chaque mosfet doit gérer 32 ampères

C'est avec VVGS=10


Vous définissez à , vous voulez vraiment autant de tension ici que vous le pouvez (5 V semble être votre maximum). Si j'étais vous, je changerais en 10 ~ et en 100k ~ 1MΩ. Parce que si vous n'ouvrez pas complètement le MOSFET, il aura alors trop de résistance et .... explosera. 5 V × R 2VGSR1R25V×R2R1+R2=4.54VR1R2

Avec , le est au maximum de 35mΩR D S ( o n )VGS=10VRDS(on)

P=I2×R=(32A)2×0.035Ω=35.84W , cela signifie que ~ 36 W est la dissipation de puissance attendue lorsqueVGS=10V

Avec , le est au maximum de 45mΩ selon la fiche technique.VGS=5VRDS(on)

35.84W=I2×0.045Ω , et si nous déplaçons le I, nous obtenons: , vous pouvez donc vous attendre à laisser 28A en toute sécurité à travers le MOSFET IF vous fixez les valeurs de résistance. Vous devriez certainement obtenir un dissipateur thermique pour les MOSFETS. Peut-être même un refroidissement actif avec un ventilateur.I=35.840.045=28.2A

Nous avons modifié la minuterie sur l'Arduino afin que notre fréquence PWM soit d'environ 8000 Hertz

Vous n'avez pas besoin d'aussi haut, 800 Hz serait acceptable, c'est à cela que les pilotes BLDC (ESC) se tournent. (Si je ne me trompe pas).


Ce que vous essayez de faire, c'est de charger une porte avec une résistance en série, cela ressemble à l'image ci-dessous et nous pouvons utiliser ce modèle pour d'autres équations.

La capacité de la porte ( ) a une valeur maximale deCiss1040pF

Les résistances et le MOSFET forment ce circuit:

Circuit RC

C=Ciss×3=3120pF car vous en avez obtenu 3 en parallèle.

R=R1||R2=909Ω

Vs=4.54V

La tension sur le condensateur suit cette équation: où est la tension aux bornes du condensateur et est ce avec quoi vous l'alimentez, dans notre cas c'est .

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

Vous envoyez des PWM et je vais faire le pire des cas pour vous. C'est quand vous essayez de faire analogWrite (1) , c'est un cycle de travail de . Ainsi, le moment où votre signal commence à monter jusqu'à ce qu'il se termine avec ce rapport cyclique et 8 kHz est 488,3 nanosecondes.12561256×18000=

Connectons les nombres dans l'équation ci-dessus pour voir quelle sera la tension à la porte.

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

Le MOSFET commence à s'ouvrir à 1V minimum et 2,5V maximum. Donc, dans ce pire des cas, vous ne pouvez même pas ouvrir la porte. Il a donc été fermé tout le temps.


Une autre chose que je dois vraiment souligner, c'est que la raison la plus probable pour laquelle vos MOSFETS se cassent est parce que lorsque vous commutez, vous le faites si lentement à cause des résistances gigantesques et avec autant de capacités de grille. Cela signifie que lorsque les MOSFET sont sur le point de commuter, ils passent beaucoup de courant tout en ayant beaucoup de tension sur eux. Et => vraiment vraiment vraiment beaucoup de chaleur.P=I×V

Voir cette image:

pertes de commutation

Comme vous pouvez le comprendre, vous ne voulez pas être là où la ligne bleue et la ligne rouge se croisent. Et la largeur de cette transition est la même quelle que soit la fréquence de commutation, donc plus vous changez de fréquence, plus vous passez de temps dans cette transition douloureuse. C'est ce qu'on appelle les pertes de commutation. Et il évolue linéairement avec la fréquence de commutation. Et vos résistances élevées, votre capacité élevée, votre commutation à haute fréquence, vous font probablement rester dans cette phase de transition tout le temps. Et cela équivaut à des explosions ou à la rupture de MOSFETS.


Je n'ai pas vraiment le temps de faire plus de calculs, mais je pense que vous comprenez l'essentiel. Voici un lien vers un schéma si vous souhaitez jouer. Ce que vous devriez! .


Mon dernier conseil pour vous est d'obtenir un pilote MOSFET afin que vous puissiez pomper plusieurs ampères dans la porte, en ce moment vous pompez des milliampères.


Btw Doctor Circuit, en ce qui concerne votre dernier paragraphe, ce n'est qu'un problème avec les transistors BJT, ils fournissent plus de courant plus ils sont chauds, les MOSFET fournissent cependant moins de courant plus ils sont chauds, donc ils n'ont pas besoin d'équilibrage spécial, ils le feront équilibre automatiquement.


CONTINUATION, temps de montée et temps de chute.

J'étais assez méchant dans l'exemple ci-dessus, la commutation à 8 kHz et le rapport cyclique 1/256. Je serai plus gentil et regarderai un rapport cyclique de 50% = 128/256. Je veux savoir et vous dire combien de temps vous êtes dans votre transition douloureuse.

Nous avons donc obtenu les paramètres suivants pertinents pour la transition douloureuse :

td(on) = Temps de retard d' = Temps de = Temps de retard d' = Temps de
tr
td(off)
tf

Je ferai quelques approximations désagréables, je supposerai que miller-plateau n'existe pas, je supposerai que la tension aux bornes du MOSFET diminue linéairement lors de la mise sous tension et augmente linéairement lors de la mise hors tension. Je suppose que le courant traversant le MOSFET augmente linéairement lors de la mise sous tension et diminue linéairement lors de la mise hors tension. Je suppose que votre moteur consomme 200 A pendant un régime permanent de 50% avec une certaine charge, par exemple votre corps. Donc 200A pendant que vous y êtes et que vous accélérez. (Plus le moteur produit de couple, plus le courant sera consommé proportionnellement).

Passons maintenant aux chiffres. De la fiche technique, nous connaissons les valeurs maximales suivantes:

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

Donc, d'accord, je veux d'abord savoir quelle période de 8 kHz prend la transition ci-dessus. La transition se produit une fois à chaque période. Les retards n'affectent pas vraiment la transition (sauf si nous commutons à des fréquences vraiment très élevées, comme 1 MHz).

temps en transition avec un rapport cyclique de 50% et fs à 8 kHz = Je pensais que je verrais une valeur beaucoup plus grande, cela ignore le plateau meunier et trucs parasites, et en ignorant la charge lente de la porte. Cela ignore également le fait que le temps de montée et le temps de descente représentent en fait de 10% à 90% du signal, et non de 0% à 100%, ce que je suppose dans mes calculs. Je multiplierais donc le 0,528 par 2 pour rendre mon approximation plus proche de la réalité. Số 1%.tr+tf18000=0.00528=0.528%

Nous savons maintenant combien de fois nous passons du temps dans cette transition douloureuse. Voyons à quel point c'est vraiment douloureux.

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! Même réponse, bizarre
Pf=1600W
P=Pr+Pf=3200W

Revenons maintenant à la fréquence à laquelle vous avez passé dans cette transition de 3200 W. C'était environ 1% lorsque la réalité entre en jeu. (Et je pensais que ce serait beaucoup plus souvent).

Pavg=3200W×1%=32W Hmm, encore une fois, je pensais que je verrais quelque chose de beaucoup ... plus grand.


Et ... calculons les 99% restants! Ce que j'ai totalement oublié. Voici l'explosion majeure! Je savais qu'il y avait quelque chose que j'avais oublié.

P 50 % @ 8 k H z = 32 W + 1800 W × 49,5 % = 923 WP=I2×R=(200A)2×(0.045Ω)=1800W Et vous passez 49,5% du temps dans ce mode conducteur. Donc, votreP50%@8kHz=32W+1800W×49.5%=923W

Avec 3 MOSFET en parallèle, c'est par MOSFET. C'est encore ... EX-PU-LOSIVE!32W+1800W×49.5%3=329W

Et voilà. Voilà la bombe que vous cherchez. EX-PU-LOSION

Ceci est mon dernier montage.


4
Je pense que vous montrez clairement à quel point il est difficile de conduire 13 chevaux de manière sûre et fiable. Et qu'en est-il des croquis douteux? Que fait le moteur lorsque l'OP charge une nouvelle esquisse et que les broches flottent / ne sont pas définies? Et éventuellement court-circuiter la source 48V - ce sera intéressant. Il y a beaucoup à faire pour éviter toute déception / un incendie ...
Paul Uszak

7
Eh bien, soyons simplement heureux qu'il joue avec 48V et non 480V. Vous pouvez survivre aux brûlures et apprendre pour la vie, mais il est difficile d'apprendre de la mort par insuffisance cardiaque.
Harry Svensson

3
@DoctorCircuit the 1 nF est la capacité de la grille, The . Vous ne pouvez pas les supprimer. Ils font partie du MOSFET . Votre Arduino peut pousser environ 20 mA à travers ses transistors. Ce sont encore des milliampères . Vous devez pousser plusieurs ampères pour que cela soit encore proche de quelque chose qui fonctionne. Vous avez besoin d'une autre étape entre l'Arduino et les MOSFET qui entraînent la charge. Un inverseur logique pourrait peut - être faire le travail. Mais c'est ce que vous avez vraiment besoin de pousser plusieurs AMPS. Ciss
Harry Svensson

2
@DoctorCircuit Ce sera mon dernier commentaire. Regardez cette vidéo . Regardez le tout pour le plaisir. Vers 5h12, il montre les MOSFET utilisés. Ce représente environ 1/3 de la vôtre. Et il est fait pour un moteur beaucoup moins exigeant. Le temps de montée (qui fait partie de la transition douloureuse) est de 430 ns pour votre MOSFET et de 110 ns pour l'ATP206. Le temps de chute qui fait également partie de la transition douloureuse est de 230 ns pour le vôtre et de 73 ns pour l'ATP206. Il passe donc environ 3 à 4 fois moins dans la transition douloureuse. Un moteur beaucoup plus faible a donc un MOSFET bien meilleur. RDS(ON)
Harry Svensson

3
@DoctorCircuit J'ai menti, c'est mon dernier commentaire. Si vous allez fabriquer vous-même un onduleur logique plutôt que d'acheter un pilote mosfet. Ensuite, vous devez vraiment vous assurer que vous ne court-circuitez pas les mosfets pendant leur transition. Voici comment procéder.
Harry Svensson

8

Les MOSFETS modernes nécessitent une commutation rapide, pour éviter de s'attarder dans une région dangereuse où la rétroaction positive (interne au silicium) provoque la destruction. Lisez les derniers paragraphes de cette réponse pour l'explication du document de la NASA.

RÉSUMÉ RAPIDE: Cette résistance de grille ----- 1Kohm ------ est beaucoup trop grande. Utilisez un circuit intégré de pilote d'alimentation, avec un bouchon de dérivation de 0,1 UF sur son VDD 12/15/18 volts pour que vos grilles MOSFET puissent être rapidement chargées pour une mise sous tension rapide.

Les MOSFETS se seront détruits en raison des valeurs nominales SOA de la zone de fonctionnement sûre, où Voltage * Current * PulseWidth définit la dissipation de puissance.

En supposant que les jonctions FET ont une profondeur de 10U (SWAG), vous avez un TAU de 1,14 microseconde pour la constante de temps thématique de la zone active FET. Avec Miller Multiplication, le temps d'activation dépassera de loin celui-ci, avec 48 volts à travers les transistors FET et sans limitation de courant.

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

modifier 18 mars 2018

La NASA a diagnostiqué des défaillances de MOSFET dans plusieurs conceptions en cours en raison de l'utilisation de MOSFETS MODERNES (le rapport de la NASA est apparu en 2010; l'industrie automobile a trouvé ce mécanisme de défaillance en 1997). Le comportement de coefficient de température auparavant négatif des MOSFETS de technologie plus ancienne a été poussé dans les régions actuelles plus élevées, et une nouvelle région dangereuse existe maintenant dans la région modérée. La NASA a fait revenir ces projets à l'ancienne technologie, afin que des systèmes fiables puissent être construits.

Qu'est-ce que cela signifie aujourd'hui? Assez facile

--- Ne vous attardez pas plus de 1 microseconde dans la zone de commutation. ---

--- Chargez rapidement la capacité de la grille, y compris la capacité grille-drain. ---

Le titre du document de la NASA [publié en 2010] est

"Prise en charge de la caractérisation des opérations d'instabilité thermique du MOSFET de puissance" et la phrase clé est citée ici "les conceptions actuellement produites permettent à la région dominée par le porteur de charge (une fois petite et en dehors de la zone concernée) de devenir importante et à l'intérieur de la zone de fonctionnement sûre ( SOA) ".

En ce qui concerne les conceptions plus anciennes (MOSFET robustes), j'extrais cette phrase:

"Les MOSFET antérieurs étaient principalement utilisés dans la région dominée par la charge de mobilité. Tout en maintenant la même tension de grille, la région dominée par la charge réduit le courant à mesure que les températures augmentent, diminuant à son tour le courant, ce qui permet au système d'avoir une rétroaction négative. En effet, lorsque les nouveaux MOSFET de puissance ont des tensions de grille élevées, les pièces sont dominées par la charge de mobilité. L' intention tacite des fabricants était de garder les MOSFET dans la région dominée par la charge de mobilité, car ils sont utilisés comme commutateur haute vitesse. Les pièces les plus anciennes ont une zone dominée par le porteur de charge. La zone est cependant en dehors de la SOA normale et des défaillances se produisent pour d'autres raisons. "


7

Tout d'abord, vous avez choisi les mauvais FET.

Le FQP30N06 a 40 mOhm RdsON à Vgs = 10V. À Vgs = 5V, il n'est pas spécifié, ce qui signifie qu'il ne fonctionnera pas.

Choisir un MOSFET est un compromis: les gros MOSFET avec de gros matrices en silicium et un faible RdsON ont beaucoup de capacité et commutent lentement. Les MOSFET plus petits commutent plus rapidement mais ont un RdsON plus élevé.

Cependant, vous allez commuter à 500-1000 Hz, et votre courant est énorme, donc RdsON compte beaucoup plus que la vitesse.

Par conséquent, vous devez sélectionner les MOSFET To-220 (pour le refroidissement) avec un RdsON très faible (comme quelques mOhms), spécifié à une Vgs de ... lire la suite.

Deuxièmement, vous utilisez un entraînement de porte 5 V sur un FET qui est spécifié pour un entraînement de porte 10 V, il n'est donc pas complètement activé. Ainsi, il s'échauffe et explose. Tout le monde peut le voir en consultant la fiche technique.

Compte tenu du courant, j'irais avec un entraînement de grille 12V pour rendre RdsON aussi bas que possible. Vous pouvez donc choisir des FET spécifiés 5V ou 10V Vgs, pas de problème.

D'ACCORD. Maintenant, vous avez un tas de FET et vous devez les piloter avec 12V. Évidemment, vous avez besoin d'un pilote qui produira quelques ampères dans la porte pour l'allumer et l'éteindre rapidement. Vérifiez la catégorie "Pilote MOSFET" sur mouser / digikey, il y a des tonnes de produits appropriés qui accepteront le 5V de votre arduino et conduiront correctement un FET.

Vous aurez besoin d'une alimentation 12V, mais ce n'est pas un problème puisque vous avez du 48V, utilisez un convertisseur DC-DC.

Troisièmement, vous devez abandonner l'arduino.

Ce type de contrôleur a besoin d'une limite de courant, et cela doit agir avant que les MOSFET n'explosent (pas après).

La manière de procéder est très simple. Vous mettez un capteur de courant (très probablement l'effet Hall ici) et un comparateur. Lorsque le courant dépasse un seuil, le PWM est réinitialisé, attend un peu, puis reprend. Lorsque le courant dépasse un seuil beaucoup plus élevé, cela signifie que quelqu'un a coincé un tournevis dans les bornes de sortie, de sorte que le PWM s'arrête définitivement et ne reprend pas.

Cela doit se produire à une vitesse incompatible avec les logiciels.

La plupart des microcontrôleurs commercialisés pour la commande de moteurs comprennent des comparateurs analogiques connectés à l'unité PWM, dans ce but spécifique. Le micro de l'arduino n'en fait pas partie.


4

Il n'y a pas de détection de courant et donc pas de limitation de courant sur votre moteur. Le courant du moteur potentiel à zéro tr / min pourrait être de milliers d'ampères car la résistance d'enroulement des grands moteurs à courant continu peut être de plusieurs miliohms. l'entraînement de la porte doit être vérifié sur un oscilloscope. Il sera probablement trop lent, provoquant un échauffement excessif du mosfet .Pensez à une puce de pilote ou à une sorte de circuit de pilote discret. .Essayez de réduire le test de fréquence PWM pour le bruit audio gênant. Vous pouvez peut-être réduire considérablement F sans trop pleurnicher.


2

Si vous avez un modèle précis de tous les composants LTSpice, vous pouvez analyser pourquoi il échoue.

Un modèle précis de la décharge Q pendant la commutation de courant permet de comprendre que l'on a besoin du gm de chaque étage soigneusement sélectionné ou de son rapport RdsOn inverse.

Si l'on connaît le rapport des interrupteurs électromécaniques sous forme de relais reed, relais de puissance, solénoïdes et contacteurs de grande puissance, le rapport entre le courant COntact et le courant de la bobine passe progressivement de> 3k à 100: 1 La principale différence étant que le courant de porte FET après la commutation.

Examinez la fiche technique et vérifiez la tension RdsOn gate3 que vous prévoyez d'utiliser. Elle doit être au moins 3 fois supérieure à la tension de seuil Vgs (th) pour une commutation efficace.

Résumé des suggestions

  • 1) Utilisez des étages en cascade de RdsOn comme des BJT en cascade avec un rapport hFe de 100

    • Par exemple, si RdsOn est de 1 mΩ, utilisez un pilote de 100 mΩ et qui utilisera un pilote de 10 Ω (ou bien le taux de balayage est dégradé, la perte de puissance augmente puis l'auto-échauffement, conduisant à des FET fondus ou explosants)
  • 2) Utilisez Vgs> = 3x Vgs (th) QUELQUE CHOSE QUE Vgs (th) soit évalué. (et <Vgs max)

  • ps

    • J'ai oublié de mentionner avec 1) le Rdson du rapport FETS / DCR groupé du moteur devrait être d'environ 1: 100 ou 1% (donner ou prendre) pour minimiser les pertes de conduction. Bien que quelques% aient souvent besoin d'un refroidissement à air forcé et plus, cela conduit à une catastrophe.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.