Ik heb het niet over de vrijloop dioden, maar over een extra diode in de voeding van de H_BRUG.

Wat betreft de vrijloop diodes die moeten evenveel stroom aan kunnen dan wat je brug kan leveren, of iets meer.

Vcc is 15V. Het schema is gebaseerd op dat van pros ( http://prosje.be/Projects/BelastingSchakelen.html#BSHBFA ).
Het is de bedoeling als je een n-fet inschakelt dat de bijhorende p-fet ook inschakelt via de drain van de n-fet. Die C zorgt ervoor dat bij PWM die bovenste fet niet constant ook aan-uit gaat (das door linear gebied = warmte ontwikkeling) maar in geleiding blijft. Nadeel is wel dat het iets langer duurt (40ms) om de p-fet uit geleiding te laten gaan (door die C).

Op 11 juli 2010 20:10:59 schreef Lambiek:
Ik heb het niet over de vrijloop dioden, maar over een extra diode in de voeding van de H_BRUG.

Wat betreft de vrijloop diodes die moeten evenveel stroom aan kunnen dan wat je brug kan leveren, of iets meer.

Om die rem "pieken" dan op te vangen? Men voeding is een accu uit een boormachine. Laad deze dan gewoon niet bij? Of gaan die pieken men elektronica beschadigen?

En men Vcc is 15V wet waren het eens dat er ongv 1.5V staat over de spoelen v/d motor. De spanning over de motor is ong 5-6V (gemiddeld dan he). Dus het is toch bijna niet mogelijk om door het verlagen van de PWM ervoor te zorgen dat er een generator werking optreed?

Op 11 juli 2010 20:11:18 schreef pipsie:
Nadeel is wel dat het iets langer duurt (40ms) om de p-fet uit geleiding te laten gaan (door die C).

Ik snap 't. We riskant: je moet dus niet in je software binnen die tijd van richting omschakelen!

Maar waarom die IRF9530 als je maar 18V gebruikt? Dat is een 100V FET, eentje voor een lagere spanning kan een veel lagere RDSon hebben.

@Lambiek: Toch ben ik het niet met je eens; als je een motor gaat afremmen door te PWM'en, ga je een negatief koppel leveren, en loopt er dus een negatieve stroom. Als je een voeding hebt die geen stroom kan opnemen, en geen andere hebt belasting die stroom trekt, zal de spanning over de condensators van de voeding op gaan lopen. E.e.a. is wel afhankelijk van het geleverde koppel, en of je een (softwarematige) correctie toepast voor de voedingsspanning.

Heel simpel gezegd: tijdens het remmen gaan er stromen lopen door de spoelen vanwege de tegen-EMK, en op het moment dat je die weer aan de voeding hangt, zal er een charge dump plaatsvinden. Net zoals er geen beperking is aan de spanning die je kunt halen met een boostconverter zonder belasting, is dat hier ook het geval.

Het kan best goed gaan, maar dan moet je er wel goed over nadenken en er een goede regeling voor maken. Dat betekend, naar mijn idee, dat je maar heel beperkt kunt remmen, of de energie ergens anders kwijt moet kunnen. Dat is dan ook precies de reden dat er bij industriële regelaars vaak remchoppers met weerstanden worden gebruikt.

Als je een diode in serie zet met de voeding, waar moet die energie dan naar toe? Als die nergens heen kan, kun je toch niets afvoeren, en kun je dus ook niet remmen.

Op 11 juli 2010 20:13:57 schreef pipsie:
[...]
En men Vcc is 15V wet waren het eens dat er ongv 1.5V staat over de spoelen v/d motor. De spanning over de motor is ong 5-6V (gemiddeld dan he). Dus het is toch bijna niet mogelijk om door het verlagen van de PWM ervoor te zorgen dat er een generator werking optreed?

Hoe kom je er bij dat we het daar over "eens" waren? Ik in ieder geval niet. Ten eerste heb je nog helemaal geen specificaties van je motor gegeven, de spanning zal sowieso meer zijn dan 1.5V, anders zou je nauwelijks mechanisch vermogen kunnen leveren.

De "generatorwerking" is juist wat ervoor zorgt dat je koppel kunt leveren (positief of negatief). Daarbij moet je energie afvoeren om te kunnen remmen.

@sparkyGSX

Moet er misschien wel even bij zeggen dat ik meest al twee pwm signalen geinverteerd van elkaar gebruik, middenstand van de potmeter staat de motor stil, en als je de potmeter naar links of rechts draaid veranderd de richting en loopt het toerental op. Het zelfde werkt het met het remmen, draai je de potmeter naar de middenstand dan remt de motor af. Doe je dit snel dan remt de motor ook snel af.

Bekijk de signalen maar eens met een scoop, voor en achter de diode dan zal je zien dat tijdens het remmen het voltage niet boven de 18VDC komt (boven op de voedingsspanning van 24VDC) hoe snel je ook afremt. Dat is mijn ervaring, maar ben helemaal met je eens dat het bij zwaardere regelaars met remchoppers gebeurd.

@pipsie

Er treed altijd een generator werking op tijdens het remmen, bij welke spanning dan ook. Alleen bij een lage spanning of toerental zal dat minder zijn.

Op 11 juli 2010 23:21:50 schreef Wouter van Ooijen:
[...]

Ik snap 't. We riskant: je moet dus niet in je software binnen die tijd van richting omschakelen!

Maar waarom die IRF9530 als je maar 18V gebruikt? Dat is een 100V FET, eentje voor een lagere spanning kan een veel lagere RDSon hebben.

Had wat zitten zoeken bij farnell en dit was een met een weide range (je weet nooit dat ik motor verzwaar) en de prijs was doenbaar (<1€/stuk). En als je in de software te snel gaat heb je zeker prijs dat is waar.

ik denk dat ik voor het remmen oftewel:

gewoon men motor invers ga bekrachtigen. Dus als hij vooruit rijd gewoon licht achteruit rijden. Dit heeft me dan geen risico op een generator werking met schade tot gevolg.

Of ik moet een remchopper integreren (wat me eigenlijk het simpelst lijkt, een fetje met een R als belasting PWM erop en ja kan de kracht regelen). Om te tonen wat ik bedoel heb ik simpel schematje gemaakt. Die Q3 is de fet die de weerstand inschakelt om te remmen.
Dit wordt uiteraard enkel gedaan als de ander fets allemaal zijn uitgeschakeld. Q3 moet natuurlijk ook met een driver aangestuurd worden en mag een n-fet zijn. En als je perongelijk de fet inschakelt tijdens het PWM'en van andere fet is dit geen probleem, er is dan enkel onnodig verlies door die remweerstand (nu 100k maar is gewoon het idee). schema: http://img401.imageshack.us/f/remp.png/

Op 12 juli 2010 22:00:21 schreef pipsie:
[...]

Had wat zitten zoeken bij farnell en dit was een met een weide range (je weet nooit dat ik motor verzwaar)

Wees je bewust dat je dus niet de motorspanning kan verhogen.

Als men fets en diodes toelaten is dit toch geen probleem? En dit doen ze toch? Enkel diodes een beetje krap maar voor de rest is toch alles goed? (moet wel opletten voor men drivers en spanningsregelaars)

De motor andersom aansturen betekend een negatief koppel leveren (t.o.v. de draairichting), en dus genereren.

@Lambiek: Met zo'n diode zal de spanning inderdaad niet veel verder oplopen (afhankelijk van de snelheid, massatraagheid, etc), omdat de motor met een bepaalde snelheid en pulsbreedte een nieuw balans zoekt, waarbij de spanning dus wel een stuk oploopt, maar niet heel erg ver. Het e.e.a. is dus wel afhankelijk van wat variabelen; kies die verkeerd, en je zit met een spanning die bijna onbeperkt hoog kan worden.

Alleen, met die diode in serie kun je geen energie afvoeren, en zul je dus ook nooit actief remmen. Als je het daar niet mee eens bent, kun je me dan uitleggen waar die energie blijft?

Op 12 juli 2010 22:18:59 schreef pipsie:
Als men fets en diodes toelaten is dit toch geen probleem?

Het probleem is de gate spanning:

Gate to Source Voltage . . .. . VGS ± 20 V

@sparkyGSX.

Even iets heel anders, stel je maakt een H_BRUG met relais kontakten de onderste twee of boenste twee kontakten zijn bijde gemaakt, de motor is dus kortgesloten de motor remt dus, waar blijft die energie.

Ik denk dat de energie opgenomen wordt door de motor, de interne weerstand van de motor zal het vermogen opnemen en omzetten in warmte, de energie kan namelijk nergens anders heen.

Bij een fet aangestuurde motor gebeurt het zelfde, alleen daar zal ook energie door de fet's opgenomen worden, dat zal niet veel zijn omdat de RDS_ON van de gebruikte fet's niet al te hoog is, maar ze zullen toch energie opnemen.

Wij maakten lopende banden bij machine's en de motoren werden altijd zo geremt. Het was een eenrichting regelaar, relais kontakt er over en meer niet. Er werdt zelfs mee gepositioneerd op deze manier, niet super precies maar precies genoeg.

Op zich heb je daar gelijk in, als je een motor kortsluit zal er een forse stroom gaan lopen, aangezien de spanning (tegen-EMK) volledig over de interne weerstand van de motor moet vallen. Stel dat de motor een interne weerstand heeft van 100 milliohm, en een tegen-EMK opwerkt van 20V, dan zou er dus 200A gaan lopen. Hoe lang dat duurt, is afhankelijk van het massatraagheidsmoment van de rotor en de belasting. Hierbij loop je dus al het risico dat de FETs het begeven.

Maar dat is niet het enige; zolang je de motor maar 100% kortsluit, zal het zo werken. Echter, op die manier kun je niet gecontroleerd remmen, want je kunt het remkoppel niet regelen. Wanneer je dat probeert te doen, moet je die kortsluiting opheffen terwijl er een forse stroom loopt, waardoor er ook een flinke charge dump zal plaatsvinden. Bij relais betekent dit waarschijnlijk een overslag tussen de contacten, maar bij de FETs zijn er 2 mogelijkheden: als je een redelijke capaciteit hebt achter de diode die jij in serie wilt zetten met de voeding, ga je deze capaciteit opladen, en zonder capaciteit zal de spanning oplopen tot er iets doorslaat, en dat zullen de FETs zijn, als je geen ander pad voorziet.

Als je het niet met me eens bent, kun je dan eens proberen uit te leggen waarom niet, en waar mijn theorie / redenering naar jouw idee fout gaat? Eerlijk gezegd lees ik steeds alleen dat jij "vind" dat het niet zo is, en dat jullie het altijd anders gedaan hebben, maar geen logische of theoretische verklaring of andere onderbouwing.

Je berekening klopt wel, maar die 100 MOhm is wat aan de lage kant.

Meet de weerstand eens van een motor die stilstaat, die is of 0 Ohm of bijna 0 Ohm, dus bijna sluiting vandaar ook de hoge aanloop stromen.

Een motor die draaid heeft een veel hogere weerstand, dus de stroom zal lang zo hoog niet worden als in je berekening.

Even over dat laatste, ik heb ook niet altijd ergens een verklaring voor. Maar dat is dan mischien de ervaring die wat mee speelt, en daar wil ik niet mee zeggen dat jij die niet hebt hé :) ook al ben je bijna 30 jaar jonger.

