Hi leute, bin neu hier und habe trotz ausgiebigem Suchen noch keine Antwort auf meine Frage gefunden. Es geht um einen HDD Motor mit vier Anschlüssen, den ein Kumpel und ich ansteuern wollen. Mit einer festen Frequenz laufen lassen ist auch garkein Problem, aber sobald eine kleine Last oder Störung den Motor beeinflusst, läuft er nicht mehr synchron und bleibt stehen, logisch. Habe in mehreren Foren gelesen, dass man im Prinzip nur die Rotorstellung (oder Drehzahl) messen muss, was die originale HDD Steuerung mit der momentan unbenutzten Spule nach dem Hall-Sensor Prinzip macht. Nun zu meiner Frage: Wie Kann man das praktisch umsetzen? Die Hall-Spannung wird ja vergleichsweise gering sein und kaum Leistung haben, ich bräuchte einen kleinen Verstärker, oder? Allerdings darf der Verstärker nicht kaputt gehen, wenn die Wicklung gerade befeuert wird... Könnte man auch eine Lichtschranke an den Rotor Bauen, die pro 30° Drehung ein Signal gibt, oder ist die bei ein paar tausend Umdrehungen zu träge? (Wir wollen das Ganze mit einem RasberrryPi steuern, genug Ausgangsfrequenz hat er.) Viele Grüße Daniel :)
Daniel G. schrieb: > Wie Kann man das praktisch umsetzen? https://de.wikipedia.org/wiki/Vektorregelung > Die Hall-Spannung wird ja vergleichsweise gering sein und kaum Leistung > haben, ich bräuchte einen kleinen Verstärker, oder? nein, weil man sie mit einen µC erfasst. > Allerdings darf der > Verstärker nicht kaputt gehen, wenn die Wicklung gerade befeuert wird... die HallSpannung hat doch nicht mit der eigentlich Wicklung zu tun - oder hast du gar keine Hallsensoren? > Könnte man auch eine Lichtschranke an den Rotor Bauen, die pro 30° > Drehung ein Signal gibt, oder ist die bei ein paar tausend Umdrehungen > zu träge? kommt auf die Drehzahl an, wenn er langsam drehen soll muss man genau wissen wo er steht, das reicht eine Lichtschranke nicht aus. > (Wir wollen das Ganze mit einem RasberrryPi steuern, genug > Ausgangsfrequenz hat er.) ja, aber ist er auch echtzeitfähig? Für so etwas nimmt man einen extra Controller der ein exaktes Timing hat.
Hallo und Danke erstmal für die schnelle Antwort! zu dem Hall-Sensor: Nein, der Motor besteht aus 3 Wicklungen, die als Sternschaltung Zusammengebaut sind (daher auch nur 4 Anschlüsse). Mit einem externen Hall-Sensor Wäre es ja nicht soooo schwer. Was ich bisher gelesen habe ist, dass in dem Moment, in dem eine Spule befeuert wird, um den Rotor zu drehen, eine der anderen Spulen als Hall-Sensor benutzt wird, also die vom Rotor zurückinduzierte Sannung ausgelesen wird. Was meinst du mit 'langsamen' Drehzahlen, für die die Lichtschranke zu ungenau wäre? Hatte jetztz eher gedacht, dass der Motor zu schnell wird (allerdings misst die ja mit Lichtgeschwindigkeit)... ich rede von Drehzahlen zwischen 5 und 20 k rpm. Viele Grüße Daniel
Daniel G. schrieb: > Was ich bisher gelesen habe ist, dass in dem Moment, in dem eine Spule > befeuert wird, um den Rotor zu drehen, eine der anderen Spulen als > Hall-Sensor benutzt wird, also die vom Rotor zurückinduzierte Sannung > ausgelesen wird. das ist dann aber kein Hall-Sensor sondern man misst die Induktionsspannung. > Was meinst du mit 'langsamen' Drehzahlen, für die die Lichtschranke zu > ungenau wäre? Hatte jetztz eher gedacht, dass der Motor zu schnell wird > (allerdings misst die ja mit Lichtgeschwindigkeit)... ich rede von > Drehzahlen zwischen 5 und 20 k rpm. wenn sich der Motor langsam drehen soll, dann muss auch genau wissen in welchen Winkel er steht und das kann die Lichtschranke nicht wissen. Wenn er sich schnell dreht kann man einfacher über die Drehzahl und die vergangene Zeit ermitteln wo er stehen müsste. Ja Langsamer er dreht desto größer die Ungenauigkeit. Du sucht also eine Sensorlose Ansteuerung https://www.mikrocontroller.net/articles/Sensorlose_BLDC_Ansteuerung ob man das unter Linux mit einem Rapi zu laufen bringe - keine Ahnung.
Daniel G. schrieb: > Mit einem externen > Hall-Sensor Wäre es ja nicht soooo schwer. Also hat der Motor keinen Hall Sensor!? Daniel G. schrieb: > eine der anderen Spulen als > Hall-Sensor benutzt wird, also die vom Rotor zurückinduzierte Sannung > ausgelesen wird. Das ist kein Hall Sensor....nicht mal annähernd Was du meinst ist die BEMF Deine Fragen sind einfach mit Google beantwortet. Stichworte: BLDC, Blockkommutierung, BEMF, Trapezkommutierung, Brushless DC
Dann habe ich was falsch verstanden, was ist denn der unterschied zwischen einer Spule die Induktion von vorbeifliegenden Magneten misst und einem Hall-Sensor ? Die Lichtschranke würde ich mir so vorstellen, dass um den Rotor herum 12 schwarze Striche aufgebracht werden, und LED und Sensor übereinander liegen. So kann die Lichtschranke immerhin 30° Drehung Melden (Bei mehr Strichen auch genauer). Der PI an sich ist echtzeitfähig, wir experimentieren mit Python. Hab gelesen, dass das Betriebssystem möglicherweise zu langsam ist, dann können wir es aber im Assembler schreiben (habe selber nicht so viel Ahnung vom Programmieren).
>dann >können wir es aber im Assembler schreiben Nö könnt ihr nicht.
Daniel G. schrieb: > Der PI an sich ist echtzeitfähig, wir experimentieren mit Python. Hab > gelesen, dass das Betriebssystem möglicherweise zu langsam ist, dann > können wir es aber im Assembler schreiben (habe selber nicht so viel > Ahnung vom Programmieren). so lange ihr das Linux darunter verwendet ist es fast egal ob Python oder ASM. Wenn Linux gerade etwas andere tun will - dann läuft eure Regelung nicht,. Rechne doch mal aus, wie viel Zeit ihr bei 15k Umdrehung für die Berechnung und einlesen vom ADC habt. Dazu kommt noch das der PI gar keinen ADC hat.
Peter II schrieb: > Rechne doch mal aus, wie viel Zeit ihr bei 15k Umdrehung für die > Berechnung und einlesen vom ADC habt. Dazu kommt noch das der PI gar > keinen ADC hat. Ach, der wird über I2C drangefummelt und per Linux-Bitbang Script aufm GPIO ausgelesen. Und wenn die Regelung nur 10% Prozessorzeit bekommt holt man sich nen Dualcore und setzt die Thread-Prio auf den höchstmöglichen Wert. Nee jetzt mal im Ernst: Besorgt euch nen Mikrocontroller, mindestens ein Multimeter, mindestens ein 2-Kanal Oszilloskop und fangt an den Ist-Zustand zu verstehen. Dass der Motor bei Last stehenbleibt ist klar, das ist ne Synchronmaschine und sobald der maximale Lastwinkel überschritten ist, schlupft die nur noch und juckelt sich höchstens nochmal in Tritt. Tipp: Strobo-LED draufhalten und ansehen. Ist bei nem 1kW Motor beeindruckend, auch von der Lautstärke her.
Daniel G. schrieb: > Die Hall-Spannung wird ja vergleichsweise gering sein und kaum Leistung > haben, ich bräuchte einen kleinen Verstärker, oder? Allerdings darf der > Verstärker nicht kaputt gehen, wenn die Wicklung gerade befeuert wird... Es ist keine Hall-Spannung. Wenn der Motor Hall-Sensoren hätte, hätte er ordentlich geschaltete digitale Signale. Wenn man die dritte Wicklung auswertet, ist der Motor eben ohne Hall Sensoren sensorless, und die EMK Spannung der dritten Wicklung ist bei kleinen Drehzahlen eher klein, so daß man kleine Spannungen erkenne muss, die man nicht unbedingt verstärken muss, aber in einem empfindlichen Komparator steckt. Nachteil: Hat man keine Hallsensoren (oder Lichtschranken) läuft der Motor nur an, wenn er im Leerlauf ist (Propeller, Plattenstapel, Fräser/Bohrer) und nicht unter Last (Radantrieb), weil man ihn zuerst mit einem Impuls auf eine zufällige Spule bewegen muss, um dann irgendwann zu erkennen in welche Richtung er sich drehte. Und wenn die Richting falsch war, muss man es nochmal probieren, bevor man anhand des Komparatorausgangs "Gas geben" kann. Die übliche Literatur http://www.gaw.ru/pdf/Atmel/app/avr/AVR444.pdf > Könnte man auch eine Lichtschranke an den Rotor Bauen, die pro 30° > Drehung ein Signal gibt Ja. Am einfachsten 3 Lichtschranken. Dann braucht man gar keinen uC oder Spezialchip sondern kann die 3 Halbbrücken direkt mit den Lichtschrankensignalen steuern, die Drehzahl ergibt sich aus der Versorgungsspannung. Schliesslich ist ein BLDC nichts anderes als ein Gleichstrommmotor, nur daß der Kollektor eben ein elektronischer Umschalter ist. Und beim Gleichstrommmotor sind die Kupferflächen und Kohlebürsten des Kollektors auch fest montiert ohne Zauereri. > (Wir wollen das Ganze mit einem RasberrryPi steuern, genug > Ausgangsfrequenz hat er.) Nun ja, für Vektorregelung (wie von Peter II empfohlen) nicht. Lies halt was: http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.10.1
Alles klar, vielen Dank! Das mit den Lichtschranken war der entscheidende Tipp.
Michael B. schrieb: > Ja. Am einfachsten 3 Lichtschranken. Dann braucht man gar keinen uC oder > Spezialchip sondern kann die 3 Halbbrücken direkt mit den > Lichtschrankensignalen steuern, die Drehzahl ergibt sich aus der > Versorgungsspannung. Schliesslich ist ein BLDC nichts anderes als ein > Gleichstrommmotor, nur daß der Kollektor eben ein elektronischer > Umschalter ist. Und beim Gleichstrommmotor sind die Kupferflächen und > Kohlebürsten des Kollektors auch fest montiert ohne Zauereri. ist dann aber nicht nur immer eine Spule unter Strom? Laufen wird das bestimmt irgendwie, aber bestimmt nicht optimal.
>Das mit den Lichtschranken war der entscheidende Tipp.
Glaubst du.
Peter II schrieb: > ist dann aber nicht nur immer eine Spule unter Strom? Nö. Kann (und wird man klugerweise) von den Umschaltstellen her genau so bauen wie einen bürstenbehafteten Gleichstrommotor.
Die drei Stränge können insgesamt 6 Zustände (Sektoren) einnehmen. Wenn man sich mit der sensorlosen Ansteuerung (die die Festplattenbauer natürlich nehmen, weils billiger ist) nicht einlassen will, nimmt man am besten 3 (Reflex-) Lichtschranken, die man so auf Muster richtet, die aussehen wie im AVR447 Diagramm: http://www.atmel.com/images/doc8010.pdf
:
Bearbeitet durch User
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.