Forum: Mikrocontroller und Digitale Elektronik festplatten motor zum drehen bringen


von Daniel (Gast)


Lesenswert?

Hallo Forum,

ich hab ein ausgebauten Festplattenmotor mit 4 Anschlüssen.
durch googlen hab ich rausgefunden, dass es kein Schrittmotor ist
(die Platte ist nicht uralt)
Es stehen keine aufgedruckten Buchstaben auf dem Gehäuse,
noch irgendwelche Angaben zur internen Verschaltung der 4 
Anschlussbeinchen.
Falls jemand das Bild sehen will, kann ich Foto machen.
Weiss jemand wie ich den Motor anschliesse?
Es kommt mir erstmal nur darauf an es zum Laufen zu bringen,
Die genau Umdrehungszahl ist mir erstmal unwichtig.

Kennt jemand eine einfache Schaltung zum Ansteuern?

Gruss, Daniel

von Benedikt K. (benedikt)


Lesenswert?

Das ist ein BLDC Motor. Unter diesem Begriff solltest du bei google 
einiges finden.
Einfach wird es aber nicht, meist besteht solch eine Ansteuerung aus 
einem µC + Endstufe.

von Chrisi (Gast)


Lesenswert?

Aus CDROM-Laufwerken kenne ich den Aufbau so, dass da neben dem Motor 
noch Hall-Sensoren auf der PCB sitzen, die das Motortiming einfach 
vorgeben, quasi wie die Kommutierung über Schleifring. Wenn diese 
Sensoren verwendet werden, geht die Ansteuerung sehr viel einfacher.

Ohne Sensoren ist's die ganz hohe Mikrocontroller-Schule. z.B.:

http://ww1.microchip.com/downloads/en/AppNotes/01083a.pdf

von Bri (Gast)


Lesenswert?

Nur mal so am Rande gefragt, wieviel Leistung kann man eigentlich aus so 
einem Festplattenmotor rausholen? Weiß das zufälligerweise jemand?

von Gast (Gast)


Lesenswert?

Nebenbei: so ein Motor wär sicher interessant für ein 
Propeller-Display... :-)

von Philipp B. (philipp_burch)


Lesenswert?

Mechanische oder thermische Leistung?

von Bri (Gast)


Lesenswert?

Wenn möglich elektrische und mechanische.

von Bri (Gast)


Lesenswert?

(Das elektrisch bezieht sich natürlich auf das, was der Motor aufnimmt.)

von Realplotter (Gast)


Lesenswert?

Zur Leistung. Die elektrische Leistung ist auf der Platte angegeben. Ein 
paar Watt. Der Wirkungsgrad ist hoch >80% wuerd ich sagen.

von Philipp B. (philipp_burch)


Lesenswert?

Mechanische Energie ist da nicht viel rauszuholen, das dürfte sich 
irgendwo im unteren einstelligen Watt-Bereich bewegen, normalerweise 
wird damit ja auch nicht wirklich eine "Last" angetrieben. Jedenfalls 
hat bei uns im Geschäft mal einer der Ober-Bastler so einen in Betrieb 
genommen und das Ergebnis war vor Allem eine Heizung (Sowohl der Motor, 
wie auch der Treiber).

Alle Angaben ohne Gewähr.

@Realplotter:

Ob der Wirkungsgrad wirklich so hoch ist, wage ich zu bezweifeln. Das 
Zeug wird ja doch ordentlich warm. Und bei 12V, 1A hast du 12W 
Eingangsleistung, ich könnte mir gut vorstellen, dass gut die Hälfte 
schon in den Motortreibern verheizt wird.
Vielleicht unterschätze ich auch die Hersteller ;)

von Dieter Werner (Gast)


Lesenswert?

Da kommen ausser BLDC wohl auch Synchronmotoren (Drehstrommotor mit 
Magnetläufer) zum Einsatz.

von Realschotter (Gast)


Lesenswert?

Ein BLDC und ein Synchronmotor mit Magnetlaeufer sind dasselbe. Die 
Namensgebung ist etwas verwirrend.

von Daniel (Gast)


Lesenswert?

>Ein BLDC und ein Synchronmotor mit Magnetlaeufer sind dasselbe. Die
>Namensgebung ist etwas verwirrend.

den Eindruck hab ich auch
DC ist doch totaler Schwachsinn, da ist doch nix DC

von Realschotter (Gast)


Lesenswert?

Naja, es gibt Synchonmotoren mit Magnetlaeufer, bei denen ist der 
Controller Teil des Motors, die laufen daher ab DC. Werden daher 
buerstenlose DC Motoren genannt.

von Daniel (Gast)


Lesenswert?

vielleicht ketzerische Frage .. warum braucht man denn mc unbedingt?
Wieso nicht einfach 3 gegeneinander um 120° verschobene
sinusspanungen benutzen?
Die Motorscheibe wird einen Trägheitsmoment haben,
deswegen darf man nicht die volle Frequenz sofort
benutzen, sondern langsam anfahren, das ist mir klar.

U1(t)=A*sin(2*pi*f0*t)
U2(t)=U1(t-120°)
U3(t)=U1(t-240°)

U1 ist Spannung zwischen U1_x und U1_y