Ik voel me ook helemaal niet aangevallen hoor, en het is ook zeker niet mijn bedoeling om jouw aan te vallen, laat dat duidelijk zijn. Ik ben alleen van mening dat zulke dingen gestaafd moeten worden met redeneringen of andere argumenten, want daar volgt de conclusie uit, en over die redeneringen kun je nadenken en discussiëren.

Ik ben het niet met je eens dat de weerstand stijgt als de motor draait, immers, het materiaal blijft gelijk. Het koper blijft koper, de draad blijft even lang en even dik, dus de ohmse weerstand blijft ook gelijk (afgezien van thermische effecten, maar dat terzijde).

Dat er minder stroom gaat lopen zodra de motor draait, komt doordat de motor zelf een tegen-EMK gaat opwekken, en de stroom die er gaat lopen is simpelweg gelijk aan het verschil tussen de voedingsspanning en de tegen-EMK gedeeld door de ohmse weerstand. Naarmate de tegen-EMK stijgt, bij een constante voedingsspanning en weerstand, zal de stroom dus afnemen.

In dit stukje heb ik de inductie van de spoelen verwaarloost; in de meeste gevallen is die niet significant voor de stroom, aangezien de commutatie frequentie relatief laag is.

Die 100 milliohm lijkt wel erg laag, maar dat ligt natuurlijk aan het ontwerp van de motor. Ik had deze bewust wat aan de lage kant gekozen om het probleem van de grote stroom bij het kortsluiten van de motor te illustreren.

