📍 Article principal de la série : Drones et UAV : panorama technologique pour ingénieurs
Pré-requis : Aérodynamique multirotor.
Cadre éditorial. Cet article expose la théorie du contrôle PID appliquée au quadrirotor au niveau enseigné en école d’ingénieur. Aucun tuning d’un drone physique, aucun fichier de paramètres opérationnel — uniquement les concepts, les structures de boucles imbriquées, et les méthodes de design théorique pour permettre l’implémentation en simulation logicielle (PX4 SITL, Gazebo).
Le PID est le contrôleur le plus déployé en aérospatial — pas parce qu’il est le plus performant, mais parce qu’il est simple à comprendre, à régler manuellement, et qu’il fonctionne dans la grande majorité des cas. Tous les firmwares libres pour drones (ArduPilot, PX4, Betaflight) reposent sur des cascades de boucles PID. Comprendre cette cascade est la base de tout cours d’automatique appliqué à la robotique aérienne.
Prérequis
- Niveau ingénieur deuxième ou troisième année : transformée de Laplace, fonctions de transfert, stabilité.
- Notions de base : domaine fréquentiel, lieu des pôles, marges de gain et de phase.
- Pas de compétence électronique requise — on raisonne sur les boucles abstraites.
- Niveau : intermédiaire à avancé (élève-ingénieur en spécialité automatique).
- Temps estimé : 90 minutes.
Étape 1 — Rappel sur le PID
Le contrôleur PID combine trois actions sur l’erreur e(t) entre la consigne et la mesure :
u(t) = K_p · e(t) + K_i · ∫ e(τ) dτ + K_d · de(t)/dt
Le terme P donne une commande proportionnelle à l’erreur. Trop de P provoque des oscillations. Le terme I intègre l’erreur dans le temps — il élimine l’erreur statique. Trop de I provoque du dépassement et du « windup ». Le terme D mesure la vitesse à laquelle l’erreur change — il anticipe et amortit. Trop de D amplifie le bruit.
Le réglage des trois gains est l’art central du contrôle PID. Plusieurs méthodes existent : Ziegler-Nichols (empirique, très utilisée), placement de pôles (théorique, demande un modèle), tuning automatique. Pour la pédagogie, démarrez par Ziegler-Nichols.
Étape 2 — Pourquoi une cascade et pas un PID unique
Un quadrirotor ne se contrôle pas avec un PID monolithique. Le système est trop multi-échelle : la dynamique d’attitude (rotation sur les axes corps) est rapide, plusieurs centaines de Hz ; la dynamique de position (translation dans le repère terrestre) est lente, quelques Hz. Un seul PID couvrant les deux serait soit trop agressif sur l’attitude, soit trop lent sur la position.
La solution standard est la cascade : plusieurs boucles PID imbriquées, chacune sur sa propre dynamique. La sortie de la boucle externe (lente) devient la consigne de la boucle interne (rapide). C’est le pattern « boucle d’enveloppe » des cours d’automatique avancée.
Étape 3 — La cascade complète d’un quadrirotor
Quatre boucles imbriquées, du plus interne au plus externe :
[Boucle d'attitude angulaire (ω̇ → couple moteur)]
↑ consigne ω_target
[Boucle d'attitude (angles → ω_target)]
↑ consigne angles_target
[Boucle de vitesse (vitesse → angles_target)]
↑ consigne vitesse_target
[Boucle de position (position → vitesse_target)]
↑ consigne position_target depuis la mission
Chaque flèche montante est une consigne calculée par la boucle externe puis injectée dans la boucle interne. Chaque boucle est un PID dédié. Les fréquences typiques : attitude angulaire à 500-1000 Hz, attitude à 250 Hz, vitesse à 50 Hz, position à 10 Hz. Ces fréquences sont implémentées dans le scheduler temps réel du firmware.
Étape 4 — Régler la boucle d’attitude angulaire (la plus interne)
C’est la boucle critique. Elle prend en entrée une consigne de vitesse angulaire (rad/s) sur les axes corps roll, pitch, yaw, et calcule les couples moteurs nécessaires. Le PID est typiquement un PD pur (sans intégral) parce que la dynamique est très rapide et qu’on ne veut pas de saturation intégrale.
Méthode pédagogique. Démarrez avec K_p modéré et K_d nul. Augmentez K_p jusqu’à ce que le drone oscille à fréquence stable. Notez ce gain comme K_u (gain ultime) et la période T_u. Selon Ziegler-Nichols pour PD :
K_p = 0,8 · K_u
K_d = K_p · T_u / 8
Attention : appliquer cette méthode sur un drone physique demande des sécurités matérielles (cage de protection). En simulation Gazebo, c’est sans risque — c’est l’environnement pédagogique privilégié.
Étape 5 — Régler la boucle d’attitude (angles)
Boucle externe à la précédente. Elle prend en consigne un angle (radians) et produit une consigne de vitesse angulaire pour la boucle interne. Comme la boucle interne stabilise déjà la dynamique rapide, cette boucle peut se contenter d’un P pur ou d’un PI léger.
Étape 6 — Boucles de vitesse et de position
La boucle de vitesse prend une consigne en m/s dans le repère inertiel et produit des consignes d’inclinaison pour la boucle d’attitude. Logique : pour aller vers l’avant, il faut s’incliner vers l’avant. La transformation prend en compte l’orientation actuelle du drone.
La boucle de position prend une consigne en mètres (ou en latitude/longitude pour le mode GPS) et produit une consigne de vitesse pour la boucle inférieure. C’est la boucle la plus lente, à 10 Hz typiquement, et c’est celle que la mission planning manipule.
Étape 7 — Le problème du windup intégral
Quand un actionneur sature (un moteur à 100 % de poussée), l’erreur ne diminue plus mais l’intégrale continue de croître. À la sortie de saturation, l’intégrale gigantesque pilote des oscillations massives — c’est le windup. Trois solutions classiques. Clamping : on borne l’intégrale entre des limites raisonnables. Back-calculation : on retire de l’intégrale la différence entre la sortie commandée et la sortie réelle saturée. Conditional integration : on n’intègre que si la sortie n’est pas saturée. ArduPilot et PX4 implémentent des combinaisons de ces approches.
Étape 8 — Les limites du PID classique
Le PID est simple et robuste mais montre ses limites. Sur les manœuvres agressives, un PID classique peine à compenser les non-linéarités aérodynamiques. Sur les drones plus complexes (hexarotors, tilrotors VTOL), le couplage entre axes rend le tuning délicat. Sur les missions à charge variable, les gains optimaux changent.
Les approches modernes complètent ou remplacent le PID. LQR (Linear Quadratic Regulator) optimise un critère quadratique. MPC (Model Predictive Control) anticipe sur un horizon glissant. Adaptive control ajuste les gains en temps réel selon l’état. Ces approches sont enseignées en master automatique avancée.
Étape 9 — Implémentation en simulation Gazebo
Pour pratiquer, l’environnement de référence est PX4 SITL + Gazebo + QGroundControl. Vous lancez un quadrirotor simulé, vous modifiez les paramètres PID via QGroundControl ou par script, vous observez la réponse en simulation. Tout reste sur votre poste Linux ou Windows WSL2, sans matériel.
L’ensemble Outils logiciels open-source pour la robotique aérienne couvre l’installation et la prise en main de cet environnement.
Étape 10 — Vérifier votre compréhension
Quatre questions de validation. Premier : pourquoi une cascade plutôt qu’un PID monolithique ? Deuxième : ordre de grandeur typique des fréquences des quatre boucles d’un quadrirotor ? Troisième : pourquoi la boucle d’attitude angulaire utilise-t-elle souvent un PD sans I ? Quatrième : décrivez le windup intégral et au moins une stratégie d’anti-windup.
Erreurs fréquentes
| Erreur | Cause | Solution |
|---|---|---|
| Régler les boucles externes avant les internes | Mauvaise compréhension de la cascade | Toujours du plus interne au plus externe. |
| Trop de gain D, drone qui vibre | Bruit capteur amplifié par la dérivée | Filtrer la dérivée (passe-bas), réduire K_d. |
| Dépassement énorme après saturation | Pas d’anti-windup | Implémenter clamping ou back-calculation. |
| Drone qui oscille sur place | K_p trop élevé en boucle d’attitude | Réduire K_p, augmenter K_d. |
| Lenteur de réponse en position | Boucle de position pas assez réactive | Augmenter K_p de la boucle position avec retenue. |
| Confondre fréquence de boucle et bande passante | Concepts proches mais distincts | Fréquence = combien de fois par seconde elle s’exécute ; bande passante = la fréquence à laquelle elle peut suivre une consigne. |
Adaptation au contexte ouest-africain
Pour les écoles d’ingénieur sénégalaises, ivoiriennes, togolaises et béninoises qui enseignent l’automatique, le contrôle PID appliqué au quadrirotor en simulation est un excellent TP de spécialité. Plusieurs établissements ont mis en place des labs d’automatique équipés en stations Linux puissantes. Pour les écoles à budget plus serré, l’écosystème entièrement gratuit PX4 + Gazebo + Python tourne sur des postes plus modestes.
Pour les TPE étudiants, un sujet excellent est l’optimisation des gains PID par algorithmes génétiques ou apprentissage par renforcement, en simulation pure. Le drone est entraîné en boucle sur PX4 SITL, le critère d’optimisation est défini, et le système converge vers des gains performants. C’est un projet de fin d’études qui combine automatique et IA, valorisable sur un CV.
Une autre piste pédagogique riche : la comparaison expérimentale du PID classique avec une approche plus moderne (LQR, MPC, ou contrôleur basé apprentissage par renforcement). Sur un même scénario de simulation Gazebo, on chronomètre le temps de réponse, on mesure le dépassement, on évalue la robustesse face à des perturbations de masse ou de vent. L’étudiant produit un benchmark documenté qui montre quand chaque approche est pertinente.
Pour les laboratoires qui veulent monter en gamme avec un peu de matériel, le Crazyflie de Bitcraze (drone ouvert de 30 grammes) est l’outil pédagogique idéal : suffisamment petit pour être manipulé en intérieur en sécurité, suffisamment ouvert pour modifier les boucles PID en C, suffisamment documenté pour que les étudiants progressent en autonomie. Coût unitaire modeste (200-300 euros par engin), durabilité bonne, communauté éducative active.
Pour finir, une recommandation pour les enseignants. Documentez vos TP en mode notebook reproductible (Jupyter, ou plus moderne Marimo) : énoncés, code prêt à exécuter, résultats attendus, questions de réflexion. Les étudiants peuvent revenir sur leur travail, comparer avec les solutions, refaire les exercices à leur rythme.
Articles connexes
- Aérodynamique multirotor — pré-requis physique.
- Fusion de capteurs : IMU, Kalman — pour mesurer l’état du système.
- Architectures de contrôleurs de vol — implémentation logicielle des PID.
Pour aller plus loin
- 🔝 Retour au panorama : Drones et UAV : panorama technologique
- Documentation PX4 control : docs.px4.io controller diagrams
FAQ
Le PID est-il vraiment le standard en 2026 (informations vérifiées en avril 2026, susceptibles d’évoluer ; vérifier la source officielle avant toute décision technique) ?
Oui pour la grande majorité des drones civils et industriels. Les approches modernes (LQR, MPC) sont implémentées dans des systèmes spécifiques, mais le PID en cascade reste l’architecture par défaut.
Comment teste-t-on un PID en sécurité ?
En simulation pure (PX4 SITL + Gazebo), on peut tester sans aucun risque. Sur drone physique, on utilise une cage de protection ou un banc d’essai gimbal qui contraint les mouvements.
Quelle est la différence entre PID et LQR ?
Le PID corrige l’erreur sans modèle explicite du système. Le LQR utilise le modèle d’état du système et minimise un critère quadratique sur l’état et la commande.
Faut-il connaître Matlab/Simulink ?
Utile mais pas indispensable. Les alternatives gratuites — Octave, Python avec scipy.signal et control — couvrent l’essentiel.
Le tuning PID est-il une science ou un art ?
Les deux. La théorie donne un point de départ ; l’expérimentation finit le travail.
Mots-clés secondaires : contrôle PID drone, cascade boucles, Ziegler-Nichols, tuning, anti-windup, attitude, vitesse, position.