Keuze N Mosfet bldc controller

Ik ben bezig met het maken van een bldc controller gebruik makende van de pic 18f2431 met irs21844 half bridge mosfet drivers. Dit voor een hub motor van 36V 350 Watt 250 rpm.

De basis werkt en de motor draait zonder belasting goed. (nog geen 1A).
Ik gebruik 100v 57A N channel mosfets met een Rdson van 16mOhm. Nu vraag ik me af of dit de juiste keuze is. De mosfets zijn D2Pak.
http://www.nxp.com/documents/data_sheet/PSMN016-100BS.pdf

Heeft iemand misschien wat tips voor mij om de juiste fets te kiezen voor een dergelijke belasting? (En types).
Wat voor marges moet ik houden voor de spanningen en stromen. En dan natuurlijk de RDSon zo laag mogelijk.. liefst D2Pak

Alvast bedankt!

Wat is je maximale voedingsspanning? Volgens mij moet je goed weg kunnen komen met 60V MOSFETs, mits je de transients goed onder controle hebt (printlayout, snubbers, etc.)

57A lijkt me nogal krap; je kunt wel stellen dat 350W / 36V ~= 10A, maar dat is veel te kort door de bocht; om het volledige motorkoppel te kunnen benutten, met de fasestroom veel groter kunnen worden dan dat.

Typenummers vragen heeft weinig zijn; er zijn duizenden types die in aanmerking zouden komen, je moet gewoon kijken waar voor specificaties je nodig hebt, en wat je gemakkelijk en voor een goede prijs kunt krijgen.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

Op 13 januari 2013 02:25:54 schreef SparkyGSX:
Wat is je maximale voedingsspanning? Volgens mij moet je goed weg kunnen komen met 60V MOSFETs, mits je de transients goed onder controle hebt (printlayout, snubbers, etc.)

57A lijkt me nogal krap; je kunt wel stellen dat 350W / 36V ~= 10A, maar dat is veel te kort door de bocht; om het volledige motorkoppel te kunnen benutten, met de fasestroom veel groter kunnen worden dan dat.

Typenummers vragen heeft weinig zijn; er zijn duizenden types die in aanmerking zouden komen, je moet gewoon kijken waar voor specificaties je nodig hebt, en wat je gemakkelijk en voor een goede prijs kunt krijgen.

Bedankt voor je reactie SparkyGSX. De maximale voedingsspaninning is 36V. Het liefst zou ik het wiel op 24V willen gaan laten draaien indien ik hiermee genoeg snelheid ga halen.
Ik heb geen ervaringen met snubbers voor deze toepassing. Ik zal het schema en de pcb layout eens posten. Hopelijk zou je dan nog eens wat advies kunnen geven..

NXP is nu niet de meeste bekende voor mosfets, ik zou eens kijken bij fairchild, IRF of infineon die hebben genoeg keuze. En ze hebben een goede zoekfunctie (alhoewel de IRF site niet de beste is). Ik gebruik zelf vaak digikey om dat soort dingen uit te zoeken.

Weet niet wat je schakelfrequentie is, maar ook de gate charge is belangrijk voor schakel verliezen. Maar denk wel dat je een extra heatsink nodig hebt.

//Project Quadrocopter 2.0 in progress //dsESC4x //PIC32Flight

Het kan geen kwaad om mosfets nogal iets over te dimensioneren.

Ik had hier laatst een ESC van een vriendje die 250A rated was, en daar zitten dan mosfets in die 200A continue kunnen. 4 parallel voor rond de 800A continue. En toch gaat ie kapot....

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Bedankt voor de reacties. Ik zal eens verder kijken naar de mosfets.. Weet ook niet of een D2Pak een goede keuze is ivm de warmte afvoer.. Misschien toch maar wat TO220 Mosfets zoeken.

Is het verstandig om vrijloopdiodes op de fases te zetten? Of zoals Sparky GSX aangaf snubbers toe te passen? R 100 Ohm en C 100nF? (uit de lucht gegrepen waardes)

Zouden jullie bij gelegenheid eens naar het schema en pcb willen kijken. Heb alleen het power gedeelte gepost. Als processor gebruik ik een pic 18f2431.
http://www.uploadarchief.net/files/download/schemabldc1.png