Overigens is vaak ook niet wenselijk om alle mechanische energie in de motor om te zetten in warmte. Of dat een probleem is of niet, is natuurlijk weer van tig variabelen afhankelijk.

Ok ik volg niet meer helemaal, even mijn gedachten op een rijtje zetten. Gelieve mij te verbeteren op fouten.

We spreken hier over een DC motor(tje) (iedereen kent die wel).
Je kan een DC motor in 2 richtingen doen draaien (door + en - om te keren). We sluiten de motor hier gewoon met 2 draden aan op een batterij. Een DC motor heeft voor mij een paar belangerijke "standen".

1) Je bekrachtigd hem met de + aan de + en de - aan de -. Resultaat hij draait in een bepaald richtingszin. De motor vraagt hier vermogen.
2) Die bekrachtigde motor bekrachtig je plots niet meer (voeding gewoon wegnemen vb), daardoor zal de motor "uitbollen" en beetje afremen door mechanische weerstand en misschien magneten die wat invloed hebben maar hij wordt dus niet echt afgeremd. Dit zie ik als vrijloop. Motor vraagt geen vermogen en levert er ook geen.
3) Als je direct na situatie 2 de voeding weer aansluit maar dan omgekeerd (dus - aan + en + aan min) zou de motor naar de andere kant moeten draaien. Dit gaat echter niet omdat hij nog aan het bollen is in de originele richting. De motor zal dus eerst de as moeten "afremmen" om vervolgens in de iverse richting te kunnen draaien. Omdat de motor dus meer weerstand heeft dan anders (nog bollende motor) zal deze veel meer vermogen "vragen", met een hoge I tot gevolg. Motor vraagt hier veel vermogen.
4) Als je na situatie 2 de draden van de motor met elkaar verbind, dus hem kortsluit zal de DC motor zich gedragen als generator. De geleverde energie is afhankelijk van de weerstand tussen de 2 klemmen van de motor. Een grote R zorgt ervoor dat de motor weinig vermogen zal leveren. Een kleine R zorgt ervoor dat de motor veel energie zal leveren. En zoals bij ieder generator moet normaal de rotor mechanisch in beweging gehouden worden (vb fietsband op dynamo fiets). Als je dit niet doet (zoals hier bij een motor) zal de motor afremmen, dit afremmen is recht evenredig met de geleverde energie van de motor. De motor levert dus vermogen.
5) Als je na fase 1 de spanning over de motor halveert.... Dit zoek ik dus uit (snap hiet niet echt).