es sind 4 Anschlüsse, ich nehme an eins ist Mittelpunkt
und schlisse U1_y U2_y U3_y zusammen daran.
Die restlichen jeweils an die restlichen 3 Beinchen.

Und dann mit f0=1Hz bis 120Hz hochfahren.
120U/s=7200U/s

Gibt es IC's die mir einen netten sinus mit vorgegeben
Frequenz rausgeben?

Grüsse, Daniel

von Hegy (Gast)


Lesenswert?

Darf's auch etwas weniger sein?
7200 U/s = 432000 U/min.
bei 7,6cm Plattendurchmesser und 7200U/s ergibt das einen Speed am Rand 
der Scheibe von knapp 6200km/h!

Jaja, ich weiß, sollte 7200 U/min heißen....

  scnr
  Hegy

PS: nein, ich kenne so'n Schipp nicht, der die aus Gleichstrom einen 
sinusförmigen Drehstrom macht mir var. Frequenz. Ich habe aber noch ein 
Frequenzumrichter im Keller, der kann sowas, ich glaube auch von 0,x Hz 
bis 400 Hz hoch. Für 1500 Festplattenmotoren geeignet :>  Cäüven?

von Michael W. (wiebel42)


Lesenswert?

Also ich hab den ganz geschmeidig zum laufen bekommen mit ner 
sinusartigen PWM ansteuerung, ist nicht ganz trivial aber sollange man 
das nicht regelt hält sich der Aufwand in Grenzen, macht natürlich auch 
weniger spass wenn dernicht mehr synchron ist steht der sofort, um das 
zu verhindern muss man das Ding regeln (hall oder sensorless) es gibt 
einige gute app notes von atmel einfach mal nach "sinusoidal" suchen.

Ach ja und warm werden nur meine Trieber und auch nur weil das der 
lausige L298 is der an sich ja auch für schrittmotoren gedacht war. Der 
Motor selbst bleibt kalt.

Wenn man das nicht regelt hilft es ungemein die Frequenz mit nem poti zu 
steuern, dann kann man den Motor "wieder auffangen" und die Drehzahl 
hochziehen. Und ja sowas schreit irgendwie schon nach nem Propeller.

-wiebel

von Benedikt K. (benedikt)


Lesenswert?

Ich habe schon öfters gelesen, dass BLDC die mit einer externen Frequenz 
angesteuert werden, heiß werden. Das entspricht auch meinen eigenen 
Erfahrungen. Vermutlich liegt es daran, dass man den Strom sehr viel 
höher wählen muss, um den Motor syncron zu halten.

Ich habe schon etliche Schaltungen aus dem Internet ausprobiert: 
Interessanterweise funktionierte fast keine an Festplattenmotoren, aber 
an anderen BLDC Motoren. Es kann natürlich auch sein, dass ich Mist 
gebaut habe, aber ich habe einige Festplattenmotoren die einfach nicht 
anlaufen wollen.
Die Kommutierung durch die Gegen EMK ist alles andere als einfach, unter 
anderem deshalb weil das RC Filter dass die PWM entfernt eine 
Phasenverschiebung verursacht. Alternativ muss man synchron zur PWM 
messen, was einen schnellen ADC erfordert, der dazu nach mit der PWM 
gekoppelt ist.
Für die ersten Versuche empfehle ich die Schaltung mit einem mega8 (oder 
war es mega48 ?) der dessen internen Komparator nutzt. Und das ganze 
ohne PWM. Damit bekommt man jeden Festplattenmotor auf >10000UpM.
Eine Sinusförmige Spannung ist nicht unbedingt notwendig, viele Motoren 
sind für Rechteckförmige (bzw. Trapezförmig wenn man Phase-Phase misst) 
ausgelegt.

Einige neueren Festplatten scheinen übrigends keine PWM mehr zu 
verwenden, sondern eine lineare Stromquelle um die Drehzahl zu regeln.

von ChristophK (Gast)


Lesenswert?


von Daniel (Gast)


Lesenswert?

"The electronics can either have position sensor inputs that provide 
information
about when to commutate or use the Back Electromotive Force generated in
the coils."

ich bin mir nicht sicher, aber von dem was ich gelesen hab,
meine ich, dass Festplattenmotoren BEF zur Kommutiertung nutzen.

"This application note described the control of a BLDC motor with Hall 
effect position
sensors (referred to simply as Hall sensors). The implementation 
includes both direction
and open loop speed control."

Trotzdem Danke

von Michael W. (wiebel42)


Lesenswert?

Benedikt K. wrote:
...
> Für die ersten Versuche empfehle ich die Schaltung mit einem mega8 (oder
> war es mega48 ?) der dessen internen Komparator nutzt. Und das ganze
> ohne PWM. Damit bekommt man jeden Festplattenmotor auf >10000UpM.
Verstehe ich dich richtig? Einfach Spannung an, dann den Strom auf den 
Komperator und ab nem gewissen Level einfach weiter zum nächsten, oder 
wie?