http://www.uploadarchief.net/files/download/resized/schemabldc1.png

http://www.uploadarchief.net/files/download/boardbldc1.png

Zojuist wat testjes gedaan met het snel onbelast up rampen van de motor. Geen problemen ondervonden.
Maar. toen dacht ik de ramp down te gaan verkorten.. Al snel is er een high side Fet doorgeslagen.

Nu heeft het wiel waarin de bldc motor zit een behoorlijke massatraagheid en aangezien de Fet die ik gebruik een 57A 100V Nfet is en ik een 3A voeding gebruik kan ik me niet voorstellen dat er een overbelasting is geweest maar dacht eerder aan een tegen emk waardoor de fet is doorgeslagen. Kan dit?

Nee, want de tegen-EMK is altijd lager dan de voedingsspanning die je hebt gebruikt om die snelheid te halen.

Zet er eens een scope op; waarschijnlijk heb je ofwel veel te hoge transients bij het schakelen, of een veel te grote fasestroom, of een shoot-through. Zonder goede scope kun je iets dergelijks nooit ontwikkelen.

100 ohm en 100nF is allebei veel te groot; voor een snubber heb je eerder in de orde van grootte 1-5nF en 1-20 ohm nodig. Je kunt daar niet zomaar een willekeurig condensatortje voor pakken, want die krijgt een forse rimpelspanning voor zijn kiezen; een goede MKP o.i.d. is dus wel nodig.

Zo'n snubber laat zich moeilijk goed berekenen; als je in de literatuur gaat zoeken vind je vele "vuistregels" die een factor 10 of meer uit elkaar kunnen liggen. Je kunt het met een scope wel redelijk proberen, door de spanning op de drain van de MOSFET en de spanning over de weerstand, die aan een kant aan de ground zit, en aan de andere kant via de condensator aan de drain van de onderste MOSFET. Je kunt een schatting maken door naar de amplitude en lengte van de transient te kijken, maar je kunt ook experimenteel vaststellen wat er gebeurd als je de condensator of weerstand kleiner of juist groter maakt, en daarmee op componentwaarden komen waarmee de transient acceptabel is. De capaciteit van de condensator bepaald uiteindelijk de totale energie die je kunt absorberen, en dus ook de dissipatie in de transistor.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

Bedankt SparkyGSX,

Voor het afremmen/ decelereren van het wiel deed ik gewoon de duty laten afnemen tot 0. Aangezien ik de high side fets pwm, ook bij het remmen kan het misschien zijn dat ik de spanning oppomp door de tegen EMK te pwm-en dacht ik.. Ik probeer ondertussen wat documentatie te vinden over het afremmen van een BLDC motor maar vind nog geen nuttige info.

Ik heb eens gekeken naar het beeld van de gate spanning. Ziet er zo uit:
http://www.uploadarchief.net/files/download/scope%20bldc%20gate.jpg
Channel 1 is de gate spanning gemeten op de fet. Channel 2 is de spanning op de fase.
Is dit een afwijkend beeld?

Ik heb een mooi stukje info gevonden over de bldc controller in 2 en 4 kwadrant bedrijf.
http://www.ti.com/lit/ds/slus318b/slus318b.pdf
Op pagina 12 staat volgens mij een beetje omschreven waardoor ik mijn high side fet heb doen doorslaan.

Ik ga lezen.
[update] Done. Goed om te weten. Waarschijnlijk heb ik zo ook 30 euro aan FETs opgeblazen 3 jaar geleden. Ik heb het project even in de kast gegooid omdat ik het vervelend vond dat ik niet wist waarom de boel kapot was gegaan.

[Bericht gewijzigd door rew op 15 januari 2013 11:30:10 (90%)]

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Er gebeurd helemaal niets bijzonders tijdens het afremmen van de motor, dit is exact hetzelfde als aandrijven (1ste en 3de kwadrant), behalve dat de stromen negatief worden. De natuurkunde erachter is exact hetzelfde, en het is dus ook helemaal niet nodig om hier een special case van te maken. Het is natuurlijk wel zinvol om de situatie te analyseren, juist om te laten zien dat het niet bijzonder is.