Op 12 juli 2010 23:43:43 schreef SparkyGSX:
De motor andersom aansturen betekend een negatief koppel leveren (t.o.v. de draairichting), en dus genereren.

Met mijn uitleg dus niet ik dacht dat dit juist extra vermogen zou vragen in plaats van leveren. Waar zit mijn fout?

[edit]

En ik wil dus met 4 of 3 remmen. Liefst met 4 omdat deze volgens mij geen vermogen vraagt maar levert in tegenstelling tot 3. Het gelverde vermogen wil ik zo opvangen klopt dit?

Die Q3 is de fet die de weerstand inschakelt om te remmen.
Dit wordt uiteraard enkel gedaan als de ander fets allemaal zijn uitgeschakeld. Q3 moet natuurlijk ook met een driver aangestuurd worden en mag een n-fet zijn. En als je perongelijk de fet inschakelt tijdens het PWM'en van andere fet is dit geen probleem, er is dan enkel onnodig verlies door die remweerstand (nu 100k maar is gewoon het idee). schema: http://img401.imageshack.us/f/remp.png/

[Bericht gewijzigd door pipsie op (12%)]

@sparkyGSX.

Weet niet beter dan dat de weerstand verandert bij een draaiende motor, maar je heb gelijk het tegen EMK was ik nog vergeten.

