Tegenwoordig worden in e-bikes overal sensorloze synchrone DC motoren gebruikt zonder terugkoppeling.
Wat is de reden dat ze de terugkoppeling weglaten? Dan weet de regelaar toch niet in welke positie de motor zich bevind? En in welke situatie kan dit mis gaan?

Of maakt het allemaal niet zo veel uit en is het om de regeling zo eenvoudig en goedkoop mogelijk te gouden?

Sensoren en vooral kabels en connectors kosten geld, en ze kunnen stuk, dus het kan handig zijn om ze weg te laten. Het nadeel van sensorloze aansturing is dat het heel moeilijk is om vanuit stilstand koppel te kunnen leveren, voor de gangbare algoritmes moet de motor een bepaalde snelheid hebben, waarbij er genoeg tegen-EMK opgewekt wordt om de rotorpositie te kunnen bepalen.

Het meest gebruikte algoritme is nuldoorgangsmeting op een onbekrachtigde fase, waardoor deze sturing is beperkt tot blok- of trapeziumvormige spanning of stroom, en het rendement lager is vanwege de hogere RMS stromen. Een andere optie is FOC (field oriented control), waarbij wel sinusvormige stromen gebruikt kunnen worden, maar hiervoor moeten de spanning- en stroommeet circuits veel sneller en nauwkeuriger zijn, en het algoritme is een stuk ingewikkelder.

Als je vanuit stilstand koppel wil kunnen leveren, kun je bijna niet om die sensoren heen.

Wordt de informatie die de stuurelectronica nodig heeft om de motor op de juiste wijze aan te sturen niet gewoon uit het koppel en toerental van de trappers gehaald?

In e-bikes begint de motor pas te werken, als je zelf mee trapt.

De informatie van de trappers (koppel of omloopsnelheid) wordt alleen gebruikt om de motor uit te zetten als je niet mee trapt, dat is een vereiste om onder de regels voor fietsen te vallen. Dit is dus een wettelijke en geen technische vereiste.

Uit de informatie van de trappers is de rotorpositie niet vast te stellen, en die is wel nodig om een borstelloze motor aan te kunnen sturen voor tractie toepassingen. In de modelbouw, en bij pompen, ventilatoren, etc, wordt de motor blind aangestuurd tot deze het minimale toerental heeft bereikt. Dit kan, omdat de motor bij die toepassingen bij lage snelheid nauwelijks koppel hoeft te leveren, in tegenstelling tot tractie toepassingen.

Het is wel toegestaan om, zonder te trappen, tot 6km/h de motor aan te drijven, om de gebruiker te helpen te manoeuvreren, trappen op te lopen, etc. Hierbij is er dus geen of een zeer lage snelheid van de motor, en dus onvoldoende tegen-EMK om de rotorpositie vast te kunnen stellen. Om dat te kunnen doen zijn dus wel sensoren nodig, of een bijzonder ingewikkeld algoritme om de rotorpositie vast te kunnen stellen, door bijvoorbeeld de verzadiging van de stator te meten.

je kan perfect uitvlooien waar de rotor zich bevindt in stilstand.

je programmeert een stroomlimiet en schakelt de endstage in voor de fase die je wilt meten. je meet de tijd die nodig is om tot die limit te geraken en daarnaa schakel je die fase af.

je doet dit voor alle 6 mogelijke standen ( 3 fase 2 polen )

daar waar je de KORTSTE tijd meet zit je best in lijn met de rotor.
de eerste commutatie moet dan gebeuren op de fase links , of rechts van die positie ( afhankelijk van waar je de draairichting wilt. )

Er zijn complexe algoritmes die kunnen tracken of de rotor aangekomen is op de volgende stap en dan pas de commutatie doen. Wij hebben zo een maximum acceleartion algoritme.
Dat spul is zelfzoekend en lanceert de BLDC zo hard het ding aan kan.
de rotorpositie wordt bepaald , de drivertrap start en er wordt gekeken wanneer de rotor in de buurt komt. de drivertrap gaat ondertussen naadloos naar de volgende fase. alle mechanische traagheid wordt automatisch gecompenseerd. het enige wat je instelt is de maximum stroom per fase. De rest is zelfzoekend.

je gaat dat alleen niet eventjes in ene microcontrollertje doen.. de resolutie waarmee gemeten wordt is 10 nanoseconden ....
dat wordt harde logica ...

