Hi Leute, so ich beschäftige mich wieder mal mit dem Thema BLDC. Ich habe eine schöne Treiberstufe gebaut mit MOSFETs. Dazu noch eine kleine Leiterplatte mit nem Controller, und damit steuere ich jetzt einen BLDC an. Im Moment lasse ich den Controller noch auf die Hallsensoren pollen, und beim entsprechenden Status der Hallsensoren werden die Wicklungen dementsprechend geschaltet. Das funktioniert auch, die Drehzahl lässt sich (per PWM) einstellen, und das Teil macht 12000 Touren. Allerdings dreht der Motor nur links rum. Ich möchte ihn aber in beide Richtungen drehen können! Also, beim Drehen in die eine Richtung lege ich die Signale wie folgt an: Hallsensor Phase 1 2 3 U V W ---------------------- 1 0 1 + - 1 0 0 + - 1 1 0 + - 0 1 0 - + 0 1 1 - + 0 0 1 - + So, damit dreht der Motor wie gesagt ganz ordentlich. In welcher Reihenfolge muss ich denn den Motor bestromen, dass er in die entgegengesetzte Richtung dreht? Und, noch eine reine Verständnisfrage: warum dreht sich der Motor nicht mehr, wenn ich zwei Phasen vertausche? Eigentlich müsste er ja dadurch die Richtung umkehren. Allerdings tut er das nicht; vielmehr bleibt er immer an einer bestimmten Position stehen.
>Und, noch eine reine Verständnisfrage: warum dreht sich der Motor nicht >mehr, wenn ich zwei Phasen vertausche? Die Hall-Sensoren hast du auch entsprechend mitgetauscht? Oliver
moin moin, lade Dir mal das Datenblatt zum SI9979, da ist das mit einer Tabelle erläutert. Pieter
Walter schrieb:
> Danke, es läuft!
Super, lag es tatsächlich am R4?
>Super, lag es tatsächlich am R4?
Ja, der war verkehrt herum eingelötet.
Neeee, meine Kommutierungsreihenfolge war nicht ganz richtig. Wenn es euch interessiert kann ich ja noch paar Codeschnipsel und Oszibilder posten.
Hallo Hast du jetzt die Hardware geaendert, um die Richtung zu aendern? Ich dachte sofwaremaessig kann man das dadurch erreichen, dass man die Bestromung der Phasen um 180Grad verschiebt, gegen die Hallsensor Signale. Also indem du anstelle des ersten Musters das dritte einstellst und ausgibst. gruss Tueftler86
> um 180Grad verschiebt, gegen die Hallsensor Signale.
Wie soll das denn bitte gehen, oder denke ich falsch?
Wenn du den Motor 180°gegen die Hallsignale drehen lässt, ändert sich
doch
automatisch auch die Richtung der Hallsignale, oder nicht??
Und schon bist du wieder in Phase mit den Signalen.
also die hallsignale sind einzig von der Rotorstellung abhaengig, und um ein Moment in die entgegengesetzte Richtung zu erzeugen, laesst du den Strom in die andere Richtung fliessen. Wenn du oben in die Tabelle guckst, siehst du dass dieser vorgang genau einer Verschiebung um 3 "Takte" entsrichts. Du ordnest also bei Vorwaerts der Hallsensorkombinationnummer "eins" die erste Phasenansteuerung zu. Bei Rueckwaerts hingegen die dritte Phasenansteuerung. Dachte ich. Gruss Tueftler86
Wenn man die Seqeuenz als Array gespeichert hat, dann kann man einfach das Array von hinten nach vorne durchspulen, statt von vorne nach hinten ;)
wenn du vorwärts die Phasen/Hallsensoren A,B,C bestromst und änderst das ab zb. in A,C,B dann dreht der Motor in die andere Richtung. Also nicht nur einfach verschieben sondern 2 Phasen samt Hallsensoren vertauschen.
Verstehe nicht genau wie du das meinst, bei obiger tabelle wuerde das jedenfalls nicht so funktionieren. Meiner Meinung nach muss man die Phasen umpolen bei gleicher Hallinformation. Eleganter geht das Phasenansteuern finde ich noch, indem man zwei nebeneinander gesetzte bits durch ein Register shiftet, muss man aber noch den Uebertrag nach dem 6.Bit beachten.
hab mich auf Simon bezogen. @ Hagen: Fuehr doch mal etwas verstaendlicher aus, wie du das meinst. wenn du dir obige Tabell anschaust, wirst du feststellen, dass wenn man anstelle der ersten Kombination aus der Tabelle (fuer die phasen) die dritte raussuchst, der Strom in die entgegengesetzte Richtung fliesst und damit auch das Moment umgekehrt wird. Oder verstehe ich da was falsch?
Hallsensor Phase 1 2 3 U V W ---------------------- 1 0 1 + - 1 0 0 + - 1 1 0 + - 0 1 0 - + 0 1 1 - + 0 0 1 - + 1 0 1 + - 1 0 0 + - 1 1 0 - + 0 1 0 - + 0 1 1 - + 0 0 1 + - Vergleiche mal beide Tabellen UVW -> UWV U ist sagen wir mal unsere absolute Position. Jenachdem ob man als nächstes V oder W bestromt wird die Drehrichtung beeinflusst. Die Hallsensor Tabelle habe ich jetzt mal nicht verändert. Übrigs findet man bei Atmel ne ganze Menge an AppNotes + Source in denen man das nachlesen kann. Gruß Hagen
>Meiner Meinung nach muss man die Phasen umpolen bei gleicher >Hallinformation. Korrekt, oder Phasen gleichlassen und Hallssensoren austauschen. Wobei immer nur 2 der 3 Hallesensoren/Phasen ausgetauscht werden dürfen. Umpolen suggeriert hier in die falsche Richtung, besser vertauschen da die Polung/Bestromung im Grunde gleichbleibt. Wenn man also einfach 2 Strippen des BLDC austauscht dreht er in die andere Richtung. Abhängig von der Art der Hallsensoren, sprich Winkel, muß man dann auch bei denen noch in Software was ändern. Gruß Hagen
Macht ihr das kompliziert ... Wie ändert man denn bei einem gewöhnlichen DC-Motor die Drehrichtung? Aha - umpolen! Das gilt natürlich auch für den BLDC. Wenn das hier für den Rechtslauf gilt: Hallsensor Phase 1 2 3 U V W ---------------------- 1 0 1 + - 1 0 0 + - 1 1 0 + - 0 1 0 - + 0 1 1 - + 0 0 1 - + ... sieht der Linkslauf ganz einfach so aus: Hallsensor Phase 1 2 3 U V W ---------------------- 1 0 1 - + 1 0 0 - + 1 1 0 - + 0 1 0 + - 0 1 1 + - 0 0 1 + -
Hi zusammen, obwohl es schon älter ist, antworte ich hier mal. Beim letzten Post ist noch zu beachten, dass die Hallsensorwerte so NICHT auftreten werden, sondern die Werte werden Rückwärts "durchlaufen" und nicht vorwärts...Und etwas an den Hallsensoren verändern von der Verkabelung ist meiner Meinung nach nicht notwendig... grüße
Hallo, ich möchte mich hier nochmal einklinken weil ich trotz der vielen guten Anregungen immer noch nicht völlig durchblicke. Aus folgendem Grund. Grundsätzlich würde ich zur Drehrichtungsumkehr einfach 2 Phasen tauschen. Soweit so gut. Hier mal eine aktuelle Tabelle für Rechtslauf aus meinem UNI-Skript: Schritt U V W 1 + - 2 - + 3 - + 4 - + 5 + - 6 + - Dies entspricht der Linkslauf-Tabelle von Walter mit der Einschränkung, dass die Ansteuerung um 3 Schritte verschoben ist. Wie das funktionieren soll ist mir völlig unklar: Wenn ich mir für jeden Schritt den Motor mit seinen Wicklungen aufzeichne: U1 V2 w2 W1 V1 U2 Dann dreht doch mein Feld in diesen Wicklungen immer rechts rum. Selbst den Linkslauf kann ich mir hiermit nicht erklären, auch wenn deine Tabelle sicher richtig ist: Beispiel Linkslauf: Schritt 1: U1&V2 sind "aktiv" Schritt 2: W2&U1 Schritt 3: V1&W2...... Will damit sagen, auf meiner Motoren-Uhr wandert mein Feld außen RECHTS rum. Wie kann dann der Rotor links drehen?? Ich bin völlig verwirrt. Die einzig sinnvolle Lösung für linkslauf wäre für mich die Tabelle einfach von Schritt 6-1 zu durchlaufen, dann würde mein Feld außen in die andere Richtung drehen... Vielleicht hilft mir jemand aus meiner Verwirrung, nächste Woche ist Klausur =)
Vielleicht noch um meine Verwirrung komplett zu machen: Den Sprung von Schritt 1 zu Schritt 2 bei linkslauf entspricht dann Schritt 5 zu Schritt 6 bei Rechtslauf. Danach geht's wieder von vorne los, es werden also dich gleichen Schritte abgearbeitet - egal ob rechts oder links - nur mit einem Versatz von 180° Wieso dreht der Rotor dann beim gleichen Sprung einmal nach rechts und links?
hmmm. jetzt steh ich auch auf dem schlauch. Für rechtslauf und linkslauf die gleiche schrittabfolge???
Pol doch einfach die zweii Draehte endlich mal um und Berichte, ob es nun geht oder nicht.
ich hab nix zu umpolen... =) mir erschließt sich nur die Vorgehensweise nicht so ganz... vielleicht bringt mal wer licht in mein dunkel...
>ich hab nix zu umpolen... =)
Genau so etwas dachte ich mir auch fast. Machst hier alle verrückt.
Isch 'aben gargein audo.
was soll das denn jetzt? es war nur ne frage, da ich die Thematik nicht ganz verstanden hab... wenns mir keiner erklären kann und nur doofe antworten kommen dann lass ich das hier sein. danke.
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.