www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik festplatten motor zum drehen bringen


Autor: Daniel (Gast)
Datum:

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
Autor: Benedikt K. (benedikt) (Moderator)
Datum:

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.
Autor: Chrisi (Gast)
Datum:

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
Autor: Bri (Gast)
Datum:

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

Nebenbei: so ein Motor wär sicher interessant für ein
Propeller-Display... :-)
Autor: Philipp Burch (philipp_burch)
Datum:

Mechanische oder thermische Leistung?
Autor: Bri (Gast)
Datum:

Wenn möglich elektrische und mechanische.
Autor: Bri (Gast)
Datum:

(Das elektrisch bezieht sich natürlich auf das, was der Motor aufnimmt.)
Autor: Realplotter (Gast)
Datum:

Zur Leistung. Die elektrische Leistung ist auf der Platte angegeben. Ein
paar Watt. Der Wirkungsgrad ist hoch >80% wuerd ich sagen.
Autor: Philipp Burch (philipp_burch)
Datum:

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 ;)
Autor: Dieter Werner (Gast)
Datum:

Da kommen ausser BLDC wohl auch Synchronmotoren (Drehstrommotor mit
Magnetläufer) zum Einsatz.
Autor: Realschotter (Gast)
Datum:

Ein BLDC und ein Synchronmotor mit Magnetlaeufer sind dasselbe. Die
Namensgebung ist etwas verwirrend.
Autor: Daniel (Gast)
Datum:

>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
Autor: Realschotter (Gast)
Datum:

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.
Autor: Daniel (Gast)
Datum:

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
Autor: Hegy (Gast)
Datum:

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?
Autor: Michael Waiblinger (wiebel42)
Datum:

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
Autor: Benedikt K. (benedikt) (Moderator)
Datum:

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.
Autor: ChristophK (Gast)
Datum:

Vielleicht hilft Dir diese App-Note:

http://www.atmel.com/dyn/resources/prod_documents/...
Autor: Daniel (Gast)
Datum:

"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
Autor: Michael Waiblinger (wiebel42)
Datum:

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
Autor: Benedikt K. (benedikt) (Moderator)
Datum:

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...
Autor: Axel R. (axelr) Flattr this
Datum:
Angehängte Dateien:

Sind nur zwei Spulen, die mit 90° Phasenlage angesteuert werden.
Wie in jedem besseren DDR-Plattenspieler.
Autor: Michael Waiblinger (wiebel42)
Datum:
Angehängte Dateien:

@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/...
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.
Autor: Michael Waiblinger (wiebel42)
Datum:

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
Autor: Benedikt K. (benedikt) (Moderator)
Datum:
Angehängte Dateien:

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.
Autor: AxelR. (Gast)
Datum:

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

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).
Autor: Michael Waiblinger (wiebel42)
Datum:

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
Autor: Benedikt K. (benedikt) (Moderator)
Datum:

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.
Autor: Gonzo (Gast)
Datum:

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
Autor: Benedikt K. (benedikt) (Moderator)
Datum:

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.
Autor: Gonzo (Gast)
Datum:

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
Autor: Benedikt K. (benedikt) (Moderator)
Datum:

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 ?
Autor: Michael Waiblinger (wiebel42)
Datum:

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
Autor: Michael Waiblinger (wiebel42)
Datum:

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.
Autor: Benedikt K. (benedikt) (Moderator)
Datum:

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...
Autor: Rolf Magnus (Gast)
Datum:

> 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.
Autor: Gonzo (Gast)
Datum:

@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
Autor: Michael Waiblinger (wiebel42)
Datum:

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)
Autor: Gonzo (Gast)
Datum:

@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.
Autor: Benedikt K. (benedikt) (Moderator)
Datum:

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.
Autor: Michael Waiblinger (wiebel42)
Datum:

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"

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net