> Eine Sinusförmige Spannung ist nicht unbedingt notwendig, viele Motoren
> sind für Rechteckförmige (bzw. Trapezförmig wenn man Phase-Phase misst)
> ausgelegt.
Hmm, geht das? Ist am Ende nicht doch ein "echtes" Drehfeld immer ideal? 
Klar das ne trapezansteuerung viel simpler ist, aber auch bei Motoren, 
die für sowas ausgelegt sind sollte sich doch noch eine Verbesserung 
(Drehzahl, Leistung, Effizienz) ergeben wenn man dann doch einen Sinus 
(über die Phasen) anlegt.

> Einige neueren Festplatten scheinen übrigends keine PWM mehr zu
> verwenden, sondern eine lineare Stromquelle um die Drehzahl zu regeln.
???
Eine lineare Stromquelle hat auf jedenfall einen grossen Nutzen, da man 
bei niedrigen Drehzahlen unbedingt weniger Stom braucht als bei höheren 
(will sagen bei zu viel Stom rucken die wie blöde) aber darüber kann man 
doch nicht die Drehzahl selbst regeln. man braucht doch zwingend das 
Drehfeld

Ich find grade Synchronmaschinen (vielleicht ja auch mal bals 
Asynchrone) doch extrem Spannend, das macht ne Menge Spass. -wiebel

von Benedikt K. (benedikt)


Lesenswert?

Michael Waiblinger wrote:
> Benedikt K. wrote:
> ...
>> Für die ersten Versuche empfehle ich die Schaltung mit einem mega8 (oder
>> war es mega48 ?) der dessen internen Komparator nutzt. Und das ganze
>> ohne PWM. Damit bekommt man jeden Festplattenmotor auf >10000UpM.
> Verstehe ich dich richtig? Einfach Spannung an, dann den Strom auf den
> Komperator und ab nem gewissen Level einfach weiter zum nächsten, oder
> wie?

Nicht ganz: Man hat 3 Anschlüsse (bzw. eigentlich 4 mit dem Sternpunkt 
den man, wenn er fehlt, künstlich nachbilden muss). Auf 2 Anschlüsse 
gibt man die Spannung und vergleicht Sternmittelpunkt mit dem ungenutzen 
Anschluss. Wenn der Wert größer wird, schaltet man weiter.
So funktioniert es zumindest in der Theorie. In der Praxis hat man noch 
Störungen die man Filtern muss, außerdem sollte man im Idealfall je nac 
Drehzahl ein kleinwenig eher umschalten, um den verlangsamten 
Stromanstieg durch die Induktivitäten zu kompensieren.

Das kann dir sicher jemand der schonmal eine ordentliche (d.h. 
geregelte) BLDC Ansteuerung gebaut hat, besser erklären. Meine 
Ansteuerungen beschränkten sich bisher nur auf die rein Kommutierung, 
also dass der Motor überhaupt läuft. Und so ein Festplattenmotor läuft 
an 25V verdammt schnell.

>
>> Eine Sinusförmige Spannung ist nicht unbedingt notwendig, viele Motoren
>> sind für Rechteckförmige (bzw. Trapezförmig wenn man Phase-Phase misst)
>> ausgelegt.
> Hmm, geht das? Ist am Ende nicht doch ein "echtes" Drehfeld immer ideal?
> Klar das ne trapezansteuerung viel simpler ist, aber auch bei Motoren,
> die für sowas ausgelegt sind sollte sich doch noch eine Verbesserung
> (Drehzahl, Leistung, Effizienz) ergeben wenn man dann doch einen Sinus
> (über die Phasen) anlegt.

Keine Ahnung, wie gesagt: Ich bin froh wenn die Motoren sauber laufen. 
Ob der Wirkungsgrad jetzt 90 oder 92% beträgt ist mir da meistens 
ziemlich egal. Ein Trapez nutzt auf jedenfall die Spannung besser aus, 
als ein Sinus. Daher fügt man bei FU Frequenzumrichtern häufig noch eine 
Oberwelle Hinzu, damit der Sinus Rechteckförmiger wird, und daher das 
Verhältnis Spitze/Effektivwert kleiner wird.

>
>> Einige neueren Festplatten scheinen übrigends keine PWM mehr zu
>> verwenden, sondern eine lineare Stromquelle um die Drehzahl zu regeln.
> ???
> Eine lineare Stromquelle hat auf jedenfall einen grossen Nutzen, da man
> bei niedrigen Drehzahlen unbedingt weniger Stom braucht als bei höheren
> (will sagen bei zu viel Stom rucken die wie blöde) aber darüber kann man
> doch nicht die Drehzahl selbst regeln. man braucht doch zwingend das
> Drehfeld

Es kann sein, dass auch die Gleichmäßigkeit der Umdrehungen ein Grund 
ist, keine Ahnung. Auf jedenfall weicht das ganze von der üblichen 
Ansteuerung etwas ab. So sieht das Signal an einer der 3 Phasen aus:
http://www.mikrocontroller.net/attachment/13905/hdd.jpg
GND ist ein Kästchen von unten entfernt. Die 2 Stücke mit der konstanten 
Spannung oben liegen bei 12V. Wie man sieht, werden unten etwa 2-4V in 
den Mosfets verheizt.
Die senkrechten Striche an den Übergängen der einzelnen Abschnitte 
entstehen durch die Selbstinduktion in den Wicklungsinduktivitäten.
Man erkennt schön wann zur nächsten Phase umgeschaltet wird. Hier ist es 
ein wenig verzögert (nicht genau in der Mitte des linearen Übergangs). 
In diesem Bereich ist der Wicklungsanschluss mit nichts verbunden und 
dient zur Gegen EMK Erfassung.

