Hallo Forum, eine theoretische Frage zur Erkennung des Nulldurchgangs bei elektrisch kommutierten, sensorlosen Brushlessmotoren. Annahmen: - Die offene Phase des Motors wird nur während der PWM-Einschaltzeit auf einen Nulldurchgang überwacht. - Die PWM-Frequenz ist wesentlich höher als die maximal erforderliche Kommutierungsfrequenz. - Sämtliche schaltenden MOSFETs können als ideal angenommen werden. Wäre es unter diesen Umständen möglich, die offene Phase lediglich gegen UBAT/2 zu vergleichen? Oder gibt das kein stabiles Drehfeld? Falls die Idee nicht funktionieren sollte, wo ist mein Denkfehler? Ich bin gespannt auf eure Meinungen. Grüße, Querdenker
Querdenker schrieb: > Annahmen: > - Die offene Phase des Motors wird nur während der PWM-Einschaltzeit auf > einen Nulldurchgang überwacht. Das ist ungewöhnlich, aber möglich. Normalerweise wird wegen der Störungen an der offenen Phase nur bei PWM-off gemessen. Beispiel: http://www.pmsm.download.sh/doc/course/bldc%20sensorless/getPDF7.pdf > - Die PWM-Frequenz ist wesentlich höher als die maximal erforderliche > Kommutierungsfrequenz. Sollte auf jeden Fall so sein: ca. 8-16kHz PWM. > - Sämtliche schaltenden MOSFETs können als ideal angenommen werden. > Naja … > Wäre es unter diesen Umständen möglich, die offene Phase lediglich gegen > UBAT/2 zu vergleichen? Oder gibt das kein stabiles Drehfeld? Falls die > Idee nicht funktionieren sollte, wo ist mein Denkfehler? Theoretisch ja (siehe z.B. AN857, Seite 14), wird aber weniger praktiziert, als die Messung während PWM-off gegen den virtuellen Nullpunkt: http://ww1.microchip.com/downloads/en/AppNotes/00857a.pdf Ein stabiles Drehfeld gibt es, wenn die zero-crossings exakt u. störungsfrei erfasst werden und dementsprechend (mit timing) kommutiert wird. Ralf2008
Hallo Ralf2008, vielen Dank für deine Antwort. Ich beschäftige mich schon eine Weile mit dem Thema, aber so ganz habe ich es noch nicht verstanden. Zum Verhältnis aus PWM-Frequenz und Kommutierungsfrequenz: Motordaten: 8 Polpaare, 1.300 RPM/V, Betrieb an 3s => 8 Polpaare * 6 Kommutierungen / (Polpaar * U) = 48 Kommutierungen / U => 1.300 RPM/V * 12.6 V / 60 = 273 U / s => 48 Kommutierungen / U * 273 U / S = 13.104 Kommutierungen / s D.h. bei Maximaldrehzahl liegen beide Frequenzen in der gleichen Größenordnung. Daher wollte ich auf ca. 20 kHz PWM gehen. (Die Werte gelten natürlich für den unbelasteten Motor. Wie das mit Luftschraube aussieht, weiß ich ehrlich gesagt noch nicht.) Hintergrund des Vergleichs der offenen Phase mit UBAT / 2 war, dass ich den Regler gerne ohne Komparatoren nur mit dem internen ADC meines µC aufbauen möchte. Der schafft max. 200.000 sps, niederohmiger Treiber vorausgesetzt, ansonsten entsprechend weniger. Daher wollte ich gerne auf das Multiplexen aller drei Phasen und die Berechnung des Sternpunkts verzichten. Nur so läßt sich eine Abtastrate erreichen, die wesentlich über der maximalen Kommutierungsfrequenz liegt. Oder ist gibt es hier eine bessere Lösung, die mit der skizzierten Hardware umsetzbar wäre? Und noch eine Frage: Ist es sinnvoll, bei hinreichend genauer Erkennung des Nulldurchgangs den Zeitpunkt der nächsten Kommutierung lediglich auf Basis der halben Zeit (30°) zwischen den letzten beiden Nulldurchgängen zu berechnen? Oder sollte man hier über gewisse Zeiträume mitteln, um ein jitterfreies Drehfeld zu bekommen? Bitte entschuldige die vielen Fragen, aber im Selbststudium stößt man da manchmal an seine Grenzen... Grüße, Querdenker
Querdenker schrieb: > um Verhältnis aus PWM-Frequenz und Kommutierungsfrequenz: > > Motordaten: 8 Polpaare, 1.300 RPM/V, Betrieb an 3s > > => 8 Polpaare * 6 Kommutierungen / (Polpaar * U) = 48 Kommutierungen / U > => 1.300 RPM/V * 12.6 V / 60 = 273 U / s > => 48 Kommutierungen / U * 273 U / S = 13.104 Kommutierungen / s > Ja, 8 Polpaare und Betrieb an 3s egeben eine Menge Kommutierungen ... > D.h. bei Maximaldrehzahl liegen beide Frequenzen in der gleichen > Größenordnung. Daher wollte ich auf ca. 20 kHz PWM gehen. (Die Werte > gelten natürlich für den unbelasteten Motor. Wie das mit Luftschraube > aussieht, weiß ich ehrlich gesagt noch nicht.) > > Hintergrund des Vergleichs der offenen Phase mit UBAT / 2 war, dass ich > den Regler gerne ohne Komparatoren nur mit dem internen ADC meines µC > aufbauen möchte. Der schafft max. 200.000 sps, niederohmiger Treiber > vorausgesetzt, ansonsten entsprechend weniger. Daher wollte ich gerne > auf das Multiplexen aller drei Phasen und die Berechnung des Sternpunkts > verzichten. Nur so läßt sich eine Abtastrate erreichen, die wesentlich > über der maximalen Kommutierungsfrequenz liegt. > BLDC-Hersteller wie Kontronik verwenden glaube ich extra schnelle A/D-Wandler-Bausteine bzw. DSPs. Hier wurde die Thematik (ADC o. Analog-Komparator) auch erörtert: http://forum.mikrokopter.de/topic-9362.html Nicht zu vergessen der legendäre rcgroups thread: http://www.rcgroups.com/forums/showthread.php?t=200567&page=2 Der ADC eines Mikrocontrollers ist eher zu langsam, aber einen Versuch ist es wert. In einem Thread gab es eine Erwähnung eines funktionierenden BLDCs mit einem ATmega168, welcher ja nur bis zu 76.9 kSPS bringt. Dort wurde bis zu einem bestimmten Wert, also UBAT/2 (zero crossing), gesampelt und evt. noch eine kleiner Versatz für das Timing addiert, anschließend kommutiert. Persönlich halte ich das für eine elegante und bauteilsparende Lösung (der virtuelle Sternpunkt fällt weg), die aber abhängig von der Güte des A/D-Wandlers ist. Weit verbreitet sind halt die Schaltungen mit Sternpunkt: http://home.versanet.de/~b-konze/ Mit 200 kSPS ist es aber einen Versuch wert. > Oder ist gibt es hier eine bessere Lösung, die mit der skizzierten > Hardware umsetzbar wäre? > > Meiner Meinung nach alles nur eine Frage der Schnelligkeit des ADCs. > Und noch eine Frage: > Ist es sinnvoll, bei hinreichend genauer Erkennung des Nulldurchgangs > den Zeitpunkt der nächsten Kommutierung lediglich auf Basis der halben > Zeit (30°) zwischen den letzten beiden Nulldurchgängen zu berechnen? > Oder sollte man hier über gewisse Zeiträume mitteln, um ein jitterfreies > Drehfeld zu bekommen? > > Man verwendet oft ein sogenanntes Timing (z.B. 7.5° bzw. 22.5° etc), was man als Abweichung von den 30° bezeichnet. Das ist aber genauso wie das eingesetzte Startverfahren (starting ramp table) experimenteller Natur und vom Motor abhängig. > Bitte entschuldige die vielen Fragen, aber im Selbststudium stößt man da > manchmal an seine Grenzen... Viel Erfahrung habe ich damit auch nicht. Nur die Datenblätter etc. gelesen und einige Experimente durchgeführt ... Ralf2008
Besten Dank für die Links. Wieder was dazugelernt... Bzgl. der 200ksps hatte ich mir ehrlich gesagt weniger Sorgen gemacht. Viel kritischer dürfte es sein, in SW nebst ADC noch PWM und Kommunikation sinnvoll und schnell genug bedienen zu können. Aber das läßt sich wahrscheinlich nur über einen Versuch klären... Kannst du näher beschreiben, was du mit Timing meinst? Denkst du dabei an einen lastabhängigen Phasenversatz?? Gibt es eigentlich prinzipielle Vor- und Nachteile (ausser der BEMF-Auswertung), ob man nur highside oder low- und highside mit PWM beaufschlagt? Außerdem muss ich noch durchrechnen, ob die FETs ohne aktiven Freilauf klarkommen. Sind zwar "nur" 10A, aber ich möchte so wenig Bauteilen wie möglich einsetzen. Grüße, Querdenker PS: Das Aufstarten klappt schonmal, wenn auch noch nicht mit der erwünschten Zuverlässigkeit.
Niemand mehr eine Idee, hilfreiche Links, etc...? Viele Grüße, Querdenker
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.