En ik vindt je kommentaar altijd wel goed, ook al ben ik het er niet altijd helemaal mee eens, maar dat moet kunnen en is wederzijds denk ik.

En verder even goede vrienden :).

@Lambiek: Dat is absoluut wederzijds. Als we het altijd eens waren, viel er weinig te leren en discussiëren, niet?

Ik zou niet weten waarom de weerstand veranderd. Sterker nog, ik denk dat het aantoonbaar is dat dit niet het geval is, simpelweg door een motor (met externe middelen) op een bepaald toerental te laten draaien, en de weerstand te bepalen door twee verschillende spanningen aan te leggen en de stroom te meten. Door deze meting bij een ander toerental (mag ook 0 zijn) te herhalen, kan bekeken worden of de weerstand veranderd.

Nu heb ik dit experiment nooit exact zo uitgevoerd, maar al wel veel getest met motoren en regelaars op een testbank, en nooit resultaten gekregen die suggereren dat de weerstand veranderd. Ik zou ook niet weten welk natuurkundig effect dat zou kunnen veroorzaken, eigenlijk.

Wanneer de tegen-EMK niet zou bestaan, of niet noemenswaardig zou bijdragen, zou het niet voor kunnen komen dat er bij het aanleggen van een positieve spanning (lager dan de tegen-EMK) een negatieve stroom gaat lopen, en dat heb ik al wel vaak gezien.

Overigens ga ik er vanuit dat we het over permanente magneet motoren hebben, en niet over variabele reluctantie motoren (of andere types). Bij variabele reluctantie veranderd niet de weerstand, maar de inductie van de spoelen afhankelijk van de rotorpositie, maar ik neem aan dat je dat niet bedoelt.

@TS: punt 1 en 2 zijn in ieder geval correct; de rest is wat complexer.

Ik zal proberen morgen het e.e.a. duidelijk uit te schrijven, want ik kan me voorstellen dat het wat lastig is om te volgen op deze manier.

[Bericht gewijzigd door SparkyGSX op (21%)]

@sparkyGSX.

Ja we hebben het over permanent magneet motoren met een collector.
Ik dacht dat het door de collector kwam dat de weerstand verandert bij verdraaiing.

Zal het eens proberen zo als jij zegt met een weerstand.

En wat de tegen emk betreft, dat heft elkaar niet op hé heb drie verschillende motoren in de draaibank gehad, van drie verschillende type's en bij 3000 T/M leverden alle drie de motoren maar 18VDC, dus dus 6VDC minder als een aangelegde voedingsspanning van 24VDC (dan zou de motor ook 3000 toeren draaien) het zijn alle drie 80W motoren bij een belasting met een lamp van 24VDC en 25W zakt de spanning een paar volt in, bij alle drie.

In mijn optie de tegen emk helpt mee, maar het heft elkaar niet op.

Op 14 juli 2010 01:07:33 schreef SparkyGSX:
Ik zal proberen morgen het e.e.a. duidelijk uit te schrijven, want ik kan me voorstellen dat het wat lastig is om te volgen op deze manier.

Ja dat is zo :p. Dus als je me even wat wijzer zou willen maken zou ik dit appreciëren. :p

Het gedrag van een motor kun je redelijk benaderen met een vrij simpel model, bestaande uit een weerstand, ideale spoel en een spanningsbron in serie. De weerstand is de som van de weerstanden van windingen, eventueel de collector, koolborstels, etc. De inductie is gewoon de inductie van de rotor (of stator bij een borstelloze motor), en de spanningsbron is voor de tegen-EMK.
Dit model heeft een paar tekortkomingen; bij een motor met borstels staan er steeds kortstondig spoelen parallel, omdat de koolborstels met meerdere vlakken op de collector contact maken. Hierdoor fluctueren de weerstand en inductie. De inductie veranderd ook nog omdat de luchtgat meestal niet constant is, en vanwege kernverzadiging afhankelijk van de rotorpositie en rotor of stator stroom. De tegen-EMK is min of meer een gelijkgerichte 3-fase spanning, waarbij de afzonderlijke fasen niet perse perfect sinusvormig zijn.
De commutatiefrequentie is over het algemeen zo laag dat het effect van de inductie op "lange termijn" verwaarloosbaar is; alleen bij het bepalen van de stromen binnen een PWM cyclus wordt deze significant.
Desalniettemin werkt dit model in de praktijk best goed, vooral als je niet probeert het gedrag tot in klein detail te voorspellen, maar vooral redeneert over het gedrag en orde van grootte van stromen en spanningen.