>
> Ich find grade Synchronmaschinen (vielleicht ja auch mal bals
> Asynchrone) doch extrem Spannend, das macht ne Menge Spass.

Ja, ich finde generell alle Motoren interessant, die man digital steuern 
kann, und vor allem die sehr schnell laufen. Es macht immer wider Spaß 
eine CD auf einen Asynchronmotor zu stecken und diesen auf >30000UpM 
hochzudrehen, bis es die CD zerreist...

von Axel R. (Gast)


Angehängte Dateien:

Lesenswert?

Sind nur zwei Spulen, die mit 90° Phasenlage angesteuert werden.
Wie in jedem besseren DDR-Plattenspieler.

von Michael W. (wiebel42)


Angehängte Dateien:

Lesenswert?

@benedikt

Cool, das ist genau die Kurvenform die ich auch verwende 
(sin(0..120°)und zurück), "Umgeschaltet" wird nach jeweis 60°.
Hab ich aus:
http://www.atmel.com/dyn/resources/prod_documents/doc8010.pdf
An den "Umschalt" stellen zu messen macht perfekt sind, da genau dann 
auch der algorithmus umschaltet und man schön Messungen einfügen kann.
Ich häng mal mein letztes Machwerk nochmal an (sehr schlampig, aber 
funktional) wobei noch keine Regelung drin ist und ich das teil mit nem 
Poti steuere.

von Michael W. (wiebel42)


Lesenswert?

Axel Rühl wrote:
> Sind nur zwei Spulen, die mit 90° Phasenlage angesteuert werden.
> Wie in jedem besseren DDR-Plattenspieler.

Es sind 3 Spulen in 120° Phasenlage, aber die Schaltung ist hübsch. ;)


Benedikt K. wrote:
> Es macht immer wider Spaß
> eine CD auf einen Asynchronmotor zu stecken und diesen auf >30000UpM
> hochzudrehen, bis es die CD zerreist...

