Hallo,
ich hab eine Frage zu einem Modellbau-BLDC.
Beim Motor handelt es sich um einen umgebauten CF2822, mit neuen
Wicklungen und neuen Lagern.
Hab die Ansteuerschaltung selbst dazu gebaut. Funktioniert alles soweit.
PWM-Frequenz liegt bei etwa 16 kHz. Es wird prinzipiell zu früh
Kommutiert (Feldschwäche-Betrieb, bisher einfacher zu realisieren).
Nur einwas, was mir aufgefallen ist:
Der Motor macht ein Knack-Geräusch in unregelmäßigen Abständen, und dies
nur bei geringen Drehzahlen, bzw. geringer PWM-Austeuerung.
Die Spannungen am Motor sehen genauso aus, wie hier (habs mit Oszi
gemessen):
http://www.mikrocontroller.net/articles/Datei:BLDC_Oszillogramm_Phasen_PWM.png
Bei Vollausteuerung der PWM hört man dies nicht mehr. Wenn man an die
Versorgungsspannung der Gesamtschaltung verändert, gibt es
Spannungswerte, bei denen das Knacken nicht mehr auftritt (hat dann
folglich eine andere Drehzahl, ist das Knacken daher evtl. eine
mechanische Resonanz oder sowas in der Richtung??).
Hat jemand eine Idee woher das kommen könnte oder hatte das jemand
schonmal?
Viele Grüße und schonmal Danke!
Das könnten Kommutierungen zur falschen Zeit sein, die BEMF-Erfassung
fängt sich Störungen ein, und die Kommutierung kommt zu früh oder zu
spät, es ist erstaunlich, welch kleine Abweichungen schon hörbar sind.
Diese Zunahme im Leerlauf habe ich auch schon mal erlebt. Hast Du die
Möglichkeit, die Zeiten zwischen den Kommutierungen zu loggen?
Mit freundlichen Grüßen - Martin
Martin Schlüter schrieb:> Das könnten Kommutierungen zur falschen Zeit sein, die BEMF-Erfassung> fängt sich Störungen ein, und die Kommutierung kommt zu früh oder zu> spät, es ist erstaunlich, welch kleine Abweichungen schon hörbar sind.> Diese Zunahme im Leerlauf habe ich auch schon mal erlebt. Hast Du die> Möglichkeit, die Zeiten zwischen den Kommutierungen zu loggen?
Sowas in der Richtung hab ich mir auch schon gedacht...
Hab leider keine Möglichkeit gerade, das loggen zu können.
Wüsstest du eine Möglichkeit, wie man diese Abweichungen wegbekommt?
Georg A. schrieb:> Die Lager sind wirklich in Ordnung und nicht durch den Austausch etwas> angeknackst?
Durch die neuen Lager hört man das Knacken erst, davor wurde dies vom
Rasseln der alten überdeckt.
Bei hohen Geschwindigkeiten hört man von dem Knacken fast nichts mehr,
es ist umso stärker je langsamer der Motor läuft.
Fragender schrieb:> Wüsstest du eine Möglichkeit, wie man diese Abweichungen wegbekommt?
Ohne jetzt BLDC genauer studiert zu haben: Gegen Störungen helfen Filter
oder Software
Ich hätte auch gleich eine SW-Idee: anstatt die Kommutierung "blind"
nach dem BEMF zu machen verfolgt man intern in SW die Drehung des Motors
mit und passt das innere Modell bei jedem (korrektem) BEMF-Event neu an.
Damit kann man dann aus der Norm fallende Pulse erkennen und ignorieren.
Die Beschleunigung zwischen zwei BEMFs dürfte rel. klein sein (zur Not
approximiert man die halt noch mit rein).
Fragender schrieb:> Hab leider keine Möglichkeit gerade, das loggen zu können.
Eine Möglichkeit wäre, eine Timer mitlaufen zu lassen, der die Abstände
der Kommutierungen misst. Den Wert lässt du dir entweder auf die
serielle loggen oder als Puls auf einem Pin ausgeben. Puls auf Pin ist
auch mal ohne extra Timer einen Versuch wert.
Ich nehme an, du arbeitest mit dem Analog-Komparator und kommutierst
direkt beim Interrupt? Damit läuft der Motor aber noch nicht richtig, du
müsstest noch 30 Grad warten bis du kommutierst. Aber auch das erfordert
wieder einen Timer.
Danke für die Antworten!
Matthias Sch. schrieb:> Eine Möglichkeit wäre, eine Timer mitlaufen zu lassen, der die Abstände> der Kommutierungen misst. Den Wert lässt du dir entweder auf die> serielle loggen oder als Puls auf einem Pin ausgeben. Puls auf Pin ist> auch mal ohne extra Timer einen Versuch wert.
Hab mir mal einige Zyklen auf dem Oszi per Single Shot angeschaut.
Sieht alles sehr gleichmäßig aus, sind keine größeren Lücken oder
Verschiebungen bemerkbar (Abstände waren alle exakt gleich)...
Ingo schrieb:> Ich nehme an, du arbeitest mit dem Analog-Komparator und> kommutierst> direkt beim Interrupt? Damit läuft der Motor aber noch nicht richtig, du> müsstest noch 30 Grad warten bis du kommutierst. Aber auch das erfordert> wieder einen Timer.
Genau, so mach ich das auch.
Hab nun mal das mit dem Timer ausprobiert, dass nun 30° verzögert
Kommutiert wird. Selbes Ergebnis wie vorher, knackt bei niedrigen
Drehzahlen im Leerlauf.
Hab auch mal andere Motoren ausprobiert, überall das selbe Ergebnis.
Hab das Problem gelöst!!
Ich setz nun die Zähler der PWM-Kanäle bevor in den nächsten
Kommutierschritt geschaltet wird immer auf Null zurück.
Nochmal Vielen Dank für die ganzen Vorschläge!
Hab trotzdem Deine Audio-Aufnahme angehört, da ich mal in der
Entwicklung von BLDC-Controllern gearbeitet habe, ist das Geräusch mir
sehr 'vertraut', daß sind kleine zeitliche Abweichungen, Du hast ja
selbst die Ursache in der Software gefunden, eine zweite Möglichkeit,
die hier ja schon genannt wurde, sind elektrische Störungen, gegen die
man mit Filtern in den BEMF-Pfaden vorgehen kann, da muß man aber
vorsichtig sein, und es nicht übertreiben, da man dort den Zeitverzug
der Filter eigentlich nicht haben will.
Daß Du da auf dem Oszi nichts gesehen hast, ist leider eher die
Normalität, die Abweichungen können so klein sein, daß sie dort nicht
sichtbar sind, man muß schon einen Timer auf dem Mikrocontroller
hernehmen, und man muß die Zeiten von der gleichen Rotorposition
miteinander vergleichen. Innerhalb einer Motorumdrehung variieren die
Werte recht stark, da hat jeder Motor seinen eigenen 'Fingerabdruck'.
Erstaunlich ist, wie sensibel da das Gehör ist, schon Ausreißer, die nur
einen Timer-Tick (bei 16MHz Takt) daneben sind, sind zu hören, wenn der
Motor leise läuft.
Noch viel Spaß beim tüfteln, das ist ein hochinteressantes Thema, will
da auch mal wieder (hobbymäßig) ran.
Mit freundlichen Grüßen - Martin