Forum: Mikrocontroller und Digitale Elektronik Brushless Controller mit Absolutwert-Encoder Input


von User N. (panzerkeks) Benutzerseite


Lesenswert?

Hi,

Ich möchte einen relativ großen Brushless-Innenläufer (7A Nennstrom, 
48V) direkt aus dem Stillstand so präzise wie möglich anfahren können.
Es müssen also unbedingt Sensoren her (Sensorless kann ich das 
vergessen). Hall-Sensoren sind mir zu ungenau, da man da meist nur 3 
verwendet. Viele Controller unterstützen Encoder (zB Optische) - aber 
dann muss eine Referenzfahrt durchgeführt werden (oder? Speichern der 
Position nach der Referenzfahrt ist sinnlos, weil sich der Motor auch 
ausgeschaltet bewegen kann)

Ich möchte einen Encoder verwenden, der Absolutwerte ausgibt. Ob digital 
mit Hallencoder oder analog mit durchdrehendem Poti oder so ist mir 
egal, es muss auch nur ca 2000 rpm (max) aushalten.

Kennt jemand einen Brushless-Controller, der quasi eine Art Winkel-Input 
hat?

viele Grüße
peka

von Achim M. (minifloat)


Lesenswert?

Zens Uhr schrieb:
> aber
> dann muss eine Referenzfahrt durchgeführt werden (oder? Speichern der
> Position nach der Referenzfahrt ist sinnlos, weil sich der Motor auch
> ausgeschaltet bewegen kann)

Zuerst alle 3 Spulen nacheinander mit geringem Strom einzeln 
dauerbesaften, dass die Umkehrpunkte und Phasenfolge erfasst werden 
können.

Wenn du einen Absolutwertencoder da hast, kann dann diese Referenz für 
immer gespeichert bleiben.

Ansonsten kann nur die Phasenfolge und der relative Winkel der 
Umkehrpunkte zueinander gespeichert werden. Da muss beim Anlaufen(per 
PWM zuerst den Strom auf eine Phase vorsichtig erhöhen) einer der 
Umkehrpunkte eingemessen werden, die anderen wurden ja relativ dazu 
errechnet. Die Werte gelten dann für diesen Betriebszyklus.

Zens Uhr schrieb:
> Es müssen also unbedingt Sensoren her (Sensorless kann ich das
> vergessen). Hall-Sensoren sind mir zu ungenau, da man da meist nur 3
> verwendet. Viele Controller unterstützen Encoder (zB Optische)

Schon mal an Resolver gedacht? Könnte von der Genauigkeit bei extrem 
langsamen Geschwindigkeiten und durch die begrenzte Frequenzauflösung 
von AD-Wandlern bei extrem schnellen Geschwindigkeiten Probleme ergeben, 
ist aber an sich ein gern genommener Absolutgeber.

Die hier
http://www.mikrokopter.de/ucwiki/BrushlessCtrl
haben in quelloffener Bauweise einen ansehnlichen sensorless 
Bürstenlosregler für Modellbau entwickelt. Vielleicht kannst du dir da 
was abschauen.

mfg mf

von Lehrmann M. (ubimbo)


Lesenswert?

Zens Uhr schrieb:
> Ich möchte einen relativ großen Brushless-Innenläufer (7A Nennstrom,
> 48V)

groß?

Zens Uhr schrieb:
> direkt aus dem Stillstand so präzise wie möglich anfahren können.

Das ist eine ziemlich schwere Aufgabe. Für präzises Anfahren nimmt man 
normalerweise Schrittmotoren und fährt die mit einer Rampe an.

Zens Uhr schrieb:
> Es müssen also unbedingt Sensoren her (Sensorless kann ich das
> vergessen).

Da kann ich zustimmen. Obwohl ich die Motorwahl bezweifle. Wofür 
brauchst du's denn genau?

Zens Uhr schrieb:
> Hall-Sensoren sind mir zu ungenau, da man da meist nur 3
> verwendet.

Auch das ist richtig.