Merk op dat op pagina 12, figuur 9 (twee-kwadrant sturing) de stroom tijdens de recirculatie fase door de diode loopt, en dat MOSFET S3 niet aangestuurd wordt; de stroom kan dus wel afnemen, maar niet omkeren, omdat de diode dan zou gaan sperren.

Ik ben het niet helemaal eens met de stelling "Figure 10 illustrates the current paths when operating in this mode. Under these conditions there is nothing to limit the current other than motor and drive impedance. These high-circulating currents can result in damage to the power devices in addition to high, uncontrolled torque." (halverwege pagina 12).

Ten eerste is de tegen-EMK bij een gegeven toerental altijd kleiner dan de busspanning die je nodig zou hebben om hetzelfde toerental te kunnen halen, aangenomen dat je geen veldverzwakking toepast. Immers, om dat toerental te kunnen halen moet je een positief koppel leveren, en dus een positieve stroom door de spoel sturen, en dat kan alleen als je busspanning hoger is dan de tegen-EMK.

Dit gaat natuurlijk niet op als je de motor, door deze met een externe bron aan te drijven, voorbij zijn nominale toerental brengt, maar dat is meestal geen realistische situatie.

Dat de tegen-EMK lager is dan de busspanning, betekend dat er geen stroom kan lopen als alle MOSFETs gesperd zijn, als de spoel zijn opgeslagen lading (E = 1/2 L * I^2) heeft gedumpt; dit is natuurlijk onafhankelijk van het toerental van de motor, en alleen afhankelijk van de stroom door de spoel net voordat de MOSFETs gesperd werden. De stroom kan in ieder geval niet verder toenemen.

Door nu MOSFET S3 open te sturen, zal er een stroom gaan lopen door S3 en de diode van S1, zoals aangegeven in fig. 10. Als je S3 niet zou moduleren (en dat kan dat IC blijkbaar niet, vandaar die stelling), zou die stroom binnen korte tijd zeer groot worden.

Je zou die stroom dus kunnen regelen door S3 te moduleren, maar dat kan ook door S2 open te sturen; immers, als S2 geleidt, kan de diode van S1 nooit in geleiding zijn. Door S2 open te sturen dwing je de spoel om zijn lading in de voeding te gaan dumpen, waardoor de stroom door de spoel af moet nemen. Echter, als je S2 te lang aan zou laten, zou de stroomrichting weer omkeren, en zou je de motor weer gaan aandrijven. Als je maar een klein beetje zou willen remmen, zou de stroom steeds heen en weer door de 0 gaan, waarbij hij gemiddeld toch nog net negatief zou zijn.

Het lijkt me duidelijk dat de voeding de mogelijkheid moet hebben om stroom op te nemen; bij accu's hoef je daar niets bijzonders voor te doen, behalve de stroom te beperken, maar met een labvoeding heb je dus echt een dummyload o.i.d. nodig.

Maar waar het uiteindelijk om gaat, is dat je de stroom onder controle houdt. Je kunt niet zomaar met een ramp-up of ramp-down wat meer of minder gaan PWM'en en verwachten dat het heel blijft. Ik heb het vaak gezegd, en blijf het herhalen: motorregeling gaan om STROOM, niet om spanning. Je regelt de stroom door de spanning te moduleren, maar het uitgangspunt moet altijd de stroom zijn. Je hebt een setpoint, een stroommeting, en een control loop die probeert het setpoint te bereiken, door de verschillende PWM signalen aan te passen. Je kunt wel een feed-forward controller toevoegen, waarbij je probeert te voorspellen welke spanning je nodig zou hebben om de gewenste stroom te halen, maar dat is enkel en alleen om het voor de regellus wat gemakkelijker te maken.

Als je vertikt om de stroom te meten en actief te regelen, zullen de scherven van de transistors je altijd om de oren blijven vliegen.

De enige uitzondering hierop zijn motoren van ventilatoren, centrifugaalpompen, harddisks, etc., die relatief gemakkelijk een ander toerental kunnen aannemen, en die niet onderhevig zijn aan grote fluctuaties in het toerental door externe verstoringen, daarbij kun je soms wegkomen met een domme, open-loop PWM sturing met een primitieve overstroom beveiliging.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

