Spiel im DC-Getriebemotor minimieren

Ich bin neu hier, arbeite eigentlich an Anwendungsprogrammierung.

Als Hobby habe ich angefangen, mit Arduino- und Gleichstrommotoren zu arbeiten. Bald hatte ich Probleme mit dem Spiel. Im Moment verwende ich einen Drehgeber, der 4000 Zählungen pro Umdrehung liefert.

Dies ist mit einem 12-V-Planetengetriebe-Gleichstrommotor. Ich habe es auch mit Stirnradgetriebemotor versucht.

Ich kann den Motor steuern. Aber es ist nicht sehr genau. Die Differenz zwischen den Zählungen ändert sich jedes Mal.

Wenn ich zum Beispiel versuche, den Motor bei 2000 Zählungen zu stoppen, stoppt er irgendwo zwischen 2004-2016 Zählungen. Dieses Problem ist auf das Spiel zurückzuführen. Ich verband den Encoder mit einer Zahnriemenscheibe mit der Motorwelle.

Was ist, wenn ich eine Scheibe an der Motorwelle befestige und sie mit einem Magneten stoppe ? Hat schon mal jemand so etwas oder eine andere preiswerte Idee ausprobiert.

Ich komme aus Indien und bekomme hier nicht so einfach präzise Produkte. Bei Bedarf kann ich Bilder vom Aufbau posten. Soll ich auf Gleichstrommotor verzichten und mich für Schrittmotor entscheiden?

Dies ist nicht auf Spiel zurückzuführen, da der Motor bei 2000 Zählungen stoppen würde und kein Spiel kennt. Sie können das Spiel nur mit einer Skala überprüfen: wie der Motor bei 2000 Zählern stoppt, dann wenden Sie eine externe Kraft an und Sie haben +/- mm Spiel, das wird als Spiel bezeichnet.
Es gibt mechanisches Spiel. Gibt es trotzdem, um es zu vermeiden
Ja, wenn Ihr Encoder an einer Last befestigt ist, sollte der Motor den Positionsfehler jedes Mal verfolgen.
Die einzige Möglichkeit, Spiel zu eliminieren, besteht darin, ein mechanisches Setup zu erhalten, das kein Spiel hat. Schrägverzahnungen wären besser als normale, aber immer noch nicht perfekt. Andernfalls sind Sie auf Algorithmen beschränkt, wie sie ein manueller Maschinist bei einem Werkzeug mit herkömmlichen Trapezschrauben verwendet - verlangsamen Sie, wenn Sie sich dem Sollwert nähern, und achten Sie darauf, ihn nicht zu überschreiten. Wenn Sie dies tun, müssen Sie mehr als die Spieldistanz zurücksetzen und sich in derselben Richtung erneut annähern. Ein einfacher PID mit Spiel in seinem Feedback wird entweder oszillieren oder an einer ungenauen Position anhalten.
Sie stellen federbelastete Anti-Backlash-Zahnräder her. (Google)
Anti-Baclash-Zahnräder sind in Indien selten und sehr teuer
@Marko Encoder ist an der Getriebeausgangswelle befestigt. Ist das korrekt. Auch möchte ich erwähnen, dass die Last mit 60 mm Länge direkt mehr dreht. Genau wie ein Arm
Um das totale Spiel zu vermeiden, müssen Sie den harmonischen Antrieb verwenden.

Antworten (3)

Warum verwenden Sie keinen Regelkreis, um den Zählfehler herauszuintegrieren? Sie möchten bei 2000 anhalten und ohne Controller stoppt es vielleicht bei 2010. Wenn Sie ein Feedback-System hätten, könnte es bis 2016 überschwingen, aber das Feedback würde die Ausgangswelle schnell zurück auf Position 2000 bringen.

Können Sie mit dieser Art von Überschwingen leben? Es kann mehr Raffinesse eingebaut werden, so dass der Motor zu verzögern beginnt, wenn die Position 2000 erreicht ist. Ein 3-Term-Controller könnte das sein, was Sie brauchen, und das grundlegende Überschwingen könnte möglicherweise halbiert oder mehr werden.

Wenn sich der optische Encoder jedoch nicht auf der Ausgangswelle befindet, funktioniert er nicht.