Zens Uhr schrieb:
> Viele Controller unterstützen Encoder (zB Optische) - aber
> dann muss eine Referenzfahrt durchgeführt werden (oder? Speichern der
> Position nach der Referenzfahrt ist sinnlos, weil sich der Motor auch
> ausgeschaltet bewegen kann)

Nein - es gibt Absolutwertgeber. Die geben den Winkel absolut an und 
benötigen keine Referenz.

Zens Uhr schrieb:
> Ob digital
> mit Hallencoder oder analog mit durchdrehendem Poti oder so ist mir
> egal, es muss auch nur ca 2000 rpm (max) aushalten.

Schau mal bei Heidenhain die arbeiten qualitativ auf sehr hochwertigem 
Niveau. Da findet sich sicherlich was für 2000U/min.

Zens Uhr schrieb:
> Kennt jemand einen Brushless-Controller, der quasi eine Art Winkel-Input
> hat?

Mir wäre weder ein solche Controller bekannt, noch würde ich BLDCs 
kennen die einen solchen Encoder dabeihaben. Also selbst machen.

Die Sache ist halt die: Falscher Motor. Für Positionierungsaufgaben ist 
ein BLDC schlicht und ergreifend falsch gewählt. Es gibt sowas einfach 
nicht weil es niemand braucht.

von User N. (panzerkeks) Benutzerseite


Lesenswert?

Hi,

danke für die schnelle Antwort!

> groß?
Ich hatte bisher eher mit Brushless Motoren für Modell-Segelflugzeuge zu 
tun. Ja, ich finde ihn groß ;)

> Das ist eine ziemlich schwere Aufgabe. Für präzises Anfahren nimmt man
> normalerweise Schrittmotoren und fährt die mit einer Rampe an.

Ein Schrittmotor wäre eine schöne Option, aber einer mit dem Drehmoment 
was ich brauche (so 2-3 Nm und so leicht wie möglich) wiegt entweder 100 
kg oder will 430V Wechselspannung...

> Da kann ich zustimmen. Obwohl ich die Motorwahl bezweifle. Wofür
> brauchst du's denn genau?

Mal so ganz grob: Der Motor dreht eine Gewindestange, an der ein 
Schlitten ist, an dem Federn angebracht sind, an denen über Seile oder 
Ketten und Umlenkrollen Dinge gedreht werden... Die Federn müssen am 
Ende recht dynamisch ihre Position ändern können, auch unter hoher Last 
(möglicherweise bis 4kN)

> Nein - es gibt Absolutwertgeber. Die geben den Winkel absolut an und
> benötigen keine Referenz.
> Schau mal bei Heidenhain die arbeiten qualitativ auf sehr hochwertigem
> Niveau. Da findet sich sicherlich was für 2000U/min.

Ich hab an anderer Stelle auch einen Hall-Encoder mit 12 Bit Auflösung. 
(Allerdings SPI-ausgelesen, weiss nicht ob das praktikabel für so einen 
Controller ist)


> Mir wäre weder ein solche Controller bekannt, noch würde ich BLDCs
> kennen die einen solchen Encoder dabeihaben. Also selbst machen.

Daran hab ich auch schon gedacht. Aber das ist zeitaufwändig und ein 
bisschen viel Arbeit, lieber nehme ich was fertiges, was dann auch 
sicher und auf Anhieb funktioniert.

> Die Sache ist halt die: Falscher Motor. Für Positionierungsaufgaben ist
> ein BLDC schlicht und ergreifend falsch gewählt. Es gibt sowas einfach
> nicht weil es niemand braucht.

Das Gefühl hatte ich auch schon :/

vg

von Achim M. (minifloat)


Lesenswert?

Lehrmann Michael schrieb:
> Die Sache ist halt die: Falscher Motor.

Wie wärs mit einer Asynchronmaschine und anderem Wegaufnehmer(soll 
vermutlich eine Regelung werden, da oben ist die Rede von "dynamisch")?

mfg mf

von User N. (panzerkeks) Benutzerseite


Lesenswert?

Oh, hab grad erst die erste Antwort gesehen gehabt, sorry!

Ja, wird eine Regelung.