Wanneer je geen veldverzwakking toepast en de motor laat uitrollen dan kan de spanning inderdaad niet hoger worden dan de bus spanning (tenzij je de moeite neemt om veldversterking toe te passen). Het probleem is echter dat de motor als een stroombron/boostconverter werkt als je het koppel negatief maakt. Wanneer de spanningsbron geen stroom kan opnemen, of wanneer er een impedantie (weerstand/spoel) in de voedingslijn zit dan kan de spanning dus best verder oplopen dan de busspanning. Een interessante link: http://webfiles.portal.chalmers.se/et/MSc/SylvainLECHATSANJUANMSc.pdf.

SparkyGSX,

Stel je stuurt je motor aan met zeg 80% PWM op 12V. De BEMF wordt dan ongeveer 10V. Stel je wil nu langzamer, en gaat proberen 5% de andere kant op te sturen. Volgens mij komt de BEMF van 10V dan in zijn geheel over een diode te staan. Reken maar dat je dan forse onverwachte stromen kan krijgen waar eea niet zomaar tegen kan.....

Wat ze daar doen is doen alsof het een brushed motor is.
Gewoon een hele H-brug. De BEMF is dan gewoon wat beter te behappen dan bij een drie-fase motor. Maar een drie fase motor gedraagt zich precies hetzelfde, maar dan steeds over een ander paar uit de drie aansluitingen.

Een Brushed motor kan je modelleren als een weerstand-inductie in serie. Dat zooitje laad een HELE grote condensator op. En er is nog een lek-weerstand over de condensator (de mechanische belasting). Zet je die grote condensator over de diode van een mosfet, gaat de mosfet gewoon kapot. Einde oefening.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Natuurlijk staat die 10V niet over een diode.

Als de motor een snelheid heeft waarbij de tegen-EMK 10V is, en je een beetje wilt remmen, ga je natuurlijk geen -0.6V (5% van 12V in tegengestelde richting) aan, dan leg je een spanning van iets minder dan 10V aan. Als je effectief 9V aanlegt, staat er dus netto 1V over de MOSFETs, interne weerstand en inductie van de spoel. Als die een weerstand van 100 milliohm heeft, gaat er uiteindelijk maar 10A lopen, waarbij de inductie de flankstijlheid beperkt. Die stroom veroorzaakt een koppel dat tegengesteld is aan de draairichting, en dus de motor en last zal remmen, terwijl de brug een negatieve stroom trekt.

[Bericht gewijzigd door SparkyGSX op 17 januari 2013 13:01:08 (13%)]

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

Allen bedankt voor de nuttige informatie zover. Ik probeer het project in stukjes op te delen om de eerder geschetste problemen te kunnen elimineren. Een bldc controller maken lijkt toch niet zo eenvoudig als ik dacht.. Ik heb nog wat topics openstaan waar ik wat vragen heb over welke mosfet driver toe te passen voor een dergelijke bldc controller. Ik heb eerst gebruik gemaakt van de irs21844 waarmee ik de high side fets in - en uitschakel en de low side fets pwm. Nu heb ik een pic welke 6 pwm uitgangen heeft en die zou ik ook graag willen benutten.. Dus dacht ik gebruik te gaan maken van de irs21834 om de fets aan te sturen met 6 pwm signalen. Hiermee helaas om onbekende reden nog geen resultaat kunnen boeken.. Ik had verwacht de 21834 te plaatsen ipv de 21844, de ovdcond passend te maken en gaan. Helaas, ergens gaat het mis en zit er een verschil in de drivers of is mijn circuit verkeerd..

Dus als je in topic1 niet snel genoeg naar je zin antwoord krijgt , stel je gewoon dezelfde vraag in je topic2.

Op 17 januari 2013 19:20:15 schreef Zonnepaneeltje:
Dus als je in topic1 niet snel genoeg naar je zin antwoord krijgt , stel je gewoon dezelfde vraag in je topic2.

Nee, niet de bedoeling. Wou alleen duidelijk maken waar ik nu vast loop en even geen geen aktie in dit topic had ondernomen. De mosfet keuze staat even stil