Danke für die schnelle Antwort. Ich habe den Encoder mit einer Zahnriemenscheibe an der Abtriebswelle befestigt, das ist kein Problem, oder? und ich verwende einen Gleichstrommotortreiber, der den Gleichstrommotor sofort unterbricht (anhält). Wie Sie vorgeschlagen haben, es wieder in Position zu bringen, würde es viele Probleme geben, wenn es den angegebenen Punkt bereits überschritten hätte. Zweitens haben Sie vorgeschlagen, den Motor zu verlangsamen. Ich denke, das würde wirklich funktionieren, wenn sich der Motor einige Zeit ununterbrochen dreht. Was, wenn ich was als nächstes nehme von 2000 auf 2020 verschiebe. Hier springt glaube ich der Motor an und die Reststrecke wird schon vom Backlash zurückgelegt.
Feedback hilft nicht, wenn mechanisches Spiel vorhanden ist. Höchstwahrscheinlich jagt das System um den Sollwert herum hin und her.
Ja, es gibt ein geringfügiges mechanisches Spiel, wie ich in Encoderpunkten mit manuellen Wellenbewegungen lesen kann
Ich bin bereit, den Motor zu wechseln, er liefert 38 kgcm Drehmoment. Was ist nun das Äquivalent dessen, was ich kaufen sollte? Was ist auch mit dem fettgedruckten Text in meiner Frage, wird das funktionieren?
@WhatRoughBeast Es gibt viele Systeme (wenn nicht die meisten), die ein mechanisches Spiel haben und Rückkopplungssysteme verwenden und mit den Problemen leben, die das Spiel verursacht. Der Nettonutzen des Feedbacks selbst bei Vorhandensein von Gegenreaktionen kann dennoch wertvoll sein.
@Aadam - Das Problem ist nicht der Motor, sondern das Getriebe. Achten Sie auf die Kommentare zu Ihrer Frage.
Ich verstehe, dass es aufgrund von Zahnrädern ein Spiel gibt. Also mache ich es falsch, den Encoder mit der Getriebewelle zu befestigen? Versuchst du das zu sagen? Wie kann es helfen, wenn ich den Encoder an der Motorwelle befestige? Darüber hinaus. Ich nehme Position vom Encoder. Das bedeutet, dass mein System Feedback hat, richtig? Bitte korrigieren Sie mich. Ich kann auch völlig falsch liegen
@Aadam, wenn Sie den Encoder auf der Abtriebswelle haben, dann ist das der richtige Weg. Es tut mir leid, dass meine Antwort diesbezüglich nicht klar war.

Spiel wird durch die nicht eng zusammenpassenden Zahnradzähne verursacht. Die Folge ist, dass die Getriebeausgangswelle je nachdem, ob sie in die eine oder andere Richtung gezogen wird, in einer anderen Position sitzt. Wenn die Last immer entgegen der Fahrtrichtung des Getriebes zieht, bleiben die Zahnräder zusammen und Spiel sollte kein Problem sein. Wenn die Last in beide Richtungen ziehen kann, können Sie sie möglicherweise mit einer Feder zu einer Seite vorspannen.

Ich denke jedoch, dass Ihr Problem nicht das Spiel ist, sondern die Trägheit .

Wenn ich versuche, den Motor bei 2000 Zählungen zu stoppen, stoppt er irgendwo zwischen 2004-2016 Zählungen.

Dies deutet darauf hin, dass das Getriebe nicht stoppt, sobald Sie den Motor stoppen. Wenn Sie den Motor von der Stromversorgung trennen, stoppt er nicht sofort, da es einige Zeit dauert, bis der Anker und die Zahnräder abgebremst sind, und die Last möglicherweise auch eine Trägheit aufweist, die den Getriebeausgang mitzieht. Die einzige Möglichkeit, dies zu beheben, besteht darin, den Motor anzuhalten, bevor die Zählung dort ankommt, wo Sie sie haben möchten. Wenn Sie beispielsweise wissen, dass es mit 10 Zählungen weiterläuft, können Sie bei 1990 Zählungen anhalten und es bis 2000 weiterlaufen lassen.

Eine genaue Nachlaufzählung zu erhalten, kann schwierig sein, wenn die Last variiert. Sie können dieses Problem reduzieren, indem Sie den Motor verlangsamen, wenn er sich der Zielposition nähert, dann dauert es weniger Zeit zum Stoppen und die Variation des Nachlaufzählers ist geringer. Wenn Sie die Motorgeschwindigkeit proportional zum Positionierungsfehler machen, wird sie automatisch langsamer und langsamer, wenn sie sich der Zielposition nähert.

Ich stimme allem zu, was Sie gesagt haben. Das Problem ist, dass die Fehleranzahl variiert. Auch ist es für vorwärts und rückwärts unterschiedlich. Ein weiteres Problem ist, was ist, wenn ich mich um wenige Zählwerte bewegen möchte. Wie von 0 bis 10. Wie kann ich in diesem Fall den Positionierungsfehler minimieren. Da wäre die Verschiebung fast gleich Fehler
Verlangsamen Sie den Motor, bis jede Zählung länger dauert, als der Motor/das Getriebe zum Stoppen benötigt. Dann sollte es höchstens noch eine Zählung geben.

Sie können das Relais verwenden, um den Gleichstrommotor schnell zu stoppen, und einen Stromkreis herstellen, der den Gleichstrommotor kurzschließt, nachdem sich der Relaiskontakt geändert hat.

Ein Relais ist wahrscheinlich eine ziemlich schlechte Wahl für die Motorsteuerung.