Motoren reagieren bei Hochfrequenz-PWM unterschiedlich


8

Wir bauen einen Junior-Fußballroboter und haben gerade unsere brillanten Motoren von Maxon bekommen. Wenn Sie den PWM-Timer auf niedrige Frequenzen (ca. 39 kHz oder 156 kHz) einstellen, verhält sich der Roboter wie erwartet. Dies führt jedoch zu einigen Problemen.

  1. Die Batterien werden stark mit Strom versorgt (ca. 1,5 A für 3 Motoren, was viel zu hoch ist).
  2. Der hohe Strom führt dazu, dass sich unsere Motortreiber (L6203) sehr schnell erwärmen und selbst Kühlkörper ihnen nicht helfen.
  3. Die Motoren machen so ein schlechtes Geräusch, dass sie schreien und das ist nicht normal.

Wenn ich dagegen den Timer auf Hochfrequenzen (wie 1250 kHz oder 10000 kHz) konfiguriere, fällt der Strom auf 0,2 A ab, was ideal ist und die Sounds leiser werden. Dies führt jedoch zu dem Problem, dass unsere 3 Motoren, wenn sie auf ihre höchste Drehzahl eingestellt sind (PWM auf 255 eingestellt), nicht mit derselben Drehzahl laufen. Als ob einer von ihnen langsamer läuft als andere, wodurch sich der Roboter auf eine bestimmte Seite dreht und unsere Handhabungsfunktionen nicht richtig funktionieren.

Als er jemanden fragte, sagte er mir, dass die Fahrer nicht gleich auf Frequenzen reagieren, was zu unterschiedlichen Geschwindigkeiten führt. Da der Unterschied bei niedrigen Frequenzen sehr gering ist, werde ich ihn nicht bemerken, aber bei höheren Frequenzen wird der Unterschied größer und spürbar.

Gibt es eine Problemumgehung für dieses Problem? oder sollte ich weiterhin niedrige Frequenzen verwenden?

PS: Ich verwende ATMEGA16 als Hauptcontroller mit einem externen 10-MHz-Quarz.


Nur damit wir klar sind, sind alle Treiber identisch?
Joe Baker

Ja, die Fahrer sind alle identisch.
Miro Markaravanes

Gibt es eine bestimmte Grenzfrequenz, bei der es problematisch wird? Haben Sie auch zufällig Zugriff auf einen Logikanalysator?
Joe Baker

Ich weiß nicht, ob es eine Grenzfrequenz gibt oder nicht ... Ich vermute jedoch, dass der 10-MHz-Kristall nicht den erforderlichen Takt für 3 Motoren erzeugen kann. Ist das überhaupt möglich? Was meinst du mit Logikanalysator? Ich besitze jedoch ein Oszilloskop.
Miro Markaravanes

Ich bezweifle sehr, dass es der Kristall ist. Ein Logikanalysator ist ein spezieller Bereichstyp (oder manchmal ein Addon-Modul für einen vorhandenen Bereich). Ich habe mich einmal mit einem Jitter-Problem in PWM-Signalen befasst, das dazu führte, dass Servos wackelten. Wir haben einen Salae ( saleae.com/logic ) verwendet, um eine große Probe (~ 10k Puls) der Impulse bei einer bestimmten Breite zu entnehmen und den Jitter durch Berechnung der Standardabweichung der Breiten des Probensatzes zu messen. Es ist möglich, dass Sie Ihren Bereich verwenden, um nach ähnlichen Problemen zu suchen, aber Sie können wahrscheinlich nicht sofort eine ausreichend große Stichprobe für stdev-Berechnungen erhalten.
Joe Baker

Antworten:


3

Obwohl ich nicht weiß, wie ich die Grundursache des Problems beheben kann, besteht eine Problemumgehung darin, Feedback mit geschlossenem Regelkreis zu verwenden. Wenn Sie die Geschwindigkeit jedes Rads messen können (z. B. mit Encodern), können Sie die Geschwindigkeit Ihrer Räder mithilfe eines PID-ähnlichen Algorithmus so einstellen, dass der Roboter geradeaus fährt.

Für diese Aufgabe wäre auch ein Kompass oder ein Gyroskop geeignet.


Ich verwende bereits einen Kompass und eine PID für meine Spin-Back-Funktionen, um den Roboter in die richtige Richtung zum gegnerischen Ziel zu bringen. Ihre Antwort würde jedoch funktionieren, aber ich müsste das Problem lösen, anstatt nur die Geschwindigkeit zu reduzieren, bis der Roboter geradeaus fährt. Thx
Miro Markaravanes

@MiroMarkarian - Der Punkt ist, dass wenn Sie einen PID-Regelkreis pro Motor haben, es keine Rolle spielen sollte, dass diese unterschiedlich reagieren, da der PID-Regelkreis den PWM-Ausgang für jeden Motor so anpasst, dass der Encoder am Rad die gewünschte Geschwindigkeit und Position verfolgt .
Mark Booth

0

Zwei Probleme mit der Hardware,

a) Das Ein- und Ausschalten des Chips dauert einige Zeit. Während des Ein- und Ausschaltens mehr aufheizen. Es macht also keinen Sinn, zu hohe Frequenzen zu verwenden. Im Allgemeinen reichen maximal 10, 15 oder 20 kHz außerhalb des menschlichen Ohrbereichs aus.

Weitere Informationen (Erläutern von Frequenzeffekten anhand von Beispielen für 20 Chips vieler Unternehmen) (insbesondere die Angaben zur Ultraschallfrequenz 20 kHz) finden Sie unter
http://www.pololu.com/category/11/brushed-dc-motor-drivers

b) Die Motorspule hat eine Induktivität. Zu hohe Frequenz reduziert Stromfluss, geringes Drehmoment, niedrige Drehzahl.

Anscheinend scheinen 0,5 A pro Motor im normalen Bereich zu liegen. Wahrscheinlich bei 6, 7,2 oder 12 Volt einige Watt bis 10 Watt pro Motor für eine schnelle Roboterbewegung.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.