Wo bekommt man den am einfachsten für den Hausgebrauch 
Asynchronmaschinen her?
[edit: Ach ja nochwas,wie bilde ich den am einfachsten künstlich den 
Sternmittelbunkt nach? Einfach drei Widerstände Sternverschaltet, oder 
drei Spulen, oder wie?
-wiebel

von Benedikt K. (benedikt)


Angehängte Dateien:

Lesenswert?

Michael Waiblinger wrote:
> Cool, das ist genau die Kurvenform die ich auch verwende
> (sin(0..120°)und zurück), "Umgeschaltet" wird nach jeweis 60°.

Verwendest du eine Kommutierung oder machst du das nach eine bestimmten 
Zeit ?

> Wo bekommt man den am einfachsten für den Hausgebrauch
> Asynchronmaschinen her?

Gute Frage. Meine habe ich aus einer alten Laborzentrifuge. Der Motor 
ist mit 12000UpM bei 300Hz angegeben.
Ansonsten noch aus Waschmaschinen, die laufen aber langsam (ich glaube 
so 600UpM), haben dafür ein höheres Drehmoment. Und es sind echte 
Asynchronmotoren für 230V Strangspannung.
Nahezu alle anderen Motoren sind keine echten 3 Phasenmotoren, sonder es 
sind Kondensatormotoren mit nur 2 Wicklungen die eine um 90° verschobene 
Spannung benötigen.

> [edit: Ach ja nochwas,wie bilde ich den am einfachsten künstlich den
> Sternmittelbunkt nach? Einfach drei Widerstände Sternverschaltet, oder
> drei Spulen, oder wie?

Einfach mit 3 Widerständen. Das ist zwar nicht ganz so gut wie der 
orginale, funktioniert aber einigermaßen.

Im Anhang mal meine Schaltung zur HDD Motoransteuerung: Hat nicht viel 
Leistung, ist ungeregelt, dreht eine HDD aber fast so schnell wie 
orginal. Ich verwende das ganze für eine HDD als Dekoobjekt, bei der ich 
den Deckel entfernt habe und eine Plexiglasplatte stattdessen eingesetzt 
habe.
Beim Starten arbeiten die Transistoren im linearen Bereich und begrenzen 
jeweils auf etwa 200-300mA. Sobald das ganze einmal läuft werden die 
Transistoren kaum noch warm.

von AxelR. (Gast)


Lesenswert?


von Benedikt K. (benedikt)


Lesenswert?

Den Arm anzusteuern, ist noch schwerer als den Motor:
Bei einer einfachen Spannung schlägt der Arm immer an die Begrenzung, 
die absolute Position ist nicht messbar. Daher ist beim normalen Betrieb 
die Position auf der Festplatte gespeichert und wird vom Lesekopf 
ausgelesen. Also eine analoge Steuerung mit digitaler Rückführung.
Die Spule wird mit einem Konstantstrom angesteuert. Dieser bestimmt die 
Beschleunigung des Armes. Die normalen Armbewegungen nachzustellen ist 
garnichtmal so einfach, ein gezieltes Anfahren einer bestimmten Position 
total unmöglich (ohne zusätzliche Positionssensoren).

von Michael W. (wiebel42)


Lesenswert?

Ich mach keine Komutierung, einfach nur Zeitgesteuert (siehe quellcode 
oben).
Bei Arm ansteuern fällt mir ein, dass ich noch einen schönen Industrie 
Servo-Motor hab (29V@3A) der hat auf der Achse ein Kupferzahnrad mit 
einem Hall(?)Sensor dran als Positionsgeber mit 
Initialisierungs"finger". Das muss ich auch bald mal ans drehen kriegen, 
damit ist ne herrvorragende Positionierung möglich. Ich Frage mich ob 
man über diese Positionen auch die Komutierung Regeln kann, sollte aber 
ja auf jeden Fall gehen. -wiebel

von Benedikt K. (benedikt)


Lesenswert?

Ich habe noch etwas rausgefunden: Es gibt verschiedene BLDC Motoren: 
Welche für Trapez und welche für Sinusförmige Ansteuerung. Beide sind 
nicht kompatibel, für die sensorlose Kommutierung werden 
unterschiedliche Schaltungen verwendet. Das erklärt, wiso meine 
Ansteuerungen nur mit manchen Motoren problemlos funktioniert.

von Gonzo (Gast)


Lesenswert?

Hi zusammen!

Die Ansteuerung von BLDC Motoren hängt im wesentlichen von der EMK des 
Motors ab da die EMK zusammen mit dem Strom für die 
Drehmomententwicklung des Motors verantwortlich ist. Das Drehmoment 
entspricht dem Produkt aus den beiden Werten (beim Strom nur der 
Drehmomentbildende Anteil).
Am besten misst man die EMK des Motors zunächst mal mit einem Scope 
(Strang gegen Sternpunkt). Ist die EMK näherungsweise trapezförmig so 
steuert man den Motor am besten auch mit einer Block oder Trapezspannung 
an. Ist sie sinusförmig so wird der Motor am besten auch mit einer 
Sinusspannung angesteuert. Damit ergibt sich dann letztendlich ein 
näherungsweise konstantes Drehmoment.

Informationsquellen sind die bekannten Controllerhersteller. Besonders 
interessant finde ich STM (sensorless mit EMK), NEC, Infineon 
(feldorientierte Regelung), Atmel oder auch Texas => einfach mal nach 
BLDC BLAC oder PMSM gugeln.

Wer die ultimativen Details über Motoren wissen will:
http://www.iem.ing.tu-bs.de/

Positionserfassungen gibt es im Prinzip 3:
- mit Hallsensoren
- Erfassung der EMK
- feldorientiert durch Messung der Phasenströme (sehr aufwändig)

@Benedikt: Wo hast Du gelesen das die Beschaltung der EMK Erfassung vom 
Motortyp Sinus oder Trapez abhängt?

Viele Grüße,
Gonzo

von Benedikt K. (benedikt)


Lesenswert?

Es gibt von Microchip 2 Application Notes zu dem Thema: Beide für die 
dsPICs, eine mit einem kleinen Controller für Trapezansteuerung, da 
werden die Signale direkt PWM syncron mit dem ADC abgestastet, gefiltert 
usw. (benötigt insgesamt etwa 20MIPs Rechenleistung !!!).
Die andere für sinusförmige Ansteuerung, bei dieser wird irgendwie nur 
der Strom von 2 Phasen gemessen und daraus die Kommutierung berechnet. 
Ich habe das bisher nur überflogen, aber es ist relativ kompliziert, ich 
habe zumindest nicht allzuviel davon verstanden.
Die beiden heißen AN1083 und AN1078.

von Gonzo (Gast)


Lesenswert?

Habe mir mal die beiden Appnotes mal angesehen. Bei dem ersten AppNote 
1083 handelt es sich um das Standardverfahren bei dem die EMK während 
der Nullstromphase gemessen wird. Das man dafür 20MIPS braucht kann ich 
mir nicht vorstellen. Es gibt verschiedene Implementierungen auf relativ 
schwachbrüstigen Controllern die mit Sicherheit keine 20Mips leisten 
können. Beispiele währen z.B. der ST7MC1 wobei der schon relativ viel HW 
mit an Bord hat.
Das zweite Verfahren (1078) ist eine feldorientierte Regelung. Dieses 
Verfahren erzeugt automatisch eine sinusförmige Ansteuerung. Prinzipiell 
geht man bei dem Verfahren einfach davon aus, dass der Motor einfach 
durch ein Ersatzschaltbild mit R, L und EMK in Reihe dargestellt werden 
kann. Angesteuert wird diese Schaltung durch die angelegte Spannung 
welche mit einer Sinus-PWM erzeugt wird. Wenn man nun noch den 
Phasenstrom kennt kann man eigentlich die gesamte Maschengleichung des 
Motors berechnen, d.h. man kann die EMK (Amplitude und Phasenlage) 
berechnen. Wenn man die Phasenlage der EMK kennt weiß man auch wie man 
die Ausgangsspannung anlegen muss. Prinzipiell sucht man also die 
gleiche größe wie beim ersten Verfahren (die Phasenlage der EMK). Der 
Nachteil des Verfahrens ist jedoch der enorme Rechenaufwand. 
Normalerweise implementiert man solche Regelungen auf 16Bit/32Bit 
Controllern oder DSPs. Hier kann ich mir die 20Mips gut vorstellen.
Wenn man nur den Nulldurchgang der EMK erkennen will kann man also 
eigentlich immer die gleiche Schaltung hernehmen egal ob die EMK des 
Motors sinus- oder trapezförmig ist.
Wenn man nur die beiden Phasenströme misst braucht man die EMK nichtmehr 
zu erfassen.

Bis denne,
Gonzo

von Benedikt K. (benedikt)


Lesenswert?

Danke für die Erklärung.
Wenn ich das also richtig verstehe, benötigt diese Sinus Version die 
Daten des Ersatzschaltbild des Motors, um richtig zu funktionieren ?

von Michael W. (wiebel42)


Lesenswert?

Hossa heute hab ich mein Servo zum laufen gebracht, was für ein 
Regelverhalte, oder besser Steuerungsverhalten. Ich bin mit meinem 
immernoch stumpf Zeitgesteuerten Sinus drauf wieder mit nem Steuerhebel 
(Poti) angesteuert und was soll ich sagen, ich hab es nicht geschafft 
aus dem Sync zu kommen, der ist einfach mitgekommen und in welcher 
Geschwindigkeit, traumhaft. Leider hat schon in kürzester zeit auch mein 
zweiter L298 den Löffel abgegeben. Es wird zeit für was vernünftigeres 
mit FETS.
Ich bin noch hierüber gestolpert:
http://mikrocontroller.cco-ev.de/ucwiki/BL-Ctrl_Anleitung
Die Platine bekommt man für 9€ das system ist Vollkommen Offen, ISP I2C 
Servo Signal Serielles Debuggen, und das nur mit der original 
quelloffenen Firmware. gar kein Proprietärer quatsch wie sonst üblich.

Ich denke darauf werd ich meine weiteren Experimente aufbauen.

Die haben auch die Virtuelle Sternmitte realisiert und überwachen auch 
noch den Strom (allerdings nur zur Strombegrenzung).

@Benedikt ich kann mir das nicht vorstellen, sonst gäbe es nicht so 
viele app notes, wobei es mir immer noch ein Rätsel ist wie ich die 
Komutierungsinformation in mein Signal einbringen soll, ich werd' da 
wohl die Frequenz rausrechnen müssen oder so.

-wiebel

von Michael W. (wiebel42)


Lesenswert?

Mal was ganz anderes kennt ihr gute halbbrückentreiber die schon eine 
Logik für high und low side drin haben am besten mit einstelbarem delay 
gegen shoot-through? ich würde gerne meine Controller hier nutzen, die 
haben aber hächstens 4 PWMs daher geht das mit direkter ansteuerung 
erstmal nicth, ich muss mir noch ein m162 besorgen der klingt fein. die 
PWM in software klingt mir zu krude das will ich eigentlich nicht haben. 
Die L297 sind ja ganz nett aber ich kill die zu schnell dafür sind sie 
definitiv mit 9 Euro zu teuer.

von Benedikt K. (benedikt)


Lesenswert?

Michael Waiblinger wrote:
> Ich bin noch hierüber gestolpert:
> http://mikrocontroller.cco-ev.de/ucwiki/BL-Ctrl_Anleitung
> Die Platine bekommt man für 9€ das system ist Vollkommen Offen, ISP I2C
> Servo Signal Serielles Debuggen, und das nur mit der original
> quelloffenen Firmware. gar kein Proprietärer quatsch wie sonst üblich.

Das war die Schaltung von der ich den Trick mit dem umschaltbaren 
Komparator im mega8 hatte. Allerdings lief die Software nicht mit 
mehreren von meinen Festplatten Motoren. Es gibt einscheinend doch 
ziemliche Unterschiede zwischen den einzelnen Motoren, wie du selbst 
schon gemerkt hast.

> @Benedikt ich kann mir das nicht vorstellen, sonst gäbe es nicht so
> viele app notes, wobei es mir immer noch ein Rätsel ist wie ich die
> Komutierungsinformation in mein Signal einbringen soll, ich werd' da
> wohl die Frequenz rausrechnen müssen oder so.

Was meinst du jetzt ?

> Mal was ganz anderes kennt ihr gute halbbrückentreiber die schon eine
> Logik für high und low side drin haben am besten mit einstelbarem delay
> gegen shoot-through?

Ja, gibt es, aber nur im unteren Leistungsbereich. Es gibt einige von ST 
(L620x, können aber nur 2A) und noch einige in der Richtung, mit mehr 
als 5A kenne ich aber keinen.
Für höhere Spannungen muss man einzelne Mosfets verwenden und selber 
etwas bauen (diskreter Levelshifter, Bootstrapschaltung oder ein 
Highside Mosfet Treiber z.B. von IR)

> Die L297 sind ja ganz nett aber ich kill die zu schnell dafür sind sie
> definitiv mit 9 Euro zu teuer.

9€ ? Conrad ? Bei Reichelt für etwa 3€ zu haben...

von Rolf Magnus (Gast)


Lesenswert?

> ich würde gerne meine Controller hier nutzen, die haben aber hächstens
> 4 PWMs daher geht das mit direkter ansteuerung erstmal nicth,

Wieso? Du brauchst doch nur 3.

von Gonzo (Gast)


Lesenswert?

@Benedikt: Ja, man benötigt den Wicklungswiderstand und die Induktivität 
der Motorwicklungen damit diese Sinusansteuerung richtig funktioniert. 
Die Parameter kann man aber ungefähr zumindest Messtechnisch bestimmen.

@Michael: Das mit der Kommutierungsinformation funktioniert im Prinzip 
so, dass Du den Nulldurchgang der EMK finden musst. Wenn du diesen 
Zeitpunkt kennst weißt Du, dass du etwa 30° el. später auf den nächsten 
Spannungsblock kommutieren musst (gilt für den Blockbetrieb so). Im 
Sinusbetrieb musst du entsprechend in einen Winkel umrechnen und deinen 
Sinustabellenzeiger verstellen. Für die Ansteuerung nimmst Du am besten 
einen Controller mit 6PWM Ausgängen die optimalerweise noch eine Totzeit 
mit generieren können. Treiber für MOSFETS gibts z.B. von IR, Fairchild 
oder ST. Inwieweit die aber auch für privat zu haben sind weiß ich 
nicht. Evtl. gibt es aber Muster. Ich glaube einen Treiber mit 
Totzeitgenerierung hat IR im Programm. Ich bin mir aber nicht ganz 
sicher.

Gruß,
Gonzo

von Michael W. (wiebel42)


Lesenswert?

Benedikt K. wrote:

> Das war die Schaltung von der ich den Trick mit dem umschaltbaren
> Komparator im mega8 hatte. Allerdings lief die Software nicht mit
> mehreren von meinen Festplatten Motoren. Es gibt einscheinend doch
> ziemliche Unterschiede zwischen den einzelnen Motoren, wie du selbst
> schon gemerkt hast.
Mit dem Sinus hab ich bisher alle Motoren zum Laufen gebracht, nicht 
alle gleich gut aber immerhin.


>> @Benedikt ich kann mir das nicht vorstellen, sonst gäbe es nicht so
>> viele app notes, wobei es mir immer noch ein Rätsel ist wie ich die
>> Komutierungsinformation in mein Signal einbringen soll, ich werd' da
>> wohl die Frequenz rausrechnen müssen oder so.
>
> Was meinst du jetzt ?
Oh da hab ich nicht anständig zitiert. ;)
Ich meinte deine Aussage:
>>> Wenn ich das also richtig verstehe, benötigt diese Sinus Version die
>>> Daten des Ersatzschaltbild des Motors, um richtig zu funktionieren ?


> Ja, gibt es, aber nur im unteren Leistungsbereich. Es gibt einige von ST
> (L620x, können aber nur 2A) und noch einige in der Richtung, mit mehr
> als 5A kenne ich aber keinen.
> Für höhere Spannungen muss man einzelne Mosfets verwenden und selber
> etwas bauen (diskreter Levelshifter, Bootstrapschaltung oder ein
> Highside Mosfet Treiber z.B. von IR)
Extra Mosfets sind fein (will ja vielleicht auch mal Dicke Motoren 
anseuern) mir geht es lediglich darum das ich nicht auch noch die 
Dead-time
selbst basteln muss (zumindest bis ich hier einen anständigen 6PWM uC 
hab) also irgendwelche Treiber die mit einem Eingang pro Halbbrücke 
auskommen und mir dann jeweils Zwei FETS treiben (ideal natürlich zwei 
n-Kanal) würde mir reichen.
Allegro hat einige nette Teile im Programm. http://www.allegromicro.com
Die sind mir aber schonwieder zu hoch integriert, da hab ich ja gar 
keinen Spass mehr, ausserdem schreien die alle nach Hall Sensoren.

>> Die L297 sind ja ganz nett aber ich kill die zu schnell dafür sind sie
>> definitiv mit 9 Euro zu teuer.
>
> 9€ ? Conrad ? Bei Reichelt für etwa 3€ zu haben...
ich meinte den L298, hab mich vertippt, aber ja ich geh eindeutig zu oft 
bei Conrad einkaufen sig


@Rolf
Naja wenn ich alle Fets selbst ansteuern will bräuchte ich schon 6PWMs.
Aber ich muss zugeben die von Atmel haben es selbst auch mit 4PWMs 
gelöst in einer ihrer Appnotes. Muss ich wohl nochmal sinieren gehen. ;)