Er zijn een paar verschillende situaties mogelijk:

(Vsup = aangelegde spanning, Vbemf = tegen-EMK, Imot = motorstroom, Isup = voedingsstroom)

1) Vsup > Vbemf -> Imot > 0, Isup > 0
de som van de aangelegde spanning en de tegen-EMK (die bij normaal bedrijf tegengesteld is aan de aangelegde spanning) is groter dan 0; er gaat een positieve stroom lopen (in de spoel en de voeding), en er wordt een positief koppel geleverd.

2) Vsup = Vbemf -> Imot = Isup = 0
de som van de aangelegde spanning en de tegen-EMK is 0; er gaat geen stroom lopen, en er wordt dus ook geen koppel geleverd.

3) Vsup > 0, Vsup < Vbemf -> Imot < 0, Isup < 0
de som van de aangelegde spanning en de tegen-EMK is negatief, terwijl de aangelegde spanning wel positief is; er gaan een negatieve stroom lopen (de voeding in), en er wordt een negatief koppel geleverd (remmend).

4) Vsup < 0 -> Imot < 0, Isup < 0
de aangelegde spanning is negatief, en de som dus ook; dus er gaat een negatieve stroom door de spoel en de voeding lopen. Omdat je de voeding effectief omgedraait hebt, heeft de stroom daar hetzelfde teken als de spanning, en zal de voeding dus stroom leveren.

In alle gevallen moet de som van de spanningen volledig over de interne weerstand vallen; in het geval van (4) zal de stroom dus al snel heel erg groot worden.

Wanneer de draairichting van de motor veranderd, veranderd ook het teken van de tegen-EMK, dus moet je alles inverteren (niet teveel over nadenken).

Er zijn verschillende manieren om de brug aan te sturen, zo kun je de recirculatie over de onderste of bovenste 2 FETs laten lopen (of 1 FET en 1 diode), je kunt alle FETs laten sperren en de recirculatie via de diodes en de voeding laten gaan, of je kunt de brug altijd de ene of de andere kant open sturen. Recirculatie over de 2 bovenste of onderste FETs geeft het beste rendement en de minste stroomrimpel. De andere methoden geven je elke PWM cyclus negatieve stromen in de voeding, en een slechter rendement. Wanneer je de stroom door de spoel terug laat lopen tot 0, of zelfs negatief laat worden, loopt het rendement dramatisch terug, en kun je ook niet meer zomaar gaan rekenen met de effectieve spanning.

Wanneer de PWM periode kort is ten opzichte van de tijdconstante van de motor (bepaald door de inductie en weerstand), mag je aannemen dat de stroom tijdens de PWM cyclus nagenoeg constant is, en dus rekenen met de effectieve spanning (Vsup * duty-cycle). De duty-cycle kan hier dus van -1 tot 1 lopen.

EDIT: stiekem is dit nog best een ingewikkeld verhaal geworden, en het kan zomaar zijn dat ik een foutje heb gemaakt in de uitleg. Voel je vooral vrij om dat te melden of vragen te stellen.

EDIT2: (n.a.v. berichtje van REW)

5) Vsup = 0 (motor effectief kortgesloten), Vbemf > 0 -> Imot < 0, Isup = 0
er geen een negatieve stroom lopen, waardoor een remmend koppel geleverd wordt. Aangezien de motor kortgesloten is, loopt er geen stroom door de voeding, en moet de tegen-EMK volledig over de interne weerstand en de FETs vallen. Hierbij kan de stroom gemakkelijk erg hoog oplopen, en dat is ook meteen het gevaar. Wanneer de FETs gesperd worden, zal er een grote charge dump plaatsvinden, waarbij veel energie de voeding in geforceerd wordt.

Het is dus zaak om ervoor te zorgen dat de voeding een ruime buffercapaciteit heeft, en deze (en alle andere aangesloten onderdelen) bestand zijn tegen een spanning die een stuk hoger is dan de nominale voedingsspanning. Wanneer langdurig geremd moet worden (bij een grote massatraagheid), is het belangrijk dat die energie beheerst afgevoerd kan worden.

