Ich erwäge, einen Bürstenmotortreiber mit einer H-Brücke und PWM zu fahren. Ich möchte die Motordrehzahl unabhängig von der Motorlast grob steuern (stellen Sie sich einen kleinen Roboter vor, der Hügel erklimmt/absteigt).
Da ich weiß, dass, wenn Sie einen Bürstenmotor mit einem Konstantspannungsnetzteil betreiben, er sich immer mit ungefähr der gleichen Geschwindigkeit dreht, wobei der aufgenommene Strom die Last widerspiegelt (umgekehrt, fahren Sie ihn mit einem Konstantstromnetzteil und dem Motordrehzahl und -spannung variieren je nach Last).
Wenn man das oben Gesagte kennt, scheint es einfach, über einen A/D eine Rückmeldung zu erhalten, um die an den Motor angelegte Spannung zu lesen und die PWM per Software optimieren zu lassen, um die Spannung am Motor entsprechend der geforderten Geschwindigkeit einzustellen.
Ich würde einen LC in der Schaltung benötigen, da ich die Spannung mit PWM-Rauschen nicht lesen könnte.
Macht das oben Sinn?
Ihre Idee ist falsch und wird nicht funktionieren. Aber es gibt eine sehr ähnliche Idee, die funktionieren wird.
" ein bürstenbehafteter Motor mit einer Konstantspannungsversorgung dreht sich immer ungefähr mit der gleichen Geschwindigkeit " Nein. Wenn Sie ihn stark belasten, wird er stark langsamer.
Ihre Idee besteht darin, im Grunde die durchschnittliche Spannung an den Motorklemmen zu überwachen und die PWM so einzustellen, dass eine konstante durchschnittliche Spannung an den Motor angelegt wird, um eine konstante Drehzahl mit Drehmoment aufrechtzuerhalten (dies würde auch die Überwachung der Batteriespannung erfordern). Dies wird jedoch keine konstante Geschwindigkeit mit Drehmoment aufrechterhalten. Es wird nur ein Verhältnis zwischen der Batteriespannung und der an den Motor angelegten Durchschnittsspannung beibehalten, wenn die Batteriespannung abnimmt, wenn sie entleert wird. Wenn dies Ihr Ziel ist, ist es auch einfacher, die Batteriespannung direkt zu messen und die PWM entsprechend anzupassen. Keine Notwendigkeit, die unordentliche Spannung an den Motorklemmen zu messen. Die Motordrehzahl ändert sich jedoch immer noch, wenn sich das Drehmoment ändert.
Was Sie wirklich wollen, ist, die Gegen-EMK (BEMF) des Motors zu messen und die PWM anzupassen, um die BEMF konstant zu halten. Die BEMF ist die Spannung, die ein Motor im Leerlauf erzeugt. Mit anderen Worten, dies ist die Spannung, die der Motor erzeugt, wenn er rückwärts angetrieben wird und als Generator fungiert. Aber jetzt ist die Frage, wie messen Sie die Spannung über dem Motor, während er im Leerlauf ist, wenn Sie ihn mit einer PWM-Wellenform antreiben, damit er nicht im Leerlauf ist?
Nun, erstens möchten Sie die Motorklemmenspannung nicht kontinuierlich unkontrolliert abtasten, während PWM stattfindet, da die Ansteuerspannung (wenn die Schalter geschlossen sind und Strom durch den Motor senden) mit der BEMF-Spannung gemischt wird (wenn die Schalter sind offen und es fließt kein Strom durch den Motor)
Wenn Sie die BEMF beim PWMen des Motors abtasten möchten, müssen Sie die Abtastung durchführen, wenn Sie wissen, dass beide HI-Seitenschalter offen sind, damit der Motor nicht angetrieben wird, aber Sie möchten, dass ein LO-Seitenschalter geschlossen ist, damit Sie es sind Messung gegen GND.
Ihre MCU kann Ihrem PWM-Timer erlauben, ADC-Abtastungen auszulösen, sodass Sie sie direkt abtasten und ignorieren können, wenn der Motorstrom nicht durch den Motor gezwungen wird, und ihn zu allen anderen Zeiten ignorieren. Benötigt möglicherweise eine RC-Filterung, aber nicht so etwas wie einen LC.
Wenn Sie dies nicht tun können, gibt es weniger elegante Problemumgehungen, wie z. Im schlimmsten Fall könnten Sie das PWM-Signal von einem Ausgangspin direkt zurück in einen Interrupt-Pin speisen.
Da ich weiß, dass, wenn Sie einen Bürstenmotor mit einem Konstantspannungsnetzteil betreiben, er sich immer mit ungefähr der gleichen Geschwindigkeit dreht,
Ungefähr die gleiche Geschwindigkeit, aber nicht die gleiche. Wenn Sie den Motor stärker belasten, sinkt seine Drehzahl linear bis zum Stillstand auf Null. Dies wird durch die Innenwiderstände des Motors (Bürsten, Ankerwicklungen usw.) verursacht, die die effektive Antriebsspannung reduzieren. Alle anderen Reihenwiderstände in der Schaltung (z. B. Batterieinnenwiderstand, Controller-Schaltgerät und Rücklaufdiodenwiderstände) haben einen ähnlichen Effekt.
Es gibt mehrere Möglichkeiten, diesen Effekt zu kompensieren. Eine besteht darin, die Gegen-EMK während der PWM-Ausschaltperiode zu messen und sie in einer Rückkopplungsschleife zu steuern, wie von DKNguyen vorgeschlagen. Eine Variation davon ist die Verwendung eines optischen oder Hall-Effekt-Sensors, der die Geschwindigkeit direkt misst.
Eine andere Möglichkeit besteht darin, den Strom zu messen und die PWM proportional zu erhöhen, um einen „negativen Widerstand“ zu erzeugen, der die positiven Widerstände in der Schaltung aufhebt. Der Widerstand kann nicht vollständig aufgehoben werden, da die Geschwindigkeit instabil wird, wenn die Summe negativ wird, aber er kann die Geschwindigkeitsvariation stark reduzieren, ohne dass eine ausgefallene Gegen-EMK-Messung und eine vollständige PID- Schleife erforderlich sind. Dieses Verfahren wird häufig in Kassettenrecorder- und Plattenspielermotoren verwendet.
Zusammenfassend lässt sich sagen, dass meine ursprüngliche Idee (mit einem groben Konstantspannungsnetzteil) aufgrund des Widerstands im Stromkreis und im Motor nicht funktioniert.
Die Verwendung von BEMF könnte die Anzahl der Teile tatsächlich reduzieren (ein Ziel, das ich ursprünglich hätte nennen sollen) und würde tatsächlich funktionieren.
Vielen Dank an DKNguyen und Bruce Abbott für Ihre durchdachten und gründlichen Antworten.
DKNguyen
Bruce Abbott
DKNguyen
Bruce Abbott
Tom Cumming