@Gonzo
Vielen Dank, das hilft mir weiter. ;)
Also führe ich zur Komutation einen echten Sprung in der Tabelle durch, 
und passe das nicht über die Frequenz an, das vereinfacht die sache 
natürlich extrem. Lässt aber auch noch raum für optimierungen. Besser 
wäre es ja schon wenn ich in den 30° quasi die Frequenz auf den nötigen 
Wert anpasse und danach mit dem Mittelwert der alten Frequen un der 
"Anpassfrequenz" weitermache. Ok das wäre dann aner auch schon wieder 
recht aufwendig. Schon das Ermitteln der "Anpassfrequenz" könnte u.U zu 
lange dauern.

Muss wohl doch mal durch die Datenblätter von IR durchgehen scheint ja 
recht vielversprechend.


Der Thread hier wird immer besser und besser, grosses Lob an alle 
Beteiligten so macht Internet richtig Spass. (Frei nach ebay)

von Gonzo (Gast)


Lesenswert?

@Michael
Wenn Du die Position über eine stetige Veränderung der Ausgangsfrequenz 
nachregelst (PLL) ist das natürlich die bessere Variante da jeder Sprung 
Schwingungen auslöst die sich letztendlich auf die Stabilität und die 
Geräuschentwicklung des Motors auswirken. Im ersten Schritt sollte es 
aber ausreichen mit direkten Sprüngen zu arbeiten. Wenn du die 
Synchronisation über die Frequenz machen willst musst Du natürlich 
darauf achten, dass die Nachregelung schnell genug ist damit Du auch bei 
Lastsprüngen nicht die Synchronität verlierst. Synchronmotoren stehen in 
einem solchen Fall sofort.

