Académique Documents
Professionnel Documents
Culture Documents
&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
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
II Bibliographie 40
III Contributions 53
6
Table des matières
V Annexes 141
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
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
8
Table des figures
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
11
Liste des tableaux
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
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
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.
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.
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).
• 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
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).
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
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
22
2.4. Aérodynamique
Où
• 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.
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é
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
Pl = Tl vlmean
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.
28
2.5. Dynamique des actionneurs
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.
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
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
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.
32
3.2. Solutions de navigation
𝐐𝑑 𝐅𝑑
𝑇𝑎𝑐𝑡
𝐏𝐖𝐌 𝐚𝐜𝐜
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
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
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
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.
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
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
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
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)
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
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.
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
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.
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
39
Deuxième partie
Bibliographie
40
Chapitre 4
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.
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.
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.
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.
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 ν
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.
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.
0
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
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 à :
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.
dκ
• 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
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.
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
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.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
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
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
Figure 5.3 – Modèles de poussée et de couple coaxiaux (rouge) vs données brutes (vert)
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
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)
40 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.
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
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
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
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).
62
5.6. Comparaison avec une approche conventionnelle de mixage
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.
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
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
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
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
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.
Figure 5.10 – L’effet des commandes de lacet sur les hélices coaxiales
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 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)
1 1
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)
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)
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)
Figure 5.14 – PWM envoyés aux moteurs 3 et 8 au cours de consignes de lacet et d’altitude
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)
100 100
Optitrack Optitrack
Target Target
50 50
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)
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
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)
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)
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
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.
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 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)
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)
72
6.2. Rappel de la conception du contrôle de position
= λr − KX
(
ut
(6.7)
ud =0
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.
˙
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
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.
ˆ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 :
• 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
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 )
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
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
76
6.3. Conditions Expérimentales
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.
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.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.
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.
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
-0.5
-1
-1.5
20 30 40 50 60 70
Time (s)
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
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
Figure 6.8 – Comparaison des performances en maintien de position entre PI, ADRC and
MRAC - Vue 3D de l’erreur
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.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
0.04
PI
0.02 I-MRAC
0
Z
-0.02
-0.04
-0.05
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
Figure 6.15 – Comparaison des performances en maintien de position entre différentes aug-
mentations du PI - Vue 3D des erreurs
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
-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)
0.04
PI pos
PI pos + ESO att
0.02
0
Z
-0.02
-0.04
-0.05
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)
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
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.
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)
Où
vsp = k (xsp − x) (7.4)
Le contrôleur ADRC :
1
u = uADRC = v̇ref + kt (vref − v) − σ̂ (7.5)
α̂
Où
• 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
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
= 2πfT D
(
kt
(7.9)
2πfT D = α̂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
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
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).
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
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
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
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
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
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
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
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)
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
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
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
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)
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.
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
où
α
δ =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)
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
ψ ⊤ P0 E1 (Y − αur ) = νY − ναur
(7.24)
≤ νY − αmin νur
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 :
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
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
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 :
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
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
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.
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
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.
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.
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)
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
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)
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
109
Chapitre 7. Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC)
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)
110
7.3. ADRC Robuste aux incertitudes paramétriques
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)
111
Chapitre 7. Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC)
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)
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
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)
113
Chapitre 7. Amélioration robuste du Contrôle par Rejet Actif de Perturbation (ADRC)
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)
114
7.4. Application de l’ADRC robuste pour le contrôle d’un drone multirotor
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
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
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.
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)
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)
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)
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)
-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.
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
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)
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
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)
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)
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)
h i⊤
Figure 7.40 – Attitude du drone simulé avec δf = −0.33 et δ Q = −0.33 −0.33 −1.8
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 .
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)
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
126
7.4. Application de l’ADRC robuste pour le contrôle d’un drone multirotor
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
0 -0.5
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
Time (s) Time (s)
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)
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.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)
-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)
-2
0 5 10 15 20 25 30 35 40 45 50
Time (s)
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)
0.1
0.05
-0.05
-0.1
-0.15
0 10 20 30 40 50 60
Time (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.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.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
-10
0 10 20 30 40 50 60 70 80
Time (s)
-10
0 10 20 30 40 50 60 70 80
Time (s)
Yaw Error (deg)
-5
0 10 20 30 40 50 60 70 80
Time (s)
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)
0.1
0.05
-0.05
-0.1
-0.15
0 10 20 30 40 50 60 70 80 90 100
Time (s)
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.
134
Quatrième partie
Conclusion et Perspectives
135
Conclusion
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
-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
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)
Où
• 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
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é
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
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.
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.
Avec vsp = k0 (xsp − x) et xsp est la consigne de x. On définit un nouvel état s = (vsp − v) et on
R
0 1 0 0
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
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
= 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 :
147
Annexe B. Lignes directrices du réglage d’un contrôleur de vol PID pour un drone Multirotor
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.
Ẋ = AX + Bu (B.10)
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)
1. https://fr.mathworks.com/help/symbolic/index.html?s_tid=CRUX_lftnav
148
Annexe C
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
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).
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 .
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)
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)
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)
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)
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)
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)
152
Bibliographie
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/.
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.
153
Bibliographie
Y. Bouzid. Guidance and control systems for autonomous aerial vehicles navigation. PhD thesis,
Université Paris Saclay, 2018.
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.
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.
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.
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.
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.
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.
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.
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, 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.
156
Bibliographie
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
L. Stevens and L. Lewis. Aircraft control and simulation. John Wiley & Sons, Ltd, Hoboken,
New Jersey, 2016. ISBN 9780471371458.
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.
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.
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