incompréhension pour calculateSetPoint - drone ch.8/Calcul des consignes

roro1 roro1 4 Messages
Bonjour Lobodol.
Je m'intéresse à votre page https://www.firediy.fr/article/asservissement-pid-drone-ch-8
(sans passer de la pommade, beau travail !)
Au chapitre "Calcul des consignes" vous expliquez que le résultat est en °*s.
Les arguments utilisés sont:
- un angle en degrés
- la position du manche de la radiocommande qui indique l'angle désiré
Pourquoi le résultat est-il en °/s ?
lobodol lobodol 863 Messages BIG BOSS
Salut roro1
Merci, content que mes articles te plaisent :)

Je sais, cette partie est loin d'être intuitive, d'autant que quand on fait une analyse dimensionnelle on ne retombe pas vraiment sur des °/sec.

La fonction "calculateSetPoint()"  est une astuce mathématique pour obtenir une valeur cohérente.
Je t'invite à regarder cette vidéo dont je me suis inspiré pour écrire mon code https://youtu.be/DYpHB-LfloI?t=90
Ça devrait t'apporter des éléments de réponse.
roro1 roro1 4 Messages
Bonsoir.
Mes explications:
le "Calcul des consignes" est en degrés mais sans l'ajout de la vitesse angulaire (en °/s) dans le calcul des erreurs il est impossible de stabiliser le quadri.
Par exemple dans "errors[PITCH] = angular_motions[PITCH] - pid_set_points[PITCH];" 
- angular_motions[PITCH] est en °/s
- pid_set_points[PITCH] est en degrés
Mélanger degrés et °/s 'est un trucage nécessaire car cela évite un dépassement brutal de la valeur de consigne. C'est dû à l''inertie.
Le but est de diminuer la puissance lorsque l'angle a presque atteint la valeur de consigne.

Puisque des degrés sont mélangés avec des °/s dans le calcul de "errors[PITCH]", le concepteur a estimé que l'unité des "pid_set_points" serait des °/s.
C'est ce que je pense avoir compris et que je valide après des essais réels avec mon quadri.
Vous devez être connecté pour pouvoir répondre à ce sujet.
Utilisation des données

Afin d'améliorer ton expérience utilisateur, nous utilisons des cookies 🍪