Wie funktioniert so ein Resolver? Ich hab das Prinzip noch nicht so ganz 
verstanden... ich dachte, das ist wie ein Induktiver inkrementaler 
Encoder. Wie sind da die Werte absolut?

vg

von User N. (panzerkeks) Benutzerseite


Lesenswert?

Okay, der Tipp mit dem Resolver war gut!
http://www.uni-protokolle.de/Lexikon/Resolver_(Winkelgeber).html

Diese Controller hier können auch Resolver als Feedback benutzen
http://www.elmomc.com/products/dc-whistle-servo-drive.htm
sind wahrscheinlich arschteuer ^^

Motoren werde ich trotzdem mal weiterhin die Augen aufhalten, mir ist 
schon klar, dass es Motoren gibt, die für solche Aufgaben unter 
Umständen besser geeignet sind...

Danke für die Hilfe :)

von Klaus (Gast)


Lesenswert?

Zens Uhr schrieb:
> Hall-Sensoren sind mir zu ungenau, da man da meist nur 3
> verwendet.

Das hängt von den verwendeten Hall-Sensoren ab. Hall-Sensoren sind 
eigentlich linear, selbst mit 2 Sensoren kann man den Winkel genau 
bestimmen, mit 3 auf jeden Fall. Häufig werden aber Sensoren verwendet, 
die schon eine Signalaufbereitung eingebaut haben, und nur einen 
digitalen Ausgang haben. Wenn in deinem Motor analoge Sensoren drin 
sind, mußt du nur die Hall-Spannungen messen und kannst den Winkel 
errechnen.

MfG Klaus

von Martin (Gast)


Lesenswert?

Ich verstehe den Zweck noch nicht ganz. Du schreibst:

> Hall-Sensoren sind mir zu ungenau

Die BL-Motoren die ich kenn haben einen mehr oder weniger großen 
Rastmoment. Desegen wird es meiner Meinung nach schwierig den Motor z.B. 
auf Grad oder sogar 5° genau zu positionieren, oder ist das bei dir 
garnicht notwendig?

> Der Motor dreht eine Gewindestange, an der ein Schlitten ist

Bringt es dich wirklich weiter, wenn du den Winkel kennst? Du kennst 
dann ja trotzdem nicht die Position des Schlittens. Könntest du evtl. 
den Schlitten mit einem Linearpoti verbinden oder irgendwie anders die 
Position den Schlittens ermitteln? Der Winkel des Motors kann dir dann 
egal sein.

von Steffen W. (derwarze)


Lesenswert?

Zun Ansteuern eines BLDC Motors sind 3 Hallsensoren ausreichend, alles 
andere ist Overkill. Präzise Positionierungen im Gradbereich sind mit 
einem solchen ohnehin nicht machbar. Wie schon gesagt - Schrittmotor 
wäre die richtige Wahl, die gibt es auch für große Drehmomente.
Am genauesten lässt sich die Magnetposition (und nur dafür sind die 
Sensoren im BLDC da) mit einer Induktivitätsmessung über die Wicklungen 
erfassen (VirtuHall). Mit diesem Verfahren sind auch sehr langsame 
Drehungen auch nur um nur 20 Grad möglich (Hängt vom Motor ab, nicht 
jeder kann das, je mehr Pole um so kleiner der mögliche Winkel) aber 
nicht nit der vollen Leistung.

von User N. (panzerkeks) Benutzerseite


Lesenswert?

Okay das klingt ja jetzt alles nicht so berauschend...

Der Motor, den ich in Betracht ziehe ist ein RoboDrive 70x18 ( 
http://www.robodrive.de/baureihe70/ )

Als Controller einen Elmo DC Whistle ( 
http://www.elmomc.com/products/dc-whistle-servo-drive.htm )

Tatsächlich wird genau diese Kombination auch in Systemen wie Lola ( 
http://www.amm.mw.tum.de/index.php?id=183 ) verwendet.


Könnt ihr mir (Schritt-)Motoren vorschlagen, die ein ähnliches 
Drehmoment bekommen, bei einem ähnlichem Gewicht und Gleichspannung?

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.