Avec un robot à deux roues comme celui-ci , j'ai réussi à le stabiliser tout en le maintenant immobile. Cela a été fait en utilisant un système de contrôle de rétroaction numérique en lisant la position des roues pour déterminer la position, et la force électromotrice arrière naturelle des moteurs de roue a été utilisée dans la boucle de rétroaction pour déterminer la vitesse. Il a été maintenu stable avec un contrôleur PID, qui a été conçu en utilisant un algorithme de locus racine pour le maintenir stable et moduler les paramètres de performance (tels que le pourcentage de dépassement, le temps de stabilisation, etc.). Je voulais essayer de le garder stable tout en le propulsant vers l'avant, mais je n'arrivais pas à comprendre comment concevoir un contrôleur linéaire capable de le faire. Est-il possible de propulser le robot vers l'avant et le garder stable en utilisant un contrôleur de rétroaction sur les roues, ou un gyroscope est-il nécessaire?
la source
Réponses:
Vous pouvez utiliser d'autres façons de mesurer l'orientation, comme un accéléromètre, un suivi optique des marqueurs ou un capteur de profondeur pointé vers le sol.
la source
Si vous avez réussi à le rendre stable dans une configuration stationnaire, je ne vois pas vraiment comment il serait beaucoup plus difficile de le rendre stable pour une vitesse constante. Du point de vue du modèle de système, ce serait effectivement la même chose, à l'exception de certains décalages de vitesse. Si les transitions entre les vitesses ne sont pas très importantes, elles devraient se situer dans la plage des perturbations du système naturel.
la source
Vous avez besoin de certains capteurs pour détecter l'état du système.
Linéarisez d'abord le système sous forme d'espace d'état, puis considérez les capteurs dont vous disposez. Vérifiez ensuite si elle est observable. S'il est observable, vous pouvez alors introduire les états estimés dans votre contrôleur.
Actuellement, il semble que vous utilisiez la position de la roue et l'EMF arrière (pour la vitesse) comme mesures directes. Sans vérifier la matrice d'observabilité, je ne sais pas si le système est observable.
la source
Mathématiquement, le fait que vous ayez maintenant une rotation (la plupart du temps) élimine ce paramètre en tant que paramètre de contrôle possible. Fondamentalement, vous devrez repenser votre algorithme pour accepter une composante de vitesse angulaire grande et variable tout en utilisant toujours la vitesse angulaire dans vos commentaires. Moins cela est bruyant, meilleur est le résultat probable simplement parce que vous allez probablement appliquer un différentiel de position pour dériver un autre paramètre de contrôle. Ou plutôt c'est une façon. Il semble donc que vous ayez besoin d'une autre entrée de contrôle, mais ce n'est pas nécessairement un accéléromètre. Vous pouvez faire un horizon, un emplacement de marqueur fixe ou même des capteurs d'inclinaison.
la source