Alternatieve motorregeling (closed loop stroomregeling)

(wel een beetje een lang verhaal geworden, sorry!)

Hoewel het de laatste tijd iets minder gebeurd, komen hier regelmatig vragen langs over het gebruik van de simpele motorregeling voor DC motoren die bij de schakelingen staat, voor toepassingen waarbij het eigenlijk niet handig is om direct een spanning aan te leggen.

Dit was voor mij voldoende reden om te proberen een concept te ontwikkelen waarbij niet op lompe wijze een spanning geforceerd wordt, maar in plaats daarvan de stroom geregeld wordt. Na enige pogingen is dit de onderstaande schakeling geworden, die betrekkelijk eenvoudig is, en toch heel behoorlijk lijkt te werken.

De doelstellingen waren:
- zo eenvoudig mogelijk, maar wel betrouwbaar
- geen dure of exotische (slecht verkrijgbare) onderdelen
- bruikbaar voor kleine motoren (tot 10A of zo) met een enkele MOSFET en diode, maar ook voor grotere door gebruik van een halve brug driver met 2 of meer MOSFETs.
- geen kritische instellingen of andere constructies die nabouwen moeilijk maken
- een perfect lineair verband tussen het setpoint en de motorstroom is niet noodzakelijk

http://www.uploadarchief.net/files/download/closed%20loop%20current%20controller%20v1.0.gif

De regeling is gebaseerd op een rudimentaire stroommeting, met een weerstand waar altijd de motorstroom door loopt, dus ook tijdens de recirculatie. Deze meting wordt door een comparator met een vaste hysterese vergeleken met een analoog setpoint, en het resultaat daarvan wordt gebruikt om een MOSFET te sturen. De regelaar heeft dus geen vaste schakelfrequentie, deze varieert afhankelijk van het setpoint, de voedingsspanning, motorsnelheid, etc.

Korte uitleg van het ontwerp:

V3 en L1 vormen samen een model voor de motor, waarbij V3 de tegen-EMK voorstelt, en L1 de inductie en interne weerstand.

D4 en R5 maken een 12V hulpvoeding, in mijn huidige prototype heb ik dat toch met een 7805 gedaan.

Het circuit rond Q1 is een stroommeet versterker, en tevens level-shifter; de spanning over meetweerstand R1 plus de spanningsval over D1 en D2 bepalen de spanning op de basis van Q1 ten opzichte van de voedingsspanning. D2 dient om de spanningsval over de basis-emitter overgang van Q1 te compenseren, terwijl D1 deze een offset geeft van 300mV wanneer er geen stroom loopt, en dus geen spanning over R1 valt. Die 300mV moet ook over R2 vallen, waardoor daar 3mA door gaat lopen. Die stroom (minus de verwaarloosbare basisstroom) loopt ook door R4 en R15, waardoor er ongeveer 1400mV over beide staat; de rest van de spanning staat over Q1. Wanneer er stroom door de meetweerstand gaat lopen, gaat de basis van Q1 omlaag, waardoor deze verder open gaat, en er meer stroom door R2 gaat lopen om de balans te herstellen. Die grotere stroom loopt ook door R4 en R15, waardoor de spanning daarover stijgt.

Weerstand R4 dient voornamelijk om de dissipatie in Q1 wat te beperken, en om te voorkomen dat de comparator een te hoge ingangsspanning zou kunnen krijgen.

Diode D6 lijkt overbodig, maar heeft als doel Q1 te beschermen bij transients waarbij diens basis boven de voedingsspanning zou kunnen komen. Waarschijnlijk kan deze zonder problemen weggelaten worden.

De rest van de schakeling spreekt redelijk voor zichzelf, lijkt me. R8 geeft de comparator wat hysterese, waarbij D5 ervoor zorgt dat deze asymmetrisch is, waardoor de analyse wat eenvoudiger wordt, en de hysterese onafhankelijk wordt van eventuele rommel op de 12V hulpvoeding.

Q2 en Q3 vormen een simpele gate driver, waarbij R10 de stroom wat beperkt, en gate ringing helpt te dempen. In principe is R6 overbodig, maar het is mijn gewoonte om bij dergelijke constructie toch de stroom wat te beperken, en deze zal ook helpen om de feedback van de comparator enigszins te isoleren van de gate driver tijdens het schakelen daarvan.