von Benedikt K. (benedikt)


Lesenswert?

Michael Waiblinger wrote:

> Mit dem Sinus hab ich bisher alle Motoren zum Laufen gebracht, nicht
> alle gleich gut aber immerhin.

Die Motoren und die Treiberschaltungen werden aber relativ warm, oder ? 
Zumindest war das bei mir so.

>>> @Benedikt ich kann mir das nicht vorstellen, sonst gäbe es nicht so
>>> viele app notes, wobei es mir immer noch ein Rätsel ist wie ich die
>>> Komutierungsinformation in mein Signal einbringen soll, ich werd' da
>>> wohl die Frequenz rausrechnen müssen oder so.
>>
>> Was meinst du jetzt ?
> Oh da hab ich nicht anständig zitiert. ;)
> Ich meinte deine Aussage:
>>>> Wenn ich das also richtig verstehe, benötigt diese Sinus Version die
>>>> Daten des Ersatzschaltbild des Motors, um richtig zu funktionieren ?

Das ist nur bei dieser einen Ansteuertechnik so, die Gonzo schön erklärt 
hat, dass sogar ich das verstehe.

Das mit den 30° könnte erklären, warum meine Schaltung manchmal nicht 
läuft: Ich lasse die 30° weg und schalte sofort weiter zum nächsten 
Zustand wenn die Spannung am unbenutzen Motoranschluss gleich der 
Sternspannung ist...

