J'ai déjà construit un robot d'équilibrage à deux roues utilisant des servos à rotation continue et un accéléromètre / gyroscope. J'ai mis à niveau les servos vers certains moteurs CC à engrenages avec des encodeurs 8 bits dans le but de faire tourner le robot tout en équilibrant.
Je suis un peu coincé sur la façon de le programmer pour qu'il se déplace tout en restant en équilibre. Je pense qu'une façon serait de simplement avoir l'entrée de commande pour les moteurs agir un peu comme la pousser. Le robot serait donc momentanément déséquilibré dans la direction dans laquelle je veux qu'il se déplace. Cela me semble cependant un peu maladroit. Il doit y avoir une meilleure façon de faire? Je pense que je dois combiner le modèle dynamique de l'équilibreur avec l'entraînement différentiel, mais cela dépasse un peu la théorie du contrôle que je connais.
Mise à jour D'après la réponse d'Anorton, j'ai maintenant une belle matrice d'état.
Maintenant sur le placement des pôles: La matrice A devra être 4x4 basée sur le nouveau vecteur d'état. Et B devra alors être une matrice 4x2 car je ne peux contrôler que le couple roue gauche / droite (u = vecteur 2x1).
Je devrais peut-être en savoir plus à ce sujet, mais existe-t-il un moyen systématique de déterminer la matrice A par placement des pôles? Il me semble que pour cet exemple et des exemples encore plus compliqués, déterminer A par deviner et vérifier serait très difficile.
Mise à jour # 2 Après un peu de lecture, je pense que je le comprends maintenant. J'ai toujours besoin de la dynamique du robot pour déterminer la matrice A. Une fois que je l'ai, je peux faire le placement des pôles en utilisant matlab ou octave.
:)
Ma connaissance des commandes est très mince, mais je vais y mettre ma valeur de 0,02 $ ...