De 300mV bias bij Q1 heeft twee redenen: ten eerste wordt daarmee voorkomen dat er een soort cross-over effect ontstaat, waarbij er een minimale spanningsval over R1 nodig is om de transistor in geleiding te krijgen. Daarbij is het ook niet wenselijk om de ingangen van de comparator dicht bij of helemaal tegen de ground te gebruiken, vanwege de spanningsval over de uitgangstransistor en diode D5 in het feedback pad.

De tweede reden is dat het op deze manier ook mogelijk is om een negatieve stroom te meten; wanneer deze gate driver wordt vervangen door een geïntegreerde halve brug driver zoals een IR2184 o.i.d., is het zelfs mogelijk om gecontroleerd regeneratief te remmen.

Het prototype van deze schakeling lijkt heel behoorlijk te werken, waarbij de stroom door mijn testmotor maar een paar procent varieert bij wisselende belastingen en voedingsspanningen.

De componenten in het schema zijn alleen gekozen vanwege de beschikbaarheid van modellen in LTspice, en deze zijn zeker niet kritisch. In het prototype zit een LM311 als comparator, generieke transistors, etc. Alleen D5 is daadwerkelijk een 1N4148, omdat dit wel een snelle diode moet zijn.

Helaas mag ik de .asc file (LTspice) niet op uploadarchief zetten; wie deze wil hebben om mee te spelen, kan me een mailtje sturen.

Wat vinden jullie ervan? Het ik iets over het hoofd gezien? Kan het simpeler / betrouwbaarder / efficiënter? Is dit de oplossing voor het wereld energie probleem, of te kansloos voor woorden en kan ik beter leren bloemschikken?

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

Gaaf ding met die totempole om de gate hard aan te sturen..... uit een spanningsbron met 1k uitgangsweerstand.... Ehhh. Daar zou ik nog even een condensatortje op zetten.... (Met 100nF kom je al een end. De gate-capaciteit is vaak van de ordegrootte van 1nF, dus kan je met ladingsdeling tot 11.9V komen).

[edit] Ondertussen de rest kunnen lezen. Prima.

Ter aanvulling: de KRACHThet KOPPEL dat een motor levert is grotendeels evenredig met de stroom. Dus als je een situatie hebt waar je de kracht over een groot bereik constant wil houden, dan moet je deze regeling gebruiken. Als je de maximale stroom zodanig afregelt dat de motor het aankan, dan kan je ook hogere spanningen op je motor aanbieden dan dat de fabrikant had gedacht. Bij lage toerentallen blijft de motor dan op een klein PWM percentage rustig duwen, terwijl hij toch ook hard kan als je hem de kans geeft.

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

Eh, goed punt. In het prototype zit daar een 7805, met een eigen buffer bij zijn ingang, en een diode in serie.

Die hulpvoeding zag er zo onschuldig uit dat ik er nooit goed naar gekeken heb! Met 100nF gaat het in de simulatie prima.

Maar afgezien van die f*ck-up? Als dat de grootste is die je kunt vinden, ben ik tevreden!

Ik zit net te bedenken dat het ook niet zo heel erg moeilijk zou moeten zijn om deze schakeling met een enkele MOSFET precies andersom te gebruiken, dus om alleen stroom te leveren, voor een simpele windmolen o.i.d.

