Hallo alle Zusammen, Ich beschäftige mich in den letzten Wochen mit dem Betrieb von BLDC Motoren und deren Regler. Das Funktionsprinzip habe ich (denke ich zumindest) soweit verstanden. Ich habe angefangen nach folgender Anleitung die Software zu schreiben : http://www.mikrocontroller.net/articles/Brushless-Controller_f%FCr_Modellbaumotoren Leider läuft mein Motor nur sehr unruhig und ist dabei extrem laut. Kurze Erklärung zu meiner Hard&Software : Hardware : - LR7843 Mosfets mit IR2101S Mosfet Treiber - 2212 Motor mit 900kv und ca. 200Watt - BMF Messschaltung nach : http://www.mikrocontroller.net/articles/Datei:BLDC_BEMF_schaltung.png Software : - 4Khz PWM im Fast Betrieb - Case für Kommutierung - Vergleich der Analogen Messwerte vom BMF Feedback für Case "state" Ermittlung Was mir soweit klar ist : - Der Motor muss von Hand angedreht werden , da noch kein Anlauf vorhanden ist - Analog Comparator verwenden für Positionsmessung Den Comparator habe ich noch nie verwendet , deswegen habe ich es erstmal ohne gelöst , was eigentlich auch bei geringer Drehzahl ausreichend funktionieren sollte .... denke ich ^^ Ich wäre sehr Dankbar wenn evtl. mal einer darüber schauen könnte ob ich einen generellen Fehler habe. Bislang kann ich mir nicht erklären warum der Motor sehr Schlecht bis garnicht dreht. Vielen Dank! Und einen Schönen Start in die neue Woche :) Grüße, Jim
Habe gerade noch verschiedene DAC und ADC Sample Rate Frequenzen getestet , aber auch das bringt keine Änderung.
So wie ich dein Programm deute schaltest du in den jeweils nächsten Zustand, sobald die Spannung der unbestromten Phase über den virtuellen Sternpunkt steigt. Das ist zu früh, da dieser Zeitpunkt eigentlich die Mitte der aktuellen Phasenbestromung darstellt. Da solltest du noch eine drehzahlabhängige Zeit warten, bevor du die Kommutierung weiterschaltest.
> 4Khz PWM im Fast Betrieb
kommt mir etwas arg niedrig vor. Also das der Motor kreischt wie sau
wundert mich gar nicht. ;-)
Tu die PWM mal ordentlich erhöhen. Idealerweise über 16Khz, damit man
zumindest nichts mehr hört. Zudem kann man die höhere Frequenz besser
rausfiltern.
Habe die PWM Frequenz zunächst so klein gewählt , weil mir nicht klar wahr wie stark sich die Schaltverluste der Mosfets äußern wenn sie höher ist. Abgesehen von den 4khz Tönen , ist der Motor trotzdem sehr laut... Generell kann die PWM Frequenz aber nicht der Grund des Fehlers sein , oder ? werde morgen mal auf 32khz Phase PWM umstellen ... mal schauen :) Danke !
@Floh : kann man diese Zeit Fix bestimmen ? oder ist sie von anderen Faktoren wie Motorlast o.ä. abhängig ? Kannst du mir evtl. sagen wie ich am besten diese Zeit bestimmen/berechnen soll ? Danke !
Wie sieht denn der Motorstrom aus ? Kannst Du den mal in allen 3 Phasen messen ?
@ah: messe ich morgen mal nach @floh: danke ! schau ich mir gleich mal an Generell bin ich mir auch noch nicht 100% sicher ob ich die ADC Werte richtig vergleiche. Was ich noch vergessen hatte zu sagen: Wenn ich state einfach mit jedem Durchgang stur hochzähle , also ohne kommutierung , läuft der Motor relativ gut.
Zu der Delay Zeit nach der Kommutierung : Laut dem APP Note von Atmel verstehe ich es so , das die Wartezeit die gleich zeit ist , wie zwischen der letzten Kommutierung und das kreuzen der back emf der floating phase. Kann mir das einer so bestätigen ? Generell würde es sich dann anbieten , noch einen Timer dafür zu verwenden .... denke ich.
keiner ? Ich stelle mir das ganze so dann vor : - Timer mit Output Compare Interrupt für die nächste Kommutierung - Ablaus : ...Kommutieren -> Timer Reseten -> BMF Zero Cross Detection -> Aktuelle Timer Zeit mal 2 als Output Compare Interrupt Wert -> Interrupt -> Kommutieren ... Wäre toll wenn einer von euch kurz seine meinung dazu sagt , ob das so funktionieren könnte :) 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.