Forum: Mikrocontroller und Digitale Elektronik Knack-Geräusch bei BLDC


von Fragender (Gast)


Lesenswert?

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!

von Fragender (Gast)


Lesenswert?

Achja...
Die Knackgeräusche treten nur auf, wenn sich der Motor im Leerlauf 
befindet. Mit Luftschraube hört man kein Knacken.

von Martin S. (led_martin)


Lesenswert?

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

von Georg A. (georga)


Lesenswert?

Die Lager sind wirklich in Ordnung und nicht durch den Austausch etwas 
angeknackst?

von Fragender (Gast)


Lesenswert?

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.

von Max D. (max_d)


Lesenswert?

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).

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

von Ingo (Gast)


Lesenswert?

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.

von Fragender (Gast)


Lesenswert?

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.

von Ingo (Gast)


Lesenswert?

Nimm doch mal auf das knacken

von Fragender (Gast)


Angehängte Dateien:

Lesenswert?

Ingo schrieb:
> Nimm doch mal auf das knacken

Hab mal ca. 10s davon aufgenommen.

von Fragender (Gast)


Lesenswert?

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!

von Martin S. (led_martin)


Lesenswert?

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

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.