Forum: Mikrocontroller und Digitale Elektronik drehfeld erzeugen mit mikrocontroller


von Tobias P. (hubertus)


Lesenswert?

was ich diesmal vorhabe:
ich habe einen kleinen drehstrommotor, in dreieckschaltung.
der ist für 24V ausgelegt. nun möchte ich den mit meinem 
mikrocontrollerboard ansteuern. (sowas ähnliches hatte ich schon mal 
vor, aber das war ein etwas anderer motor).
nun: ich habe dazu 6 FET genommen. 3 zwischen den motoranschlüssen, die 
ich als R S und T bezeichne, und 3 FET zwischen R, S und T nach masse. 
so kann ich jeden einzelnen anschluss des motors auf +24V oder 0V 
schalten (oder auch abgeschaltet lassen, keine spannung.)
das klappt mehr oder weniger, aber:
der motor soll angeblich - laut herstellerangaben - bis 30000 U/min 
laufen. so eine hohe frequenz kriege ich mit meinem uC locker hin, aber 
der motor scheint irgendwie nicht mitzuspielen? ich drehe die frequenz 
langsam mit einem poti hoch, und da sollte der motor doch mitkommen. 
aber das tut er nicht: irgendwann verliert er schritte, bis er stehen 
bleibt - und brummen tut er auch ganz entsetzlich. ich weiss dass der 
motor noch funktioniert, an dem kanns also nicht liegen. auch die 
FET-ansteuerung scheint mir einwandfrei:
über UDN2981A werden jeweils ca. +12V an die gates der FET geschaltet; 
per pulldown-widerstand wird für eindeutigen low-pegel gesorgt.
nun muss ich leider zugeben: mittlerweile bin ich mit meinem latein am 
ende. wie muss man den motor ansteuern, damit es klappt? was ich bis 
jetzt getan habe:

R  S  T
Z  -  +
+  -  Z
+  Z  -
Z  +  -
-  +  Z
-  Z  +

in der reihenfolge habe ich die anschlüsse des motors mit den jeweils 
angegebenen pegeln beschaltet. Z bedeutet hochohmig ;)

warum klappts nicht?

grüsse

von DiScha (Gast)


Lesenswert?

Hallo.
Kann Dir zwar jetzt nich bei der Lösung des Problems helfen, mich würde 
aber der Motor interessieren. Kannst Du Hersteller und Typ nennen?
Danke und Gruß
Dieter

von Otto (Gast)


Lesenswert?

Hallo Tobias,

hast Du Deine Drehfelderzeugung mal hiermit verglichen:

http://www.elektronik-kompendium.de/sites/grd/1006061.htm

Gruss Otto

von Tobias P. (hubertus)


Lesenswert?

@DiScha:
der motor ist ein
MAXON MOTOR
EC-MAX oder so was, das typenschild ist nicht mehr so gut lesbar, da ich 
den aus meiner firma mitgenommen hab... ein älteres modell schon.
integriert sind hallsensoren und alles was man braucht, auch die 
elektronik kann optional im motor eingebaut werden ;) genauen typ kann 
ich dir nicht nennen, aber schau auf maxonmotor.ch im onlinekatalog 
unter EC-Motor. dort sind sie alle ;)

@otto:
ich weiss, eigentlich müsste ich für das drehfeld 3 um 120° 
phasenverschobene sinusse (sinen? sini?) nehmen, aber da die mit dem uC 
nicht so gut zu erzeugen sind, lass' ichs lieber, zumal der motor sich 
lt. herstellerangaben auch für "blockkommutierung" eignet - also 
rechteckspannungen.

von Otto (Gast)


Lesenswert?

Hallo Tobias,

Du könntest die Sinuswellen durch PWM nachbilden....

Otto

von Jörn P. (jonnyp)


Lesenswert?

IMHO erzeugst du kein rotierendes Feld nach deiner Tabelle. Es kann dann 
nicht 2x dasselbe Signal auf dem gleichen pin geben.

von tastendrücker (Gast)


Lesenswert?

> IMHO erzeugst du kein rotierendes Feld nach deiner Tabelle. Es kann dann
> nicht 2x dasselbe Signal auf dem gleichen pin geben.

