Ich benutze 2 identische Gleichstrommotoren und ein Lenkrad. Die Motoren sind mit dem Motortreiber L293D verbunden und werden von RPi gesteuert .
Der Roboter fährt nicht geradeaus. Es biegt nach rechts ab. Ich lasse beide Motoren mit 100% PWM laufen .
Was ich versucht habe, um den Fehler zu beheben:
- Ich habe die PWM des Rades auf 99% erhöht , aber der Roboter dreht sich nur auf die andere Seite.
- Ich habe das Gewicht des Roboters angepasst und das Problem besteht weiterhin.
Ich habe mal versucht den Motor ohne Last laufen zu lassen. Ist das die Ursache dafür, wie mir später gesagt wurde, dass ein Gleichstrommotor ohne Last sie beschädigt?
Wenn dies nicht der Fall ist, sagen Sie mir bitte, wie Sie dieses Problem lösen können, ohne Sensoren zur Steuerung zu verwenden.
Antworten:
Ich poste dies als Antwort, weil es die Antwort ist.
Das kannst du nicht.
Wie in @ BendingUnit22 erwähnt, versuchen Sie, den Regelkreis zu öffnen. Geräusche und Variationen bedeuten, dass Ihr Roboter niemals eine perfekt gerade Linie fährt.
Die Motoren könnten unterschiedliche Wicklungswiderstände haben (unterschiedliche Antriebsströme / Drehmomente), die Räder könnten unterschiedliche Größen haben, die Räder könnten unterschiedliche Traktionseigenschaften haben, das Nachlauflager könnte "steif" sein, der Nachlauf könnte beim Starten des Fahrzeugs nicht perfekt gerade sein kann der Boden unterschiedliche Oberflächenreibungseigenschaften haben (sprich: Staub oder Teppich) - die Liste geht weiter und weiter.
Die einzige Möglichkeit, die Dinge zu berücksichtigen, auf die Sie keinen Einfluss haben (was ich oben erwähne + mehr), besteht in der Verwendung von Feedback-Sensoren.
Sie können versuchen, eine bessere Open-Loop-Leistung zu erzielen, indem Sie die aufgeführten Probleme beheben. Es gibt jedoch noch mehr und Sie können einfach nicht alles kontrollieren.
quelle
Da das Problem des offenen und geschlossenen Regelkreises bereits erwähnt wurde, möchte ich einen Kommentar zu "Ich habe einmal versucht, einen Gleichstrommotor ohne Last zu betreiben" abgeben.
Ja, Sie könnten Ihren Motor dadurch beschädigen, aber Sie können Ihren Motor auch durch eine Last beschädigen oder zerstören. Die Zerstörung kommt von der Strömung und der daraus resultierenden Temperatur. Wenn kein Rauch und kein offensichtlicher Geruch vom Motor ausgeht, ist er höchstwahrscheinlich nicht beschädigt. Aus meiner Erfahrung kann ich sagen, dass Gleichstrommotoren im Hobby-Maßstab bei Temperaturen weit über 100 ° C anfangen, sich zu verschlechtern. Und Sie werden solche Temperaturen auf jeden Fall bemerken
EDIT:
Ich habe noch einmal darüber nachgedacht und ich könnte eine Idee haben, über die Ihr Kollege gesprochen haben könnte. Es gibt eine spezielle Art von AC-Motor. Dies sind nicht erregte Synchronmotoren. Grundsätzlich sind sie für die Selbstzerstörung gebaut. Wenn Sie sie einschalten, werden sie beschleunigt, bis sie sich selbst zerlegen. Wenn Sie sie jedoch stark belasten, können sie diesen Zustand nicht erreichen, nur weil sie einen enormen Moment auf die Last ausüben müssen. So können Sie sie für vernünftige Zwecke verwenden. Wie auch immer, Sie haben definitiv keinen solchen Motor in Ihrer Anwendung.
quelle
Was Sie beschreiben, nennt sich Open Loop-Steuerung, und dazu benötigen Sie zwei Motoren, die genau gleich sind, zwei Räder, genau gleich, der Roboterschwerpunkt muss sich in der Mitte zwischen den Rädern befinden, ein perfekter symmetrischer Stromkreis. und schließlich eine perfekte ebene Fläche zum Laufen.
Um dies zu erreichen, bestellen Sie in der Regel zehn oder hundert Teile und führen dann umfangreiche Tests durch, um zwei Motoren zu finden, die in Bezug auf Leistung und Geschwindigkeit im Verhältnis zu Spannung und PWM am besten zueinander passen. Machen Sie dasselbe mit den Rädern, den Motorsteuerungen und anderen Teilen.
Dieser Vorgang wird als Binning bezeichnet. Nach diesen Tests sortieren Sie sie nach ihren Fähigkeiten oder Merkmalen. Es wird als zeit- und ressourcenintensiver angesehen, als auf ein Closed-Loop-Modell umzusteigen, und es ist nicht einmal für schlechte Bodenbedingungen verantwortlich.
Dies ist jedoch eine Möglichkeit, Ihre Anforderungen ohne zusätzliche Sensoren zu erfüllen.
quelle
Obwohl es niemals perfekt sein wird, kann es einen einfachen Weg geben, es geradliniger zu machen.
Wenn das Auto bei 100% -100% immer nach links und bei 100% -99% immer nach rechts abbiegt, sollten Sie in der Lage sein, dies zu verbessern, indem Sie Werte dazwischen ausprobieren.
Beginnen Sie mit 100% -99,5% und fahren Sie je nach Ergebnis mit 100% -99,75% oder 100% -99,25% fort. Dies sollte bald zu einer Situation konvergieren, in der Sie "durchschnittlich" geradeaus fahren werden.
quelle
Nun, wenn das Problem nicht in Unterschieden in der Hardware oder Software für jedes Rad liegt, dann ist es wahrscheinlich ein Problem mit natürlichen Unvollkommenheiten, entweder in der Art und Weise, wie Sie den Roboter gebaut haben, oder in der Art und Weise, wie die Motoren hergestellt wurden. Die Verbindungen sind möglicherweise nicht fest oder der RPI gibt möglicherweise nicht denselben Strom aus. Sie möchten wahrscheinlich Geschwindigkeitsregler verwenden. Versuchen Sie das zuerst.
Wenn das nicht funktioniert, hat Ihr Hersteller wahrscheinlich keine identischen Motoren hergestellt und Sie müssen wahrscheinlich nur die Motoren kalibrieren. Dies kann bedeuten, dass der Wert des stärkeren Motors so skaliert wird, dass 100% Leistung für den starken Motor dem schwachen Motor entspricht.
quelle
Räder mit Gleichstrommotoren sollten vorne b sein. Und coster rad hinten. Dann bewegt es sich gerade nur in Vorwärtsrichtung
quelle