Forum: Mikrocontroller und Digitale Elektronik BLDC Regler Problem auf Basis STM32F103


von Tester_BLDC (Gast)



Lesenswert?

Hallo liebe Forengemeinde,

ich bin Hobbybastler mit Vorkenntnissen zum Thema AVR und STM32 
Programmierung, sowie ein wenig Elektronik.
Bei dem folgenden Artikel 
https://www.mikrocontroller.net/articles/Brushless-Controller_f%C3%BCr_Modellbaumotoren 
hat mich die Lust zum Basteln mal wieder gepackt.
Nachdem ich viel über das Thema gelesen habe, habe ich mir eine 
Versuchsplatine, auf Basis des oben genannten Artikels, gemacht und 
diese nun in Betrieb genommen. Ziel ist es einen Regler für einen 
Fahrrad-/Felgenmotor ohne Hall Sensoren für eine Spannung von 26 Volt 
mit 10 - 15 Ampere zu realisieren. Der Motor muss nicht von Stand an los 
laufen können. Mir reicht der Betrieb wenn dieser bereits in Bewegung 
ist.

Jedoch bin ich mittlerweile an einem Punkt angekommen, an dem ich nicht 
weiter komme und auf eure Hilfe hoffe.

Zum Testen habe ich mir einen kleinen Modellbaumotor bei ebay gekauft 
und betreibe diesen aktuell bei 10 Volt. Das ganze wird über ein 
regelbares Netzteil mit max 5 Ampere versorgt.

Der Regelbetrieb des Motors funktioniert, lasst es mich mal vorsichtig 
sagen, sehr bescheiden. Mit der Hand gebe ich dem Motor einen kleinen 
Stups, dann dreht sich dieser. Jedoch hört man deutlich, dass 
Fehlkommutierungen dabei sind und dies funktioniert auch nur bei kleinen 
Gasstellungen bis ca. 25 % Duty Cycle der PWM. Darüber blockiert er 
komplett und die Strombegrenzung des Netzteils kommt. Am Oszi ist klar 
erkennbar, dass die Interrupts zur Detektierung der 
Kommutierungsänderung wild durcheinander kommen. Ein Wunder, dass er 
überhaupt dreht.
Leider kann ich es momentan nicht eingrenzen, ob es hardware- oder 
softwarebedingt ist.

Wenn ich jedoch das Feld für den Motor mit 3 ms zwangskommutiere, sowie 
mit einem Duty Cycle von 5 % betreibe, läuft der Motor sauber und auch 
die Interrupts für die Kommutierungszeitpunkte sehen am Oszi gut aus.

Meine Vermutung ist, dass die Signale vom BEMF nicht gut oder falsch 
sind bzw. noch irgendwo ein Softwarefehler hängt.

Anbei habe ich einen Auszug von meinem Code, Oszibilder und Schaltplan 
gehängt.

Vielen Dank für eure Hilfe.

von Norbert S. (norberts)


Lesenswert?

Moin,

Deine PWM hat 15kHz, der Filter für die BEMF mit 1k und 100nF hat welche 
Zeitkonstante?
Da würde ich mal dran drehen, das ist viel zu niederohmig.

Gruß,
Norbert

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


Lesenswert?

Als Lektüre empfehle ich Application Note AVR444 von Microchip/Atmel, 
dazu evtl. die Schaltpläne des alten Motor Kits MC100.

: Bearbeitet durch User
von Ingo Less (Gast)


Lesenswert?

Deine (Feld-)Drehrichtung stimmt nicht...

von Norbert S. (norberts)


Lesenswert?

Ingo Less schrieb:
> Deine (Feld-)Drehrichtung stimmt nicht...

Ist doch latte, dreht der Motor eben falsch rum oder man tauscht zwei 
Phasen.
Daß die Reihenfolge passt (High-Low-Folge) sieht man ja daran, daß der 
Schrittmotorbetrieb funktioniert.
1k und 100nF filtert einfach nicht.

Gruß,
Norbert

von Tester_BLDC (Gast)



Lesenswert?

Norbert S. schrieb:
> Moin,
>
> Deine PWM hat 15kHz, der Filter für die BEMF mit 1k und 100nF hat welche
> Zeitkonstante?
> Da würde ich mal dran drehen, das ist viel zu niederohmig.
>
> Gruß,
> Norbert

Mh, ich verstehe, dass 100µs etwas kurz ist. Hier hatte ich auch schon 
andere Werte probiert.
Habe mal alle Widerstände des BEMF durch 4,7k Ohm ersetzt. Leider läuft 
der Motor dadurch wesentlich schlechter.
Anbei auch die Bilder von der Messung mit 4,7k Ohm.
Oder sollte man hier noch höher gehen?!


Matthias S. schrieb:
> Als Lektüre empfehle ich Application Note AVR444 von Microchip/Atmel,
> dazu evtl. die Schaltpläne des alten Motor Kits MC100.

Werde mir diese heute Abend mal durchlesen. Habe auch gesehen, dass dort 
der komplette C-Code dabei ist. Vielleicht finde ich ja dort noch etwas.


Ingo Less schrieb:
> Deine (Feld-)Drehrichtung stimmt nicht...

Diese Information, kann ich gerade nicht deuten. Die Drehrichtung des 
Motors, ist mir momentan egal, solange er sich dreht ...
Kannst du es genauer erklären, was du damit meinst?

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.