Motordrehzahl reduzieren, ohne zu blockieren

7

Also habe ich bisher drei kleine Bots gebaut.

Einer mit einem Himbeer-Pi (6V-Motoren), einer mit einem Arduino (12V-Motoren) und einer mit einem Arduino, aber einem gehackten entfernten Auto (7ish, Volt-Motoren):
Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

Das Problem, das ich bei all diesen habe, ist, dass die Motoren so schnell drehen, dass das Auto in wenigen Sekunden gegen etwas stößt. (Ich habe ein kleines Haus)

Ich habe versucht, die Geschwindigkeit mit PWM zu steuern, aber bei etwas weniger als Vollgas (255) verklemmen sie sich und können das Gewicht, das ich ihnen auferlegt habe, nicht tragen.

Sollte ich eines dieser Chassis kaufen, das den Motor verlangsamt und ihm mit einem Getriebe Drehmoment verleiht, oder kann ich sonst noch etwas tun?

Gideon
quelle

Antworten:

8
  1. Getriebe sind wahrscheinlich die beste Wahl, wenn Sie nie schnell fahren möchten.
  2. Möglicherweise können Sie dafür sorgen, dass es besser funktioniert, wenn Sie ihm gepulste Leistung geben (PWM in gewisser Weise, aber mit einer Geschwindigkeit gepulst, die niedrig genug ist, dass der Motor tatsächlich in Gang kommt und dann jedes Mal langsamer wird. Siehe Steuern von Motoren in Gegenwart von Reibung und Spiel für Details zur Technik.
  3. Sie können es mit ziemlicher Sicherheit verbessern, wenn Sie die Motoren mit einer Art Drehzahlregelung versehen. Encoder sind am besten geeignet, aber mit der Back-EMF-Geschwindigkeitsmessung können Sie erstaunliche Dinge tun. Für jede dieser Techniken müssen Sie mit einem System arbeiten, das nicht trivial ist, und keines von beiden wird alle Probleme lösen, es sei denn, Sie verwenden ein Getriebe (aber mit der Geschwindigkeitsregelung können Sie ein viel höheres Übersetzungsverhältnis haben von oben nach unten, während die Dinge glatt bleiben).
TimWescott
quelle
Hey danke für deine Antwort. Ich habe versucht, (1)einen 45 U / min Motor + Getriebe zu bekommen. Funktioniert bisher anständig. Über Punkt (3), ich habe von diesen Encodern von der Rover 5-Plattform gehört , ich verstehe, es wird mir helfen zu scannen, wie schnell die Motoren laufen? Vergib mir meine Unwissenheit, aber wie wird das wirklich helfen? Unterscheidet sich die vom Arduino ausgegebene Geschwindigkeitsregelung von der tatsächlichen Geschwindigkeit? Was meinst du mit geschlossenem Regelkreis ?
Gideon
Wikipedia hat die Skinny auf Drehgebern: en.wikipedia.org/wiki/Rotary_encoder . Die auf den Bildern sind allerdings beängstigend. Ja, ein Drehgeber kann helfen. Ich kenne Arduino nicht, aber ich wette, dass ihre "Geschwindigkeitsregelung" nur eine Antriebsspannung ist. Wenn ja, kann das Erfassen der Motordrehzahl und das Einstellen der Antriebsspannung enorm helfen. Die Geschwindigkeit zu erfassen und sie zum Antreiben der Motordrehzahl zu verwenden, ist das, was ich unter Regelung verstehe - wieder einmal
hilft
Ja, auf dem Arduino kann ich PWM-Impulse nur langsamer oder schneller ausführen, um die Geschwindigkeit zu steuern. Sie sagen also im Wesentlichen, ich sollte PWM-Impulse senden und dann nach der Geschwindigkeit suchen, mit der der Roboter läuft. Der Rover 5 verfügt über Hall-Effekt-Encoder. Wenn ich also einen davon kaufe, werde ich es versuchen. Vielen Dank für Ihre Hilfe.
Gideon
5

Wenn Sie die Spannung am Motor PWM, steuern Sie effektiv den Strom zum Motor, der sich auf das Drehmoment (Beschleunigung) bezieht. Das "Verklemmen", das Sie bemerken, ist im Grunde die Unfähigkeit des Motors, Reibung zu überwinden.

Stellen Sie sich die PWM als das Gaspedal in Ihrem Auto vor. Um eine konstante Geschwindigkeit zu erreichen, können Sie sie ganz nach unten drücken, bei Erreichen Ihrer Zielgeschwindigkeit allmählich zurückfahren und sie dann modulieren, um diese Geschwindigkeit beizubehalten.

Ein Gleichstrommotor, der mit einer festen Spannung angetrieben wird, verliert Drehmoment, wenn er schneller und schneller läuft. Deshalb beschleunigt es nicht bis ins Unendliche. Durch Herunterschalten wird die Höchstgeschwindigkeit am Ausgang effektiv begrenzt. Es gibt Ihnen mehr Drehmoment am Ausgang, aber Sie tauschen die Geschwindigkeit aus.

Wie Tim bemerkt, benötigen Sie einen geschlossenen Geschwindigkeitsregelkreis, der über diesen läuft, sodass Sie einen Geschwindigkeitssollwert einstellen und der Regelkreis die PWM sehr schnell auf und ab erhöht, um die Geschwindigkeit aufrechtzuerhalten. Dazu benötigen Sie eine Möglichkeit, die Geschwindigkeit zu messen. Sobald Sie das haben, können Sie möglicherweise mit einem relativ einfachen PI-Regler auskommen.

Guy Sirton
quelle
@ MarkBooth: Danke für den Kommentar! Es ist eine etwas unvollständige Analogie, aber der Punkt ist, dass die Geschwindigkeit selbstlimitierend ist und deshalb das Schlagen eines Getriebes auf dieses System zu einer niedrigeren Höchstgeschwindigkeit führt. In einem Gleichstrommotor ist er effektiv durch die Gegen-EMK begrenzt, und meine unvollständige Analogie dazu ist die "rote Linie". Ich werde mir eine Möglichkeit überlegen, die Antwort zu erweitern.
Guy Sirton
@ MarkBooth: Ein Getriebe bietet Ihnen nicht wirklich mehr Steuerbarkeit. Es kann Ihre Stabilität verbessern, wenn Ihr Feedback am Motor ist, da jetzt die reflektierte Last kleiner ist. Es wird immer die Linearität und die Steifigkeit des Systems reduzieren. Ich werde mir allerdings eine bessere Analogie
vorstellen
@ MarkBooth: Es hängt wirklich davon ab, ob Sie über die Steuerung der Last oder des Motors nachdenken. Ihre Fähigkeit, die Last zu steuern, hängt davon ab, wie steif sie an Ihren Motor gekoppelt ist ...
Guy Sirton
Vielen Dank für die Änderungen Guy, kann Ihre Antwort jetzt nicht bemängeln. Ich denke, wir haben unterschiedliche Vorstellungen von Kontrollierbarkeit . * 8 ')
Mark Booth
0

Sie müssen einen PID-Algorithmus verwenden, um die Drehzahl der Motoren zu steuern. Auf diese Weise können Sie sie so langsam drehen lassen, wie Sie es benötigen, während Sie dennoch das Drehmoment erhalten. Der PID-Algorithmus muss die Drehzahl Ihres Motors irgendwie messen. Der typische Weg besteht darin, einige optische Encoder in den Rädern zu platzieren. Dies ist ein Muss für jeden Rover. Außerdem gibt Ihnen die Drehzahl eine sehr gute Schätzung der Position. Das hilft beim Navigieren und Abbiegen.

Sie können die optischen Codierungen von einer alten Maus stehlen, die mit einer Kugel.

aguaviva
quelle
Das Einfügen von "irgendwie" in die Antwort legt nahe, dass etwas mehr Details erforderlich sind ...
Andrew