Vous êtes sur la page 1sur 160

5)µ4&

&OWVFEFMPCUFOUJPOEV

%0$503"5%&-6/*7&34*5²%&506-064&
%ÏMJWSÏQBS
Institut Supérieur de l’Aéronautique et de l’Espace

1SÏTFOUÏFFUTPVUFOVFQBS
Jawhar CHEBBI
le mardi 26 octobre 2021
5JUSF

Contrôle des drones multi-rotor sous-actionnés en conditions
aérodynamiques perturbées
Contribution à la robustification des lois de commande dans le cadre d'une
application industrielle

²DPMF EPDUPSBMF et discipline ou spécialité  


ED AA : Aéronautique, Astronautique

6OJUÏEFSFDIFSDIF
Équipe d'accueil ISAE-ONERA ACDC

%JSFDUFVS T EFʾÒTF
M. Éric CHAUMETTE (directeur de thèse)
M. Yves BRIÈRE (co-directeur de thèse)
Jury :
M. Antonio FRANCHI Professeur Associé Université de Twente, Pays-Bas - Président
M. Yves BRIÈRE Professeur Associé ISAE-SUPAERO - Co-directeur de thèse
M. Éric CHAUMETTE Professeur ISAE-SUPAERO - Directeur de thèse
M. François DEFAY Maître de Conférences IUT Tarbes - Examinateur
Mme Anouck GIRARD Professeur Associé Université du Michigan - Examinatrice
M. Tarek HAMEL Professeur Université Sophia Antipolis - Rapporteur
M. Pascal MORIN Professeur Sorbonne Université - Rapporteur
Avant-Propos

La prolifération des drones à usage civil au cours des dernières années est devenue une
évidence. Elle est une conséquence de la révolution micro-électronique du demi-siècle précèdent
que Moore avait postulé dans sa loi bien connue. En effet, l’augmentation de la puissance de
calcul des processeurs ainsi que la miniaturisation des cartes électroniques et des batteries a
permis la construction de moteurs électriques puissants de plus en plus petits et de micro-
contrôleurs de plus en plus performants. Catalysée par la révolution numérique, cette montée
en performances a conduit à la démocratisation des micro-drones (et plus généralement de la
robotique) caractérisée par l’émergence de plateformes collaboratives axées sur le concept de
production participative (ou le crowdsourcing) pour développer les ressources matérielles et
logicielles adaptées aux différents cas d’utilisation. Parmi ces projets de robotique open-source
on peut citer : the paparazzi Project (2003), PX4 autopilot (2009), Slugs (2009) ou ArduCopter
(2010).
Cette abondance et disponibilité des connaissances a incité des entreprises innovantes à
imaginer des nouveaux cas d’utilisation des drones et de les transformer en de véritables outils
industriels. Pour ce faire, il est nécessaire de combler l’écart entre les avancées de la recherche
et la réalité du terrain en concevant des solutions performantes avec des niveaux de maturité
technologiques (TRL 1 : Techology Readiness Level) assez élevés (supérieurs à 7, c’est-à-dire au
moins en stade pré-commercial).
Les drones ayant reçu le plus d’attention récemment sont les multirotors, notamment pour
leur capacité à voler à basse altitude et à vitesse réduite, ainsi que pour leur facilité de mise en
œuvre et de déploiement. Ceci leur permet d’explorer des environnements confinés et d’effectuer
des tâches demandant une grande précision.
Ce travail est dédié à l’étude de solutions de contrôle permettant d’améliorer la résistance
de ces véhicules aux perturbations aérodynamiques environnantes. Il a été effectué dans le cadre
d’une Convention Industrielle de Formation par la REcherche (CIFRE) au sein de l’entreprise
Donecle et en partenariat avec le laboratoire ISAE-SUPAERO.

1. https://fr.wikipedia.org/wiki/Technology_readiness_level

2
Résumé

Les drones multirotor ont un énorme potentiel d’application dans le milieu industriel. Un
exemple pertinent est celui de la société Donecle, la première au monde à développer des drones
d’inspection visuelle pour la maintenance aéronautique. Les freins au déploiement à plus grande
échelle de ces drones (pour inspecter tout type de structure, et en toute condition) sont à la fois
législatifs et technologiques. En effet, les interactions entre le vent, les hélices et le corps du drone
créent des perturbations complexes qui peuvent dégrader la précision du suivi de trajectoire au
point de rendre le vol à proximité des avions risqué et donc non certifiable. Cette thèse financée
par Donecle vise à augmenter la capacité des contrôleurs de ses drones d’inspection à résister
aux perturbations aérodynamiques.
L’approche suivie pour aborder ce problème a été motivée par la finalité pratique de la
thèse : fournir des techniques de contrôle qui peuvent être rapidement déployées sur des drones
industriels existants sans apporter de modifications matérielles. L’idée fut alors de partir des
contrôleurs PID, qui fonctionnent très bien dans la plupart des cas, de comprendre leurs limites
en termes de rejet des perturbations et de les surpasser en apportant progressivement de nou-
velles briques algorithmiques qui s’adaptent bien au cas d’utilisation de Donecle : un drone en
configuration contrarotative coaxiale, des vols à basse vitesse et une carte autopilote à mémoire
limitée.
Deux principales contributions sont proposées : d’une part, une nouvelle stratégie d’allocation
des commandes moteurs (mixage) qui ne néglige pas les interférences entre les hélices coaxiales,
d’autre part, la généralisation d’une technique de contrôle robuste au cas d’un contrôleur avec
un observateur de perturbations (à savoir le contrôle actif de rejet des perturbations ADRC)
pour garantir que les incertitudes sur les paramètres du système (variant dans des plages prééta-
blies) ne causent pas de dégradation des performances et ne conduisent pas à l’instabilité. Cette
amélioration de l’ADRC permet de rendre le même algorithme, avec le même réglage initial,
capable de gérer les changements de configurations et de régimes de vol. Les essais expérimen-
taux ont accompagné toutes les phases de cette thèse et forment de ce fait une part importante
des contributions. Ils ont notamment permis d’orienter notre choix vers certaines techniques de
contrôle.
Ces contributions ont donné lieu à deux publications : [Chebbi et al., 2020] et [Chebbi and
Brière, 2021], et à un article recommandé pour publication au "Journal of Field Robotics" et
intitulé « Robust Active Disturbance Rejection Control for systems with internal uncertainties
– Multirotor UAV application ».

3
À la mémoire de ma grand-mère Jamila.
Remerciements

Un travail de thèse réussi ne peut être le fruit de l’unique effort personnel du doctorant. C’est
pour cette raison que je souhaite dédier cette page du manuscrit au remerciement de toute
personne que j’ai eu la chance de côtoyer pendant la thèse et qui a contribué directement ou
indirectement à ce travail.
Plus particulièrement :

Je remercie d’abord mes encadrants Yves BRIERE, Alban DERUAZ-PEPIN et Eric CHAU-
METTE pour la confiance et le suivi qu’ils m’ont accordés tout au long de la thèse. Je suis égale-
ment reconnaissant à tous mes collègues à Donecle et à l’ISAE-SUPAERO, pour l’ambiance de
travail à la fois décontractée et intellectuellement stimulante qu’ils ont contribué à m’offrir.
Par ailleurs, je tiens à remercier l’équipe technique du département DISC de l’ISAE-SUPAERO,
notamment Corentin CHAUFFAUT et Louis TRETON pour leur aide avec les différentes diffi-
cultés rencontrées lors des essais expérimentaux.

Enfin, je n’oublie pas de remercier ma chère famille : mes parents Habib et Fatma, mes sœurs
Donia et Hela, ma grand-mère Warda, ainsi que mes amis pour leur support moral incondi-
tionnel, qui a été indispensable à l’aboutissement du doctorat.

Jawhar CHEBBI

5
Table des matières

I Contexte 14

1 Contexte Industriel 17
1.1 Motivations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.2 Ressources expérimentales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3 Hypothèses de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2 Physique de vol d’un drone Multirotor 20


2.1 Design sous-actionné . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2 Définition des repères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3 Dynamique du corps rigide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4 Aérodynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.5 Dynamique des actionneurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3 Vol autonome d’un drone Multirotor 32


3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2 Solutions de navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3 Philosophie générale et solutions de Contrôle . . . . . . . . . . . . . . . . . . . . 34

II Bibliographie 40

4 Etat de l’Art Contrôle résistant au perturbations sur les drones Multirotor 41


4.1 Estimation et compensation des perturbations basées sur modèle . . . . . . . . . 42
4.2 Des approches de contrôle robustes aux perturbations non modélisées . . . . . . 44
4.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

III Contributions 53

5 Algorithme d’allocation des Commandes - Cas d’un multirotor en configura-


tion coaxiale 55
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.2 Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.3 Application à la configuration X8 . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.4 Gestion de la saturation des moteurs . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.5 Effet de la tension batterie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.6 Comparaison avec une approche conventionnelle de mixage . . . . . . . . . . . . 63
5.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

6 Étude expérimentale sur le rejet des perturbations aérodynamiques pour les


drones multirotor 71
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
6.2 Rappel de la conception du contrôle de position . . . . . . . . . . . . . . . . . . . 71
6.3 Conditions Expérimentales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

6
Table des matières

6.4 Réglage de Contrôleurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78


6.5 Résultats Expérimentaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

7 Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC) 88


7.1 Aperçu de la littérature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
7.2 Comparaison entre contrôleurs PID et ADRC . . . . . . . . . . . . . . . . . . . . 90
7.3 ADRC Robuste aux incertitudes paramétriques . . . . . . . . . . . . . . . . . . . 100
7.4 Application de l’ADRC robuste pour le contrôle d’un drone multirotor . . . . . . 115
7.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

IV Conclusion et Perspectives 135

V Annexes 141

A Revisite de quelques principes de conception de lois de commande 142


A.1 Effet de la dynamique moteur sur les performances de la boucle de commande . . 142
A.2 Effet du terme dérivé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
A.3 Réglage du terme intégral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

B Lignes directrices du réglage d’un contrôleur de vol PID pour un drone Mul-
tirotor 146
B.1 Paramétrisation du système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
B.2 Calcul des gains P-PID du contrôleur d’attiutde . . . . . . . . . . . . . . . . . . . 147
B.3 Calcul des gains du contrôleur de position . . . . . . . . . . . . . . . . . . . . . . 148
B.4 Implémentation des Filtres et Observateurs . . . . . . . . . . . . . . . . . . . . . 148

C Design Amélioré de l’Observateur d’État Étendu (ESO) 149


C.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
C.2 Algorithme de Contrôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
C.3 Résultats en Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

7
Table des figures

1 Ombre du drone bi-rotor coaxial Ingenuity sur le sol martien pour son premier
vol, le 19 avril 2021. Source : NASA/JPL* . . . . . . . . . . . . . . . . . . . . . . 15

1.1 Le drone X8 de Donecle lors de l’inspection visuelle d’un avion dans un hangar . 17
1.2 Différentes Plateformes Donecle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3 Exemples de cartes Autopilote compatible avec PX4 . . . . . . . . . . . . . . . . 19

2.1 Visualisation ds repères Inertiel et Local (lié au corps) . . . . . . . . . . . . . . . 21


2.2 Écoulement à travers l’hélice en vol stationnaire [Seddon and Newman, 2011] - A2
est l’aire de la vena-contracta ou l’aire transversale du sillage lointain entièrement
développé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3 Visualisation de l’écoulement coaxial quand l’hélice inférieure est situé dans la
vena-contracta entièrement développée de l’hélice supérieure [Leishman, 2006] . . 26

3.1 Diagramme simplifié de la dynamique d’un drone sous-actionné à poussée unidi-


rectionelle (Rouge : signaux numériques, Noir : signaux physiques) - Les épaisseurs
des traits sont proportionnelles aux dimensions des signaux . . . . . . . . . . . . 33
3.2 Schéma simplifié de la structure classique d’un pilote automatique de drone mul-
tirotor sous-actionné . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3 Représentation du caractère imbriqué d’un contrôleur typique de drone Multirotor 2 35
3.4 Moteur Electrique sans balais de la marque KDE (KDE2814XF-775 Brushless
Motor for Electric Multi-Rotor (sUAS) Series) . . . . . . . . . . . . . . . . . . . . 36
3.5 Schéma fonctionnel du flux de données entre les sorties de contrôle u∗ et les efforts
réels appliqués sur le corps du drone u . . . . . . . . . . . . . . . . . . . . . . . . 37
3.6 Profil de trajectoire typique (accélération, vitesse et position) pour avancer d’un
mètre avec amax = 0.5m/s2 et vmax = 0.4m/s . . . . . . . . . . . . . . . . . . . . 38

4.1 Compensation du vent par inclinaison autour de l’axe x . . . . . . . . . . . . . . 43


4.2 Le pilote de la NASA Neil Armstrong dans le cockpit du X-15-1 (56-6670) après
un vol de recherche. Neil Amstrong a été le premier pilote d’essai à voler à bord
du North American X-15-3, le tout premier véhicule hypersonique habité doté
d’un système de contrôle de vol adaptatif, le MH-96. Source : Collection NASA* 46

5.1 Convention de numérotation des moteurs du drone X8 . . . . . . . . . . . . . . . 57


5.2 Banc coaxial au département DCAS, ISAE-SUPAERO . . . . . . . . . . . . . . . 58
5.3 Modèles de poussée et de couple coaxiaux (rouge) vs données brutes (vert) . . . 59
5.4 Illustration de l’algorithme d’inversion numérique : recherche du point d’intersec-
tion entre deux iso-courbes en parcourant tout le domaine réalisable de force et
couple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.5 Cartes de couleurs de la poussée et du couple coaxiaux . . . . . . . . . . . . . . . 61
5.6 Cartes de couleurs du modèle coaxial inversé . . . . . . . . . . . . . . . . . . . . 62
5.7 Zone de couple/poussée réalisable . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.8 Effet de la Tension batterie sur la poussée ou le couple d’un moteur en fonction
du signal PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.9 Modèles de poussée et de couple (rouge) par rapport aux données brutes (vert)
pour une hélice isolée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

8
Table des figures

5.10 L’effet des commandes de lacet sur les hélices coaxiales . . . . . . . . . . . . . . . 65


5.11 Position du drone simulé au cours de consignes de lacet et d’altitude . . . . . . . 66
5.12 Agnles d’Euler du drone simulé au cours de consignes de lacet et d’altitude . . . 66
5.13 Trace 3D de la position du drone simulé au cours de consignes de lacet et d’altitude 66
5.14 PWM envoyés aux moteurs 3 et 8 au cours de consignes de lacet et d’altitude . . 67
5.15 Le drone octorotor utilisé pour les essais de mixage . . . . . . . . . . . . . . . . . 67
5.16 Suivi de la trajectoire de la position : Référence (rouge) vs Mesuré (bleu) . . . . 68
5.17 Suivi du profil de lacet : Référence (rouge) vs Mesuré (bleu) . . . . . . . . . . . . 68
5.18 Les commandes envoyées à une paire de moteurs Push/Pull (tournant dans la
même direction pour supprimer l’effet de contrôle du lacet) . . . . . . . . . . . . 69
5.19 Force de poussée (bleu) par rapport au poids du drone (noir) - Les figures du
dessus montrent les phases d’altitude de vol correspondantes . . . . . . . . . . . 69

6.1 Quadrirotor expérimental utilisé . . . . . . . . . . . . . . . . . . . . . . . . . . . 77


6.2 Source de vent utilisée formée de trois ventilateurs brasseurs d’air . . . . . . . . . 78
6.3 Dynamique de la position et de la vitesse de référence avec (rouge) et sans (bleu)
intégrateur conçue pour un temps de réponse à 95% de 2, 5 s et un coefficient
d’amortissement de 0, 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.4 Positions du drone en réponse aux mêmes échelons de position pour les différents
contrôleurs comparés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.5 Force de Perturbation estimée par l’observateur ESO . . . . . . . . . . . . . . . . 81
6.6 Diagramme Venn des différents contrôleurs comparés dans ce chapitre . . . . . . 81
6.7 Comparaison des performances en maintien de position entre PI, ADRC and MRAC 81
6.8 Comparaison des performances en maintien de position entre PI, ADRC and
MRAC - Vue 3D de l’erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
6.9 Diagrammes de Bode de la dynamique de référence avec (rouge) et sans (bleu)
intégrateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
6.10 Comparaison des performances en maintien de position entre PI et MRAC intégral
(I-MRAC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6.11 Comparaison des performances en maintien de position entre PI et MRAC intégral
(I-MRAC) - Vue 3D de l’erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6.12 Comparaison des performances en maintien de position entre ADRC et MRAC
intégral (I-MRAC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6.13 Comparaison des performances en maintien de position entre ADRC et MRAC
intégral (I-MRAC) - Vue 3D de l’erreur . . . . . . . . . . . . . . . . . . . . . . . 84
6.14 Comparaison des performances en maintien de position entre différentes augmen-
tations du PI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.15 Comparaison des performances en maintien de position entre différentes augmen-
tations du PI - Vue 3D des erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.16 Effect of Torque Disturbance Rejection on Position Tracking performances . . . . 85
6.17 Effet du rejet de couple de perturbation sur le maintien de position . . . . . . . . 85
6.18 Effet du rejet de couple de perturbation sur le maintien de position - Vue 3D de
l’erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.19 Estimation des couples perturbateurs par l’observateur ESO . . . . . . . . . . . . 86

7.1 Lieu des racines des boucles fermées avec les contrôleurs PID (en bleu) et ADRC
(en rouge) - Tous les pôles du PID coïncident ici avec ceux de l’ADRC . . . . . . 92
7.2 Réponse temporelles des boucles fermées avec les contrôleurs PID (en bleu) et
ADRC (en rouge) - Signaux exactement superposés . . . . . . . . . . . . . . . . . 92
7.3 Lieu des racines des boucles fermées avec les contrôleurs PID (en bleu) et ADRC
(en rouge) quand kt = 0.1α̂kp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.4 Réponse temporelles des boucles fermées avec les contrôleurs PID (en bleu) et
ADRC (en rouge) quand kt = 0.1α̂kp . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.5 Lieu des racines des boucles fermées avec les contrôleurs PID (en bleu) et ADRC
(en rouge) quand kt = 10α̂kp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

9
Table des figures

7.6 Réponse temporelles des boucles fermées avec les contrôleurs PID (en bleu) et
ADRC (en rouge) quand kt = 10α̂kp . . . . . . . . . . . . . . . . . . . . . . . . . 94
7.7 Lieu des racines des boucles fermées avec les contrôleurs PID (en bleu) et ADRC
(en rouge) quand kt = 10α̂kp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
7.8 Réponse temporelles des boucles fermées avec les contrôleurs PID (en bleu) et
ADRC (en rouge) quand kt = 10α̂kp . . . . . . . . . . . . . . . . . . . . . . . . . 95
7.9 Lieu des racines des boucles fermées quand la fréquence d’estimation de perturba-
tion varie de 1 rad/s à 10 rad/s (les couleurs de plus en plus claires correspondent
aux fréquences de plus en plus élevée) . . . . . . . . . . . . . . . . . . . . . . . . 96
7.10 Réponse temporelles des boucles fermées avec les contrôleurs PID (en bleu) et
ADRC (en rouge) quand fESO = 0.7958 . . . . . . . . . . . . . . . . . . . . . . . 96
7.11 Lieu des racines de la boucle fermée PID quand le rapport αα̂ varie de 0.1 à 10 . . 97
7.12 Lieu des racines de la boucle fermée PID quand le rapport αα̂ varie de 0.01 à 2 . . 97
7.13 Lieu des racines de la boucle fermée ADRC quand le rapport αα̂ varie de 0.1 à 10 98
7.14 Lieu des racines de la boucle fermée ADRC quand le rapport αα̂ varie de 0.01 à 2 98
7.15 Lieux des racines des boucles fermées ADRC et PID quand ττ̂act act
varie de 0.5 à 2.5
(les couleurs de plus en plus sombres correspondent à une constante de temps de
plus en plus élevée) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
7.16 Réponse temporelles des boucles fermées avec les contrôleurs PID (en bleu) et
ADRC (en rouge) quand τact = 2.5τ̂act . . . . . . . . . . . . . . . . . . . . . . . . 99
7.17 Lieux des racines des boucles fermées ADRC et PID quand ττ̂act act
varie de 1 à 8 avec
kt = 10α̂kp (les couleurs de plus en plus sombres correspondent à une constante
de temps de plus en plus élevée) . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
7.18 Comparaison entre la fonction de signe, la régularisation linéaire µ et la régulari-
sation exponentielle proposée, pour µ = 0.2 . . . . . . . . . . . . . . . . . . . . . 102
7.19 Example of the impulse response of G2 (s) compared to G02 (s) . . . . . . . . . . . 104
7.20 Simulation 1D sans perturbation appliquée : les paramètres du système sont par-
faitement connus δ = 0 - PI, ADRC et ADRC robuste ont des performances
similaires. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
7.21 Simulation 1D avec perturbation appliquée : les paramètres du système sont par-
faitement connus δ = 0 - ADRC a des capacités de rejet des perturbations signi-
ficativement meilleures que PI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
7.22 Simulation 1D avec perturbation appliquée : δ = 0.2 - L’augmentation robuste de
l’ADRC permet de retrouver des performances idéales. . . . . . . . . . . . . . . . 110
7.23 Simulation 1D avec perturbation appliquée : δ = 0.7 - L’augmentation robuste de
l’ADRC empêche le système d’osciller . . . . . . . . . . . . . . . . . . . . . . . . 111
7.24 Simulation 1D avec perturbation appliquée : δ = 0.833 - Zoom sur la réponse
robuste stable (courbes jaunes) - L’augmentation robuste ADRC empêche le sys-
tème de diverger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.25 Simulation 1D avec perturbation appliquée : δ = −1 . . . . . . . . . . . . . . . . 113
7.26 Simulation 1D avec perturbation appliquée : δ = −3 . . . . . . . . . . . . . . . . 114
7.27 Trajectoire de position à suivre (scénario de simulation) . . . . . . . . . . . . . . 118
7.28 Position du drone simulé dans le cas sans incertitude paramétrique δ = 0 et sans
perturbation externe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
7.29 Attitude du drone simulé dans le cas sans incertitude paramétrique δ = 0 et sans
perturbation externe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
7.30 Erreurs de position (gauche) et de vitesse angulaire ν avec intervalles µ en vert
(droite) dans le cas sans incertitude paramétrique δ = 0 et sans perturbation
externe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
7.31 Vitesses du vent simulé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
7.32 Force et couple de perturbation exercés sur le drone (dus à la traînée aérodyna-
mique et au décentrage du centre de gravité) . . . . . . . . . . . . . . . . . . . . 120
7.33 Position du drone simulé avec δ = 0 . . . . . . . . . . . . . . . . . . . . . . . . . 121
7.34 Attitude du drone simulé avec δ = 0 . . . . . . . . . . . . . . . . . . . . . . . . . 121

10
Table des figures

7.35 Erreurs de position (gauche) et de vitesses angulaires ν (droite) avec les intervalles
µ en vert dans le cas sasn incertitudes δ = 0 . . . . . . . . . . . . . . . . . . . . . 122
h i⊤
7.36 Position du drone simulé avec δf = 0.53 et δ Q = 0.53 0.53 0.75 . . . . . . . 122
h i⊤
7.37 Attitude du drone simulé avec δf = 0.53 et δ Q = 0.53 0.53 0.75 . . . . . . . 123
7.38 Erreurs de position (gauche) et de vitesses angulaires ν (droite) avec les intervalles
h i⊤
µ en vert quand δf = 0.53 et δ Q = 0.53 0.53 0.75 . . . . . . . . . . . . . . . 123
h i⊤
7.39 Position du drone simulé avec δf = −0.33 et δ Q = −0.33 −0.33 −1.8 . . . 124
h i⊤
7.40 Attitude du drone simulé avec δf = −0.33 et δ Q = −0.33 −0.33 −1.8 . . . 124
7.41 Erreurs de position (gauche) et de vitesses angulaires ν (droite) avec les intervalles
µ en vert dans le cas de sous-estimation du gain d’entrée δf = −0.33 et δ Q =
h i⊤
−0.33 −0.33 −1.8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
7.42 Quadrotor avec la masse à larguer . . . . . . . . . . . . . . . . . . . . . . . . . . 125
7.43 Quadrotor avec la masse attachée oscillante . . . . . . . . . . . . . . . . . . . . . 126
7.44 Comparaison entre l’ADRC normal et robuste pendant la première expérience de
largage de charge (190g) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
7.45 Erreur ν de position pendant la première expérience de largage de charge 190g
(intervalles µ en vert) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
7.46 Comparaison entre l’ADRC normal et robuste pendant la deuxième expérience
de largage de charge (305g) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
7.47 Erreurs ν de position pendant la deuxième expérience de largage de charge (305g)
(intervalles µ en vert) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
7.48 Quadrotor pendant l’expérience - Le vent souffle dans la direction de l’axe Y . . 128
7.49 Erreurs de suivi de position 3D et sphères de rayon égal à l’erreur maximale
correspondantes pendant le vol stationnaire perturbé . . . . . . . . . . . . . . . . 129
7.50 Erreurs ν de position pendant le vol stationnaire dans le vent (intervalles µ en vert)129
7.51 Erreurs de suivi d’attitude pendant e vol stationnaire perturbé . . . . . . . . . . 130
7.52 Perturbations normalisées estimées pendant l’expérience du vol stabilisé (Vent
marche : t = 20s - Vent arrêt : t = 50s) . . . . . . . . . . . . . . . . . . . . . . . 130
7.53 Trajectoire de la position de référence exprimée dans le repère NED . . . . . . . 131
7.54 Erreurs de suivi de position en 3D et sphères de rayon égal à l’erreur maximale
correspondantes pendant l’expérience de suivi de trajectoire . . . . . . . . . . . . 131
7.55 Suivi de trajectoire 3D lorsque ADRC (bleu) et l’ADRC robuste (rouge) sont
utilisés - Les ventilateurs sont placés au niveau du point (x, y, z) = (0, 2, 1.2) . . . 132
7.56 Erreurs de position ν pendant l’expérience de suivi de trajectoire (les intervalles
µ sont en vert) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.57 Erreurs de suivi d’attitude pendant l’expérience de suivi de trajectoire . . . . . . 133
7.58 Estimations de la force et couples de perturbation normalisés pendant l’expérience
de suivi de trajectoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
7.59 Comparaison entre une erreur linéaire et une erreur non-linéaire pouvant être
utilisée pour les observateurs de perturbations . . . . . . . . . . . . . . . . . . . . 138
7.60 Comparaison entre l’estimation de la force de perturbation sur l’axe y par un
ESO (bleu) et un DO (Disturbance Observer) basé sur la mesure de l’accélération
(orange) réglé à la même fréquence de coupure . . . . . . . . . . . . . . . . . . . 139

A.1 Caractéristiques de la boucle fermée de troisième ordre en fonction du ratio entre


le pôle intégrateur et la pulsation propre des pôles conjugués . . . . . . . . . . . 145

C.1 Réponse du système quand τf ilt = 0.01s . . . . . . . . . . . . . . . . . . . . . . . 151


C.2 Réponse du système quand τf ilt = 0.1s . . . . . . . . . . . . . . . . . . . . . . . . 152
C.3 Réponse du système quand τf ilt = 0.2s . . . . . . . . . . . . . . . . . . . . . . . . 152

11
Liste des tableaux

2.1 Différents types de traînée pour un drone multirotor . . . . . . . . . . . . . . . . 29

3.1 Capteurs basiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33


3.2 Capteurs avancés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

5.1 Paramètres des modèles de poussée et de couple coaxiaux identifiés . . . . . . . . 59


5.2 Maintien de la position (x,y,z) : Erreur quadratique moyenne (MSE), erreur ab-
solue moyenne (MAE) et erreur absolue maximale (MaxAE) . . . . . . . . . . . . 69

7.1 Paramètres de contrôle en simulation . . . . . . . . . . . . . . . . . . . . . . . . . 120


7.2 Paramètres de contrôle (pour les essais expérimentaux de l’ADRC robuste) . . . 126

C.1 Temps de réponse 95% d’un système dynamique linéaire à pôle − τ1 de multiplicité n150

12
Acronymes

ADRC Active Disturbance Rejection Control. 7, 45, 49, 65, 73, 74, 79, 86, 88, 90, 91, 93, 95,
97, 99, 100, 103, 105, 107, 115, 116, 124, 134, 137, 138

ESC Electric Speed Controller. 29, 30, 31, 35, 37, 57, 77, 138
ESO Extended State Observer. 11, 45, 74, 88, 90, 92, 94, 101, 107, 115, 116, 137, 138, 139, 149,
150, 151

IMU Inertial Measurement Unit (centrale inertielle). 48, 117, 138

MRAC Model Reference Adaptive Control. 76, 77, 86, 87, 136

PID Proportionnel-Intégral-Dérivé. 7, 15, 39, 71, 86, 90, 91, 93, 95, 97, 99, 148
PWM Pulse Width Modulation. 32, 36, 37, 56, 58, 60, 61, 62, 63, 68, 71, 88, 136, 146

RPM Révolutions Par Minute. 71, 88, 136, 137, 138, 146

TD Tracking Differentiator. 73, 79, 88, 90, 105, 107, 115, 116, 137

UAA Unité Atomique d’Actionnement. 36, 37

13
Première partie

Contexte

14
Introduction

Les drones de type multirotor ont ouvert la porte à de multiples cas d’usage, allant de la
photographie aérienne, la cartographie et la livraison, à la gestion des catastrophes, l’animation
des spectacles, la surveillance policière, et même à l’exploitation martienne (Figure 1).

Figure 1 – Ombre du drone bi-rotor coaxial Ingenuity sur le sol martien pour son premier vol,
le 19 avril 2021. Source : NASA/JPL*
*
https://www.jpl.nasa.gov/images/ingenuitys-first-black-and-white-image-from-the-air

Dans la plupart de ces applications, les robots volants doivent opérer de manière auto-
nome dans un environnement extérieur. Ce type de véhicule est néanmoins trop sensible aux
perturbations aérodynamiques, en particulier les multirotors à poussée unidirectionnelle (cf. Sec-
tion 2.1). Cela est dû premièrement à la nature même de leur actionnement qui se fait à travers
l’accélération d’air par des pales en rotation permettant de générer une poussée et un couple
aérodynamique. Le vent environnant a alors intrinsèquement une influence significative sur le
comportement et les performances des hélices. Deuxièmement, la mesure du vent est difficile
à réaliser à bord de ce type de drones car elle interfère avec la re-circulation de l’air induite
par les hélices, sans compter que la plupart des technologies de mesure du vent sont basées
sur un calibrage statique (de la pression par rapport à l’angle d’inclinaison par exemple) et ne
peuvent pas capturer la dynamique transitoire. Ceci est d’autant plus difficile sur les multirotors
à poussée unidirectionelle qui sont sous-actionnés et doivent constamment changer d’attitude
pour appliquer des forces latérales et se déplacer. Finalement, la force de traînée causée par
l’interaction du drone (ses hélices et son corps) avec le vent est difficile à modéliser car elle a des
formes et des origines diverses. Par conséquent, la conception d’un contrôleur pour résister à de
telles conditions perturbées tout en gardant des performances de suivi de trajectoire nominales
peut s’avérer difficile. Bien que plusieurs solutions ont déjà été proposées dans la littérature, le
monde industriel reste, dans sa globalité, encore attaché aux anciennes techniques, à savoir les
contrôleurs PID. Cet algorithme coche en effet toutes les cases : hormis sa facilité de réglage
et d’implémentation, il a fait ses preuves dans la plupart des conditions opérationnelles. Mais
le PID devient insuffisant voire dangereux quand le système à contrôler se complexifie, ce qui
peut arriver soit à cause des incertitudes internes (variation de masse, d’inertie, changement du

15
régime moteur etc.) soit à cause des perturbations externes.
L’objectif de cette thèse est d’explorer et de concevoir des solutions de contrôle efficaces
et simples à implémenter qui permettent à un drone multirotor de voler en sécurité dans des
conditions aérodynamiques perturbées afin d’effectuer des tâches à basses vitesses (comme l’ins-
pection visuelle). L’idée étant de chercher des alternatives au PID pouvant s’intégrer facilement
dans un contexte industriel. Tout le travail est réalisé à la lumière des trois difficultés évoquées
plus haut : l’influence des perturbations sur les performances des moteurs, l’absence de capteurs
de vitesse de vent et la complexité de modélisation des forces de traînée.
Hormis la conclusion (Partie IV) et les annexes (Partie V), ce document est composé de trois
grande parties :
— Partie I - Contexte Dans cette première partie une vue globale de la problématique
de la thèse et de son environnement sont présentés. D’un point de vue scientifique, les
principaux modèles physiques et les idées directrices du contrôle des drones multirotor
sont rappelés. Et d’un point de vue industriel, les motivations et les contraintes de ce
travail de recherche appliquée sont présentés.
— Partie II - Bibliographie La deuxième partie est consacrée à l’étude bibliographique
du contrôle résistant aux perturbations appliqué aux drones multirolor. On y donne un
tour d’horizon des grandes familles de commande à rejet de perturbations et surtout de
celles qui ont été véritablement appliquées.
— Partie III - Contributions La troisième partie, la plus importante de ce document,
contient nos différentes contributions :
• En Chapitre 5, un nouvel algorithme d’allocation des commandes dédiés aux multi-
rotor en configuration coaxiale est présenté.
• En Chapitre 6, trois techniques de rejet de perturbations sont comparés en se basant
sur une étude expérimentale.
• En Chapitre 7, une amélioration de Contrôle ADRC pour augmenter sa robustesse
aux incertitudes paramétriques est proposée et testée.

Ce que contient ce travail Ce que ne contient pas ce travail


Une revisite des lois de commande Une nouvelle approche de contrôle.
classiques d’un drone multirotor.
Des rappels génériques des théories Des démonstrations détaillées de
clés de modélisation et de contrôle théorèmes et des analyses de stabi-
des drones multirotor. lité approfondies.
Des résultats expérimentaux. Des simulations haute fidélité.

16
Chapitre 1

Contexte Industriel

1.1 Motivations

Figure 1.1 – Le drone X8 de Donecle lors de l’inspection visuelle d’un avion dans un hangar

La société française Donecle 1 développe des drones autonomes qui effectuent des inspections
visuelles des surfaces extérieures des avions. Le drone suit une trajectoire pré-calculée autour de
l’avion (à 1 m de distance en moyenne) pour prendre en photo toute la surface. Ces photos sont
envoyées au fur et à mesure à la station sol qui est une tablette entre les mains de l’opérateur.
Toutes les données visuelles collectées sont ensuite diagnostiquées par des algorithmes de vision
par ordinateur sur la station sol qui détectent différents types d’impacts et de défauts, les classent
et établissent un rapport d’inspection en temps quasi réel. Ces algorithmes utilisent des méthodes
d’intelligence artificielle et d’apprentissage automatique qui ont développées au sein de Donecle
[Miranda et al., 2020]. L’inspection automatique par drone permet de diviser par huit le temps
d’inspection d’un avion de ligne tout en améliorant la précision et la traçabilité de la procédure.
Les drones de Donecle sont certifiés pour voler à l’intérieur des hangars, ils n’utilisent donc
pas le GPS pour l’estimation de la position mais plutôt un système de positionnement par laser
Infra Rouge en référence à l’avion inspecté permettant une précision de positionnement centi-
métrique 2 . Les performances du drone sont satisfaisantes lorsque les conditions environnantes
ne sont pas perturbées, mais elles commencent à se dégrader dans des environnements aérody-
namiques complexes. Si ces perturbations affectent considérablement le suivi de la trajectoire, la
mission est interrompue de manière autonome. Le drone suit alors une trajectoire d’atterrissage
d’urgence sans obstacle, assurant la sécurité du drone et de son environnement. Cependant,
1. https://www.donecle.com/
2. https://patents.google.com/patent/WO2017121936A1/en?assignee=donecle&oq=donecle

17
Chapitre 1. Contexte Industriel

Donecle vise à réduire autant que possible ces atterrissages d’urgence en rendant le drone ca-
pable de gérer des conditions de vol non nominales ce qui permettrait aux drones d’effectuer
l’inspection visuelle à l’extérieur avec du vent.
Au-delà des motivations industrielles de Donecle, cette thèse traite une problématique cen-
trale qui est la sensibilité significative des multirotors aux perturbations aérodynamiques. Cette
limitation doit être surmontée avec des outils simples et efficaces afin de faire face à la croissance
exponentielle des cas d’utilisation des multirotors dans d’innombrables secteurs. Une difficulté
supplémentaire réside dans la configuration contra-rotative coaxiale des hélices de l’un des drones
commercialisé par Donecle. En fait, le interactions entre chaque paire d’hélices superposées mo-
difient considérablement les performances aérodynamiques des actionneurs.

1.2 Ressources expérimentales


• Banc moteur coaxial à l’ISAE-SUPAERO Figure 5.2 3
• Volière de l’ISAE-SUPAERO avec système de capture de mouvement Optitrack
• Drones d’essais : Octorotor Expérimental Donecle Figure 5.15 + Drones Quadri MK de
l’ISAE-SUPAERO Figure 6.1 + Octorotor Industriel Donecle Figure 1.2a.
• Logiciels Donecle : Station Sol GSS + Simulateur + Contrôleur de Vol + Ordinateur
compagnon (carte NVIDIA TX2)
• Matlab/Simulink®

1.3 Hypothèses de travail


Les hypothèses de travail liés au contexte industriel justifient les différentes pistes théoriques
creusées.
• Le drone d’application est de type multirotor sous-actionné (à poussée unidirectionelle)
ayant 8 moteurs disposés en quatre paires coaxiales. Cette configuration est appelée X8.
Mais les résultats de la thèse devraient être facilement généralisable à d’autres configu-
rations sans un grand effort de modélisation et de réajustement de gains étant donné
que Donecle adopte comme stratégie de diversifier ses plateformes comme le montre la
Figure 1.2.

(a) Drone Octorotor 2018 (b) Drone Quadrirotor 2021

(c) Prototype du drone Hexarotor


"Fully Actuated" 2021

Figure 1.2 – Différentes Plateformes Donecle

3. https://www.rcbenchmark.com/

18
1.3. Hypothèses de travail

• Donecle dispose d’un algorithme de positionnement laser précis (< 10 cm) et on suppose
qu’il est assez performant pour que l’estimation de l’état cinématique du drone ne soit
pas affecté par les perturbations aérodynamiques.
• L’algorithme de contrôle doit pouvoir fonctionner sur une carte de vol de type Pixhawk
Series 4 (voir Figure 1.3)) 5 compatible avec le système d’exploitation Nuttx 6 afin de s’in-
tégrer facilement dans le logiciel de contrôle de Donecle. Cela correspond aux conditions
expérimentales en milieu contrôlé (volière) et aussi au contexte industriel (algorithme de
positionnement Laser Donecle).

(b) Marque Holybro Pix32 v5


(a) Marque Drotek Dropix (2018) (2021)

Figure 1.3 – Exemples de cartes Autopilote compatible avec PX4

• Le drone parcourt ses trajectoires autour de l’avion à des vitesses de l’ordre de 0.5 m/s
(pouvant atteindre 1 m/s au maximum). Cette contrainte de vol à basse vitesse a des
justifications techniques et ergonomiques. En effet, cela garantit la haute définition des
photos prises et permet de ne pas surprendre ou gêner les personnes présentes dans la
zone de travail.
• Objectif minimal visé de résistance au vent : le drone Donecle doit pouvoir voler en
présence d’un vent constant d’au moins 5 m/s et de rafales d’au moins 3 m/s (donc
un vent total de l’ordre de 8 m/s correspondant aux limites habituelles des nacelles
élévatrices utilisées pour l’inspection visuelle standard), tout en gardant un écart maximal
de la trajectoire de 20 cm, afin de garantir la sécurité des avions inspectés. Des drones
du marché peuvent en fait résister à du vent allant jusqu’à 8 m/s (Albris de Sensefly),
10 m/s (Bebop-pro de Parrot) ou 12 m/s (Falcon 8 de Intel) mais ne permettent pas de
travailler à une distance inférieure à 3 m de la surface à inspecter.

4. https://docs.px4.io/master/en/flight_controller/pixhawk_series.html
5. Ces cartes électroniques développées par des entreprises indépendantes ne cessent d’évoluer et d’avoir des
performances de plus en plus importantes. Le processeur de Dropix (2018) STM32F427 a une fréquence de
180M Hz, une mémoire Flash de 2M o et une mémoire RAM de 256Ko. Le processeur de pix32 (2021) STM32F765
a une fréquence de 216M Hz, une mémoire Flash de 2M o et une mémoire RAM de 512Ko.
6. Nuttx est un système d’exploitation temps réel dédié aux microcontrôleurs https://nuttx.apache.org/

19
Chapitre 2

Physique de vol d’un drone


Multirotor

2.1 Design sous-actionné


Un drone multirotor est constitué d’un corps rigide, fait d’éléments mécaniques fixes (bras,
cadre, capteurs etc.), auquel sont attachés certaines Unités d’Actionnement Atomiques (UAA)
[Hamandi et al., 2020b]. La masse de la charge utile, le type de chaque UAA, leur nombre et
leur disposition définissent entièrement les performances que peut atteindre le drone. Une UAA
est dans la plupart des cas un seul moteur électrique sans balais et une hélice à pas fixe 1 .
Indépendamment du type de design, deux propriétés fondamentales sont communes à tous
les véhicules multirotor :
1. La possibilité de varier le couple total dans toutes direction de R3 . Ce qui veut dire que la
dynamique de rotation est toujours entièrement actionnée.
2. La possibilité d’exercer une force dans au moins une direction en gardant le couple total
nul.
Ces deux propriétés garantissent au drone la capacité de contrebalancer son poids en restant
stabilisé (dans au moins une orientation donnée) et de bouger dans l’espace autour de cet état
d’équilibre. Cependant ces propriétés ne disent rien sur le découplage entre la force et les couples
appliqués quand le drone n’est pas en vol stabilisé. Un tel découplage peut être atteint avec
des configurations à poussée multi-directionelle, voire entièrement actionnées [Hamandi et al.,
2020b]. Ces configurations deviennent de plus en plus fréquentes notamment pour des tâches de
manipulation et de contact physique avec l’environnement.
Dans le cadre de ce travail, nous nous intéressons aux multirotors sous-actionné à Poussée
Unidirectionnelle (PUD) pour lesquels la poussée ne peut être variée indépendemment du couple
que dans la seule direction verticale du poids. Ces configurations sont aussi appelées coplanaires
parce que les UAA sot disposées sur le même plan et orientées de la même façon, la plus répandue
est le quadrirotor. Pour ce type de drone le mouvement horizontal est induit par le changement
d’orientation et donc fortement couplé.
L’appellation "sous-actionné" vient du fait que pour bouger sur les 6 degrés de libertés de
translation et de rotation, le drone ne dispose que de 4 entrées de commandes découplées, à
savoir les trois couples de rotation (roulis τr , tangage τp et lacet τy ) et la poussée totale normale
au plan des moteurs T , ce qui rend la résistance au vent plus difficile.

2.2 Définition des repères


Au moins deux repères doivent être définis pour décrire le mouvement du drone dans l’espace :
• Un repère supposé inertiel (compte tenu des vitesses et des précisions) fixé au sol I,
également appelé NED, dont les axes pointent vers les trois orientations Nord, Est et Bas
1. Nous verrons dans la suite de ce travail que dans le cas d’un drone en configuration coaxiale il est plus
astucieux de considérer chaque paire d’hélices superposées comme une seule UAA

20
2.3. Dynamique du corps rigide

• Un repère fixé au corps B attaché à G centre de masse du drone avec b1 pointant vers
l’avant (direction x), b2 pointant vers la droite (direction y) et b3 pointant vers le bas
(direction z).

Figure 2.1 – Visualisation ds repères Inertiel et Local (lié au corps)

2.3 Dynamique du corps rigide


Le corps du drone est supposé rigide, et donc sa dynamique obéit aux équations de Newton-
Euler qui peuvent s’écrire de la façon suivante :

F = maG (2.1a)
τ G = IG Ω̇ + Ω × IG Ω (2.1b)

Où :
• m (kg) est la masse du drone
• F (N ) est la somme des forces appliquées sur le corps du drone par rapport au repère
NED
• aG (m.s−2 ) est l’accélération linéaire du centre
 de gravité
 selon
 les axes du repère NED
ẍ x
axes, donc elle est aussi égale à aG = p̈ = ÿ  si p = y  sont les coordonnées de G
   
z̈ z
dans le repère NED
• τ G (N m) est la somme des couples appliqués sur le drone au niveau de son centre de
gravité, par rapport au repère fixé au drone B
• Ω (rad.s−1 ) est la vitesse angulaire du drone autour des axes du repère B. Si on
 note les
Ωr
vitesses de roulis, tangage et lacet respectivement Ωr ,Ωp et Ωy , alors Ω = Ωp 
 
Ωy
2
• I G (kg.m ) est la matrice d’inertie exprimée dans le repère B au centre de gravité. Cette
matrice est calculée en supposant que les hélices sont attachées de façon rigide au cadre
du drone avec des orientations prédéfinies choisies de manière à garder la symétrie autour
des axes de B
• I G (kg.m2 ) est la matrice d’inertie exprimée dans le repère B au centre de gravité. Cette
matrice est calculée en supposant que les hélices sont attachées de façon rigide au cadre
du drone avec des orientations prédéfinies choisies de manière à garder la symétrie autour
des axes de B
L’équation de translation est exprimée dans le repère inertiel I et celle de rotation dans le
repère B. Cette formulation est pratique d’un point de vue commande parce que d’une part la
majorité des mesures de position et de vitesse sont acquises par rapport à un environnement
fixe, et d’autre part les mesures de vitesses de rotation que donne un gyroscope sont par rapport
aux axes du corps en mouvement (Strapdow Inertial Measurement), donc le repère B.

21
Chapitre 2. Physique de vol d’un drone Multirotor

Les forces et les couples appliqués sont composés de contributions diverses : forces et couples
générées par les actionneurs Fa et τ a , gravité, effet gyroscopique des hélices, vibrations et
déséquilibres de la structure, force et couples de traînées aérodynamiques (nous les reverrons
avec plus de détails plus bas) qui dépendent des propriétés physiques du drone, des hélices mais
aussi de l’air ambiant (vent, re-circulations d’air, conditions atmosphériques etc.). L’approche
que nous adoptons est de considérer tous ces efforts qui ne proviennent pas des actionneurs
comme des perturbations. Ceci se traduit par le fait qu’elle sont partiellement ou totalement
inconnues par le concepteur des lois de commande. Notons-les ∆F pour les forces et ∆τ pour
les couples. Donc :

0
 

F = Fa +  0  + ∆F (2.2a)
 
mg
τ G = τ a + ∆τ (2.2b)

Avec

0
 

Fa = R  0  (2.3a)
 
−T
 
τr
τ = τp 
a
(2.3b)
 
τy

où R est la matrice d’orientation du drone dans le repère NED attaché à G ; elle coïncide aussi
avec la matrice de changement de repère qui fait passer les coordonnées de B vers NED attaché
à G. Cette matrice est aussi appelée la matrices des cosinus directeurs et peut être exprimée
comme suit

R = Rz (ψ)Ry (θ)Rx (ϕ) (2.4a)


cos(θ)cos(ψ) sin(θ)sin(ϕ)cos(ψ) − sin(ψ)cos(ϕ) sin(θ)cos(ϕ)cos(ψ) + sin(ψ)sin(ϕ)
 

= cos(θ)sin(ψ) sin(θ)sin(ϕ)sin(ψ) + cos(ψ)cos(ϕ) sin(θ)cos(ϕ)sin(ψ) − cos(ψ)sin(ϕ)


 
−sin(θ) cos(θ)sin(ϕ) cos(θ)cos(ϕ)
(2.4b)

Où ϕ, θ et ψ sont les angles d’Euler, décrivant les mouvement de roulis, tangage et lacet
(respectivement) comme vus du repère NED. Ceci est la définition extrinsèque des angles d’Euler,
en considérant la séquence de rotation ZYX.
Cette matrice dispose de 9 degrés de libertés alors que seulement 3 sont nécessaires. Le reste
des degrés de libertés sont en effet relié par les contraintes données par la relation RR⊤ = I qui
définit une matrice orthogonale réelle.
Aux équations dynamiques 2.1 s’ajoutent les relations cinématiques fondamentales suivantes

ṗ = v v̇ = aG (2.5a)
Ṙ = RΩ× (2.5b)

0 Ωy −Ωp
 

Où Ω× est la matrice anti-symétrique associée au produit vectoriel : Ω× = −Ωy 0 Ωr 


 
Ωp −Ωr 0
Quand ces équations sont utilisées à des fins de simulation, il est nécessaire d’aller dans le
détail de la compositions de ces forces et couples perturbateurs afin d’avoir un comportement

22
2.4. Aérodynamique

plus réaliste du système.

∆F = Faero (vair , T ) (2.6a)


0 0
   

∆τ = −JΩ ×  0  −dG × R⊤  0  +τ aero (vair , Ωair , T ) (2.6b)


   
ΩRot mg
| {z }| {z }
Couple gyroscopique [Hamel et al., 2002] Couple dû au décentrage du centre de masse G


• vair = v − vwind
• Ωair = Ω − Ωwind
• dG est la position du centre de masse dans le repère B attaché au centre géométrique du
corps (qui coïncide approximativement au croisement des bras du drone)
• J(kg.m2 ) est le moment d’inertie d’une hélice autour de son axe de rotation
• ΩRot est la somme algébrique des vitesses de rotation des hélices :
n
ΩRot = (−1)i ωi
X

i=1

ωi est la vitesse de rotation du ieme rotor (i ∈ {1, .., n}) et n est le nombre total de rotors
• Faero et τ aero sont les forces et couples dûs aux différents effets aérodynamiques provenant
des hélices (en dehors de la poussée et couple utiles), de l’environnement (vent et re-
circuation d’air) et de la résistance du corps du drone lui-même. Ils seront détaillés plus
dans la Section 2.4.4.

2.4 Aérodynamique
Un drone multirotor est avant tout un objet volant, il est donc indispensable de comprendre
son aérodynamique avant de chercher à améliorer ses performances de vol. Dans cette section,
certains modèles aérodynamiques sont présentés en se basant sur l’hypothèse d’un écoulement
incompressible 1-D quasi-stable. L’accent est mis en particulier sur l’aérodynamique des hélices
coaxiales.
La poussée générée par une hélice est notée T (à ne pas confondre avec la poussée totale T
introduite ci-dessus) et le couple aérodynamique Q. Un indice u ou l est ajouté lorsque l’on se
réfère au rotor supérieur ou inférieur dans la configuration coaxiale.

2.4.1 Hélice isolée en vol stationnaire


La section de profil d’une pale d’hélice est similaire au profil d’une aile ; avec un bord d’at-
taque, un bord de fuite, une corde de référence, une épaisseur, une cambrure etc. Quand l’hélice
tourne, ce profil avance par rapport à l’air qui l’entoure comme avance le profil de l’aile d’un
avion en croisière. Et donc cette rotation crée une différence de pression entre les surfaces supé-
rieure (extrados) et inférieure (intrados) de l’hélice. Pour simplifier la modélisation, il est usuel
d’introduire un disque correspondant au plan ayant pour normale l’axe de rotation. Ce disque
joue alors le rôle d’une surface portante : la force de portance est directement liée à ce différentiel
de pression et elle est dans la direction opposée au changement de vitesse communiqué à l’air.
Simultanément, l’air exerce sur l’hélice en rotation un couple résistant (rotation opposée) qui
est le couple aérodynamique [Stevens and Lewis, 2016].
Ces forces et couples aérodynamiques dépendent de diverses grandeurs physiques variant
dans le temps comme : la vitesse du centre de masse de l’hélice par rapport à l’air ambiant (qui
est nulle en vol stationnaire), la vitesse angulaire de l’hélice, la vitesse de l’air la traversant.
Elles dépendent également d’autres caractéristiques constantes de la pale, comme sa forme (son
rayon, son angle de torsion, etc.) et son coefficient de traînée à portance nulle [Leishman, 2006].
En utilisant les notations illustrées sur la figure 2.2 on peut écrire :

T = A(pU − pL ) (2.7a)

23
Chapitre 2. Physique de vol d’un drone Multirotor

Où A est la surface du disque balayé par l’hélice, c’est à dire A = πR2 si R est le rayon de la
pale.
En supposant que l’air soit incompressible, parfait et que sa densité soit de ρ, on applique alors
le principe de Bernoulli :
1 2 1
ρv∞ + p∞ = ρvi2 + pU (2.7b)
2 2
1 2 1 2
ρv + pL = ρv2 + p∞ (2.7c)
2 i 2
Ce qui conduit à :
1
T = ρAv22 (2.7d)
2
Où v2 est la vitesse de l’air dans le sillage à longue distance, qui est le double de la vitesse
induite vi comme le montre la théorie du moment [Lucas, 2007]. Donc :

T = 2ρAvi2 (2.7e)

Dans l’Équation (2.7e), ρA n’est autre que le débit massique d’air traversant le plan de rotation
et 2vi est le changement total de la vitesse communiqué à l’air, la multiplication des ces deux
grandeurs donne donc la force de poussée générée. Qui est une loi plus générique.
Leishman [Leishman, 2006] introduit en plus un coefficient non dimensionnel appelé "rapport
d’entrée induit en vol stationnaire" correspondant au rapport entre la vitesse de l’air induit et
sa vitesse en bout de pale Rω : λh = Rω vi
. Ce rapport est la quantité préférable à utiliser pour
comparer les résultats de différentes hélices. On obtient enfin la loi quadratique bien connue,

T = 2ρAR2 λ2h ω 2
 
(2.8)
| {z }
γT

L’hélice en rotation induit également un couple aérodynamique qui pourrait être déduit de
la puissance générée P en la divisant par la vitesse angulaire ω. La puissance est constituée de
deux contributions selon [Stevens and Lewis, 2016] : la puissance induite due à l’accélération
de l’air à travers l’arbre du rotor, et la puissance de profil due à la traînée de frottement des
pales. La somme de ces deux composantes, en conditions de vol stationnaire, conduit à une
puissance proportionnelle au cube de ω [Stevens and Lewis, 2016] qui correspond à un couple
aérodynamique proportionnel à ω 2 :
Q = γQ ω 2 (2.9)
En aérodynamique des rotors, il est courant de définir les coefficients de poussée et de couple
non dimensionnels comme
T Q
CT = 1 2 2
CQ = 1 3 2
(2.10)
2 ρAR ω 2 ρAR ω

D’où
1 1
γT = ρAR2 CT γQ = ρAR3 CQ (2.11)
2 2
et s
CT
λh = (2.12)
2
Des équations 2.8 et 2.9, on déduit la propriété bien connue de proportionnalité entre la poussée
et le couple :
Q = κt T (2.13)
γ
avec κt = γQ
T
.
Cependant, les équations 2.8 et 2.9 ne prennent pas en compte l’effet d’interférence aéro-
dynamique induite par la configuration coaxiale. Dans la section suivante nous enrichissons le
modèle en exploitant cette influence.

24
2.4. Aérodynamique

Figure 2.2 – Écoulement à travers l’hélice en vol stationnaire [Seddon and Newman, 2011] -
A2 est l’aire de la vena-contracta ou l’aire transversale du sillage lointain entièrement développé

2.4.2 Hélices coaxiales contra-rotatives en vol stationnaire


La configuration de propulsion coaxiale contra-rotatives présente plusieurs avantages tels
que : la maximisation de la surface portante disponible, la réduction des couples gyroscopiques
sur le corps du drone et la minimisation de la perte d’énergie due aux tourbillons induits par la
rotation des hélices [Uehara and Sirohi, 2017]. En effet, la vitesse du tourbillon induite par l’hélice
supérieure est compensée par l’hélice inférieure, qui tourne en sens inverse. Ces atouts sont
cependant accompagnées de quelques inconvénients ; l’hélice inférieure est fortement perturbée
par le souffle de celle au dessus, ce qui réduit sa performance. En pratique même l’hélice du dessus
se trouve impactée par cette interférence aérodynamique comme le montre l’étude expérimentale
dans [Uehara and Sirohi, 2017]. Nous retrouvons cette même propriété dans le Chapitre 5.
Une étude détaillée de l’aérodynamique de cette configuration utilisant la théorie du moment
est donnée dans [Leishman, 2006] où des relations intéressantes entre les poussées supérieure et
inférieure et les vitesses induites correspondantes sont construites. Cependant, cette étude est
limitée au cas d’un espacement fixe entre les hélices de sorte que celle en bas soit situé au niveau
de la vena-contacta de l’hélice du dessus, qui est la région du sillage supérieur où la vitesse de
l’air le long de l’axe de rotation est égale à deux fois la vitesse induite au niveau du disque de
l’hélice (Figure 2.3).
Cette région vena-contracta est atteinte à une distance égale au diamètre de l’hélice en
dessous de celui du haut, une hypothèse importante introduite dans [Lucas, 2007] qui n’est pas
notre cas. Un modèle linéaire simplifié reliant l’espacement entre les rotors et la surface du tube
d’écoulement à la position de l’hélice inférieure est également proposé dans [Lucas, 2007]. Il est
donc possible de combiner ces résultats pour construire une version généralisée des équations
proposées dans [Leishman, 2006]. Introduisons d’abord les grandeurs suivantes :
• Tu la poussée de l’hélice supérieure
• Tl la poussée de l’hélice inférieure
• vu la vitesse de l’air induite par l’hélice supérieure dans son plan
• wu la vitesse de l’air induite par l’hélice supérieure au niveau du plan du rotor inférieur
(elle est égale à 2vu dans le cas particulier présenté sur la figure 2.3)
• vl la vitesse de l’air induite par l’hélice inférieure dans son plan
• wl la vitesse de l’air dans la vena-contracta de l’hélice inférieure (contenant les contribu-
tions des deux rotors)
• ṁu est le débit massique à travers l’hélice supérieure
• ṁl est le débit massique à travers l’hélice inférieure
• A = πR2 surface d’une hélice
• S = πr2 la surface du plan du rotor inférieur affectée par le souffle du rotor supérieur
• d la distance séparant les deux hélices
Selon la théorie du moment, le rapport entre la surface de la section transversale du sillage
lointain complètement développé (vena-contracta) et le disque du rotor est de AA∞ = 12 donc

25
Chapitre 2. Physique de vol d’un drone Multirotor

Figure 2.3 – Visualisation de l’écoulement coaxial quand l’hélice inférieure est situé dans la
vena-contracta entièrement développée de l’hélice supérieure [Leishman, 2006]

r∞ = √R2 où r∞ est le rayon du disque de sillage du rotor lointain. Toutefois, dans la pratique,
il a été constaté expérimentalement que le rapport de contraction du sillage n’est pas égal à
√1 = 0.707 mais plutôt à 0.78. C’est la conséquence de la viscosité négligée de l’air qui conduit
2
à une plus grande surface de sillage lointain que prévu théoriquement [Leishman, 2006]. Ensuite,
en utilisant l’hypothèse mentionnée ci-dessus, indiquant que la section transversale du rayon du
tube du flux d’air varie linéairement avec d, S et A peut être liée par l’équation :
2
d

S = 1 − 0.5 (1 − 0.78) A (2.14)
R
| {z }
= c1 constante
2
d

c1 = 1 − 0.11 (2.15)
R

De même, en supposant que la vitesse dans le tube d’écoulement augmente aussi linéairement
avec la distance d et en sachant qu’elle double au niveau de la vena-contracta, on peut écrire :
d
 
wu = 1+ vu (2.16)
2R
| {z }
= c2 constante

Le problème peut maintenant être abordé au moyen de la simple théorie du moment telle que
décrite dans [Leishman, 2006]. La poussée supérieure est alors
Tu = ṁu wu (2.17a)
= ρAvu wu (2.17b)
= ρAc2 vu2 (2.17c)
D’autre part, la poussée inférieure est un peu plus complexe car le débit sortant du rotor inférieur
n’est pas seulement dû à sa rotation. Ainsi, la conservation de l’élan conduit à
Tl + Tu = ṁl wl (2.18a)
= (ρS (wu + vl ) + ρ (A − S) vl ) wl (2.18b)
= (ρc1 c2 vu + ρvl ) Awl (2.18c)

26
2.4. Aérodynamique

Ainsi, les poussées supérieures et inférieures sont maintenant exprimées en fonction de wl et


des vitesses induites vu et vl qui sont proportionnelles aux vitesses angulaires ωu et ωl (cf.
Section 2.4.1). L’objectif est d’éliminer la dépendance de wl afin de construire un modèle de
poussée coaxiale en vol stationnaire dépendant uniquement des vitesses angulaires des deux
rotors. Pour ce faire, la même approche de Leishman [Leishman, 2006] est suivie, mais elle est
ici généralisée au cas d ̸= 2R.
Le travail fourni par l’hélice inférieure est

Pl = Tl vlmean

Où nous définissons la vitesse moyenne de l’air traversant le rotor inférieur comme


 1
vlmean = (vl + c2 vu ) S + vl (A − S) (2.19)
A
= vl + c1 c2 vu (2.20)

D’où
Pl = Tl (vl + c1 c2 vu ) (2.21)
et cela est égal au gain d’énergie cinétique de l’écoulement inférieur. Par conséquent,
1 1
Tl (vl + c1 c2 vu ) = ρA (vl + c1 c2 vu ) wl2 − ρ (c1 A) (c2 vu ) (c2 vu )2 (2.22)
|2 {z } |2 {z }
Energie sortante Energie entrante

En combinant les équations 2.22, 2.18c et 2.17c, wl pourrait être calculé comme la solution d’un
polynôme du second ordre dont le coefficient dépend de vu et vl . Il est alors théoriquement
possible de calculer la poussée en vol stationnaire des deux rotors coaxiaux pour n’importe quel
couple de vitesses de rotor supérieures et inférieures (en supposant que les coefficients de poussée
en vol stationnaire ont été identifiés expérimentalement).
Cependant, il existe deux solutions possibles pour wl et il n’est pas garanti qu’il soit toujours
possible de choisir la bonne. Et même si cela pouvait être fait, les expressions de wl et de Tl
seraient si complexes. Il est donc encore difficile de juger de l’utilité et de l’exploitabilité de ce
modèle aérodynamique, qui n’est également valable qu’en vol stationnaire. Il pourrait être plus
utile à des fins de simulation plutôt que de conception de contrôle. Cette piste de modélisation
n’a alors pas été retenue.
Une autre façon plus simple de tenir compte des effets coaxiaux, est ce qui est fait dans
[Koehl et al., 2012] où les coefficients de perte σ1 et σ2 sont introduits pour modéliser la perte
d’efficacité

Tu = σ1 αu ωu2 (2.23a)
Tl = σ1 αl ωl2 (2.23b)

Qu = σ2 γu ωu2 (2.24a)
Ql = σ2 γl ωl2 (2.24b)

Ce modèle est évidemment une approximation du premier décrit par les équations couplées
2.17c, 2.18c et 2.22. Les coefficients de perte σ1 et σ2 devraient être compris entre 0.8 et 1 et
dépendent des vitesses angulaires des deux rotors coaxiaux ωu et ωl . Ces différents paramètres
peuvent être identifiés expérimentalement. Un banc d’essai approprié doit être utilisé à cette fin.

2.4.3 Effet d’un flux libre d’air à vitesse non négligeable sur une hélice isolée
Les modèles présentés ci-dessus ne sont pas plus très fidèles lorsque le drone n’est plus en
vol stationnaire. En effet, la poussée produite par une hélice dépend de la vitesse du flux libre,
même lorsque le drone vole à une vitesse modérée. Et la variation de la vitesse de l’air entraîne

27
Chapitre 2. Physique de vol d’un drone Multirotor

des effets aérodynamiques plus ou moins importants, sans compter la présence éventuelle de
vent. Les effets les plus connus sont la variation de la poussée totale en fonction de la vitesse du
flux libre et de l’angle d’attaque des pales, et l’effet de "battement des pales" qui est causé par la
différence des vitesses d’écoulement qui impactent les pales qui avancent et reculent pendant le
vol en translation, ce qui provoque le battement des pales de haut en bas [Hoffmann et al., 2011].
Il pourrait être raisonnable de négliger le second effet dans le contexte de cette thèse puisque
les rotors en carbone de Donecle sont assez rigides. Ainsi, même si un phénomène de vibration
de la même origine se produit, il ne serait pas similaire à l’effet de battement car les modes de
vibration de plus haute fréquence produiraient d’autres déformations qu’un angle de déflexion.
Considérons l’effet de la vitesse du flux libre sur la poussée des hélices, plus représentatif de
notre cas. Cet effet a été bien étudié dans la littérature aérodynamique comme dans [Leishman,
2006] et reconsidéré dans [Hoffmann et al., 2011] à des fins de contrôle. Les résultats corres-
pondants sont présentés ci-dessous. Si α est l’angle d’attaque du plan du rotor par rapport au
flux libre, v∞ est la vitesse de l’air dans le flux libre induite par le mouvement de translation
du drone, donc égale à la norme de la vitesse du centre du rotor dans un repère inertiel (lors-
qu’aucune perturbation due au vent n’est considérée), vh est la vitesse de l’air induite à travers
le rotor en vol stationnaire pour une puissance d’entrée donnée et vi l’air induit pour la même
puissance lorsque le rotor est en mouvement de translation, alors le rapport de la poussée en vol
stationnaire Th sur la poussée réelle est :
Th vh
= (2.25)
T vi − v∞ sin(α)
vi peut être reliée à vh comme suit :

vh2
vi = p (2.26)
(v∞ cosα)2 + (vi − v∞ sinα)2
Ces équations permettent de prédire la variation de la norme du vecteur poussée due aux effets
aérodynamiques et peuvent être utilisées dans un schéma de contrôle pour la compensation
de la manière suggérée dans [Hoffmann et al., 2011], qui va être présenté brièvement dans le
Chapitre 4.

2.4.4 Forces et couples de traînée aérodynamique


Les forces et couples dûs à la traînée aérodynamique que subit un drone multirotor ont des
origines différentes et affectent plus ou moins la dynamique du drone selon la vitesse de vol.
Un aperçu exhaustif de ces efforts est donné dans [Bangura and Mahony, 2012] dans lequel
un modèle dynamique simplifié avec des paramètres regroupés ("lumped"). Nous adoptons la
même approche et nous utilisons le même type de modèles pour la simulation (par exemple en
Section 7.4.4).
Les différents types de traînée aérodynamique sont résumés sur le Tableau 2.1 ci-dessous.
h i⊤
• vp = vx , vy , 0 est la vitesse horizontale du drone par rapport au repère B
• Ω est la vitesse de rotation du drone
• ωi est la vitesse de rotation de l’hélice numéro i
• vpi est la vitesse horizontale de l’hélice numéro i par rapport au repère B
• vi esth la vitesse d’air induit traversant l’hélice numéro i
⊤i
• v = vx vy vz est la vitesse du drone par rapport au repère B
• w est une vitesse caractéristique dépendant de l’hélice
Les composantes de traînée les plus prépondérantes sont la traînée induite si les pales sont
rigides ou la traînée due au battement de pales si celles-ci sont souples. La traînée parasite com-
mence à se ressentir à parti d’une vitesse de 1 m/s [Omari et al., 2013] et les autres composantes
apparaissent à vitesses plus élevées, certaines sources parlent de 10m/s [Bangura and Mahony,
2012]. La traînée de translation, quant à elle diminue à partir d’une vitesse seuil qui dépend
de l’hélice. Ces modèles peuvent être encore plus simplifiés en négligeant la dépendance des
paramètres des vitesses induites et des vitesses des hélices. Ce qui permet d’avoir des modèles

28
2.5. Dynamique des actionneurs

Type de traînée Modèle Origine


Battement des Af lap vpi +Bf lap Ω
Traînée générée par le battement
Pn
pales i=1 ωi
des pales pour contrebalancer le fait
que la poussée n’est pas distribuée
uniformément sur tout le disque de
rotation de l’hélice quand celle-ci est
en mouvement de translation.
Traînée induite KI vp C’est la conséquence du même phé-
nomène à l’origine du battement
des pales, quand celle-ci sont ri-
gides et leurs flexion ne suffit pas à
atteindre l’équilibre aérodynamique
quand l’hélice est en translation.
Traînée de trans- KT1 vp , si vp ≤ w
(
C’est une traînée causée par la vi-
lation 4
KT2 (−vz + vi ) vp , si vp > w tesse de l’air induite par l’hélice.
Quand celle-ci avance ou recule, l’air
est redirigé à l’opposé du sens de
mouvement ce qui génère une por-
tance et une traînée comme c’est le
cas pour tout profil aérodynamique.
Traînée de profil Kp (vz , vi ) vp Cette traînée est causée par la vi-
tesse tangentielle des pales. En vol
stabilisé cet effet s’annule par symé-
trie, mais quand l’hélice avance par
rapport à l’air, les forces ne sont plus
égales de part et d’autre du disque
de l’hélice, d’où cette traînée.
Traînée parasite Kpar |v|v Il s’agit de la traînée due aux sur-
faces non portances du drone. Elle
est modélisée comme un frottement
visqueux.

Table 2.1 – Différents types de traînée pour un drone multirotor

utilisables pour la commande, par exemple en utilisant ces expressions dans des lois adaptatives
comme c’est fait dans le Chapitre 6.
Comme toutes ces composantes de force de traînée ne sont pas appliquées au niveau du
centre de gravité du drone, elles génèrent aussi des couples qui viennent s’ajouter aux couples
perturbateurs en entrée de la dynamique des vitesses angulaires.

2.5 Dynamique des actionneurs


Les moteurs électriques à courant continu sans balais "brushless" (BLDC) sont utilisés pour
convertir l’énergie électrique en énergie mécanique de rotation. Cette dernière fait tourner les
hélices et génère une poussée. Ce type de moteurs est contrôlé par des dispositifs appelés ré-
gulateurs électriques de vitesse (ESC) qui prennent en entrée un signal de commande (rapport
cyclique entre 0 et 1) envoyé par le pilote automatique.
Pour être plus précis, le signal à l’entrée de l’ESC est plutôt une durée correspondant de
manière linéaire au pourcentage de commande. Cette durée est traduite par l’ESC comme étant
le "temps de mise en marche" ou le temps pendant lequel les moteurs sont mis à feu (c’est-à-dire
alimentés avec la tension maximale disponible) dans une seule période ESC. Ainsi, lorsque l’ESC
est correctement calibré, cette durée n’est autre que le rapport cyclique divisé par la fréquence
de l’ESC, de manière à produire une tension moyenne (sur le temps d’échantillonnage du signal

29
Chapitre 2. Physique de vol d’un drone Multirotor

d’entrée) égale à la tension maximale multipliée par la commande de gaz. Lorsque le moteur
tourne au ralenti, sans charge, la tension appliquée est directement proportionnelle à la vitesse
de rotation en régime permanent. C’est pourquoi, l’ESC est appelé un régulateur de "vitesse".
Lorsque l’hélice est attachée, la relation entre la tension et la vitesse est un peu plus complexe
car elle implique également que le couple aérodynamique équilibre le couple d’actionnement.
Le temps que met l’actionneur (ESC + moteur + hélice) pour atteindre un état stable en
réponse à la tension de l’ESC dépend de sa dynamique qui dépend de ses propriétés mécaniques,
électriques et aérodynamiques. On suppose généralement que la dynamique de l’actionneur est
si rapide qu’il est possible de l’ignorer, ce qui est vrai lorsque l’échelle de temps des manœuvres
souhaitées est supérieure au temps de réponse des actionneurs. Cependant, il est important de
s’assurer que les performances requises sont réalisables dans la bande passante des actionneurs.
Un modèle représentatif du comportement électromécanique du moteur BLDC peut être
construit de manière similaire au modèle d’un moteur courant continu classique :
di(t)
V (t) = ri(t) + L + e(t) (2.27a)
dt
e(t) = KE ω(t) (2.27b)
dω(t)
J = τmot (t) − τrot (t) − τf ric (t) (2.27c)
dt
τmot (t) = KT (i(t) − i0 ) (2.27d)
Où :
V est la tension effective aux bornes des bobines du moteur (V )

e est la force électromotrice (V )

r est la résistance électrique dans les parties électroniques du moteur (Ω)

i est l’intensité du courant électrique et i0 est le courant sans charge (A)

L est l’inductance électrique (H)

τmot est le couple moteur (d’actionnement) (N m)

τrot est le couple aérodynamique produit par la rotation de l’hélice (N m)

τf ric est le frottement sur l’arbre du moteur (N m) qui peut être négligé dans le cas d’un

moteur sans balais [Cunningham and Hubbard, 2017].
• KE est la constante électromotrice ( rad Vs
)
• KT est la constante du couple ( A ) Nm

La tension effective V aux bornes de l’ESC peut être simplement modélisée comme suit
V (t) = Kδ Vb δ(t) (2.28)
où Vb est la tension batterie, δ(t) est le rapport cyclique demandé par le contrôleur de vol et Kδ
est un coefficient pour tenir en compte de l’incertitude de ce modèle simplifié. Ce modèle est une
bonne approximation si la fréquence du contrôleur est nettement plus faible que celle de l’ESC.
Ainsi, en tenant compte de la modélisation aérodynamique, trois modèles couplés contribuent
à la dynamique des actionneurs :
Aérodynamique
τrot (t) = γω(t)2 (2.29)
Dynamique électrique
di(t) r
= − i(t) − KE ω(t) + Kδ Vb δ(t) (2.30)
dt L
Dynamique mécanique
dω(t) KT γ
= (i(t) − i0 ) − ω(t)2 (2.31)
dt J J
Généralement, la dynamique électrique est nettement plus rapide que la dynamique mécanique
et est négligée (ce qui correspond à avoir L = 0). Avec cette hypothèse, les équations 2.30 et
2.31 peuvent être combinées, ce qui conduit à
dω(t) γ KT KE KT i0 KT Kδ Vb
=− ω(t)2 − ω(t) − + δ (2.32)
dt J
|{z} | Jr
{z } J } | {z
| {z r }
p1 p2 p3 p4

30
2.6. Conclusion

Où pi , i ∈ {1, 2, 3, 4} sont quatre paramètres positifs à identifier. Une version linéarisée de


ce modèle autour de différents points de fonctionnement est proposée dans [Cunningham and
Hubbard, 2017] où il s’avère plus efficace pour l’identification des moindres carrés que l’utilisation
du modèle non linéaire en raison de la corrélation élevée entre ω et ω 2 conduisant à un problème
de régression mal conditionné.
Il convient de mentionner que les ESC utilisés dans le cadre de ce travail fonctionnent en
boucle ouverte : aucune rétroaction de la vitesse réelle du moteur n’est utilisée pour corriger
l’effet de la tension. Ainsi, si pour une raison quelconque, l’hélice ne tourne pas à la vitesse
souhaitée, les ESC n’y réagiront pas d’eux-mêmes. Cependant, dans ce cas, la poussée produite
devrait être légèrement différente de celle demandée, ce qui entraînerait des erreurs sur les états
cinématiques et devrait donc être corrigée par le contrôleur de vol.

2.6 Conclusion
Les différents modèles physiques permettant de passer de la position du drone aux signaux
des commandes moteurs ont été présentés brièvement. Dans le chapitre suivant nous verrons
comment ces modèles peuvent être exploités pour faire voler un drone multirotor concrètement.

31
Chapitre 3

Vol autonome d’un drone Multirotor

3.1 Introduction
L’autonomie d’un drone signifie sa capacité à suivre une trajectoire donnée sans aucune
intervention humaine. Pour atteindre cette propriété, la première étape consiste à fournir suf-
fisamment de mesures par rapport à un repère fixé à la terre. Plus précisément, dans le cas
d’un drone à poussée unidirectionnelle, des mesures de position et de lacet sont nécessaires. La
deuxième étape consiste à utiliser les mesures disponibles afin de reconstruire l’état cinématique
complet du drone. Grâce à ces connaissances, il est alors possible de faire suivre au drone une
trajectoire souhaitée avec une précision qui dépend de la qualité des capteurs, de la performance
des actionneurs et de l’intelligence du pilote automatique qui est notre champ d’action dans ce
travail.
Afin de pouvoir concevoir des algorithmes et des logiciels de vol assurant cette autonomie,
il est nécessaire de comprendre d’abord la physique de vol de ce type de véhicule, ainsi que
les données que l’on peut acquérir à partir des capteurs embarqués. Ici nous nous intéressons
à la structure générale des modèles dynamiques décrivant le mouvement d’un drone multirotor
(qui ont été présentés avec plus de détail dans le Chapitre 2), et nous proposons le schéma
simplifié de la Figure 3.1 qui montre cette hiérarchie intrinsèque des différentes dynamiques.
Dans ce schéma, on modélise le chemin que doivent parcourir les signaux de commandes PWM
envoyés aux moteurs pour se transformer en état cinématique mesurable. Le code couleur est
simple, le rouge représente des signaux numériques et le noir des flux de données physiques (et
donc ne pouvant pas être directement mesurés). On y représente quelques éléments clés qui vont
déterminer la philosophie générale de navigation et contrôle :
• Les signaux typiques que l’on peut mesurer : les vitesses de rotations, les accélérations, le
cap (ou l’angle d’Euler de lacet, yaw) et la position dans l’espace. Il s’agit du minimum
qu’on doit avoir afin de pouvoir faire voler un drone de manière autonome.
• Les niveaux d’entrée des perturbations aérodynamiques, qui sont ici modélisés comme
des couples et des forces. Il convient de noter qu’il s’agit d’une simplification de la réa-
lité (comme tout modèle) parce que les perturbations vont interagir avec le système de
manière plus complexe : par exemple le vent va changer l’efficacité des hélices, ou alors
les forces et couples que va ressentir le drone vont dépendre de sa vitesse et de ses pro-
priétés physiques. Ce choix est aussi motivé par le fait que certaines partie de ce modèle
sont cinématiques et exactes comme la transformation de la vitesse en position ou la
transformation de vitesse de rotation en attitude.

3.2 Solutions de navigation


La navigation désigne l’aptitude du drone à se repérer dans son environnement en utilisant
ses différents capteurs. Il s’agit alors de l’estimation de l’état cinématique du drone, à savoir
son attitude, sa vitesse et sa position dans l’espace, en fusionnant les données de mesure. Les
algorithmes permettant de le faire peuvent être séparés en deux grandes familles : stochastiques
et déterministes. Nous donnons dans cette section un aperçu de ces différentes méthodes, ainsi

32
3.2. Solutions de navigation

𝐐𝑑 𝐅𝑑

𝑇𝑎𝑐𝑡

𝐐𝑎𝑐𝑡 Rate 𝛀 Attitude Velocity 𝐯 Position


Actuators + +
Dynamics dynamics 𝐅𝑎𝑐𝑡 dynamics dynamics
0
=𝐑 0
−𝑇𝑎𝑐𝑡
yaw

𝐏𝐖𝐌 𝐚𝐜𝐜
Autopilot

Figure 3.1 – Diagramme simplifié de la dynamique d’un drone sous-actionné à poussée unidi-
rectionelle (Rouge : signaux numériques, Noir : signaux physiques) - Les épaisseurs des traits
sont proportionnelles aux dimensions des signaux

qu’un tour d’horizon des capteurs utilisés pour les drones.

3.2.1 Capteurs
Les capteurs de base d’un drone multirotor sont en général montés sur une centrale inertielle.
Ils comprennent des gyromètres, des accéléromètres, des magnétomètres et des capteurs de pres-
sion (cf. Tableau 3.1). Ils sont suffisants pour rendre le drone pilotable avec une radiocommande
(en attitude ou vitesse angulaire), avec éventuellement une assistance pour stabiliser l’altitude.

Capteur Mesure
Gyroscope "strap-down" Vitesse angulaire selon 3 axes
Accéléromètre "strap-down" Accélération linéaire selon 3 axes
Magnétomètre Champs magnétique selon 3 axes
Transducteur de pression Hauteur verticale

Table 3.1 – Capteurs basiques

Mais pour rendre le drone autonome, il faut au moins pouvoir mesurer sa position par
rapport à un observateur fixe sur terre. Plusieurs autres capteurs permettant d’accéder à plus
d’information sur l’état du drone sont aussi disponibles (cf. Tableau 3.2).

Capteur Mesure
Système mondial de positionnement (GPS) Position et vitesse selon 3 axes
Capteur de télémétrie infrarouge Position et cap par rapport aux obstacles
Flux optique Norme de vitesse linéaire relative
Système de capture de mouvement Position 3D et attitude 3D
Ultrason Position relative à un obstacle
Système de capture de mouvement Position 3D et attitude 3D
Capteur de puissance moteur Produit de la poussée et de la vitesse de l’air par rapport à l’hélice

Table 3.2 – Capteurs avancés

3.2.2 Algorithmes
3.2.2.1 Algorithmes stochastiques : Filtres de Kalman
L’algorithme d’estimation d’état cinématique le plus répandu et consensuel dans le monde
des drones est le filtre de Kalman dont la version originelle a été introduite simultanément et
séparément par Swerling en 1959 [Swerling, 1959] et Kalman en 1960 [Kalman, 1960].

33
Chapitre 3. Vol autonome d’un drone Multirotor

Cette technique de filtrage opère en deux étapes : une étape de prédiction utilisant un mo-
dèle de la dynamique de l’état, et une étape de correction utilisant des mesures de grandeurs
liées à l’état. L’algorithme calcule l’estimation optimale de l’état du système, quand celui-ci est
linéaire et que les probabilités de distribution du bruit de l’état et de la mesure sont gaussiennes.
Pour les systèmes non-linéaires, comme l’attitude d’un drone, il est possible d’utiliser des ver-
sions modifiées du filtrage de Kalman comme le Filtre de Kalman Étendu (Extended Kalman
Filter - EKF), qui reste la technique la plus répandue en pratique, basé sur la linéarisation des
équations de l’état et de la mesure. Une modification plus récente a été introduite par Uhlmann
en 1995 [Uhlmann Jeffrey K., 1995] est le Filtre de Kalman sans Parfum (Unscented Kalman
Filter - UKF), qui utilise des transformations non-linéaires d’un ensemble de sigma points de
la distribution de probabilité choisies de façon déterministe. L’opération est appelée une trans-
formation sans parfum (Unscented Transformation) et elle permet de discrétiser les distribution
de probabilité (des modèles d’état et de mesure) au lieu de discrétiser la dynamique du système
lui-même, ce qui donne une bonne approximation (valable au deuxième ordre) de la moyenne et
de la covariance de la distribution.

3.2.2.2 Algorithmes déterministes : Observateurs non-linéaires

D’autres estimateurs ne nécessitant pas la linéarisation des équations de mouvement ont


été introduits initialement sur le groupe SO(3) ([Hamel and Mahony, 2006] et [Mahony et al.,
2008]) et généralisés ensuite sur SE(3) ([Hua et al., 2011] et [Hua et al., 2015]) pour intégrer la
cinématique de translation. Ces observateurs ne sont pas stochastiques et ne supposent aucun
modèle pour le bruit de mesure ou les incertitudes des modèles. Dans le cadre de l’estimation
de l’état cinématique des drones, les équations reliant les angles aux vitesses angulaires et les
positions aux accélérations et vitesses linéaires sont en effet exactes donc si l’observateur n’ef-
fectue aucune approximation (comme la linéarisation nécessaire dans le cas de l’EKF) alors les
estimations ne seraient que plus précises et sans singularités.

3.3 Philosophie générale et solutions de Contrôle


La hiérarchie d’un logiciel de contrôle typique d’un drone multirotor est directement inspirée
de la modélisation "en chaîne" de ce type de véhicule (décrite sur la Figure 3.1). Le résultat
est une structure de contrôleurs imbriqués (Figure 3.2) pouvant être vus comme l’inversion des
blocs sur la Figure 3.1. En effet, un contrôleur est en quelque sorte un modèle inverse du système
à asservir : les entrées de l’un sont homogènes aux sorties de l’autre et inversement. Il s’agit
évidemment d’une vue très simplifiée qui suppose une connaissance parfaite du système et une
absence de la rétroaction (feedback) qui est la base de l’automatique.
Cette structure imbriquée n’est pas une obligation. En effet, comme démontré dans [Morin,
2013], si l’objectif est juste de contrôler la position du véhicule, il n’est pas nécessaire de passer
par deux étapes et de transformer le vecteur de poussée en attitude équivalente. Cependant,
une telle structure hiérarchique a plusieurs intérêts. Notamment la simplification du problème
de conception de contrôle en le décomposant en plusieurs sous-problèmes inter-connectés et
la possibilité de prendre la main sur le véhicule à plusieurs niveaux puisque cela rend le drone
pilotable en position, en attitude, voire en vitesse angulaire, sans avoir besoin de changer aucune
des lois de commande. Ceci apporte plus de sécurité dans les phases de test si un pilote humain
est à côté du drone pour le reprendre en main en cas de problème. C’est pour cette raison que
nous gardons cette structure dans le cadre de ce travail, ce qui nous permet d’ailleurs de bien
s’aligner au logiciel de vol Donecle. Dans le reste de ce chapitre, nous décrivons brièvement le
principe général de chacune des briques du contrôleur.

3.3.1 Contrôle des moteurs : Contrôleur Bas Niveau


Un drone multirotor ne peut pas voler sans contrôler (directement ou indirectement) la
vitesse de ses moteurs. En fait, les vitesses de rotation des hélices sont directement liées à la

34
3.3. Philosophie générale et solutions de Contrôle

Yaw𝐬𝐩

Ground
station 𝐩𝐬𝐩

Position
Sensors 𝐩

Position 𝐯𝐬𝐩
𝐩 Control
Heading
Sensor 𝐘𝐚𝐰

𝐯 Velocity 𝐑 𝐬𝐩
Control T𝐬𝐩
Kinematic
IMU State
𝛀 Estimator 𝐑 Attitude 𝛀𝐬𝐩
Control

𝐐act 𝐬𝐩 Control 𝐑𝐏𝐌


Rate ESC
Control
Allocation
Controller
𝐏𝐖𝐌
(Mixer)
𝐚𝐜𝐜

Figure 3.2 – Schéma simplifié de la structure classique d’un pilote automatique de drone
multirotor sous-actionné

Position Control

Attitude Control
Mixer

RPM Control

PWM Control

High Level Low Level

Figure 3.3 – Représentation du caractère imbriqué d’un contrôleur typique de drone Multiro-
tor 1

poussée et le couple moteurs appliqués sur le corps du drone, et donc en contrôlant les premiers
il est possible de rendre ce dernier manœuvrable.
Les actionneurs des multirotors modernes sont constitués de moteurs électriques sans balais
(Figure 3.4) qui sont commandés à l’aide de Contrôleurs Électriques de Vitesse ESC. Ces moteurs
sont composés d’un rotor constitué d’aimants permanents et d’un stator constitué d’aimants
électriques (bobines), le rotor peut être à l’intérieur du stator (auquel cas on parle de moteur
Inrunner) ou à l’extérieur (moteur Outrunner). Pour faire tourner ce type de moteurs, les bobines
du stators sont connectées à trois phases dont chacune déclenche deux bobines diamétralement
opposées permettant de créer un champs magnétique et d’exercer une force sur les aimants
permanents. En alternant les phases actives et inactives, il est alors possible de guider le rotor
afin de le faire tourner dans le sens désiré. Le circuit qui permet de commuter le courant entre
les phases est ce qu’on appelle ESC. Ce mécanisme peut être mieux visualisé et compris en
animation vidéo comme par exemple dans [HowToMechatronics, 2019].
Le sens de rotation est alors géré par la synchronisation entre le passage des aimants devants
les bobines et la commutation des phases, mais L’amplitude de la vitesse de rotation du moteur

1. La flèche dans Figure 3.3 indique la direction des fréquences croissantes.

35
Chapitre 3. Vol autonome d’un drone Multirotor

est directement liée à la magnitude du champs magnétique créé au niveau de chaque bobine, car
c’est ce qui va faire que les aimants du rotor vont être attirés ou repoussés plus rapidement. La
magnitude du champs est à son tour commandée par le courant traversant les bobines et donc
à la tension appliquée. Pour varier la tension appliquée, la technique de modulation de largeur
d’impulsion PWM est généralement utilisée et elle sert à créer un signal logique de fréquence
fixe dont la valeur moyenne correspond au rapport cyclique (valeur entre 0 et 1) multiplié par
la tension maximale. C’est ce rapport cyclique qui sera la dernière sortie des algorithmes de
contrôle dans le cadre de ce travail. Il est aussi couramment appelé PWM par abus de langage.

Figure 3.4 – Moteur Electrique sans balais de la marque KDE (KDE2814XF-775 Brushless
Motor for Electric Multi-Rotor (sUAS) Series)

3.3.2 Contrôle de la positon et de l’attitude du drone : Contrôleur Haut


Niveau
L’algorithme de contrôle de haut niveau calcule les commandes envoyées aux moteurs (soit
sous forme de rapport cyclique ou de vitesse de rotation en tour par minute) en fonction d’une
position souhaitée et d’une consigne de cap. Pour ce faire, une structure de contrôle hiérarchique
inspirée de la dynamique du véhicule présentée ci-dessus est couramment utilisée, elle pourrait
être résumée comme suit : pour qu’un drone sous-actionné à poussée unidirectionnelle puisse
aller d’un point d’origine à un point de destination, il doit s’incliner (et donc changer ses angles
de roulis et de tangage) tout en maintenant la force de portance nécessaire. Avec un angle de
lacet désiré, cela définit une orientation à atteindre. Pour que le drone suive cette orientation,
il faut le faire tourner et donc lui appliquer des couples. Les couples et la force de portance
souhaités peuvent être transformés en un ensemble de forces de poussée et de couples aérodyna-
miques individuels à atteindre par chaque actionneur, en fonction de leur disposition. Et enfin,
connaissant le comportement des rotors, il est possible de transformer ces poussées et couples
en commandes moteurs que le contrôleur de bas niveau veillera à suivre.

3.3.2.1 Algorithme d’allocation des commandes (Mixage)

L’algorithme d’allocation des commandes fait le lien entre le point de vue du drone dans
l’espace et celui des moteurs attachés sur le cadre du drone dans des positions bien définies.
Plus précisément, dans le cas d’un multirotor sous-actionné à poussée unidirectionnelle, il s’agit
de transformer une poussée totale et trois couples de rotations en des consignes équivalentes à
destination de chacun des moteurs. Cette conversion est aussi appelée mixage (mixing en anglais)
puisqu’elle permet de mélanger dans une seule consigne moteur les effets des trois couples de
rotation et de la poussée totale de manière à les transmettre comme efforts appliqués au corps
du drone.
L’idée derrière cet algorithme, est de rendre les couples et la force appliqués par les UAA
sur le corps du drone aussi proches que possible des signaux de contrôle équivalents demandés.
Pour ce faire, il est essentiel de connaître le comportement des entrées/sorties des UAA. Une
fois l’objectif du mixeur atteint, il est possible d’aborder le problème du contrôle d’un point de
vue plus physique, en attachant des unités aux paramètres et aux signaux de contrôle.
Nous introduisons les notations et symboles ci-dessous :

36
3.3. Philosophie générale et solutions de Contrôle

• u∗ ∈ IR4 est le vecteur des signaux de commande calculés par le contrôleur du drone :
les couples de roulis, de tangage et de lacet souhaités (respectivement τp∗ , τq∗ et τr∗ ) et la
h i⊤
poussée totale T ∗ à appliquer sur le corps du drone. Donc u∗ = τp∗ τq∗ τr∗ T ∗
• f ∗ et Q∗ ∈ IRn sont les vecteurs de poussées et couples désirés au niveau des n UAA,
n ∈ IN∗
• δ ∈ IR2n est le vecteur des rapports cycliques normalisés envoyés aux ESC, donc ∀i ∈
{1..2n}, 0 ⩽ δi ⩽ 1. Ces signaux sont en fait transformés en des commandes PWM (donc
généralement entre 1000µs et 2000µs) interprétable par les ESC des moteurs. Le terme
PWM sera aussi utilisé pour désigner le rapport cyclique, ce qui est un abus d’usage.
• f et Q ∈ IRn sont les vecteurs des vraies poussées et couples produits par les n UAA
(grandeurs non mesurables)
• u ∈ IR4 est le vecteur des couples de rotation et de la poussée totale résultants appliqués
par les moteurs sur le corps du drone (grandeur non mesurable)
• P est une fonction virtuelle décrivant la transformation, par les UAA, des commandes
PWM en des forces de poussée, P̃ est un modèle expérimental de cette fonction (cf.

5.3.1.1 pour le cas coaxial) et P̃ est son pseudo-inverse
• M est une fonction virtuelle décrivant la transformation des poussées et couples indivi-
duels créés par les UAA en une poussée et couple 3D résultants sur le corps du drone,

M̃ (cf. 5.3.1.2 pour le cas coaxial) est un modèle de cette fonction et M̃ est son pseudo-
inverse.
Les différents signaux introduits plus haut sont reliés de la manière séquentielle schématisée sur
la Figure 3.5.

u∗ f∗
† †
M̃ ∗ P̃
Q
δ
f
u M P
Q

Figure 3.5 – Schéma fonctionnel du flux de données entre les sorties de contrôle u∗ et les efforts
réels appliqués sur le corps du drone u

En utilisant cette notation, l’objectif du problème de mixage est d’avoir l’égalité u = u∗ .


Sachant que    
u = M P P̃ † M̃ † (u∗ ) (3.1)

la contrainte d’égalité précédente signifie que la composition des modèles inverses avec les fonc-
tions de comportement du système réel doit être égale à l’identité.
Le modèle P̃ est identifié expérimentalement. Quant au modèle M̃ , il est déduit de la
disposition et des symétries des moteurs et inversé analytiquement. La détermination de ces
deux modèles et leur inversion est présentée dans le cas d’un drone octorotor en configuration
coaxiale en Chapitre 5.

3.3.2.2 Algorithme de contrôle d’attitude


Le contrôleur d’attitude calcule les commandes qui permettent au drone de garder une atti-
tude demandée. Sa sortie est homogène à des couples (normalisés en pratique) qui, en combinai-
son avec une poussée totale, sont envoyés à l’algorithme de mixage qui en crée des commandes
vers les moteurs.
L’algorithme est en général divisé en deux boucles imbriquées comme c’est représenté sur la
Figure 3.2. La boucle de vitesses angulaires (rates) sert en effet à atteindre un objectif de vitesse
angulaire calculé par la boucle d’attitude. C’est à ce niveau que les techniques de commande
non linéaire ont fait leurs preuves. En effet comme l’attitude a une dynamique fortement non

37
Chapitre 3. Vol autonome d’un drone Multirotor

linéaire, les méthodes de linéarisation ne sont pas suffisantes et plusieurs contrôleurs utilisant
des erreurs exprimées en termes de matrices de rotation ou de quaternions (respectivement eR1
et eR2 en Équation (3.2) 2 ) ont été proposés. Nous gardons l’algorithme qui est implémenté par
défaut dans PX4® utilisant les quaternions et décrit dans [Brescianini et al., 2013].

1 ⊤ ∨
e R1 = Rd R − R⊤ Rd eR2 = (q−1 .qd )1:3 (3.2)
2

Atténuation des perturbations Les perturbations qui impactent la dynamique d’attitude


peuvent être vues comme des couples qui viennent s’ajouter aux couples moteurs comme schéma-
tisé sur la Figure 3.1. Par conséquent, en gardant cette vision hiérarchique, c’est au contrôleur
des vitesses angulaires de les gérer. Ceci se fait classiquement avec un terme intégral sur les
erreurs de vitesses angulaires.

3.3.2.3 Algorithme de contrôle de position

Le contrôleur de position calcule la force de poussée (normalisée en pratique) selon les trois
axes d’un repère inertiel nécessaire au suivi d’une consigne de position dans le même repère.
Comme pour un drone sous-actionné il n’est pas possible d’exercer de forces latérales, cette
force calculée par le contrôleur de position doit être convertie à une assiette (angles de roulis
et de tangage) et une poussée totale. En combinant ces consignes de roulis et de tangage avec
une consigne de lacet (qu’une station sol pourrait fournir, en plus des positions à visiter), une
attitude complète dans le groupe des rotations SO(3) peut être calculée et envoyée au contrôleur
d’attitude.
Comme le contrôle d’attitude, le contrôle de position s’effectue aussi usuellement en deux
étages. Le passage par la vitesse permet d’assurer une trajectoire mieux définie et indépendante
de la consigne de position. En effet, en général les consignes de position peuvent être utilisés
pour générer des trajectoires de vitesses à suivre, en fonction d’une vitesse et d’une accélération
maximale désirées. L’exemple le plus répandu est la trajectoire de vitesse en trapèze représentée
sur la Figure 3.6. Les expressions des profils temporels de position et de vitesse sont données en
Équation (3.3) ci-dessous.

Time Series Plot:


1
Pos (m)

0.5

0
0 1 2 3 4 5 6
Time (seconds)
Time Series Plot:
0.4
Vel (m/s)

0.2

0
0 1 2 3 4 5 6
Time (seconds)
Time Series Plot:
0.5
Acc (m/s2 )

-0.5
0 1 2 3 4 5 6
Time (seconds)

Figure 3.6 – Profil de trajectoire typique (accélération, vitesse et position) pour avancer d’un
mètre avec amax = 0.5m/s2 et vmax = 0.4m/s

2. ∨ est l’opérateur permettant de passer d’une matrice antisymétrique 3 × 3 à son vecteur 3 × 1 associé

38
3.3. Philosophie générale et solutions de Contrôle

Si ∆t ≤ ∆t1
asp = sign(a)amax
vsp = v0 + asp ∆t
psp = p0 + v0 ∆t + asp ∆t2
Sinon
Si ∆t ≤ (∆t1 + ∆t2 )
asp = 0 (3.3)
vsp = sign(a)vmax
psp = p1 + vsp (∆t − ∆t1 )
Sinon
asp = −sign(a)amax
vsp = asp ∆t − (∆t1 + ∆t2 ) + sign(a)v1

2
∆t−(∆t1 +∆t2 )
psp = p2 + asp + sign(a)v1 ∆t − (∆t1 + ∆t2 )

2

Où :
• ∆t = t − t0 , t étant l’instant présent et t0 l’instant initial
•  √
−v0 + v02 +amax ∆p 2
vmax −v02
, Si ∆p ≤

∆t1 = amax
vmax −v0
amax
amax , Sinon

• ∆p = |ptgt − p0 |, où ptgt est la consigne de position et p0 est la position à l’instant t0


• v0 est la vitesse à l’instant t0
• vmax et amax sont la vitesse et l’accélération maximales
• 
v 2 −v02
 0, Si ∆p ≤ max
∆t2 = |p2 −p1 |
amax

vmax , Sinon
•  2 −v02
p0 + sign(a) ∆p
vmax
2 , Si ∆p ≤

p1 = amax
∆t2
 p0 + v0 ∆t1 + sign(a)amax 2 1 , Sinon
• 
v2 −v 2
 p1 , Si ∆p ≤ max 0
p2 = amax
p0 + sign(a) ∆p − |v0 ∆t1 + sign(a)amax ∆t2 | , Sinon
2


• sign(a) est le signe de l’accélération au début du mouvement qui correspond au signe de


la différence ptgt − p0
Cette trajectoire n’est pas continue en accélération, mais il est tout à fait possible de générer
des trajectoires de classes plus élevés où la discontinuité apparait sur le jerk (dérivée troisième
de position) ou le snap (dérivée quatrième de position).
Pour assurer le suivi de trajectoire, la méthode la plus classique est l’utilisation d’un contrô-
leur proportionnel sur l’erreur de position, en cascade avec un contrôleur PID sur la vitesse.
Des techniques plus avancées comme le Backstepping finissent par donner des structures de
contrôleurs assez similaires à ce P-PID.

Atténuation des perturbations Les perturbations qui impactent la dynamique de position


peuvent être vues comme des forces qui viennent s’ajouter à la poussée totale appliquée par
les hélices. Par conséquent, en gardant cette vision hiérarchique, c’est au contrôleur des vitesses
linéaires de les gérer. Ceci se fait classiquement avec un terme intégral sur les erreurs de vitesses.

39
Deuxième partie

Bibliographie

40
Chapitre 4

Etat de l’Art Contrôle résistant au


perturbations sur les drones
Multirotor

La littérature sur le contrôle des drones multirotor sous-actionnés est si abondante et riche.
On peut dire qu’il y a autant de contrôleurs de drones que de solutions de commande. Dans
ce travail, nous nous concentrons sur des contrôleurs qui sont en quelque sorte "conscients" des
perturbations, ce qui fait référence aux algorithmes de contrôle qui sont, de par leur conception,
bien adaptés pour résister à tout type de perturbation.
Tout d’abord, il est essentiel de comprendre la signification des perturbations dans un pro-
blème de contrôle. Afin de concevoir un algorithme qui pilote un système physique, il faut
construire un modèle dynamique de ce système qui capture autant que possible son comporte-
ment d’entrée/sortie. Cependant, il n’existe pas de modèles parfaits, car ils sont construits sur
la base d’approximations. Et même si ces hypothèses simplificatrices se vérifient, tout système
physique peut être considérablement affecté par des conditions environnementales défavorables
qui ne peuvent être prévues à l’avance. Ainsi, les perturbations désignent tout signal inconnu qui
rend l’état mesuré du système réel différent de celui modélisé : cela peut provenir de systèmes
exogènes ou d’incertitudes internes (comme des dynamiques non linéaires non modélisées, des
retards, des incertitudes sur les paramètres des modèles, des erreurs de mesure et des incertitudes
sur le comportement des actionneurs). Il est alors évident que les perturbations sont omnipré-
sentes et que les algorithmes de contrôle doivent donc y faire face, voire les rejeter. Certains
automaticiens vont jusqu’à soutenir que le rejet des perturbations est l’essence même de toute
la théorie de la commande [Gao, 2014] et que les problèmes de contrôle peuvent être rendus
beaucoup plus simples si l’objectif du rejet des perturbations est séparé du suivi des références
en concevant des observateurs et des rejeteurs de perturbations. De ce point de vue, toutes les
perturbations, quelles que soient leurs origines réelles, peuvent être considérées comme causées
par des anomalies d’entrée et donc "rejetées" en soustrayant leur estimation du signal d’entrée.
Cependant, cette approche tend à simplifier à l’extrême le problème et donne l’illusion que les
perturbations ne dépendent pas de l’état du système, ce qui pourrait être une hypothèse très
limitative.
Sans plus attendre, considérons le cas du drone multirotor. Les perturbations agissant sur ces
véhicules sont principalement de nature aérodynamique, en particulier lors d’un vol à l’extérieur :
l’air entourant les hélices affecte les performances de propulsion, crée divers types de traînées
aérodynamiques sur le corps du drone (cf. Section 2.4).
Avec le nombre croissant d’applications de drones nécessitant des opérations en extérieur
et/ou des manœuvres agressives, la communauté scientifique de l’automatique a également accru
ses efforts pour mettre au point des algorithmes de contrôle capables de s’adapter aux conditions
de l’environnement. Cette intelligence recherchée peut prendre deux formes différentes : soit une
bonne connaissance préalable (c’est-à-dire des modèles) des perturbations est utilisée pour les
estimer et adapter le contrôleur en conséquence, soit le contrôleur est rendu résistant à des
perturbations inconnues (totalement ou partiellement). Comme indiqué dans les objectifs de la

41
Chapitre 4. Etat de l’Art Contrôle résistant au perturbations sur les drones Multirotor

thèse (Section 1.1), on se limite dans cette étude bibliographique aux solutions de commande
sans ajout de capteurs de vent.

4.1 Estimation et compensation des perturbations basées sur


modèle
Les perturbations considérées sont les perturbations aérodynamiques, principalement les ra-
fales de vent, la variation de poussée due à la vitesse du courant libre (c.f. Section 2.4.3) et les
phénomènes de re-circulation d’air dûs aux vols à proximité de surface (type effet de sol).

4.1.1 Variation de la poussée en vol non stationnaire


[Hoffmann et al., 2011] s’est concentré sur la compensation d’un type particulier d’effets aé-
rodynamiques, à savoir le battement des pales et la variation de poussée en vol non stationnaire.
Seule cette dernière est prise en compte ici. Pour ce faire, la théorie du moment de l’écoule-
ment à travers un rotor a été utilisée pour dériver les équations 2.25 et 2.26 qui font le lien
entre les conditions de vol stationnaire et non stationnaire en termes de poussée et de vitesse
de l’air induite par le rotor, pour la même puissance électrique d’entrée. Connaissant l’angle
d’attaque de la pale et la vitesse du courant libre, ces deux équations sont résolues pour vh et vi
(une table est utilisée pour l’efficacité du calcul). Ensuite, selon l’équation 2.25, une commande
correspondant à une poussée nominale Th est envoyée aux moteurs (à travers l’inversion d’un
modèle stationnaire d’hélice) afin de générer une poussée souhaitée T , qui doit être proche de
la poussée réelle. Et c’est ainsi que la compensation est effectuée.

4.1.2 Perturbation de vent


[Waslander and Wang, 2009] utilise un modèle de rafales de vent afin d’estimer la vitesse
du vent et de la compenser. Le modèle considéré se compose de deux éléments principaux : une
vitesse de vent dominante statique supposée constante (à une altitude fixe) pendant le vol, et un
modèle de rafales de vent basé sur une densité spectrale de puissance (DSP) standard. La partie
dominante est initialisée en utilisant les observations météorologiques d’une station au sol et la
norme de vitesse du vent est supposée varier avec la hauteur par rapport au sol z comme suit :
1 ∗ z
|v w |(z) = vw ln( ) (4.1)
k z0
Où z0 est la longueur de rugosité (c’est-à-dire la hauteur à laquelle la vitesse du vent devient
théoriquement nulle), k est la constante de von Karman, vw ∗ est la vitesse de frottement de la

surface de la terre qui peut être déduite en utilisant l’équation précédente et en prenant k = 0, 4
et z0 = 0, 05 représentant les valeurs typiques pour un terrain ouvert [Etele, 2006]. Il convient
de noter que cette équation n’est valable qu’en dessous d’une limite supérieure spécifiée dans
[Waslander and Wang, 2009]. Sans oublier que c’est un modèle qui n’est valable que dans un
environnement assez ouvert.
La deuxième composante modélisant la rafale de vent est basée sur le modèle de Dryden
définissant la vitesse du vent comme une somme d’excitations sinusoïdales variant dans le temps
dont les fréquences et les déphasages sont choisis aléatoirement, et dont les amplitudes dépendent
d’une densité spectrale de puissance qui peut être modélisée en fonction de l’altitude, de la
fréquence sinusoïdale et de la vitesse du vent à 20 pieds d’altitude. Les équations correspondantes
sont bien expliquées dans [Waslander and Wang, 2009] et ne sont pas fournies ici puisque le but
est plutôt de comprendre comment ce modèle a été utilisé pour compenser le vent. En outre,
le modèle de Dryden n’a pas été utilisé jusqu’au bout et a été considérablement simplifié. Une
fois qu’il est possible d’avoir une estimation du vecteur vitesse du vent, notons-le v̂ w , alors
un compensateur de vent est ajouté à la boucle de contrôle de position extérieure. L’idée du
compensateur proposé dans [Waslander and Wang, 2009] est de calculer l’angle d’inclinaison
permettant au drone de générer une force latérale s’opposant au vent estimé. Mais pour avoir
cet angle il faut passer par l’estimation de la force de vent appliquée au drone (et pas que la

42
4.1. Estimation et compensation des perturbations basées sur modèle

vitesse de vent), ce qui suppose que l’on dispose d’un modèle de frottement, avec des coefficients
linéaires (et/ou quadratiques) reliant les vitesses aux forces. L’idée de ce contrôleur est finalement
assez intuitive, elle consiste à incliner le drone par avance dans la direction opposée à la direction
principale du champ de vent afin d’équilibrer rapidement sa force de perturbation par la poussée
comme le montre la Figure 4.1. Cette configuration inclinée est l’état d’équilibre qu’atteindra le
drone quand il compense exactement a force qui s’y applique et donc c’est la configuration vers
laquelle convergera tout contrôleur stabilisant. Mais si on arrive à pré-calculer cette configuration
d’équilibre, la convergence ne sera que plus rapide et le contrôleur sera plus efficace, c’est l’idée
de base de rejet des forces de perturbation sur les drones sous-actionnés.

Figure 4.1 – Compensation du vent par inclinaison autour de l’axe x

Un autre travail intéressant d’estimation et de prédiction de perturbations basé sur la mo-


délisation est effectué dans [Salazar et al., 2017] où une approche fondée sur la "big-data" est
adoptée. Elle consiste à utiliser des mesures de vents disponibles dans des bases de données
météorologiques, à les fusionner avec des modèles atmosphériques pour identifier les caractéris-
tiques du vent (cisaillement du vent et rafales discrètes) sur la base d’une analyse statistique
en ajustant les estimations du vent dans une distribution de Weibull. Les estimations obtenues
sont assez précises mais le temps de convergence est long. D’autant plus que ces estimations ne
concernent que la vitesse du vent et en l’absence de modèle de forces de frottement sur le drone,
elles ne permettent pas de rejeter l’effet du vent sur le drone. Cette approche permet en revanche
de planifier des trajectoires qui évitent le vent comme précisé dans [Salazar et al., 2017], ce qui
est possible si le plan de vol n’est pas très contraignant.

4.1.3 Effet sol


Une autre perturbation aérodynamique qui pourrait être prise en compte est l’effet de sol.
En effet, la présence du sol ou de toute autre limite modifie le flux dans les rotors, ce qui peut
affecter considérablement les performances des hélices [Leishman, 2006]. Une étude intéressante
de ces phénomènes aérodynamiques sur les drones multirotors peut être consultée dans [Prothin
et al., 2019]. Ce type de perturbation est significatif pour les vols qui s’effectuent à proximité de
surfaces comme c’est le cas dans le cadre de notre travail.
Nobahari dans [Nobahari and Mohammadkarimi, 2017] a utilisé la navigation inertielle as-
sistée par modèle (MAIN) lors de l’atterrissage automatique d’un drone à décollage et d’un
atterrissage conventionnel (CTOL) où l’altitude a été estimée de manière assez précise dans
les régions d’effet de sol (uniquement testé en simulation). Le modèle utilisé pour représenter
ce phénomène relie l’altitude aux coefficients aérodynamiques de l’UAV qui sont utilisés dans
le modèle à 6 degrés de liberté (DoF) utilisé dans l’algorithme MAIN. Le contrôleur lui-même
utilisé dans cette étude est linéaire et assez simple. Le concept d’altimétrie basé sur un modèle
peut être considéré comme une compensation indirecte des perturbations aérodynamiques, et ça
pourrait être étendu à l’estimation de la position latérale lorsque le drone vole près des surfaces
en utilisant la même méthodologie MAIN. Cependant, comme le positionnement du drone est
basé en général sur des mesures inertielles qui sont directement reliées aux états cherchés par des

43
Chapitre 4. Etat de l’Art Contrôle résistant au perturbations sur les drones Multirotor

équations cinématiques exactes, tous ces effets dynamiques peuvent être capturés et l’utilisation
de modèle ne semble pas indispensable.
L’effet de sol pour les hélicoptères a été étudié par Leishman [Leishman, 2006] pendant le
vol stationnaire et le vol en avant. Il admet que l’aérodynamique du rotor dans ces conditions
(effet de sol et vol près des limites en général) n’est pas encore totalement comprise (année 2006)
mais fournit des équations intéressantes reliant la poussée à l’altitude et à la vitesse du rotor en
vol stationnaire près du sol. Le problème de la plupart de ces modèles est que la mesure de la
vitesse du flux libre d’air et donc du vent est généralement nécessaire.

4.2 Des approches de contrôle robustes aux perturbations non


modélisées
Les perturbations peuvent en fait être rejetées même si elles ne sont pas entièrement com-
prises et modélisées. Les stratégies de contrôle capables de le faire sont d’un grand intérêt car les
modèles de perturbations aérodynamiques peuvent manquer de représentativité, en particulier
dans certains régimes de vol turbulents complexes qu’un drone multirotor peut traverser.
Une façon d’aborder les perturbations est de les considérer comme la cause d’une réponse
cinématique inattendue observée. Cela est intéressant car cela signifie que si le comportement
dynamique nominal peut être bien prédit, alors les perturbations peuvent être inférées. Ce n’est
évidemment pas aussi facile car on ne peut pas simplement inverser n’importe quel modèle
dynamique mais il existe parfois des moyens de remonter aux causes à partir des observations.

Remarque Le terme "Modèle" fait ici référence aux modèles aérodynamiques et non à la
dynamique du corps du drone qui peut être utilisée par certaines des techniques présentées
ci-dessous.

4.2.1 Action intégrale


La méthode la plus connue et la plus facile pour estimer et rejeter les perturbations est
simplement l’ajout de terme intégral dans la loi de commande. L’intégrale de l’erreur de suivi de
consigne converge en effet (à une constante multiplicative près) vers la valeur de la perturbation
en entrée qui fait que l’erreur ne tend pas vers zéro (si cette perturbation est constante ou
lentement variable). La principale limitation de cette méthode est qu’elle ne permet pas de
réagir efficacement aux perturbations ayant des dynamiques assez rapides parce que le terme
intégral tend à réduire la marge de phase du système bouclé au risque de le déstabiliser. C’est
pour cette raison qu’en pratique le gain intégral doit être augmenté avec beaucoup de précaution
puisque son action touche les performances de suivi de trajectoire autant que celles de rejet de
perturbations.
Le terme intégral est souvent appliqué avec des modifications afin de limiter son effet en
fonction de l’erreur et de la saturation des moteurs. La modification la plus répandue et utilisée en
industrie est la technique anti-emballement (anti-windup) qui consiste soit à arrêter l’intégration
(clamping) soit à la freiner en déchargeant l’intégrateur (back-calculation) quand une saturation
de l’entrée de commande a lieu. Une autre version du terme intégrateur est introduite dans
[Hua, 2010] pour le contrôle de la vitesse d’un véhicule aérien. Elle consiste à remplacer le terme
intégral par une fonction du type sigmoïde de ce terme dont la valeur maximale est un paramètre
de réglage.

4.2.2 Contrôle basé sur les observateurs de perturbations


Les perturbations peuvent être perçues comme des états non-mesurables du système à contrô-
ler. Et de ce point de vue, il est possible de construire des observateurs pour les estimer. Cette
idée remonte aux années 70 où on commence à avoir les premières techniques d’estimation de
perturbations, comme le "Unknown Input Observer" (UIO), le "Perturbation Observer" (PO),
"Equivalent Input Disturbance Estimator" (EID-based-estimator), le "Disturbance Observer"

44
4.2. Des approches de contrôle robustes aux perturbations non modélisées

(DO) introduit à la fin des années 80 et le "Extended State Observer" (ESO) proposé dans les
années 90. Un bon aperçu de la théorie et de l’utilisation pratique de ces observateurs (notam-
ment les deux derniers) peut être trouvé dans [Li et al., 2014].
L’estimation des perturbations extérieures repose dans le cas le plus général sur l’existence
d’un modèle dynamique exogène qui régit les variations de la perturbation dans le temps, si on
note d cette perturbation exogène, elle peut s’écrire comme suit :

= Cd ν
(
d
(4.2)
ν̇ = Ad ν

Où ν est un vecteur d’état interne au système générant la perturbations, Ad est la matrice


dynamique, et Cd est la matrice de sortie.
Certaines perturbations peuvent en effet être décrites par des modèles exogènes si leurs
caractéristiques sont connues. C’est le cas par exemple de perturbations générées par un pendule
ou un système oscillatoire dont les fréquences sont connues. Dans le cas général par contre, cette
information n’est pas disponible. Cependant un modèle polynomial peut être utilisé, ce qui
consiste à avoir :
0 1 0 ··· 0
 
0 0 1 · · · 0
. . .
 
.
h i
.
Ad =  . . . . . = 1 0 0 (4.3)

 . . 
 C d · · ·
0 0 · · · 0 1
 

0 0 ··· 0 0
Dans la pratique, on remarque qu’un simple modèle de perturbation constante (correspondant
à Ad = 0 et Cd = 1) suffit pour estimer les forces et couples aérodynamiques. Ceci est le cas si
ces derniers ne varient pas considérablement entre deux pas d’échantillonnage, ce qui revient à
dire qu’ils sont à basses fréquences.
Avec un modèle comme décrit dans l’Équation (4.2) à disposition, il est possible de construire
des observateurs de perturbations du type Luenberger. Des modèles stochastiques peuvent éga-
lement être utilisés ce qui permet de construire des estimateurs de type Kalman. Différents
types d’observateurs ont en effet été appliqués avec succès pour l’estimation et ensuite le rejet
des perturbations sur les drones multirotor. Ces algorithmes peuvent prendre plusieurs formes,
et leurs constructions suivent des philosophies plus ou moins équivalentes basées sur la mini-
misation d’une erreur de suivi d’un modèle interne du système (en boucle ouverte). Certains
travaux dans ce contexte comprennent l’utilisation d’observateurs d’état étendus ou ESO ([Za-
rovy, 2014], [Yacef et al., 2018], [Xuan-Mung and Hong, 2019] et [Yuan et al., 2019]), de filtres de
Kalman étendus [Brunner et al., 2020], d’observateurs de perturbations en mode glissant ([Cai
et al., 2019]) (Sliding Mode), d’observateurs de perturbations fréquentiels ([Guo et al., 2020]
et [Chen et al., 2020]), d’observateurs de perturbations à convergence en temps fini ([Mokhtari
et al., 2017]) ou encore des observateurs de perturbations à ordre réduit [Castillo et al., 2019].
Des algorithmes équivalents ont souvent été appliqués depuis plus longtemps tout en portant
des noms différents, typiquement l’Observateur à Haut-Gain (High gain observer) qui a été par
exemple introduit dans [Hua et al., 2007], utilisant la mesure de vitesse de translation pour
l’estimation des forces extérieures appliquées sur une véhicule sous actionné à hélices. Dans ce
travail nous utilisons le nom générique d’observateur de perturbations.
Une approche particulière utilisant les observateurs de perturbations est le Contrôle Actif
par Rejet de Perturbations ADRC qui sera mieux explorée dans ce travail. Son idée est de
soustraire le terme de perturbation estimée (basé sur un modèle simplifié du système, une série
d’intégrateurs) de la loi de commande et d’y ajouter un terme d’erreur basé sur le suivi d’une
trajectoire lisse et réalisable.

4.2.3 Contrôle adaptatif


Le contrôle adaptatif a cette capacité unique d’auto-apprentissage, qui lui permet de s’adap-
ter quand l’état mesuré du système s’écarte d’un comportement idéal. Plus précisément, cela
consiste à avoir des gains de commande variables en fonction de l’erreur de suivi d’un modèle

45
Chapitre 4. Etat de l’Art Contrôle résistant au perturbations sur les drones Multirotor

en boucle fermée (c’est-à dire entre la consigne et la sortie désirée) de référence. Cette technique
a alors très vite attiré l’attention des ingénieurs et notamment dans le domaine aéronautique.
En effet, en 1961 Honeywell, la compagnie en charge du développement des commandes de vol
de l’avion hypersonique "North American X15", a eu l’idée d’utiliser cette approche afin de s’af-
franchir des difficultés de pilotage pendant les phases de vol balistique où les manœuvres font
sortir la dynamique de l’avion de son enveloppe de vol nominale. L’idée était alors de remplacer
les lois de contrôle statiques basés sur le basculement manuel entre les différentes lois par une
loi où les gains s’adaptent automatiquement. Ce qui a donné naissance au premier avion à voler
avec des commandes adaptatives à bord, le X15-3.

Figure 4.2 – Le pilote de la NASA Neil Armstrong dans le cockpit du X-15-1 (56-6670) après
un vol de recherche. Neil Amstrong a été le premier pilote d’essai à voler à bord du North
American X-15-3, le tout premier véhicule hypersonique habité doté d’un système de contrôle
de vol adaptatif, le MH-96. Source : Collection NASA*
*
https://www.nasa.gov/centers/armstrong/multimedia/imagegallery/X-15/index.html

Ces gains de contrôle peuvent prendre la forme d’un terme de perturbation, si on suppose
ce dernier constant, alors la loi adaptative va ressembler à une action intégrale puisque cette
dernière permet aussi de minimiser une erreur en boucle fermée. C’est ce qui est fait dans
[Bertrand et al., 2006] où les forces de perturbation Fd sont estimées et rejetées par un terme
adaptatif donné par :
˙ kf m
 
F̂d = ϵ1 + ϵ2 (4.4)
k k
Où ϵ1 et ϵ2 sont les erreurs de suivi de position et de vitesse, et k, kf sont des gains de réglage.
Ce terme est utilisé en combinaison avec une loi de type Backstepping permettant de garantir
la stabilité exponentielle du système.
La supériorité de l’approche adaptative par rapport à l’action intégrale toute simple vient
d’une part du fait que l’erreur à intégrer peut être plus complexe (comme c’est le cas de l’Équa-
tion (4.4)) adaptée à la cinématique du système, et d’autre part du fait les termes qui multiplient
cette erreur peuvent ne pas être constant. Ce qui permet d’inclure des fonctions non linéaires
de l’état du système et d’introduire des modèles plus fins du système dans la synthèse de loi de
commande. Par exemple, la force appliquée par le vent sur un drone peut être modélisée par une
force de frottement, et en approximation de premier ordre elle est égale à la vitesse du drone par
rapport au vent multipliée par un coefficient constant dépendant de l’attitude du drone. Dans les
approches non adaptatives, cette même perturbation est traitée comme un terme indépendant
de l’état (et donc de la vitesse du drone) et générée par un système exogène plus ou moins connu.
En plus de leurs capacité à résister aux perturbations, les contrôleurs adaptatifs peuvent par
construction gérer les incertitudes paramétriques du système, notamment la masse et l’inertie.
En effet, les gains de commande sont en réalité des fonctions de ces paramètres et des bandes
passantes désirées en boucle fermée. Et donc, en les rendant variables en fonction de l’erreur de
suivi d’un modèle de référence, ces gains vont de toute façon converger vers de meilleures valeurs

46
4.2. Des approches de contrôle robustes aux perturbations non modélisées

(sous certaines conditions de réglage) et donc ne dépendent pas de la connaissances précise des
paramètres du système.
Les techniques de commande adaptative ont été utilisées avec succès pour les drones multiro-
tor afin de résister aux perturbations internes et externes. Par exemple, un contrôleur de position
adaptatif est présenté dans [Antonelli et al., 2018] et un contrôleur géométrique complet SE(3)
est développé dans [Goodarzi et al., 2014] pour le suivi d’une position et d’une attitude de
référence lisses (c’est à dire au moins de classe C1 ).
L’engouement qui a accompagné l’utilisation des techniques adaptatives sur les avions a laissé
place à du scepticisme suite à l’accident mortel du vol X15-3 en 1967. Cet accident est dû en
partie à une loi d’adaptation basé sur une descente de gradient qui ne garantit pas la stabilité
dans toutes les conditions et qui a conduit, avec un gain d’adaptation élevé, à un cycle limite.
Ceci a alors empêché le pilote de pouvoir reprendre la main sur le véhicule [Dydek et al., 2010].
Depuis l’accident, de nouvelles lois d’adaptation basées sur la théorie de Lyapunov ont été pro-
posées avec des preuves de stabilité. Plusieurs autres améliorations de la version basique des lois
d’adaptations ont aussi été développées pour résoudre nombre d’autres problèmes. Le contrôle
adaptatif L1 est un exemple, cette technique, proposée dans [Hovakimyan and Cao, 2010], a pour
principal objectif de s’affranchir de la difficulté de réglage des contrôleurs adaptatifs. L’idée de
base est d’ajouter des filtres sur les signaux de commande ce qui donne une garantie de stabilité
indépendante des gains d’adaptation qui peuvent alors être augmentés permettant une adapta-
tion plus rapide tout en assurant de meilleures marges de stabilité. Cette méthode a été utilisée
avec succès pour les drones multirotor afin de résister aux perturbations extérieures tout en res-
tant robustes aux incertitudes du modèle (par exemple [Russo et al., 2017] et [Fernández et al.,
2017]). D’autres modifications de la loi d’adaptation de base, appelées modifications e et σ, ont
été introduites et testées pour les drones multirotor comme dans [Whitehead and Bieniawski,
2010], [Achtelik et al., 2011] et [Niit and Smit, 2017]. Ces modifications permettent d’ajouter de
l’amortissement aux lois d’adaptation afin de pouvoir réduire les oscillations qui apparaissent
vite quand les gains d’adaptation sont augmentés. Une autre solution à ce même problème a été
proposée dans [Nguyen and Boskovic, 2008] où la minimisation de la norme L2 de l’erreur a été
utilisée pour augmenter la loi d’adaptation de base avec un terme amortisseur.

4.2.4 Inversion Dynamique Non-linéaire Incrémentale (INDI)


La technique INDI a été appliquée dans [Smeur et al., 2016b] pour le contrôle d’attitude d’un
quadrirotor et généralisée pour le contrôle de la position dans [Smeur et al., 2016a] où elle a été
testée pour atténuer l’effet des rafales de vent. L’INDI est un contrôle basé principalement sur les
mesures inertielles (gyroscopes et accéléromètres), mais l’identification de quelques paramètres
du système est nécessaire comme l’inertie et les efforts des moteurs. De plus, pour l’INDI sur
la boucle d’attitude, l’algorithme utilise les vitesses de rotations des hélices, qui ne sont pas
forcément mesurées sur tous les drones usuels.
L’idée derrière cette méthode est que la centrale inertielle mesure les accélérations (et les
vitesses angulaires) causées par les perturbations en même temps que celles causées par les
moteurs. Il est donc possible de compenser l’erreur entre l’accélération désirée et celle mesurée
(contenant l’effet de la perturbation) en incrémentant le signal de contrôle d’un terme adéquat.
Ce dernier est calculé en inversant un modèle approché (par série de Taylor) du système au
pas de temps précédent. Les expériences menées montrent que les performances sont trois fois
meilleures que celles obtenues avec un contrôleur PID traditionnel.
Supposons que la dynamique de vitesse s’écrive de la manière suivante

0
 

mv̇ = mG + R  0  + F(v) (4.5)


 
−T

OùF(v)
 est l’ensemble des forces aérodynamiques dûs aux frottements et au vent extérieur, et
0
R  0  est le vecteur de la poussée projeté dans le repère inertiel N ED. Les vrais signaux
 
−T

47
Chapitre 4. Etat de l’Art Contrôle résistant au perturbations sur les drones Multirotor

de contrôle de position sont en effet la pousséetotale


 T et les angles de roulis ϕ et de tangage
ϕ
θ. Notons alors le vecteur de commande u =  θ . Afin de trouver l’incrément nécessaire de
 
T
m
commande, une approximation de Taylor de premier ordre est appliquée sur l’accélération afin
d’exhiber l’effet de petites variations de u. Tout calcul fait, et en négligeant les variations dûs à
la vitesse (car l’effet de la poussée se ressent sur l’accélération plus rapidement que les effets de
frottements), l’expression de l’accélération instantanée peut s’écrire comme suit :
T0
 
v̇ = v̇0 + G ϕ0 , θ0 , (u − u0 ) (4.6)
m
(cϕsψ − sϕcψsθ)T /m (cϕcψcθ)T /m sϕsψ + cϕcψsθ
 
 
Avec G ϕ, θ, m = (−sϕsψsθ − cψcϕ)T /m (cϕsψcθ)T /m cϕsψsθ − cψsϕ  et v̇0 représente
T  
−cθsϕT /m −sθcϕT /m cϕcθ
l’accélération à l’instant présent (donc due aux effets du passé) et elle peut être obtenue en
transformant celle mesurée par l’IMU vers le repère inertiel. A partir de l’Équation (4.6) il
est possible de calculer l’incrément de commande u qu’il faut afin d’atteindre une accélération
désirée v̇ = γ d , sous la forme suivante
u = u0 + G−1 (γ d − v̇0 ) (4.7)
En pratique, les mesures v̇0 doivent être filtrées donc pour assurer la synchronisation des entrées
et des sorties, le même filtre est appliquée à la commande passées u0 . L’accélération désirée γ d
peut être générée par un contrôleur PID ou PD classique. On voit alors que l’INDI prend
finalement la forme d’un asservissement d’accélération. Cette forme n’est pas sans rappeler la
technique de contrôle par retour d’accélération proposée dans [Hamandi et al., 2020a], mais dans
cette dernière une nouvelle façon de filtrer les mesurées est proposée, où le spectre de vibration
des hélices est utilisé pour retirer ses composantes des mesures de l’accélération, ce qui produit
un filtrage efficace et sans délai.
Pour atteindre de meilleurs performances avec l’INDI, il est nécessaire d’identifier plus de
paramètres. Dans le cas de contrôle de position il s’agit par exemple d’identifier un modèle F par
rapport à la vitesse. Afin d’enlever cette dépendance à la modélisation, les auteurs proposent
dans [Smeur et al., 2016b] un algorithme adaptatif qui estime en temps réel les termes combinées
d’inertie et d’efficacité moteurs. Cet algorithme est basé sur un filtre adaptatif de type LMS
(moindres carrées).

4.2.5 Model Free Control


Une autre approche récente (première publication [Fliess and Join, 2009]) indépendante du
modèle pour rejeter les perturbations est le "Model-Free Control". Elle est bien décrite dans
[Fliess and Join, 2013] et [Gédouin et al., 2011]. Elle est basée sur l’idée que si les perturbations
sont regroupées en une seule variable qui peut être estimée en ligne, alors il suffit de rejeter
cette perturbation du signal de commande. La loi MFC est alors composée d’un terme de rejet
de perturbation et d’un terme de suivi de trajectoire sous la forme d’un gain sur une erreur de
suivi de référence.
Entrons plus dans les détails en considérant le cas d’un système à une seule entrée (contrôle
u ∈ R) et à une seule sortie (mesure y ∈ R). Soit ν ∈ N, ν ≥ 1 l’ordre dominant du système (1
ou 2 dans la plupart des cas), alors y (ν) la dérivée à l’ordre ν de y pourrait être reliée à l’entrée
u en utilisant le modèle numérique ultra-local suivant, valide pendant une courte période de
temps L :
y (ν) (µ) = F (t) + αu(µ), ∀µ ∈ [t − L, t] (4.8)
Où :
• F est une variable totalement inconnue qui contient toutes les causes affectant la sortie
du système qui ne sont pas reliées au signal de commande (couplage dynamique, non-
linéarités inconnues, perturbations, etc.). Elle est supposée être constante sur la courte
période considérée.

48
4.2. Des approches de contrôle robustes aux perturbations non modélisées

• α est un paramètre d’échelle constant, pas forcément avec une signification physique
• t est le temps de calcul présent
L’objectif est d’estimer F (t). Pour ce faire, l’Équation (4.8) est écrite dans le domaine fréquentiel
(ou opérationnel) en utilisant la variable complexe de Laplace s, où la majuscule est utilisée pour
noter les variables analogues :
ν
F (t)
s Y (s) − sk−1 y (ν−k) (t − L) = + αU (s) (4.9)
X
ν

k=1
s

Le deuxième terme du côté gauche dans Équation (4.9) contenant toutes les conditions initiales
(au temps t − L) est constant et pourrait être éliminé par ν dérivations successives (c’est-à-dire
en appliquant l’opérateur ds
d
en calcul opérationnel ν fois) ce qui conduit à :

dν Y (s) ν−1 dk Y (s) (−1)ν−1 (ν)! dν U (s)


+ (s) = (t) + (4.10)
X
sν ak F α
dsν k=0
dsk sν+1 dsν

L’Équation (4.10) est par la suite multipliée par s−ν−1 afin d’éliminer tous les termes dérivés
(non causaux), lisser le bruit et construire un filtre stable :

1 dν Y (s) ν−1
X ak (s) dk Y (s) (−1)ν−1 (ν)! α dν U (s)
+ = F (t) + (4.11)
s dsν k=0
sν dsk s2ν+1 sν dsν
Cette dernière équation est ensuite retransformée dans le domaine temporel en utilisant les
trois propriétés fondamentales suivantes :
• L’opérateur s1α correspond à des intégrales temporelles itérées.

• L’opérateur ds κ correspond à la multiplication dans le domaine temporel par (−t) .
κ

• La formule de Cauchy pour transformer une intégrale multiple en une intégrale simple et
unique :
(L − µ)α−1
Z L Z τα−1 Z τ1 Z L
··· f (µ)dµdτ1 . . . dτα−1 = f (µ)dµ
0 0 0 0 (α − 1)!
Alors F (t) pourrait être estimé comme une intégrale de fonctions polynomiales de temps P et
Q multipliées par les valeurs d’entrée (u) et de sortie (y) :
Z t  
Fe (t) = P (µ, L) y (µ) + Q (µ, L) u (µ) dµ (4.12)
t−L

Pour l’implémenter, cette intégrale pourrait être transformée en une sommation correspondant à
la sortie d’un filtre à réponse impulsionnelle finie (FIR). On retient que choix de L est crucial ici
et qu’il consiste en un compromis : des valeurs croissantes de L offrent une meilleure atténuation
de l’effet du bruit de mesure puisqu’elles correspondent à plus de filtrage par les intégrales, mais
conduisent en même temps à une plus grande erreur d’approximation sur F qui est supposé
constant sur l’intervalle [t − L, t]. C’est la principale difficulté de cette approche.
Lorsque ν = 1, ce qui est généralement le cas si la sortie considérée est une vitesse, alors
l’estimation 4.12 est explicitement donnée par :
6
Z t  
Fe (t) = − (L − 2µ)y(µ) + αµ(L − µ)u(µ) dµ (4.13)
L t−L

Ainsi, une fois que F est estimé, la construction de la loi de contrôle devient simple :
1
ysp (t)(ν) + ζ (e (t)) − Fe (t)

u(t) = (4.14)
α
Telle que e = ysp − y, ysp est la consigne (sortie cible) et ζ(e) est un contrôleur basé sur l’erreur
(PID par exemple). Il est intéressant de noter que la forme de la loi MFC est très similaire à
l’ADRC avec la seule différence fondamentale dans la façon d’estimer le terme de perturbations
regroupées (lumped disturbance) qui est pour l’ADRC le résultat d’un estimateur asymptotique
dy type Luenberger, et pour le MFC donné par la technique algébrique ponctuelle décrite ici.

49
Chapitre 4. Etat de l’Art Contrôle résistant au perturbations sur les drones Multirotor

Ce qui conduit à un système de contrôle en boucle fermée régi par :

e(ν) + ζ(e) = 0 (4.15)

Dans l’Équation (4.15), les parties inconnues de la dynamique et les perturbations disparaissent
(si Fe (t) approxime correctement F (t)) et le système différentiel gauche est facilement réglable
(trois paramètres de contrôle constants pour suivre ysp dans le cas PID). C’est une sortie de
linéarisation du système. Dans le contexte du contrôle des drones multirotor, le MFC est bien
adapté à la dynamique des vitesses angulaires et peut donc être utilisé dans le contrôleur d’at-
titude. En fait, cette dynamique peut déjà être écrite comme suit :
1
0 0
   
ṗ I τp
 x 1
q̇  = M +  0 0  τq  (4.16)
   
Iy
1
ṙ 0 0 I z
τr

qui est un système de trois équations scalaires indépendantes puisque tous les couplages et les
perturbations inconnues sont regroupés dans la variable M à estimer en ligne.
MFC est de plus en plus populaire grâce à sa capacité à gérer les incertitudes inconnues,
ainsi qu’à sa facilité d’implémentation. Par exemple, les travaux récents sur le drone convertible
"MAVion" présentés dans [Miguel et al., 2018] montrent de meilleures performances du MPC
par rapport au LQR dans un environnement simulé venteux.

4.2.6 Commande Robuste


Les techniques de commande robuste permettent d’imposer une atténuation de l’effet des
perturbations et des incertitudes inconnues bornées sur les erreurs du système, ce qui se fait
généralement en minimisant la sensibilité du système sur son spectre de fréquence. Ainsi, tant
que les perturbations rencontrées par le système réel restent à l’intérieur d’un ensemble compact
utilisé pour calculer le contrôleur, la stabilité et les performances souhaitées sont garanties par
le même contrôleur statique (ce qui est la principale différence avec les méthodes adaptatives qui
changent en fonction des erreurs mesurées). Ces méthodes, principalement la commande robuste
H∞ , n’ont pas été largement utilisées car la recherche de la commande optimale respectant toutes
les contraintes est généralement assez délicate et le résultat est souvent un contrôleur d’ordre très
élevé, comme dans [Noormohammadi-Asl et al., 2020] où par exemple le contrôleur optimal de
tangage trouvé a 7 zéros et 8 pôles. Cependant, avec l’amélioration constante des performances
de calcul et l’apparition de nouveaux solveurs numériques, elles sont de plus en plus utilisées, y
compris pour la commande de multirotor ([Raffo et al., 2010], [Raffo et al., 2008]).
Il convient de noter que le terme "robuste" est assez vague et peut désigner une grande famille
de lois de contrôle, du moment que celles-ci permettent de résister à tout type d’incertitude, ce
qui est en quelque sorte l’objectif même de toute loi de contrôle.

4.2.7 Contrôle basé sur l’optimisation et l’apprentissage


Une autre famille de techniques qui ne reposent pas sur la modélisation explicite des per-
turbations sont celles basées sur l’apprentissage, où certains effets peuvent être estimés statis-
tiquement ou par des techniques d’apprentissage. Par exemple, un contrôleur prédictif (Model
Predictive Control) basé sur l’apprentissage (LBMPC) a été utilisé dans [Bouffard et al., 2012]
pendant la phase d’atterrissage d’un quadrotor pour contrer l’effet de sol. L’idée est de traiter
cette perturbation aérodynamique comme un modèle incertain additif au modèle nominal (ce qui
est logique car l’effet de sol peut être considéré comme une portance supplémentaire affectant
le véhicule) et les termes inconnus additifs ont été estimés en ligne en utilisant une version mo-
difiée du filtre de Kalman étendu estimant l’état du drone en même temps. Ce modèle incertain
appris en ligne est utilisé en parallèle pour la commande prédictive, d’où le nom de LBMPC. Les
résultats expérimentaux ont été satisfaisants selon [Bouffard et al., 2012]. Il est principalement
montré que le drone atterrit en douceur sans avoir besoin de couper la puissance des rotors car
la poussée effective vue par le véhicule est proche de celle prédite par le modèle utilisé pour la

50
4.3. Conclusion

commande. Ceci n’étant pas pas le cas lorsque le modèle utilisé ne contenait pas les incertitudes
supplémentaires liées à l’effet de sol.
Une approche similaire pour résister à la dynamique de l’effet sol sur l’hélicoptère est utilisée
dans [Samal et al., 2012], où un modèle non linéaire constitués de réseaux de neurones est utilisé
dans le MPC pour la prédiction.
La commande MPC en général est en train de gagner du terrain pour le contrôle des drones
multirotor ([Bangura and Mahony, 2014], [Mohammadi et al., 2018], [Shekhar et al., 2015] et
[Eskandarpour and Sharf, 2020] par exemple) parce qu’elle permet de s’adapter en temps réel à
différents types d’incertitudes et de perturbations tout en minimisant une fonction objectif (avec
éventuellement des contraintes) sur un court intervalle de temps dans le futur, en se basant sur
un modèle de référence. Dans un travail plus récent [Torrente et al., 2021], le modèle du drone
nominal utilisé dans le MPC a été augmenté par la moyenne a posteriori d’un Processus Gaussien
servant à corriger le modèle nominal pour y incorporer les différents effets aérodynamiques à
partir d’un grand nombre de données mesurées. La principale limitation du MPC par rapport aux
objectifs de cette thèse, est qu’il demande un temps de calcul considérable et utilise de grandes
ressources mémoire qui ne sont pas forcément disponibles sur les cartes Autopilote usuelles (cf.
Figure 1.3).
Il convient aussi de citer dans ce contexte les contrôleurs dits intelligents qui commencent
aussi à apparaitre comme des alternatives aux méthodes classiques. La motivation derrière ces
contrôleurs est d’utiliser les récentes avancées des techniques d’apprentissage pour concevoir des
algorithmes capables de mieux s’adapter aux aléas de fonctionnement (perturbations externes,
incertitudes et pannes internes). Les paramètres utilisés dans ces algorithmes sont souvent réglés
par essais et erreurs. C’est pour cette raison que la majorité des algorithmes cités ici n’ont été
testés qu’en simulation. La logique floue (Fuzzy Logic) est par exemple parmi les techniques les
plus utilisées pour le contrôle des multirotor. Elle sert en général à ajuster en temps réel les
paramètres des lois de commande en se basant sur des règles abstraites décrivant les variations
des erreurs de suivi de trajectoire. C’est le cas de [Behzadimanesh et al., 2019] et [Bounemeur
et al., 2018]. Une autre approche est le Contrôle à Apprentissage Itératif (ILC) qui consiste à
générer une référence (un terme de pré-commande) qui minimise l’erreur de suivi de trajectoire, il
sert en général à estimer les dynamiques inconnues du système et doit être utilisé avec d’autres
contrôleurs classiques car il n’est pas robustes aux perturbations non périodiques, il est par
exemple testé sur un banc expérimental bi-rotor [Mascaró Palliser et al., 2017] ou sur un drone
quadritoror en simulation [Dong and He, 2019]. Dans ce dernier travail l’ILC est combinée à la
logique Floue afin d’ajuster les gains du contrôleur ILC. Les réseaux de neurones ont aussi été
utilisés pour optimiser les paramètres d’un contrôleur de type Sliding Mode (SMC) dans [Razmi
and Afshinfar, 2019].

4.3 Conclusion
En se basant sur cette étude bibliographique nous retenons que les approches de contrôle des
drones multirotor qui ne sont pas basées sur la modélisation des perturbations aérodynamiques
sont plus variées et répandues que celles nécessitant des modèles explicites. Ce qui est explicable
puisque que les méthodes basées sur la modélisation nécessitent un grand effort de collecte de
données pour d’identification des paramètres, rendant la solution de commande très spécifique
aux véhicules utilisés et aux conditions d’essais considérées. D’autant plus que cet effort de
modélisation n’est pas forcément nécessaire si les vitesses de vol de drones restent modérés, ce
qui est le cas pour notre application industrielle. Nous nous concentrons alors pour la suite sur ce
type d’algorithmes capables de remonter aux perturbations sans forcément modéliser leurs effets
sur le système. Parmi ces algorithmes, les approches basées sur l’apprentissage automatique
gagnent de plus en plus du terrain, mais elles nécessitent de grandes capacités de calcul qui ne
sont pas forcément disponibles sur les cartes de contrôleurs de vol industrialisées. Ces approches
restent aussi difficilement généralisables car très dépendantes des données de vol collectées dans
les phases d’apprentissage.
Il convient de noter enfin que certaines techniques d’apprentissage automatique échappent

51
Chapitre 4. Etat de l’Art Contrôle résistant au perturbations sur les drones Multirotor

à cette distinction basée sur l’utilisation ou pas de modèle. Il s’agit d’approches hybrides qui
combinent des modèles basiques avec des techniques d’apprentissage. Un travail pionnier dans ce
domaine est le modèle hybride "NeuroBEM" introduit dans [Bauersfeld et al., 2021] qui augmente
des modèles issus de la théorie "BEM Blade Element Theory" avec un terme résiduel calculé par
un réseau de neurones entraîné avec des données de vol réel à très hautes vitesses.

52
Troisième partie

Contributions

53
Préambule

En se basant sur l’étude du contexte en Partie I et de l’état de l’art en Partie II, nous adoptons
une approche axée au tour du rejet de perturbations. Dans ce court chapitre, les points clés sur
lesquels nous articulons la conception des lois de contrôle du drone sont présentés.
• Les équations dynamiques de position et d’attitude du drone sont réécrites de la manière
suivante : 


 ṗ = v
   
0





v̇ = G + 1 R   + Fd 

0
    
m    (4.17)


 −P V (δ)
Ṙ = RΩ×






Ω̇ = J−1 (CV (δ) + Qd )

h i⊤
Où G = 0 0 g est le vecteur de gravité dans le repère NED, δ désigne le vecteur
des commandes envoyées aux moteurs (des signaux PWM ou RPM), PV et CV sont des
fonctions qui transforment les commandes moteurs en une poussée totale et trois couples
au tour des axes du corps du drone. L’indice V désigne la tension batterie.
• Toutes les perturbations sont regroupées dans les forces Fd exprimés dans le repère NED
et les couples Qd exprimés dans le repère B.
• Les vraies entrées de commande sont les signaux δ, mais pour  effectuer
 le rejet de per-
0
turbations, il est plus naturel d’utiliser les termes uT = R  0  et uQ = CVb (δ)
 
−PVb (δ)
homogènes à une force et couple. Pour ce faire, il est nécessaire d’avoir des modèles de P
et C et de pouvoir les inverser. D’où le Chapitre 5.
• Une architecture de contrôle hiérarchique correspondant au logiciel de vol de PX4 est
adoptée. Elle est schématisée sur la Figure 3.2. Cette architecture nous permet partir des
contrôleurs de position et d’attitude qui existent déjà et qui ont été bien explorés dans
la littérature, afin de nous focaliser sur les boucles de commande des vitesses (linéaires
et angulaires) où se passe vraiment le rejet des perturbations (homogènes à des forces et
couples).
• Pour rejeter les perturbations, on va devoir les estimer, puisque l’ajout de capteurs n’est
pas une option pour nous. Deux techniques classiques pour le faire sont explorées expé-
rimentalement dans le Chapitre 6.
• Même si les perturbations peuvent ne pas être modélisées afin d’être estimées, leur estima-
tion est forcément basée sur une connaissance minimale du système (au moins les moteurs,
la masse et l’inertie). Nous étudions alors au Chapitre 7 la robustesse d’un schéma de
contrôle (issu de l’étude expérimentale) aux variations de ce type de paramètres et nous
proposons une augmentation robuste de ce type de contrôleur.

54
Chapitre 5

Algorithme d’allocation des


Commandes - Cas d’un multirotor
en configuration coaxiale

5.1 Introduction
Comme indiqué en Partie I, l’un des drones commercialisés par Donecle est un octorotor à
hélices contra-rotatives coaxiales (appelé X8), cette configuration modifie les caractéristiques et
performances des hélices.
Dans ce chapitre, nous présentons une stratégie de mixage (cf. Section 3.3.2.1) basée mo-
dèle spécifique aux drones multirotor ayant des hélices coaxiales contra-rotatives. Elle est plus
précisément appliquée à un X8, mais la méthode peut être généralisée à n’importe quel nombre
d’hélices. La conception d’un algorithme de mixage adapté à ce type de configuration est plus
difficile que pour une configuration plate (sans hélices superposées), si l’on tient compte de
l’interaction aérodynamique entre chaque paire d’hélices coaxiales.
Les nouveautés de cet algorithme de mixage sont d’abord l’incorporation d’une connaissance
sur l’interférence entre les flux d’air des hélices dans le problème de mixage, et ensuite l’utilisation
d’un modèle non linéaire de couple au lieu du modèle simplifié usuel reliant proportionnellement
le couple aérodynamique à la poussée.

5.2 Bibliographie
La plupart des publications sur les techniques d’allocation des commandes pour les drones
multirotor sont axées sur la récupération en cas de panne des moteurs et la gestion de la satura-
tion et non sur le principal problème d’inversion du modèle (voir par exemple Marks et al. [2012],
[Monteiro et al., 2016], [Nguyen et al., 2018]). Cela est dû au fait que dans la plupart des cas les
hélices sont supposées isolées, ce qui rend l’inversion du modèle simple. Cependant, cette hypo-
thèse devient limitative pour certaines configurations où l’interférence aérodynamique entre les
hélices est assez forte comme dans le cas coaxial, c’est l’exemple de [ul Amin et al., 2019] où l’al-
location de commande pour l’octorotor est effectuée sans tenir compte de l’interaction coaxiale
considérée alors comme faisant partie de la dynamique non modélisée. Celles-ci sont estimées
à l’aide d’un réseau de neurones à fonction de base radiale multiquadratique inverse étendue
qui doit être entraînée hors ligne. Il existe des techniques de contrôle similaires différentes pour
compenser les perturbations aérodynamiques non modélisées, comme les observateurs d’état
étendus ou les estimateurs d’effort externe (cf. Chapitre 4). Cependant, contrairement à l’adap-
tation de l’algorithme de mixage, ces méthodes prennent en compte un terme de perturbation
généralisée contenant les efforts externes et les incertitudes de modélisation ainsi que les effets
aérodynamiques. Notre intuition est que ces techniques devraient être plus efficaces lorsqu’elles
sont utilisées avec un algorithme de mixage bien adapté aux moteurs, et donc similaire à celui
que nous proposons (dans le cas coaxial), car ce faisant, les effets dus à l’interférence des hélices

55
Chapitre 5. Algorithme d’allocation des Commandes - Cas d’un multirotor en configuration
coaxiale

sont supprimés (ou du moins réduits) en pré-commande, ce qui facilite l’estimation et le rejet
des perturbations exogènes par les contrôleurs plus haut niveau.
La configuration de propulsion coaxiale présente plusieurs avantages tels que : la maximisa-
tion de la surface disponible du disque de l’hélice tout en conservant une taille compacte du corps
du drone la possibilité de récupérer les pannes de moteur grâce à la redondance du matériel, la
stabilité en lacet accrue grâce à la disposition des rotors coaxiaux contrarotatifs qui réduit les
couples gyroscopiques sur le corps du drone et la minimisation des pertes par tourbillon du rotor
pour la même raison. Ces atouts s’accompagnent de certaines complications, principalement l’in-
teraction aérodynamique qui se produit au niveau de chaque paire de rotors coaxiaux. En fait,
le flux d’air sortant du rotor supérieur et impactant le rotor inférieur modifie considérablement
le comportement aérodynamique et les performances de l’ensemble comme on le montre dans ce
chapitre.
Cet effet aérodynamique dû au chevauchement des hélices a été identifié et étudié par les aé-
rodynamiciens. Leishman [Leishman, 2006] par exemple modélise cet effet en utilisant la théorie
du moment simple dans un cas particulier où la distance de séparation est égale au diamètre du
rotor, et conclut que cette configuration consomme 28% de puissance en plus que le cas isolé.
Cette perte d’efficacité de puissance est plus importante lorsque la distance de séparation est plus
petite (ce qui est le cas pour la plupart des drones multirotor). Des études expérimentales plus
récentes ont également été réalisées comme dans [Prothin and Moschetta, 2013] où la poussée (fu
et fl ) et le couple (Qu et Ql ) produits par chaque rotor ont été modélisés comme des polynômes
de second ordre des deux vitesses de rotor, ce qui étend le modèle quadratique 1D habituel
utilisé pour un seul rotor isolé. Il a également été démontré dans le même article que l’influence
des rotors coaxiaux est inopinément bidirectionnelle, ce qui signifie que même l’hélice inférieure
affecte celle du dessus, ce qui est également vérifié par les études expérimentales menées dans
le cadre du présent travail. Une approche similaire a également été utilisée dans [Koehl et al.,
2012] où une carte statique de la poussée coaxiale a été construite. Cependant, l’effet coaxial
n’a été modélisé qu’en ajoutant un coefficient de perte multiplicatif à la somme des poussées des
deux rotors isolés. La même approche a été suivie pour la modélisation d’un octorotor coaxial
dans [Saied et al., 2016]. Un modèle différent pour une unité de propulsion coaxiale a été utilisé
dans [Gasior et al., 2017], basé sur l’ajustement flou de surfaces de Takagi-Sugeno. Cependant,
dans toutes ces études, il n’y a pas de mention explicite du problème de mixage et il n’est pas
clair si les modèles coaxiaux développés ont été utilisés pour le mixeur ou non.
Cette approche basée sur les données expérimentales est adoptée ici parce qu’elle est plus
adaptée aux problèmes de contrôle. En effet, l’approche utilisant la théorie du moment nécessite
la connaissance des vitesses d’écoulement de l’air traversant les hélices (appelées vitesse induite
de l’air [Leishman, 2006]) qui ne sont pas mesurables et leur estimation nécessite généralement
des calculs itératifs de la dynamique des fluides qui ne sont sans doute pas adaptés aux appli-
cations en temps réel (voir [Bangura and Mahony, 2012] pour un exemple de ces calculs appelé
méthode de Newton).
La même question a également été soulevée récemment par de nouvelles études sur de nou-
veaux drones omnidirectionnels où la disposition des hélices rend leur aérodynamique mutuel-
lement influençable. Dans [Brescianini and D’Andrea, 2018], l’interférence aérodynamique entre
les hélices de du drone à huit rotors n’a pas été prise en compte pour le problème du mixage. Au
contraire, les coefficients de diminution de la poussée et du couple ont été identifiés expérimen-
talement et appliqués aux vitesses du moteur pour compenser tous les effets aérodynamiques.
Plus récemment, le même problème a été abordé de manière plus directe dans [Dyer et al., 2019]
où un modèle inverse d’actionneur statique qui tient compte des interactions entre les hélices
est utilisé pour le mixeur. Il est construit en faisant varier les paramètres constants d’un modèle
physique de poussée vers le PWM initialement construit pour un rotor isolé. Dans le présent
travail, la même chose est faite pour une unité de propulsion coaxiale mais en utilisant une
approche différente basée sur l’inversion numérique de cartes statiques 2D. Le mixeur coaxial
obtenu est ensuite comparé à un mixeur non coaxial afin d’évaluer la pertinence de prendre en
compte l’effet de chevauchement.

56
5.3. Application à la configuration X8

Note Un exemple de calcul aérodynamique est la méthode itérative de Newton, décrite dans
[Bangura and Mahony, 2012], qui nécessite l’estimation de la puissance aérodynamique produite
qui pourrait être déduite de la puissance mécanique, en connaissant la figure de mérite du rotor,
la tension appliquée et la vitesse angulaire. Cependant, ce taux n’est pas mesuré par certains
ESC, comme ceux utilisés dans les essais du nouveau mixeur coaxial.

5.3 Application à la configuration X8


Le drone qui a été utilisé pour la validation de l’algorithme de mixage (Figure 5.15b) est
identique aux drones d’inspection de Donecle mais sans les charges utiles (caméra et capteurs
laser). Ses moteurs sont disposés et numérotés selon la convention utilisée dans le logiciel de
PX4® , donnée sur la Figure 5.1.

Figure 5.1 – Convention de numérotation des moteurs du drone X8


https://dev.px4.io/v1.9.0/en/airframes/airframe_reference.html

5.3.1 Étape de Modélisation


On reprend les notations de la Figure 3.5 pour les modèles utilisés dans l’algorithme de
mixage.

5.3.1.1 Modèle P̃

Les actionneurs de la plupart des multirotors modernes sont constitués d’hélices à pas fixe
attachées à des moteurs électriques sans balais (machines synchrones auto-pilotées à aimants
permanents), entraînés par des régulateurs électroniques de vitesse (ESC). Les ESC contrôlent
les vitesses angulaires des moteurs en fonction du pourcentage de commande demandé par le
pilote (humain ou automatique). Ce pourcentage est un rapport cyclique qui se traduit en durée
µs utilisé par la Modulation de Largeur d’Impulsion (PWM).
Dans l’approche que nous adoptons, nous traitons chaque couple de rotors contra-rotatifs
superposés comme une seule entité de propulsion. Cela conduit à des modèles avec deux entrées.
Pour identifier ces modèles, le banc d’essai coaxial présenté dans Figure 5.2 a été utilisé. Ce
banc d’essai permet de contrôler les deux moteurs indépendamment dans des conditions de
vol stationnaire. Il se compose de deux bancs RCBenchmark® équipés de capteurs optiques
de vitesse, de capteurs de force et de cartes électroniques pour connecter les ESC et les ports
USB d’acquisition de données. Les mesures disponibles comprennent les courants électriques,
les vitesses angulaires des hélices et les poussées et couples générés. La distance entre les deux
supports est réglable et a été fixée à 6,14 cm comme sur le drone utilisé pour les expériences.
Le logiciel utilisé pour acquérir les données et pour contrôler simultanément les deux moteurs a
été développé en MATLAB® .

57
Chapitre 5. Algorithme d’allocation des Commandes - Cas d’un multirotor en configuration
coaxiale

Figure 5.2 – Banc coaxial au département DCAS, ISAE-SUPAERO

Afin d’obtenir la matrice de la poussée et du couple en fonction des rapports cycliques (ou
Pulse Width Modulation (PWM)) sur les deux moteurs, le protocole expérimental suivant a été
suivi :
• Parcourir toutes les combinaisons d’entrées PWM (équivalent à des pourcentages de 0%
à 100%) par incréments de 5%.
• Attendre environ 2 secondes à chaque paire de valeurs PWM pour s’assurer que la période
transitoire est terminée
• Prendre la valeur moyenne mesurée sur les derniers 1, 5s de chaque combinaison PWM.
Les vitesses angulaires, les poussées et les couples enregistrés sont utilisés pour construire
des cartes reliant toute sortie individuelle aux deux entrées PWM. Les mesures individuelles
sont additionnées pour obtenir les valeurs totales de poussée coaxiale et de couple. Il convient
de mentionner que l’aérodynamique du rotor suggère que les modèles de poussée et de couple
dépendent directement des vitesses angulaires du rotor. Mais dans notre cas, les ESC ne sont pas
équipés de mesures de vitesse, de sorte que ces informations ne sont pas accessibles à bord. En
outre, il est établi que la conversion de PWM en vitesse angulaire par l’ESC est presque linéaire
[Cunningham and Hubbard, 2017], pour une tension de batterie donnée. Il est donc logique de
relier la poussée et le couple directement aux valeurs de PWM. La structure du modèle choisi
est inspirée de [Prothin and Moschetta, 2013] où des polynômes bidimensionnels du second
ordre sont utilisés. La différence est que, dans notre travail, tous les coefficients polynomiaux
ont été conservés en tant que degrés de liberté et pas seulement la partie homogène, ce qui
permet d’avoir des modèles plus riches et un meilleur ajustement des données. Par conséquent,
les modèles empiriques de poussée totale et de couple considérés sont les suivants

a1
 
 .. 
h i
f = δu2 δl2 δu2 δl δu2 δu δl2 δu δl δu δl2 δl  .  (5.1a)
a8
b1
 
.. 
h i
Q= δu2 δl2 δu2 δl δu2 δu δl2 δu δl δu δl2 δl  . (5.1b)

b8
Où l’indice u correspond au moteur en haut et l’indice l correspond au moteur en bas.
Les équations polynomiales 5.1 peuvent être réécrites dans la forme compacte suivante
y = A.θ (5.2)
Où θ ∈ IR8 est le vecteur des paramètres à estimer, y ∈ IRN (N ∈ IN∗ ) est le vecteur de toutes
les mesures de couple et de force et A ∈ IRN × IR8 est la matrice des régresseurs. La solution

58
5.3. Application à la configuration X8

des moindres carrées est naturellement choisie, elle correspond à


 −1
θ̂ = A⊤ A A⊤ .y (5.3)
Cette régression linéaire produit de bons résultats comme le montrent la Figure 5.3 et la
Tableau 5.1.
Raw data
Raw data Poly fit
Poly fit
0.3

30 0.2

Torque (Nm)
0.1
20
Thrust (N)

0
10
-0.1
0 -0.2
100
-0.3 100
-10
0 50 100
50
50 50
100 0 PWM 2 0 0 PWM 1
PWM 1 PWM 2

(a) Poussée Coaxiale (b) Couple Coaxial

Figure 5.3 – Modèles de poussée et de couple coaxiaux (rouge) vs données brutes (vert)

Table 5.1 – Paramètres des modèles de poussée et de couple coaxiaux identifiés

Polynomial coefs θ R2 Residual Confidence Intervals


5.2075 −2.1892 12.3604 −10.2432 1.0782 0.9468 0.1623 0.9468
f (δu , δl ) 99.6053% 0.3105N ±
4.4427 2.7640 12.2092 0.2363 0.7925 0.1190 0.1623 0.1190
−0.0673 −0.0606 −0.1312 0.0953 0.0129 0.0114 0.0019 0.0114
Q(δu , δl ) 99.83% 0.0037N m ±
0.0364 −0.0907 0.1441 0.0720 0.0095 0.0014 0.0019 0.0014

5.3.1.2 Modèle M̃
h i⊤
Soit u le vecteur des couples et force de commande, u = τp τq τr T . La poussée et le
couple aérodynamiques produites par la ieme unité coaxiale√
(i ∈ {1, .., 4}) sont notés fi and Qi
2
respectivement. Le bras de levier est aussi introduit l = 2 l0 où l0 est la distance entre le centre
d’un moteur et le centre géométrique du drone. On peut alors écrire les équations suivantes.



τp = l (−f1 + f2 + f3 − f4 )

τ = l (f1 + f2 − f3 − f4 )

q
(5.4)


τr = Q1 − Q2 + Q3 − Q4
= f1 + f2 + f3 + f4

T

Il est intéressant de noter que ce sont les mêmes équations qu’on obtiendrait pour un drone
quadrirotor, ce qui est normal car chaque paire de rotors coaxiaux est considérée comme une
seule unité. La différence, cependant, est que dans le cas d’un quadrirotor, les couples doivent être
liés à la poussée afin de pouvoir inverser le problème de mixage. Mais dans le cas d’un octorotor,
il y a plus de degrés de liberté permettant d’obtenir indépendamment des commandes de couple
et de force comme on le montrera dans Section 5.3.2.2. C’est l’un des points forts de la stratégie
proposée qui apporte en théorie plus d’efficacité en couple et donc une plus grande efficacité en
lacet.
Les équations 5.4 peuvent être écrites sous la forme linéaire compacte suivante
−l l l −l 0 0 0 0 " #
 
 l l −l −l 0 0 0 0 
 f
u= (5.5a)

0 0 0 0 1 −1 1 −1 Q

1 1 1 1 0 0 0 0
" #
f
u = M̃ (5.5b)
Q

59
Chapitre 5. Algorithme d’allocation des Commandes - Cas d’un multirotor en configuration
coaxiale

5.3.2 Étape d’inversion


5.3.2.1 Inversion de M̃
Cette étape peut être interprétée comme un problème d’optimisation quadratique sous-
contraintes.   


 η ∗ = argmin η ⊤η

u∗ = M̃ η ∗ (5.6)

Dη ∗


≤ η lim

La contrainte d’inégalité est abandonnée pour l’instant car il est possible de gérer la saturation
d’une manière plus robuste, comme nous le verrons dans la Section 5.4, ce qui conduit à un
problème beaucoup plus simple
  
η ∗ = argmin η ⊤ η
(5.7)
u∗ = M̃ η ∗
" #
f
Où η = est le vecteur d’effort (force et poussée) produit par chacune des quatre paires de
Q
rotors coaxiaux.

La solutionde l’Équation (5.7) peut être donnée en minimisant le Lagrangien Ja = 12 f ⊤ f +
λ⊤ u∗ − M̃ f . La solution est alors le pseudo-inverse de Moore, qui est couramment utilisé
pour les multirotor où n > 4 (voir par exemple [Bouzid, 2018] [Falconi et al., 2016], [Marks et al.,
2012], [Kotarski and Engineering, 2017] et [Wang and Zhang, 2018]).

⊤ ⊤ −1
 
η ∗ = M̃ M̃ M̃ u∗ (5.8)

= M̃ u∗ (5.9)


L’expression analytique de M̃ est

1 1
⊤
0 0 0 0
 −1 −1
l l l l
1 1 1

−1 −1
0 0 0 0
M̃ = l l l l (5.10)
 
40 0 0 0 1 −1 1 −1
 

1 1 1 1 0 0 0 0

5.3.2.2 Inversion de P̃
La dernière étape consiste à trouver les pourcentages de PWM (ou les rapports cycliques)
correspondant à un vecteur d’effort quelconque η ∗ (correspondant à son tour à un vecteur
de contrôle quelconque u∗ ). Pour ce faire, les surfaces quadratiques construites précédemment
doivent être inversées. Notez que si les hélices sont supposées être isolées, cette inversion prenant
comme entrées et la force et le couple demandés, n’est pas possible, car pour une vitesse de
rotation donnée (et donc pour un rapport cyclique donné), un rotor isolé ne produit qu’une
seule paire possible de couple et de poussée. C’est pourquoi, dans ce cas, un modèle de couple
différent est utilisé en supposant que pour un rotor isolé, le couple aérodynamique constant
est approximativement proportionnel à la poussée avec un rapport constant qui dépend de la
géométrie des pales [Leishman, 2006]. Avec cette hypothèse, la seule variable restante est la
poussée et l’inversion est alors possible. En fait, la poussée serait proportionnelle au carré de la
vitesse angulaire [Whitehead and Bieniawski, 2010], donc la racine carrée est simplement prise
et finalement la correspondance entre la vitesse angulaire et le rapport cyclique est linéaire (pour
une tension batterie donnée).
Dans le cas bidimensionnel coaxial considéré, aucune proportionnalité entre le couple et la
poussée n’est supposée, mais le degré de liberté supplémentaire est utilisé pour trouver la paire
de valeurs de PWM qui donne la poussée et le couple coaxial demandés. C’est la principale

60
5.3. Application à la configuration X8

nouveauté de notre approche. Il n’est pas facile d’obtenir une solution analytique à ce problème
couplé, c’est pourquoi une solution numérique est proposée en utilisant MATLAB® .
L’idée de l’algorithme est d’abord de représenter les modèles polynomiaux de poussée et de
couple de la Figure 5.3 sous forme de cartes planes en couleur comme dans la Figure 5.5. En
utilisant cette représentation des données, une valeur de poussée (couple) souhaitée correspond
à une iso-courbe sur la carte couleur Figure 5.5a (Figure 5.5b), l’épaisseur de ces courbes est un
paramètre qui dépend de la précision souhaitée. Ainsi, à tout couple de poussée correspondent
deux courbes de pixels sur deux images.
Deux masques sont alors construits en fixant les pixels de l’iso-courbe à 1 et le reste de l’image
à 0. Le point d’intersection, s’il existe, est alors le pixel ayant une valeur égale à 2 sur le masque
résultant de la somme des deux images. Les coordonnées du point d’intersection sont la paire
PWM nécessaire pour obtenir la poussée et le couple demandés. Ce processus est facilité par les
capacités de calcul matriciel de MATLAB® . Une illustration de cette procédure est donnée sur
la Figure 5.4 où six captures de la recherche graphique des points d’intersection sont montrées.

Figure 5.4 – Illustration de l’algorithme d’inversion numérique : recherche du point d’intersec-


tion entre deux iso-courbes en parcourant tout le domaine réalisable de force et couple

Thrust (N)
1 Torque (Nm)
1

20 0.15
0.8
0.8
0.1

15 0.05
0.6
PWM 2

0.6
PWM 2

0
10
0.4 0.4 -0.05

-0.1
0.2 5
0.2
-0.15

-0.2
0 0 0
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
PWM 1 PWM 1

(a) Poussée Coaxiale (b) Couple Coaxial

Figure 5.5 – Cartes de couleurs de la poussée et du couple coaxiaux

Des cartes de poussée et de couple inversés ont été construites avec une précision inférieure
à 0, 1N sur la poussée et à 9e−4 N m sur le couple, elles sont présentées sur la Figure 5.6. Ces
cartes montrent, entre autres, qu’il existe une zone de couples de poussée réalisables par l’unité
de propulsion coaxiale Figure 5.7, ce qui signifie que la plage de couple disponible varie en
fonction du niveau de poussée. Cela permet de mieux comprendre physiquement le problème du
mixage.

61
Chapitre 5. Algorithme d’allocation des Commandes - Cas d’un multirotor en configuration
coaxiale

0.2 0.2
0.9 0.9
0.15 0.8 0.15 0.8

0.1 0.7 0.1 0.7

Torque (Nm)

Torque (Nm)
0.05 0.6 0.05 0.6

0.5 0.5
0 0
0.4 0.4
-0.05 -0.05
0.3 0.3
-0.1 -0.1
0.2 0.2
-0.15 -0.15
0.1 0.1
-0.2 0 -0.2 0
0 5 10 15 20 0 5 10 15 20
Thrust (N) Thrust (N)

(a) Modèle du signal de commande du mo- (b) Modèle du signal de commande du mo-
teur supérieur teur inférieur

Figure 5.6 – Cartes de couleurs du modèle coaxial inversé

Figure 5.7 – Zone de couple/poussée réalisable

Afin d’implémenter ces relations numériques entre couple/force et PWM, elles ont été ap-
proximées par des fonctions d’interpolation polynomiale à deux variable d’ordre élevé.

Remarque l’effet de tension a également été pris en compte en multipliant les cartes de
poussée et de couple avec un coefficient de correction identifié expérimentalement qui varie en
fonction de la tension de batterie mesurée à bord (Section 5.5).

5.4 Gestion de la saturation des moteurs


La saturation des moteurs est dangereuse et doit être évitée autant que possible. L’algorithme
du logiciel de pilotage automatique Open Source PX4 1 de Pixhawk® a été adapté pour le mixeur
coaxial que nous proposons. Les principales étapes sont résumées dans Algorithme 1 ci-dessous.
L’idée de cette routine de "désaturation" est d’essayer de baisser les signaux de commande u∗
un par un (en partant des axes de roulis/tangage, puis si ce n’est pas suffisant la poussée et
enfin le lacet) par un gain calculé pour amener les poussées les plus élevées et/ou les plus
faibles souhaitées au-dessus ou en dessous des limites de saturation à ces limites. Afin d’éviter
d’augmenter ou de diminuer indéfiniment la poussée totale, des rapports d’augmentation et de
diminution maximum sont fixés.

5.5 Effet de la tension batterie


Quand on modélise les moteurs avec les signaux de commande PWM pour entrées et les
poussées et couples pour sorties, c’est-à-dire sans passer par les vitesses de rotation des hélices,
1. DOI https ://zenodo.org/record/3228694

62
5.6. Comparaison avec une approche conventionnelle de mixage

Algorithm 1 Pixhawk® algorithme de désaturation du mixage des multirotors (airmode rou-


lis/tangage)
1: procedure Mix  ∗
τp
τ ∗ 
†
2: f ∗0 ← M̃  q  //Premier mixage sans commande de lacet

0
T∗
3: if ∃i ∈ [1..8] | f ∗0 (i) ∈ / [fmin , fmax ] then
4: τp∗ ← scalep () ∗ τp∗
5: τq∗ ← scaleq ()∗τq∗ //Réduction des commandes de roulis/tangage (scale) pour
ne pas saturer les moteurs en question
τp∗
 ∗
† τ 
6: f ∗0 ← M̃  q 
0
T∗
7: if ∃i ∈ [1..8] | f ∗0 (i) ∈/ [fmin , fmax ] then
8: T ∗ ← T ∗ ± boost() //Adaptation de la poussée boost totale pour ne pas
saturer  ∗
τp
τ ∗ 
†
9: f ∗0 ← M̃  q 

0
T∗
 ∗
τp
τ ∗ 
†
10: f ∗1 ← M̃  q∗  //Mixage avec commande de lacet

 τr 
T∗
11: if ∃i ∈ [1..8] | f ∗0 (i) ∈ / [fmin , fmax ] then
12: τr∗ ← scaler () ∗ τr∗ //Réajuster la commande de lacet qui cause la
saturation. Le calcul de scaler est basée sur la connaissance de la zone
admissible (Figure  ∗ 5.7)
τp
 ∗
† τ 
13: f ∗2 ← M̃  q∗  //Mixage Final
 τr 
T∗
14: f ∗ ← max (min (f ∗2 , fmax ) , fmin ) //Limiter les poussées souhaitées dans la
plage admissible

il est indispensable de tenir compte de la tension batterie. En effet la même poussée et le même
couple ne peuvent pas être atteints pour la même valeur de pourcentage PWM si la tension
batterie n’est pas la même. Expérimentalement, on remarque que cette effet est multiplicatif.
C’est à dire que la poussée (ou le couple) correspondant à une valeur donnée de commande PWM
est multipliée par un coefficient supérieur ou inférieur à 1 selon que la vraie tension batterie est
respectivement supérieure ou inférieure à celle correspondant au modèle à disposition (appelée
tension nominale dans la Figure 5.8).
Cette même propriété a été vérifiée aussi dans le cas coaxial, où un coefficient multiplciatif
peut être associé à une tension.

5.6 Comparaison avec une approche conventionnelle de mixage


L’algorithme de mixage coaxial présenté est comparé à un simple algorithme construit en
supposant des rotors isolés. Le modèle inversé, dans ce cas, est une simple relation quadratique
à une dimension transformant un point de consigne de poussée à son niveau correspondant de

PWM. Quant à M̃ , il est construit après avoir mis en relation chaque couple du rotor avec la

63
Chapitre 5. Algorithme d’allocation des Commandes - Cas d’un multirotor en configuration
coaxiale

Nominal Voltage
0.9
Lower Voltage
Higher Voltage
0.8

Normalized Thrust (or Torque)


0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
PWM (0..1)

Figure 5.8 – Effet de la Tension batterie sur la poussée ou le couple d’un moteur en fonction
du signal PWM

poussée correspondante : Qi = κt fi , ∀i ∈ {1..8}. Il convient de noter que ce modèle de couple


non seulement ne saisit pas l’effet coaxial, mais est également trop simpliste même pour un rotor
isolé. En fait, comme indiqué dans [Faessler et al., 2017], rendre κt dépendant de la poussée donne
des résultats plus précis, mais cela conduit à un algorithme itératif. Dans notre approche, il est
possible d’éviter facilement de telles solutions itératives tout en utilisant le modèle non linéaire
à couple complet en profitant du degré de liberté supplémentaire fourni par la configuration
coaxiale.
Pour revenir au cas simple, on obtient la matrice de répartition de commandes suivante
 
−l l l −l l −l −l l f 
1
−l −l l −l −l   .. 
 l l l
u= (5.11a)
 kt −kt kt −kt kt −kt kt −kt  .

 

1 1 1 1 1 1 1 1 f8

u = M̃ f (5.11b)
Dont l’inverse est
 −1 1 1 −1 1 −1 −1 1
⊤
l l l l l l l l
1 1 1 1
† 1 −1 −1 −1 −1 
M̃ = l l l l l l l l  (5.12)

1
8 − κ1t 1
− κ1t 1
− κ1t 1
− κ1t 
 
κt κt κt κt
1 1 1 1 1 1 1 1

(a) PWM vs Poussée (b) Couple vs Poussée

Figure 5.9 – Modèles de poussée et de couple (rouge) par rapport aux données brutes (vert)
pour une hélice isolée

5.6.1 Tests statiques en simulation


Le principal avantage du nouvel algorithme de mixage coaxial est la façon dont la commande
de lacet est traitée. Pour le visualiser, considérons le cas d’une commande de poussée de 40N

64
5.6. Comparaison avec une approche conventionnelle de mixage

(donc 10N par unité coaxiale) et plusieurs échantillons de commandes de couple variant dans
la plage de couple maximale disponible. Les points (poussée, couple) dans la zone de fonction-
nement admissible sont dessinés pour chacune des quatre unités de propulsion coaxiales de la
figure 5.10 en considérant les deux algorithmes. Il est clair que l’algorithme coaxial maintient la
poussée constante sur chaque unité de propulsion tout en obtenant le couple demandé, alors que
l’algorithme simple conduit à des niveaux de poussée variables sur les hélices coaxiales car la
dégradation des performances de l’hélice inférieure n’est pas prise en compte. Un autre avantage
provenant du degré de liberté supplémentaire du couple, est que pour les commandes de lacet
zéro, il n’y a en théorie aucun couple résiduel sur les quatre unités de propulsion.

(a) Mixage Coaxial

(b) Mixage Simple

Figure 5.10 – L’effet des commandes de lacet sur les hélices coaxiales

5.6.2 Tests dynamiques en simulation


Pour l’évaluation de l’effet dynamique de l’algorithme du mixage nous considérons le contrôle
des axes de lacet et d’altitude, c’est-à-dire les deux seuls axes pouvant être contrôlés directement
par les moteurs pour un drone unidirectionnel sous-actionné. Le drone simulé est un octo-rotor
de 3.4kg et de moment d’inertie Iz = 0.16kgm2 autour de l’axe de lacet. Les modèles statiques
identifiés dans ce chapitre sont utilisés pour les moteurs, et leur comportement transitoire est
modélisé par un premier ordre de constante de temps égale à 0.1s pendant l’accélération et 0.15s
pendant la décélération (valeurs issues des essais expérimentaux). Plusieurs autres effets sont
ajoutés à la simulation : bruit des capteurs, retard de l’estimation, couple dû au centre de masse
excentré, frottement d’air (en translation et en rotation) et effet gyroscopique des hélices.
Le scénario de test présenté dans cette section correspond à des changements de lacet d’am-
plitude 90ř et des variations d’altitude d’amplitude 1m. Le contrôleur de position utilisé est un PI
sur la vitesse. La consigne de vitesse étant générée à partir des consignes de position sous forme
de profil en trapèze. Le contrôleur d’attitude est proportionnel sur l’erreur des quaternions, en
cascade avec un ADRC sur les vitesses angulaires.
Comme le montre les Figures 5.11, 5.12 et 5.13, l’algorithme du mixage coaxial permet un
meilleur asservissement de lacet et d’altitude et induit moins de couplage sur les axes non-
sollicités. Notons que pour ne pas pénaliser l’algorithme non coaxial (appelé simple ici), les
gains de position ont été augmenté du coefficient qu’il faut pour compenser l’écart dû à la

65
Chapitre 5. Algorithme d’allocation des Commandes - Cas d’un multirotor en configuration
coaxiale

surestimation de la poussée des moteurs (qui est conséquence du fait que la perte d’efficacité
des hélices coaxiales n’est pas modélisée avec cet algorithme). Les commandes en pourcentage

0.1 0.1

x and y (m) 0.05 0.05

x and y (m)
0 0

-0.05 -0.05

-0.1 -0.1
0 10 20 30 40 50 60 70 0 20 40 60 80 100 120 140 160
Time (s) Time (s)
3 3

2 2
-z (m)

-z (m)
1 1

0 0
0 10 20 30 40 50 60 70 0 20 40 60 80 100 120 140 160
Time (s) Time (s)

(a) Coaxial Mixer (b) Simple Mixer

Figure 5.11 – Position du drone simulé au cours de consignes de lacet et d’altitude

1 1
Roll and Pitch (deg)

Roll and Pitch (deg)

0 0

-1 -1

-2 -2
0 10 20 30 40 50 60 70 0 20 40 60 80 100 120 140 160
Time (s) Time (s)
100 100

50 50
Yaw (deg)

Yaw (deg)

0 0

-50 -50

-100 -100
0 10 20 30 40 50 60 70 0 20 40 60 80 100 120 140 160
Time (s) Time (s)

(a) Coaxial Mixer (b) Simple Mixer

Figure 5.12 – Agnles d’Euler du drone simulé au cours de consignes de lacet et d’altitude

Simple Mixer
Coaxial Mixer

2.5

2
Z (m)

1.5

0.5
0.1

0.05
0.1
0 0.05
0
Y (m) -0.05
-0.05 -0.1 X (m)

Figure 5.13 – Trace 3D de la position du drone simulé au cours de consignes de lacet et


d’altitude

envoyées aux deux moteurs coaxiaux 3 et 8 correspondant à ces vols de simulation sont données
ci-dessous en Figure 5.14. On remarque notamment que les commandes envoyées aux moteurs
du dessous sont plus élevées, afin de compenser la perte d’efficacité.

66
5.6. Comparaison avec une approche conventionnelle de mixage

1 1
Mot 3 Mot 3
0.9 Mot 8 0.9 Mot 8

0.8 0.8

0.7 0.7

0.6 0.6
PWM %

PWM %
0.5 0.5

0.4 0.4

0.3 0.3

0.2 0.2

0.1 0.1

0 0
0 10 20 30 40 50 60 70 0 20 40 60 80 100 120 140 160
Time (s) Time (s)

(a) Coaxial Mixer (b) Simple Mixer

Figure 5.14 – PWM envoyés aux moteurs 3 et 8 au cours de consignes de lacet et d’altitude

5.6.3 Essais en vol


Des essais en vol ont également été effectués dans la salle de robotique ISAE-SUPAERO
équipée du système de capture de mouvement Optitrack® . Le drone est un X8 de forme carrée
d’un diamètre égal à 0.9m, il pèse 3.2kg et a pour principaux moments d’inertie de rotation
Ix = 0, 0797kg.m2 , Iy = 0, 0874kg.m2 et Iz = 0, 1604kg.m2 (voir Figure 5.15). Les algorithmes
de contrôle et de mixage ont été implémentés sur une carte Dropix PX4. Une carte TX1 NVIDIA
® a également été utilisée pour assurer une connexion UDP stable avec le système de capture
de mouvement et le logiciel de la station au sol. Elle communique avec la carte PX4 par une
liaison série. Le contrôleur fonctionne à un temps d’échantillonnage de 5ms et le délai de mesure
Optitrack est d’environ 50ms.

(a) Le drone en vol dans la volière (b) Vue de dessus du drone

Figure 5.15 – Le drone octorotor utilisé pour les essais de mixage

L’expérience menée consistait en deux vols stationnaires (l’un avec l’algorithme de mixage
simple et l’autre avec le coaxial) à x et y constants, perturbés par les mêmes manoeuvres
d’altitude z et de lacet, les trajectoires sont indiquées dans les Figures 5.16 et 5.17. Ce vol
permet d’analyser les performances de découplage du contrôleur dans le plan horizontal (axes x
et y) tout en se déplaçant le long des autres degrés de liberté (z et lacet). Les contrôleurs PID
de position et d’attitude de base ont été réglés pour garantir la stabilité et obtenir un suivi de
trajectoire raisonnable. La seule différence entre les deux expériences est l’algorithme de mixage :
exactement la même structure de contrôle et les mêmes valeurs de paramètres ont été utilisées
dans les deux cas afin de pouvoir isoler l’effet du mixage. Les résultats sont présentés ci-dessous.

67
Chapitre 5. Algorithme d’allocation des Commandes - Cas d’un multirotor en configuration
coaxiale

La principale différence entre les deux algorithmes est illustrée sur la figure 5.19. Le signal
de contrôle de la poussée, c’est-à-dire le signal envoyé à l’algorithme de mixage pour générer les
PWMs sur la base du modèle à rotors inversés, obtenu lorsque l’algorithme coaxial est utilisé (Fig.
5.19b) est beaucoup plus proche de la poussée d’équilibre en vol stationnaire (le poids du drone).
On peut voir qu’au contraire, l’utilisation de l’algorithme simple entraîne une surestimation de la
poussée totale nécessaire (Fig. 5.19a) car la poussée d’équilibre réelle, atteinte grâce au contrôle
en boucle fermée de l’altitude, conduirait à une poussée plus élevée si l’on ne tient pas compte
de la perte coaxiale. En fait, si les hélices étaient isolées, l’équilibre aurait été atteint pour des
vitesses de rotation des hélices (et donc PWM) beaucoup plus faibles car les hélices seraient plus
efficaces.
Bien que le cas coaxial conduise à une meilleure estimation de la poussée totale que le cas
simple, il est encore sous-estimé comme le montre la figure 5.19b. Ce décalage d’environ 2N ,
qui varie lentement, ne peut s’expliquer par la chute de tension, car une compensation a été
ajoutée pour ajuster les modèles coaxiaux lorsque la tension de la batterie change. Toutefois, il
pourrait être dû à des imprécisions de modélisation, car celles-ci peuvent atteindre 1, 242N dans
le pire des cas (sur la base de la valeur résiduelle de la poussée dans le tableau 5.1). En outre,
la présence d’effets aérodynamiques induits dans la zone de vol plutôt réduite peut entraîner
une modification des performances aérodynamiques des hélices, par exemple l’effet de sol et la
recirculation d’air. Cet effet augmente la portance des rotors [Leishman, 2006] et, par conséquent,
diminue la puissance que doivent produire les moteurs. Cela pourrait être la raison pour laquelle
la commande de poussée coaxiale est légèrement plus élevée et se rapproche davantage du poids
du drone lorsqu’il vole plus haut (Fig. 5.19b). L’utilisation du mixage coaxial permet donc de
connaître en temps réel les efforts réels produits par les actionneurs. ce qui facilite l’estimation
et la compensation des perturbations (comme le vent ou d’autres effets aérodynamiques).
0.2 0.2
Target Target
Optitrack Optitrack
X (m)

X (m)

0 0

-0.2 -0.2
80 90 100 110 120 130 140 150 160 170 180 80 90 100 110 120 130 140 150 160 170 180

0.1 0.1
Y (m)

Y (m)

0 0

-0.1 -0.1

80 90 100 110 120 130 140 150 160 170 180 80 90 100 110 120 130 140 150 160 170 180

1.5 1.5
-Z (m)

-Z (m)

1 1

0.5 0.5

0 0
80 90 100 110 120 130 140 150 160 170 180 80 90 100 110 120 130 140 150 160 170 180
Time (s) Time (s)

(a) Simple Mixer (b) Coaxial Mixer

Figure 5.16 – Suivi de la trajectoire de la position : Référence (rouge) vs Mesuré (bleu)

100 100
Optitrack Optitrack
Target Target

50 50
Yaw angle (deg)

Yaw angle (deg)

0 0

-50 -50

-100 -100
90 100 110 120 130 140 150 160 170 90 100 110 120 130 140 150 160 170
Time (s) Time (s)

(a) Simple Mixer (b) Coaxial Mixer

Figure 5.17 – Suivi du profil de lacet : Référence (rouge) vs Mesuré (bleu)

En outre, l’analyse des performances de suivi de position dans les deux cas (Figure 5.16)
montre que l’utilisation de l’algorithme coaxial permet d’obtenir une meilleure précision (voir
le Tableau 5.2, où z est pris en compte pendant la phase 1, 5m). Cela signifie qu’en adaptant
la manière dont les commandes sont distribuées aux moteurs, et sans aucune modification des

68
5.7. Conclusion

(a) Simple Mixer (b) Coaxial Mixer

Figure 5.18 – Les commandes envoyées à une paire de moteurs Push/Pull (tournant dans la
même direction pour supprimer l’effet de contrôle du lacet)

1.5
1.5
Altitude (m)

Altitude (m)
1
1
0.5
0.5

0
80 100 120 140 160 180 0
80 100 120 140 160 180
Time (s)
60
UAV weight Time (s)
Thrust Control UAV weight
40
Thrust Control
40
(N)

(N)

20
20

0 0
80 100 120 140 160 180 80 100 120 140 160 180
Time (s) Time (s)

(a) Simple Mixer (b) Coaxial Mixer

Figure 5.19 – Force de poussée (bleu) par rapport au poids du drone (noir) - Les figures du
dessus montrent les phases d’altitude de vol correspondantes

paramètres de contrôle, il est possible de réduire les effets de couplage entre le lacet et les autres
degrés de liberté. La même tendance a été vérifiée sur d’autres vols.

Table 5.2 – Maintien de la position (x,y,z) : Erreur quadratique moyenne (MSE), erreur absolue
moyenne (MAE) et erreur absolue maximale (MaxAE)

MSE (m2 ) MAE (m) MaxAE (m)


Coaxial 1.6e−3 0.7e−3 0.5e−3 0.028 0.020 0.019 0.130 0.078 0.062
Simple 2.9e−3 1.8e−3 1.1e−3 0.039 0.029 0.026 0.144 0.156 0.080

5.7 Conclusion
Un nouvel algorithme de mixage adapté à tout véhicule aérien multirotor de type coaxial
a été développé. Le principal point fort de la stratégie proposée est qu’elle ne nécessite pas
de négliger l’interaction aérodynamique entre les hélices coaxiales. L’identification des modèles
d’actionneurs a été décrite et les modèles obtenus ont été utilisés dans le problème de mixage qui
est défini comme un problème d’inversion bidimensionnelle en deux étapes. La première étape
d’inversion est une pseudo-inversion bien connue de la matrice d’allocation des commandes, et
la deuxième étape est effectuée numériquement. Cette nouvelle stratégie a été testée avec succès
sur un véritable drone. Elle a permis une meilleure estimation de la poussée totale et moins de

69
Chapitre 5. Algorithme d’allocation des Commandes - Cas d’un multirotor en configuration
coaxiale

couplage entre les axes du drone par rapport à un algorithme de mixage conventionnel basé sur
un modèle ne tenant pas compte de l’interaction entre les hélices contra-rotatives.
Bien que l’utilisation du modèle coaxial a apporté de meilleures performances de tenue de
position, il convient d’admettre que cet effet reste modéré et moyennement significatif. Plusieurs
causes pourraient expliquer cette faible amélioration :
• Les erreurs de modélisation : les modèles moteurs sont en effet identifiés en régime établi
et ne sont valables que quand le drone est en vol stabilisé. D’autant plus que le banc
d’essais utilisé n’est pas bien isolé et des effets aérodynamiques dûs aux interférences
avec les surfaces proches du flux des hélices auraient pu fausser les modèles.
• Les interactions aérodynamiques dues à la configuration coaxiale n’ont pas de grande in-
fluence quand le drone vole à basses vitesses et sans grandes perturbations extérieures. Et
donc les algorithmes de contrôle plus haut niveau que le mixage sont capables d’atténuer
leurs effets sans grande difficulté.
• La poussée d’équilibre du drone (son poids) n’est pas assez élevée pour que les effets
de perte d’efficacité de l’hélice inférieure commence à apparaître. Comme le montre la
Figure 5.18, dans le cas coaxial la différence entre les commandes envoyées aux moteurs
supérieurs et inférieurs ne se voit presque pas.
• Une perspective pour améliorer cette approche serait de la mettre en boucle fermée (si les
mesures des vitesses moteurs sont disponibles) en ajoutant un terme adaptatif dont les
paramètres correspondent aux erreurs sur les coefficients des polynômes identifiés. Ceci
permet de ne pas dépendre entièrement du modèle identifié sur le banc d’essais.

70
Chapitre 6

Étude expérimentale sur le rejet des


perturbations aérodynamiques pour
les drones multirotor

6.1 Introduction
Les contrôleurs PID sont les algorithmes de contrôle les plus utilisés dans différentes appli-
cations industrielles. Les drones multirotor ne font pas exception à cette règle. Ce succès est dû
à l’efficacité de ce type d’algorithmes. En effet, avec uniquement trois gains, ils sont faciles à
implémenter et à régler sans besoin d’une grande expertise en automatique. Cependant, cette
efficacité devient discutable lorsque les conditions sont loin d’être nominales. L’objectif de cette
étude expérimentale est d’évaluer les performances du PID comparé à d’autres contrôleurs usuels
parmi ceux évoqués en Chapitre 4 (plus particulièrement les approches robustes aux perturba-
tions non modélisées) quand le drone vole dans des conditions aérodynamiques perturbées. Nous
montrons que, lorsque les propriétés inertielles et d’actionnement du drone sont bien modélisées,
de bonnes capacités de rejet des perturbations peuvent être obtenues en ajoutant simplement
un observateur de perturbations à un contrôleur PID.

6.2 Rappel de la conception du contrôle de position


Un logiciel de commande de drone multirotor est généralement conçu de manière hiérar-
chique, comme décrit à la Section 3.3. Un rappel est donné dans ce chapitre, où nous nous
concentrons sur l’algorithme de contrôle de position. Ce contrôleur permet de calculer l’orien-
tation et la poussée souhaitées que doit avoir le drone. Plus précisément, il génère une force
de poussée 3D souhaitée uT dans le cadre fixe terrestre qui donne la poussée souhaitée dans le
cadre du corps du drone, ainsi que l’angle d’inclinaison requis. En ajoutant une cible d’angle de
lacet, on peut obtenir la matrice cosinus de direction DCM qui décrit entièrement l’orientation
souhaitée du drone, les colonnes de cette matrice ne sont autres que les vecteurs de base du
cadre du corps du drone exprimés dans le cadre fixé sur la terre. Cette matrice de rotation
est envoyée au contrôleur d’attitude pour qu’il l’utilise comme référence de trajectoire. Nous
nous concentrons donc maintenant uniquement sur le calcul de uT , sachant que nous pouvons
le traduire en une orientation souhaitée.

Hypothèse 1 Nous disposons d’un modèle PV du comportement des actionneurs permettant


de transformer toute force de poussée statique T en une commande PWM (ou RPM) équivalente
u 1 , compte tenu d’une tension de batterie V 2 , et vice versa. Ce modèle est une simple équation
1. La notation de δ pour les signaux de commande moteurs introduite en Équation (4.17) n’est pas utilisée ici
pour éviter la confusion avec le paramètre d’incertitude δ
2. Lorsque les ESC commandés en boucle fermée sont disponibles, il n’est pas nécessaire de modéliser la
dépendance à la tension de batterie, le régime réel des rotors peut être directement utilisé pour construire le
modèle de la poussée

71
Chapitre 6. Étude expérimentale sur le rejet des perturbations aérodynamiques pour les
drones multirotor

quadratique (pour une tension fixe) dans le cas d’un quadrotor. Mais il peut être plus complexe
pour d’autres configurations afin de tenir compte de certaines interférences aérodynamiques
entre les hélices comme le cas coaxial présenté au Chapitre 5.
L’incertitude sur cette carte est modélisée comme un gain multiplicatif constant : T =
ωPV (u) qui peut être transformé en un gain additif T = PV (u) + δPV (u) en ayant δ = ω − 1

Hypothèse 2 La masse du drone est connue avec précision.

Hypothèse 3 Le drone a une attitude stable et bien contrôlée. Cela suppose implicitement
que le contrôleur de position ne va pas demander des dynamiques qui dépassent les performances
que peut atteindre le contrôleur d’attitude.
Compte tenu des hypothèses ci-dessus, la dynamique des position (Équation (4.17))) peut
être décrite par un système linéaire sous la forme suivante.

=v
(

1
(6.1)
v̇ =G+ m (uT + Fd )

La dynamique de l’intégrateur est également introduite (si elle est utilisée dans le cadre du
contrôle)
ṡ = r − p (6.2)

Où r est la position cible et


h i⊤
uT = R 0 0 −PV (u) (6.3)

Fd ici englobe tous les signaux de type force qui affectent la dynamique du corps du drone
et qui ne proviennent pas du comportement supposé connu des actionneurs. Ce terme dépend
donc également de v et u puisqu’il contient le les forces de traînée et l’incertitude sur le modèle
de poussée des rotors.
Fd = RFdrag (v, vwind ) + δuT (6.4)

Cependant, cette dépendance ne peut pas toujours être exploitée, à moins de disposer de
modèles de traînée et de mesures du vent précis. Elle peut être partiellement exploitée lorsque
le contrôle adaptatif est utilisé, comme on le verra dans la suite. Pour l’instant, tous ces effets
non linéaires sont donc regroupés en Fd afin de pouvoir comparer les différentes approches entre
elles. À partir de Équation (6.1) et Équation (6.2), la dynamique de position peut être écrite
sous la forme d’un système linéaire (toutes les non-linéarités étant regroupées en Fd ) de la forme
pratique d’espace d’état suivante

Ẋ = AX + B (uT + mG + Fd ) + Er (6.5)
 
i⊤ 03×3 13×3 03×3 i⊤
1
h h
Où X = p v s A =  03×3 03×3 03×3  B = 03×3 m 13×3 03×3 et E=
 
−13×3 03×3 03×3
" #
h i⊤ h i⊤ 03×3 13×3
03×3 03×3 13×3 si l’intégrateur est utilisé. Sinon, X = p v A =
03×3 03×3
i⊤
1
h
B = 03×3 m 13×3 and E = 06×3
Les différents contrôleurs à comparer dans le cadre de cette étude se présentent sous la forme
commune suivante
u = ut + ud (6.6)

Où ut est la composante du signal de contrôle assurant la stabilité et la trajectoire suivant


une action de rétroaction (et éventuellement de feed-forward) et ud est la partie de rejet de la
perturbation.

72
6.2. Rappel de la conception du contrôle de position

6.2.1 Contrôleur Proportionnel-Intégral (PI) sur la Position

= λr − KX
(
ut
(6.7)
ud =0

kpx 0 0 kvx 0 0 kix 0 0


 

Où K =  0 kpy 0 0 kvy 0 0 kiy 0 . λ = diag (λx , λy , λz ) est choisi pour rendre


 
0 0 kpz 0 0 kvz 0 0 kiz
le gain basse fréquence (DC) du système égal à 1, il ajoute seulement des zéros au système, il
est donc important pour façonner la réponse de suivi de trajectoire mais n’a aucun effet sur la
stabilité ou le rejet des perturbations. Et ud est le terme de rejet des perturbations qui est égal
à zéro pour les contrôleurs PID pour lesquels seul le terme intégrateur a un effet d’atténuation
des perturbations.

6.2.2 Contrôleur Active Disturbance Rejection Control de Position


Le contrôle ADRC a été considéré comme une alternative au PID. Il s’articule autour de l’idée
d’estimer et de rejeter un terme de perturbation regroupé (lumped disturbance). La théorie sous-
jacente est bien décrite dans [Guo and Zhao, 2016]. L’architecture du contrôleur se compose
d’un terme d’erreur de rétroaction, d’un terme de pré-commande et d’un terme de rejet de
perturbation obtenu avec un observateur (classiquement ESO Section 6.2.2.2). La pré-commande
est calculée à l’aide d’un Tracking Differentiator qui transforme une commande en échelon en une
référence lisse utilisée dans le terme d’erreur. Ainsi, la première partie du signal de commande,
dans ce cas, est donnée par :
 
ut = m v̇ref − K (X − Xref ) − G (6.8)

Avec
0 0 k2x 0 0
 
k1x k2x
y y
K= 0 k1 k2 0 0 k2y 0  (6.9)
 
0 0 k1z k2z 0 0 k2z
h i⊤
et Xref = pref vref est générée par le TD en utilisant la consigne r.
Quant au terme de rejet de perturbation ud , il est obtenu par un observateur. L’idée d’utiliser
des observateurs pour estimer les perturbations extérieures est une solution assez classique et
répandue en automatique comme discuté dans le Chapitre 4. Nous considérons ici deux types
d’observateurs qui sont comme nous le verrons très similaires.

6.2.2.1 Disturbance Observer DO


L’idée de base de cet observateur est d’estimer une valeur filtrée de la vraie perturbation.

D’après l’Équation (6.5), la perturbation devrait être égale à F∗d = B† Ẋ − (AX + BuT + G) ,
où B† = 03×3 m13×3 . Alors, en supposant que ce terme dérivé Ẋ est accessible, l’observateur
h i

peut être obtenu comme un filtre passe-bas sur F∗d :

˙
 
F̂d = L F∗d − F̂d
  (6.10)
= LB† Ẋ − L uT + mG + F̂d

Où L est la matrice des gains de l’observateur (qui peut aussi dépendre de l’état du système
dans le cas non-linéaire). Cependant Ẋ (précisément v̇) n’est pas toujours accessible, les mesures
des accéléromètres peuvent être utilisés comme dans [Ryll et al., 2019], mais elles sont en général
très bruitées et la fréquence de l’observateur doit être fortement diminuée). La solution est alors

73
Chapitre 6. Étude expérimentale sur le rejet des perturbations aérodynamiques pour les
drones multirotor

d’introduire une variable auxiliaire η = LB† Ẋdt qui est égale à mLv dans le cas de gains
R

constants. L’observateur est alors donné par :



F̂d

 =z+η
ż = −Lz − L (uT + mG + η) (6.11)

= mLv

η

Ce qui donne le terme de rejet de perturbation de l’Équation (6.6) :

ud = −F̂d (6.12)

Remarques
• Dans ce cas linéaire, L correspond simplement à la fréquence de coupure du premier ordre
(en rad.s−1 ) à appliquer sur le signal perturbateur réel.

L = 2πdiag (fx , fy , fz ) (6.13)

Où fx , fy et fz sont des fréquences en Hz.


• Cet observateur n’utilise que des mesures de vitesse, il ressemble de ce point de vue à
celui utilisé dans [Hua et al., 2007].

6.2.2.2 Extended State Observer ESO


La brique principale de l’ADRC est l’observateur ESO qui peut être vu, dans sa forme linéaire,
comme un observateur de Luenberger sur un système à chaîne intégrale où la perturbation est
un état supplémentaire. Ainsi, à partir de Équation (6.1), l’ESO linéaire 3D correspondant est
formulé comme suit
˙

p̂

 = v̂ + Lp (p − p̂)
v̂˙ =m 1
uT + ∆ˆ d + Lv (p − p̂) (6.14)
ˆ

˙
∆d = Ld (p − p̂)

Le terme de rejet des perturbations dans l’Équation (6.6) est alors

ˆd−G
 
ud = −m ∆ (6.15)

Remarques
• Dans ce cas linéaire, les gains de l’observateur peuvent être directement reliés à une
fréquence comme fait pour le DO. Une solution est de calculer un placement de pôle
multiple à la fréquence voulue. Ce qui donne :

Lp = 2πdiag (3fx , 3fy , 3fz )


Lv = (2π)2 diag 3fx2 , 3fy2 , 3fz2
 
(6.16)
3
fx3 , fy3 , fz3
 
Ld = (2π) diag

• ESO utilise la mesure de la position, considérée comme étant disponible et précise dans
notre cadre d’étude. Il est toujours possible d’utiliser également des mesures de vitesse
et d’appliquer un ESO généralisé MIMO. Mais cela rend le réglage de l’observateur plus
difficile et ne semble pas apporter une meilleure performance d’après des tests simplifiés
en simulation.
Afin de supprimer partiellement les perturbations dus à l’incertitude sur le modèle de poussée
(donc la partie δuT ) de l’estimation résultante donnée par l’observateur (DO ou ESO), il est
possible d’utiliser ω0 uT au lieu de uT comme entrée, où ω0 peut être approximé pendant un
vol stationnaire sans perturbation ω0 = PVmg(u0 ) . Ce paramètre est également utilisé dans le cas
adaptatif comme valeur initiale du paramètre incertain δ (Équation (6.21)).

74
6.2. Rappel de la conception du contrôle de position

6.2.3 Model Reference Adaptive Control (MRAC)


Dans les approches précédentes basées sur les observateurs, la perturbation est déduite de
l’entrée et de la sortie du système physique en boucle ouverte, ce qui est logique puisque la
perturbation de la force entre dans le système par le même canal que l’entrée de commande (qui
est aussi une force puisque nous disposons d’un modèle pour les hélices). Il existe cependant
une autre approche, l’approche adaptative, qui s’articule uniquement sur le comportement en
boucle fermée et considère comme une perturbation tout ce qui fait dévier le système contrôlé
en boucle fermée d’un comportement souhaité prédéfini donné par un modèle de référence.
La commande MRAC peut également être décomposée en deux parties identiques à celles
présentées dans Équation (6.6). La première a la même forme que le contrôleur PI Équation (6.7)
h i⊤
(même si l’intégrateur n’est pas nécessairement utilisé, c’est-à-dire lorsque X = p v ).

ut = λ̂r − K̂X − mG (6.17)

Les paramètres λ̂ et K̂ sont éventuellement non constants, cependant puisque nous supposons
que la masse du drone est connue, la partie linéaire de la dynamique de position n’est plus
incertaine et on peut utiliser des paramètres de contrôle constants λ et K.
En utilisant Équation (6.5), Équation (6.6) et Équation (6.17), et en introduisant le modèle
de référence suivant :
Ẋm = Am Xm + Bm r (6.18)
avec Am = A−BK Bm = λB+E 3 , on se retrouve avec la dynamique de l’erreur (e = X − Xm ) :

ė = Am e + B (ud + Fd )

Et la structure du nouveau terme de rejet de la perturbation dépend de la façon dont Fd est


modélisé. Donc ici toute structure interne connue et dépendance de l’état peuvent être utiles.
Supposons que Fd , exprimée dans le repère B, puisse s’écrire comme suit :

FdB = Θ⊤ Φ (X, uT ) (6.19)

Où Θ ∈ IR3np ×3 est une matrice de paramètres inconnus bornés à variations bornées (i.e. ∃θ0 et
θ1 tels que ∥Θ∥ ≤ θ0 et Θ̇ ≤ θ1 ) et Φ : IR9 ×IR3 → IR3np ×1 est un vecteur de régression connu
qui est composé des fonctions de base modélisant les termes non linéaires des perturbations,
ce qui peut être fait à la lumière de Équation (6.4) et des modèles simplifiés présentés en
Section 2.4.4 : la force de traînée peut être écrite comme une combinaison de terme linéaires et
quadratiques de la vitesse exprimée dans le repère lié au drone. Quant à la partie inconnue de
la vitesse du vent dans la force de traînée, elle pourrait être traitée comme une constante, une
perturbation exogène (puisque la mesure du vent n’est pas disponible), et l’incertitude sur le
modèle des hélices pourrait également être incluse en ajoutant uT au vecteur de régression. La
paramétrisation correspondante qui capture ces différents effets est donnée ci-dessous :
⊤
0
 

Φ (X, uT ) = −vB −|vB |vB



13×1 
 0

 (6.20)
−PV (u)
h i⊤
Θ = C1 C2 δ σ (6.21)
Où C1 , C2 , δ et σ sont des matrices de paramètres diagonales 3 × 3 qui doivent être estimées.
vB est la vitesse du drone exprimé dans son repère propre. Le terme de rejet des perturbations
s’écrirait simplement comme suit :

ud = −RΘ̂ Φ (X, uT ) (6.22)
 ⊤ 
Conduisant à : ė = Am e + B Θ̃ Φ , où Θ̃ = Θ − Θ̂

3. Ces deux équations permettent de calculer un modèle de référence si les gains de contrôle sont connus et
vice versa, d’avoir les gains idéaux si un modèle de référence est connu.

75
Chapitre 6. Étude expérimentale sur le rejet des perturbations aérodynamiques pour les
drones multirotor

6.2.3.1 MRAC Standard


La mise à jour des paramètres adaptatifs est effectuée en se basant sur la théorie de la
stabilité de Lyapunov, ce qui conduit à la loi adaptative suivante :
˙
Θ̂ = ΓΦe⊤ PB (6.23)
Où Γ est une matrice de gains (également appelés taux d’apprentissage) symétrique définie
positive que nous choisissons diagonale et P est une matrice symétrique définie positive qui résout
l’équation de Lyapunov PAm + A⊤ m P = −Q où Q est une matrice de conception symétrique
définie positive.
Cette loi est issue de la considération de la fonction (candidate) de Lyapunov suivante :
 ⊤ 
V = e⊤ Pe + tr Θ̃ Γ−1 Θ̃ (6.24)
L’évaluation de la dérivée temporelle de V conduit à :
V̇ = e⊤ A⊤ ⊤ ⊤ ⊤
m Pe + Φ Θ̃B Pe + e PAm e
⊤ ⊤ ˙
 
+ e⊤ PBΘ̃ Φ + 2tr Θ̃ Γ−1 Θ̃
˙
 ⊤ 
= −e⊤ Qe + 2Φ⊤ Θ̃B⊤ Pe + 2tr Θ̃ Γ−1 Θ̃
˙
   ⊤ 
= −e⊤ Qe + 2tr Φ⊤ Θ̃B⊤ Pe + 2tr Θ̃ Γ−1 Θ̃
⊤ ˙
   
= −e⊤ Qe + 2tr B⊤ PeΦ⊤ Θ̃ + 2tr Θ̃ Γ−1 Θ̃
˙
 ⊤ ⊤

= −e⊤ Qe + 2tr Θ̃ Φe⊤ PB + Θ̃ Γ−1 Θ̃
˙
 ⊤ ⊤

V̇ = −e⊤ Qe + 2tr Θ̃ Φe⊤ PB − Θ̃ Γ−1 Θ̃ (6.25)
L’utilisation de la loi d’adaptation donnée en Équation (6.23) conduit à
 ⊤ 
V̇ = −e⊤ Qe + 2tr Θ̃ Γ−1 Θ̇ (6.26)
Compte tenue des hypothèses sur les paramètres et leurs variations, cette dérivée peut être
bornée comme suit :
V̇ ≤ −λ(Q)min ∥e∥2 + 2tr Γ−1
  
θ0 + θ̂max θ1 (6.27)
 
Alors, V̇ e, Θ̃ < 0 en dehors de l’ensemble compact :
n  o
Ω= e, Θ̃ : ∥e∥ ≤ η, Θ̃ ≤ θ0 + θ̂max (6.28)
r
2tr(Γ−1 )(θ0 +θ̂max )θ1
Où η = λ(Q)min . On en conclut la stabilité du système adaptatif et le caractère
 
borné de la solution e, Θ̂ . Ceci ne garantit pas néanmoins la convergence des paramètres vers
leurs vraies valeurs physiques, qui nécessite une entrée à excitation persistante.
A partir de Équation (6.28), il est intéressant de voir l’effet des paramètres variant dans
le temps qui met une limite sur l’erreur de suivi réalisable. Une hypothèse souvent considérée
est que les paramètres sont constants et qui permet de garantir la stabilité asymptotique si la
dérivée deuxième de V est bornée. Cependant cette hypothèse n’est pas réaliste surtout dans le
cas de force de traînée puisque ces paramètres dépendent aussi en réalité des vitesses des hélices
(cf. Section 2.4.4) dont les mesures ne sont pas toujours disponibles.
La loi adaptative dans Équation (6.23) est modifiée à l’aide de l’opérateur projecteur Proj
(défini dans [Hovakimyan and Cao, 2010] ou [Arabi et al., 2018] par exemple) qui force les
paramètres estimés à rester sous une limite supérieure choisie θ̂max 4 . Ceci est important pour
s’assurer que les paramètres restent dans un domaine borné connu.
˙
 
Θ̂ = ΓProj Θ̂, Φe⊤ PB (6.29)
4. Cette étape est nécessaire pour garantir l’existence de cette borne supérieure et la validité de l’Équa-
tion (6.28).

76
6.3. Conditions Expérimentales

6.2.3.2 Modifications du MRAC


Une des limitations bien connues du MRAC standard est que les lois d’adaptation directes
induisent des oscillations lorsque les gains Γ sont augmentés, conduisant à des entrées de com-
mande à haute fréquence qui peuvent saturer les actionneurs et exciter des dynamiques d’ordre
supérieur non modélisées. Plusieurs solutions existent dans la littérature pour réduire cet effet.
L’une d’entre elles est la commande adaptative hybride, où la commande adaptative directe est
utilisée pour résister aux perturbations exogènes et une partie adaptative indirecte est utilisée
pour estimer les paramètres du modèle interne, ceci est appliqué par exemple dans [Campbell
et al., 2009]. Une autre méthode est le contrôle adaptatif L1 dont l’idée est de calculer les lois
d’adaptation en utilisant l’erreur par rapport à un algorithme de prédiction, puis d’ajouter un
filtre sur le signal de commande. Cette action de filtrage ajoute de la robustesse à la boucle fermée
et permet d’augmenter les taux d’adaptation sans détériorer la stabilité. Une autre alternative
consiste à utiliser le MRAC dit optimal [Nguyen et al., 2008] où un terme d’amortissement est
ajouté aux lois d’adaptation. Ce terme est calculé en résolvant un problème de contrôle optimal
où le coût est l’erreur de suivi à long terme pondérée, qui résulte en un facteur d’amortissement
additif sur la loi adaptative définie comme suit
˙
   
Θ̂ = ΓProj Θ̂, Φ e⊤ P − νΦ⊤ ΘB⊤ PA−1
m B (6.30)

On choisit d’appliquer cette solution pour sa facilité de mise en œuvre. À notre connaissance, il
s’agit de la première validation expérimentale du MRAC optimal.

6.3 Conditions Expérimentales


Le système considéré est un quadrirotor MK assemblé à l’ISAE (Figure 6.1) et présentant
les caractéristiques physiques suivantes.
• Masse m = 1, 5 kg.
• Moments d’inertie : Ix = 0, 015 kgm2 , Iy = 0, 014 kgm2 et Iz = 0, 0294 kgm2 .
• Actionneurs : Moteurs électriques sans balais fixés à des hélices rigides à pas fixe qui
peuvent tourner jusqu’à 5000 rpm en produisant une poussée maximale d’environ 7 N . Les
régulateurs de vitesse électriques (ESC) fonctionnent en boucle ouverte et leur dynamique
peut être approximée par un modèle linéaire du premier ordre dont la constante de temps
est égale à 0, 1 s.
• Puisque les ESC fonctionnent en boucle ouverte, la dépendance du PWM à la poussée
dépend également de la tension de la batterie. Cet effet est modélisé (cf. Section 5.5) et
pris en compte dans les modèles de commande.

Figure 6.1 – Quadrirotor expérimental utilisé

Le contrôleur de position est implémenté sur une station au sol qui communique avec le drone
en mode "off-board" par Wi-Fi. Le délai de communication est d’environ 40 ms. Le contrôle

77
Chapitre 6. Étude expérimentale sur le rejet des perturbations aérodynamiques pour les
drones multirotor

d’attitude est intégré dans un pilote automatique PX4 Pixhawk® . On utilise l’algorithme de
base du PX4 [Brescianini et al., 2013] qui se compose d’un contrôleur d’attitude géométrique en
cascade avec un contrôleur PID pour les vitesses angulaires. Les mesures de position et d’attitude
sont fournies par un système de capture de mouvement Optitrack® fonctionnant à 50 Hz.
La perturbation due au vent est générée par des ventilateurs d’un mètre de diamètre soufflant
chacun à une vitesse moyenne de 4 m/s à une distance d’un mètre du plan du ventilateur. Afin
de maximiser la perturbation due au vent, trois ventilateurs ont été placés comme indiqué
dans Figure 6.2. Avec cette configuration, une vitesse de vent d’environ 5 m/s a été atteinte

Figure 6.2 – Source de vent utilisée formée de trois ventilateurs brasseurs d’air

(mesurée à l’aide d’un anémomètre) à une distance d’un mètre des ventilateurs et à une hauteur
correspondant à leur intersection.

6.4 Réglage de Contrôleurs


Les performances d’un algorithme de contrôle varient considérablement en fonction du réglage
de ses paramètres. Cela rend la comparaison de différents contrôleurs délicate. Il est néanmoins
possible de mettre en place des performances théoriques équivalentes. Une façon de le faire est
d’utiliser des critères dépendant du temps en considérant la réponse à un échelon en position.
Par exemple un temps de réponse à 95% de 2.5 s pour un échelon de position de 1 m.

6.4.1 Contrôleur PI
Notons les pôles en boucle fermée pour un des trois sous-systèmes découplés (axes x, y et z)
2
comme −p et −ω0 ξ ± j 1 − ξ . Où p, ω0 et ξ sont tous des nombres réels positifs et ξ < 1.
p

Nous disposons alors de trois degrés de liberté, pour faciliter le choix fixons p = ξω0 et de cette
manière ω0 déterminera la bande passante du système en boucle fermée. Une façon possible
de fixer ces pôles est de considérer des critères de performance temporelle comme le temps de
réponse de 95% à une consigne en échelon. Une telle propriété est facile à relier aux pôles d’un
système du second ordre, mais est moins évidente pour une dynamique du troisième ordre (ce
qui est le cas avec l’intégrateur). Une règle simple consiste à multiplier ω0 par 1.5 si ξ = 0.9
(ce qui est le choix fait ici), le coefficient de multiplication devient un peu plus grand pour des
ξ plus petits, par exemple il est égal à 1.8 pour ξ = 0.7 et 1.65 pour ξ = 0.8. Cette astuce
numérique permet de garantir les critères de performance temporelle mentionnés précédemment
pour le système de troisième ordre, comme on peut le voir sur Figure 6.3.

78
6.4. Réglage de Contrôleurs

Step Response
1.5

To: Out(1)
1
System: 3^{rd} order
I/O: In(1) to Out(1)
0.5 Time (seconds): 2.45
Amplitude: 0.95

Amplitude
0

0.6
2 nd order
3 rd order

To: Out(2)
0.4

0.2

0 1 2 3 4 5 6
Time (seconds)

Figure 6.3 – Dynamique de la position et de la vitesse de référence avec (rouge) et sans (bleu)
intégrateur conçue pour un temps de réponse à 95% de 2, 5 s et un coefficient d’amortissement
de 0, 9.

6.4.2 Contrôleur ADRC


Dans le cas de cette approche de contrôle, la dynamique en boucle fermée à suivre est ex-
plicitement déterminée par le TD (cf. Section 6.2.2). Cette dynamique est choisie de la même
manière que le placement des pôles du PI figure 6.3. Quant aux gains de l’observateur ils peuvent
être calculés en utilisant la fréquence de coupure comme montré en Équation (6.16). Le choix
ce cette fréquence est basé sur un compromis entre une estimation rapide et précise et l’am-
plification des bruits de mesures ainsi que des oscillations dues aux retards et aux incertitudes
paramétriques inévitables. Dans le cas de cette étude expérimentale, un bon compromis a été
trouvé pour une fréquence égale à 1.1Hz.
La loi ADRC contient également des termes de rétroaction (cf. Équation (6.8)) dont les
gains peuvent aussi être reliés à une fréquence quand la structure de K is est donnée par
l’Équation (6.9), de la manière suivante :
( q
k1 = 4πξt ft
(6.31)
k2q = 4π 2 ft2

Où q ∈ {x, y, z}, ξt et ft définissent respectivement le coefficient d’amortissement et la fréquence


(Hz) désirés. Un choix correct est de fixer ξt à 0.9 et ft à 0.6. Voir le Chapitre 7 pour une analyse
plus détaillée du réglage de l’ADRC et de l’influence des différents gains sur les performances
en boucle fermée.

6.4.3 Contrôleur MRAC


Le modèle de référence pour le contrôleur MRAC est choisi pour obtenir la même réponse
au pas de temps que celle donnée par le TD (ou par le placement des pôles PI lorsque le
terme intégrateur est ajouté au MRAC). Le choix du gain d’adaptation Γ a été effectué de
façon entièrement expérimentale : la valeur est augmentée progressivement jusqu’à ce que des
oscillations commencent à apparaître, ce qui signifie que nous sommes proches de la limite de
robustesse.
Pour cette étude, une valeur appropriée du comportement d’adaptation a été trouvée pour
γ = 50 tout en introduisant la modification optimale avec un coefficient ν = 0, 1 afin de supprimer
le comportement oscillant et d’assurer la robustesse. La valeur γ est utilisée pour la diagonale
de la matrice de gain Γ introduite ci-dessus, sauf la valeur correspondant à uT qui a été fixée
à 1. En fait, le paramètre adaptatif de l’incertitude d’entrée s’avère plus sensible aux petites
variations de uT .

79
Chapitre 6. Étude expérimentale sur le rejet des perturbations aérodynamiques pour les
drones multirotor

6.4.4 Conclusion
En suivant les instructions de réglage données ci-dessus, on peut dire que les trois régulateurs
sont conçus pour produire des performances équivalentes sur la base de critères de réponses
temporelles. Pour vérifier cette "équivalence" entre les contrôleurs, on fait suivre le drone une
trajectoire en carrée définie par des consignes de position en échelon, les résultats sont sur la
Figure 6.4 où on voit que les contrôleurs produisent les mêmes réponses temporelles.
0.5

0
X (m)

-0.5
PI
ADRC
-1 MRAC
I-MRAC

-1.5
0 500 1000 1500 2000 2500
Samples

1.5

1
Y (m)

0.5

-0.5
0 500 1000 1500 2000 2500
Samples

-0.4

-0.6
Z (m)

-0.8

-1

-1.2
0 500 1000 1500 2000 2500
Samples

Figure 6.4 – Positions du drone en réponse aux mêmes échelons de position pour les différents
contrôleurs comparés

Cependant, il convient de noter que chaque algorithme possède une caractéristique unique :
PI possède le terme intégral, ADRC possède un observateur de perturbations, et MRAC possède
des termes non linéaires. Ainsi, l’analogie de performance temporelle faite ici n’est qu’approxi-
mative.

6.5 Résultats Expérimentaux


Pour la comparaison des capacités de rejet de perturbation nous considérons un scénario de
vol statique. Le vent souffle le long de la direction y du repère lié à la salle de vol. Une fois le
drone stabilisé à l’altitude où la vitesse de vent est maximale, les ventilateurs sont mis en marche
durant une trentaine de secondes. La perturbation créée correspond alors à un signal carré. La
performance des contrôleurs est évaluée en considérant la capacité de maintien de la position.

6.5.1 Résultats du rejet des forces de perturbations


La perturbation de la force estimée pendant l’application du vent pour le scénario de test
décrit ci-dessus peut être vue dans Figure 6.5. Cette estimation a une interprétation physique
valide car la masse du drone et la poussée du rotor sont assez bien connues. On peut également

80
6.5. Résultats Expérimentaux

voir que le drone n’est pas parfaitement centré et le déséquilibre de la force est également estimé,
ainsi que l’incertitude de la poussée (force sur z).

1.5
Fx
Fz
1 Fy

Disturbance Force (N)


0.5

-0.5

-1

-1.5
20 30 40 50 60 70
Time (s)

Figure 6.5 – Force de Perturbation estimée par l’observateur ESO

Trois types de critères sont considérés : l’erreur maximale de position MaxAE, l’erreur absolue
moyenne de position MAE et l’erreur quadratique moyenne de position MSE. Les différents
contrôleurs à comparer peuvent être représentés à l’aide du diagramme de Venn dans Figure 6.6.

PI
Integral
ADRC + PI MRAC MRAC
Observer

Figure 6.6 – Diagramme Venn des différents contrôleurs comparés dans ce chapitre

6.5.1.1 PI vs ADRC vs MRAC

0.04 PI
MAE (m)

MRAC
ADRC
0.02

0
X Y Z
0.1
MSE (m)

0.05

0
X Y Z
0.2
MaxAE (m)

0.1

0
X Y Z

Figure 6.7 – Comparaison des performances en maintien de position entre PI, ADRC and
MRAC

Il est intéressant de voir d’après Figure 6.7 et Figure 6.8 que le contrôleur PI est plus
performant que le contrôleur MRAC en termes d’erreur maximale et de couplage induit sur les
axes sans perturbation (x et z).

81
Chapitre 6. Étude expérimentale sur le rejet des perturbations aérodynamiques pour les
drones multirotor

0.06
PI
MRAC
0.04
ADRC

0.02

Z
0

-0.02

-0.04

-0.05

X 0.05 0.1 0.15 0.2


-0.05 0 0.05
-0.1
Y

Figure 6.8 – Comparaison des performances en maintien de position entre PI, ADRC and
MRAC - Vue 3D de l’erreur

6.5.1.2 Effet du terme Intégral


En ajoutant un terme intégral au MRAC, en adaptant son modèle de référence à celui du
troisième ordre (cf. Figure 6.3) et sans changer les gains d’adaptation Γ, les performances sont
remarquablement améliorées comme le montre Figure 6.10. Cet effet du terme intégral n’est pas
surprenant du point de vue de l’analyse fréquentielle des systèmes linéaires. En effet, bien que
les deux systèmes aient la même réponse temporelle, ils n’atténuent pas de la même manière
les signaux situés en dehors de leur bande passante. L’intégrateur ajoute plus d’atténuation
aux fréquences plus élevées, comme le montre la réponse fréquentielle en Figure 6.9 des deux
systèmes dont la réponse temporelle est représentée dans la Figure 6.3.

Bode Diagram
0

-10

-20

-30
Magnitude (dB)

-40

-50
2 nd order
-60 3 rd order

-70

-80

-90

-100
10-2 10-1 100 101 102
Frequency (rad/s)

Figure 6.9 – Diagrammes de Bode de la dynamique de référence avec (rouge) et sans (bleu)
intégrateur

6.5.1.3 I-MRAC vs ADRC


Les deux contrôleurs conduisent à des performances comparables comme le montrent Fi-
gure 6.12 et Figure 6.13. Le MRAC intégral pourrait être préférable car il conduit à moins de
couplage, bien que l’erreur maximale soit plus petite pour l’ADRC. D’un autre côté, l’ADRC
reste beaucoup plus facile à régler et à implémenter. Il convient de noter que ces performances
dépendent des valeurs des paramètres d’adaptation et d’estimation, et qu’aucune comparaison
claire entre les deux approches d’estimation des perturbations n’a été établie dans le cadre de
ce travail.

6.5.1.4 Augmentation du PI
Si on supprime les termes dépendants de l’état du contrôleur I-MRAC, il peut être considéré
comme une simple augmentation de PI. Ainsi, une alternative facile au MRAC ou à l’ADRC

82
6.5. Résultats Expérimentaux

0.04

MAE (m)
0.02

0
X Y Z
0.1

MSE (m)
0.05

0
X Y Z
0.2

MaxAE (m)
PI
0.1 I-MRAC

0
X Y Z

Figure 6.10 – Comparaison des performances en maintien de position entre PI et MRAC


intégral (I-MRAC)

0.04

PI
0.02 I-MRAC

0
Z

-0.02

-0.04
-0.05

X 0.05 0.1 0.15 0.2


-0.05 0 0.05
-0.1
Y

Figure 6.11 – Comparaison des performances en maintien de position entre PI et MRAC


intégral (I-MRAC) - Vue 3D de l’erreur

0.02
MAE (m)

0.01

0
X Y Z
0.04
MSE (m)

0.02

0
X Y Z
0.1
MaxAE (m)

ADRC
0.05 I MRAC

0
X Y Z

Figure 6.12 – Comparaison des performances en maintien de position entre ADRC et MRAC
intégral (I-MRAC)

serait d’ajouter un terme d’estimation des perturbations au contrôleur PI. Comme le montrent
Figure 6.15 et Figure 6.14, il est difficile de choisir la meilleure alternative dans les conditions
expérimentales considérées.
Notons que le contrôle adaptatif n’est pas ici utilisé à son plein potentiel, à savoir l’esti-
mation des incertitudes paramétriques (comme la masse). Le système étant assez bien connu,
la conception d’observateurs est pertinente et conduit sans surprise à des performances quasi
identiques à celles d’un estimateur basé sur l’optimisation d’une erreur en boucle fermée.
Il est également intéressant de noter qu’aucune différence de performance évidente n’est
observée entre l’utilisation de DO et d’ESO (les deux sont linéaires). ESO est cependant préféré

83
Chapitre 6. Étude expérimentale sur le rejet des perturbations aérodynamiques pour les
drones multirotor

0.04

ADRC
0.02 I-MRAC

Z
-0.02

-0.04
-0.05

X 0.15 0.2
0.05 0.05 0.1
-0.05 0
-0.1
Y

Figure 6.13 – Comparaison des performances en maintien de position entre ADRC et MRAC
intégral (I-MRAC) - Vue 3D de l’erreur

car il utilise des mesures de position qui sont moins bruités et plus précises que la vitesse.

0.04
MAE (m)

0.02

0
X Y Z
0.1
MSE (m)

0.05

0
X Y Z
0.2
MaxAE (m)

PI + ESO
0.1 PI + DO
PI + Adaptive

0
X Y Z

Figure 6.14 – Comparaison des performances en maintien de position entre différentes aug-
mentations du PI

0.04

PI + ESO
0.02 PI + DO
PI + Adaptive

0
Z

-0.02

-0.04
-0.05

X 0.05 0.1 0.15 0.2


-0.05 0 0.05
-0.1
Y

Figure 6.15 – Comparaison des performances en maintien de position entre différentes aug-
mentations du PI - Vue 3D des erreurs

6.5.2 Effet du rejet des couples perturbateurs


Les ventilateurs utilisés ne génèrent pas un flux aérodynamique laminaire, et en raison de
l’interaction avec le flux d’air des rotors, il s’avère que, en plus des forces, le drone est soumis
à des couples perturbateurs assez importants et ne pouvant pas être négligés. À la lumière de
l’analyse du contrôle de position, une solution facile et efficace de rejet des perturbations de

84
6.5. Résultats Expérimentaux

couple est d’augmenter le contrôleur PID utilisé avec un observateur ESO (en supposant que
l’inertie du drone est connue). Les résultats de cette modification sont montrés dans la suite.

0.04

MAE (m)
0.02

0
X Y Z
0.04

MSE (m)
0.02

0
X Y Z
MaxAE (m) 0.15
PI pos
0.1
PI pos + ESO att
0.05

0
X Y Z

Figure 6.16 – Effect of Torque Disturbance Rejection on Position Tracking performances

Position Tracking Error PI pos


0.05 PI pos + ESO att
X (m)

-0.05
25 30 35 40 45 50 55 60 65 70
Time (s)
0.2
Y (m)

-0.2
25 30 35 40 45 50 55 60 65 70
Time (s)
0.05
Z (m)

-0.05
25 30 35 40 45 50 55 60 65 70
Time (s)

Figure 6.17 – Effet du rejet de couple de perturbation sur le maintien de position

0.04
PI pos
PI pos + ESO att
0.02

0
Z

-0.02

-0.04
-0.05

X 0.05 0.1 0.15 0.2


-0.05 0 0.05
-0.1
Y

Figure 6.18 – Effet du rejet de couple de perturbation sur le maintien de position - Vue 3D de
l’erreur

D’après Figure 6.17, Figure 6.16 et Figure 6.18, il est clair que l’ajout du rejet du couple
au contrôleur d’attitude fait une grande différence, principalement sur l’erreur maximale où
une amélioration d’environ 50% peut être remarquée. Cela confirme que la perturbation du
vent perçue par le drone est constituée de composantes de force et de couple. En outre, le
rejet de la perturbation du couple affecte principalement le déplacement maximal, comme le
montre Figure 6.17, où les premier et dernier dépassements (correspondant aux moments où les
ventilateurs sont allumés et éteints) sont beaucoup plus lisses.

85
Chapitre 6. Étude expérimentale sur le rejet des perturbations aérodynamiques pour les
drones multirotor

La perturbation du couple estimée pendant l’application du vent est illustrée sur la Fi-
gure 6.19.

0.06
Roll
Pitch
Yaw
0.04

0.02

Torque (-1..1)
0

-0.02

-0.04

-0.06

-0.08
810 820 830 840 850 860 870 880 890 900
Time (s)

Figure 6.19 – Estimation des couples perturbateurs par l’observateur ESO

6.6 Conclusion
Une étude expérimentale comparative entre divers algorithmes de contrôle de multirotor
UAV a été présentée. Nous nous sommes concentrés sur le contrôle basé sur l’observation et
le contrôle adaptatif, et nous les avons comparés à un contrôleur PI de base qui utilise direc-
tement des consignes de position sans génération explicite de trajectoire afin de simplifier le
problème et de garder le focus sur les capacités de rejet des perturbations. Les différents contrô-
leurs ont été réglés de manière équivalente sur la base du même critère de réponse en temps
réel. Les résultats expérimentaux ont montré que l’ajout d’une action intégrale au contrôleur
adaptatif améliorait considérablement les performances de rejet des perturbations. De plus, les
observateurs de perturbations semblent apporter des capacités efficaces de rejet des perturba-
tions, principalement parce que les paramètres (masse et moteurs) du drone sont bien connus.
Ces observateurs peuvent également être utilisés en combinaison avec un contrôleur PID, ce qui
permet d’avoir des performances équivalentes au contrôle adaptatif intégral. Enfin, l’ajout d’un
observateur de perturbations au contrôleur d’attitude a conduit à une amélioration significative
des performances. Ce qui montre l’importance de rejet de couples perturbateurs sur les drones
multirotor.
A la lumière de cette comparaison expérimentale nous faisons le choix de creuser la technique
de contrôle ADRC qui représente les avantages suivant :
• Facilité d’intégration dans la structure hiérarchique du contrôleur de vol PX4
• Performances équivalentes au contrôleur I-MRAC, quand les paramètres du système sont
suffisamment bien connus
• Facilité de réglage grâce à la signification physique des différents gains des observateurs
(des critères fréquentiels peuvent être utilisés)
Dans le chapitre suivant, nous étudions les propriétés de ce type de contrôleur et nous proposons
une amélioration pour s’affranchir de ses limitations et pouvoir l’adopter comme une technique
alternative aux PID pour des applications industrielles.
Nous tenons à signaler, qu’en dépit des résultats plutôt mitigés des contrôleurs adaptatifs, il
serait hâtif de conclure leur infériorité par rapport à l’ADRC pour diverses raisons qui ont été
évoquées et que nous rappelons ici. D’abord, la robustesse aux incertitudes paramétriques que
confère le MRAC n’a pas été exploitée vu qu’on s’est limité à la dynamique de position et que
la masse du drone est bien connue, ainsi que le modèle de poussée de ses moteurs. Ensuite, la
raison pour laquelle les dépendances de la force perturbation de l’état du drone (notamment ses
vitesses) n’apportaient pas une amélioration des performances pourrait être la faible magnitude
des vitesses de vol et de vent atteintes dans le cadre de l’expérience. Puis, il est probable que le

86
6.6. Conclusion

MRAC serait plus efficace sur la boucle d’attitude, étant donné la turbulence des perturbations
appliquées. Enfin, le réglage des gains d’adaptation que nous proposons est expérimental et il
serait intéressant de travailler sur des méthodologies rigoureuses de réglage. Il n’en demeure pas
moins que les contrôleurs MRAC sont plus complexes à mettre en œuvre et à faire fonctionner
en pratique, et de ce fait seraient moins adaptées à des applications industrielles.

87
Chapitre 7

Amélioration robuste du Contrôle


par Rejet Actif de Perturbation
(ADRC)

Introduction
En se basant sur les études bibliographiques et expérimentales que nous avons effectuées,
nous estimons que la technique Active Disturbance Rejection Control peut s’imposer comme
une alternative viable aux contrôleurs PID. Ce qui rend l’ADRC attrayant est l’amélioration des
capacités de suivi de trajectoire et de rejet des perturbations qu’il permet tout en demandant
une connaissance minimale du système. Bien qu’en théorie des incertitudes modérées sur les
quelques paramètres système requis n’affectent pas la stabilité de la boucle fermée de l’ADRC,
elles peuvent entraîner en pratique une détérioration des performances et peuvent conduire à des
oscillations dangereuses qui conduisent à l’instabilité. Nous proposons un ADRC robuste pour
les drones multirotor qui permet de maintenir les performances en dépit de grandes incertitudes
sur les paramètres du système, et ce sans modifier le réglage initial des gains de contrôle. Les
résultats de la simulation et des essais en vol viennent étayer les conclusions théoriques.

7.1 Aperçu de la littérature


L’ADRC est une technique de contrôle bien établie qui a été décrite et testée de manière
approfondie, elle a été introduite par Han qui a donné son dernier schéma dans [Han, 2009].
Un aperçu rapide est donné ici, mais le lecteur peut se référer à [Guo and Zhao, 2016] ou à
[Shao and Gao, 2016] pour plus de détails. Dans [Shao and Gao, 2016] notamment, la validité
du principe fondamental de séparation entre la conception du contrôleur et celle de l’observateur
est démontrée et où l’effet de la dérivée temporelle de la perturbation sur la stabilité est étudié.
Les principaux composants de ce contrôleur sont un différentiateur de suivi (Tracking Diffe-
rentiator TD), permettant de construire une référence lisse ainsi que sa dérivée temporelle, un
terme de retour d’erreur pour suivre la référence, et un observateur d’état étendu (Extended
State Observer ESO) pour estimer la perturbation. L’action de rejet consiste simplement à re-
tirer cette estimation de la perturbation du signal de commande, après l’avoir re-dimensionnée
par le gain d’entrée du système. Dans le cas d’un drone multirotor, ce paramètre est l’inverse de
l’inertie ou de la masse car les signaux de commande sont le couple et la force d’actionnement.
En plus de la connaissance requise de la masse et de l’inertie, et afin de trouver l’estimation
de la perturbation, une bonne connaissance de la force et du couple d’actionnement réellement
appliqués est supposée. Ce n’est malheureusement jamais le cas dans la pratique. En fait, pour
revenir à l’exemple du drone multirotor, les poussées et les couples réels produits par les hélices
ne peuvent pas correspondre exactement à ceux demandés par le contrôleur parce que la dyna-
mique des moteurs est généralement inconnue, ou au mieux approximée par un modèle linéaire,
sans compter que la fonction reliant les signaux PWM (ou RPM) à la poussée et au couple des
rotors est généralement approximative et n’est précise qu’en conditions de vol stationnaire. En

88
7.1. Aperçu de la littérature

vol vers l’avant ou dans des conditions de vent, les performances aérodynamiques des hélices qui
sont affectées ne peuvent pas être uniquement liées aux vitesses des moteurs. Ces effets combinés
peuvent être modélisés comme une incertitude multiplicative sur le signal de commande, qui est
une incertitude supplémentaire à celle due à la masse et à l’inertie.

Cela soulève quelques questions sur la robustesse de ce schéma de contrôle alors que la
connaissance de ce système n’est que partiellement disponible et incertaine. Ces aspects de
stabilité ont été étudiés dans plusieurs travaux. Par exemple dans [Castillo et al., 2017], les
conditions de stabilité basées sur des Inéquations Matricielles Linéaires (LMI) sont formulées
et une procédure d’optimisation pour trouver un contrôle valide et des gains d’observateurs en
conséquence est proposée, mais les paramètres de la matrice d’entrée sont supposés être connus.
Dans [Li et al., 2017] cependant, une augmentation robuste pour l’ADRC est proposée, permet-
tant de traiter les incertitudes paramétriques. Toujours dans [Zhou and Tan, 2018], l’effet du
paramètre de gain d’entrée est étudié et il est montré qu’il n’est pas un élément essentiel pour
le rejet des perturbations, tant que le paramètre de contrôle et d’observation est ajusté pour
éliminer l’effet d’une incertitude sur ce paramètre. Dans ce travail, cependant, nous adoptons
une autre approche, nous voulons commencer avec un schéma ADRC nominal conçu pour un
paramètre d’entrée fixe (meilleures connaissances disponibles) et essayer d’améliorer toute in-
certitude par la suite. Des travaux supplémentaires sur les principes généraux de stabilité de
l’ADRC sont également disponibles, comme par exemple [Ahi and Haeri, 2018] où il est montré
que la limite de la dérivée de la perturbation totale n’est pas suffisante pour assurer la stabilité
de l’ADRC en raison de l’effet des incertitudes. Comme dans l’article précédent, le paramètre
de gain d’entrée est censé être un paramètre d’accord supplémentaire et sa valeur réelle est
supposée être connue.

Dans ce travail, nous nous concentrons sur la stabilité et les performances de l’ADRC pour
les drones multirotor lorsque les incertitudes paramétriques ne sont pas négligées. L’ADRC a
déjà été appliqué avec succès pour le contrôle de ce type de véhicules aériens, principalement
sur la boucle de contrôle d’attitude comme dans [Castillo et al., 2016], [Yang et al., 2018], [Yuan
et al., 2019] et [Castillo et al., 2019] ou d’attitude et d’altitude comme dans [Lechekhab et al.,
2020], mais aussi pour le contrôle de position et d’attitude comme dans [Zhang et al., 2018]
et [Xu et al., 2020]. Il a été démontré que les incertitudes sur les paramètres du modèle (les
incertitudes de masse, d’inertie et d’efficacité d’actionnement) peuvent être traitées comme des
perturbations supplémentaires à estimer par l’observateur et qu’elles n’affectent pas la stabilité
dans certaines conditions (existence de limites supérieures). Toutefois, peu d’attention a été
accordée à l’influence de ces incertitudes, presque inévitables pour les véhicules multirotors,
sur les performances globales du contrôleur. Voici néanmoins quelques travaux qui traitaient
explicitement des incertitudes dans le processus de conception : Dans [Chen et al., 2020], l’effet
des incertitudes (entre autres) est atténué de manière innovante en ajoutant des contraintes
de performance transitoires sur les estimations des observateurs. Une approche différente est
adoptée dans [Shao et al., 2017] où des incertitudes non linéaires supplémentaires (généralement
des couples aérodynamiques) sont estimées à l’aide d’un réseau de neurones dont le résultat est
utilisé à l’intérieur de l’observateur de la perturbation, mais l’effet de l’incertitude sur la matrice
d’entrée n’est pas pris en compte.

Dans ce travail, nous analysons l’effet de la non-concordance des modèles et nous appliquons
l’approche proposée dans [Jasim and Veres, 2020] pour rendre l’ADRC insensible aux incertitudes
paramétriques.

89
Chapitre 7. Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC)

7.2 Comparaison entre contrôleurs PID et ADRC


On considère le système linéaire de second ordre suivant pouvant représenter la dynamique
d’altitude ou d’un angle de rotation du drone (hypothèse de petits angles).



 ẋ =v



(7.1)


 v̇ = α(uact + σ)
1
= τact (u − uact )

u̇act

Où α représente le gain du système, il est égal à l’inverse de l’inertie (ou de la masse) J et


éventuellement multiplié par la force ou le couple maximal atteignable sur l’axe considéré umax
afin d’avoir des entrées de commande normalisées
umax
α= (7.2)
J
Auquel cas σ sera une perturbation externe normalisée par l’effort maximal réalisable par les
moteurs.
Les sorties de ce système sont x et v qui sont soient mesurées soit estimés par un estimateur
externe (typiquement un filtre de Kalman) supposé sans retard (donc équipé d’un prédicteur).
Les deux lois de commande que nous allons comparer s’écrivent de la manière suivante.
Le contrôleur PID : Z
u = uP ID = kp (vsp − v) − kd v̇ + ki (vsp − v) (7.3)


vsp = k (xsp − x) (7.4)

Le contrôleur ADRC :
1
u = uADRC = v̇ref + kt (vref − v) − σ̂ (7.5)

α̂

• vref et v̇ref sont générés par un TD, qui est un filtre linéaire de fréquence de coupure
fT D . Par exemple si ce filtre est de premier ordre, on aura
1
v̇ref = (vsp − vref ) (7.6)
2πfT D

Avec vsp donné par l’Équation (7.4).


• σ̂ est généré par un observateur ESO réglé pour avoir comme bande passante une fré-
quence fESO . Cet observateur peut être de second ordre ou de troisième ordre selon les
mesures à disposition (en général pour la position l’état x est mesuré, et pour les angles,
c’est plutôt l’état v. Nous considérons ici ce dernier cas afin de simplifier l’analyse de la
boucle fermée (sans perte de généralité).

v̂˙



 = α̂ (ûr + σ̂) + l0 (v − v̂)

 | {z }

(7.7)

 σ̂˙ = l1
α̂ ṽ
û˙ 1

= (u − ûact )

act τ̂act

avec
l0 = 4πfESO l1 = 4π 2 fESO
2
(7.8)
• α̂ est une estimation de α
• τ̂act est une estimation de τact

90
7.2. Comparaison entre contrôleurs PID et ADRC

7.2.1 Analyse de la partie suivi de trajectoire


Hypothèses
• Les paramètres α et τact sont parfaitement connus α̂ = α et τ̂act = τact
• Le système n’est supposé soumis à aucune perturbation externe au stade de conception
de loi de commande et donc les algorithmes ne sont pas équipés pour y résister. Plus
précisément, ki = 0 et fESO = 0
• Le terme dérivé du PID kd est égal à 0 (se référer à la Annexe A.2 pour comprendre
l’effet de ce terme et pourquoi on peut s’en passer pour cette analyse comparative)
En identifiant les termes restant dans les équations 7.3 et 7.5, on trouve que pour avoir une
équivalence parfaite entre les deux lois de contrôle (sans rejet de perturbation), il faut avoir

= 2πfT D
(
kt
(7.9)
2πfT D = α̂kp

Le choix de kp (ou de manière équivalente de fT D ), ainsi que de k, va dépendre des performances


de suivi de consigne qu’on veut atteindre. Ces deux gains peuvent être obtenus par placement
de pôles sur un système linéaire de second ordre, en choisissant coefficient d’amortissement ρ et
un temps de réponse à 95% que l’on note tr95% , de la manière suivante

γ(ρ)
k = 2tr95% ρ
4kρ2
(7.10)
kp = α̂

Où γ est la fonction reliant l’amortissement du second ordre au temps de réponse réduit, qui
est assez bien documenté et accessible sur une abaque. Les valeurs typiques qui nous intéressent
sont γ(0.7) = 3, γ(0.9) = 4 et γ(1) = 5.
Vérifions ces résultats sur l’application numérique suivante, qui peut représenter un axe de
rotation roulis/tangage.
• τact = 0.1s
• α = 933.34 rad.s−2
• ρ = 0.9 et tr95% = 1s, ce qui donne k = 2.22 et kp = 0.0077
Quand l’Équation (7.9) est respectée, et dans les conditions citées plus haut (notamment l’ab-
sence des termes de rejet de perturbation) les deux boucles fermées résultantes sont équivalentes
comme le montrent leurs lieux des racines sur la Figure 7.1, et leurs réponses temporelles (Fi-
gure 7.2) à des entrées en échelon sur la consigne xsp et la perturbation σ Jusqu’ici les capacités
de suivi de trajectoire de l’ADRC ne sont pas entièrement exploitées, en effet le terme de "tra-
cking" ajouté par le gain kt est annulé afin de permettre cette équivalence parfaite avec le PID.
Regardons alors l’effet de ce paramètre.

Cas 1 kt = 0.1α̂kp Comme le montre les Figures 7.3 et 7.4, quand le gain kt est plus bas
que le niveau assurant l’équivalence avec le PID, les performances du système se dégradent car
il devient moins réactif (le suivi de trajectoire est moins précis et le rejet de perturbations est
moins efficace).

Cas 2 kt = 10α̂kp Comme le montre les Figures 7.5 et 7.6, quand le gain kt est plus haut
que le niveau assurant l’équivalence avec le PID, les performances du système s’améliorent car
il devient plus réactif (le suivi de trajectoire est plus précis et le rejet de perturbations est plus
efficace). Cependant on remarque l’apparition d’oscillations au niveau du signal de commande
qui devient plus agressif (ce qui se voit aussi sur le lieu des racines Figure 7.5 où les pôles en
provenance de la dynamique des actionneurs tendent vers des amortissement faibles de 0.2). Et
donc ce terme doit être augmenté avec précaution en pratique.
Regardons plus précisément comment évoluent les pôles de la boucle fermée quand kt varie
entre les deux cas extrêmes présentés ci-haut. Jusqu’ici nous avons analysé le cas où l’ADRC
est réglé pour atteindre la même dynamique que le PID, ce qui est en quelque sorte pénalisant
pour le premier. Regardons ce qui se passe quand la dynamique demandée est beaucoup plus

91
Chapitre 7. Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC)

8
0.74 0.6 0.46 0.34 0.22 0.1
ADRC
6 0.86 PID

4
0.96
2

10 8 6 4 2
0

-2
0.96
-4

-6 0.86

0.74 0.6 0.46 0.34 0.22 0.1


-8
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0

Figure 7.1 – Lieu des racines des boucles fermées avec les contrôleurs PID (en bleu) et ADRC
(en rouge) - Tous les pôles du PID coïncident ici avec ceux de l’ADRC

Step Response Step Response


From: x sp From:
1 40
To: x

To: x

0.5 20

0 0
4 100
To: v

To: v

2 0
Amplitude

Amplitude

0 -100
0.01 0
To: ur

To: ur

0 -0.5

-0.01 -1
1 1
est

est

PID PID
0 ADRC 0 ADRC
To:

To:

-1 -1
0 1 2 3 0 0.5 1 1.5 2 2.5
Time (seconds) Time (seconds)

Figure 7.2 – Réponse temporelles des boucles fermées avec les contrôleurs PID (en bleu) et
ADRC (en rouge) - Signaux exactement superposés

rapide, par exemple tr95 = 0.3s et dans le cas où kt = 10α̂kp . Comme le montre les Figures 7.7
et 7.8, le PID est incapable d’atteindre cette dynamique qui est très proche de celle du moteur
et devient très dangereusement oscillatoire, ce qui n’est pas le cas pour l’ADRC grâce justement
à son terme additionnel de tracking (gain kt qui a été boosté ici).

7.2.2 Analyse de la partie rejet de perturbation


Ajoutons maintenant dans la boucle l’observateur ESO pour l’ADRC et le terme intégral
pour le PID afin d’analyser leurs capacités à rejeter les perturbations. Afin d’établir une équi-
valence entre ces deux termes, nous considérons comme avant des critères fréquentiels. En effet
la fréquence de coupure de l’ESO (définie dans l’Équation (7.7)) peut être aussi utilisée pour

92
7.2. Comparaison entre contrôleurs PID et ADRC

8
0.84 0.72 0.58 0.44 0.3 0.14
ADRC
6 0.92 PID

4
0.98
2

14 12 10 8 6 4 2
0

-2
0.98
-4

-6 0.92

0.84 0.72 0.58 0.44 0.3 0.14


-8
-14 -12 -10 -8 -6 -4 -2 0

Figure 7.3 – Lieu des racines des boucles fermées avec les contrôleurs PID (en bleu) et ADRC
(en rouge) quand kt = 0.1α̂kp

Step Response Step Response


From: x sp From:
2 400
To: x

To: x

1 200

0 0
5 200
To: v

To: v

0 100
Amplitude

Amplitude

-5 0
0.01 0
To: ur

To: ur

0 -0.5

-0.01 -1
1 1
est

est

PID PID
0 ADRC 0 ADRC
To:

To:

-1 -1
0 1 2 3 0 2 4 6 8
Time (seconds) Time (seconds)

Figure 7.4 – Réponse temporelles des boucles fermées avec les contrôleurs PID (en bleu) et
ADRC (en rouge) quand kt = 0.1α̂kp

déterminer la valeur du gain intégral comme suit

ki = 2πfESO kp (7.11)

Si on augmente cette fréquence, le rejet de perturbation va être de plus de plus rapide, mais
dans le cas du PID cette dynamique va aussi impacter le suivi de trajectoire voire la stabilité
du système comme on peut le voir sur la Figure 7.9. On remarque notamment que dans le cas
de l’ADRC le couple de pôle fixés pour le suivi de trajectoire ne bouge pas, en effet, avec une
connaissance parfaite du système, l’estimation de perturbation est totalement découplée du reste
de la loi de commande et sa dynamique peut être augmentée sans contraintes sur la stabilité (ceci
n’est plus le cas quand le comportement des moteurs devient incertain comme sera démontré
par la suite). En terme de bande passante l’Équation (7.11) permet d’avoir l’équivalence entre

93
Chapitre 7. Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC)

30
30
0.28 0.19 0.135 0.095 0.06 0.03 25
ADRC
0.4 PID
20
20
15

10
10 0.7
5

5
-10 0.7
10

15
-20
0.4 20

0.28 0.19 0.135 0.095 0.06 0.03 25


-30
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 30 0

Figure 7.5 – Lieu des racines des boucles fermées avec les contrôleurs PID (en bleu) et ADRC
(en rouge) quand kt = 10α̂kp

Step Response Step Response


From: x sp From:
2 40
To: x

To: x

1 20

0 0
4 100
To: v

To: v

2 0
Amplitude

Amplitude

0 -100
0.02 0
To: ur

To: ur

0 -0.5

-0.02 -1
1 1
est

est

PID PID
0 ADRC 0 ADRC
To:

To:

-1 -1
0 1 2 3 0 0.5 1 1.5 2 2.5
Time (seconds) Time (seconds)

Figure 7.6 – Réponse temporelles des boucles fermées avec les contrôleurs PID (en bleu) et
ADRC (en rouge) quand kt = 10α̂kp

les deux contrôleurs. On se rend compte cependant que cela donne une estimation temporelle de
perturbation plus rapide dans le cas du PID (c’est à dire le terme intégral). Ce qui est normal
puisque l’ESO est un second ordre et donc à une bande passante égale il donne une réponse plus
lente qu’un premier ordre. Pour permettre une comparaison plus juste il faut alors considérer un
critère temporel sur le temps de réponse d’estimation de perturbation. Ce qui revient à multiplier
le gain intégral par 0.6.

94
7.2. Comparaison entre contrôleurs PID et ADRC

50
50
0.23 0.16 0.115 0.08 0.05 0.025
ADRC40
40 PID
0.36
30
30
20
20 0.6
10
10

-10
10
-20 0.6
20
-30
30
0.36
-40
40
0.23 0.16 0.115 0.08 0.05 0.025
-50
-14 -12 -10 -8 -6 -4 -2 50 0

Figure 7.7 – Lieu des racines des boucles fermées avec les contrôleurs PID (en bleu) et ADRC
(en rouge) quand kt = 10α̂kp

Step Response Step Response


From: x sp From:
2 5
To: x

To: x

0 0
10 50
To: v

To: v

0 0
Amplitude

Amplitude

-10 -50
0.2 0
To: ur

To: ur

0 -0.5

-0.2 -1
1 1
est

est

PID PID
0 ADRC 0 ADRC
To:

To:

-1 -1
0 2 4 6 0 2 4 6
Time (seconds) Time (seconds)

Figure 7.8 – Réponse temporelles des boucles fermées avec les contrôleurs PID (en bleu) et
ADRC (en rouge) quand kt = 10α̂kp

7.2.3 Analyse de robustesse aux incertitudes sur les paramètres


7.2.3.1 Paramètre α

Le paramètre α ne peut pas être parfaitement connu, et il peut changer au cours du fonction-
nement du système. Il est alors important de comprendre comment se comporte la boucle fermée
quand l’estimation du paramètre utilisé pour la conception de la loi de commande s’éloigne de
la vraie valeur.

Cas du contrôleur PID Comme le montre les Figures 7.11 et 7.12, une grande surestimation
de α peut rendre le système instable.

95
Chapitre 7. Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC)

10
10
0.72 0.58 0.44 0.32 0.22 0.1
ADRC 8
8
PID
6
6 0.86
4
4
0.96 2
2

-2
0.96 2
-4
4
-6 0.86
6
-8
8
0.72 0.58 0.44 0.32 0.22 0.1
-10
-10 -8 -6 -4 -2 100 2

Figure 7.9 – Lieu des racines des boucles fermées quand la fréquence d’estimation de per-
turbation varie de 1 rad/s à 10 rad/s (les couleurs de plus en plus claires correspondent aux
fréquences de plus en plus élevée)

Step Response Step Response


From: x sp From:
2 20
To: x

To: x

1 0

0 -20
5 100
To: v

To: v

0 0
Amplitude

Amplitude

-5 -100
0.02 0
To: ur

To: ur

0 -0.5

-0.02 -1
0.01 PID 1 PID
ADRC
est

est

ADRC
0 0.5
To:

To:

-0.01 0
0 2 4 6 0 2 4 6
Time (seconds) Time (seconds)

Figure 7.10 – Réponse temporelles des boucles fermées avec les contrôleurs PID (en bleu) et
ADRC (en rouge) quand fESO = 0.7958

Cas du contrôleur ADRC La même incertitude sur α ne conduit pas la boucle fermée
ADRC à l’instabilité (Figure 7.13). Cependant celle-ci arrive pour des intervalles d’incertitudes
plus larges (Figure 7.14).
À partir des Figures 7.11 et 7.13, on peut déduire les différences entre la sous-estimation
et la sur-estimation de α sur le comportement de la boucle fermée. D’une part, quand on sur-
estime α le système devient de plus en plus lent (points rouges de plus en plus sombres) : la
dynamique du système étant sur-évaluée, les gains du contrôleur sont trop faibles. D’autre part,
la sous-estimation de α ne modifie pas considérablement la bande passante du système, mais
amplifie les oscillations (amortissement de plus en plus faible), ce qui en pratique peut conduire
à l’instabilité. Ceci s’explique par le fait que du point de vue du contrôleur le système est moins

96
7.2. Comparaison entre contrôleurs PID et ADRC

30
30 0.32
0.23 0.16 0.115 0.07 0.035 25

20
20
0.48
15

10
10
0.75
5

5
0.75
-10
10

15
0.48
-20
20

0.23 0.16 0.115 0.07 0.035 25


-30 0.32
-10 -8 -6 -4 -2 300 2

Figure 7.11 – Lieu des racines de la boucle fermée PID quand le rapport α
α̂ varie de 0.1 à 10

15 0.56 14
0.42 0.32 0.22 0.14 0.07
12
10
10
0.74 8
6
5 0.9 4
2

2
-5 0.9 4
6
0.74 8
-10
10
12
0.42 0.32 0.22 0.14 0.07
-15 0.56 14
-10 -8 -6 -4 -2 0 2

Figure 7.12 – Lieu des racines de la boucle fermée PID quand le rapport α
α̂ varie de 0.01 à 2

réactif qu’il ne l’est vraiment, et les gains calculés sont alors plus élevés que nécessaire.

97
Chapitre 7. Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC)

40
40
0.21 0.15 0.105 0.07 0.044 0.0235
30
30 0.32
25
20
20
15
0.55
10
10
5

5
-10
10
0.55
15
-20
20
25
-30 0.32
30
0.21 0.15 0.105 0.07 0.044 0.0235
-40
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 40 0

Figure 7.13 – Lieu des racines de la boucle fermée ADRC quand le rapport α
α̂ varie de 0.1 à 10

20
20
0.46 0.34 0.24 0.17 0.11 0.0517.5
15
15
12.5
0.62
10
10
7.5
0.84 5
5
2.5

2.5
-5
0.84 5
7.5
-10
10
0.62
12.5
-15
15
0.46 0.34 0.24 0.17 0.11 0.0517.5
-20
-10 -8 -6 -4 -2 200 2

Figure 7.14 – Lieu des racines de la boucle fermée ADRC quand le rapport α
α̂ varie de 0.01 à 2

7.2.3.2 Paramètre τact


Il est clair d’après les Figures 7.15 et 7.16 que le contrôleur ADRC est moins sensible à
la dynamique moteur que le contrôleur PID (les deux étant réglés de manière équivalente en
supposant une constante de temps τ̂act = 0.1s).
On devine à partir de la Figure 7.15 que la boucle fermée ADRC va atteindre l’instabilité
pour des valeurs plus importantes du rapport ττ̂act act
. Par essais et erreurs, on trouve que cette
valeur déstabilisante est égale à ττ̂act
act
= 3 pour le PID et τ̂τact
act
= 5 pour l’ADRC. Ce dernier est
réglé tel que kt = 2α̂kp , mais il est possible d’exploiter ce degré de liberté supplémentaire. En
effet, si kt = 10α̂kp alors ce rapport déstabilisant monte jusqu’à τ̂τact act
= 9. Il s’agit d’un apect
très intéressant de la robustesse de l’ADRC. Les lieux de racines avec ce nouveau réglage plus
avantageux pour l’ADRC est présenté sur la Figure 7.17.

98
7.2. Comparaison entre contrôleurs PID et ADRC

15
14
0.56 0.42 0.32 0.22 0.14 0.07
PID
ADRC12

0.74 10
10
8

6
0.9
5
4

4
-5
0.9
6

8
-10
0.74 10

12

0.56 0.42 0.32 0.22 0.14 0.07


14
-15
-12 -10 -8 -6 -4 -2 0

Figure 7.15 – Lieux des racines des boucles fermées ADRC et PID quand τ̂τact
act
varie de 0.5 à
2.5 (les couleurs de plus en plus sombres correspondent à une constante de temps de plus en
plus élevée)

Step Response Step Response


From: x sp
From:
2 50
To: x

To: x

1 0

0 -50
5 100
To: v

To: v

0 0
Amplitude

Amplitude

-5 -100
0.02 0
To: u r

To: u r

0 -0.5

-0.02 -1
10-3
5 1
To: est

To: est

PID PID
0 ADRC 0.5 ADRC

-5 0
0 10 20 30 0 10 20 30
Time (seconds) Time (seconds)

Figure 7.16 – Réponse temporelles des boucles fermées avec les contrôleurs PID (en bleu) et
ADRC (en rouge) quand τact = 2.5τ̂act

7.2.4 Conclusion
Les deux résultats principaux à retenir de cette comparaison sont :
• L’ADRC est supérieur au PID, quand le terme dérivé est négligé, grâce à sa dynamique
d’observation des perturbations indépendante du suivi de trajectoire et à son degré de
liberté supplémentaire kt qui permet de réduire l’erreur de suivi et par effet de rétroaction
de résister aux perturbations et incertitudes.
• L’ADRC est robuste aux incertitudes paramétriques en plus des perturbations exogènes.

99
Chapitre 7. Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC)

30
30
0.32
0.23 0.16 0.115 0.07 0.035
PID
25
ADRC

20
20
0.48
15

10
10
0.75
5

5
0.75
-10
10

15
0.48
-20
20

25
0.23 0.16 0.115 0.07 0.035
0.32
-30
-10 -8 -6 -4 -2 300 2

Figure 7.17 – Lieux des racines des boucles fermées ADRC et PID quand varie de 1 à 8 τact
τ̂act
avec kt = 10α̂kp (les couleurs de plus en plus sombres correspondent à une constante de temps
de plus en plus élevée)

Mais la dynamique de la boucle fermée avec de grandes incertitudes sur les paramètres (α
et τact ) est très différente de la dynamique désirée, et dans certains cas elle peut devenir
instable si ces incertitudes sont importantes.

7.3 ADRC Robuste aux incertitudes paramétriques


7.3.1 Théorie
Afin de rendre l’ADRC moins sensible aux incertitudes paramétriques, nous nous inspirons
de l’approche proposée dans [Jasim and Veres, 2020]. Elle consiste à ajouter un terme "robuste"
ur à la loi de commande qui garantit que le système restera stable si les incertitudes ne dépassent
pas une limite supérieure connue à l’avance. Nous étendons la méthode aux systèmes ayant une
dynamique d’erreur d’estimation en plus de celle du suivi de trajectoire, ce qui est le cas de
l’ADRC.
Formalisons d’abord la dynamique de l’erreur du système en boucle fermée. Comme la per-
turbation est supposée appariée (en anglais matched disturbance), c’es-à-dire qu’elle entre le
système via le même canal que le signal de commande, et que les incertitudes paramétriques (α
et τact ) ne figurent aussi que sur l’équation de vitesse (le lien entre la position (ou l’angle) et la
vitesse étant cinématique exact), alors nous nous limitons à cette dynamique (de vitesse) pour
la conception de ce terme robuste.  

Soit η le vecteur des erreurs η = σ̃ , où ξ = vref − v et ṽ = v − v̂. La combinaison des
 
ξ
équations 7.1 (sans la dynamique moteur) 7.5 et 7.7 conduit à l’équation de dynamique d’erreur
globale suivante :

0
     
−l0 α −δkt −1
η̇ = − lα1 (1 − δ) 0 0 η +   ref 1 σ̇
0 δ v̇ + (7.12)
     

0 −α − (1 − δ) kt 1 0
| {z }
A

100
7.3. ADRC Robuste aux incertitudes paramétriques


α
δ =1− ≤1 (7.13)
α̂
La stabilité du système dépend donc des valeurs propres de la matrice A qui dépendent des
paramètres de contrôle et d’observation mais aussi de δ, donc de α̂α (et pas directement de α).
C’est ce qui a été analysé dans la Section 7.2.3.1. Nous avons retenu que le cas le plus critique
pouvant conduire à l’instabilité est quand α est surestimé, c’est-à-dire quand δ > 0.
En plus de l’effet de δ sur la stabilité, il fait également entrer la perturbation v̇ref dans
le système (voir Équation (7.12), deuxième addition). Cependant, cet effet peut être atténué
puisqu’on a la main sur ce signal et qu’il disparaît également en régime permanent (dans la
plupart des cas de fonctionnement).
Notons que toute cette analyse est faite dans le cas d’une perturbation qui ne dépend pas de
l’état (hypothèse usuelle pour l’ESO). Si ça n’est pas le cas et si, par exemple, un effet de traînée
est ajouté (le système n’est donc plus une chaîne d’intégrateurs comme on le suppose pour la
conception de l’ESO), l’analyse de stabilité devient beaucoup plus difficile, même dans le cas
où le système reste linéaire (avec une simple composante de traînée linéaire), la matrice A ne
sera plus la même et sa stabilité ne pourra pas être garantie, comme le montre l’article [Ahi and
Haeri, 2018]. Cette situation peut être encore aggravée lorsque les incertitudes paramétriques
sont importantes (notamment lorsqu’elles conduisent à des valeurs de δ proches de 1). Toutes
ces limitations de l’ADRC justifient l’augmentation robuste que nous introduisons ici.
Avec ce nouveau terme de contrôle ur , l’Équation (7.5) devient :
1
u= v̇ref + kt (vref − v) − σ̂ + ur (7.14)

α̂
Pour calculer ce terme supplémentaire, on utilise la méthode de Lyapunov. Pour ce faire, ré-
écrivons la dynamique des erreurs uniquement en termes d’erreurs mesurables
" # (donc sans σ̃ qui

est alors considéré comme une perturbation au système). Soit ψ = l’erreur mesurable, la
ξ
dynamique est alors donnée par :
" # " #
−l0 −δkt −1
ψ̇ = ψ+ (7.15)

δ v̇ref − ασ̃ − αur
0 − (1 − δ) kt 1
| {z } | {z }
A E1

Mais A comprends aussi des incertitudes et ne peut pas être utilisée "pour la conception.
# " Cete
#
−l0 0 0 −δkt
matrice est alors décomposée de la manière suivante A = A0 + δA = + .
0 −kt 0 δkt
Ce qui donne, après injection dans l’Équation (7.15) :
 
ψ̇ = A0 ψ + E1 δ v̇ref + kξ − ασ̃ − αur (7.16)


Nous introduisons à ce stade la fonction de Lyapunov candidate V = ψ ⊤ P0 ψ où P0 est une


matrice symétrique définie-positive qui résout l’équation de Lyapunov associée à la stabilité de
A0
P0 A0 + A⊤ 0 P0 = −Q (7.17)
Où Q est une matrice positive définie-positive de réglage.
L’objectif est de forcer la dérivée temporelle de V le long de la trajectoire ψ̇ à être strictement
négative afin d’assurer la stabilité du système. Calculons cette dérivée :
V̇ = −ψ ⊤ Qψ + 2ψ ⊤ P0 E1 (Y − αur ) (7.18)
avec Y = δ v̇ref + kt ξ − α σ̃.


En suivant l’idée de [Jasim and Veres, 2020], ur doit être conçu de manière à avoir 2ψ ⊤ P0 E1 (Y − αur ) ≤
0. Pour ce faire, introduisons les intervalles d’incertitudes suivants :
(
αmin < α < αmax
(7.19)
∥σ∥ < σmax

101
Chapitre 7. Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC)

Et notons :
ν = ψ ⊤ P0 E1 (7.20)
˜
Ce vecteur d’erreur est une combinaison des erreurs d’estimation ṽ et de suivi de trajectoire ξ,
ce qui est une des particularités de notre approche robuste. Le terme robuste est choisi de telle
sorte que νur ≥ 0 de la manière suivante :
ν
ur = ζ (7.21)
∥ν∥

Où ζ est un terme positif à déterminer. Afin d’éviter le phénomène de "chattering", ur n’est pas
implémenté comme Équation (7.21), mais d’une manière modifiée pour assurer la continuité 1 .
La régularisation linéaire utilisée dans Jasim and Veres [2020] est la suivante :
ν
if ∥ν∥ ≥ µ
(
ζ ∥ν∥
ur = (7.22)
ζ µν if ∥ν∥ < µ

Nous avons remarqué que cette régularisation conduit à l’amplification du signal de commande
même lorsque l’erreur est trop faible, ce qui n’est pas l’effet souhaité, le terme robuste ne devant
être actif que lorsque l’erreur combinée ν est supérieure à ses valeurs habituelles. Pour cette
raison, et pour assurer la continuité et la régularité de la loi de contrôle, nous proposons la
nouvelle régularisation suivante de la fonction signe :
ν 3

−3
1−e µ
ur = ζ ν 3
 (7.23)
−3
1+e µ

Cette fonction peut être visualisée sur la Figure 7.18. Nous considérons le cas de µ = 0.2 et le
1
sign
0.8 linear
exponential
0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

Figure 7.18 – Comparaison entre la fonction de signe, la régularisation linéaire µ et la régula-


risation exponentielle proposée, pour µ = 0.2

comparons avec la fonction de signe et la régularisation linéaire, le tout en fonction de l’erreur


ν. Le terme de commande robuste vérifie 0 ≤ νur , d’où :

ψ ⊤ P0 E1 (Y − αur ) = νY − ναur
(7.24)
≤ νY − αmin νur

Quand ∥ν∥ ≥ µ, on a νur = ζ∥ν∥, alors :

ψ ⊤ P0 E1 (Y − αur ) ≤ νY − αmin ζ∥ν∥


(7.25)
≤ ∥ν∥ (∥Y∥ − αmin ζ)

1. Cette loi de commande est très similaire à une commande par mode glissant (Sliding Mode Control) puis-
qu’elle utilise le signe de l’erreur, cependant, comme nous le montrerons dans la suite, ζ n’est pas un gain constant
dans notre cas. De plus, sa détermination est basée sur des intervalles d’incertitude connus à l’avance, il ne s’agit
donc pas d’une variable d’ajustement comme c’est le cas pour le gain de la commande par mode glissant.

102
7.3. ADRC Robuste aux incertitudes paramétriques

Le choix de ζ est alors simple, si une borne supérieure de Y est disponible, ce qui est le cas :

∥Y∥ < δmax v̇ref + kt ξ˜ + 2αmax σmax (7.26)


| {z }
ϵ0 (ξ̃)

Où δmax = 1 − αmin α̂ > 0. Cependant, l’amplitude de la perturbation ∥σ∥ ne peut pas être
garantie de rester inférieure à σmax . On peut donc finir par choisir une valeur assez élevée qui ne
sera jamais atteinte, ce qui rend la loi de commande trop agressive même quand cela n’est pas
nécessaire. Ceci peut être amélioré dans le cas de l’ADRC puisque la perturbation est estimée en
temps réel et donc il est possible d’en tirer profit. En fait, en écrivant l’erreur d’estimation des
perturbations (c’est-à-dire la différence entre σ̇ et la deuxième sous-équation de Équation (7.7))
dans le domaine de Laplace, nous obtenons la fonction de transfert suivante :
s + l0 α̃
α̂ l1
 
Σ̃(s) = 2 Γ(s) − 2 Uact (s) + Σ̂(s) (7.27)
s + l0 s + α̂ l1
α
s + l0 s + α̂ l1
α
| {z } | {z }
G01 (s) G02 (s)

Où les symboles en majuscules (Γ, Σ, Σ̃, Σ̂ et Uact ) font référence aux transformées de Laplace
(de σ̇, σ, σ̃, σ̂ et uact ). Si la perturbation varie lentement, on peut supposer sans risque que
σ̇ = 0 2 . Concentrons-nous ensuite sur la deuxième fonction de transfert G02 qui affecte plus
considérablement la dynamique de l’erreur d’estimation des perturbations. Cette fonction de
transfert de second ordre a les propriétés suivantes :
• Gain statique : K20 = α̃α . Alors K20 ≤ Kmax = max( 1 − αmax α̂
, 1 − αmin
α̂
)
q q
• Pulsation propre (rad/s) : w20 = αl1
α̂q. Alors w20 ≥ α̂q = wmin
αmin l1

• Coefficient d’amortissement : z20 = l0


2
α̂ 0
αl1 . Alors z2 ≥ l20 αmax
α̂
l1 = zmin
Nous commençons par introduire le théorème suivant :
Theorem 1. Soit F0 (s) une fonction de transfert stable et u(t) un signal continu borné d’ordre
exponentiel. Soit U (s) et Ū (s) les transformées de Laplace de u(t) et |u|(t), et Y (s) = F0 (s).U (s).
Soit F (s) une fonction de transfert stable avec une réponse impulsionnelle positive dans le do-
maine temporel et plus grande en magnitude que la réponse impulsionnelle de F0 (s).
Alors :
y(t), la transformée de Laplace inverse de Y (s), peut être majorée par la fonction temporelle
y∞ (t) définie comme la transformée de Laplace inverse du produit F (s).Ū (s)
Démonstration. Soit f0 (t) et f (t) les réponses temporelles impulsionnelles de F0 (s) et F (s). Tout
d’abord, par application du théorème de convolution, nous avons :
Z t
y(t) = f0 (t − τ )u(τ ) dτ
0

Où y(t) est la transformée de Laplace inverse de Y (s). Donc par l’inégalité triangulaire :
Z t
|y(t)| ≤ |f0 (t − τ )||u(τ )| dτ
0

Et puisque par définition de F (s), ∀t, 0 ≤ |f0 (t)| ≤ f (t), alors


Z t
|y(t)| ≤ f (t − τ )|u(τ )| dτ
|0 {z }
y∞ (t)

Le signal y∞ (t) est alors une borne supérieure de y(t) et il peut être calculé en faisant passer
|u(t)| à travers le filtre F (s).

2. Cette hypothèse n’est pas critique du point de vue de la stabilité et fonctionne en pratique (selon les
tests de simulation et expérimentaux). Il est également possible de fixer une borne supérieure sur la dérivé de la
perturbation si cette valeur peut être connue.

103
Chapitre 7. Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC)

Pour appliquer (Theorem 1) sur G02 (s), nous construisons la fonction de transfert du premier
ordre :
K
G2 (s) = (7.28)
1 + Ts
où K et T sont choisis de telle sorte que la réponse impulsionnelle de G2 (s) soit égale à l’enveloppe
exponentielle positive de la fonction de transfert la moins amortie et la plus lente G02 (s) (obtenue
lorsque w20 = wmin , K20 = Kmax et z20 = zmin ). Donc K = √max 2 et T = z 1w
K
. La
zmin
min max 1−zmin
différence entre les fonctions de transfert G2 (s) et G02 (s) peut être visualisée dans la Figure 7.19
où le cas d’une G02 (s) mal amortie est considéré.
Impulse Response
6
G0
2

4 G2

2
Amplitude

-2

-4

-6
0 2 4 6 8 10 12 14 16 18
Time (seconds)

Figure 7.19 – Example of the impulse response of G2 (s) compared to G02 (s)

Une borne supérieure variable dans le temps de σ̃ peut alors être obtenue par application de
(Theorem 1) :
Z t
σ̃(t)max = g2 (t − τ )|uact (τ ) + σ̂(τ )| dτ (7.29)
0

Où g2 est la réponse impulsionnelle de G2 (Équation (7.28)). Cette nouvelle borne supérieure est
moins conservatrice que l’utilisation de σmax (comme dans Jasim and Veres [2020]) et permet
d’avoir un terme robuste qui s’adapte en fonction de la perturbation estimée et du signal d’entrée
du système. Notons que ce terme contient une contribution filtrée de l’entrée uact , qui peut être
obtenue en utilisant le modèle dynamique disponible (du premier ordre dans notre cas, cf. ûact
dans Équation (7.7)). Les incertitudes sur ce modèle d’actionneur n’affectent le comportement
transitoire qu’à travers la fonction de transfert 1+(τ +τ̂−τ̃act)s+τ
s
2 (tel que τ̃act = τact − τ̂act )
act act act τ̂act
et peut être englobé dans l’intervalle d’incertitude sur l’efficacité des moteurs ω.
La nouvelle borne supérieure dynamique sur Y peut alors être écrite comme suit :

˜ σ̂, ûact , t) = δmax v̇ref (t) + kt ξ(t)


ϵ(ξ, ˜ + αmax σ̃max (t) (7.30)

Où σ̃max est donné par Équation (7.29). Le choix de ζ est maintenant simple :

˜ σ̂, ûact )
ϵ(ξ,
ζ= (7.31)
αmin

Alors ∀∥ν∥ ≥ µ, ∥Y∥ − αmin ζ < 0, et ∥ν∥ (∥Y∥ − αmin ζ) ≤ 0. Par conséquent, ∀∥ν∥ ≥ µ, V̇ ≤ 0.
On peut alors conclure à la stabilité bornée dans l’intervalle [−µ, µ].
Il est important de noter que le but de l’augmentation robuste que nous proposons est
d’améliorer l’ADRC de base et non de le remplacer. Plus précisément, lorsque l’erreur est dans
l’intervalle [−µ, µ], c’est le travail de l’ADRC normal d’assurer la stabilité asymptotique et non
la version robuste qui devrait seulement intervenir pour ramener l’erreur à cet intervalle et la
garder dedans. Ce qui va être clarifié à travers les résultats de la simulation.

104
7.3. ADRC Robuste aux incertitudes paramétriques

7.3.2 Réglage du terme robuste


Le paramètre µ peuvent être liés aux erreurs réelles de suivi et d’estimation ψ afin de rendre
leur réglage plus intuitif. Soit ξ˜max et ṽmax les erreurs maximales qui peuvent être tolérées,
c’est-à-dire en dessous desquelles une grande contribution du terme robuste n’est pas nécessaire.
Alors : " #
ṽ max
µ = |E⊤1 P0 | ˜ (7.32)
ξmax

Où P0 est la solution de l’équation de Lyapunov basée sur la matrice Q (Équation (7.17))


qui détermine le poids de chaque erreur au terme robuste, le poids de l’erreur de suivi doit être
supérieur à celui de l’erreur d’estimation. Le paramètre Q peut être maintenu normalisé puisqu’il
met à l’échelle les erreurs maximales et donc le paramètre µ est automatiquement adapté à la
magnitude de Q.
La détermination de ξ˜max et ṽmax est principalement conditionnée par le niveau de bruit de
la mesure et la largeur de bande des actionneurs, ils doivent être fixés expérimentalement. En
pratique, la même valeur peut être choisie pour les deux.
Notons que la saturation des actionneurs n’a pas été prise en compte dans la conception
du contrôle et l’étude de stabilité. Pour cette raison, des limitations de sécurité supplémentaires
doivent être ajoutées afin que l’augmentation de la robustesse ne conduise pas à la saturation des
actionneurs. Pour ce faire, il est recommandé de limiter la fonction ζ dans un certain intervalle
de contrôle afin que la commande la contribution robuste reste en dessous d’un seuil raisonnable.
Lorsque ζ est saturé, le signal de commande est similaire à une commande en mode glissant (avec
un gain statique multipliant le signe de l’erreur), mais cela ne se produit que pour les grandes
erreurs, lorsqu’une action de commande forte est vraiment nécessaire.
Cela signifie également que les marges d’incertitude pour un système sont limitées par l’effort
disponible des actionneurs. Ainsi, si ces incertitudes conduisent à la saturation de ζ, il faut alors
reboucler sur l’étape de modélisation et d’identification du système afin de réduire |δmax | et donc
de réduire la magnitude du terme robuste.

7.3.3 Généralisation à un système de second ordre


La conception robuste de l’ADRC présentée sur la dynamique de vitesse peut également être
réalisée sur la dynamique de position. En fait, la même analyse est valable pour le cas du second
ordre, seule la matrice A0 doit être mise à jour. Un aperçu de cette généralisation est donné ici.
La nouvelle loi de contrôle ADRC, devient maintenant :

1
u= (ẍref + k2 (vsp − v))
α̂ (7.33)
vsp = ẋref + k1 (x − xref )

Où xref est calculé à l’aide d’un TD à partir d’une cible xsp , ceci est être mieux expliqué en
Section 7.4.2. Les gains k1 et k2 peuvent être facilement fixés à partir d’une fréquence de boucle
fermée souhaitée ftracking et d’un coefficient d’amortissement ρ comme suit :

(2πftracking )2
k2 = 4ρπftracking k1 = (7.34)
k2

L’observateur de perturbation de force est construit en utilisant la mesure de la position x :

x̂˙



 = v̂ + l0 (x − x̂)
v̂˙

= α̂ (ûact + σ̂) + l1 (x − x̂)

(7.35)

 σ̂˙ = lα̂2 (x − x̂)
˙

1
= τ̂act (u − ûact )

 ûact

105
Chapitre 7. Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC)

   
x̃ x − x̂
 ṽ   v − v̂ 
Nous allons maintenant concevoir le terme robuste, Soit ϕ =  ˜  =   le nouveau
   
ξx  xref − x
ξ˜v vref − v
vecteur d’erreur mesurable. En faisant les mêmes calculs, la loi de commande reste la même et
les nouvelles matrices A0 et E1 sont :

1 0 0 0
   
−l0
−l 0 0 0  −1
A0 =  1 E1 =   (7.36)
   
 0 0 0 1   0 

0 0 −k1 k2 −k2 1

Le signal de commande robuste est ensuite construit comme dans les équations 7.22 et 7.31 en
adaptant les termes d’erreur et la fonction de transfert G02 (s) (dans Équation (7.27)) permettant
de calculer σ̃max (Équation (7.29) ).
α̃
α̂ l2
G02 (s) = (7.37)
s3 + l0 s2 + l1 s + αα̂ l2

La fonction de transfert G2 (s) (donnée dans le cas 1D par Équation (7.28)), peut alors être
construite de la même manière en s’assurant que sa réponse impulsionnelle reste au-dessus du
pire cas que pourrait avoir G02 (s) (le plus lent et le moins amorti). On peut alors appliquer le
théorème (Theorem 1) pour trouver la limite supérieure dynamique de l’erreur d’estimation des
perturbations.
La matrice des poids Q (permettant de calculer la matrice P0 et de définir la contribution de
chaque erreur d’estimation et de suivi) a dans ce cas quatre éléments diagonaux. Cette matrice
peut également être normalisée et nous recommandons la répartition des poids suivante :

0.02 0 0 0
 
 0 0.08 0 0 
Q= (7.38)
 
 0 0 0.45 0 

0 0 0 0.45

Pour trouver le paramètre µ, nous suivons la même procédure donnée par Équation (7.32), basée
sur le choix de seuils d’erreur sur l’estimation de la position et de la vitesse et sur les erreurs de
suivi :  
x̃max
 ṽ 
 max 
µ = |E⊤ P | (7.39)
ξ˜xmax 
1 0  

ξ˜vmax
Comme mentionné dans le cas 1D, la détermination de ces seuils d’erreur est principale-
ment conditionnée par le niveau de bruit de la mesure et doit être fixée expérimentalement. En
pratique, les mêmes valeurs peuvent être choisies pour les termes de suivi et d’estimation.

7.3.4 Implémentation et discrétisation


Afin de rendre le terme robuste moins sensible au temps d’échantillonnage du système de
contrôle, la même procédure de conception présentée ci-dessus a été appliquée sur la dynamique
discrétisée de l’erreur ψ. En effet, si Te est l’intervalle de temps d’échantillonnage de la carte de
contrôle, alors la dynamique dans Équation (7.16) peut être écrite comme suit

ψ k+1 = Ad0 (Te )ψ k + Ed1 (Te ) (Yk − αurk ) (7.40)

Où Ad0 (Te ) et Ed1 (Te ) peuvent être calculés à l’aide de la méthode du blocage à l’ordre 0 (ZOH)
à partir de A0 et E1 et Te . La démarche pour concevoir urk est alors la même en considérant la
fonction de Lyapunov discrète Vk = ψ k Pd0 ψ ⊤ où Pd0 est la solution de l’équation de Lyapunov
discrète A⊤d0 Pd0 Ad0 − Pd0 + Q = 0, en utilisant la même matrice de poids Q.

106
7.3. ADRC Robuste aux incertitudes paramétriques

7.3.5 Simulation dans le cas 1D


On considère le même système introduit en Équation (7.1) représentant la rotation autour
de l’un des axes du drone (pour les petits angles) avec les valeurs initiales suivantes pour les
paramètres du système :
• Efficacité des actionneurs ω = 1 et le couple maximal umax = 4N m
• La dynamique des actionneurs, un premier ordre linéaire avec une constante de temps
τact = 0.05s. On suppose que cette valeur est connue, l’incertitude sur la bande passante
des actionneurs ne va pas être analysée dans ce paragraphe.
• Inertie J = 0.015kgm2 , donc α = 66.67.
La loi de commande (donnée par les équations 7.5 et 7.4) est réglée en se basant sur des
considérations fréquentielles :
• Génération de la référence : comme expliqué dans la section précédente, la valeur désirée
de la vitesse est générée à partir de la sortie d’un contrôleur proportionnel sur l’angle.
Ainsi, si tr95% = 0.5s et ρ = 0.9 alors k = 4.44 s−1 et fT D = 2.3Hz.
• Observateur fESO = 2.23Hz avec un amortissement de 0.7 conduisant à l0 = 28 et
l1 = 241, 9753.
• Suivi de la référence ftrack = 4, 45Hz donnant kt = 28.
• Le terme robuste est calculé en prenant αmax = 4α, αmin = 0, 167α. Ce qui conduit à
δmax = 0, 83 et δmin = −3. Les perturbations sont supposées varier lentement et nous
fixons σ̇max à 0N m/s.
• La matrice des poids :
" #
0.1 0
Q= (7.41)
0 0.9

Le poids de l’erreur de suivi est fixé à une valeur supérieure à celle de l’erreur d’estimation,
ce que nous recommandons en se basant sur le retour d’expérience. On peut alors trouver
µ en utilisant Équation (7.32). Pour cet exemple, nous prenons ξ˜max = ṽmax = 0.3 rad/s
ce qui donne µ = 0.0052.
Comme référence de comparaison, nous utilisons un contrôleur PI sur les vitesses angulaires
dont la partie P (le gain kp ) est choisie équivalente à la dynamique de référence du TD d’ordre
2 (kp = 6πρ
2
5 fT D ), quant à la partie I, le gain est augmenté de manière à avoir une capacité de
rejet des perturbations similaire à celle de l’ADRC dans les conditions nominales. Cependant,
en augmentant le gain de l’intégrateur, les performances de suivi sont également affectées (c’est
pourquoi un contrôleur PI ne peut pas obtenir indépendamment un bon suivi et un bon rejet
des perturbations, contrairement à l’ADRC tel que expliqué en Section 7.2), la fréquence de
l’intégrateur finteg ne peut donc pas être égale à celle de l’ESO car cela pourrait conduire à une
instabilité. Une bonne fréquence de compromis pour l’intégrateur est finteg = 0.45Hz, ce qui
conduit à ki = 2πfinteg kp = 25.2.
Les résultats de la simulation sont présentés ci-dessous, pour différentes incertitudes sur
le gain du système (α) : l’inertie du système et l’efficacité de l’actionneur sont modifiées à
l’intérieur des intervalles fixes, sans changer le réglage initial de la commande qui est basé sur
la connaissance des paramètres initialement disponibles (donnée ci-dessus). Les courbes bleues
correspondent au contrôleur PI, les rouges à l’ADRC normal et les jaunes à l’ADRC robuste.
L’amélioration des performances est claire. Le scénario de simulation présenté correspond
à la poursuite d’une cible angulaire au cours de laquelle une perturbation en échelon (avec un
taux de pente limité à 10N m/s) est injectée à t = 3s.

7.3.5.1 Cas nominal δ = 0

Nous commençons par le cas idéal, où les paramètres du système sont exactement égaux à
ceux utilisés pour régler et mettre en œuvre le contrôleur ADRC. Pour vérifier l’équivalence des
contrôleurs, nous présentons d’abord le cas sans perturbation. Dans Figure 7.20a, on peut voir
que le contrôleur PI conduit à une dynamique similaire sur le taux et l’angle. De plus, le terme
robuste n’ajoute pas beaucoup de correction car l’erreur ne sort pas de l’intervalle fixé par µ

107
Chapitre 7. Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC)

(puisqu’aucune perturbation externe ou interne n’est présente dans ce cas), comme on peut le
voir dans Figure 7.20b.

(a) A droite : estimation des perturbations, à gauche : suivi de la vitesse et de l’angle


10-3
6 0.2 PI
ADRC
ADRC robust
0.15
4

0.1

2
0.05

0 0
u

-0.05
-2

-0.1

-4
-0.15

-6 -0.2
0 5 10 15 0 5 10 15
Time (s) Time (s)

(b) Erreur ν avec intervalle de µ en vert (Gauche) et


signal de commande (Droite)

Figure 7.20 – Simulation 1D sans perturbation appliquée : les paramètres du système sont
parfaitement connus δ = 0 - PI, ADRC et ADRC robuste ont des performances similaires.

La perturbation de pas est ensuite ajoutée. Comme le montre Figure 7.21, même lorsque
les paramètres du système sont parfaitement connus, le terme robuste conduit à de meilleures
performances.

108
7.3. ADRC Robuste aux incertitudes paramétriques

(a) A droite : estimation des perturbations, à gauche : suivi de la vitesse et de l’angle


0.1 1
PI
ADRC
0.08
ADRC
robust
0.5
0.06

0.04
0
0.02

0 -0.5
u

-0.02
-1
-0.04

-0.06
-1.5
-0.08

-0.1 -2
0 5 10 15 0 5 10 15
Time (s) Time (s)

(b) Erreur ν avec l’intervalle de µ en vert (Gauche)


et signal de commande (Droite))

Figure 7.21 – Simulation 1D avec perturbation appliquée : les paramètres du système sont
parfaitement connus δ = 0 - ADRC a des capacités de rejet des perturbations significativement
meilleures que PI

7.3.5.2 Cas de la surestimation du gain de système


Lorsque le gain du système est surestimé, l’action de contrôle est faible car le système est
censé être plus rapide que la réalité, la boucle fermée résultante est beaucoup plus lente que
l’objectif de conception. Dans Figure 7.22 et Figure 7.23 on peut voir que l’ajout du terme
robuste permet de rendre le système plus rapide et même capable d’éviter l’instabilité. En
fait, dans le cas extrême montré sur Figure 7.24, le contrôleur PI et même le contrôleur ADRC
normal ne parviennent pas à stabiliser le système (courbes bleue et rouge) en raison de la grande
incertitude sur α. L’ajout du terme robuste permet alors de s’en sortir (courbe jaune).

7.3.5.3 Cas de la sous-estimation du gain de système


Lorsque le gain du système est sous-estimé, l’action de contrôle est plus agressive que né-
cessaire car le système est censé être plus lent que la réalité, la boucle fermée résultante est
beaucoup plus rapide que l’objectif de conception et les erreurs sont déjà dans l’intervalle µ
souhaité (cf. Figure 7.25b et Figure 7.26b), l’action robuste n’est donc pas vraiment nécessaire,
ce qui rend le choix de la fonction plate de régularisation proche de zéro (cf. Figure 7.18) encore
plus pertinent. Dans les cas de δ = −1 (Figure 7.25) et δ = −3 (Figure 7.26), il est clair que
l’ajout de l’augmentation robuste permet de réduire les erreurs de poursuite même dans ces
conditions, mais il tend à générer des commandes très agressives à l’actionneur, ce qui justifie

109
Chapitre 7. Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC)

(a) A droite : estimation des perturbations, à gauche : suivi de la vitesse et de l’angle


0.15 1.5
PI
ADRC
1 ADRC robust
0.1

0.5

0.05
0

0 -0.5
u

-1
-0.05

-1.5

-0.1
-2

-0.15 -2.5
0 5 10 15 0 5 10 15
Time (s) Time (s)

(b) Erreur ν avec intervalle de µ en vert (gauche) et


signal de commande (droite)

Figure 7.22 – Simulation 1D avec perturbation appliquée : δ = 0.2 - L’augmentation robuste


de l’ADRC permet de retrouver des performances idéales.

la saturation de la fonction ζ à un domaine réalisable connu à l’avance. On note également que


le contrôleur PI se comporte étonnamment bien dans ces conditions, en fait, ce contrôleur est
réglé pour une dynamique beaucoup plus lente, de sorte que l’intégrateur est loin de la région
d’instabilité et qu’il n’excite pas inutilement le système déjà rapide.

110
7.3. ADRC Robuste aux incertitudes paramétriques

(a) A droite : estimation des perturbations, à gauche : suivi de la vitesse et de l’angle


0.15 2
PI
1.5 ADRC
ADRC
robust
0.1
1

0.5
0.05
0

0 -0.5
u

-1
-0.05
-1.5

-2
-0.1
-2.5

-0.15 -3
0 5 10 15 0 5 10 15
Time (s) Time (s)

(b) Erreur ν avec intervalle de µ en vert (gauche) et


signal de commande (droite)

Figure 7.23 – Simulation 1D avec perturbation appliquée : δ = 0.7 - L’augmentation robuste


de l’ADRC empêche le système d’osciller

111
Chapitre 7. Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC)

(a) A droite : estimation des perturbations, à gauche : suivi de la vitesse et de l’angle


4
PI
ADRC
0.04 3 ADRC robust

0.02 2

0 1

0
u

-0.02

-1
-0.04

-2
-0.06
-3
-0.08
-4
0 5 10 15 0 5 10 15
Time (s) Time (s)

(b) Erreur ν avec l’intervalle de µ en vert (Gauche)


et signal de commande (Droite)

Figure 7.24 – Simulation 1D avec perturbation appliquée : δ = 0.833 - Zoom sur la réponse
robuste stable (courbes jaunes) - L’augmentation robuste ADRC empêche le système de diverger

112
7.3. ADRC Robuste aux incertitudes paramétriques

(a) A droite : estimation des perturbations, à gauche : suivi de la vitesse et de l’angle


0.15 1
PI
ADRC
ADRC robust
0.1 0.5

0.05 0

0 -0.5
u

-0.05 -1

-0.1 -1.5

-0.15 -2
0 5 10 15 0 5 10 15
Time (s) Time (s)

(b) Erreur ν avec intervalle de µ en vert (gauche) et


signal de commande (droite)

Figure 7.25 – Simulation 1D avec perturbation appliquée : δ = −1

113
Chapitre 7. Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC)

(a) A droite : estimation des perturbations, à gauche : suivi de la vitesse et de l’angle


0.08 1
PI
ADRC
0.06 ADRC robust

0.5
0.04

0.02
0

0
u

-0.5
-0.02

-0.04
-1
-0.06

-0.08 -1.5
0 5 10 15 0 5 10 15
Time (s) Time (s)

(b) Erreur ν avec intervalle de µ en vert (gauche) et


signal de commande (droite)

Figure 7.26 – Simulation 1D avec perturbation appliquée : δ = −3

114
7.4. Application de l’ADRC robuste pour le contrôle d’un drone multirotor

7.4 Application de l’ADRC robuste pour le contrôle d’un drone


multirotor
7.4.1 Incertitudes paramétriques dans le cas d’un multirotor
Les incertitudes sur les drones multirotors ont différentes origines et peuvent entraîner une
dégradation des performances lorsque l’ADRC est utilisé. Ces incertitudes peuvent provenir de :
• Estimation de la masse et de l’inertie
• Efficacité des actionneurs et effets du vol non stabilisé
• Forces et couples de traînée non modélisés
Ces incertitudes ne peuvent être évitées dans la plupart des cas et, à moins que des modèles précis
ne soient disponibles, des contrôleurs de vol robustes doivent être conçus. Dans notre travail,
nous supposons cependant qu’il est possible d’avoir des limites supérieures et inférieures sur les
paramètres comme décrit dans la section précédente. Nous montrons dans cette section comment
concaténer les contrôleurs ADRC robustes présentés ci-dessus pour concevoir le contrôle de
position et d’attitude d’un drone multirotor sous-actionné.

7.4.2 Contrôleur de Position


Les consignes de position sont fournies par une station au sol sous la forme d’une séquence de
points ptgt à visiter et la trajectoire à suivre doit donc être générée par le contrôleur de position.
Pour ce faire, une trajectoire de vitesse trapézoïdale (définie par une vitesse maximale et une
accélération maximale, cf. Figure 3.6) est calculée à partir de la consigne de position.
[psp , vsp , asp ] = trapz (ptgt , p, vmax , accmax ) (7.42)
Une loi de contrôle ADRC peut alors être appliquée pour assurer le suivi de cette consigne de
position psp . Il s’agit alors de calculer la force de poussée désirée le long des axes du repère
inertiel uTsp .
1 
uTsp = p̈ref + kvt ṗref + kpt (pref − p) − v − G − σ̂ F + ur (7.43)

α̂
Où :
• α = m ω
, où ω est l’efficacité de la poussée des hélices et m la masse du drone. α̂ est
l’estimée de α.
• pref est généré en utilisant un TD de troisième ordre à partir de psp , avec une fréquence
de coupure égale à fT Dp :

= aref = µ3 (psp − pref ) − 3µ2 vref − 3µaref


 R 
p̈ref


= vref = aref (7.44)
R

ref

= vref

p R
ref

Avec µ = 2πfT Dp
• kvt et kpt sont les vecteurs des gains de suivi de position et de vitesse.
• σ̂ F est l’estimée de la force de perturbation calculée en utilisant un ESO de second ordre
(utilisant les mesures de position) avec une fréquence de coupure notée fESOF (version
3D de Équation (7.35)) :
(2πf )3

˙F
σ̂

 = ESO F
(p − p̂)
α̂
˙

= v̂ + 3(2πfESOF ) (p − p̂)

p̂



(7.45)
   
0
v̂˙ 2

= G + α̂ R  0  + σ̂ F  + 3(2πfESOF ) (p − p̂)

    
   


−T̂act

Où T̂act est l’estimation de l apoussée totale générée par les hélices, calculée en utilisant les
commandes (PWM ou RPM) envoyées aux moteurs et le modèle de poussée à disposition
(identifié sur un banc d’essai).

115
Chapitre 7. Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC)

• ur est le term robuste 3D calculé comme expliqué en Section 7.3.3 pour les trois dyna-
miques découplées x, y et z.
La dernière étape consiste à extraire une consigne d’attitude à partir de ce vecteur de poussée
uT . En effet, si la norme de ce vecteur correspond à la poussée totale à envoyer aux hélices,
sa direction donne directement l’attitude désirée du drone (angle de roulis et de tangage), et
donc l’ajout d’une commande de lacet yawsp (également fournie par la station sol) permet de
construire une matrice de rotation désirée Rsp . Plus précisément, celle-ci s’écrit comme suit :
h i
Rsp = bx by bz (7.46)
Avec :  uTsp
bz =−
∥uTsp ∥



  
−sin(yawsp )





=
bx0
=  cos(yawsp )  (7.47)
 
bx b x0  × bz

 ∥bx0 ∥
0






= bz × bx

b
y

7.4.3 Contrôleur d’Attitude


La matrice de rotation Rsp calculée par le contrôleur de position est utilisée pour générer
une consigne de vitesse de rotation Ωsp . Une façon de procéder est d’utiliser des quaternions
afin d’avoir des erreurs angulaires sans singularité comme dans Brescianini et al. [2013] ou dans
Castillo et al. [2019]. Une loi proportionnelle est ensuite appliquée à cette erreur pour la convertir
en une vitesse angulaire désirée :
= R⊤ bz × bzsp
( 
eR
(7.48)
Ωsp = kR eR
Où bz est l’orientation actuelle du vecteur de poussée (axe z du corps du drone) et bzsp est
l’orientation souhaitée envoyée par le contrôleur de position. Pour l’erreur d’angle de lacet, la
valeur de lacet de référence est utilisée et comparée à la valeur mesurée. Les gains kR peuvent
être calculés en utilisant une approximation linéaire de la dynamique.
Afin de suivre cette consigne Ωsp , l’ADRC est appliqué permettant de calculer le couple
désiré Qsp :  
Qsp = α̂−1 Ω̇ref + kΩt (Ωref − Ω) − σ̂ Q + Qr (7.49)
Où :
• Ωref est obtenue en utilisant un TD de second ordre avec une fréquence de coupure égale
à fT DΩ :
= 4π 2 fT2 DΩ (Ωsp − Ωref ) − 4πfT DΩ Ω̇ref

γ


Ω̇ref = γ (7.50)
R

=

Ω R
ref Ω̇ref
• kΩt est le vecteur des gains de suivi des vitesses angulaires
• σ̂ Q est l’estimation du couple perturbateur calculée par un ESO de premier ordre, en
utilisant les mesures des gyromètres de la centrale inertielle (3D version of Équation (7.7))
avec fESOQ comme fréquence de coupure :
2 
˙
  
σ̂
Q = α̂−1 2πfESOQ Ω − Ω̂
˙
    (7.51)
Ω̂ = α̂ Q̂act + σ̂ Q + 4πfESOQ Ω − Ω̂
• Le terme robuste Qr est calculé à partir de trois systèmes scalaires
  comme indiqué dans
Qr1
la section précédente, un pour chaque axe de rotation Q = Q2 . L’expression de Qri est
r  r
Qr3
la même que celle de Équation (7.21) et Équation (7.22) en adaptant les termes d’erreur
et les valeurs des paramètres correspondants.

116
7.4. Application de l’ADRC robuste pour le contrôle d’un drone multirotor

Note En pratique, les mesures de vitesse angulaire sont très bruitées (rotation des hélices,
vibrations de la structure, qualité des mesures IMU, etc.) et ne sont pas utilisées telles quelles
dans l’algorithme de contrôle mais sont filtrées par un filtre passe-bas avec une fréquence de
coupure de µf ilt (rad/s). Une amélioration de l’ESO de base a alors été développée pour prendre
en compte ce filtrage et limiter les oscillations dues au retard qu’il introduit. Cet algorithme
s’apparente à un ESO généralisé (GESO) où la dynamique du filtre passe-bas est ajoutée et où
les gains d’observation ont été adoptés pour conserver la même bande passante fESOQ :
(2πfESOQ )3 

˙Q


 σ̂ = α̂−1 Ωf − Ω̂
 µf ilt  

˙

  
Ω̂f = µf ilt Ω̂ − Ωf + 6πfESOQ − µf ilt Ωf − Ω̂ (7.52)
˙ 3(2πfESOQ )2

    
= α̂ Q̂act + σ̂ Q +

Ω̂ Ωf − Ω̂

µf ilt

Cette amélioration est décrite avec plus de détail en Annexe C.

7.4.4 Simulation
Nous vérifions le contrôleur ADRC de la position et de l’attitude sur un drone simulé. Un
quadrotor est considéré, avec la connaissance initiale suivante sur ses paramètres :
• Efficacité des actionneurs de poussée et de couple respectivement ωf = 0.96 et ωq = 1
• Masse 3kg
• Moments d’inertie principaux Ix = 0, 08kg.m2 , Iy = 0, 08kg.m2 et Iz = 0, 16kg.m2
• La distance entre le centre géométrique et les moteurs est de 0, 29m
• Les hélices peuvent produire jusqu’à 20N de poussée chacune
La traînée de battement des pales, la traînée de profil et la traînée parasite ont également été
ajoutées pour simuler les effets aérodynamiques (les modèles sont donnés en Chapitre 2). En
outre, du bruit numérique a été ajouté sur les mesures de position et de vitesse angulaire, ainsi
que des retards.
Le rejet de perturbations combinées (forces et couples) sur le multirotor simulé est consi-
déré. Ces perturbations sont modélisées comme des vitesses linéaires et angulaires qui affectent
la dynamique du drone à travers les modèles de traînée. Afin d’évaluer la robustesse de l’aug-
mentation ADRC proposée, nous considérons plusieurs scénarios où l’efficacité de la poussée ou
la masse et l’inertie sont mal estimées. Ces incertitudes auront un impact sur les boucles de
contrôle de la vitesse linéaire et angulaire en même temps.

Incertitudes paramétriques On suppose les limites supérieures et inférieures suivantes pour


la masse, l’inertie et le rendement des hélices :
• Efficacité des actionneurs : sur la poussée ωfmax = 1, 75, ωfmin = 0, 67 et sur le couple
ωfmax = 1, 75, ωfmin = 0, 67.
• Masse : mmax = 6, 6kg, mmin = 1, 65kg.
• Inertie : Ixmax = 0, 16kg.m2 , Iymax = 0, 175kg.m2 , Izmax = 0, 32kg.m2 et Ixmin =
0, 056kg.m2 , Iymin = 0, 0612kg.m2 , Izmin = 0, 081kg.m2 .
Ce qui conduit à δf ∈ [−2.28, 0.69] l’intervalle d’incertitude sur la boucle de position (dû à l’effica-
h i⊤
cité de la poussée et aux incertitudes sur la masse) et δ Q ∈ [−1.57, 0.65] [−1.57, 0.65] [−2.6, 0.75]
sur les boucles de vitesse angulaire (roulis, tangage et lacet).
Le scénario de test consiste à faire suivre au drone une trajectoire de position souhaitée
(Figure 7.27). Les paramètres de contrôle utilisés (basés sur la connaissance initiale des para-
mètres du système) sont résumés dans le Tableau 7.1. Dans la suite, le code couleur suivant est
utilisé : Le bleu correspond à l’ADRC normal, le rouge à l’ADRC robuste et le vert aux points
de consigne (valeurs souhaitées).
Dans le cas idéal où tous les paramètres sont connus et où il n’y a pas de perturbations
externes, nous obtenons les résultats présentés sur les figures 7.28b, 7.29 et 7.30. Il est clair que
le réglage ADRC permet d’obtenir un excellent suivi de trajectoire et que l’ajout des termes
robustes n’a pas beaucoup d’effet, en fait les erreurs sont déjà à l’intérieur des petits intervalles
d’erreur fixés par les valeurs de µ (Figure 7.30).

117
Chapitre 7. Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC)

2.5

1.5

-Z (m)
1

1
0.5

0 0
-1
-0.5
0
0.5 -1 Y (m)
1
X (m)

Figure 7.27 – Trajectoire de position à suivre (scénario de simulation)

(a) Vue 3D avec les sphères des erreurs max


2 2

1 1
x (m)

y (m)

0 0

-1 -1

-2 -2
0 50 100 0 50 100
Time (s) Time (s)

3
Reference
ADRC
2 ADRC robust
-z (m)

0
0 10 20 30 40 50 60 70 80 90 100
Time (s)

(b) Courbe temporelle

Figure 7.28 – Position du drone simulé dans le cas sans incertitude paramétrique δ = 0 et sans
perturbation externe

L’objectif est maintenant de voir comment les deux contrôleurs (avec et sans termes robustes)
fonctionnent en présence de perturbations. Pour ce faire, nous simulons le couple et la force
générés par le vent et les appliquons au centre de masse du drone. Les vitesses de vent considérées
sont indiquées sur Figure 7.31. Selon ces vitesses, le vent virtuel a une composante linéaire le
long d’un axe du drone mais avec une composante rotationnelle le long des deux autres axes
perpendiculaires. Ceci permet d’évaluer les effets de couplage entre les différents axes. Ce vent

118
7.4. Application de l’ADRC robuste pour le contrôle d’un drone multirotor

Figure 7.29 – Attitude du drone simulé dans le cas sans incertitude paramétrique δ = 0 et
sans perturbation externe

Figure 7.30 – Erreurs de position (gauche) et de vitesse angulaire ν avec intervalles µ en vert
(droite) dans le cas sans incertitude paramétrique δ = 0 et sans perturbation externe

1
Linear Speed (m/s)

x
0.5 y
z
0

-0.5

-1
0 10 20 30 40 50 60 70 80 90 100
Time (s)

2
Angular Speed (rad/s)

Roll
1 Pitch
Yaw
0

-1

-2
0 10 20 30 40 50 60 70 80 90 100
Time (s)

Figure 7.31 – Vitesses du vent simulé

génère les forces et les couples de perturbation (qui dépendent de la vitesse du véhicule et donc

119
Chapitre 7. Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC)

également de la performance de la commande) représentés sur le Figure 7.32.


2

Force Disturbance (N)


x
y
1
z

-1

-2
0 10 20 30 40 50 60 70 80 90 100
Torque Disturbance (Nm) Time (s)

0.5 Roll
Pitch
Yaw
0

-0.5

-1
0 10 20 30 40 50 60 70 80 90 100
Time (s)

Figure 7.32 – Force et couple de perturbation exercés sur le drone (dus à la traînée aérodyna-
mique et au décentrage du centre de gravité)

L’évaluation des performances est effectuée en examinant l’erreur de position, ainsi que la
réponse angulaire du drone.

Position Control (x,y,z) Attitude Control (roll,pitch,yaw)


TD frequency (Hz) 3.5 3.5 3.5 15 15 3
ESO frequency (Hz) 1 1 1 2 2 0.75
Position (or Attitude) Tracking Gains 0.75 0.75 1.12 5.55 5.55 0.8
Speed Reference Tracking Gains 2.4 2.4 3.6 4.64 5.04 1.07
µ values 0.01765 0.01765 0.01 0.01 0.009 0.067

Table 7.1 – Paramètres de contrôle en simulation

h i⊤
Cas idéal : pas d’incertitude δf = 0 et δ Q = 0 0 0 Les figures 7.33a, 7.33b et 7.34
montrent que même dans le cas idéal d’une connaissance parfaite des paramètres, l’augmentation
robuste (en position et en attitude) permet un meilleur suivi de la trajectoire et un meilleur rejet
des perturbations.

120
7.4. Application de l’ADRC robuste pour le contrôle d’un drone multirotor

(a) Vue 3D avec les sphères des erreurs max during


the disturbance application
2 2

1 1
x (m)

y (m)
0 0

-1 -1

-2 -2
0 50 100 0 50 100
Time (s) Time (s)

3
Reference
ADRC
2 ADRC robust
-z (m)

0
0 10 20 30 40 50 60 70 80 90 100
Time (s)

(b) Courbe temporelle

Figure 7.33 – Position du drone simulé avec δ = 0

Figure 7.34 – Attitude du drone simulé avec δ = 0

h i⊤
Sur-estimation du gain d’entrée, δf = 0.53 et δ Q = 0.53 0.53 0.75 On peut voir
sur les Figures 7.36a, 7.36b que l’augmentation robuste permet d’éviter la dégradation des
performances (par rapport au cas idéal Figure 7.33b). L’erreur de position est réduite de plus de
40%. Il est également intéressant de voir que l’augmentation robuste permet de converger plus
rapidement vers l’équilibre souhaité au décollage (Figure 7.36b).

121
Chapitre 7. Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC)

Figure 7.35 – Erreurs de position (gauche) et de vitesses angulaires ν (droite) avec les intervalles
µ en vert dans le cas sasn incertitudes δ = 0

(a) Vue 3D avec les sphères des erreurs max pendant


l’application de la perturbation
2 2

1 1
x (m)

y (m)

0 0

-1 -1

-2 -2
0 50 100 0 50 100
Time (s) Time (s)

3
Reference
ADRC
2
-z (m)

ADRC robust

0
0 10 20 30 40 50 60 70 80 90 100
Time (s)

(b) Courbe temporelle


h i⊤
Figure 7.36 – Position du drone simulé avec δf = 0.53 et δ Q = 0.53 0.53 0.75

h i⊤
Sous-estimation du gain d’entrée, δf = −0.33 et δ Q = −0.33 −0.33 −1.8 Ce cas
est plus facile à récupérer car le système est déjà sur-excité par l’action de contrôle du fait que
le gain du système est supposé être plus petit que la réalité, donnant des gains de commande

122
7.4. Application de l’ADRC robuste pour le contrôle d’un drone multirotor

h i⊤
Figure 7.37 – Attitude du drone simulé avec δf = 0.53 et δ Q = 0.53 0.53 0.75

Figure 7.38 – Erreurs de position (gauche) et de vitesses angulaires ν (droite) avec les intervalles
h i⊤
µ en vert quand δf = 0.53 et δ Q = 0.53 0.53 0.75

par défaut plus forts que nécessaire. C’est pourquoi l’effet de l’augmentation robuste est moins
important. Les résultats de rejet des perturbations et de suivi de trajectoire sont visibles sur les
Figures 7.39a, 7.39b et 7.40. Nous remarquons que l’augmentation robuste permet toujours de
réduire l’erreur de position d’environ 40%.

123
Chapitre 7. Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC)

(a) Vue 3D avec les sphères des erreurs pendant l’ap-


plication des perturbations
2 2

1 1
x (m)

y (m)
0 0

-1 -1

-2 -2
0 50 100 0 50 100
Time (s) Time (s)

3
Reference
ADRC
2 ADRC robust
-z (m)

0
0 10 20 30 40 50 60 70 80 90 100
Time (s)

(b) Courbe temporelle


h i⊤
Figure 7.39 – Position du drone simulé avec δf = −0.33 et δ Q = −0.33 −0.33 −1.8

h i⊤
Figure 7.40 – Attitude du drone simulé avec δf = −0.33 et δ Q = −0.33 −0.33 −1.8

7.4.5 Résultats expérimentaux

Dans cette section, les tests expérimentaux de l’augmentation robuste de l’Active Disturbance
Rejection Control (ADRC) provenant d’une campagne de tests dans un environnement Optitrack

124
7.4. Application de l’ADRC robuste pour le contrôle d’un drone multirotor

Figure 7.41 – Erreurs de position (gauche) et de vitesses angulaires ν (droite) avec les in-
tervalles µ en vert dans le cas de sous-estimation du gain d’entrée δf = −0.33 et δ Q =
h i⊤
−0.33 −0.33 −1.8

sont présentés. Deux types d’incertitudes sont illustrés ici : transitoires (Section 7.4.5.1) et
permanentes (Section 7.4.5.2). Le premier consiste à laisser tomber une charge du drone (la
première pèse 190g et la seconde 305g), et le second à attacher une masse oscillante de 206g.
Cette masse est fixée entre le centre du drone et l’une de ses jambes, ce qui permet de créer
un déséquilibre permanent de masse et d’inertie. Afin de rendre cette incertitude encore plus
difficile, la masse n’a été que faiblement attachée et laissée libre de se balancer comme montré
dans la Figure 7.43.
Dans ces deux cas, les contrôleurs ne sont pas "conscients" de la masse supplémentaire et
sont réglés comme si elle n’existait pas, ce qui est considéré comme une incertitude paramétrique
interne. Cela conduit à un cas de surestimation du gain du système (du point de vue des
contrôleurs, le drone est considéré comme plus léger et avec moins d’inertie que la réalité).
Les valeurs de δ correspondantes (si l’incertitude sur la poussée ω est supposée égale à 1) sont
d’environ 0.12 pour le contrôleur de position (incertitude due à la masse) et 0.2 pour le contrôleur
de vitesse angulaire (incertitude due à l’inertie). L’expérience de largage de masse permet de
modifier les conditions d’incertitude pendant le vol et de faire passer la valeur de δ de 0.12 à 0 3 .

Figure 7.42 – Quadrotor avec la masse à larguer

Les conditions expérimentales sont les suivantes : le drone est un quadrotor pesant 1.5kg et

3. Même sans masse attachée, δ n’est pas exactement égal à 0 car l’inertie et l’efficacité des actionneurs ne
peuvent pas être connues précisément.

125
Chapitre 7. Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC)

Figure 7.43 – Quadrotor avec la masse attachée oscillante

ayant comme moments d’inertie Ix = 0, 015kg.m2 , Iy = 0, 0149kg.m2 et Iz = 0, 0294kg.m2 . La


distance entre les moteurs et le centre géométrique du drone est de 0.225m et les hélices peuvent
produire jusqu’à 9N de poussée chacune. Le système de capture de mouvement Optitrack envoie
des mesures de position à la station au sol à une fréquence de 50Hz. Sur la station au sol, le
contrôleur de position fonctionne et envoie par Wifi les points de consigne d’attitude et de
poussée au drone (avec un délai de transmission d’environ 40ms).

Position Control (x,y,z) Attitude Control (roll,pitch,yaw)


TD frequency (Hz) 3.5 3.5 3.5 6.9 6.9 3.2
ESO frequency (Hz) 0.5 0.5 0.8 4 4 2
Position/Attitude Tracking Gains 0.75 0.75 1.12 6.5 6.5 3
Speed Tracking Gains 2.4 2.4 3.6 0.9 0.7 0.15
µ values 0.02 0.02 0.01 0.01 0.01 0.02

Table 7.2 – Paramètres de contrôle (pour les essais expérimentaux de l’ADRC robuste)

Les valeurs de µ pendant les essais en vol présentés (cf. Tableau 7.2) sont calculées en utilisant
les équations 7.32 et 7.39 en prenant les seuils d’erreur suivants :
• Erreur de position : 2 cm sur x, y et z
• Erreur de vitesse : 0.3 m/s sur x, y et 0.2 m/s sur z
• Erreur de vitesse angulaire : 0.5 rad/s sur les axes Roulis/Tangage et 0.35 rad/s sur le
Lacet
et en utilisant les mêmes poids utilisés en simulation pour les  matrices Q :
0.02 0 0 0

 0 0.08 0 0 
• Pour le terme robuste du contrôle de position : Q = 
 
 0 0 0.45 0 

0 0 0 0.45
" #
0.1 0
• Pour le terme robuste du contrôle des vitesses angulaires : Q =
0 0.9

7.4.5.1 Expérience de largage de charge


Charge de 190 g Une masse de 190g est fixée sur le côté du drone comme on peut le voir
dans la Figure 7.42. Lorsque le drone est en vol stationnaire, la masse est lâchée, créant une
perturbation en forme d’échelon sur la boucle de contrôle d’altitude et déplaçant l’équilibre du
drone vers une poussée plus faible. Cette combinaison de perturbation externe et d’incertitude
interne est très courante dans les applications de drones et permet de démontrer la robustesse des
contrôleurs de vol. Dans ce paragraphe, nous montrons la comparaison entre les performances
de maintien de position résultantes lorsque l’ADRC normal et robuste sont utilisés. D’après la

126
7.4. Application de l’ADRC robuste pour le contrôle d’un drone multirotor

Position Error (m) Velocity (m/s)


0.04 0.1

Vx
0.02 0

x
0 -0.1
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
Time (s) Time (s)
0.04 0.1

Vy
0.02 0
y

0 -0.1
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
Time (s) Time (s)
0.2 0.5
ADRC ADRC

Vz
0.1 0
z

ADRC robust ADRC robust

0 -0.5
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
Time (s) Time (s)

(a) Erreur de position absolue (b) Courbes des vitesses

Figure 7.44 – Comparaison entre l’ADRC normal et robuste pendant la première expérience
de largage de charge (190g)
0.05

-0.05
0 1 2 3 4 5 6 7
Time (s)
0.05

-0.05
0 1 2 3 4 5 6 7
Time (s)
0.05

-0.05
0 1 2 3 4 5 6 7
Time (s)

Figure 7.45 – Erreur ν de position pendant la première expérience de largage de charge 190g
(intervalles µ en vert)

Figure 7.44a, on voit que l’ADRC robuste permet de réduire le déplacement de position dû à la
chute de masse d’environ 40% sur z et 15% sur la position horizontale.

Charge de 305 g Nous augmentons la masse de la charge utile larguée et nous répétons la
même expérience. La même tendance de la réduction des erreurs peut être observée dans la
Figure 7.46. La vidéo de ce test peut être vue dans https://youtu.be/9jKolRjkcQg.
Position Error (m) Velocity (m/s)
0.05 0.1
Vx

0
x

0 -0.1
0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8
Time (s) Time (s)
0.05 0.1
Vy

0
y

0 -0.1
0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8
Time (s) Time (s)
0.4 0.5
ADRC
ADRC
ADRC robust
Vz

0.2 0
z

ADRC robust

0 -0.5
0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8
Time (s) Time (s)

(a) Erreur absolue de position (b) Courbes des vitesses

Figure 7.46 – Comparaison entre l’ADRC normal et robuste pendant la deuxième expérience
de largage de charge (305g)

127
Chapitre 7. Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC)

0.05

-0.05
0 1 2 3 4 5 6 7
Time (s)
0.05

-0.05
0 1 2 3 4 5 6 7
Time (s)
0.05

-0.05
0 1 2 3 4 5 6 7
Time (s)

Figure 7.47 – Erreurs ν de position pendant la deuxième expérience de largage de charge


(305g) (intervalles µ en vert)

7.4.5.2 Rejet des perturbations générées par le vent


Le vent est généré par trois ventilateurs d’un mètre de diamètre disposés comme indiqué
dans la Figure 7.48, permettant de créer un flux d’air turbulent atteignant une vitesse maximale
de 5m/s à 1m de distance des ventilateurs (même dispositif utilisé en Chapitre 6).

Figure 7.48 – Quadrotor pendant l’expérience - Le vent souffle dans la direction de l’axe Y

Vol stabilisé en présence de vent Dans cette expérience, les ventilateurs sont mis en marche
pendant environ 30s le long de l’axe y du repère NED (correspondant à l’axe de roulis du drone)
alors que le drone est en vol stationnaire à 1m de distance de la source de vent. D’après les
résultats du maintien en position dans Figure 7.49, l’augmentation robuste permet de réduire
le déplacement maximal d’environ 40%. L’effet sur l’angle de lacet est moins sensible (troisième
sous-graphe dans la Figure 7.51), car le drone ne traverse pas la zone de perturbation et le vent
n’atteint pas rapidement sa vitesse maximale. D’après les perturbations de force et de couple
estimées (Figure 7.52), il est clair que le drone est initialement déséquilibré (les perturbations
avant l’application du vent à t = 20s ne sont déjà pas égales à 0).

128
7.4. Application de l’ADRC robuste pour le contrôle d’un drone multirotor

Figure 7.49 – Erreurs de suivi de position 3D et sphères de rayon égal à l’erreur maximale
correspondantes pendant le vol stationnaire perturbé

0.02

-0.02
0 5 10 15 20 25 30 35 40 45 50
Time (s)
0.05

-0.05
0 5 10 15 20 25 30 35 40 45 50
Time (s) ADRC
ADRC robust
0.02

-0.02
0 5 10 15 20 25 30 35 40 45 50
Time (s)

Figure 7.50 – Erreurs ν de position pendant le vol stationnaire dans le vent (intervalles µ en
vert)

129
Chapitre 7. Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC)

MSE = 0.57 (ADRC) , 0.51 (ADRC robust )

Roll Error (deg)


5

-5
0 5 10 15 20 25 30 35 40 45 50
Time (s)
Pitch Error (deg) MSE = 0.79 (ADRC), 0.69 (ADRC robust )
5

-5
0 5 10 15 20 25 30 35 40 45 50
Time (s)
Yaw Error (deg)

MSE = 0.36 (ADRC) , 0.30 (ADRC robust ) ADRC


2 ADRC robust

-2
0 5 10 15 20 25 30 35 40 45 50
Time (s)

Figure 7.51 – Erreurs de suivi d’attitude pendant e vol stationnaire perturbé

0.1
x
y
0.08 z
Normalized Force Disturbance

0.06

0.04

0.02

-0.02
0 10 20 30 40 50 60 70
Time (s)

(a) forces perturbatrices estimées


0.2
Roll
Pitch
0.15 Yaw
Normalized Torque Disturbance

0.1

0.05

-0.05

-0.1

-0.15
0 10 20 30 40 50 60
Time (s)

(b) Couples perturbateurs estimés

Figure 7.52 – Perturbations normalisées estimées pendant l’expérience du vol stabilisé (Vent
marche : t = 20s - Vent arrêt : t = 50s)

130
7.4. Application de l’ADRC robuste pour le contrôle d’un drone multirotor

Suivi de trajectoire en présence de vent Dans cette expérience, nous recréons des condi-
tions similaires à celles présentées en Section 7.4.4. Le scénario de test considéré est le suivant :
les ventilateurs sont allumés pendant tout le vol, la trajectoire suivie par le drone consiste en
une boucle fermée formée par deux rectangles adjacents devant la source de vent. Lorsque le
drone atteint le point le plus proche des ventilateurs (1m de distance), il s’arrête pendant 30
secondes avant de poursuivre son vol. La courbe temporelle de la trajectoire de référence de
position correspondante est présentée dans Figure 7.53. La même comparaison expérimentale
peut également être visionnée en vidéo : https://youtu.be/Ghnjsz2KKSU.
1.5
x
y
z

0.5
Position in NED (m)

-0.5

-1

-1.5
0 20 40 60 80 100 120
Time (s)

Figure 7.53 – Trajectoire de la position de référence exprimée dans le repère NED

Figure 7.54 – Erreurs de suivi de position en 3D et sphères de rayon égal à l’erreur maximale
correspondantes pendant l’expérience de suivi de trajectoire

Les résultats du suivi de position sont visibles sur les Figures 7.54 et 7.55. Les erreurs ν
correspondantes utilisées par le contrôleur de position robuste sont données sur la Figure 7.56
où il est clair que le contrôleur robuste permet d’amener l’erreur combinée dans l’intervalle
[−µ, µ]. On peut voir que le déplacement maximal est réduit de 50% lorsque l’ADRC robuste
est utilisé. Les erreurs de suivi d’attitude correspondantes sont dans la Figure 7.57. Le suivi du
lacet est amélioré d’environ 17% (erreur quadratique moyenne).
En revanche, il est intéressant de noter que les erreurs de suivi en roulis et en tangage
sont légèrement plus élevées lorsque l’ADRC robuste est utilisé. En fait, les angles de référence

131
Chapitre 7. Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC)

Ref
ADRC
ADRC
robust

Main direction of
the air flow
-1.5
1.2
-1

1
-0.5
Z (m)

0.8 Takeoff and Landing 0

0.6 0.5

1
X (m)
-1 -0.5 0 1.5
0.5 1
Y (m)

Figure 7.55 – Suivi de trajectoire 3D lorsque ADRC (bleu) et l’ADRC robuste (rouge) sont
utilisés - Les ventilateurs sont placés au niveau du point (x, y, z) = (0, 2, 1.2)

0.05

-0.05
0 10 20 30 40 50 60 70 80
Time (s)
0.05

-0.05
0 10 20 30 40 50 60 70 80
Time (s) ADRC
ADRC robust
0.02

-0.02
0 10 20 30 40 50 60 70 80
Time (s)

Figure 7.56 – Erreurs de position ν pendant l’expérience de suivi de trajectoire (les intervalles
µ sont en vert)

comparés ne sont pas exactement les mêmes puisque dans le cas de l’ADRC robuste, la consigne
de poussée est augmentée du terme robuste, de sorte que l’objectif d’attitude est plus important.
Cela signifie également que pour que le drone sous-actionné dévie moins de sa trajectoire de
référence, il doit effectuer des corrections d’attitude plus importantes. De plus, cela pourrait
être dû au couplage entre la dynamique de l’attitude et de la position horizontale, car le calcul
du terme robuste ne prend pas en compte la dynamique des signaux d’entrée (qui sont les
composantes de poussée projetées sur les axes Nord-Est). Si la dynamique de l’attitude peut
être estimée, il est possible de la prendre en compte dans le calcul des termes robustes. Pour ce
faire, les états dérivés des signaux d’erreur doivent être ajoutés à la dynamique, et doivent donc
être différentiés numériquement. Cela pourrait être une perspective intéressante pour ce travail.

132
7.4. Application de l’ADRC robuste pour le contrôle d’un drone multirotor

MSE = 0.76 (ADRC) , 1.03 (ADRC robust )

Roll Error (deg)


10

-10
0 10 20 30 40 50 60 70 80
Time (s)

Pitch Error (deg)


MSE = 0.95 (ADRC), 1.19 (ADRC robust )
10

-10
0 10 20 30 40 50 60 70 80
Time (s)
Yaw Error (deg)

MSE = 0.79 (ADRC) , 0.51 (ADRC robust ) ADRC


5 ADRC robust

-5
0 10 20 30 40 50 60 70 80
Time (s)

Figure 7.57 – Erreurs de suivi d’attitude pendant l’expérience de suivi de trajectoire

0.12
x
y
0.1 z
Normalized Force Disturbance

0.08

0.06

0.04

0.02

-0.02
0 10 20 30 40 50 60 70 80 90 100
Time (s)

(a) Force perturbatrice estimée


0.2
Roll
Pitch
Yaw
0.15
Normalized Torque Disturbance

0.1

0.05

-0.05

-0.1

-0.15
0 10 20 30 40 50 60 70 80 90 100
Time (s)

(b) Couple perturbateur estimé

Figure 7.58 – Estimations de la force et couples de perturbation normalisés pendant l’expé-


rience de suivi de trajectoire

133
Chapitre 7. Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC)

7.5 Conclusion
Une amélioration de la loi de contrôle ADRC appliquée pour un drone multirotor est propo-
sée. Elle permet de rendre la boucle fermée moins sensible aux incertitudes sur les paramètres
du système. Le contrôleur proposé possède un terme additif qui est calculé sur la base de la
théorie de Lyapunov et de la connaissance des limites supérieures et inférieures des incertitudes
des paramètres. L’algorithme de contrôle qui en résulte présente certaines similitudes avec la
commande à mode glissant (Sliding Mode Control) car il consiste en un gain (lié aux inter-
valles d’incertitude maximum) multipliant le signe d’une certaine fonction d’erreur. Cependant,
le contrôleur proposé est moins agressif grâce à une limite supérieure variable dans le temps qui
tire parti de la dynamique de l’estimation des perturbations. En outre, l’augmentation robuste
permet uniquement d’aider le contrôleur classique ADRC à récupérer ses performances lorsque
les termes d’erreur deviennent plus importants que les conditions nominales, ce qui se produit
en présence d’erreur sur les paramètres du système.
L’analyse théorique de stabilité est fournie sur un système à dynamique simplifiée et la
validité de l’approche est confirmée par la simulation et des tests expérimentaux approfondis
sur le contrôle de position et d’attitude d’un drone multirotor. Afin de tester la robustesse de
l’approche aux incertitudes paramétriques, des expériences de largage de charge ont été réalisées,
ainsi que des vols dans des conditions venteuses avec une charge utile attachée (dont la masse est
inconnue du point de vue des contrôleurs). Une méthodologie fréquentielle pour régler l’ADRC
est fournie afin de simplifier la sélection des gains de suivi et d’estimation. Cette méthode de
réglage est le résultat de multiples essais et va-et-vient entre la simulation et l’expérience, et a
été appliquée avec succès en pratique (Section 7.4.5). Des vidéos comparatives de certaines des
expériences réalisée ont été effectuées. 4 .
Dans la méthode de conception de l’augmentation robuste, la dynamique et les saturations
des moteurs n’ont pas été prises en compte, mais dans la pratique, nous avons remarqué que
ces effets avaient un effet notable sur la façon dont les termes additifs peuvent être augmentés.
Une solution que nous avons proposée consiste à limiter le terme robuste pour qu’il reste dans
un intervalle admissible.
Ce nouveau contrôleur ADRC robuste peut être vu comme une alternative viable aux contrô-
leurs trop simples ou trop compliqués lorsque les perturbations affectant le drone sont à la fois
exogènes et endogènes. En dehors des améliorations de stabilité et de performance prouvées
qu’apporte cette modification de l’ADRC, elle peut être utilisée à des fins de surveillance. En
effet, elle fournit de nouveaux outils pour évaluer la performance globale du suivi et de l’estima-
tion (intervalle de comportement nominal [−µ, µ]), qui peuvent être utilisés dans des algorithmes
de décision de plus haut niveau pour assurer la sécurité du vol.

4. Largage de charge : https://youtu.be/9jKolRjkcQg


Suivi de la trajectoire : https://youtu.be/Ghnjsz2KKSU

134
Quatrième partie

Conclusion et Perspectives

135
Conclusion

La problématique du contrôle des drones multirotor à usage industriel en milieu aérody-


namique perturbé a été explorée au cours de cette thèse. L’approche adoptée s’est définie à la
lumière des recommandations et des contraintes liées au milieu industriel de l’entreprise Donecle :
1. La suite des capteurs et la carte contrôleur de vol du drone ne devraient pas être changés.
2. Les solutions développées devraient pouvoir s’intégrer facilement dans le logiciel de vol
Donecle.
3. Les drones volent à basses vitesses (de l’ordre de 0.5 m/s) et devraient pouvoir garder un
bon suivi de trajectoire (erreur maximale en dessous de 20 cm) en présence de vent modéré
(de l’ordre de 5 m/s et allant jusqu’à 8m/s).
4. Les solutions développées devraient pouvoir se généraliser facilement à de nouvelles confi-
gurations de drones sans grand effort de réglage.
Pour s’adapter à ce contexte, nous avons choisi une approche inspirée du principe de rejet de
perturbations tel que défini dans [Gao, 2014] qui consiste à séparer l’objectif de suivi de trajec-
toire de celui du rejet de perturbations et à estimer ces dernières sans une grande connaissance
a priori du système. Ce principe repose sur trois hypothèses de base :
1. Les perturbations pénètrent le système par le même canal que les entrées de commande.
2. Les perturbations sont indépendantes de l’état du système.
3. Au moins le gain et l’ordre du système à contrôler sont connus.
Ces hypothèses ne sont pas entièrement respectées dans le cas des perturbations aérodynamiques
que subit un drone multirotor, mais il est possible de faire des approximations et de concevoir
des solutions pour s’en rapprocher. C’est le propos de cette thèse.
Pour respecter la première hypothèse les perturbations ont été modélisées comme des forces
et couples sur les dynamiques de vitesses (linéaire et angulaire) du drone, et puisque les entrées
de commande sont en réalité des signaux PWM (ou RPM), un modèle des actionneurs doit être
identifié et inversé afin de transformer ces signaux en des forces et couples moteurs équivalents.
Il s’agit de l’algorithme de mixage que nous avons développé pour la configuration coaxiale du
drone octorotor de Donecle. Dans la conception de cet algorithme, un modèle statique compre-
nant les interactions entre les hélices a été utilisé, ce qui constitue une nouveauté. L’influence
de cet algorithme sur les performances de vol n’a cependant pas été très importante en essais
expérimentaux.
La deuxième hypothèse liée à la dépendance entre perturbations et l’état du système peut
en réalité être tolérée à basses vitesses, ce qui correspond aux conditions opérationnelles des
drones d’inspection Donecle et aux objectifs de résistance au vent visés. Nous avons vérifié cela
à travers une étude expérimentale en conditions perturbées (avec des vitesses de vent autour
de 5 m/s) où l’intégration des vitesses dans le modèle des forces perturbatrices utilisées pour le
contrôle adaptatif MRAC n’a pas apporté un gain de performances remarquable. Nous convenons
tout de même qu’en absence d’excitation persistante les paramètres adaptatifs n’ont pas de
signification physique et donc la dépendance des perturbations par rapport aux vitesses n’a pas
été entièrement exploitée. Pour ce faire un travail d’identification est nécessaire, au risque de
rendre la solution très dépendante de la plateforme utilisée et des conditions expérimentales
de l’identification. L’exploration de ce volet de modélisation des perturbations en fonction de
l’état du système est une perspective intéressante de notre travail qui permettrait de voler à des
vitesses de vent au delà de 8 m/s. Les résultats expérimentaux nous ont conduit à choisir une

136
solution de contrôle basée sur l’utilisation d’Observateurs d’État Étendu (ESO) pour l’estimation
des perturbations, en combinaison avec un algorithme de suivi de trajectoire générée par un
Tracking Differentiator (TD), ce qui constitue le contrôleur ADRC. Ce contrôleur étant adapté
aux systèmes en chaîne d’intégrateurs, il a été utilisé pour les dynamiques de position et de
vitesse angulaire.
La troisième hypothèse ne peut pas à son tour être entièrement vérifiée. En effet, bien que
l’ordre du système est connu, son gain est généralement incertain. C’est d’une part à cause
des erreurs de mesure (ou d’estimation) de la masse et de l’inertie, et d’autre part à cause
de la variabilité de l’efficacité des moteurs en fonction du régime de vol, de la tension batterie
(quand les mesures RPM ne sont pas disponibles) et des conditions environnantes. Pour s’assurer
que ces incertitudes ne vont pas conduire pas le système à l’instabilité et afin de garder les
performances nominales d’un contrôleur ADRC réglé en fonction d’une connaissance initiale du
gain du système, nous avons ajouté un terme robuste calculé en utilisant la théorie de stabilité
de Lyapunov à partir de bornes maximales sur les paramètres. Cette approche robuste a été
proposée dans [Jasim and Veres, 2020] et nous l’avons généralisée au cas d’un contrôleur avec
observateur de perturbations.
Tous les algorithmes comparés et développés ont été validés expérimentalement sur divers
drones : un octorotor expérimental (Chapitre 5), un quadritoror expérimental (Chapitre 6 et
Chapitre 7) et enfin l’octorotor industriel Donecle. Le ratio du temps de la thèse passé en
expérimentation est de l’ordre de 30%.

137
Perspectives

Les premiers résultats expérimentaux sur le drone industriel sous conditions de vent élevé
sont prometteurs et montrent que les algorithmes proposés permettent de réduire considéra-
blement les erreurs de position et de lacet causées par les perturbations. Nous sommes tout de
même persuadés que plusieurs pistes restent à explorer pour monter encore plus en performance,
notamment pour faire face à des vitesses de vent plus importantes :
• Si le drone coaxial est utilisé, il convient de poursuivre la piste du mixage coaxial que
nous avons mise de côté. La principale limitation est liée au modèle lui même qui n’est
fidèle qu’en conditions statiques, et donc son inversion et utilisation en boucle ouverte
ne peut être qu’approximative. Nous pensons que dans ce cas l’ajout des mesures de
vitesses moteurs RPM dans les ESC est justifiée. L’utilisation de notre mixage coaxial
permettra alors de faciliter la tâche à l’algorithme de contrôle des RPMs en opérant une
sorte d’inversion dynamique pour ramener le système à un comportement linéaire.
• Les observateurs de l’ADRC peuvent être complexifiés en utilisant des termes d’erreur
non linéaires. En effet, l’ESO linéaire utilisé tout le long de ce travail est basé sur une
erreur d’estimation linéaire, il est possible d’introduire des fonctions non-linéaires de cette
erreur. Une fonction couramment utilisée est appelée f al et donnée par :
ϵ
f al(ϵ) = si |ϵ| < δ et ϵ|ϵ|α−1 sinon
δ 1−α
Cette fonction d’erreur peut être visualisée sur la Figure 7.59 pour α = 0.5 et δ = 0.4.
On voit notamment que les faibles erreurs sont amplifiées et à l’inverse les erreurs très
importantes sont amorties. L’effet pratique de cette modification reste à vérifier, des essais
préliminaires à faibles vitesse de vent ont en effet montré un gain négligeable. Une autre
1

0.8 fal( )

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

Figure 7.59 – Comparaison entre une erreur linéaire et une erreur non-linéaire pouvant être
utilisée pour les observateurs de perturbations

façon de complexifier l’ESO est de modéliser la perturbations avec plus d’états comme
suggéré en Équation (4.3). L’effet de la dérivée première de la perturbation par exemple
pourrait enrichir la gamme fréquentielle des signaux que peut capturer l’observateur.
• Les mesures des accéléromètres de l’IMU, indispensables à l’estimation de l’état ciné-
matique du drone, sont une mine d’informations que nous n’avons pas exploitée. Cette
mesure d’accélération pourrait en effet être intégrée dans l’observateur des forces per-
turbatrices. Le problème est qu’elle est tellement bruitée qu’elle devient inutilisable sans
baisser considérablement la fréquence de coupure de l’observateur si utilisée seule, comme

138
le montre la Figure 7.60. Une idée serait de fusionner ces mesures avec celles de la po-
sition (utilisées pour le moment toutes seules) ce qui permettrait de capter plus d’effets
perturbateurs transitoires que la version actuelle de l’observateur filtrerait par défaut.
6
ESO
Acc based DO

Force Disturbance Estimation (N)


0

-2

-4

-6

-8

-10
100 110 120 130 140 150 160 170 180
Time (s)

Figure 7.60 – Comparaison entre l’estimation de la force de perturbation sur l’axe y par un
ESO (bleu) et un DO (Disturbance Observer) basé sur la mesure de l’accélération (orange) réglé
à la même fréquence de coupure

• Les versions actuelles des observateurs supposent que les perturbations (forces et couples)
ne dépendent pas des vitesses du drone, ce qui n’est pas rigoureusement correct. En effet,
les perturbations dépendent du vent (qui est exogène) mais aussi des vitesses du drone
lui-même et de ses hélices. Cette dépendance commence à se ressentir à des vitesses assez
élevés et il est usuel de ne pas en tenir compte. Mais pour monter en performance, une idée
serait de les intégrer dans les estimateurs. Ceci peut être fait en ajoutant des estimateurs
récursifs (moindres carrées ou variables instrumentales) en parallèle des observateurs
présentés (un peu comme les contrôleurs adaptatifs hybrides). Ces estimateurs peuvent
utiliser les mesures de l’accéléromètre pour extraire les corrélations aux vitesses. Ce type
d’estimation demande cependant que le système soit suffisamment excité pour que les
paramètres convergent vers leur vraies valeurs (condition de « persistent excitation ») ce
qui n’est pas forcément le cas pendant des phases de vol normales. Il serait envisageable
d’effectuer ces estimations hors ligne mais comme souligné dans le Chapitre 4, le risque
est encore une fois que les modèles seraient dépendants de la plateforme utilisée ainsi que
des conditions expérimentales.
• Une autre alternative à explorer, évoquée rapidement en conclusion du Chapitre 4, est
l’utilisation des techniques d’apprentissage pour estimer des perturbations complexes
après entraînement. Bien que cette approche sorte du cadre posé pour cette thèse, elle
peut être une opportunité pour Donecle qui a une énorme base de données de vol au-
tour des mêmes avions. Ces algorithmes pourraient ainsi apprendre les différents effets
aérodynamiques générés par l’interaction de l’air avec le fuselage de l’avion inspecté. Les
modèles appris permettraient de mieux gérer la résistance au vent en séparant encore
mieux les composantes internes et externes des perturbations, ces dernières étant bien
gérées par l’approche proposée dans la thèse.

Remarque Les deux dernières pistes proposées supposent que des vols d’identification avec
des signaux de commande permettant de bien exciter le système (comme une Séquence Binaire
Pseudo-Aléatoire) devraient être effectués. D’un point de vue pratique, ces vols pourraient être
automatisés et intégrés dans la chaîne de déploiement des drones Donecle : chaque drone devra
identifier les paramètres et/ou initialiser les différents algorithmes lors de son vol initial.

139
Mot de la fin

Le choix d’une approche pour résoudre un problème scientifique quelconque a beau être
guidé par une analyse des objectifs, du contexte et de l’état de l’art, il n’est pas vraiment
le résultat d’un système déterministe. Il est plus proche d’un processus aléatoire où peuvent
intervenir ponctuellement toutes sortes de circonstances et changer son cours : une rencontre
fortuite dans un congrès, le hasard d’une recommandation Google Scholar, et parfois même les
airs de musique dans ses écouteurs. Cela trouve son écho dans cette citation de Thomas Samuel
Kuhn, questionnant l’objectivité même de l’évolution des théories scientifiques.
Il n’y a pas d’algorithme neutre pour le choix d’une théorie, pas de procédure systé-
matique de décision, qui, appliquée à bon escient, doive conduire chaque individu du
groupe à la même décision.

140
Cinquième partie

Annexes

141
Annexe A

Revisite de quelques principes de


conception de lois de commande

On considère le système linéaire suivant, qui peut représenter soit la dynamique de la vitesse
verticale soit celle de l’une des trois vitesses angulaires d’un drone sous-actionné à poussée
unidirectionnelle :
v̇ = αumax (u + σ)
(

1
(A.1)
u̇ = τact (u∗ − u)

• v est une vitesse linéaire ou angulaire
• α = ωJ
• J est la masse ou l’inertie
• ω est un coefficient d’efficacité des moteurs
• umax est la poussée ou le couple maximaux pouvant être atteints par les moteurs
• u est la poussée totale le couple normalisés ∈ [0..1]
• u∗ est la consigne de poussée ou de couple normalisés ∈ [0..1] : entrée de commande
• σ est une force ou couple perturbateurs normalisés ∈ [−1..1]
Ce système peut aussi s’écrire sous la forme d’état suivante
" # " # " #
0 αumax 0 ∗ αumax
Ẋ = 1 X+ 1 u + σ (A.2)
0 − τact τact 0
" #
v
Où X =
u

A.1 Effet de la dynamique moteur sur les performances de la


boucle de commande
Il est commun dans la conception des lois de commande de négliger la dynamique des action-
neurs en supposant qu’elle est suffisamment plus rapide que les dynamiques que l’on cherche à
atteindre. Quand ces dernières commencent à être de plus de plus rapides, cette hypothèse n’est
plus valable et il devient indispensable de tenir en compte de la dynamique des actionneurs pour
le réglage des gains de contrôle.
On se propose d’analyser cet effet sur la boucle fermée en considérant le système représenté
par l’Équation (A.1).

Hypothèses
• On dispose d’une consigne de vitesse vsp calculée par un contrôleur ou générateur de
trajectoire externes.
• Afin de simplifier l’étude et d’isoler l’effet de la dynamique moteur, on suppose en plus
que σ = 0

142
A.2. Effet du terme dérivé

• α et umax sont connus


On considère la structure de contrôle la plus simplifiée pour ce problème, à savoir un contrôleur
proportionnel, avec un terme constant pour contre-balancer la pesanteur.

u∗ = k (vsp − v) (A.3)

Écrivons maintenant la boucle fermée obtenue avec cette loi de contrôle en injectant l’Équa-
tion (A.3) dans l’Équation (A.2) :
"
0
# "
0
#
αumax
Ẋ = k 1 X+ k vsp (A.4)
− τact − τact τact

Donc les deux pôles en boucle fermée sont


1 1 p
λi = − ± 1 − 4αumax τact k (A.5)
2τact 2τact
q
1
Ce qui donne une bande passante de 2τact avec une pulsation propre ωn = αumax k
τact et un
1
amortissement δ = 2√αu τ k . Afin d’avoir un amortissement acceptable qui ne produit pas
max act
des oscillations dé-stabilisantes, il faut garantir δ ≥ δmin ce qui donne
1
k≤ 2 (A.6)
4αumax τact δmin

Et comme τact n’est généralement pas connu avec une grande précision, il convient d’identifier
une borne supérieure de cette constante de temps τacumax afin de l’utiliser dans l’expression de
la valeur maximale autorisée de k (Équation (A.6)).
La limite donnée par l’Équation (A.6) peut être dépassée si on ajoute un terme dérivé à la
loi de contrôle comme on le démontre en Annexe A.2.

A.2 Effet du terme dérivé


On ajoute un terme dérivé à la loi de contrôle de l’Équation (A.3), en négligeant les approxi-
mations de calcul numérique :
u∗ = k (vsp − v) − kd v̇ (A.7)
Ce qui produit une nouvelle dynamique en boucle fermée :
"
0
# "
0
#
αumax
Ẋ = 1 X+ vsp (A.8)
k
− τact − τact (1 + αumax kd ) k
τact

On remarque d’ores et déjà que kd vient rendre la dynamique interne plus rapide (puisque
1 + αumax kd ≥ 1). Plus précisément, on obtient les deux pôles suivants en boucle fermée :

1 + αumax kd 1
q
λi = − ± (1 + αumax kd )2 − 4αumax τact k (A.9)
2τact 2τact
1+αumax kd
q
Ce qui donne une bande passante de 2τact une pulsation propre de ωn = αumax k
τact (comme
1+αumax kd
dans le cas kd = 0) et un amortissement de δ = √
2 αumax τact k
. Ce qui permet alors d’aller chercher
des gains k plus forts étant donnée que la limite supérieure imposée par l’Équation (A.6) peut
être multipliée par 1 + αumax kd qui est aussi le facteur d’élargissement de la bande passante de
la boucle fermée.
En pratique néanmoins, le choix de kd est effectué selon les conditions des capteurs et des
vibrations dans le système. En fait, il est bien connu que le terme dérivé amplifie le bruit et il
doit alors être augmenté avec beaucoup de précaution. Du point de vue de la conception de la
loi de commande, il n’est pas alors un vrai paramètre de réglage, mais c’est un outil qui permet
de dépasser la dynamique des moteurs dans certains cas afin d’aller chercher plus loin. Ceci est

143
Annexe A. Revisite de quelques principes de conception de lois de commande

typiquement le cas du contrôle des vitesses angulaires de roulis et tangage, où le besoin d’agilité
nécessite de pouvoir atteindre des temps de réponse de l’ordre de 0.5s sur les angles, ce qui
n’est pas possible avec des moteurs dont la constante de temps est de l’ordre de 0.1s (ce qui est
typiquement le cas).
Pour résumer, une façon de voir le paramètre kd est de l’écrire comme suit :
c−1
kd = (A.10)
αumax
Où c ≥ 1 est un coefficient d’amplification de la bande passante des moteurs. Mais pour pou-
voir augmenter c il faut s’assurer que le bruit injecté par ce terme dérivé dans les signaux de
commande reste à des niveaux acceptables.

A.3 Réglage du terme intégral


L’ajout d’un terme intégral est souvent indispensable si on ne dispose pas d’autres solutions
pour résister aux perturbations. Analysons son effet sur la boucle fermée quand un état supplé-
mentaire x tel que ẋ = v correspondant à la position (ou l’angle) est ajouté. La loi de commande
s’écrit sous la forme : Z

u = k (vsp − v) − kd v̇ + ki (vsp − v) (A.11)

Avec vsp = k0 (xsp − x) et xsp est la consigne de x. On définit un nouvel état s = (vsp − v) et on
R

réécrit la dynamique de la boucle fermée, toujours en négligeant la dynamique des actionneurs


et le terme dérivé (kd = 0) pour se placer au cas le plus simple et isoler l’effet intégral.

0 1 0 0
   

Ẋ = −αumax kk0 −αumax k αumax ki  X + αumax kk0  xsp (A.12)


   
−k0 −1 0 k0
" #
x
Où X = . Les pôles de ce système de troisième ordre ont des expressions analytiques plus
vs
complexes que le second ordre et il est moins évident de les relier à des performances désirée.
Cependant, il est possible de les paramétrer de manière à avoir ne boucle fermée, un pôle réel
−pi (où pi > 0 en rad/s) et deux pôles complexes conjugués définis par un amortissement ξ et
une pulsation propre ω0 . Pour ce faire, si on traite le système comme une superposition d’un
second ordre et d’un premier ordre, il suffit de poser les gains comme suit :

k0

 = ω0

2ω0 ξ
k = αumax
(A.13)

= pi k

k
i

Cependant, le pôle ramené par le degré de liberté supplémentaire (correspondant à l’intégra-


teur) va influencer la dynamique de second ordre et faire qu’en réalité la boucle fermée ne se
comportera pas comme la superposition de ces deux dynamiques désirées. C’est là en fait une
limite du terme qui le rend peu efficace pour le rejet de perturbation puisqu’il modifie considé-
rablement la dynamique de base (destinée au suivi de trajectoire et donnée par le second ordre
(ω0 ,ξ) dans cet exemple). Cette influence peut être quantifiée et visualisée : sur la Annexe A.3
sont montrés les évolutions du pôle réel et des deux pôles complexes conjugués (à travers leur
pulsation et coefficient d’amortissent), en fonction du ratio entre le pôle pi et la pulsation ω0
désirés. On remarque notamment qu’au delà de pi = 0.5ω0 la dynamique résultante commence
à diverger considérablement des valeurs désirées, en rendant le deuxième ordre (et donc le suivi
de trajectoire) de plus en plus rapide et mal amorti. Un autre résultat intéressant est que le pôle
réel tend vers une valeur constante correspondant à 0.5ω0 , c’est en quelque sorte la limite de
rejet de perturbations du contrôleur PI (qui est de surcroit non atteignable en réalité puisqu’elle
dégrade le suivi de trajectoire comme le montre les deux sous-figures du dessous où on trace le
ratio entre les vraies pulsations et amortissement du second ordre et des valeurs désirées ω0 et
ξ).

144
A.3. Réglage du terme intégral

2
Actual
1.5 Ideal
0
Ratio p i/

0.5

0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
Desired ratio p i/ 0

2 1
error ratio

0.8
error ratio

1.5 0.6
0

0.4

1 0.2
0 0.5 1 1.5 2 0 0.5 1 1.5 2
Desired ratio p i/ 0
Desired ratio p i/ 0

Figure A.1 – Caractéristiques de la boucle fermée de troisième ordre en fonction du ratio entre
le pôle intégrateur et la pulsation propre des pôles conjugués

145
Annexe B

Lignes directrices du réglage d’un


contrôleur de vol PID pour un drone
Multirotor

B.1 Paramétrisation du système


Prenons comme entrées du système les commandes normalisées envoyées aux moteurs (PWM
ou RPM entre 0 et 1) notées δ ∈ Rn , n le nombre des moteurs. Ces signaux peuvent être reliés
à travers un modèle P̃ , généralement quadratique (cf. Chapitre 5), aux poussées normalisées de
toutes les hélices, f¯ ∈ Rn . Ces poussées peuvent être reliées linéairement aux forces et couples
d’actionnement normalisés qui constituent les entrées de commandes de position et d’attitude.
Notons les respectivement ūf ∈ R3 et ūQ ∈ R3 . On a alors :

ūf = Ff¯ ūQ = Hf¯ (B.1)

Où F et H sont les matrices ∈ R3×n décrivant la transformation des poussées individuelles


des hélices en poussée et couples globaux normalisés exercés sur le corps du drone. Pour un
multirotor unidirectionnel sous-actionné, on a plus précisément :
1
0 0 0 0 ... 0 0 0
     
mr hr1 . . . hrn
1  p
F = 0 0 0  0 . . . 0 H= 0 0   h1 . . . hpn  (B.2)
    
mp
1 2
0 0 n 1 ... 1 0 0 n ±1 . . . ∓1

Avec
• mr et mp dépendent de la configuration des moteurs et correspondent au nombre des
moteurs participant aux couples respectifs de roulis et tangage.
• hri (hpi ) ∈ {1, 0, −1} selon que le moteur numéro i produit du roulis (tangage) ou pas, et
dans le sens négatif ou positif.
La matrice de mixage normalisée
" # peut alors directement obtenue en calculant la pseudo-inverse
H
de la matrice concaténée . Cette matrice est de rang 4 pour les drones sous-actionnés et de
F
rang 6 pour les drones entièrement actionnés (pouvant faire de la poussée latérale).
En utilisant cette paramétrisation normalisée, le lien entre les entrées de commande ūf , ūQ
et les vraies poussée et couple uf , uQ est direct

0 0 0 0 0
   
mr lfmax
uf = 0 0 0  ūf uQ =  0 mp lfmax 0  ūQ (B.3)
   
0 0 nfmax 0 0 n
2 κfmax
| {z }
Gmax

Avec
• κ est le coefficient reliant la poussée d’une hélice à son couple aérodynamique.

146
B.2. Calcul des gains P-PID du contrôleur d’attiutde

• l est le bras de levier, distance entre le centre de poussée d’un moteur et l’axe de rotation.
La dynamique de position du drone sous-actionné peut alors s’écrire de la manière suivante



 ṗ =v
      
0 0


nfmax (B.4)
= R  0  + σ f  + 0
     


 v̇ m      

ūf g

Et son attitude :
= RΩ×
(

(B.5)
Ω̇ = J−1 Gmax (ūQ + σ Q )
Où σ f et σ Q sont les perturbations regroupées et normalisées.
Les gains du système normalisé sont alors :
nfmax
αf = αQ = J−1 Gmax (B.6)
m

B.2 Calcul des gains P-PID du contrôleur d’attiutde


La loi de contrôle d’attitude P-PID s’écrit de la façon suivante :

= ke
(
Ωsp
(B.7)
= kp (Ωsp − Ω) + ki (Ωsp − Ω) − kd Ω̇
R
ūQ

Où e est une erreur angulaire calculée en se basant sur une représentation sans singularité de
l’attitude (comme les quaternions ou le groupe SO(3)).
En considérant des petits angles, afin de pouvoir linéariser l’Équation (B.5), les gains du
contrôleur peuvent être calculés en suivant les étapes suivantes :
1. Fixer le gain dérivé kd comme expliqué en Annexe A indépendamment du reste des gains
afin de rendre le système plus rapide. L’augmentation de kd amplifie le bruit de mesure
dans les signaux de commande donc il doit être gardé le plus bas possible. Des valeurs
typiques sont entre 0.001 et 0.05 pour le roulis et tangage et 0 pour le lacet, pour lequel
des dynamiques plus lentes sont acceptables.
2. Choisir un temps de réponse à 95% pour le suivi d’une consigne échelon en angle. Cette
valeur est typiquement entre 0.5s et 1s pour le roulis et le tangage et en 1s et 2 pour le
lacet. Afin de trouver les gains k et kp correspondant, il faut choisir un amortissement
réduit, soit ξ = 0.9. Ce qui donne une pulsation ωatt = tr 4 pour chaque axe. Les gains
95%
se calculent ensuite comme suit :
ωatt 2ξωatt  
kj = kpj = 1 + αQj k d (B.8)
2ξ αQj

0 0
 
h i h i αQ1
Où j ∈ {1, 2, 3}, k = k1 k2 k3 , kp = kp1 kp2 kp3 et αQ =  0 αQ2 0 . Il
 
0 0 αQ3
est important de s’assurer que la bande passante ωatt ξ est au moins trois fois inférieure à
celle des actionneurs (dont une estimation devrait être connue). Si cela génère des temps de
réponse très lents, et que les gains dérivé de la première étape ne peuvent plus être boostés,
alors les vitesses linéaires consignes (de la trajectoire à suivre) devraient être baissées.
3. Choisir une fréquence de coupure ωi pour l’intégrateur, ça permet de résister aux pertur-
bations mais cette fréquence soit être gardée inférieure à ωatt afin d’éviter les oscillations.
Typiquement ωi est entre 0.1 et 1 (cet effet es expliqué avec plus de détail en Annexe A.3,).
Les gains de l’intégrateur s’obtiennent alors simplement comme :

kij = ωi kpi (B.9)

147
Annexe B. Lignes directrices du réglage d’un contrôleur de vol PID pour un drone Multirotor

B.3 Calcul des gains du contrôleur de position


La même procédure de placement de pôles d’un second ordre peut être suivie pour le réglage
de la boucle de position, en s’assurant que la bande passante demandée (pour les coordonnées
horizontales) est au moins trois fois inférieure à celle de l’attitude (structure en cascade oblige).
Si des oscillations basses fréquences apparaissent, ça signifie que la boucle d’attitude est trop
lente pour suivre la vitesse linéaire demandée (donnée par un profil en trapèze par exemple).
Comme les étapes précédentes ont été suivies pour maximiser la dynamique d’attitude que peut
atteindre le drone (au vu des moteurs et du niveau de bruit toléré), et si la vitesse linéaire
demandée ne peut pas être baissée, une solution pour réduire ces oscillations serait d’ajouter un
terme dérivé sur la boucle de vitesse afin d’augmenter artificiellement la dynamique d’attitude
(de la même manière qu’un terme dérivé sur la vitesse angulaire augmente artificiellement la
bande passante des moteurs).

Remarque Dans cette approche de réglage que nous proposons, les termes dérivés sur les
vitesses sont considérés en quelque sorte comme des outils de dernier recours qui ne sont utilisés
que quand la dynamique des actionneurs (ou de l’attitude si on regarde la dynamique de la
position horizontale) ne parvient pas à atteindre les performances de vol désirés. Il s’agit là
encore d’un atout très important que possèdent les contrôleurs PID.

B.4 Implémentation des Filtres et Observateurs


Toute l’analyse et la conception des lois de commande est effectuée dans le domaine temporel
continu. Mais toutes les lois sont implémentés sur un calculateur avec des temps d’échantillon-
nage variables selon la cadence des mesures disponibles.
La plupart des algorithmes développés peuvent être considérés comme des filtres linéaire et
donc écrits dans le domaine continu sous la forme d’équation d’état :

Ẋ = AX + Bu (B.10)

Où A ∈ Rn×n , B ∈ Rn×m , n est le nombre d’état et m le nombre d’entrées.


Pour l’implémentation il suffit alors de discrétiser ce système et de l’écrire sous la forme

Xk = Ad Xk−1 + Bd uk−1 (B.11)

Différentes façon de discrétisation sont possibles qui sont plus ou moins précises, on choisit la
méthode du bloqueur d’ordre zéro (Zero Order Hold) qui permet d’avoir en sortie du système
discret la réponse du système continu quand les entrées sont transformées en une suite de
paliers séparés dans le temps par un temps d’échantillonnage connu dt. Avec cette technique, les
expressions analytiques de Ad et Bd sont données par :

Ad = Ed (1 : n, 1 : n) Bd = Ed (1 : n, n + 1 : n + m) (B.12)

Où la matrice Ed est l’exponentielle matricielle suivante :


" #
dtA dtB
Ed = exp( ) (B.13)
0m×n 0m×m

Les expressions de Ad et Bd peuvent être alors trouvées en effectuant le calcul analytique de


cette exponentielle, ce qui peut être fait avec la ToolBox "Symbolic" de MATLAB 1 .

1. https://fr.mathworks.com/help/symbolic/index.html?s_tid=CRUX_lftnav

148
Annexe C

Design Amélioré de l’Observateur


d’État Étendu (ESO)

C.1 Introduction
Il est très commun que les mesures utilisées par l’ESO soient filtrées dans le logiciel de
commande (donc par un filtre connu) avant d’être directement exploitées. Ce filtrage apporte une
dynamique supplémentaire et un retard qui rend la forme basique de l’ESO moins performante.
Dans cet annexe, nous montrons l’importance de la prise en compte de cet effet dans la conception
de l’observateur à travers un exemple simplifié représentant une dynamique inertielle sur une
seule dimension : 
ẋ

 =v
v̇ = α (uact + σ) (C.1)
1

= (u − uact )

u̇
act τact

Nous supposons que c’est la mesure de vitesse v qui est utilisée par l’observateur (ce qui est le cas
de la dynamique d’attitude avec les vitesses angulaires provenant du Gyro), et que cette mesure
est filtrée avant d’être injectée dans l’algorithme de commande par un passe-bas de premier
ordre de constante de temps τf ilt

1
v̇f ilt = (v − vf ilt ) (C.2)
τf ilt

C.2 Algorithme de Contrôle


Pour contrôler ce système nous utilisons un contrôleur Proportionnel (sur la position et la
vitesse) augmenté d’un observateur ESO pour le rejet des perturbations :

u = kp k (xsp − x) − vf ilt − σ̂ (C.3)




Où σ̂ est calculée par un ESO de fréquence de coupure fESO (Hz). Le filtre sur la vitesse est
négligé dans le schéma basique et l’observateur s’écrit sous la forme suivante :

σ̂˙

 = lα̂1 (vf ilt − v̂)
v̂˙

= α̂ (ûact + σ̂) + l0 (vf ilt − v̂) (C.4)
û˙ 1

= τ̂act (u − ûact )

act

Avec :
= (2πfESO )2
(
l1
(C.5)
l0 = 4πfESO

149
Annexe C. Design Amélioré de l’Observateur d’État Étendu (ESO)

Permettant d’avoir comme pôle double −2πfESO . Nous proposons ensuite un design amélioré
où le filtrage de v est intégré dans les équations de l’ESO

σ̂˙



 = α̂1 l2 (vf ilt − v̂)
v̂˙

= µf ilt (v̂ − vf ) + l1 (vf ilt − v̂)

f
(C.6)

 v̂˙ = α̂ (ûact + σ̂) + l0 (vf ilt − v̂)
˙

1
= τ̂act (u − ûact )

 ûact

Avec :
4π 2 fESO
3

l =
2

µf ilt


l1 = 2π (3fESO − µf ilt ) (C.7)
6πfESO
2

=

l0

µf ilt

Où µf ilt est la fréquence de coupure (Hz) du filtre sur v qui est dans notre cas simplement
µf ilt = 2πτ1f ilt . Ces gains permettent de placer un pôle triple égal à −2πfESO .

Remarque 1 Afin d’avoir une réponse temporelle équivalente entre une dynamique linéaire
à pôle double et une autre à pôle triple de la même valeur, il est possible de se référer à la
variation temps de réponse à 95% en fonction de la multiplicité donnée par le Tableau C.1.
En pratique il suffit alors de multiplier la fréquence demandée à l’observateur amélioré Équa-
tion (C.6) par 6.3
4.8 = 1.3125 afin d’avoir une estimée temporelle semblable à ce que donne l’ESO
basique Équation (C.4).

Multiplicité du pôle n Temps de réponse à 95%


1 3τ
2 4.8τ
3 6.3τ
4 7.75τ
5 9.15τ

Table C.1 – Temps de réponse 95% d’un système dynamique linéaire à pôle − τ1 de multiplicité
n

Remarque 2 Comme dans cet annexe l’accent est mis sur l’effet du filtrage des mesures sur
l’estimation des perturbations, alors nous supposons que les paramètres du système α et τact
sont parfaitement connus par le contrôleur, à savoir α̂ = α et τ̂act = τact .

C.3 Résultats en Simulation


Nous simulons le système linéaire représenté par l’Équation (C.1) avec les valeurs numériques
α = 0.3333 et τact = 0.1s. Les gains de la loi de contrôle et de l’ESO sont k = 1, kp = 15 et
fESO = 1.
Nous considérons un scénario simple où un échelon de consigne xsp est appliqué, suivi d’une
excitation de perturbation extérieure σ en échelon aussi. Les résultats sont montrées sur les
figures ci-dessous pour différentes valeurs de τf ilt .
Le filtrage est appliqué pour réduire les bruits de mesure, nous ajoutons alors un bruit
additif gaussien sur la sortie v. Nous remarquons sur la Figure C.1 que quand le filtre est
très rapide, les différences entre l’utilisation de l’observateur normal ou celui avec filtrage sont
presque inexistantes. Ceci n’est plus le cas quand le filtre devient plus lent (τf ilt = 0.1s) comme
le montre la Figure C.2. On remarque notamment que l’utilisation de l’ESO normal injecte des
oscillation dans l’estimation de perturbation et donc dans la loi de commande et impacte alors le
suivi de consigne. Tandis que l’utilisation de la version améliorée où le filtrage est pris en compte
Figure C.2b annule presque cet effet et conduit à des performances semblables à la Figure C.1b.

150
C.3. Résultats en Simulation

1.5 6
Real
1 ESO
5 ESO

X (m)
filt
0.5

0 4

Disturbance (N)
-0.5
0 5 10 15 20 25 3
Time (s)

1.5 2
Reference
1 Measurement 1

V (m/s)
0.5
0
0

-0.5
-1
0 5 10 15 20 25
0 5 10 15 20 25
Time (s) time (s)

(a) Rejet Effectué par l’estimation de l’ESO


1.5 6
Real
1 ESO
5 ESO filt
X (m)

0.5

0 4

Disturbance (N)
-0.5
0 5 10 15 20 25 3
Time (s)

1.5 2
Reference
1 Measurement 1
V (m/s)

0.5
0
0

-0.5
-1
0 5 10 15 20 25
0 5 10 15 20 25
Time (s) time (s)

(b) Rejet Effectué par l’estimation de l’ESO avec fil-


trage

Figure C.1 – Réponse du système quand τf ilt = 0.01s

Cette amélioration de l’ESO permet même d’éviter l’instabilité quand le filtrage est encore plus
lent comme le montre la Figure C.3 où le retard injecté devient si important pour être négligé.

151
Annexe C. Design Amélioré de l’Observateur d’État Étendu (ESO)

1.5 7
Real
1 6 ESO

X (m)
ESO filt
0.5 5

0 4

Disturbance (N)
-0.5 3
0 5 10 15 20 25
Time (s) 2

2 1
Reference
1 Measurement 0

V (m/s)
-1
0
-2

-1
-3
0 5 10 15 20 25
0 5 10 15 20 25
Time (s) time (s)

(a) Rejet Effectué par l’estimation de l’ESO


1.5 6
Real
1 5 ESO
X (m)

ESO filt
0.5
4
0
3

Disturbance (N)
-0.5
0 5 10 15 20 25 2
Time (s)
1
2
Reference
0
1 Measurement
V (m/s)

-1
0
-2

-1
-3
0 5 10 15 20 25
0 5 10 15 20 25
Time (s) time (s)

(b) Rejet Effectué par l’estimation de l’ESO avec fil-


trage

Figure C.2 – Réponse du système quand τf ilt = 0.1s

104
5000 8
Real
6 ESO
X (m)

ESO filt
0
4

2
Disturbance (N)

-5000
0 5 10 15 20 25 0
Time (s)
4 -2
10
2
Reference
1 -4
Measurement
V (m/s)

0 -6

-1 -8

-2
-10
0 5 10 15 20 25
0 5 10 15 20 25
Time (s) time (s)

(a) Rejet Effectué par l’estimation de l’ESO


1.5 8
Real
1 ESO
X (m)

6 ESO
filt
0.5

0
4
Disturbance (N)

-0.5
0 5 10 15 20 25
Time (s) 2

2
Reference
0
1 Measurement
V (m/s)

0 -2

-1
-4
0 5 10 15 20 25
0 5 10 15 20 25
Time (s) time (s)

(b) Rejet Effectué par l’estimation de l’ESO avec fil-


trage

Figure C.3 – Réponse du système quand τf ilt = 0.2s

152
Bibliographie

M. Achtelik, T. Bierling, J. Wang, and F. Holzapfel. Adaptive Control of a Quadcopter in the


Presence of large/complete Parameter Uncertainties. In Infotech@Aerospace, number March,
St. Louis, Missouri, 2011. AIAA.

B. Ahi and M. Haeri. Linear Active Disturbance Rejection Control from the Practical Aspects.
IEEE/ASME Transactions on Mechatronics, PP(c) :1–1, 2018. ISSN 1083-4435. doi : 10.
1109/TMECH.2018.2871880. URL https://ieeexplore.ieee.org/document/8470954/.

G. Antonelli, E. Cataldi, F. Arrichiello, P. R. Giordano, S. Chiaverini, and A. Franchi. Adaptive


Trajectory Tracking for Quadrotor MAVs in Presence of Parameter Uncertainties and External
Disturbances. IEEE Transactions on Control Systems Technology, 26(1) :248–254, 2018. ISSN
10636536. doi : 10.1109/TCST.2017.2650679.

E. Arabi, B. C. Gruenwald, T. Yucelen, and N. T. Nguyen. A set-theoretic model reference


adaptive control architecture for disturbance rejection and uncertainty suppression with strict
performance guarantees. International Journal of Control, 91(5) :1195–1208, 2018. ISSN
13665820. doi : 10.1080/00207179.2017.1312019.

M. Bangura and R. Mahony. Nonlinear dynamic modeling for high performance control of a
quadrotor. In Australasian Conference on Robotics and Automation, ACRA, 2012. ISBN
9780980740431.

M. Bangura and R. Mahony. Real-time model predictive control for quadrotors. In IFAC
Proceedings Volumes, volume 19, pages 11773–11780, Cape Town, South Africa, 2014. IFAC.
ISBN 9783902823625. doi : 10.3182/20140824-6-za-1003.00203. URL http://dx.doi.org/
10.3182/20140824-6-ZA-1003.00203.

L. Bauersfeld, E. Kaufmann, P. Foehn, S. Sun, and D. Scaramuzza. NeuroBEM : Hybrid Aero-


dynamic Quadrotor Model. Robotics : Science and Systems, 2021.

S. Behzadimanesh, A. Fatehi, and S. Fakhimi Derakhshan. Optimal fuzzy controller based on


non-monotonic Lyapunov function with a case study on laboratory helicopter. International
Journal of Systems Science, 50(3) :652–667, 2019. ISSN 14645319. doi : 10.1080/00207721.
2019.1567864. URL https://doi.org/10.1080/00207721.2019.1567864.

S. Bertrand, T. Hamel, and H. Piet-lahanier. Performance Improvement of an Predictive


Control : Application To an UAV Model. IFAC Proceedings Volumes, 39(16) :770–775, 2006.
ISSN 1474-6670. doi : 10.3182/20060912-3-DE-2911.00133. URL http://dx.doi.org/10.
3182/20060912-3-DE-2911.00133.

P. Bouffard, A. Aswani, and C. Tomlin. Learning-based model predictive control on a quadrotor :


Onboard implementation and experimental results. Robotics and Automation (ICRA), 2012
IEEE International Conference on, pages 279–284, 2012. ISSN 1050-4729. doi : 10.1109/
ICRA.2012.6225035.

A. Bounemeur, M. Chemachema, and N. Essounbouli. Indirect adaptive fuzzy fault-tolerant


tracking control for MIMO nonlinear systems with actuator and sensor failures. ISA Transac-
tions, 79(September 2017) :45–61, 2018. ISSN 00190578. doi : 10.1016/j.isatra.2018.04.014.
URL https://doi.org/10.1016/j.isatra.2018.04.014.

153
Bibliographie

Y. Bouzid. Guidance and control systems for autonomous aerial vehicles navigation. PhD thesis,
Université Paris Saclay, 2018.

D. Brescianini and R. D’Andrea. An omni-directional multirotor vehicle. Mechatronics, 55 :


76–93, 2018. ISSN 09574158. doi : 10.1016/j.mechatronics.2018.08.005.

D. Brescianini, M. Hehn, and R. D’Andrea. Nonlinear Quadrocopter Attitude Control. Technical


report, Institute for Dynamic Systems and Control (IDSC) ETH Zürich, Zurich, 2013. URL
https://doi.org/10.3929/ethz-a-010025751.

M. Brunner, K. Bodie, M. Kamel, M. Pantic, W. Zhang, J. Nieto, and R. Siegwart. Trajectory


Tracking Nonlinear Model Predictive Control for an Overactuated MAV. In International
Conference on Robotics and Automation ICRA 2020, pages 5342–5348, Paris, France, 2020.
ISBN 9781728173955.

W. Cai, J. She, M. Wu, and Y. Ohyama. Disturbance suppression for quadrotor UAV using
sliding-mode-observer-based equivalent-input-disturbance approach. ISA Transactions, 2019.
ISSN 00190578. doi : 10.1016/j.isatra.2019.02.028. URL https://doi.org/10.1016/j.
isatra.2019.02.028.

S. Campbell, N. Nguyen, J. Kaneshige, and K. Krishnakumar. Parameter Estimation for a Hy-


brid Adaptive Flight Controller. In AIAA Infotech@Aerospace Conference, pages 1–27, Reston,
Virigina, apr 2009. American Institute of Aeronautics and Astronautics. ISBN 978-1-60086-
979-2. doi : 10.2514/6.2009-1803. URL http://arc.aiaa.org/doi/10.2514/6.2009-1803.

A. Castillo, R. Sanz, P. García, and P. Albertos. A quaternion-based and active disturbance


rejection attitude control for quadrotor. In 2016 IEEE International Conference on Informa-
tion and Automation (ICIA), number August, pages 240–245, Zhejiang, China, 2016. IEEE.
ISBN 9781509041022. doi : 10.1109/ICInfA.2016.7831829.

A. Castillo, R. Sanz, P. Garcia, and P. Albertos. Robust Design of the Uncertainty and Dis-
turbance Estimator. IFAC-PapersOnLine, 50(1) :8262–8267, 2017. ISSN 24058963. doi :
10.1016/j.ifacol.2017.08.1396. URL https://doi.org/10.1016/j.ifacol.2017.08.1396.

A. Castillo, R. Sanz, P. Garcia, W. Qiu, H. Wang, and C. Xu. Disturbance observer-based


quadrotor attitude tracking control for aggressive maneuvers. Control Engineering Practice,
82(September 2017) :14–23, 2019. ISSN 09670661. doi : 10.1016/j.conengprac.2018.09.016.
URL https://doi.org/10.1016/j.conengprac.2018.09.016.

J. Chebbi and Y. Brière. Experimental Study of Aerodynamic Disturbance Rejection On Mul-


tirotor Unmanned Aerial Vehicles. In European Control Conference 2021, ECC 2021, pages
2026–2032, Rotterdam, Netherlands, 2021. ISBN 9789463842365.

J. Chebbi, F. Defay, Y. Briere, and A. Deruaz-Pepin. Novel Model-Based Control Mixing Stra-
tegy for a Coaxial Push-Pull Multirotor. IEEE Robotics and Automation Letters, PP(c) :1,
2020. doi : 10.1109/LRA.2019.2963652.

J. Chen, R. Sun, and B. Zhu. Disturbance observer-based control for small nonlinear UAV
systems with transient performance constraint. Aerospace Science and Technology, 105 :
106028, 2020. ISSN 12709638. doi : 10.1016/j.ast.2020.106028. URL https://doi.org/10.
1016/j.ast.2020.106028.

M. Cunningham and J. E. Hubbard. System Identification of a Multi-rotor UAV Actuator. In


AIAA Atmospheric Flight Mechanics Conference, number January, Texas, 2017. AIAA. ISBN
978-1-62410-448-0. doi : 10.2514/6.2017-1187. URL http://arc.aiaa.org/doi/10.2514/6.
2017-1187.

J. Dong and B. He. Novel fuzzy PID-type iterative learning control for quadrotor UAV. Sensors
(Switzerland), 19(1), 2019. ISSN 14248220. doi : 10.3390/s19010024.

154
Bibliographie

Z. T. Dydek, A. M. Annaswamy, and E. Lavretsky. Adaptive Control and the NASA X-15-3
Flight Revisited : Lessons learned and Lyapunov-stability-based design. IEEE Control Systems
Magazine, 30(3) :32–48, 2010. ISSN 1066033X. doi : 10.1109/MCS.2010.936292.

E. Dyer, S. Sirouspour, and M. Jafarinasab. Energy Optimal Control Allocation in a Redun-


dantly Actuated Omnidirectional UAV. In 2019 International Conference on Robotics and
Automation (ICRA), pages 5316–5322, Montreal, Canada, may 2019. IEEE. ISBN 978-1-5386-
6027-0. doi : 10.1109/ICRA.2019.8793549. URL https://ieeexplore.ieee.org/document/
8793549/.

A. Eskandarpour and I. Sharf. A constrained error-based MPC for path following of quadrotor
with stability analysis. Nonlinear Dynamics, 99(2) :899–918, 2020. ISSN 1573269X. doi :
10.1007/s11071-019-04859-0. URL https://doi.org/10.1007/s11071-019-04859-0.

J. Etele. Overview of Wind Gust Modelling with Application to Autonomous Low-Level UAV
Control. Defense R&D Canada-Ottawa, 2006.

M. Faessler, D. Falanga, and D. Scaramuzza. Thrust Mixing, Saturation, and Body-Rate Control
for Accurate Aggressive Quadrotor Flight. IEEE Robotics and Automation Letters, 2(2) :476–
482, 2017. ISSN 2377-3766. doi : 10.1109/LRA.2016.2640362. URL http://ieeexplore.
ieee.org/document/7784809/.

G. P. Falconi, J. Angelov, and F. Holzapfel. Hexacopter outdoor flight test results using adaptive
control allocation subject to an unknown complete loss of one propeller. Conference on Control
and Fault-Tolerant Systems, SysTol, 2016-Novem :373–380, 2016. ISSN 21621209. doi : 10.
1109/SYSTOL.2016.7739779.

R. A. Fernández, S. Dominguez, and P. Campoy. L1adaptive control for Wind gust rejection
in quad-rotor UAV wind turbine inspection. 2017 International Conference on Unmanned
Aircraft Systems, ICUAS 2017, pages 1840–1849, 2017. doi : 10.1109/ICUAS.2017.7991485.

M. Fliess and C. Join. Model-free control and intelligent PID controllers : Towards a possible tri-
vialization of nonlinear control ? IFAC Proceedings Volumes (IFAC-PapersOnline), 15(PART
1) :1531–1550, 2009. ISSN 14746670. doi : 10.3182/20090706-3-FR-2004.0443.

M. Fliess and C. Join. Model-free control. International Journal of Control, 86(12) :2228–2252,
2013. ISSN 00207179. doi : 10.1080/00207179.2013.810345.

Z. Gao. On the centrality of disturbance rejection in automatic control. ISA Transactions, 53


(4) :850–857, 2014. ISSN 00190578. doi : 10.1016/j.isatra.2013.09.012. URL http://dx.doi.
org/10.1016/j.isatra.2013.09.012.

P. Gasior, A. Bondyra, S. Gardecki, W. Giernacki, and A. Kasinski. Thrust estimation by fuzzy


modeling of coaxial propulsion unit for multirotor UAVs. IEEE International Conference
on Multisensor Fusion and Integration for Intelligent Systems, pages 418–423, 2017. doi :
10.1109/MFI.2016.7849524.

P.-A. Gédouin, E. Delaleau, J.-M. Bourgeot, C. Join, S. A. Chirani, and S. Calloch. Control
Engineering Practice Experimental comparison of classical PID and model-free control : Po-
sition control of a shape memory alloy active spring. Control Engineering Practice, 19(5) :
433–441, 2011. doi : 10.1016/j.conengprac.2011.01.005.

F. A. Goodarzi, D. Lee, and T. Lee. Geometric Adaptive Tracking Control of a Quadrotor UAV
on SE(3) for Agile Maneuvers. 2014. doi : 10.1115/1.4030419. URL https://arxiv.org/
abs/1411.2986.

B.-Z. Guo and Z.-L. Zhao. Active Disturbance Rejection Control for Nonlinear Systems - An
Introduction. WILEY, 2016. ISBN 9781119239925.

155
Bibliographie

K. Guo, J. Jia, X. Yu, L. Guo, and L. Xie. Multiple observers based anti-disturbance control
for a quadrotor UAV against payload and wind disturbances. Control Engineering Practice,
102(July) :104560, 2020. ISSN 09670661. doi : 10.1016/j.conengprac.2020.104560. URL
https://doi.org/10.1016/j.conengprac.2020.104560.

M. Hamandi, M. Tognon, and A. Franchi. Direct Acceleration Feedback Control of Quadrotor


Aerial Vehicles. In Proceedings - IEEE International Conference on Robotics and Automation,
pages 5335–5341, 2020a. ISBN 9781728173955. doi : 10.1109/ICRA40945.2020.9196557.

M. Hamandi, F. Usai, Q. Sablé, N. Staub, A. Franchi, and M. Tognon. Survey on Aerial


Multirotor Design : a Taxonomy Based on Input Allocation. HAL archives-ouvertes, 2020b.
URL https://hal.archives-ouvertes.fr/hal-02433405.

T. Hamel and R. Mahony. Attitude estimation on so[3] based on direct inertial measurements. In
Proceedings 2006 IEEE International Conference on Robotics and Automation, 2006. ICRA
2006., pages 2170–2175, 2006. doi : 10.1109/ROBOT.2006.1642025.

T. Hamel, R. Mahony, R. Lozano, and J. Ostrowski. Dynamic modelling and configu-


ration stabilization for an x4-flyer. IFAC Proceedings Volumes, 35(1) :217–222, 2002.
ISSN 1474-6670. doi : https://doi.org/10.3182/20020721-6-ES-1901.00848. URL https:
//www.sciencedirect.com/science/article/pii/S1474667015392697. 15th IFAC World
Congress.

J. H. J. Han. From PID to Active Disturbance Rejection Control. IEEE Transactions on


Industrial Electronics, 56(3) :900–906, 2009. ISSN 0278-0046. doi : 10.1109/TIE.2008.2011621.

G. M. Hoffmann, H. Huang, S. L. Waslander, and C. J. Tomlin. Precision flight control for


a multi-vehicle quadrotor helicopter testbed. Control Engineering Practice, 2011. ISSN
09670661. doi : 10.1016/j.conengprac.2011.04.005.

N. Hovakimyan and C. Cao. L1 Adaptive Control Theory : Guaranteed Robustness with Fast
Adaptation. Society for Industrial and Applied Mathematics (SIAM), 2010. doi : 10.1137/1.
9780898719376.

HowToMechatronics. How brushless motor and esc work and how to control them using arduino.
https://www.youtube.com/watch?v=uOQk8SJso6Q&t=283s, 2019.

M.-D. Hua. Contributions to the automatic control of aerial vehicles. PhD thesis, 2010.

M.-d. Hua, P. Morin, and C. Samson. Balanced-Force-Control of underactuated thrust-propelled


vehicles. In Proceedings of the 46th IEEE Conference on Decision and Control, pages 6435–
6441, New Orleans, LA, USA, 2007. ISBN 1424414989.

M.-D. Hua, M. Zamani, J. Trumpf, R. Mahony, and T. Hamel. Observer design on the special
euclidean group se(3). In 2011 50th IEEE Conference on Decision and Control and European
Control Conference, pages 8169–8175, 2011. doi : 10.1109/CDC.2011.6160453.

M.-D. Hua, T. Hamel, R. Mahony, and J. Trumpf. Gradient-like observer design on the special
euclidean group se(3) with system outputs on the real projective space. In 2015 54th IEEE
Conference on Decision and Control (CDC), pages 2139–2145, 2015. doi : 10.1109/CDC.2015.
7402523.

O. A. Jasim and S. M. Veres. A robust controller for multi rotor UAVs. Aerospace Science
and Technology, 105 :106010, 2020. ISSN 12709638. doi : 10.1016/j.ast.2020.106010. URL
https://doi.org/10.1016/j.ast.2020.106010.

R. E. Kalman. A New Approach to Linear Filtering and Prediction Problems. Jour-


nal of Basic Engineering, 82(1) :35, 1960. ISSN 00219223. doi : 10.1115/1.
3662552. URL http://fluidsengineering.asmedigitalcollection.asme.org/article.
aspx?articleid=1430402.

156
Bibliographie

A. Koehl, H. Rafaralahy, M. Boutayeb, and B. Martinez. Aerodynamic modelling and experimen-


tal identification of a coaxial-rotor UAV. Journal of Intelligent and Robotic Systems : Theory
and Applications, 68(1) :53–68, 2012. ISSN 09210296. doi : 10.1007/s10846-012-9665-x.

D. Kotarski and M. Engineering. Mathematical Modelling and Dynamics Analysis of Flat Mul-
tirotor Configurations 2 Multirotor UAV Dynamic Model. WSEAS Transactions on Systems,
16(December) :47–52, 2017.

T. E. Lechekhab, S. Manojlovic, M. Stankovic, R. Madonski, and S. Simic. Robust error-


based active disturbance rejection control of a quadrotor. Aircraft Engineering and Aerospace
Technology, (August), 2020. ISSN 17488842. doi : 10.1108/AEAT-12-2019-0266.

J. G. Leishman. Principles of Helicopter Aerodynamics. Cambridge University Press, se-


cond edition, 2006. ISBN 978-0-521-85860-1. doi : 10.1002/1521-3773(20010316)40:6<9823::
AID-ANIE9823>3.3.CO;2-C.

S. Li, J. Yang, W.-H. Chen, and X. Chen. Disturbance Observer-Based Control : Methods and
Applications. CRC Press, Boca Raton, 2014. ISBN 9781466515802.

X. Li, W. Ai, Z. Gao, and S. Tian. Robust ADRC for nonlinear time-varying system with
uncertainties. In Proceedings of 2017 IEEE 6th Data Driven Control and Learning Systems
Conference, DDCLS 2017, pages 350–356, Chongqing, China, 2017. ISBN 9781509054619.
doi : 10.1109/DDCLS.2017.8068096.

F. Lucas. Study of Contra-rotating Coaxial Rotors in Hover, A Performance Model Based on


Blade Element Theory Including Swirl Velocity. Master of science in aerospace engineering,
Embrey-Riddle Aeronautical University, 2007. URL http://commons.erau.edu/db-theses.

R. Mahony, T. Hamel, and J.-M. Pflimlin. Nonlinear complementary filters on the special
orthogonal group. IEEE Transactions on Automatic Control, 53(5) :1203–1218, 2008. doi :
10.1109/TAC.2008.923738.

A. Marks, J. F. Whidborne, and I. Yamamoto. Control allocation for fault tolerant control of a
VTOL octorotor. In UKACC International Conference on Control 2012, number September,
pages 357–362, Cardiff, UK, 2012. IEEE. ISBN 9781467315609. doi : 10.1109/CONTROL.
2012.6334656.

R. Mascaró Palliser, R. Costa-Castelló, and G. A. Ramos. Iterative Learning Control Expe-


rimental Results in Twin-Rotor Device. Mathematical Problems in Engineering, 2017, 2017.
ISSN 15635147. doi : 10.1155/2017/6519497.

J. Miguel, O. Barth, J.-p. Condomines, M. Bronz, L. R. Lustosa, J.-m. Moschetta, C. Join,


M. Fliess, J. Miguel, O. Barth, J.-p. Condomines, M. Bronz, and L. R. Lustosa. Fixed-wind
UAV with transitioning flight capabilities : Model-Based or Model-Free Control approach ? A
preliminary study. In International Conference on Unmanned Aircraft Systems, ICUAS’18,
Dallas, TX, USA, 2018. URL https://hal-enac.archives-ouvertes.fr/hal-01817515.

J. Miranda, J. Veith, S. Larnier, A. Herbulot, and M. Devy. Hybridization of deep and pro-
totypical neural network for rare defect classification on aircraft fuselage images acquired
by an unmanned aerial vehicle. Journal of Electronic Imaging, 29(4) :1 – 14, 2020. doi :
10.1117/1.JEI.29.4.041010. URL https://doi.org/10.1117/1.JEI.29.4.041010.

A. Mohammadi, Y. Feng, C. Zhang, S. Baek, and S. Rawashdeh. Autonomous landing of a


UAV on a moving platform using model predictive control. Drones, 2(4) :1–15, 2018. ISSN
2504446X. doi : 10.3390/drones2040034.

M. R. Mokhtari, B. Cherki, and A. C. Braham. Disturbance observer based hierarchical control


of coaxial-rotor UAV. ISA Transactions, 67 :466–475, 2017. ISSN 00190578. doi : 10.1016/j.
isatra.2017.01.020.

157
Bibliographie

J. C. Monteiro, F. Lizarralde, and L. Hsu. Optimal control allocation of quadrotor UAVs subject
to actuator constraints. In American Control Conference (ACC), pages 500–505, Boston, MA,
USAE, 2016. ISBN 9781467386821. doi : 10.1109/ACC.2016.7524963.

P. Morin. Feedback Control of Underactuated VTOL Vehicles. IEEE Control Systems Magazine,
(february) :61–75, 2013.

D. T. Nguyen, D. Saussie, and L. Saydy. Fault-Tolerant Control of a Hexacopter UAV based


on Self-Scheduled Control Allocation. 2018 International Conference on Unmanned Aircraft
Systems, ICUAS 2018, pages 385–393, 2018. doi : 10.1109/ICUAS.2018.8453440.

N. T. Nguyen and J. D. Boskovic. Bounded linear stability margin analysis of nonlinear hybrid
adaptive control. Proceedings of the American Control Conference, pages 3638–3643, 2008.
ISSN 07431619. doi : 10.1109/ACC.2008.4587058.

N. T. Nguyen, K. Krishnakumar, and J. Boskovic. An optimal control modification to model-


reference adaptive control for fast adaptation. AIAA Guidance, Navigation and Control Confe-
rence and Exhibit, pages 1–18, 2008.

E. A. Niit and W. J. Smit. Integration of model reference adaptive control (MRAC) with PX4
firmware for quadcopters. 2017 24th International Conference on Mechatronics and Machine
Vision in Practice, M2VIP 2017, 2017-Decem :1–6, 2017. doi : 10.1109/M2VIP.2017.8211479.

H. Nobahari and H. Mohammadkarimi. Application of model aided inertial navigation for


precise altimetry of Unmanned Aerial Vehicles in ground proximity. Aerospace Science and
Technology, 69 :650–658, 2017. ISSN 12709638. doi : 10.1016/j.ast.2017.07.033. URL http:
//dx.doi.org/10.1016/j.ast.2017.07.033.

A. Noormohammadi-Asl, O. Esrafilian, M. Ahangar Arzati, and H. D. Taghirad. System iden-


tification and H∞-based control of quadrotor attitude. Mechanical Systems and Signal Pro-
cessing, 135(October 2019), 2020. ISSN 10961216. doi : 10.1016/j.ymssp.2019.106358.

S. Omari, M. D. Hua, G. Ducard, and T. Hamel. Nonlinear control of VTOL UAVs incorporating
flapping dynamics. IEEE International Conference on Intelligent Robots and Systems, pages
2419–2425, 2013. ISSN 21530858. doi : 10.1109/IROS.2013.6696696.

S. Prothin and J.-m. Moschetta. A Vectoring Thrust Coaxial Rotor for Micro Air Vehicle : Mode-
ling , Design and Analysis. In 3AF - 48th International Symposium of Applied Aerodynamics,
number March, Saint Louis, France, 2013.

S. Prothin, C. Fernandez Escudero, N. Doué, and T. Jardin. Aerodynamics of MAV rotors


in ground and corner effect. International Journal of Micro Air Vehicles, 11, 2019. ISSN
17568307. doi : 10.1177/1756829319861596.

G. V. Raffo, M. G. Ortega, and F. R. Rubio. MPC with nonlinear H∞ control for path tra-
cking of a quad-rotor helicopter. Proc. of the IFAC World Congress, pages 8564–8569, 2008.
ISSN 15618625. doi : 10.1002/asjc.823. URL http://www.nt.ntnu.no/users/skoge/prost/
proceedings/ifac2008/data/papers/2578.pdf?origin=publication{_}detail.

G. V. Raffo, M. G. Ortega, and F. R. Rubio. An integral predictive/nonlinear H∞ control


structure for a quadrotor helicopter. Automatica, 46(1) :29–39, 2010. ISSN 00051098. doi :
10.1016/j.automatica.2009.10.018. URL http://dx.doi.org/10.1016/j.automatica.2009.
10.018.

H. Razmi and S. Afshinfar. Neural network-based adaptive sliding mode control design for
position and attitude control of a quadrotor UAV. Aerospace Science and Technology, 91 :
12–27, 2019. ISSN 12709638. doi : 10.1016/j.ast.2019.04.055. URL https://doi.org/10.
1016/j.ast.2019.04.055.

158
Bibliographie

A. Russo, D. Invernizzi, M. Giurato, and M. LOVERA. Adaptive Augmentation of the Attitude


Control System for a Multirotor UAV. In European Conference for Aerospace Science, Milano,
Italy, 2017. doi : 10.13009/EUCASS2017-460. URL https://re.public.polimi.it/handle/
11311/1045901.

M. Ryll, G. Muscio, F. Pierri, E. Cataldi, G. Antonelli, F. Caccavale, D. Bicego, and A. Fran-


chi. 6D interaction control with aerial robots : The flying end-effector paradigm. In-
ternational Journal of Robotics Research, 38(9) :1045–1062, 2019. ISSN 17413176. doi :
10.1177/0278364919856694.

M. Saied, D. AlShamaa, H. Shraim, C. Francis, B. Lussier, and I. Fantoni. Model identification


and validation for translational movements of an octorotor UAV. 2015 Workshop on Research,
Education and Development of Unmanned Aerial Systems, RED-UAS 2015, pages 102–108,
2016. doi : 10.1109/RED-UAS.2015.7440996.

L. R. Salazar, J. A. Cobano, and A. Ollero. Small UAS-based wind feature identification system
Part 1 : Integration and validation. Sensors (Switzerland), 17(1) :1–28, 2017. ISSN 14248220.
doi : 10.3390/s17010008.

M. K. Samal, S. Anavatti, and M. Garratt. Neural Network Based Model Predictive Controller
for Simplified Heave Model of an Unmanned Helicopter. In Swarm, Evolutionary, and Memetic
Computing 2012, volume 7677, Bhubaneswar, India, 2012. ISBN 978-3-642-35379-6. doi : 10.
1007/978-3-642-35380-2. URL http://link.springer.com/10.1007/978-3-642-35380-2.

J. Seddon and S. Newman. Basic Helicopter Aerodynamics : Third Edition. WILEY, 2011.
ISBN 9780470665015. doi : 10.1002/9781119994114.

S. Shao and Z. Gao. On the Conditions of Exponential Stability in Active Disturbance Rejection
Control Based on Singular Perturbation Analysis. International Journal of Control, 7179
(September) :1–21, 2016. ISSN 0020-7179. doi : 10.1080/00207179.2016.1236217. URL https:
//www.tandfonline.com/doi/full/10.1080/00207179.2016.1236217.

S. Shao, M. Chen, and R. Mei. Disturbance observer-based discrete-time neural control for
unmanned aerial vehicles with uncertainties and disturbances. IFAC-PapersOnLine, 50(1) :
15289–15294, 2017. ISSN 24058963. doi : 10.1016/j.ifacol.2017.08.2439. URL https://doi.
org/10.1016/j.ifacol.2017.08.2439.

R. C. Shekhar, M. Kearney, and I. Shames. Robust model predictive control of unmanned aerial
vehicles using waysets. Journal of Guidance, Control, and Dynamics, 38(10) :1898–1907, 2015.
ISSN 15333884. doi : 10.2514/1.G000787.

E. J. Smeur, Q. Chu, and G. C. de Croon. Gust Load Alleviation with Incremental Nonlinear
Dynamic Inversion. International Conference on Robotics and Automation ICRA 2016, 2016a.
ISSN 21530866. doi : 10.1109/IROS.2016.7759827.

E. J. Smeur, Q. Chu, and G. C. De Croon. Adaptive incremental nonlinear dynamic inversion


for attitude control of micro air vehicles. Journal of Guidance, Control, and Dynamics, 39
(3) :450–461, 2016b. ISSN 15333884. doi : 10.2514/1.G001490.

L. Stevens and L. Lewis. Aircraft control and simulation. John Wiley & Sons, Ltd, Hoboken,
New Jersey, 2016. ISBN 9780471371458.

P. Swerling. First-Order Error Propagation in a Stagewise Smoothing Procedure for Satellite


Observations, 1959.

G. Torrente, E. Kaufmann, P. Fohn, and D. Scaramuzza. Data-Driven MPC for Quadrotors.


IEEE Robotics and Automation Letters, 6(2) :3769–3776, 2021. ISSN 23773766. doi : 10.1109/
LRA.2021.3061307.

159
Bibliographie

D. Uehara and J. Sirohi. Quantification of swirl recovery in a coaxial rotor system. In Annual
Forum Proceedings - AHS International, number May 2017, pages 2828–2840, 2017.

Uhlmann Jeffrey K. Dynamic map building and Localization : New Theoretical Founda-
tions. PhD thesis, University of Oxford, 1995. URL http://people.cs.missouri.edu/
$\sim$uhlmannj/Dissertation-pref.pdf.

R. ul Amin, I. Inayat, and L. Ai Jun. Finite time position and heading tracking control of
coaxial octorotor based on extended inverse multi-quadratic radial basis function network
and external disturbance observer. Journal of the Franklin Institute, 356(8) :4240–4269, 2019.
ISSN 00160032. doi : 10.1016/j.jfranklin.2019.03.003.

B. Wang and Y. Zhang. An Adaptive Fault-Tolerant Sliding Mode Control Allocation Scheme
for Multirotor Helicopter Subject to Simultaneous Actuator Faults. IEEE Transactions on In-
dustrial Electronics, 65(5) :4227–4236, 2018. ISSN 02780046. doi : 10.1109/TIE.2017.2772153.

S. Waslander and C. Wang. Wind Disturbance Estimation and Rejection for Quadrotor Position
Control. In AIAA Infotech@Aerospace Conference, number 6-9 April, Seattle, Washington,
2009. American Institute of Aeronautics and Astronautics. ISBN 978-1-60086-979-2. doi :
10.2514/6.2009-1983. URL http://arc.aiaa.org/doi/10.2514/6.2009-1983.

B. Whitehead and S. Bieniawski. Model Reference Adaptive Control of a Quadrotor UAV.


In AIAA Guidance, Navigation, and Control Conference, number August, Toronto, Canada,
2010. ISBN 978-1-60086-962-4. doi : 10.2514/6.2010-8148. URL http://arc.aiaa.org/doi/
10.2514/6.2010-8148.

L. Xu, H. Ma, D. Guo, anhuan Xie, and dalei Song. Backstepping sliding-mode and cascade
active disturbance rejection control for a quadrotor UAV. IEEE/ASME Transactions on
Mechatronics, 4435(c) :1–1, 2020. ISSN 1083-4435. doi : 10.1109/tmech.2020.2990582.

N. Xuan-Mung and S. K. Hong. Robust backstepping trajectory tracking control of a quadrotor


with input saturation via extended state observer. Applied Sciences (Switzerland), 9(23), 2019.
ISSN 20763417. doi : 10.3390/app9235184.

F. Yacef, N. Rizoug, L. Degaa, O. Bouhali, and M. Hamerlain. Extended State Observer-Based


Adaptive Fuzzy Tracking Control for a Quadrotor UAV. 2018 5th International Conference on
Control, Decision and Information Technologies, CoDIT 2018, pages 1023–1028, 2018. doi :
10.1109/CoDIT.2018.8394945.

H. Yang, L. Cheng, Y. Xia, and Y. Yuan. Active Disturbance Rejection Attitude Control for
a Dual Closed-Loop Quadrotor under Gust Wind. IEEE Transactions on Control Systems
Technology, 26(4) :1400–1405, 2018. ISSN 10636536. doi : 10.1109/TCST.2017.2710951.

Y. Yuan, L. Cheng, Z. Wang, and C. Sun. Position tracking and attitude control for quadrotors
via active disturbance rejection control method. Science China Information Sciences, 62(1) :
1–10, 2019. ISSN 18691919. doi : 10.1007/s11432-018-9548-5.

S. Zarovy. Improved Gust Rejection for a micro coaxial helicopter in Urban Environments. Phd,
Georgia Institue of Technology, 2014.

Y. Zhang, Z. Chen, X. Zhang, Q. Sun, and M. Sun. A novel control scheme for quadrotor
UAV based upon active disturbance rejection control. Aerospace Science and Technology, 79 :
601–609, 2018. ISSN 12709638. doi : 10.1016/j.ast.2018.06.017. URL https://doi.org/10.
1016/j.ast.2018.06.017.

R. Zhou and W. Tan. Analysis and Tuning of General Linear Active Disturbance Rejection
Controllers. IEEE Transactions on Industrial Electronics, PP(c) :1–1, 2018. ISSN 0278-0046.
doi : 10.1109/TIE.2018.2869349. URL https://ieeexplore.ieee.org/document/8464668/.

160

Vous aimerez peut-être aussi