Genau, 'ne Rotation sieht doch eher so aus:

R  S  T
Z  -  +
-  +  Z
+  Z  -
Z  -  +
-  +  Z
+  Z  -

von Tobias P. (hubertus)


Lesenswert?

@tastendrücker:
danke, ich versuch das heute abend mal nach deinem verfahren.
ich meld' mich dann wieder ;) bin gespannt, obs klappt.
bis später,
schönen tag!

grüsse

von etsmart (Gast)


Lesenswert?

http://de.wikipedia.org/wiki/Vektorregelung
oder halt nach dem Stichwort googlen. Erklärung hab ich auf die Schnelle 
nicht gefunden.
Mit dem bekommst du auch leichtgängige Antriebe zum drehen.
Wollt ich auch schon mal ausprobieren, mir fehlt aber der 
Winzig-Asynchronmotor. Ich hab mir da was aus ne Dose gebaut, aber das 
hat ... wie erwartet ... nicht richtig funktioniert
(Prinzip Dose klappt aber ... schon ausprobiert früher im Studium, um 
die Schüler bei Infotagen zu beeindrucken).

von etsmart (Gast)


Lesenswert?


von auch was sager (Gast)


Lesenswert?

raumzeiger is auch noch nen stichwort bei dem man mit ergebnissen 
überhäuft wird. außerdem wäre zwischentakten auch ne überlegung

von johnny.m (Gast)


Lesenswert?

@etsmart:
Es handelt sich hier so wie ich das verstehe um einen EC-Motor, also 
eine "permanenterregte Synchronmaschine", je nach Bauform auch als 
"bürstenloser Gleichstrommotor" bezeichnet! Mit Asynchron-Motoren und 
Steuerverfahren für diese kann man da net viel anfangen...

von johnny.m (Gast)


Lesenswert?

@Tobias:
BTW:
Für EC- bzw. BLDC-Motoren gibts nen ganzen Haufen Appnotes (Auch von 
ATMEL, speziell natürlich für die AT90PWMx-µCs). Wenn Du nicht was von 
einem Drehstrommotor erzählt hättest, dann hätten nicht so viele am 
Thema vorbeigeschrieben. "EC" bedeutet "Electronically Commutated", also 
"elektronisch kommutiert", es handelt sich dabei im Prinzip wie oben 
angedeutet um eine permanenterregte Synchronmaschine, die für eine 
elektronische Ansteuerung ausgelegt und i.d.R. auch mit den (von Dir 
immerhin erwähnten) Sensoren zur Erfassung der Rotorposition 
ausgestattet ist. Die Dinger werden eben von vielen Firmen unter der 
Bezeichnung EC-Motor verkauft, andere verkaufen sie eben als BLDC 
(brushless DC)-Motoren...

von Tobias P. (hubertus)


Lesenswert?

@johnny:
ja schon; aber worin besteht der unterschied?
der motor hat genauso wie ein drehstrommotor 3 anschlüsse.
die spulen sind im dreieck verschaltet...
das sind ja schon ein paar  ähnlichkeiten.
warum ist dann die ansteuerung nicht gleich?

von Oschi (Gast)


Lesenswert?

Ein Dreiphasenmotor mit 3 Rechtecken anzusteuern ist sowieso Murks.

O.

von ArminD (Gast)


Lesenswert?

Hallo,

der BLDC-Motor wird nicht so einfach einem aufgezwungenen Drehfeld 
folgen.

Man muss in Abhängigkeit der Rotorposition die entsprechenden
Treiber ansteuern. Die Rotorposition bekommt man bei dieser Art von
Motor über die digitalen Hall-Sensoren mit einer Auflösung von normaler-
weise 60 Grad elektrisch.

Blockkommutierung bedeutet die Ansteuerung der jeweiligen Phase
60 Grad nach dem Nulldurchgang für 120 Grad so dass in einer 
elektrischen
Periode jede Phase 120 Grad aktiv ist.

Für eine Implementierung muss man wissen wie die Hall-Sensoren 
positioniert sind und welche Phasenlage deren Signale relativ zum 
Motorlauf haben. Das sollte man jedoch aus dem Datenblatt erfahren und 
ist meistens immer genau in diesem 60 Grad-Punkt, so dass man die Flanke 
des digitalen Hall-Signals zur Ansteuerung der Treiber verwenden kann.