Maar dan nog is het niet handig om verschillende topics te starten over onderwerpen die zo dicht bij elkaar liggen.

Het handigste, maar mijn idee, is om de high-side en low-side MOSFETs altijd complementair aan te sturen. Op die manier heb je niet alleen veel kleinere geleidingsverliezen in de diodes, de effectieve spanning is altijd de busspanning keer de pulsbreedte verhouding, waardoor het doorrekenen van de natuurkunde een stuk eenvoudiger wordt.

Maar ik blijf drammen tot het doordringt: stroom, stroom, STROOM! Als je vanuit een situatie met een draaiende motor wilt vertragingen, ga je NIET zomaar wild in tegengestelde richting staan PWMen. Vertragen betekend dat je een tegengesteld koppel wilt leveren, dus je bepaald eerst een nieuw stroom setpoint, en gaat daar met een closed-loop regeling naartoe regelen.

Je bouwt toch ook geen switchmode voeding zonder enige vorm van terugkoppeling? Een motor met inverter lijkt ontzettend veel op een schakelende voeding, waarvan de uitgangsspanning helaas niet direct meetbaar is.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

Bedankt SparkyGSX. En ja jullie hebben gelijk. De vragen hebben met hetzelfde project te maken.

Je geeft aan het beste de complemantary mode te gebruiken voor de aansturing van de fets. In alle App notes van microchip die ik heb gevonden gebruiken ze independent mode en hierbij mbv het OVDCOND register sturen ze de commutatie. Dit dus zonder dode tijd want die is alleen mogelijk in complemantary mode..
In de datasheet van de 18f2431 geven ze aan dat complemantary mode ideaal is voor BLDC toepassingen (hoofdstuk 18.6.5) maar voorbeelden hiervan kan ik niet vinden?? Vandaar dat ik tot heden alleen aan independent mode heb gedacht. Weet jij misschien een appnote waar ze de compl. mode toepassen?

ik gebruik de dsPIC33FJ16GS504 ik gebruik die ook in complementair schakelen scheelt aanzienlijk in temperatuur. Tevens kun je de dode tijd instellen in het register.

Dit zijn de instelbits voor de dsPIC.

c code:

//MA
IOCON1bits.OVRENH=1;//Override Enable for PWM1H Pin bit 0=PWM 1= OVD
IOCON1bits.OVRENL=1; //Override Enable for PWM1L Pin bit 0=PWM 1= OVD
IOCON1bits.OVRDAT1=0; //PWM1H
IOCON1bits.OVRDAT0=0; //PWM1L

Wat me wel op valt aan het is dat je gate weerstanden vrij groot zijn. Dat kan veel schakel verliezen opleveren. Weet niet wat nu je rise en fall tijden zijn op de gates.

//Project Quadrocopter 2.0 in progress //dsESC4x //PIC32Flight

Ik zie een pulldown op de gate van de high-side-fet. Dat zou ik niet doen. De driver dient de gate LOW (= output) te sturen zodra die fet uit moet zijn. Je tapt ook stroom af uit je boost condensator. Dat is ook niet handig.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Bedankt voor de tips! Jeroen13, Hoe ziet een commutatie tabel voor complemantaire aansturing eruit? Ik zal de rise en fall time op de gates in kaart proberen te brengen.
Ik heb de volgende commutatietabel gebruikt om het OVDCOND en OVDCONS register te beaplen:
http://www.uploadarchief.net/files/download/resized/two-pole-pairs-commutation-table.jpg

Dus de pulldown op de high side fet kan ik beter weglaten. Ga ik testen.

De commutatie tabel is niet anders dan in jou figuur.

Alleen als je A+ B- zou moeten sturen, ga je dus wisselen tussen A+B- en A-B+ (met de eerste meer dan 50%).

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

ik zal vanavond de complete tabel posten, maar weet niet of je er iets aan hebt met jouw controller.

Ik ben toen ook begonnen met de 18F serie, uiteindelijk overstapt naar dsPIC voor meer processing power en een snellere ADC + hardcware current limiting.

//Project Quadrocopter 2.0 in progress //dsESC4x //PIC32Flight