Zoals ik al zei, het is niet onmogelijk, maar eenvoudig is anders. Daarbij is een dergelijk systeem zeer waarschijnlijk duurder in productie en veel duurder om te ontwikkelen dan haalbaar is voor een toepassing als een elektrische fiets.

Welke methode bruikbaar is, is afhankelijk van de eigenschappen van de motor; het systeem dat FE beschrijft, gaat, denk ik, uit van een redelijke verzadiging van de stator door de magneten, en/of een variabele reluctantie van de rotor, afhankelijk van de positie. Vrijwel alle systemen maken gebruik van nauwkeurige, breedbandige spanning- en stroommeet circuits met een zeer kleine faseverschuiving. Dit is niet bepaald goedkoop, zeker niet voor motoren van enig formaat. Bij hele kleine motoren is de kostprijs van de sensoren relatief veel groter, en wordt het bij zeer grote aantallen interessant om dergelijke dingen te ontwikkelen.

veel stroom heb je niet nodig hoor. een paar tiental milliampere is genoeg. je moet wel accuraat kunnen meten en zeer snel reageren. zoals ik al zei : je moet heel accurraat time to current limit kunnen meten. je moet een variatie van een paar 100 nanoseconden kunnen vangen met ene precisie van 10 nanoseconden.

Dat is dus haalbaar in een FPGA die op 100MHz (of meer) draait, maar niet op een 20MHz microcontroller (atmega of zo).

Je analoge deel dat de current-limit meet moet ook niet te traag zijn.... :-)

FE, kan ik dit algorithme al "in the wild" in harddisks waarnemen?

[Bericht gewijzigd door rew op (15%)]

De trapondersteuning sensor heb ik gemodificeerd tot een potmeter sturing i.c.m. gaspedaal. Nu kan ik dus met een gewone potmeter de motor aansturen. Als controller heb ik zo'n goedkoop gevalletje van 17 dollar wat je overal via internet kan bestellen. Dus ik kan me niet voorstellen dat daar een erg ingewikkelde stroommeting inzit. De opstelling werkt prima, en de motor heeft aardig wat koppel bij het optrekken.(naafmotor 350W)

Het voertuig komt overigens nooit op de openbare weg, dus daar hoef ik geen rekening mee te houden.

Nee, inderdaad, die goedkope controllers meten gewoon de nuldoorgang via de ongebruikte spoel. http://home.versanet.de/~b-konze/blc_18a/blc_18a.htm daar kan je de schemas vinden van dat soort controllers.

10ns is nog te halen met een controller (DSP) op 100MHz en ingebouwde of externe comparators met input capture hardware. Je kunt het natuurlijk ook andersom doen; na een bepaalde tijd (met hardware trigger) een analoog kanaal bemonsteren, en die data gebruiken om de inductie te bepalen. Het grootste probleem lijkt me hoe dan ook de bandbreedte van het stroommeet circuit; een tiental megahertz moet je toch wel halen, om dit te kunnen doen, en dat is niet eenvoudig of goedkoop.

Hoe lang het duurt, en dus wat de resolutie moet zijn, is natuurlijk erg afhankelijk van de eigenschappen van de motor, de aangelegde spanning, de maximale stroom, etc. Een klein motortje bedoelt voor een hoog toerental, zoals de spindle motor van een harddisk, zal een veel kleinere tijdconstante hebben dan een motor voor een elektrische fiets; bij de exemplaren met een vertraging draait de motor meestal zo'n 3000 toeren bij 25km/h, met 4 poolparen, en bij direct-drive motoren is de elektrische frequentie nog veel kleiner, en de tijdconstante daarmee waarschijnlijk ook veel groter.

[Bericht gewijzigd door SparkyGSX op (38%)]

Op 28 juni 2011 06:32:01 schreef rew:
FE, kan ik dit algorithme al "in the wild" in harddisks waarnemen?

ja. dat zit al bijna 2 jaar in the field. is een blok hardware die dat autonoom aankan. Er is nog een ander en beter systeem maar daar mag/kan ik niets over kwijt ...

Gaaf! Nou laat tzt dan maar weten wat het patentnummer geworden is, dan wil ik dat wel eens lezen. :-)

@FE: een beter systeem? Nou zit je me wel heel erg nieuwsgierig te maken... toch niet iets dat recentelijk door TI is gekocht? Die zijn met iets dergelijks bezig, hoorde ik.

Ik ben ook benieuwd wat dit mag zijn. Verdorie, ons eerst zo nieuwsgierig maken en dan niks lossen foei :-) :-D :+ >:-)

eh, sorry jongens... das onderhavig NDA en 'patent pending' ...