@Oschi:
Was heisst hier Murks ? Der Wirkungsgrad und die Geräuschentwicklung
sind sicher bei Sinusansteuerung besser, aber bei vielen Applikationen
reicht diese Art der Ansteuerung völlig aus und vereinfacht die Endstufe
bzw. deren Ansteuerung erheblich. Blockkommutierung ist ein gängiges
Verfahren.



Gruss,
Armin

von johnny.m (Gast)


Lesenswert?

Es geht einerseits darum, dass einige Antworter sich hier auf die 
Ansteuerung von asynchron-Motoren bezogen haben. Und da gibt es schon 
ziemliche Unterschiede, da EC-Motoren nunmal synchron laufen. 
Andererseits gibt es wie gesagt reichlich Dokumentation und Appnotes zur 
Ansteuerung von BLDC-Motoren. Man muss da wirklich nicht das Rad neu 
erfinden. Hinzu kommt, dass bei der elektronisch kommutierten 
Synchronmaschine die Positionserfassung des Rotors wichtig ist, weil das 
Ding sonst außer tritt gerät.

von johnny.m (Gast)


Lesenswert?

OK, da hat Armin mir dann ausführlich vorgegriffen...

von johnny.m (Gast)


Lesenswert?

BTW:
"synchron" bedeutet, dass der Rotor synchron mit dem Drehfeld des 
Stators umläuft, also mit der selben Winkelgeschwindigkeit. Bei einer 
Synchronmaschine gibt es keinen permanenten Schlupf wie bei der 
Asynchronmaschine. Wenn der Polradwinkel (vereinfacht gesagt der Winkel 
zwischen Rotor- und Statorfeld) der Synchronmaschine zu groß wird, dann 
gerät sie außer Tritt und zuckt nur noch. Bei der Asynchronmaschine ist 
das völlig anders, da es da einen drehmomentabhängigen Schlupf gibt und 
der Rotor (außer im idealen Leerlauf, den es in der Realität aber nicht 
gibt) langsamer läuft als das Statorfeld. Ein vierpoliger Synchronmotor 
an z.B. an 50 Hz läuft, solange er nicht außer tritt gerät, immer mit 
1500 U/min. Ein entsprechender vierpoliger Asynchronmotor hat nur im 
Leerlauf annähernd die 1500 U/min, bei Belastung geht die Drehzahl 
runter.

Außerdem kann ein Synchronmotor an einer Spannung mit fester Frequenz 
nicht anlaufen. Die Frequenz muss von Null an langsam hochgefahren 
werden. Das ist ebenfalls ein Unterschied zum Asynchronmotor, der auch 
an festen 50 Hz mit dabei abnehmendem Schlupf selbständig anläuft.

von jack (Gast)


Lesenswert?

Ein sehr guter Einstieg in die Technik der BL-Motoren:

http://www.aerodesign.de/peter/2001/LRK350/index.html

von jack (Gast)


Lesenswert?

Und hier noch ein Selbstbau (Controller mit ATmega16):

http://www.jetcontrol.de/Bastelstube/bastelstube.html

von Tobias P. (hubertus)


Lesenswert?

danke für eure zahlreiche hilfe.
mit rechtecken den motor anzusteuern kann ich also vergessen?

mindestens ein nachteil davon ist, dass der motor extrem brummt (oder 
pfeift, je nach frequenz).

von Jack B. (jackbraun)


Lesenswert?

>mit rechtecken den motor anzusteuern kann ich also vergessen?

Das nicht, aber das entscheidende ist eben die Rückkopplung: Du mußt
die Stellung des Rotors auslesen. Schau Dir den ersten Link genau an.

von Jack B. (jackbraun)


Lesenswert?


von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

Also,
Du kannst den EC-Motor mit Rechteck ansteuern, aber Du solltest den 
Strom durch PWM regeln.
Nur über den Strom regelst Du die Drehzahl. Das Drehfeld wird durch die 
Stellung der Hallsensoren erzeugt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.