Netjes gedaan, Sparky.

Maar wat ik mis is: "remmen".

Als je beide onderste fets aanzet, is effectief de voedingsspanning nul, en gaat er een grote stroom lopen en wordt er veel energie gedissipieerd -> remmen.

Normaliter is VSUP, de voedingsspanning altijd groter dan de BEMF. Maar als je de PWM terugschroeft, kan er ook een situatie ontstaan waar de vsup effectief kleiner is dan de BEMF. Dan levert de motor stroom aan de voeding. Moet ie tegen kunnen. :-)

Een standaard H-brug (L293 / L298 ...) heeft 3 ingangen :
Enable, Richting 1 en Richting 2.
Meestal sluit men de PWM aan op de Enable. Hierdoor worden de aanslutingen naar de motor hoogohmig als het PWM signaal laag is. De motor loopt vrij uit.

Een traploze remwerking kan je als volgt verkrijgen :
Koppel de PWM niet aan de "Enable" van de H-brug, maar aan één van de richtingspinnen. De andere richtingspin wordt vast gestuurd door de µ-controller. De enable blijft altijd hoog. Nu wordt de motor ofwel aangedreven, ofwel wordt hij kortgesloten, afhankelijk van de PWM-waarde. Op deze wijze heb je een veel betere controle over het toerental via de PWM waarde. Nadeel is natuurlijk het hogere stroomverbruik. Ik heb beide manieren getest met mijn robot, en de 2 de manier geeft een veel betere controle over de snelheid.

@RP6conrad: Als je het PWM signaal op de enable ingang zet, zal de motor inderdaad vrij uitlopen als de FETs sperren, maar je moet er dan wel rekening mee houden dat de lading in de spoelen eerst nog even in je voeding gedumpt wordt. Als de capaciteit in die voeding klein is, zal de spanning enorm oplopen.

@rew: je hebt gelijk, ik ben de situatie Vsup = 0, Vbemf > 0 vergeten, die stond wel in het originele concept van mijn berichtje. Ik zal hem alsnog toevoegen.

Dat laatste is situatie 3 in mijn verhaaltje.

Op 17 juli 2010 18:47:28 schreef SparkyGSX:
Het gedrag van een motor kun je redelijk benaderen met een vrij simpel model, bestaande uit een weerstand, ideale spoel en een spanningsbron in serie. De weerstand is de som van de weerstanden van windingen, eventueel de collector, koolborstels, etc. De inductie is gewoon de inductie van de rotor (of stator bij een borstelloze motor), en de spanningsbron is voor de tegen-EMK.
Dit model heeft een paar tekortkomingen; bij een motor met borstels staan er steeds kortstondig spoelen parallel, omdat de koolborstels met meerdere vlakken op de collector contact maken. Hierdoor fluctueren de weerstand en inductie. De inductie veranderd ook nog omdat de luchtgat meestal niet constant is, en vanwege kernverzadiging afhankelijk van de rotorpositie en rotor of stator stroom. De tegen-EMK is min of meer een gelijkgerichte 3-fase spanning, waarbij de afzonderlijke fasen niet perse perfect sinusvormig zijn.
De commutatiefrequentie is over het algemeen zo laag dat het effect van de inductie op "lange termijn" verwaarloosbaar is; alleen bij het bepalen van de stromen binnen een PWM cyclus wordt deze significant.
Desalniettemin werkt dit model in de praktijk best goed, vooral als je niet probeert het gedrag tot in klein detail te voorspellen, maar vooral redeneert over het gedrag en orde van grootte van stromen en spanningen.

Er zijn een paar verschillende situaties mogelijk:

(Vsup = aangelegde spanning, Vbemf = tegen-EMK, Imot = motorstroom, Isup = voedingsstroom)

1) Vsup > Vbemf -> Imot > 0, Isup > 0
de som van de aangelegde spanning en de tegen-EMK (die bij normaal bedrijf tegengesteld is aan de aangelegde spanning) is groter dan 0; er gaat een positieve stroom lopen (in de spoel en de voeding), en er wordt een positief koppel geleverd.

