J'utilise 2 moteurs CC identiques et une roue pivotante. Les moteurs sont connectés au pilote de moteur L293D et sont contrôlés par RPi .
Le robot ne va pas droit. Il vire à droite. Je fais fonctionner les deux moteurs à 100% PWM .
Ce que j'ai essayé de corriger l'erreur:
- J'ai ajusté le PWM de la roue en allant plus vite à 99% , mais le robot se tourne juste de l'autre côté;
- J'ai ajusté le poids du robot et le problème persiste.
J'ai essayé une fois de faire fonctionner le moteur sans aucune charge. Est-ce la cause de cela, comme on me l'a dit plus tard, faire fonctionner un moteur à courant continu sans aucune charge les endommage?
Si ce n'est pas la cause, dites-moi comment résoudre ce problème sans utiliser de capteurs pour le contrôler.
Réponses:
Je poste ceci comme réponse parce que c'est la réponse.
Tu ne peux pas.
Comme @ BendingUnit22 le mentionne, vous tentez un contrôle en "boucle ouverte". Le bruit et les variations signifieront que votre robot ne conduira jamais une ligne parfaitement droite.
Les moteurs peuvent avoir des résistances d'enroulement différentes (différents courants d'entraînement / couple), les roues peuvent être de tailles différentes, les roues peuvent avoir des caractéristiques de traction différentes, le roulement de la roulette peut être "rigide", la roulette peut ne pas être parfaitement droite au démarrage du véhicule , le sol peut avoir des caractéristiques de friction de surface variables (lire: poussière ou moquette) - la liste s'allonge encore et encore.
La seule façon de tenir compte des choses hors de votre contrôle (ce que je mentionne ci-dessus + plus) est d'utiliser des capteurs de rétroaction.
Vous pouvez essayer d'obtenir de meilleures performances en boucle ouverte en corrigeant les problèmes que j'ai énumérés, mais il y en a encore plus et vous ne pouvez tout simplement pas tout contrôler.
la source
Étant donné que le problème de la boucle ouverte-fermée est déjà mentionné, je donnerai un commentaire au "J'ai déjà essayé de faire fonctionner un moteur à courant continu sans charge".
Oui, vous pourriez endommager votre moteur avec cela, mais vous pouvez également endommager ou détruire votre moteur avec une charge. La destruction vient du courant et de la température qui en résulte. S'il n'y a pas de fumée et une odeur évidente provenant du moteur, il est très probable qu'il ne soit pas endommagé. D'après mon expérience, je peux dire que les moteurs à courant continu à l'échelle des loisirs commenceront à se dégrader à des températures bien supérieures à 100 ° C. Et vous remarquerez certainement ces températures
EDIT:
J'y ai réfléchi à nouveau et j'ai peut-être eu une idée dont votre collègue aurait pu parler. Il existe un type spécial de moteur AC. Ce sont des moteurs synchrones non excités. Fondamentalement, ils sont construits pour l'auto-destruction. Si vous les allumez, ils commenceront à accélérer jusqu'à ce qu'ils se démontent. Mais si vous placez une lourde charge sur eux, ils ne peuvent pas atteindre cet état, juste à cause de l'énorme moment qu'ils doivent appliquer à la charge. Vous pouvez donc les utiliser à des fins raisonnables. Quoi qu'il en soit, vous n'avez définitivement pas un moteur comme celui-ci dans votre application.
la source
Ce que vous décrivez s'appelle le contrôle en boucle ouverte, et pour ce faire, vous avez besoin de deux moteurs qui sont exactement les mêmes, deux roues exactement les mêmes, le centre de gravité du robot doit être au centre entre les roues, un circuit électrique symétrique parfait, et enfin une surface de niveau uniforme parfaite pour courir.
Pour ce faire, vous commandez généralement des dizaines ou des centaines de chaque pièce, puis effectuez des tests importants pour trouver deux moteurs les plus proches les uns des autres en termes de puissance et de vitesse en fonction de la tension et du PWM. Faites de même pour les roues, les contrôleurs de moteur et les autres pièces.
Ce processus est appelé binning - après ces tests, vous les triez selon leur capacité ou leurs caractéristiques. Il est considéré comme beaucoup plus coûteux en temps et en ressources de le faire correctement que de passer à un modèle en boucle fermée, et ne tient même pas compte des mauvaises conditions du sol.
C'est cependant une façon de répondre à vos besoins sans capteurs supplémentaires.
la source
Bien qu'il ne soit jamais parfait, il peut y avoir un moyen simple de le faire aller plus droit.
Si à 100% -100% la voiture tourne toujours à gauche, et à 100% -99% la voiture tourne toujours à droite, vous devriez pouvoir améliorer cela en essayant des valeurs intermédiaires.
Commencez avec 100% -99,5% et continuez avec 100% -99,75% ou 100% -99,25% selon le résultat. Cela devrait bientôt converger vers une situation où vous irez droit «en moyenne».
la source
Eh bien, si le problème ne réside pas dans les différences de matériel ou de logiciel pour chaque roue, il s'agit probablement d'un problème d'imperfections naturelles dans la façon dont vous avez construit le robot ou la façon dont les moteurs ont été produits. Les connexions peuvent ne pas être solides ou le RPI peut ne pas produire le même courant. Vous voulez probablement utiliser des contrôleurs de vitesse. Essayez d'abord.
Si cela ne fonctionne pas, votre fabricant n'a probablement pas fabriqué de moteurs identiques et vous n'aurez probablement qu'à calibrer les moteurs. Cela peut signifier la mise à l'échelle de la valeur du moteur le plus puissant afin que 100% de la puissance du moteur le plus puissant corresponde au moteur faible.
la source
Les roues avec moteurs à courant continu doivent b à l'avant. Et roue coster à l'arrière. Ensuite, il se déplacera droit uniquement vers l'avant
la source