Étape 13 : Asservissement
1. perturbations comme le vent et non-idealities tels que les différences dans les moteurs et les hélices provoquent la dynamique de la vie réelle être bruyant et variables. Mappage de commande directe ne prend pas en compte ces, et notre esprit, des yeux et mains peut-être pas assez rapides pour réagir à ces derniers en temps réel, en particulier sur un petit quadrotor.
2. nous voulons que le quadrotor d’avoir une certaine « autonomie ». En particulier, ce serait bien si le quadrotor pouvait autoniveler, regagner presque horizontale lorsque nous commande zéro pitch, rouler et de lacet. Avec le mappage direct, nous sommes commandant le quadrotor à tourner mais il ne saurez pas revenir à l’horizontale lorsque nous avons terminé.
C’est là qu’intervient la commande de rétroaction . Malgré ses notations mathématiques complexes, la notion de rétrocontrôle est simple. Imagine se laver les mains dans un évier, que vous n’avez jamais utilisé avant. Vous programmez le robinet sur une position médiane. Si l’eau est trop froide, vous tourner vers le haut. Si l’eau est trop chaude, vous tourner vers le bas. Combien vous tournez vers le haut ou vers le bas dépend comment chaud ou froid il est comparé à votre goût. Si l’eau commence à froid, mais ensuite rapidement et chauffe, vous pouvez préventivement tourner le bouton vers le bas à prévenir son dépassement et de brûler vos mains. Toutes ces notions sont formalisées mathématiquement au rétrocontrôle.
Commande de rétroaction sur un Quadrotor :
Une structure commune pour la commande de rétroaction est appelée régulation PID (proportionnelle-intégrale-dérivée). Dans ce cas, la chose à contrôler est l' angle (tangage, roulis ou angle de lacet) de la quadrotor. Ceci est analogue à la température de l’eau dans l’évier. Avec pas d’entrée de la commande, nous essayons de régler l’inclinaison pour être égal à zéro. Toutefois, nous pouvons aussi commande un angle non nul pour faire le quadrotor à bouger. Les commandes que nous envoyons aux moteurs reposent sur l’erreur entre l’angle que nous voulons et l’angle que nous avons effectivement, telle que mesurée par l’IMU.
- Proportionnelle (P): la commande est proportionnelle à combien Erreur angulaire nous avons. Il permet de retourner le quadrotor à zéro angle ou poussez-le de quelque côté que vous commandez.
-Intégrale (I): La commande est proportionnelle à l’erreur accumulée au fil du temps. Il peut aider à lutter contre les perturbations comme le vent ou la performance du moteur asymétrique. Je n’utilise pas cela sur mon quad, bien que j’ai laissé le code d’espace réservé pour lui dans le projet Arduino.
- Dérivé (D): la commande est proportionnelle au taux de variation de l’erreur *. Il résiste au mouvement et il maintient l’angle de dépassement de la cible.
Masse-ressort-amortisseur analogie :
Les effets du contrôle de PD (pas de terme intégral) sur un quadrotor sont semblables à l’ajout d’un printemps virtuel et virtuel amortisseur (amortisseur) de la quadrotor, qui est la masse. Voir la première image d’un schéma explicatif de ce. La raideur du ressort est définie à une constante, Kp, le "gain proportionnel". Le taux d’amortissement est défini par une autre constante, Kd, le "gain dérivé". L’angle désiré, θr, définit l’angle auquel les ressorts sont uniformément tendus. Imaginez y attacher les ressorts d’une planche mobile et en tournant la planche pour commander le quadrotor pour aller à un certain angle.
-Augmentation Kp pousse la quadrotor vers l’angle de référence plus rapidement, mais peut également entraîner plus de dépassement et d’oscillation.
-Augmentation de Kd ralentit la vitesse de rotation de la quadrotor, mais peut aussi humide des oscillations.
Notez que les gains peuvent être augmentées jusqu'à un point où ce modèle tombe en panne. Si Kp, Kd, ou les deux sont trop élevés, le contrôleur va commencer amplifier le bruit, conduisant à des oscillations et l’instabilité. Ces oscillations ont tendance à être à une fréquence plus rapide que les oscillations qui serait vue de haut Kp:Kd ratio. Si vous voyez des oscillations rapides, la meilleure chose à faire est de baisser les deux gains.
Réglage des gains prend la pratique et l’expérience et dépend de votre cadre exact et le vol de préférence. Un très bon guide pour PID tuning pour multirotors, par exemple vidéo pour montrer les différents types d’oscillations, se trouvent ici. Si tout va bien, l’analogie ressort/amortisseur vous aide à réfléchir sur les gains intuitivement.
* En fait, dans la pratique c’est parfois plus facile d’utiliser le taux mesuré de rotation directement, plutôt que de tenter de mesurer le taux de variation de l’erreur. L’erreur n’existe que dans le logiciel et calcul de que la dérivée de celui-ci peut être bruyante. Pratiquement parlant, en utilisant le taux mesuré de rotation directement à partir du gyro fonctionne très bien. Pour cette carte dans l’analogie de masse-ressort-amortisseur, les amortisseurs sont reliées à terre (zéro angle) plutôt qu’à la planche. Dans cette configuration, ils résistent à toute rotation, même commandé de rotation.
Hauteur, rouleau et contrôleurs de mouvement de lacet :
Le quadrotor a fait trois contrôleurs de feedback indépendantes, une pour le tangage, roulis et lacet. Manette des gaz sont directement mappé à tous les quatre moteurs sans contrôle de rétroaction dans ce quadrotor. Avec un capteur d’altitude, un quatrième contrôleur commentaires pourrait être ajouté.
Les contrôleurs de tangage et de roulis sont des contrôleurs de PD qui coïncident exactement avec la première image. Dans la mesure où le quadrotor est symétrique, les gains de tangage et de roulis devraient être les mêmes. Les sorties de la proportionnelle et les gains dérivés sont additionnées et envoyés aux moteurs à travers la matrice de commande à l’étape précédente. La deuxième image montre les contrôleurs de PD de tangage et de roulis sous forme de diagramme de bloc. Les variables sont :
Kp - Gain proportionnel
Kd - Gain dérivé
Θr - commande/référence Angle
Θ - Angle mesuré de l’IMU
Ω - taux mesuré de Rotation de l’IMU.
y - la commande de sortie.
Le contrôleur de mouvement de lacet repose uniquement sur les taux, donc il ne correspond pas exactement les images. L’erreur est simplement la différence entre le taux de lacet commandée et le taux de lacet mesurée de l’IMU. Le magnétomètre dans le Mio pourrait servir à mesurer l’angle de lacet absolue pour mettre en œuvre un contrôleur complet de PD, mais je n’ai pas encore essayé cela.