[Bericht gewijzigd door SparkyGSX op zondag 10 maart 2013 20:52:53 (25%)

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

Wees tevreden. M'n complimenten.

[edit].. windmolen? Je bedoel als stroombron voor een laad-circuit of zo?

[Bericht gewijzigd door rew op zondag 10 maart 2013 20:54:39 (55%)

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

Inderdaad, om de stroom door een permanente magneet motor / generator te regelen, met een eenmalig ingesteld koppel, of afhankelijk van het toerental of zo.

Ik zie niet direct mogelijkheden om het nog eenvoudiger te maken, maar ik verwacht dat veel beginners dit ontwerp alsnog intimiderend zullen vinden. Het is natuurlijk moeilijk om het met net zo weinig onderdelen te doen als de standaard motorregelaar op basis van een 555je.

Ik heb verschillende pogingen gedaan om het rondom een 555je te bouwen, maar daarbij heb je geen controle over de hysterese, en een regelaar met een vast aan-tijd (reset laag trekken wanneer de stroom bereikt is) vind ik ook niet handig.

Persoonlijk vindt ik dat de ontwerpen van de 555 een leuk ding gemaakt heeft, maar ik had toch graag 1 ding anders gezien: in plaats van de discharge pin, wat feitelijk een open-collector is die de uitgang volgt, had ik liever een geïnverteerde uitgang gehad, met dezelfde specificaties als de bestaande uitgang. Dat zou het ding nog zo veel flexibeler hebben gemaakt!

Maar zou dit een redelijk ontwerp zijn om als "standaard" te gaan gebruiken in plaats van de bestaande motorregeling, voor toepassingen waarbij het beter is om het koppel te regelen, in plaats van de spanning?

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

Golden Member

Ik zit net even mee te lezen,als ik dit zo bekijk is het een mooie aanvulling in de downloads schakelingensectie van deze site?
Had net de verkeerde sectie neergezet.

[Bericht gewijzigd door Dok op maandag 11 maart 2013 00:28:14 (23%)

Wie niet horen wil moet TV kijken.

@Dok: ja, dat was wel een beetje mijn bedoeling. Hoewel ik niet direct zou weten wat er nog verbeterd zou moeten worden, voelt het ontwerp voor mij nog niet "volwassen" genoeg. Ik heb het idee dat het te gemakkelijk gaat.

@Rew: ik zie nu pas dat je wat had toegevoegd,aan je eerste bericht. De correcte term is natuurlijk "koppel", maar verder ben ik het grotendeels met je eens. De spanning die je over een motor kan zetten zonder hem te slopen, wordt enerzijds beperkt door de stroom die er zou gaan lopen, en anderzijds door het maximaal toelaatbare toerental.

De spanning die de fabrikant opgeeft, is meestal gebaseerd op de aanname dat de motor in korte tijd dicht bij zijn nominale toerental kan komen. Als je een 24V motor gebruikt om relatief zwaar voertuig aan te drijven, en de motor bij stilstand,of lage snelheid de volle 24V geeft, gaat er een veel te grote stroom lopen, en dat wordt met deze regeling voorkomen.

Ik heb ook een ander ontwerp, waarbij de gemeten stroom door een low-pass filter gaat, en een opamp het verschil met het setpoint bepaald en dat integreert, waarna het resultaat gebruikt wordt om met 2 comparators een PWM signaal te maken. Het voordeel van die constructie is dat je met wat kunst en vliegwerk niet alleen de motorstroom, maar ook de accustroom kunt beperken. De regeling is ook een stuk stabieler (minder afhankelijk van het motortoerental en voedingsspanning), en heeft een vaste PWM frequentie. Het zijn echter wel weer een flink aantal extra onderdelen.

Je komt dan toch snel op het punt dat een microcontroller de eenvoudigste oplossing wordt, maar dan wordt de drempel om het na te bouwen weer een stuk hoger van, denk ik.

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

Special Member

Goed doordacht sparky, het zou inderdaad een mooie toevoeging zijn voor de schakelingen sectie.

Met een controllertje kan het ook natuurlijk, maar dan zit je inderdaad met het programmeren. Je kan natuurlijk de hex er bij zetten, maar het maakt de drempel om het na te bouwen wel iets groter.

Als je haar maar goed zit, GROETEN LAMBIEK.

Een koppelregeling zou zeker een aanwinst betekenen en daarmee wil ik helemaal geen afbreuk doen aan de oerdegelijke CO-regelaar. Vanwege de discrete componenten blijft de drempel voor beginners eerder beperkt.

Enkel de spanningen (voeding en motor) lijken me wat ongelukkig. Misschien is de schakeling ook voor 12V geschikt (te maken)?

Tradities en regels zijn er om te breken. Orde niet.

Op 10 maart 2013 20:30:52 schreef SparkyGSX:
D4 en R5 maken een 12V hulpvoeding, in mijn huidige prototype heb ik dat toch met een 7805 gedaan.

Ehm, haal je 5V en 12V door elkaar?

Eh, ja, 7812 natuurlijk.

@Sparkz: de minimale spanning is ongeveer 12V, maar als je een logic-level MOSFET neemt kun je waarschijnlijk nog wel wat lager gaan. Belangrijk daarbij is wel dat je zonder geïntegreerde gate driver geen onderspanning beveiliging hebt. Bij lagere spanningen kun je overwegen om R4 weg te laten, of de verhouding R2, R4 en R15 wat te veranderen, om te voorkomen dat het stroommeet circuit tegen het eind van zijn bereik loopt. Als dat gebeurd, zou de MOSFET 100% aangestuurd worden, omdat de stroommeting dan niet meer klopt met de werkelijkheid. Als je voorkomen dat het setpoint zo hoog kan worden, blijft de stroom ook beperkt.

De spanning bij de motor (15V) is gekozen als tegen-EMK, dus een bepaald toerental van een fictieve motor. Dat betekend dus niet dat je een 15V motor nodig hebt.

Misschien zou een zenerdiode van de inverterende ingang van de comparator naar de ground nog een goed idee zijn, net als een weerstand in serie met de basis van R1, om schade in het geval van een onderbroken meetweerstand te voorkomen.

Een onderspanningsbeveiliging hoeft overigens niet meer te zijn dan een zener, twee weerstandjes, en een transistor, maar ik heb nog niet helemaal bedacht waar zo'n beveiliging handig zou kunnen ingrijpen, zeker omdat de transistor juist in geleiding zou zijn zolang de spanning hoog genoeg is. Daarbij zou een beetje hysterese in zo'n beveiliging wel handig zijn.

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

Ik zit nog even naar je stroom-versterk-circuit te kijken. Ik snap die tweede diode daar niet. Maar goed. Zal wel aan mij liggen.

Is het een idee om een stroom spiegel te gebruiken? Twee emitters alletwee via een 0.1 ohm weerstand aan de voeding, twee basis samen aan een 10k naar aarde, en 1 collector via een 100 ohm naar aarde. De spanning op de 100 ohm is dan je - input van de opamp. De andere collector komt dan geloof ik aan de basis van de transistoren. (volgens mij heb ik dan 3 onderdelen minder dan jou schakeling).

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

Welke 2de diode bedoel je?

Ik neem aan dat je niet op D6 doelt, die is er alleen als (mogelijk overbodige) bescherming van de transistor, tegen een overschrijding van de Vbe(max) bij transients.

D2 dient als compensatie van de BE overgang van de transistor, D1 (de schottky) heeft als doel een offset van 300mV te geven, en dus een ruststroom door het stroommeet circuit, wat er op de eerste plaats voor zorgt dat de ingang van de comparator een stuk boven de ground blijft, en tegelijk ook de mogelijkheid schept om negatieve (regeneratieve) stromen te meten, maar dat is pas nuttig als je een halve brug driver met 2 MOSFETs gebruikt. Met die opstelling kun je, zonder andere aanpassingen, zowel in motorbedrijf als in generatorbedrijf de stroom regelen.

Ik ben geen voorstander van stroomspiegels, voornamelijk omdat het gedrag daarvan sterk afhankelijk is van de versterkingsfactor en Vbe spanning van de transistors, en die zijn weer sterk afhankelijk van de temperatuur. Als de spanningen over de transistors, en daarmee de dissipatie ervan verschillend zijn, zullen ze niet gelijk opwarmen, en gaat het hele ding scheef lopen. Naar mijn idee zijn dergelijke stroomspiegels eigenlijk alleen toepasbaar wanneer beide transistors sterk thermisch gekoppeld zijn, bij voorkeur omdat ze naast elkaar in een IC liggen.

Ook individuele verschillen (verschillende leveranciers, batches, etc.) hebben naar mijn idee teveel invloed, waardoor het risico bij het nabouwen veel groter wordt.

[Bericht gewijzigd door SparkyGSX op dinsdag 12 maart 2013 11:19:31 (33%)

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

OK. Goede argumenten.
Ja, ik bedoel D1/D2 met "tweede diode".

Ik begrijp wat je wilt met D6, maar ik snap niet wanneer het nodig zou zijn. Ik zou R1 willen dimensioneren zodat er maximaal 0.1V over staat. Dus bij een motorstroom van 10A eigenlijk liever 0.01 Ohm.

Als de gehele motorstroom dan geregenereerd wordt, dan heb je nog steeds een spanning van rond de 0.7V onder de voeding op je basis. En is het niet gebruikelijk dat je daar iets van 5V op mag zetten in "reverse" bias? (Check!, pag 2 van de NXP datasheet voor de bc556/bc557: VEBO)

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