incompréhension pour calculateSetPoint - drone ch.8/Calcul des consignes
roro1
4 Messages
Le lundi 2 novembre 2020 à 13:40:37
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 ?
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 ?
Le mercredi 4 novembre 2020 à 14:55:03
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.
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
4 Messages
Le vendredi 6 novembre 2020 à 00:51:44
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.
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.