2) Vsup = Vbemf -> Imot = Isup = 0
de som van de aangelegde spanning en de tegen-EMK is 0; er gaat geen stroom lopen, en er wordt dus ook geen koppel geleverd.

3) Vsup > 0, Vsup < Vbemf -> Imot < 0, Isup < 0
de som van de aangelegde spanning en de tegen-EMK is negatief, terwijl de aangelegde spanning wel positief is; er gaan een negatieve stroom lopen (de voeding in), en er wordt een negatief koppel geleverd (remmend).

4) Vsup < 0 -> Imot < 0, Isup < 0
de aangelegde spanning is negatief, en de som dus ook; dus er gaat een negatieve stroom door de spoel en de voeding lopen. Omdat je de voeding effectief omgedraait hebt, heeft de stroom daar hetzelfde teken als de spanning, en zal de voeding dus stroom leveren.

In alle gevallen moet de som van de spanningen volledig over de interne weerstand vallen; in het geval van (4) zal de stroom dus al snel heel erg groot worden.

Wanneer de draairichting van de motor veranderd, veranderd ook het teken van de tegen-EMK, dus moet je alles inverteren (niet teveel over nadenken).

Er zijn verschillende manieren om de brug aan te sturen, zo kun je de recirculatie over de onderste of bovenste 2 FETs laten lopen (of 1 FET en 1 diode), je kunt alle FETs laten sperren en de recirculatie via de diodes en de voeding laten gaan, of je kunt de brug altijd de ene of de andere kant open sturen. Recirculatie over de 2 bovenste of onderste FETs geeft het beste rendement en de minste stroomrimpel. De andere methoden geven je elke PWM cyclus negatieve stromen in de voeding, en een slechter rendement. Wanneer je de stroom door de spoel terug laat lopen tot 0, of zelfs negatief laat worden, loopt het rendement dramatisch terug, en kun je ook niet meer zomaar gaan rekenen met de effectieve spanning.

Wanneer de PWM periode kort is ten opzichte van de tijdconstante van de motor (bepaald door de inductie en weerstand), mag je aannemen dat de stroom tijdens de PWM cyclus nagenoeg constant is, en dus rekenen met de effectieve spanning (Vsup * duty-cycle). De duty-cycle kan hier dus van -1 tot 1 lopen.

EDIT: stiekem is dit nog best een ingewikkeld verhaal geworden, en het kan zomaar zijn dat ik een foutje heb gemaakt in de uitleg. Voel je vooral vrij om dat te melden of vragen te stellen.

EDIT2: (n.a.v. berichtje van REW)

5) Vsup = 0 (motor effectief kortgesloten), Vbemf > 0 -> Imot < 0, Isup = 0
er geen een negatieve stroom lopen, waardoor een remmend koppel geleverd wordt. Aangezien de motor kortgesloten is, loopt er geen stroom door de voeding, en moet de tegen-EMK volledig over de interne weerstand en de FETs vallen. Hierbij kan de stroom gemakkelijk erg hoog oplopen, en dat is ook meteen het gevaar. Wanneer de FETs gesperd worden, zal er een grote charge dump plaatsvinden, waarbij veel energie de voeding in geforceerd wordt.

Het is dus zaak om ervoor te zorgen dat de voeding een ruime buffercapaciteit heeft, en deze (en alle andere aangesloten onderdelen) bestand zijn tegen een spanning die een stuk hoger is dan de nominale voedingsspanning. Wanneer langdurig geremd moet worden (bij een grote massatraagheid), is het belangrijk dat die energie beheerst afgevoerd kan worden.

De uitleg is prachtig, maar ik snap het dus nog niet compleet (maar al meer). Vooral die tegen emk vind ik raar. Het is alsof dat daar constant is (en ik dacht dat dit enkel daar was bij het wegnemen van de voeding). Klopt het dat ik dit kan/mag bekijken als de 0.7V "tegenwerking" bij een diode? Dus dat je spanning over de motor groter moet zijn dan de tegen emk om hem in beweging te krijgen?
Dus het is vooral moeilijk voor mij om 2 en 3 van elkaar te onderscheiden.

Dus als je nog even die tegen emk zou willen uitleggen (zo simpel mogelijk :p) dan zou ik daar zeer dankbaar voor zijn.