PS:
Schau dir mal den AT90PWM3. Der hat 6 PWMs, einstellbare Deadtime, die 
Timer laufen mit 64MHz, usw.

von Michael W. (wiebel42)


Lesenswert?

Gonzo wrote:
> @Michael
> Wenn Du die Position über eine stetige Veränderung der Ausgangsfrequenz
> nachregelst (PLL) ist das natürlich die bessere Variante da jeder Sprung
> Schwingungen auslöst die sich letztendlich auf die Stabilität und die
> Geräuschentwicklung des Motors auswirken. Im ersten Schritt sollte es
> aber ausreichen mit direkten Sprüngen zu arbeiten. Wenn du die
> Synchronisation über die Frequenz machen willst musst Du natürlich
> darauf achten, dass die Nachregelung schnell genug ist damit Du auch bei
> Lastsprüngen nicht die Synchronität verlierst. Synchronmotoren stehen in
> einem solchen Fall sofort.

Ack, das ist definitiv dann die höhere Schule, werd ich mich später mal 
mit beschäftigen. Ich muss mir extrem dringend nochmal im Detail 
anschauen wie ein PLL funktioniert, die Schemen die ich noch im Kopf 
rumschwirren hab sind definitiv unzulänglich. Auf jedenfall danke für 
das Stichwort.

@Benedikt:

> Die Motoren und die Treiberschaltungen werden aber relativ warm, oder ?
> Zumindest war das bei mir so.
Der Treiber (L298 = räudig) JA sehr, sogar mit meiner patentierten Zippo 
Kühlung, zu heiss ... tot.
Die Motoren, nicht die Spur, bei dem kleinen 2.5" motörchen könnteich 
mir eine ganz leichte erwärmung vorstellen aber nix echtes, meine beiden 
anderen Motoren sind viel zu massiv (5.25" Motor ca. 10cm * 4cm, der 
Servo 20x20cm) wobei der L298 ja auch nicht lange genug gelebt hat um 
den Servo ernsthaft aufzuwärmen. Man freu ich mich wenn ich einen 
anständigen Treiber hab.

> PS:
> Schau dir mal den AT90PWM3. Der hat 6 PWMs, einstellbare Deadtime, die
> Timer laufen mit 64MHz, usw.
Ja die Speziall PWM Teile sind klasse. Aber die Deadtime kann ich doch 
sowieso einstellen wenn ich Phase-correct PWM nutze.

Ich hab übrigens einen neuen Thread aufgemacht der sich mit dem Thema 
befasst. -> Beitrag "BLDC, Synchronmaschine, Drehfeld Experimentierschaltung"

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.