Académique Documents
Professionnel Documents
Culture Documents
Ministère de l’Enseignement
Supérieur et de la Recherche
Scientifique
Sous l’encadrement de :
Dr (MA) Aliou MOUSSA DJIBRIL
Enseignant-Chercheur à l’ENSGMM/UNSTIM
Composition du jury
Nous certifions que le présent mémoire a été réalisé par l’auteur et est
exempt de tout plagiat. Il est arrivé à terme et peut être soutenu devant un
jury.
Signatures
Superviseur :
Maître de mémoire :
Je dédie ce travail :
A mon feu Père Claver Roch VITOULEY qui m’a toujours encouragé à
donner le meilleur de moi même dans tout ce que j’entreprends et qui a
toujours eu confiance en moi et en mon avenir. J’aurais aimé qu’il soit là
pour admirer mon travail mais qu’il reçoive ce travail de là-haut comme un
résultat de tout l’accompagnement qu’il m’a porté depuis ma naissance ;
A mon cher frère Fréjus Antonio VITOULEY qui m’a toujours soutenu et
qui a toujours eu confiance en moi tout au long de mon cursus ;
A tous mes amis et à tous ceux qui m’ont porté leur amour ;
• Dr Jamal ADETOLA, mon tuteur de stage pour son aide et son grand
apport dans la réalisation de ce document ;
Introduction générale 16
1 Revue de littérature 19
1.1 Travaux effectués . . . . . . . . . . . . . . . . . . . . . . . 19
1.2 Notre approche . . . . . . . . . . . . . . . . . . . . . . . . . 22
7
I Synthèse du contrôleur de vol 48
3.1 Le backstepping . . . . . . . . . . . . . . . . . . . . . . . . 49
3.2 Théorie de Lyapunov . . . . . . . . . . . . . . . . . . . . . . 49
3.2.1 Stabilité de Lyapunov . . . . . . . . . . . . . . . . . 49
3.2.2 Fonction de Lyapunov . . . . . . . . . . . . . . . . . 50
3.2.3 Etude de la convergence (LaSalle-Yoshizawa) . . . 51
3.3 Etapes de conception du contrôleur backstepping . . . . . 52
3.4 Mise en place de notre contrôleur de vol . . . . . . . . . . . 54
3.4.1 Reformulation du modèle du quadricoptère . . . . . 54
3.4.2 Problématique de contrôle . . . . . . . . . . . . . . 55
3.4.3 Description des étapes de conception du contrôleur 56
3.4.4 Contrôleur de la dynamique de translation . . . . . . 57
3.4.5 Contrôleur de la dynamique de rotation . . . . . . . 62
3.4.6 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . 67
3.4.7 Vitesses de rotation des moteurs . . . . . . . . . . . 67
II Implémentation du modèle 69
3.5 Premières caractéristiques du drone . . . . . . . . . . . . . 70
3.6 Détermination des moments d’inertie . . . . . . . . . . . . . 70
3.6.1 Moment d’inertie de l’ensemble hélice-moteur 𝐽𝐻 . . 70
3.6.2 Moment d’inertie du quadricoptère 𝐽𝑄 . . . . . . . . 71
3.7 Calcul des coefficients de portance 𝑏 et de trainée 𝑑 des hélices 74
3.8 Schéma complet de simulation . . . . . . . . . . . . . . . . 75
3.9 Les blocs principaux sous Simulink . . . . . . . . . . . . . . 77
3.9.1 Le contrôleur . . . . . . . . . . . . . . . . . . . . . . 77
3.9.2 Le moteur . . . . . . . . . . . . . . . . . . . . . . . . 79
3.9.3 Le modèle multiphysique du drone . . . . . . . . . . 80
3.10 (Résumé du) Schéma complet de simulation sous simulink 80
Bibliographie 116
Annexe 118
.1 Les drones aéronefs . . . . . . . . . . . . . . . . . . . . . . 118
.2 Logiciels et outils utilisés . . . . . . . . . . . . . . . . . . . . 119
.2.1 MATLAB . . . . . . . . . . . . . . . . . . . . . . . . 119
.2.2 Simulink . . . . . . . . . . . . . . . . . . . . . . . . . 120
.2.3 SolidWorks . . . . . . . . . . . . . . . . . . . . . . . 121
Liste des figures
10
4.3 Rectangle maillé . . . . . . . . . . . . . . . . . . . . . . . . 85
4.4 Bloc consigne sous Simulink . . . . . . . . . . . . . . . . . 87
4.5 Simulink consigne + xyz2quat . . . . . . . . . . . . . . . . . 92
4.6 Simulation de 60s de la trajectoire consigne . . . . . . . . . 93
4.7 Simulation de 120s de la trajectoire consigne . . . . . . . . 93
4.8 Trajectoire test de 40s . . . . . . . . . . . . . . . . . . . . . 96
4.9 Simulation A1<0 || A2<0 de l’altitude test ajusté à l’échelle . 97
4.10 Simulation A1<0 || A2<0 de l’altitude test non ajusté à l’échelle 98
4.11 Simulation A1=5 et A2=5 de l’altitude test . . . . . . . . . . 98
4.12 Simulation A1=15 et A2=15 de l’altitude test . . . . . . . . . 99
4.13 Simulation A1=20 et A2=20 de l’altitude test . . . . . . . . . 100
4.14 Simulation A1=100 et A2=100 de l’altitude test . . . . . . . 100
4.15 Simulation A1=100 et A2=100 de l’altitude test à l’oscilloscope101
4.16 Simulation A3<0 || A4<0 de l’attitude test . . . . . . . . . . 102
4.17 Simulation A3<0 || A4<0 de l’attitude test en vue plus claire 102
4.18 Simulation A3=1 et A4=1 de l’attitude test ajusté à l’échelle 103
4.19 Simulation A3=15 et A4=15 de l’attitude test ajusté à l’échelle103
4.20 Simulation A3=15 et A4=15 de l’attitude test à l’oscilloscope 104
4.21 Simulation A3=30 et A4=30 de l’attitude test ajusté à l’échelle104
4.22 Simulation A3=200 || A4=200 de l’attitude test . . . . . . . . 105
4.23 Simulation A3=200 || A4=200 de l’attitude test à l’oscilloscope105
4.24 Simulation de la consigne test pour le cas 𝐴1 =0, 𝐴2 =0, 𝐴3 =0,
𝐴4 =0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
4.25 Bloc delay d’une seconde qui ajoute une pertubation d’alti-
tude -5m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
4.26 Evolution de l’altitude pertubée en absence du contrôleur . 107
4.27 Evolution de l’altitude pertubée en présence du contrôleur . 108
4.28 Simulation de 120s de la trajectoire consigne . . . . . . . . 108
4.29 Evolution de l’altitude désirée et l’altitude obtenue sur la tra-
jectoire consigne . . . . . . . . . . . . . . . . . . . . . . . . 109
4.30 Evolution de l’angle de roulis désiré et l’angle de roulis ob-
tenu sur la trajectoire consigne . . . . . . . . . . . . . . . . 109
4.31 Evolution de l’angle de tangage désiré et l’angle de tangage
obtenu sur la trajectoire consigne . . . . . . . . . . . . . . . 109
4.32 Evolution de l’angle de lacet désiré et l’angle de lacet obtenu
sur la trajectoire consigne . . . . . . . . . . . . . . . . . . . 110
4.33 Vue en 3D du mouvement du drone . . . . . . . . . . . . . 110
4.34 Vue de dessus du mouvement du drone . . . . . . . . . . . 111
4.35 Aperçu de la vitesse de rotation des moteurs . . . . . . . . 112
36 Drone à voilure fixe . . . . . . . . . . . . . . . . . . . . . . . 118
37 Drone à voilure tournante : 4 hélices . . . . . . . . . . . . . 119
38 Drone à voilure tournante : 8 hélices . . . . . . . . . . . . . 119
39 Drone à voilure tournante : taxi drone . . . . . . . . . . . . 119
40 Drone à voilure tournante . . . . . . . . . . . . . . . . . . . 119
41 Environnement MATLAB . . . . . . . . . . . . . . . . . . . . 120
42 Logo MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . 120
43 Drone conçu avec Solidworks (1) . . . . . . . . . . . . . . . 121
44 Drone conçu avec Solidworks (2) . . . . . . . . . . . . . . . 121
Liste des tableaux
13
Résumé
Les drones font partie des machines ayant la capacité de voler (on les
appelle des aéronefs, tout comme les avions, les hélicoptères, etc.) et dont
le pilotage est soit automatique, soit télécommandé ou les deux. Il existe
plusieurs types de drones dont la classification se fait généralement par
l’altitude maximale, la forme, le mode de fonctionnement, l’endurance et
même la taille. Autrefois à l’usage uniquement militaire, les drones sont
aujourd’hui de plus en plus populaires et à l’usage de plusieurs secteurs
d’activités. De la photographie aérienne, en passant par l’épandage intel-
ligent en agriculture aux concepts de :
• Taxis-drones au Japon, en Chine, en Arabie Saoudite, etc. pour désen-
gorger le transport routier,
• Livraison à domicile par drone aux Etats-Unis,
• Etc.,
les drones connaissent une révolution croissante de jour en jour qui montre
sans doute l’importance capitale de ces machines pour la productivité et la
création d’un monde meilleur dans tous les domaines d’activités.
Dans le domaine agricole, l’enjeu est de taille. Les drones peuvent ser-
vir à beaucoup de tâches. Le développement de l’agriculture étant l’un
des leviers les plus puissants sur lequel agir pour mettre fin à l’extrême
pauvreté, renforcer le partage de la prospérité et nourrir les 9.7 milliards
de personnes que comptera la planète en 2050 [1] , l’usage des moyens
modernes pour gagner en productivité et en rendement n’est donc pas
une option à écarter. D’après une étude publiée en 2016, 65% des tra-
vailleurs pauvres dépendent de l’agriculture pour vivre[2]. Ainsi par rapport
à d’autres secteurs, la croissance de l’agriculture a des effets deux à quatre
fois plus efficaces sur l’augmentation du revenu des populations les plus
démunies. L’importance de l’agriculture sur le niveau du PIB des pays en
voie de développement n’est donc plus à démontrer.
16
Au Bénin, l’agriculture joue un rôle très capital dans l’économie. Selon les
données de la banque mondiale, [3] le secteur agricole représentait 29.4%
du PIB du Bénin en 2021. Ceci signifie que le pays vit essentiellement du
secteur agricole. Or d’après la FAO[4], 20 à 40% des rendements agricoles
sont perdus chaque année en raison des maladies, des piqûres d’insectes,
d’animaux, de l’application inefficace et inadéquate des engrais chimiques,
etc.
Face donc à l’augmentation croissante de la demande alimentaire et aux
difficultés qui règnent, l’usage des drones représente une meilleure solu-
tion pour pallier à nombreux de ces problèmes. En effet, les principales
applications des drones en agriculture sont l’irrigation, la surveillance des
cultures, l’analyse des sols et le contrôle des oiseaux.
Les drones peuvent donc servir à la mise en place des outils pour :
• L’épandage responsable des produits phytosanitaires avec les drones,
• Le traitement d’images aériennes automatique de détection des feuilles
malades,
• L’estimation de rendements avant la production,
• La planification de culture et la prédiction pluviométrique
• Etc.
Ce travail s’inscrit dans le cadre de la conception d’un drone quadrirotor
made in Benin qui répond aux normes internationales et qui aide à capturer
des données images de feuilles de coton dans le cadre du projet agricole
COTTON NUTRIENT de l’entreprise Green Tech Innovation.
La conception d’un tel drone passe nécessairement par une étude de la
commande des systèmes.
La commande des systèmes fait partie des branches de l’automatique qui
définissent le comportement dynamique d’un système en fonction des dif-
férentes perturbations et obstacles (généralement appelées frottement) qui
pourrait subvenir. Avec la puissance de calcul des ordinateurs d’aujour-
d’hui et les nouvelles technologies développées par les logiciels comme
MATLAB, SCILAB, COMSOL, etc., la synthèse des lois de commande et
leur exécution en temps réel devient plus facile. Cela fait de la commande
des systèmes, l’un des domaines les plus actifs de la recherche scienti-
fique. On peut désormais simuler tout le comportement d’une machine sur
17
un ordinateur avant de passer à la fabrication.
Notre travail consiste à appliquer une technologie efficace de commande
de système à un drone quadrirotor dont la mission principale serait la prise
d’images de feuilles de coton dans un champ agricole de façon autonome
pour des fins d’analyse en temps réel de ses besoins en nutriments.
En nous intéressant aux technologies de commandes de systèmes des
drones, nous entrevoyons valider l’hypothèse selon laquelle la mise en
place d’un contrôleur de système dynamique robuste pourrait rendre l’aé-
ronef résistant face aux vents et autres obstacles qui pourraient l’entraver
dans l’exercice de sa mission. Pour atteindre les objectifs, nous devons
suivre la méthodologie suivante :
18
Chapitre 1
Revue de littérature
Introduction partielle
Un drone est généralement conçu pour effectuer une mission donnée.
Dans l’exercice de sa mission, le drone pourrait rencontrer des obstacles
tels que la vitesse et l’orientation du vent, la rencontre avec des oiseaux,
etc. Pour assurer donc sa stabilité et son retour rapide à sa position d’équi-
libre et éviter des comportements indésirables, il est important de dévelop-
per une loi de commande pour assurer la stabilité du système. Plusieurs
stratégies de commande peuvent être utilisées pour le contrôle de drone.
Ce chapitre présente la synthèse de littérature sur les travaux effectués
par des chercheurs dans la mise en place d’une loi de commande pour le
contrôle des systèmes.
De la présentation des travaux effectués sur la modélisation d’un drone
quadrirotor aux lois de commandes utilisées pour le contrôle du système,
nous allons présenter ce qui est fait et la méthode que nous allons adopter
dans ce travail.
19
Par exemple, dans la thèse de Sidi Bel Abbès [5], l’auteur a donné une
modélisation mathématique d’un quadrirotor sur la base de la formulation
de Newton-Euler pour la dynamique des corps rigides. Pour la modélisa-
tion, il a fait usage des angles d’Euler pour modéliser les rotations autour
des axes X, Y et Z du repère inertiel. Il en est de même pour ce travail[6] où
l’auteur a travaillé sur l’implémentation d’une commande à base d’un retour
d’état sur un drone quadrirotor. Il a également effectué une modélisation à
base des angles d’Euler. Et pleins d’autres recherches sur la modélisation
des drones ont également utilisé la méthode basée sur les angles d’Euler
[7] et [8]. En réalité, c’est la méthode la plus populaire du fait de la percep-
tion rapide de l’intuition mathématique qui se cache derrière.
Par contre, la méthode à base des quaternions est moins populaire mais
aussi efficace avec très peu de limites par rapport à la méthode des angles
d’Euler. L’article [9] montre quelques différences de performance entre
les deux approches. L’approche avec les quaternions a été utilisée par
exemple par M. Vital KPADEVI, ancien-étudiant à l’Ecole Polytechnique
d’Abomey Calavi dans son mémoire pour l’obtention du diplôme d’ingé-
nieur de conception en génie électrique dans lequel il a travaillé sur le dé-
veloppement et l’implémentation d’un contrôleur linéaire quadratique pour
le contrôle d’un drone quadrirotor à partir d’une représentation d’état ba-
sée sur les quaternions [10]. Dans son travail, il a fait référence au travail
de [Andrew KEHLENBECK. “Quaternion-based control for aggressive tra-
jectory tracking with a micro-quadrotor UAV”. Master of Science. College
Park : University of Maryland, 2014.], qui découvrit que « tout système basé
sur une représentation des angles Euler hérite d’un problème de singulari-
té appelé ”Gimbal Lock”. Cette singularité résulte du fait que la détermina-
tion des angles est basée sur des équations trigonométriques ». L’article
[11] aussi présente l’usage des quaternions pour modéliser et stabiliser
un drone quadrirotor. Ici, l’usage des quaternions a eu l’avantage d’élimi-
ner les effets indésirables sur la plateforme tel que le blocage de cardan
que l’on rencontre en utilisant l’approche des Angles d’Euler ou autres ap-
proches.
20
La majorité des articles utilisent soit les méthodes de commande classique
comme le Proportionnel, Intégral, Dérivé (PID), soit les méthodes de com-
mande optimale, robuste et intelligente. Le PID fait partie des premiers
contrôleurs à être utilisés sur les drones ; la thèse de Sidi Bel Abbès,[5] a
utilisé par exemple un contrôleur PID pour la commande.
Son contrôleur PID utilise trois algorithmes :
• P qui dépend des erreurs présentes = Proportionnalité
• I qui dépend de l’accumulation des erreurs passées = Intégration
• D une prédiction des erreurs futures = Dérivation
Dans son travail, il a négligé la vitesse du fluide environnant (le vent) et
le battement de la lame du drone. Toutes ces approches lui ont permis
d’obtenir une stabilité et une robustesse du système. Mais l’ensemble des
simplifications et des hypothèses ne lui permirent pas une mise en œuvre
réelle du système décrit. Les méthodes de commande robuste et intelli-
gente sont de diverses classes. Les plus utilisées et connues sont les Full
State Feedback Controller (FSFC) qui ont la particularité d’avoir une loi
de commande sous la forme 𝑢 = −𝐾𝑥(𝑡) et la sortie 𝑦(𝑡) = 𝑥(𝑡). Toutes
les méthodes de cette famille diffèrent par la méthode d’obtention du gain
K. La méthode LQR (Linear Quadratic Regulator) fait partie également de
cette famille. Elle est beaucoup utilisée pour le contrôle des paramètres du
modèle mathématique du drone comme la position, la vitesse, les angles,
etc.
Elle a été utilisée par [10] en combinaison avec la modélisation à base
des quaternions. Cette méthode lui a permis d’avoir un temps de réponse
d’environ 4s pour le contrôle de position et un bon comportement du drone
dans une situation de poursuite de trajectoire. Elle a aussi été utilisée dpar
[11]. Il a proposé une loi de contrôle d’attitude et une loi de contrôle de posi-
tion en utilisant un contrôleur de type LQR après avoir trouvé une façon de
linéariser le modèle. D’autres chercheurs ont utilisé d’autres algorithmes
de contrôle optimale comme la commande à base d’un retour d’état. C’est
le cas de [6] qui a travaillé sur la Synthèse d’une loi de commande à base
d’un retour d’état reconstruit d’un drone. La différence de cette méthode
avec les Full State Feedback Controller est dans la formulation de 𝑦(𝑡).
Son approche utilise un principe de ”Observateur” dont le rôle est d’annu-
ler rapidement l’écart entre la grandeur réelle et la grandeur estimée. Sa
21
commande présente quelques limitations concernant surtout le fait de ne
pas pouvoir contrôler l’évolution des pôles du systèmes.
Une dernière méthode de contrôle moins utilisée mais qui est adaptée aux
systèmes non linéaires est la commande backstepping. Cette méthode se
base sur l’utilisation des fonctions de Lyapunov[12]. Des auteurs ont tra-
vaillé sur l’application de cette commande aux drones quadrirotor ; C’est le
cas de [13]. Dans ce travail, l’auteur a utilisé une représentation d’état ba-
sée sur les angles d’Euler et a utilisé un contrôleur de type backstepping.
Conclusion partielle
En conclusion, on retient que la mise en place de la commande de sys-
tème passe par la modélisation et plusieurs méthodes sont utilisées. La
méthode avec les angles d’Euler permet de visualiser plus facilement les
mouvements mais cette utilisation est onéreuse en termes de temps de
calcul[10] à cause des fonctions trigonométriques à manipuler tandis que
l’approche avec les quaternions est majoritairement basée sur des calculs
algébriques. Quelle que soit la méthode de modélisation utilisée, l’objectif
du contrôle est de déterminer une loi de commande qui permettra d’at-
22
teindre et d’assurer le comportement désiré à travers une description en
temps réel de l’état du système. Dans la majorité des cas, l’optimisation de
cette commande en vue d’atteindre un objectif économique (lié aux coûts
des capteurs pour mesurer tout l’état) ou technologique (lié à la réalisabilité
du contrôleur), etc. est ce qui fait la différence et qui agit sur les résultats,
le temps de réponse, etc.
23
Chapitre 2
Modélisation mathématique du
quadricoptère
Introduction partielle
Ce chapitre présente la mise en équation mathématique du quadrirotor
à partir de sa dynamique physique. Après avoir décrit le fonctionnement du
quadrirotor et de ses mouvements, un aperçu a été effectué sur les qua-
ternions et leur implication dans la modélisation d’un quadrirotor. Ensuite,
le bilan des forces a été fait pour aboutir au modèle du quadrirotor.
2.1 Le Quadricoptère
2.1.1 Définition
Le quadricoptère fait partie des drones à voilure tournante (voir annexe
Les drones aéronefs). Ce sont des classes de drones qu’on appelle en-
core hélicos ou multirotors qui procèdent plusieurs rotors. Le quadrico-
ptère possède particulièrement 4 rotors tournants dont deux tournent dans
le sens horaire et les deux autres dans le sens anti-horaire de sorte que
deux moteurs consécutifs tournent dans des sens contraires afin d’empê-
cher à l’appareil de tourner sur lui même, sur son axe de lacet (voir fig
2.1). Ces 4 rotors sont généralement placés aux extrémités d’une croix, et
l’électronique de contrôle est habituellement placée au centre de la croix.
Ce type de drone est aussi capable de faire un décollage (et un atterris-
sage) vertical et un vol stationnaire : ce qui fait de ces drones, l’un des plus
utilisés dans plusieurs secteurs d’activité aujourd’hui telles que l’imagerie,
la livraison à domicile, l’agriculture, etc.
24
Fig. 2.1 : Sens de rotation des rotors d’un quadricoptère en 2D
25
Les mouvements de base de quadrirotor sont donc réalisés en variant la
vitesse de chaque rotor changeant de ce fait la poussée produite. Le qua-
drirotor s’incline vers la direction du rotor le plus lent. Ce qui fait qu’on peut
obtenir un mouvement de rotation en variant les vitesses de rotation des
moteurs se situant du côté de la direction désirée par rapport au côté op-
posé.
Comme les hélicoptères classiques, un mouvement de rotation accompa-
gné d’une poussée verticale entraine une transalation le long de l’axe.
De ce fait, les mouvements de translation le long des axes horizontaux
peuvent s’obtenir à partir d’une rotation et d’un mouvement de translation
suivant l’axe vertical. Il en résulte donc 4 mouvements principaux à obser-
ver :
• Le mouvement vertical
• Le mouvement de rotation autour de l’axe X appelé ROULIS
• Le mouvement de rotation autour de l’axe Y appelé TANGAGE
• Le mouvement de rotation autour de l’axe Z appelé LACET
Le mouvement vertical
Le mouvement vertical est le mouvement de translation suivant l’axe ver-
tical Z. Il est obtenu lorsque tous les moteurs tournent à la même vitesse,
empêchant l’engin de se renverser dans un sens. En tournant à la même
vitesse, la force totale de poussée produite détermine si le mouvement
de l’appareil sera ascendant ou descendant. Le mouvement ascendant ou
descendant est donc obtenu par la variation de la vitesse de rotation des
moteurs :
• si la force de portance est supérieure au poids du quadrirotor, le mou-
vement est ascendant
• et si la force de portance est inférieure au poids du quadrirotor, le mou-
vement est descendant.
Le mouvement roulis
Le mouvement de roulis est le mouvement de rotation d’angle 𝜙 autour
de l’axe X. La figure 2.3 montre comment un mouvement de roulis est ob-
26
Fig. 2.2 : Illustration du mouvement vertical d’un quadricoptère
tenu.
En diminuant la vitesse de rotation du rotor en bleu et en augmentant la
vitesse de celle en vert, on créér ainsi un moment de forces par rapport à
l’axe x qui tend à tourner l’appareil dans le sens de l’hélice en vert.
Le mouvement de tangage
Le mouvement de tangage est le mouvement de rotation d’angle 𝜃 autour
de l’axe Y. La figure 2.4 montre comment un mouvement de tangage est
27
obtenu.
En diminuant la vitesse de rotation du rotor en bleu et en augmentant la
vitesse de celle en vert, on créér ainsi un moment de forces par rapport à
l’axe y, qui tend à tourner l’appareil dans le sens de l’hélice en vert.
Le mouvement de lacet
Le mouvement de lacet est le mouvement de rotation d’angle 𝜓 autour de
l’axe Z. La figure 2.5 montre comment un mouvement de lacet est obtenu.
En diminuant la vitesse de rotation des rotors en bleu et en augmentant la
vitesse de celle en orange, on créér ainsi un moment de forces par rapport
à l’axe z, qui tend à tourner l’appareil autour de la verticale dans le sens
de rotation des moteurs ayant la plus grande vitesse.
28
Fig. 2.5 : Illustration du mouvement de lacet d’un quadricoptère
29
Fig. 2.6 : William Rowan Hamilton (1805-1865)
0
[ ] est l’élément neutre de l’addition.
0⃗
• Multiplication :
Soit 𝑞, 𝑝 ∈ 𝐻. On définit le produit des deux quaternions 𝑞 et 𝑝 par :
𝑞0 𝑝0 − ⃗⃗⃗⃗⃗⃗
𝑞𝑟 𝑝
⃗⃗⃗ ⃗𝑟⃗
𝑞⨂𝑝 = [ ]
𝑞0 ⃗⃗𝑝⃗ ⃗𝑟⃗ + 𝑝0 ⃗⃗⃗⃗⃗⃗
𝑞𝑟 + ⃗⃗⃗⃗⃗⃗
𝑞𝑟 ∧ ⃗⃗𝑝⃗ ⃗𝑟⃗
30
Fig. 2.7 : Plaque commémorative de la naissance des quaternions sur le pont de Broom (Dublin).
• Conjuguée :
La conjuguée du quaternion 𝑞 est donnée par :
𝑞 ̄ = (𝑞0 , −𝑞⃗ 𝑟 )𝑇
• Norme :
La norme du quaternion 𝑞 est donnée par :
||𝑞|| = ||𝑞||̄ = √𝑞02 + 𝑞12 + 𝑞22 + 𝑞32
• Inverse :
L’inverse du quaternion 𝑞 est donné par :
1 𝑞̄ 𝑞̄
𝑞 −1 = = =
𝑞 𝑞 ⨂ 𝑞 ̄ ||𝑞||2
31
[16].
32
𝑑(𝑞0 (𝑡))
⎡ 𝑑𝑡 ⎤
⎢ 𝑑(𝑞 (𝑡)) ⎥ 0 −𝜔𝑥 (𝑡) −𝜔𝑦 (𝑡) −𝜔𝑧 (𝑡) 𝑞0 (𝑡)
⎢ 1 ⎥ 1 ⎡𝜔 (𝑡) 0 −𝜔𝑦 (𝑡) −𝜔𝑧 (𝑡)⎥⎤ ⎡ 𝑞1 (𝑡)⎤
⎢ 𝑑𝑡 ⎥ = ⎢ 𝑥 ⨂ ⎢ ⎥
⎢ 𝑑(𝑞2 (𝑡)) ⎥ 2 ⎢𝜔𝑦 (𝑡) 𝜔𝑧 (𝑡) 0 −𝜔𝑥 (𝑡)⎥ ⎢𝑞2 (𝑡)⎥
⎢ 𝑑𝑡 ⎥
⎢ 𝑑(𝑞3 (𝑡)) ⎥ ⎣𝜔𝑥 (𝑡) −𝜔𝑦 (𝑡) 𝜔𝑧 (𝑡) 0 ⎦ ⎣𝑞3 (𝑡)⎦
⎣ 𝑑𝑡 ⎦
33
opération la rotation suivant les trois axes.
Soit 𝑞 = 𝑞𝜓 ⨂ 𝑞𝜃 ⨂ 𝑞𝜙 . Une expression détaillée de 𝑞 est obtenue en faisant
le produit des trois quaternions :
𝜙 𝜃 𝜓 𝜙 𝜃 𝜓
⎡ cos cos cos + sin sin sin
2 2 2 2 2 2⎤
⎢ ⎥
⎢ 𝜙 𝜃 𝜓 𝜙 𝜃 𝜓⎥
⎢sin cos cos − cos sin sin ⎥
⎢ 2 2 2 2 2 2⎥
𝑞=⎢ ⎥
⎢ 𝜙 𝜃 𝜓 𝜙 𝜃 𝜓⎥
⎢cos 2 sin 2 cos 2 + sin 2 cos 2 sin 2 ⎥
⎢ ⎥
⎢ 𝜙 𝜃 𝜓 𝜙 𝜃 𝜓⎥
cos cos sin − sin sin cos
⎣ 2 2 2 2 2 2⎦
Par conséquent, pour faire passer un quelconque vecteur 𝑝⃗ = 𝑝𝑏⃗ de 𝑅𝑏
dans 𝑅𝑖 , il suffit de réaliser l’opération :
0
𝑝𝑖⃗ = 𝐼𝑚{𝑞 ⨂ [ ] ⨂ 𝑞 −1 } (2.1)
𝑝𝑏⃗
𝐼𝑚 est utilisé pour désigner la partie imaginaire du quaternion.
A l’inverse,
0
𝑝𝑏⃗ = 𝐼𝑚{𝑞 −1 ⨂ [ ] ⨂ 𝑞} (2.2)
𝑝𝑖⃗
Ces deux expressions peuvent se mettre sous forme matricielle sachant
𝑞 = (𝑞0 , 𝑞1 , 𝑞2 , 𝑞3 )𝑇 :
𝑝𝑖⃗ = 𝑅.𝑝𝑏⃗
et
𝑝𝑏⃗ = 𝑅′ .𝑝𝑖⃗
avec
1 2 2
⎡2( 2 − 𝑞2 − 𝑞3 ) 2(𝑞1 𝑞2 − 𝑞0 𝑞3 ) 2(𝑞1 𝑞3 + 𝑞0 𝑞2 ) ⎤
⎢ 1 ⎥
R= ⎢ 2(𝑞1 𝑞2 + 𝑞0 𝑞3 ) 2( − 𝑞12 − 𝑞32 ) 2(𝑞2 𝑞3 − 𝑞0 𝑞1 ) ⎥ et
⎢ 2 ⎥
1 2 2
2(𝑞 𝑞 − 𝑞0 𝑞2 ) 2(𝑞2 𝑞3 + 𝑞0 𝑞1 ) 2( − 𝑞1 − 𝑞2 )
⎣ 1 3 2 ⎦
1 2 2
⎡2( 2 − 𝑞2 − 𝑞3 ) 2(𝑞1 𝑞2 − 𝑞0 𝑞3 ) 2(𝑞1 𝑞3 − 𝑞0 𝑞2 ) ⎤
⎢ 1 ⎥
R’= ⎢ 2(𝑞1 𝑞2 − 𝑞0 𝑞3 ) 2( − 𝑞12 − 𝑞32 ) 2(𝑞2 𝑞3 + 𝑞0 𝑞1 ) ⎥
⎢ 2 ⎥
1 2 2
2(𝑞 𝑞 + 𝑞0 𝑞2 ) 2(𝑞2 𝑞3 − 𝑞0 𝑞1 ) 2( − 𝑞1 − 𝑞2 )
⎣ 1 3 2 ⎦
34
2.3 Modélisation de la dynamique
2.3.1 Définition des repères
Un repère sert de base pour décomposer ou exprimer un vecteur. Les
composantes du vecteur sont définies à partir des vecteurs unitaires consti-
tuant le repère de référence. Un vecteur peut donc avoir des composantes
complètement différentes dépendamment du repère dans lequel celui-ci
est exprimé.
Pour décrire la position et l’orientation du quadricoptère, nous avons be-
soin de deux repères.
• Un repère inertiel 𝑅𝑖
• Un repère mobile 𝑅𝑏
Le premier, nommé repère inertiel est un référentiel orthogonal fixe de
type galiléen, au sens que celui-ci n’accélère pas et ne tourne pas par
rapport à un observateur. Ainsi, il s’agit d’un repère dans lequel les lois de
Newton s’appliquent.
Le deuxième repère, nommé repère mobile est nécessaire pour décrire
l’orientation du quadricoptère. Celui-ci est attaché au châssis du quadriro-
tor et se déplace donc avec celui-ci : c’est le repère du rotor.
Puisque la valeur d’un vecteur peut changer d’un repère à l’autre, il est
important d’utiliser une notation rigoureuse. Le repère inertiel sera identifié
par l’indice 𝑖 ( 𝑅𝑖 (𝑂𝑖 , 𝑖𝑖⃗ , 𝑗𝑖⃗ , 𝑘𝑖⃗ ) ), donc une force dans le repère inertiel sera
notée 𝐹𝑖 et le repère mobile sera identifié par l’indice 𝑏 ( 𝑅𝑏 (𝑂𝑏 , 𝑖𝑛⃗ , 𝑗𝑏⃗ , 𝑘𝑏⃗ ) ),
et les forces, 𝐹𝑏 .
35
Fig. 2.9 : Mise en évidence du vecteur position
36
• 𝜃 désigne la rotation autour de l’axe 𝑌𝑖 : le tangage
• 𝜓 désigne la rotation autour de l’axe 𝑍𝑖 : le lacet
Le poids 𝑃 ⃗ :
Le poids 𝑃 ⃗ est la force de la pesanteur, d’origine gravitationnelle et iner-
tielle, exercée, par la terre sur le drone. Elle est une force verticale orientée
vers le bas. Il est donné par :
𝑃 ⃗ = 𝑚𝑔 ⃗
où 𝑔 ⃗ est l’accélération de pesanteur et 𝑚, la masse totale du système.
37
bas ; On observe donc une faible pression du vent en dessous de l’hélice vu
la quantité importante de vent. Cette différence de pression créée une force
perpendiculaire au plan de l’hélice appelée PORTANCE dont l’intensité est
proportionnelle à la forme de l’hélice et la vitesse de rotation du moteur.
On a donc :
𝐹𝑖 = 𝑏𝑤𝑖̄ 2
Avec 𝑖 ∈ 1...4, 𝑤𝑖̄ la vitesse de rotation de l’hélice i, et b le coefficient de
portance
𝑏 = 𝐶𝑝 𝜌𝐴(Ω𝑟)2 (2.3)
𝐶𝑝 est un terme aéronautique dépendant de la géométrie de l’hélice et
des conditions aéronautiques, ici, coeffcient aérodynamique de portance
de l’hélice
𝜌, la densité de l’air ;
𝐴, l’air du disque généré par l’hélice ;
Ω, la vitesse de l’air accélérée par l’hélice ;
𝑟, la longueur de l’hélice.
𝐷𝑖 = 𝑑𝑤𝑖̄ 2 (2.4)
38
𝜌, la densité de l’air ;
𝐴, l’air du disque généré par l’hélice ;
Ω, la vitesse de l’air accélérée par l’hélice ;
𝑟, la longueur de l’hélice.
Il est important de noter que par définition, l’équation (2.4) génère un mo-
ment positif pour les rotations d’hélice antihoraire (sens trigonométrique,
positif) et un moment négatif pour les rotations horaires, lorsqu’exprimée
dans le repère du quadrirotor.
Moment de roulis 𝑀𝑥
Il s’agit du moment qui tend à faire tourner le système autour de l’axe 𝑋.
39
= 𝑎(−𝑏𝑤1̄ 2 + 𝑏𝑤2̄ 2 + 𝑏𝑤3̄ 2 − 𝑏𝑤4̄ 2 )
𝑎 étant la distance de la force 𝐹𝑖 à l’axe de rotation X.
Pour obtenir a, on considère le triangle rectangle formé par 𝑙, 𝑎 et la moitié
de la distance du segment [𝐹1 𝐹4 ].
L’angle formé par 𝑙 et 𝑎 étant de 𝜋4 , on obtient :
√
sin 𝜋 2
𝑎=𝑙 =𝑙 (2.6)
4 2
Par conséquent :
√
2
𝑀𝑥 = 𝑏𝑙 (−𝑤1̄ 2 + 𝑤2̄ 2 + 𝑤3̄ 2 − 𝑤4̄ 2 ) (2.7)
2
Moment de tangage 𝑀𝑦
Il s’agit du moment qui tend à faire tourner le système autour de l’axe 𝑌 .
40
= 𝑎𝐹1 + 𝑎𝐹2 − 𝑎𝐹3 − 𝑎𝐹4
= 𝑎(𝑏𝑤1̄ 2 + 𝑏𝑤2̄ 2 − 𝑏𝑤3̄ 2 − 𝑏𝑤4̄ 2 )
En utilisant un raisonnement analogue au (2.6), on obtient :
√
sin 𝜋 2
𝑎=𝑙 =𝑙
4 2
Par conséquent :
√
2
𝑀𝑦 = 𝑏𝑙 (𝑤1̄ 2 + 𝑤2̄ 2 − 𝑤3̄ 2 − 𝑤4̄ 2 ) (2.8)
2
Moment de lacet 𝑀𝑧
Il s’agit du moment qui tend à faire tourner le système autour de l’axe 𝑧.
𝑀 𝑧 = −𝐷1 + 𝐷2 − 𝐷3 + 𝐷4
41
Ainsi,
42
avec 𝜔 la vitesse angulaire du quadricoptère,
𝐽𝑄 , le moment d’inertie du système.
𝑀𝑔𝑞 n’est pas forcément nul car les élements de la matrice d’inertie 𝐽𝑄
ne font pas forcément identiques.
43
Soit
∑ 𝑓𝑖 = 𝑚 𝜂 ̈ (2.13)
L’indice 𝑖 est utilisé pour rappeler que l’équation (2.13) s’écrit dans le re-
père inertiel.
Ici, ∑ 𝑓𝑖 = 𝑃 ⃗ + 𝐹𝑖⃗
𝐹𝑖 , la portance totale exprimée dans le repère inertiel. Or d’après (2.1),
0 4
𝐹𝑖 = 𝐼𝑚{𝑞 ⨂ [ ⃗ ] ⨂ 𝑞 −1 } et 𝐹𝑏⃗ = (0, 0, ∑𝑖=1 𝑏𝜔𝑖2 )𝑇 ;
𝐹𝑏
Aussi, 𝑃 ⃗ = (0, 0, −𝑚𝑔)𝑇
Ainsi, (2.13) devient :
0
⎡ 0 ⎤ + 𝐼𝑚{𝑞 ⨂ [ 0 ] ⨂ 𝑞 −1 } = 𝑚𝜂 ̈
⎢ ⎥ 𝐹𝑏⃗
⎣ −𝑚𝑔 ⎦
Par conséquent, la dynamique de translation donnera :
𝑥̈ 0
⎡ ⎤ 1 0
𝑣 ̇ = 𝜂̈ = ⎢𝑦 ⎥ ̈ = 𝐼𝑚{𝑞 ⨂ [ ⃗ ] ⨂ 𝑞 } + ⎢ 0 ⎤
−1 ⎡
⎥ (2.14)
𝑚 𝐹𝑏
⎣𝑧 ⎦ ̈ ⎣−𝑔⎦
44
Ici, ∑ 𝑀 = 𝑀𝑎 + 𝑀𝑔ℎ + 𝑀𝑔𝑞
√
2
𝑀𝑥 ⎡ 𝑏𝑙 (−𝑤1̄ 2 + 𝑤2̄ 2 + 𝑤3̄ 2 − 𝑤4̄ 2 )⎤
⎤=⎢ √ 2 ⎥
avec 𝑀𝑎 = ⎡ 𝑀
⎢ 𝑦 ⎥ ⎢ 𝑏𝑙 2 (𝑤 ̄ 2 + 𝑤 ̄ 2 − 𝑤 ̄ 2 − 𝑤 ̄ 2 ) ⎥
⎣ 𝑀𝑧 ⎦ ⎢ ⎥
1 2 3 4
2 2 2 2 2
⎣ 𝑑(−𝑤1̄ + 𝑤2̄ − 𝑤3̄ + 𝑤4̄ ) ⎦
𝜙̇ 0
⎡ ⎤
𝑀𝑔ℎ = 𝐽𝐻 𝛾 𝜔⃗ × 𝑘𝑏 = 𝐽𝐻 𝛾 ⎢ 𝜃 ⎥ × ⎢0⎤
⃗ ̇ ⎡
⎥
̇
⎣𝜓⎦ ⎣1⎦
𝜙̇ 𝜙̇
⎡ ⎤ ̇ × 𝐽𝑄 ⎡ ⎤
̇
et 𝑀𝑔𝑞 = 𝜔⃗ × 𝐽𝑄 𝜔⃗ = ⎢ 𝜃 ⎥ ⎢𝜃⎥
⎣𝜓 ⎦ ̇ ⎣𝜓 ⎦ ̇
Avec √
2 2 2 2 2
⎡𝑏𝑙 (−𝑤1̄ + 𝑤2̄ + 𝑤3̄ − 𝑤4̄ )⎤
⎢ √ 2 ⎥
𝑈 =⎢ 2 2 2 2 2 ⎥ (2.19)
⎢ 𝑏𝑙 2 (𝑤1̄ + 𝑤2̄ − 𝑤3̄ − 𝑤4̄ ) ⎥
2 2 2 2
⎣ 𝑑(−𝑤1̄ + 𝑤2̄ − 𝑤3̄ + 𝑤4̄ ) ⎦
45
Conclusion partielle
Dans ce chapitre, nous avons présenté la dynamique du quadricoptère,
ses mouvements possibles et nous l’avons modélisé à l’aide des quater-
nions. Le chapitre suivant présente la mise en place du contrôleur pour ce
modèle fortement non linéaire.
46
Chapitre 3
Introduction partielle
Le présent chapitre est subdivisé en deux parties. La première partie
présente dans un premier temps les notions préliminaires à la mise en
place du contrôleur non linéaire. La méthode de commande choisie étant
le backstepping, nous allons ensuite présenter sa méthode de concep-
tion et l’appuyer à l’aide d’exemples. Enfin, nous l’appliquerons au mo-
dèle de quadricoptère obtenu pour obtenir notre loi de commande. Dans la
deuxième partie, l’implémentation du quadricoptère et celle de notre sys-
tème de contrôle sous SIMULINK grâce à MATLAB ont été exposées. Dans
un premier temps, nous allons évoquer le choix de nos paramètres, calcu-
ler les constantes liées au drone ou à sa structure et dans un second temps,
nous présenterons les blocs de l’implémentation.
47
partie I
48
3.1 Le backstepping
Le backstepping est une technique de conception d’une loi de com-
mande développée vers 1990 par Petar V. Kokotovic et plusieurs autres
auteurs. Plusieurs méthodes sont utilisées pour établir des contrôleurs non
linéaires. Parmi celles-ci, on a la méthode se basant sur la théorie de sta-
bilité des systèmes dynamiques d’Alexsandr Lyanpunov [12]. Le backs-
tepping se base sur cette théorie de stabilité de Lyapunov pour construire
au fur et à mesure l’expression de la commande pouvant stabiliser le sys-
tème. Typiquement, le but du concepteur est de trouver une fonction définie
positive, nommée fonction de Lyapunov dont la dérivée, par rapport au
temps, est contrainte, à l’aide des entrées du système, à être une fonction
définie négative. Nous présenterons dans la section suivante les princi-
paux théorèmes sur la théorie de Lyapunov.
49
• Solution stable : si pour tout 𝜖 > 0, il existe 𝛿(𝜖, 𝑡0 ) > 0 de sorte que :
• Solution bornée : s’il existe une constante 𝐵(𝑥0 , 𝑡0 ) > 0 telle que :
lorsque 𝑡 ⟶ ∞
La stabilité asymptotique signifie que l’état de départ est proche de
l’origine et par déduction qu’il converge vers l’origine lorsque 𝑡 ⟶ ∞.
Dans ces conditions, 𝛿(𝑡0 ) est appelée domaine d’attraction du point
d’équilibre.
La région d’attraction du point d’équilibre est une plus vaste région, car
elle comprend l’ensemble des domaines d’attraction possible.
50
reur à converger vers 0. Ainsi, il est important d’étudier la convergence.
L’étude de la convergence peut se faire selon le théorème de LaSalle-
Yoshizawa([19]).
Définition 2
Une fonction continue 𝑉 (𝑡, 𝑥) ∶ ℝ+ × ℝ𝑛 ⟶ ℝ est définie positive locale-
ment s’il existe une fonction continue non décroissante 𝛼(𝑝) vérifiant
𝛼(0) = 0
{ ∀𝑝 > 0
𝛼(𝑝) > 0
et telle qu’elle est dominée par 𝑉 (𝑡, 𝑥) comme suit :
𝑉 (𝑡, 𝑥) = 0 ∀𝑡 > 0
{
𝑉 (𝑡, 𝑥) > 𝛼(||𝑥||) ∀𝑡 ≥ 0
Dit autrement, la fonction 𝑉 (𝑡, 𝑥) domine une fonction continue non dé-
croissante, définie positive localement et invariable dans le temps.
Théorème de LaSalle-Yoshizawa
Soit 𝑥 = 0 un point d’équilibre de 𝑥̇ = 𝑓(𝑥, 𝑡) et supposons que 𝑓 est
localement Lipschitz sur x uniformément dans le temps t.
Soit 𝑉 , une fonction de Lyapunov définie telle que :
𝜕𝑉
𝑉̇ = (𝑥)𝑓(𝑥, 𝑡) ≤ −𝑊 (𝑥) ≤ 0, ∀𝑡 ≥ 0, ∀𝑥 ∈ ℝ𝑛 (3.7)
𝜕𝑥
Avec 𝑊 (𝑥), une fonction continue. Alors toutes les solutions de (3.1) sont
globalement uniformément bornées et asymptotiquement stables.
Le théorème de LaSalle-Yoshizawa est applicable aux systèmes va-
riants dans le temps et permet d’établir la convergence d’un ensemble.
Parti de ce théorème, nous allons décrire les étapes de conception d’un
contrôleur backstepping sur la base de la théorie de Lyapunov à l’aide d’un
exemple.
51
3.3 Etapes de conception du contrôleur backstepping
Comme énoncé plus haut, la méthode de conception du contrôleur backs-
tepping se base sur la théorie de stabilité des systèmes dynamiques de
Lyapunov.
Prenons le modèle d’état non linéaire suivant pour décrire la méthode :
𝑥 ̇ = cos 𝑥1 + 𝑥2
{ 1 (3.8)
𝑥2̇ = 𝑥1 + 𝑢
Déterminons le point d’équilibre du système homogène
Le système homogène correspondant à une commande nulle ⟹ 𝑢 = 0
𝑥 ̇ = cos 𝑥1 + 𝑥2
𝑢=0 ⟹ { 1 ⟹ 𝑥2̈ = 𝑥1̇ = cos 𝑥1 + 𝑥2
𝑥2̇ = 𝑥1
𝑥2 = 𝑐, (𝑐 ∈ ℝ) ⟹ 𝑥2̈ = 𝑥1̇ = 0
Donc
cos 𝑥1 + 𝑥2 = 0 ⟹ cos 𝑥2̇ + 𝑥2 = 0 ⟹ cos(0) + 𝑐 = 0 ⟹
𝑐 = −1 ⟹ 𝑥1 = 0, 𝑥2 = −1
Le système homogène (𝑢 = 0) ne possède donc qu’un seul point d’équi-
libre à (𝑥1 , 𝑥2 ) = (0, −1) qui est instable.
Notre objectif est de trouver un contrôleur 𝛼𝑢 qui va rendre ce point d’équi-
libre uniformément asymptotiquement stable.
1ère étape
D’abord, positionnons-nous sur la première équation du système (3.8)
𝑥1̇ = cos 𝑥1 + 𝑥2
Nous allons utiliser 𝑥2 pour contrôler 𝑥1 .
Choisissons donc un contrôleur virtuel de 𝑥1 , 𝛼𝑥2
Notre objectif sera de trouver le contrôleur virtuel 𝛼𝑥2 pour forcer l’origine
à être uniformément asymptotiquement stable au sens de Lyapunov.
1
Pour cela, supposons une fonction candidate de Lyapunov 𝑉1 = 𝑥21 On
2
sait que 𝑉1 > 0∀𝑥1 et 𝑉1 (0) = 0.
Sa dérivée par rapport au temps donne :
52
Pour forcer 𝑉 ̇ à être négative, choisissons donc le contrôleur virtuel
On aura de ce fait :
Le fait que 𝑉1̇ <= 0, d’après (3.7), nous assure que l’origine du système
est uniformément asymptotiquement stable en 𝑥1 .
2ème étape
On passe à présent à la deuxième équation du système (3.8).
Dans cette étape, on va commencer par contrôler l’erreur d’estimation 𝑥2
par 𝛼𝑥2 . Soit 𝑒2 , cette erreur ; On pose :
𝑒2 = 𝑥2 − 𝛼𝑥2
Nous allons définir le nouveau système qui va tenir compte de l’erreur 𝑒2
et de 𝛼𝑥2 . On a :
𝑥1̇ = 𝑒2 − 𝑘1 𝑥1 (3.13)
Ainsi,
53
Pour forcer 𝑉2 à être négative, on choisit le contrôleur u suivant :
Nous ontenons ainsi 𝑉2̇ = −𝑘1 𝑥21 − 𝑘2 𝑒22 qui est négative. Ce qui nous as-
sure que le point d’équilibre est uniformément asymptotiquement stable.
Notre objectif de contrôle est donc atteint.
⎧𝜂 ̇ = 𝑣
{
{ 0
0
𝑆1 ∶ ⎨
𝑣 ̇ = 𝐼𝑚{𝑞 ⨂ ⎡ 1 ⎤ ⨂ 𝑞 −1 } + ⎢ 0 ⎤
⎡
⎥
(3.18)
{ ⎢ ⃗ ⎥ ⎢ ⎥
{ 𝐹𝑏
⎩ ⎣ 𝑚 ⎦ −𝑔
⎣ ⎦
⎧ 1 0
{𝑞 ̇ = 𝑞 ⨂ [ ]
𝑆2 ∶ ⎨ 2 𝜔⃗ (3.19)
{𝜔̇ = 𝐽 −1 (−𝜔⃗ × 𝐽 𝜔⃗ − 𝐽 𝛾 𝜔⃗ × 𝑘 ⃗ + 𝑈 )
⎩ 𝑄 𝑄 𝐻 𝑖
54
Fig. 3.1 : Radio commande d’un drone
55
Dans notre méthodologie de contrôle, on va donc utiliser un vecteur 𝜂 =
(0, 0, 𝑧)𝑇 pour contrôler l’altitude et le combiner avec le quaternion 𝑞 d’orien-
tation issu des angles de roulis, tangage, lacet désirés pour avoir la position
finale désirée.
Il sera donc question de trouver :
• A partir de (3.18) : l’accélération linéaire qui, une fois intégrée deux
fois nous permet d’avoir une position 𝜂𝑓 = (0, 0, 𝑧𝑓 )𝑇 de sorte que à
minimiser l’erreur entre 𝜂𝑓 et 𝜂𝑑 et à assurer une convergence unifor-
mément asymptotiquement stable du système linéaire.
• A partir de (3.19) : l’accélération angulaire qui, une fois intégrée deux
fois nous permet d’avoir la position angulaire dont on va se servir pour
avoir le quaternion d’orientation 𝑞𝑓
Les indices 𝑓 et 𝑑 sont utilisés pour désigner finale et désirée respective-
ment. La multiplication du quaternion 𝑞𝑓 avec la position 𝜂𝑓 devra donc
nous orienter vers une position finale du quadricoptère.
56
Ensuite, nous allons prendre le sous-système et (3.19),
• Poser l’erreur en quaternion 𝑞𝑒 sur la base de l’équation de la cinéma-
tique du quaternion
• S’en servir pour trouver l’expression de la composante réelle 𝛽 et celle
imaginaire 𝜖 de 𝑞𝑒
• Etablir la dérivée de l’erreur 𝑞𝑒̇ et déduire la dérivée de 𝛽 et de 𝜖
• Proposer une fonction de Lyapunov définie positive associée à 𝑞𝑒 donc
dépendant de 𝜖 et 𝛽
• S’en servir pour trouver le contrôleur virtuel de vitesse angulaire 𝜔𝑑
• Utiliser 𝜔𝑑 et la dernière équation pour poser l’erreur en vitesse angu-
laire 𝜔𝑒
• Calculer la dérivée et proposer une fonction de Lyapunov
• S’en servir pour trouver l’accélération angulaire qui assure la conver-
gence UAS et la commande U nécessaire
Schema de synthèse
3.4.4 Contrôleur de la dynamique de translation
Etape 1 : Contrôleur de position linéaire
Comme décrit dans la section précédente, nous allons commencer par
poser l’erreur en position linéaire 𝑒1 .
𝑒1 = 𝜂 − 𝜂𝑑 (3.20)
Sa dérivée
𝑒1̇ = 𝜂 ̇ − 𝜂𝑑̇ (3.21)
or 𝜂 ̇ = 𝑣 donc
𝑒1̇ = 𝑣 − 𝜂𝑑̇ (3.22)
Soit la fonction candidate de Lyapunov :
1
𝑉1 = 𝑒𝑇1 𝑒1 (3.23)
2
On a
𝑉1̇ = 𝑒𝑇1 𝑒1̇ = 𝑒𝑇1 (𝑣 − 𝜂𝑑̇ ) (3.24)
57
Soit 𝛼𝑣 le contrôleur virtuel de la vitesse, Posons 𝛼𝑣 = 𝜂𝑑̇ − 𝐴1 𝑒1 avec 𝐴1
un réel positif.
En substituant 𝑣 par 𝛼𝑣 dans (3.24), on aura
𝛼𝑣 = 𝜂𝑑̇ − 𝐴1 𝑒1 (3.26)
0 0
𝑒2̇ = 𝐼𝑚{𝑞 ⨂ [ 1 ⃗ ] ⨂ 𝑞 } + ⎢ 0 ⎤
−1 ⎡
⎥ − 𝜂𝑑̈ + 𝐴1 𝑒1̇ (3.28)
𝐹𝑏
𝑚 ⎣−𝑔⎦
Calculons 𝑒1̇
𝑒1̇ = 𝜂 ̇ − 𝜂𝑑̇
Or 𝜂 ̇ = 𝑣 = 𝑒2 + 𝜂𝑑̇ − 𝐴1 𝑒1 Donc
0 0
𝑒2̇ = 𝐼𝑚{𝑞 ⨂ [ 1 ⃗ ] ⨂ 𝑞 } + ⎢ 0 ⎤
−1 ⎡
⎥ − 𝜂𝑑̈ + 𝐴1 𝑒1̇ (3.30)
𝐹𝑏
𝑚 ⎣−𝑔⎦
58
𝑒1̇ = 𝑒2 + 𝜂𝑑̇ − 𝐴1 𝑒1 − 𝜂𝑑̇
(3.31)
= 𝑒 2 − 𝐴 1 𝑒1
1
Soit la fonction de Lyapunov 𝑉2 = 𝑉 1 + 𝑒𝑇2 𝑒2 qui nous permettra de
2
stabiliser l’erreur 𝑒2
1 1
𝑉2 = 𝑒𝑇1 𝑒1 + 𝑒𝑇2 𝑒2 (3.32)
2 2
On note donc 𝑉2 > 0.
Calculons la dérivée de la fonction de Lyapunov
𝑉2̇ = 𝑒𝑇1 𝑒1̇ + 𝑒𝑇2 ∗ 𝑒2̇
0 0
= 𝑒𝑇1 (𝑒2 ⎛ 𝑒𝑇2 −1 ⎡
− 𝐴1 𝑒1 ) + ∗ ⎜𝐼𝑚{𝑞 ⨂ [ 1 ⃗ ] ⨂ 𝑞 } + ⎢ 0 ⎤ − 𝜂𝑑̈ + 𝐴1 (𝑒2 − 𝐴1 𝑒1 )⎞
⎟
𝐹𝑏 ⎥
⎝ 𝑚 ⎣−𝑔⎦ ⎠
0 0
𝑇 ⎛
= − 𝑒1 𝐴1 𝑒1 + 𝑒2 ⎜𝑒1 + 𝐼𝑚{𝑞 ⨂ [ 1 ⃗ ] ⨂ 𝑞 } + ⎢ 0 ⎤
𝑇 −1 ⎡
⎥ − 𝜂𝑑̈ + 𝐴1 (𝑒2 − 𝐴1 𝑒1 )⎞
⎟
𝐹𝑏
⎝ 𝑚 ⎣−𝑔⎦ ⎠
(3.33)
Simplifions un peu le vecteur
0
𝐼𝑚{𝑞 ⨂ [ 1 ⃗ ] ⨂ 𝑞 −1 } (3.34)
𝐹
𝑚 𝑏
𝑞 = (𝑞0 , 𝑞1 , 𝑞2 , 𝑞3 ) est le quaternion d’orientation du système.
q est un quaternion unitaire donc 𝑛𝑜𝑟𝑚(𝑞) = 1;
𝑞0
𝑞̄ ⎛
⎜ −𝑞1 ⎞
⎟
On a donc : 𝑞 = −1
=⎜⎜ ⎟
𝑛𝑜𝑟𝑚(𝑞) ⎜−𝑞2 ⎟ ⎟
⎝−𝑞3 ⎠
59
Ainsi, le quaternion du (3.34) devient :
𝑞0 0 𝑞0 −𝑞3 𝐹𝑏 /𝑚 𝑞0
⎛
⎜ ⎞
𝑞1 ⎟ ⎛
⎜ 0 ⎟⎞ ⎛
⎜ ⎞
−𝑞1 ⎟ ⎛
⎜ 𝑞2 𝐹𝑏 /𝑚 ⎟ ⎞ ⎛
⎜ −𝑞1 ⎞
⎟
⎜
⎜ ⎟
⎟ ⎜
⨂⎜ ⎟
⎟ ⎜
⨂⎜ ⎟
⎟ ⎜
= ⎜ ⎟
⎟ ⨂⎜ ⎜ ⎟
⎜𝑞2 ⎟ ⎜ 0 ⎟ ⎜−𝑞2 ⎟ ⎜−𝑞1 𝐹𝑏 /𝑚⎟ ⎜−𝑞2 ⎟ ⎟
⎝𝑞3 ⎠ ⎝𝐹𝑏 /𝑚⎠ ⎝−𝑞3 ⎠ ⎝ 𝑞0 𝐹𝑏 /𝑚 ⎠ ⎝−𝑞3 ⎠
0
⎛ (3.35)
⎜
⎜ 2(𝑞1 𝑞3 + 𝑞0 𝑞2 ) ⎞⎟
⎟ 𝐹𝑏
= ⎜ ⎟
⎜ 2(𝑞2 𝑞3 − 𝑞0 𝑞1 ) ⎟ 𝑚
2 2 2 2
⎝𝑞 3 + 𝑞 0 − 𝑞 2 − 𝑞 1 ⎠
0 𝐹
= ( ) 𝑏
𝑄 𝑚
2(𝑞1 𝑞3 + 𝑞0 𝑞2 )
Avec 𝑄, le vecteur ⎜ 2(𝑞2 𝑞3 − 𝑞0 𝑞1 ) ⎞
⎛ ⎟
2 2 2 2
⎝𝑞3 + 𝑞0 − 𝑞2 − 𝑞1 ⎠
Ainsi, (3.34) devient
0 0 𝐹
𝐼𝑚{𝑞 ⨂ [ 1 ⃗ ] ⨂ 𝑞 −1 } = 𝐼𝑚 ( ) 𝑏
𝐹 𝑄 𝑚
𝑚 𝑏 (3.36)
𝐹
=𝑄 𝑏
𝑚
On peut donc reécrire (3.33)
𝐹𝑏
𝑉2̇ = − 𝑒𝑇1 𝐴1 𝑒1 + 𝑒𝑇2 (𝑒1 + 𝑄 + 𝑔 ⃗ − 𝜂𝑑̈ + 𝐴1 (𝑒2 − 𝐴1 𝑒1 )) (3.37)
𝑚
0
𝑔⃗ = ⎢ 0 ⎤
⎡
⎥
−𝑔
⎣ ⎦
𝐹
Nous allons chercher à commander le terme 𝑄 𝑏 qui contient la force de
𝑚
portance et le quaternion qui correspond au petit mouvement d’orientation
que peut générer la portance.
Ce terme est lié à l’accélération.
Soit 𝛼𝑎 le contrôleur virtuel d’accélération.
Avec ceci, l’accélération désirée aura pour expression 𝑎𝑑𝑒𝑠 = 𝛼𝑎 + 𝑔 ⃗
Posons :
60
𝐹𝑏
En remplaçant 𝑄 par 𝛼𝑎 de (3.38) par dans (3.37), on aura :
𝑚
𝑉2̇ = − 𝑒𝑇1 𝐴1 𝑒1 + 𝑒𝑇2 (𝛼𝑎 + 𝑔 ⃗ − 𝜂𝑑̈ + 𝐴1 (𝑒2 − 𝐴1 𝑒1 ))
= − 𝑒𝑇1 𝐴1 𝑒1 + 𝑒𝑇2 (𝜂𝑑̈ − 𝐴1 (𝑒2 − 𝐴1 𝑒1 ) − 𝐴2 𝑒2 − 𝑔 ⃗ + 𝑔 ⃗ − 𝜂𝑑̈ + 𝐴1 (𝑒2 − 𝐴1 𝑒1 ))
= − 𝑒𝑇1 𝐴1 𝑒1 − 𝑒2 𝐴2 𝑒2
(3.39)
La dérivée de la fonction de Lyapunov 𝑉2 est 𝑉2̇ <= 0∀𝐴1 > 0, 𝐴2 > 0
donc le système (3.18) sera globalement uniformément asymptotiquement
stable.
Retrouvons les expressions de 𝐹𝑏 et de l’accélération désirée 𝑎𝑑𝑒𝑠
𝐹𝑏
𝐹𝑏 𝐹
=> ||𝛼𝑎 || = ||𝑄 𝑏 ||
𝛼𝑎 = 𝑄
𝑚 𝑚 (3.40)
𝐹𝑏
=> ||𝛼𝑎 || = ||𝑄||
𝑚
On peut montrer que ||𝑄|| = 1 car Q est fonction de 𝑞 qui est un quaternion
unitaire (||𝑞|| = 1).
Ainsi, (3.40) devient :
𝐹𝑏 𝐹
𝛼𝑎 = 𝑄 => ||𝛼𝑎 || = 𝑏 ||𝑄||
𝑚 𝑚
𝐹𝑏
=> ||𝛼𝑎 || = (3.41)
𝑚
=> ||𝐹𝑏 || = 𝑚||𝛼𝑎 ||
=> ||𝐹𝑏 || = 𝑚|| − 𝑒1 + 𝜂𝑑̈ − 𝐴1 (𝑒2 − 𝐴1 𝑒1 ) − 𝐴2 𝑒2 − 𝑔||⃗
𝑎𝑑𝑒𝑠
On a dit plus haut que 𝑎𝑑𝑒𝑠 = 𝛼𝑎 + 𝑔 ⃗
61
3.4.5 Contrôleur de la dynamique de rotation
Nous allons nous baser sur le sous-système (3.19) pour contrôler l’orien-
tation du quadricoptère.
Rappelons le sous-système (3.19)
⎧ 1 0
{𝑞 ̇ = 𝑞 ⨂ [ ]
𝑆2 ∶ ⎨ 2 𝜔⃗ (3.44)
{𝜔̇ = 𝐽 −1 (−𝜔⃗ × 𝐽 𝜔⃗ − 𝐽 𝛾 𝜔⃗ × 𝑘 ⃗ + 𝑈 )
⎩ 𝑄 𝑄 𝐻 𝑖
𝑞𝑒 = 𝑞𝑑̄ ⨂ 𝑞 (3.45)
62
Déterminons la dérivée de l’erreur :
𝛽̇
𝑞𝑒̇ = ( )
𝜖 ⃗̇
𝑞𝛼 𝑞0̇ − 𝑞𝛽⃗ 𝑞𝑣⃗̇
= ( )
𝑞𝛼 𝑞𝑣⃗̇ − 𝑞0̇ 𝑞𝛽⃗ − 𝑞𝛽⃗ × 𝑞𝑣⃗̇
𝑢⃗ × 𝑣 ⃗ = 𝑆(𝑢)⃗ 𝑣 ⃗
Avec
0 −𝑐 𝑏
𝑆(𝑢)⃗ = ⎜ 𝑐 0 −𝑎⎞
⎛ ⎟
⎝−𝑏 𝑎 0 ⎠
63
En remplaçant (3.46) dans l’expression de 𝑞𝑒̇ , on a :
𝑞𝛼 𝑞0̇ + 𝑞𝛽⃗ 𝑞𝑣⃗̇
𝑞𝑒̇ = ( )
𝑞𝛼 𝑞𝑣⃗̇ − 𝑞0̇ 𝑞𝛽⃗ − 𝑞𝛽⃗ × 𝑞𝑣⃗̇
1 −𝑞𝛼 𝑞𝑣⃗ 𝜔⃗ + 𝑞𝛽⃗ (𝑞0 𝜔⃗ + 𝑞𝑣⃗ × 𝜔)⃗
= ( )
2 𝑞𝛼 (𝑞0 𝜔⃗ + 𝑞𝑣⃗ × 𝜔)⃗ + (𝑞𝑣⃗ 𝜔)⃗ 𝑞𝛽⃗ − 𝑞𝛽⃗ × (𝑞0 𝜔⃗ + 𝑞𝑣⃗ × 𝜔)⃗
1 −𝑞𝛼 𝑞𝑣⃗ 𝜔⃗ + 𝑞0 𝑞𝛽⃗ 𝜔⃗ + 𝑞𝛽⃗ (𝑞𝑣⃗ × 𝜔)⃗
= ( )
2 𝑞𝛼 𝑞0 𝜔⃗ + 𝑞𝛼 (𝑞𝑣⃗ × 𝜔)⃗ + 𝑞𝑣⃗ 𝑞𝛽⃗ 𝜔⃗ − 𝑞𝛽⃗ × 𝑞0 𝜔⃗ − 𝑞𝛽⃗ × 𝑞𝑣⃗ × 𝜔)⃗
1 −𝑞𝛼 𝑞𝑣⃗ 𝜔⃗ + 𝑞0 𝑞𝛽⃗ 𝜔⃗ + 𝜔(⃗ 𝑞𝛽⃗ × 𝑞𝑣⃗ )
= ( )
2 (𝑞𝛼 𝑞0 + 𝑞𝑣⃗ 𝑞𝛽⃗ )𝜔⃗ + (𝑞𝛼 𝑞𝑣⃗ − 𝑞0 𝑞𝛽⃗ − 𝑞𝛽⃗ × 𝑞𝑣⃗ ) × 𝜔⃗
1 (−𝑞𝛼 𝑞𝑣⃗ + 𝑞0 𝑞𝛽⃗ + 𝑞𝛽⃗ × 𝑞𝑣⃗ )𝜔⃗
= ( )
2 (𝑞𝛼 𝑞0 + 𝑞𝑣⃗ 𝑞𝛽⃗ )𝜔⃗ + (𝑞𝛼 𝑞𝑣⃗ − 𝑞0 𝑞𝛽⃗ − 𝑞𝛽⃗ × 𝑞𝑣⃗ ) × 𝜔⃗
1 −𝜖𝜔⃗ ⃗
= ( )
2 𝛽 𝜔⃗ + 𝜖 ⃗ × 𝜔⃗
1 −𝜖 ⃗
= ( ) 𝜔⃗
2 𝛽𝐼 + 𝑆(𝜖)⃗
On a donc
𝛽̇
𝑞𝑒̇ = ( )
𝜖 ⃗̇
(3.47)
−𝜖 ⃗
= ( ) 𝜔⃗
𝛽𝐼 + 𝑆(𝜖)⃗
Nous allons maintenant procéder au choix de la fonction candidate de
Lyapunov. Cette fonction doit être nulle au point d’équilibre et positive [Lyapunov].
Ici le point initial correspond au quaternion associé à :
⎧𝜙 = 0
{
⎨𝜃 = 0 (3.48)
{𝜓 = 0
⎩
Ce quaternion est le quaternion 𝑞𝑖 = (1, 0, 0, 0)𝑇
Beaucoup d’auteurs à ce niveau choisissent une fonction dépendant du
𝑠𝑔𝑛(𝛽). C’est le cas par exemple de [20] qui choisit une fonction de la forme
1 − |𝛽|
𝑧𝑒 = ( )
𝜖
Mais cette façon de procéder laisse appaitre une dérivée de fonction de
Lyapunov très lourde et le processus est long.
Dans notre étude, on se propose donc d’utiliser une fonction candidate de
64
Lyapunov 𝑉3 de la forme :
𝑉3 (𝑞𝑒 ) = 𝜖𝑇 𝜖 + (1 − 𝛽)2
Avec 𝑞𝑖 = (1, 0, 0, 0)𝑇 , on note bien 𝑉3 (𝑞𝑖 ) = 0 et 𝑉3 > 0 Cette façon simplifie
donc littéralement la démarche abordée en [20].
Calculons sa dérivée 𝑉3̇
𝑉3̇ = 2𝜖𝑇 𝜖 ̇ − 2(1 − 𝛽)𝛽 ̇
= 𝜖𝑇 (𝛽 𝜔⃗ + 𝜖 ⃗ × 𝜔)⃗ + (1 − 𝛽)(𝜖𝜔)
⃗ ⃗
= 𝜖𝛽⃗ 𝜔⃗ + (1 − 𝛽)(𝜖𝜔)
⃗ ⃗
= 𝜖𝜔⃗ ⃗
Soit 𝜔𝑑 le contrôleur virtuel de vitesse angulaire. On pose 𝜔𝑑 = −𝐴3 𝜖 ⃗ avec
𝐴3 un réel positif.
En remplaçant 𝜔𝑑 dans 𝑉3̇ , on obtient 𝑉3̇ <= 0
Avec cette expression, 𝜔𝑑 nous assure une convergence asymptotique-
ment stable de 𝑞𝑒 vers 0.
𝜔𝑒 = 𝜔 − 𝜔𝑑
Soit donc
𝜔 = 𝜔 𝑒 + 𝜔𝑑
Calculons la dérivée de 𝜔𝑒
𝜔𝑒̇ = 𝜔̇ − 𝜔𝑑̇
= 𝐽𝑄−1 (−𝜔⃗ × 𝐽𝑄 𝜔⃗ − 𝐽𝐻 𝛾 𝜔⃗ × 𝑘𝑖⃗ + 𝑈 ) − 𝜔𝑑̇
65
Or
𝜔𝑑̇ = − 𝐴3 𝜖 ⃗̇
1
= − 𝐴3 (𝛽 𝜔⃗ + 𝜖 ⃗ × 𝜔)⃗
2
1
= − 𝐴3 (𝛽𝐼 + 𝑆(𝜖)) ⃗ 𝜔⃗
2
1
= − 𝐴3 (𝛽𝐼 + 𝑆(𝜖))(𝜔 ⃗ 𝑒 + 𝜔𝑑 )
2
Donc
1
𝜔𝑒̇ = 𝐽𝑄−1 (−𝜔⃗ × 𝐽𝑄 𝜔⃗ − 𝐽𝐻 𝛾 𝜔⃗ × 𝑘𝑖⃗ + 𝑈 ) + 𝐴3 (𝛽𝐼 + 𝑆(𝜖))(𝜔
⃗ 𝑒 + 𝜔𝑑 )
2
Soit 𝑉4 la fonction candidate de Lyapunov associée au système telle que :
1
𝑉4 = 𝜖𝑇 𝜖 + (1 − 𝛽)2 + 𝜔𝑒𝑇 𝜔𝑒
2
Calculons sa dérivée 𝑉4̇
𝑉4̇ = 2𝜖𝑇 𝜖 ̇ − 2(1 − 𝛽)𝛽 ̇ + 𝜔𝑒𝑇 𝜔𝑒̇
= 𝑃 1 + 𝑃2
Avec
𝑃1 = 2𝜖𝑇 𝜖 ̇ − 2(1 − 𝛽)𝛽 ̇
Et
𝑃2 = 𝜔𝑒𝑇 𝜔𝑒̇
Calculons 𝑃1
𝑃1 = 2𝜖𝑇 𝜖 ̇ − 2(1 − 𝛽)𝛽 ̇
= 𝜖𝑇 (𝛽𝐼 + 𝑆(𝜖))(𝜔
⃗ 𝑒 + 𝜔𝑑 ) + (1 − 𝛽)𝜖(𝜔
⃗ 𝑒 + 𝜔𝑑 )
= 𝜖𝑇 𝛽𝐼(𝜔𝑒 + 𝜔𝑑 ) + 𝜖(𝜔
⃗ 𝑒 + 𝜔𝑑 ) − 𝛽 𝜖(𝜔
⃗ 𝑒 + 𝜔𝑑 )
= 𝜖𝑇 (𝜔𝑒 − 𝐴3 𝜖)
= − 𝜖𝑇 𝐴3 𝜖 + 𝜖𝜔⃗ 𝑒⃗
Simplifions 𝑃2
𝑃2 = 𝜔𝑒𝑇 𝜔𝑒̇
1
= 𝜔𝑒𝑇 (𝐽𝑄−1 (−𝜔⃗ × 𝐽𝑄 𝜔⃗ − 𝐽𝐻 𝛾 𝜔⃗ × 𝑘𝑖⃗ + 𝑈 ) + 𝐴3 (𝛽 + 𝑆(𝜖))(𝜔
⃗ 𝑒 + 𝜔𝑑 ))
2
66
Et
𝑓 = 𝜖 ⃗ + 𝐽𝑄−1 (−(𝜔𝑒 + 𝜔𝑑 ) × 𝐽𝑄 (𝜔𝑒 + 𝜔𝑑 ) − 𝐽𝐻 𝛾(𝜔𝑒 + 𝜔𝑑 ) × 𝑘𝑖⃗ ) +
1
𝐴 (𝛽 + 𝑆(𝜖))(𝜔
⃗ 𝑒 + 𝜔𝑑 )
2 3
𝑉4̇ = 𝑃1 + 𝑃2
= − 𝜖𝑇 𝐴3 𝜖 + 𝜔𝑒 (𝐽𝑄−1 𝑈 + 𝑓)
On se propose donc de choisir une loi de commande U de la forme
𝛼𝑈 = 𝐽𝑄 (−𝐴4 𝜔𝑒 − 𝑓)
𝑉4̇ = 𝑃1 + 𝑃2
= − 𝜖𝑇 𝐴3 𝜖 − 𝜔𝑒𝑇 𝐴4 𝜔𝑒
On a 𝑉4̇ <= 0∀𝐴3 > 0𝐴4 > 0, ce qui nous assure une convergence unifor-
mément asymptotiquement stable.
Par conséquent,
𝛼𝑈 = 𝐽𝑄 (−𝐴4 𝜔𝑒 − 𝑓) (3.51)
3.4.6 Synthèse
En résumé, on obtient les lois de commandes suivantes successive-
ment :
⎧𝛼𝑣 = 𝜂𝑑̇ − 𝐴1 𝑒1
{
{𝛼𝑎 = 𝜂𝑑̈ − 𝐴1 (𝑒2 − 𝐴1 𝑒1 ) − 𝐴2 𝑒2 − 𝑔 ⃗
⎨𝜔 = −𝐴 𝜖 ⃗ (3.52)
{ 𝑑 3
{𝛼 = 𝐽 (−𝐴 𝜔 − 𝑓)
⎩ 𝑈 𝑄 4 𝑒
67
On avait d’après (3.4.7),
√
2 2 2 2 2
⎡𝑏𝑙 (−𝑤1̄ + 𝑤2̄ + 𝑤3̄ − 𝑤4̄ )⎤
⎢ √ 2 ⎥
𝑈 =⎢ 2 2 2 2 2 ⎥
⎢ 𝑏𝑙 2 (𝑤1̄ + 𝑤2̄ − 𝑤3̄ − 𝑤4̄ ) ⎥
2 2 2 2
⎣ 𝑑(−𝑤1̄ + 𝑤2̄ − 𝑤3̄ + 𝑤4̄ ) ⎦
Et la portance totale qui est donnée par
4
𝐹𝑏 = ∑(𝑏𝑤̄ 𝑖2 )
𝑖=1
Ce qui nous ramène à obtenir les vitesses 𝑤1̄ 2 , 𝑤2̄ 2 ,𝑤3̄ 2 ,𝑤4̄ 2
1 1 1 1
− √
⎡ 2𝑏𝑙 2 2𝑏𝑙 2√ −
4𝑑 4𝑏 ⎤
𝑤̄ 2 ⎢ 1 1 1 1 ⎥ 𝑈1
⎡ 12⎤ ⎢ √ √ ⎥⎡ ⎤
⎢𝑤2̄ 2 ⎥ = ⎢ 2𝑏𝑙 2 2𝑏𝑙 2 4𝑑 4𝑏 ⎥ ⎢𝑈2 ⎥ (3.54)
⎢𝑤3̄ ⎥ ⎢ 1 1 1 1 ⎥ ⎢𝑈 3 ⎥
√ − √ −
⎣𝑤4̄ ⎦ ⎢ 4𝑑 4𝑏 ⎥ ⎣ 𝐹𝑏 ⎦
2
2𝑏𝑙 2 2𝑏𝑙 2
⎢ 1 1 1 1⎥
− √ − √
⎣ 2𝑏𝑙 2 2𝑏𝑙 2 4𝑑 4𝑏 ⎦
68
partie II
Implémentation du modèle
69
3.5 Premières caractéristiques du drone
Les premières caractéristiques du drone sont essentiellement :
• Sa masse m
• La longueur d’un bras L
Pour cette mission de prise de photo, les drones généralement utilisés sont
des drones de masse comprise entre 0.4 et 3 kilogrammes.
On se propose ici de choisir un drone de masse 2.2𝐾𝑔.
Pour le bras, on se propose un drone pas trop long mais bien visible
aussi pour couvrir une vue aérienne assez claire.
On se propose ici de choisir un drone dont la longueur du bras est de 30cm.
70
Ici,
⎧𝑚𝑏 = 200𝑔
{
{𝑚𝑐 = 200𝑔
⎨𝑙 = 13𝑐𝑚
{
{𝑟𝑐 = 4𝑐𝑚
⎩
On obtient donc
𝐽𝐻 = 1.6476 × 10−4
𝐽𝑋𝑋 0 0
𝐽𝑄 = ⎢ 0 𝐽𝑌 𝑌 0 ⎤
⎡
⎥
⎣ 0 0 𝐽𝑍𝑍 ⎦
Pour obtenir les éléments de la diagonale, nous allons considérer le drone
comme deux tiges perpendiculaires symétriques par rapport au centre.
71
Fig. 3.2 : Mise en évidence du moment d’inertie
72
Ainsi, le moment d’inertie d’un point par rapport à un axe de rotation don-
nerait :
𝐼 = 𝑀 𝑟2 (3.56)
Pour connaitre donc le moment d’inertie total 𝐼Δ (de tous les points de la
tige) par rapport à un axe de rotation, il suffit d’intégrer l’expression du
moment d’inertie d’un point sur toute la longueur de la tige.
Soit
𝐿
𝐼Δ = ∫ 𝑀 𝑟2 𝑑𝑟 (3.57)
0
𝑟 représente la distance d’un point par rapport à l’axe de rotation.
En calculant 𝐼Δ , on trouve donc :
1
𝐼Δ = 𝑀 𝐿 2 (3.58)
3
Calcul de 𝐼𝑥𝑥
En prenant l’axe de rotation x, on peut calculer 𝐼𝑥𝑥 en calculant 𝐼𝑥𝑥 𝑖 pour
la tige de longueur 𝑙 et multiplier par 4.
Soit :
1 𝑚
𝐼𝑥𝑥 = 4 ( ( ) 𝑎2 ) (3.59)
3 4
En se référant à 3.2, la√distance de tout point de la tige à l’axe x est 𝑎.
2
Et d’après (2.6), 𝑎 = 𝑙 .
2
On a donc :
1 𝑚 𝑙2
𝐼𝑥𝑥 = 4 ( ( ) ( )) (3.60)
3 4 2
L’application numérique nous donne :
Calcul de 𝐼𝑦𝑦
En prenant l’axe de rotation y, et en menant un raisonnement analogue
par rapport au précédent, on calcule 𝐼𝑦 𝑦. La distance de tout point de la
tige à l’axe y étant la même chose que celle par rapport à x, on aura :
73
Calcul de 𝐼𝑧𝑧
En prenant cette fois-ci l’axe de rotation z, on peut calculer 𝐼𝑧𝑧 en calcu-
lant 𝐼𝑧𝑧 𝑖 pour la tige de longueur 𝑙 et multiplier par 4.
Soit :
1 𝑚
𝐼𝑧𝑧 = 4 ( ( ) 𝑙2 ) (3.63)
3 4
Ici, la distance de tout point de la tige à l’axe z est 𝑙 (cf. 3.2).
L’application numérique nous donne :
0.0084 0 0
𝐽𝑄 = ⎡
⎢ 0 0.0084 0 ⎤⎥
⎣ 0 0 0.0164⎦
74
101325𝑃𝑎
En se basant sur ces estimations, on calcule :
𝜌 = 1.1536𝑘𝑔/𝑚3
{
𝑏 = 1.1921 × 10−5 𝑁 .𝑠2
De plus, d’après (2.5)
𝑑 = 𝐶𝑑 𝜌𝐴(Ω𝑟)2
Ici aussi :
⎧𝐴 = 5
{
{ 273.15𝑃𝑎
{𝜌 = 𝜌
101325(273.15 + 𝑇𝑡 ) 0
⎨
{𝑟 = 0.13𝑚
{
{𝐶 = 2.1433 × 10−06
⎩ 𝑑
Avec 𝜌0 = 1.293𝑘𝑔 /𝑚3 la densité de l’air à 0°𝐶(273.15𝐾).
𝐶𝑑 le coefficient aérodynamique de portance moyen d’une hélice de mini-
drone utilisé dans [13]
𝑃𝑎 la pression atmosphémique en Pascal : 1𝑎𝑡𝑚 = 101325𝑃𝑎
𝑇𝑡 la température ambiante = 33 °C.
En se basant sur ces estimations, on calcule :
𝜌 = 1.1536𝑘𝑔/𝑚3
{
𝑑 = 2.0893 × 10−7
75
76
77
Fig. 3.6 : Intérieur du bloc du contrôleur sous SIMULINK
Contrôleur linéaire
Le contôleur linéaire est représenté selon la méthode décrite dans le
chapitre précédent pour obtenir (3.41)
Contrôleur d’orientation
Le contrôleur d’orientation est conçu selon la méthode décrite dans le
chapitre précédent pour obtenir 𝛼𝑈 en (3.51).
78
Fig. 3.8 : Contrôleur linéaire sous SIMULINK
3.9.2 Le moteur
Le bloc du moteur se base sur la relation (3.54) pour calculer les vitesses
de rotation de chaque moteur. Chaque vitesse sera envoyée lors de la
conception à un ESC Contrôleur de vitesse pour envoyer le signal (la
tension) nécessaire au moteur correspondant.
79
3.9.3 Le modèle multiphysique du drone
80
81
Conclusion partielle
Dans ce chapitre, nous avons présenté la théorie sur la stabilité de Lya-
punov et la méthode de contrôle : backstepping. Ces théories nous ont
aidé à mettre en place un contrôleur robuste pour notre système multiphy-
sique qu’est le quadricoptère. Nous avons aussi présenté l’implémentation
complète de notre système multiphysique ainsi que son contrôleur.
Dans le chapitre suivant, nous allons procéder à sa simulation afin d’ana-
lyser les résultats.
82
Chapitre 4
Introduction partielle
Dans ce chapitre, nous allons dans un premier temps, mettre en place
une consigne. Ensuite nous allons choisir différentes valeurs des constantes
𝐴1 , 𝐴2 , 𝐴3 , 𝐴4 afin d’obtenir les valeurs qui minimisent le plus l’erreur glo-
bale de commande.
La consigne est une suite d’instructions désirées qu’on envoie au système
afin d’obtenir l’éxécution de la tâche demandée.
La tâche est bien évidemment une position linéaire désirée et une posi-
tion angulaire désirée. Quand on aura obtenu le meilleur ajustement de
𝐴1 , 𝐴2 , 𝐴3 , 𝐴4 , on va pertuber un peu la sortie comme si c’était par exemple
des facteurs externes comme le vent ou autre... afin de voir la réponse ou
la réaction de notre système et le temps au bout duquel notre contrôleur
va corriger cette erreur de consigne.
83
Fig. 4.1 : Champ de coton
84
Fig. 4.3 : Rectangle maillé
85
Algorithm 1 Algorithme de parcours du champs de coton
[hbt !]
Require : 𝐿, 𝑙, 𝑡𝑙 , 𝜖, 𝑡, forward, x, y
𝐿
Δ𝑥 ←
𝑡𝑙
Δ𝑦 ← 2𝜖
𝑝𝑜𝑠 ← [0, 0, 0]
if (𝑡 ≥ 0||𝑡 ≤ 2 then 𝑝𝑜𝑠 ← [0, 0, 2]
else
if forward==1 then
if 𝑥 + Δ𝑥 > L then
if 𝑦 + Δ𝑦 < l then
𝑓𝑜𝑟𝑤𝑎𝑟𝑑 ← 0
𝑝𝑜𝑠 ← [𝐿, 𝑦 + Δ𝑦 , 2]
else
𝑝𝑜𝑠 ← [𝐿, 𝑦, 2]
end if
else
𝑝𝑜𝑠 ← [𝑥 + Δ𝑥 , 𝑦, 2]
end if
else
if 𝑥 − Δ𝑥 < 0 then
if 𝑦 + Δ𝑦 < l then
𝑓𝑜𝑟𝑤𝑎𝑟𝑑 ← 1
𝑝𝑜𝑠 ← [0, 𝑦 + Δ𝑦 , 2]
else
𝑝𝑜𝑠 ← [0, 𝑦, 2]
end if
else
𝑝𝑜𝑠 ← [𝑥 − Δ𝑥 , 𝑦, 2]
end if
end if
end if
𝑥 ← 𝑝𝑜𝑠(1)
𝑦 ← 𝑝𝑜𝑠(2)
86
Fig. 4.4 : Bloc consigne sous Simulink
Les positions envoyées par cette consigne sont sous la forme de (𝑥, 𝑦, 𝑧).
87
ment faisable. Par contre, le deuxième, il n’y a pas de méthode toute faite
pour effectuer la conversion.
On a donc essayé de développer une méthode permettant d’effectuer la
conversion xyz en quaternion (xyz2quat) pour ce cas de figure.
4.2.1 Problématique
Il est question de trouver le quaternion 𝑞 = 𝑎 + 𝑏𝑖 + 𝑐𝑗 + 𝑑𝑘, ((𝑎, 𝑏, 𝑐, 𝑑) ∈
𝑅 ) tel que la rotation d’un certain point de coordonnés (0, 0, 𝑧 ′ )𝑇 donne
4
4.2.2 Le cas où 𝑥 = 0 et 𝑦 ≠ 0
Si 𝑥 = 0 et 𝑦 ≠ 0, cela veut dire qu’il y a rotation autour de l’axe de
vecteur 𝑖 ⃗ et un déplacement suivant l’axe de vecteur 𝑗.⃗
88
(4.1), 𝑥 = 0, 𝑦 ≠ 0 => 𝑐 = 0, 𝑑 = 0
𝑎 0 𝑎 0
⎛
⎜ ⎞
𝑏⎟ ⎛
⎜ 0⎟⎞ ⎛
⎜ ⎞
−𝑏⎟ ⎛
⎜ 𝑥⎞⎟
⎟ ⎜ ⎟
=> ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ = ⎜ ⎟
⎜ ⎜ ⎟ ⎜
⎜0⎟ ⎜ 0 ⎟ ⎜ 0 ⎟ ⎜ 𝑦 ⎟⎟
′
⎝ 0 ⎠ ⎝𝑧 ⎠ ⎝ 0 ⎠ ⎝ 𝑧 ⎠
0 0
⎛
⎜ 0 ⎞
⎟ ⎛
⎜ 𝑥⎞⎟
⎜
=> ⎜ ⎟ = ⎜ ⎟
⎜ −2𝑎𝑏𝑧 ′ ⎟ ⎜𝑦 ⎟⎟ ⎜ ⎟
2 ′ 2 ′
⎝𝑎 𝑧 − 𝑏 𝑧 ⎠ ⎝ 𝑧 ⎠ (4.2)
⎧𝑎2 − 𝑏2 = 𝑧
{ ′
{ 𝑦𝑧
=> ⎨−2𝑎𝑏 =
{ 𝑧′
{𝑎 + 𝑏 = 1
2 2
⎩
⎧𝑏 = + − √( 1 (1 − 𝑧 ))
{ 2 𝑧′
{ 𝑦
=> ⎨𝑎 = −
{ 2𝑏𝑧 ′
{𝑧′ = √(𝑦2 + 𝑥2 )
⎩
On vient ainsi de créer une rotation et un vecteur permettant d’obtenir la
position (0, 𝑦, 𝑧)𝑇
4.2.3 Le cas où 𝑦 = 0 et 𝑥 ≠ 0
Si 𝑦 = 0 et 𝑥 ≠ 0, cela veut dire qu’il y a rotation autour de l’axe de
vecteur 𝑗 ⃗ et un déplacement suivant l’axe de vecteur 𝑖.⃗
89
(4.1), 𝑦 = 0, 𝑥 ≠ 0 => 𝑏 = 0, 𝑑 = 0
𝑎 0 𝑎 0
⎛
⎜ 0⎟⎞ ⎛
⎜ 0⎟⎞ ⎛
⎜ 0⎟⎞ ⎛
⎜ 𝑥⎞⎟
⎟ ⎜ ⎟
=> ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ = ⎜ ⎟
⎜ ⎜ ⎟ ⎜
⎜ 𝑐 ⎟ ⎜ 0 ⎟ ⎜−𝑐⎟ ⎜𝑦 ⎟ ⎟
′
⎝ 0 ⎠ ⎝𝑧 ⎠ ⎝ 0 ⎠ ⎝ 𝑧 ⎠
0 0
⎛
⎜ 2𝑎𝑐𝑧 ⎟′ ⎞ ⎛
⎜ 𝑥⎞⎟
⎜
=> ⎜ ⎟ =⎜ ⎟
⎜
⎜ 0 ⎟ ⎜𝑦 ⎟
⎟ ⎟
2 ′ 2 ′
⎝𝑎 𝑧 − 𝑐 𝑧 ⎠ ⎝ 𝑧 ⎠ (4.3)
⎧𝑎2 − 𝑐2 = 𝑧
{ ′
{ 𝑥 𝑧
=> ⎨2𝑎𝑐 =
{ 𝑧′
{𝑎 + 𝑏 = 1
2 2
⎩
⎧𝑐 = + − √( 1 (1 − 𝑧 ))
{ 2 𝑧′
{ 𝑥
=> ⎨𝑏 =
{ 2𝑐𝑧′
{𝑧 ′ = √(𝑥2 + 𝑧 2 )
⎩
On vient ainsi de créer une rotation et un vecteur permettant d’obtenir la
position (𝑥, 0, 𝑧)𝑇
4.2.4 Le cas où 𝑥 ≠ 0 et 𝑦 ≠ 0
Dans ce cas ici, 𝑎, 𝑏, 𝑐, 𝑑 ne sont pas forcément nuls.
𝑎 0 𝑎 0
⎛
⎜ 𝑏⎟⎞ ⎛
⎜ 0⎟⎞ ⎛
⎜ ⎞
−𝑏 ⎟ ⎛
⎜ 𝑥⎞⎟
⎟ ⎜ ⎟
(4.1), 𝑦 ≠ 0, 𝑥 ≠ 0 => ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ = ⎜ ⎟
⎜ ⎜ ⎟ ⎜
⎜ 𝑐 ⎟ ⎜ 0 ⎟ ⎜ −𝑐 ⎟ ⎜𝑦 ⎟⎟
′
⎝𝑑⎠ ⎝𝑧 ⎠ ⎝−𝑑⎠ ⎝ 𝑧 ⎠
0 0
⎛
⎜ 2𝑎𝑐𝑧 ′ + 2𝑏𝑑𝑧 ′ ⎞
⎟ ⎛
⎜ 𝑥⎞⎟
⎜
=> ⎜ ⎟ =⎜ ⎟
⎜
⎜ ′
−2𝑎𝑏𝑧 + 2𝑐𝑑𝑧 ′
⎟ ⎜𝑦 ⎟
⎟ ⎟ (4.4)
2 ′ 2 ′ 2 ′ 2 ′
⎝𝑎 𝑧 − 𝑏 𝑧 − 𝑐 𝑧 + 𝑑 𝑧 ⎠ ⎝ 𝑧 ⎠
⎧𝑎𝑐 + 𝑏𝑑 = 𝑥
{ 2𝑧 ′𝑦
{
{−𝑎𝑏 + 𝑐𝑑 =
=> ⎨ 2𝑧′ 𝑧
2 2 2 2
{𝑎 − 𝑏 − 𝑐 + 𝑑 = ′
{ 𝑧
{𝑎2 + 𝑏2 + 𝑐2 + 𝑑2 = 1
⎩
90
𝑥 𝑦 𝑧
Posons 𝛼 = , 𝛽 = , 𝛾 =
2𝑧 ′ 2𝑧 ′ 𝑧′
⎧𝑎𝑐 + 𝑏𝑑 = 𝑥 ⎧𝑎𝑐 + 𝑏𝑑 = 𝛼
{ 2𝑧 ′𝑦
{ {
{−𝑎𝑏 + 𝑐𝑑 = {−𝑎𝑏 + 𝑐𝑑 = 𝛽
2𝑧′ 𝑧 => ⎨ 2
⎨ 2 2 2 2
{𝑎 − 𝑏 − 𝑐 + 𝑑 = 𝛾
2 2 2
{𝑎 − 𝑏 − 𝑐 + 𝑑 = ′
{ 𝑧 {𝑎2 + 𝑏2 + 𝑐2 + 𝑑2 = 1
{𝑎2 + 𝑏2 + 𝑐2 + 𝑑2 = 1 ⎩
⎩
⎧𝑎2 𝑐2 + 2𝑎𝑏𝑐𝑑 + 𝑏2 𝑑2 = 𝛼2 (1)
{
{𝑎2 𝑏2 − 2𝑎𝑏𝑐𝑑 + 𝑐2 𝑑2 = 𝛽 2 (2)
=> ⎨ 2 2 2 2
{𝑎 − 𝑏 − 𝑐 + 𝑑 = 𝛾(3)
{𝑎2 + 𝑏2 + 𝑐2 + 𝑑2 = 1(4)
⎩
𝑎2 𝑐2 + 𝑎2 𝑏2 + 𝑐2 𝑑2 + 𝑏2 𝑑2 = 𝛼2 + 𝛽 2 (1) + (2)
=> { 2
2(𝑎 + 𝑑2 ) = 1 + 𝛾(3) + (4)
𝑎2 (𝑐2 + 𝑏2 ) + 𝑑2 (𝑐2 + 𝑏2 ) = 𝛼2 + 𝛽 2
=> { 2
2(𝑎 + 𝑑2 ) = 1 + 𝛾
(𝑎2 + 𝑑2 )(𝑐2 + 𝑏2 ) = 𝛼2 + 𝛽 2
=> {
2(𝑎2 + 𝑑2 ) = 1 + 𝛾
(4.5)
On retient maintenant,
⎧ 2 2 2(𝛼2 + 𝛽 2 )
{𝑏 + 𝑐 =
1+𝛾 (4.6)
⎨ 2 1
{𝑎 + 𝑑2 = (1 + 𝛾)
⎩ 2
On peut retrouver une valeur précise de 𝑑 en faisant le produit des quater-
1 𝑧
nions d’orientation obtenus à partir de (0, 𝑦, 𝑧) et (𝑥, 0, 𝑧). 𝑑 = (1 − ′ ).
2 𝑧
d étant connu,
1
𝑎 = + − 𝑠𝑞𝑟𝑡(−𝑑2 + (1 + 𝛾))
2
⎧𝑏 = 𝛼𝑑 − 𝛽𝑎
𝑎𝑐 + 𝑏𝑑 = 𝛼 {
{ => ⎨ 𝑎2 + 𝑑2 (4.7)
−𝑎𝑏 + 𝑐𝑑 = 𝛽 𝛼 − 𝑏𝑑
{𝑐 =
⎩ 𝑎
On obtient donc un quaternion 𝑞(𝑎, 𝑏, 𝑐, 𝑑) et une position 𝑧 ′ dont la rota-
tion donnera le point (𝑥, 𝑦, 𝑧)𝑇 avec 𝑥 ≠ 0, 𝑦 ≠ 0.
91
4.3 Simulation de la trajectoire consigne sous Simulink
Nous allons nous baser sur l’algorithme de consigne décrit plus haut
avec notre méthode xyz2quat pour tracer notre trajectoire désirée. Nous
allons essayer une simulation 60 secondes et une simulation de 120 se-
condes sur un domaine rectangulaire de longueur L = 10m et de largeur l
= 10m.
Modèle simulink
Le bloc consigne envoie chaque position (𝑥, 𝑦, 𝑧)𝑇 au bloc xyz2quat qui
convertit en quaternion et rotation et on affiche la sortie dans le workspace
sous le nom de variable 𝑋1.
Résulat de la simulation
Voici le résultat de la simulation de la trajectoire consigne :
92
Fig. 4.6 : Simulation de 60s de la trajectoire consigne
Maintenant que nous avons notre trajectoire désirée, nous allons cher-
cher les coefficients 𝐴1 , 𝐴2 , 𝐴3 , 𝐴4 qui optimisent le mieux la réaction du
système de contrôle et du quadricoptère face à une consigne. Pour cela,
nous allons nous baser sur une petite trajectoire arbitraire de 40secondes
93
et observer :
• L’altitude désirée
• L’atltitude obtenue
• Le roulis désiré
• Le roulis obtenu
• Le tangage désiré
• Le tangage obtenu
94
• angle_d :1 (Le rouge) correspond au roulis (rotation par rapport à x)
• angle_d :2 (Le vert) correspond au tangage (rotation par rapport à y)
Pour toutes les représentations ci-dessous, l’abscisse est en unité de temps(s)
et les l’ordonnée est en :
• mètre (m) pour les altitudes
• radian (rad) pour les attitudes (rotations)
95
96
𝐴1 <0 || 𝐴2 <0
Ceci va bien evidemment affecter l’altitude. Voici le résultat de cette si-
mulation :
• En cyan l’altitude désirée
• En rouge l’altitude obtenue
97
Fig. 4.10 : Simulation A1<0 || A2<0 de l’altitude test non ajusté à l’échelle
𝐴1 =5 , 𝐴2 =5
Résultat de la simulation pour 𝐴1 =5 et 𝐴2 =5
98
Ici, on constate une correction des imperfections sur les zones de constances
de la simulation précédente.
Une évaluation de la RMSE à ce niveau nous donne une erreur de
𝑒𝑟𝑟 = 1, 0180
𝐴1 =15 , 𝐴2 =15
Résultat de la simulation pour 𝐴1 =15 et 𝐴2 =15
Ici, on constate que une correction des imperfections sur les zones de
points anguleux de la simulation précédente.
Une évaluation de la RMSE à ce niveau nous donne une erreur de
𝑒𝑟𝑟 = 0, 7062
𝐴1 =20 , 𝐴2 =20
Résultat de la simulation pour 𝐴1 =20 et 𝐴2 =20
99
Fig. 4.13 : Simulation A1=20 et A2=20 de l’altitude test
𝑒𝑟𝑟 = 0, 7718
100
Fig. 4.15 : Simulation A1=100 et A2=100 de l’altitude test à l’oscilloscope
𝐴3 <0 || 𝐴4 <0
Ceci va bien evidemment affecter l’attitude. Voici le résultat de cette si-
mulation :
• En rouge le roulis désiré
• En vert le tangage désiré
101
Fig. 4.16 : Simulation A3<0 || A4<0 de l’attitude test
Fig. 4.17 : Simulation A3<0 || A4<0 de l’attitude test en vue plus claire
102
les fonctions de Lyapunov utilisées et leurs dérivées.
𝐴3 =1 , 𝐴4 =1
Résultat de la simulation pour 𝐴3 =1 et 𝐴4 =1
𝐴3 =15 , 𝐴4 =15
Résultat de la simulation pour 𝐴3 =15 et 𝐴4 =15
103
𝑒𝑟𝑟1 = 0, 0586 pour le roulis
𝑒𝑟𝑟2 = 0, 0593 pour le tangage
On peut expliquer ces imperfections au niveau des points anguleux par
une réponse initiale tardive ; ce qui provoque un léger décalage sur les
suivants.
Sur l’oscilloscope, voici ce qu’on obtient (en l’absence de décalage, car
l’oscilloscope affiche en temps réel).
𝐴3 =30 , 𝐴4 =30
Résultat de la simulation pour 𝐴3 =30 et 𝐴4 =30
104
pour le tangage,
105
4.4.4 Le cas particulier 𝐴1 =0, 𝐴2 =0, 𝐴3 =0, 𝐴4 =0
Fig. 4.24 : Simulation de la consigne test pour le cas 𝐴1 =0, 𝐴2 =0, 𝐴3 =0, 𝐴4 =0
106
Tab. 4.1 : Table des erreurs pour l’optimisation des constantes 𝐴1 , 𝐴2 , 𝐴3 et 𝐴4 du contrôleur
Table des erreurs
𝐴1 𝐴2 RMSE 𝑧 𝐴3 𝐴4 RMSE 𝜙 RMSE 𝜃
<0 <0 inf <0 <0 inf inf
0 0 1, 974 0 0 0, 1179 0, 1875
5 5 1, 018 1 1 0, 0971 0, 1017
15 15 0, 7062 15 15 0, 0586 0, 0593
20 20 0, 7718 30 30 0, 0414 0, 043
30 30 0, 65 50 50 0, 0343 0, 0341
50 50 0, 5127 100 100 0, 028 0, 0251
75 75 0,4611 75 75 0,0313 0,0332
100 100 0, 3678 200 200 0, 0174 0, 0195
200 200 0, 2822
Fig. 4.25 : Bloc delay d’une seconde qui ajoute une pertubation d’altitude -5m
107
Fig. 4.27 : Evolution de l’altitude pertubée en présence du contrôleur
108
4.5.1 Evaluation de l’altitude
Fig. 4.29 : Evolution de l’altitude désirée et l’altitude obtenue sur la trajectoire consigne
Fig. 4.30 : Evolution de l’angle de roulis désiré et l’angle de roulis obtenu sur la trajectoire consigne
Fig. 4.31 : Evolution de l’angle de tangage désiré et l’angle de tangage obtenu sur la trajectoire consigne
109
4.5.4 Evaluation du lacet
Fig. 4.32 : Evolution de l’angle de lacet désiré et l’angle de lacet obtenu sur la trajectoire consigne
4.5.5 Aperçu en 3D
Voici donc le mouvement du drone dans le champ de coton de 10m x
10m pour prendre des photos à chaque pas.
110
Fig. 4.34 : Vue de dessus du mouvement du drone
111
Fig. 4.35 : Aperçu de la vitesse de rotation des moteurs
4.7 Discussion
La mission principale de notre travail est de mettre en place un drone
quadricoptère pour la prise d’images dans un champ de coton. Nous avons
réussi à mettre en place une trajectoire et avons mis en place un contrôleur
de vol pour commander notre système.
Nous nous sommes appuyés sur la représentation d’état à base des qua-
ternions qui nous permet de mouvoir dans toutes les directions. Ceci a
bien évidemment aidé le drone dans sa prise autonome de décision. Grâce
à notre méthode xyz2quat, nous avons trouvé une façon d’envoyer avec
précision les différentes rotations nécessaires au drone pour atteindre n’im-
porte quel point de l’espace.
Les résultats de la simulation de notre trajectoire ont été concluants. Le
drone effectue avec succès la mission avec juste quelques imperfections
de l’ordre du centimètre qui n’affectent pas le résultat.
112
Cependant, le travail présente quelques limites. D’abord nous n’avons pas
pris en compte toutes les forces pouvant entrainer des pertubations sur le
système et ceci, même si notre contrôleur est assez robuste pour corriger
n’importe quelle erreur de commande en un temps record. Une perspective
est donc de prendre en compte certaines forces comme les pertubations
entrainées par le vecteur vitesse sur les axes X, Y et Z. Cela limiterait au
contrôleur de faire un plus grand travail.
De plus, nous n’avons pas pris en compte la vitesse maximale de rotation
du moteur dans notre modélisation. Cela fait qu’on ne sait pas vraiment si
le drone sera en mesure d’atteindre les performances demandées par le
contrôleur. Déjà dans la simulation, on peut voir que la vitesse maximale de
rotation va jusqu’à 3660tour/s. Il serait bien de poser un oeil dessus. Ceci
aura l’avantage de nous aider à mesurer l’autonomie de notre système.
Néanmoins, la méthode utilisée pour l’élaboration de notre contrôleur
backstepping et celle utilisée pour la mise en place de la trajectoire consigne
peuvent être étendues à d’autres systèmes dynamiques.
Conclusion partielle
Dans ce chapitre, l’algorithme de navigation que nous avons mis en
place, associé aux paramètres optimisés du contrôleur nous ont permis de
parcourir avec succès le champ de coton initial et de prendre les photos.
113
Conclusion générale
Le challenge dans ce travail fut pour nous la mise en place d’un contrô-
leur robuste de vol capable de faire éxécuter avec succès au drone, une
trajectoire-consigne qui lui sera demandée en l’occurrence le parcours au-
tonome d’un champ de coton de 50ha.
Pour relever ce défi, nous nous sommes autorisés à choisir une modé-
lisation sur la base des quaternions parmi d’autres méthodes existantes
comme les angles d’Euler par exemple. Ce modèle existe déjà et a l’avan-
tage de pouvoir mouvoir facilement dans toutes les directions.
Ensuite, nous avons choisi de mettre en place un contrôleur de type Backs-
tepping au moyen des fonctions de Lyapunov pour notre système qui est
fortement non-linéaire. A ce niveau, pour rendre le système capable d’être
piloté comme dans une situation réelle, nous avons commandé l’altitude
et l’attitude séparément. Ensuite, nous avons implémenté tout le modèle
sous SIMULINK de MATLAB.
Pour que le drone puisse évoluer de façon autonome, il fallait que la tra-
jectoire soit définie selon des coordonnées cartésiennes. Nous avons donc
développé une méthode xyz2quat pour convertir la position du drone en
une rotation par rapport à un axe grâce aux quaternions.
Nous avons aussi mis en place une trajectoire test pour optimiser les pa-
ramètres de notre contrôleur afin d’atteindre la convergence uniformément
asymptotiquement stable(UAS) du système. Les résultats de ce test nous
ont permis d’effectuer avec succès la trajectoire consigne prévue pour le
drone.
114
Au vue de ce qui précède, nous pouvons reconnaitre que la maitrise de
cette technologie est un grand atout pour nous. Cela ouvre beaucoup de
portes de champs d’applications par exemple :
• La sécurité des frontières
• La cartographie autonome des domaines
• Le transport (la livraison à domicile)
• L’épandage intelligent
• etc.
Aussi, associer cette technologie à de l’intelligence artificielle pourrait ré-
soudre et prévenir de nombreux problèmes dans presque tous les do-
maines d’activités.
115
Bibliographie
[1] Banque mondiale visitée le 18/05/22. „Agriculture et alimentation”. In : (2022). url : https : / / www .
banquemondiale.org/fr/topic/agriculture/overview#1.
[2] Octobre 2016 World Bank Group. „Who Are the Poor in the Developing World ?” In : (). url : https:
//documents1.worldbank.org/curated/en/187011475416542282/pdf/WPS7844.pdf.
[3] visitée en Janvier 2023 Les données de la banque mondiale. „Agriculture, valeur ajoutée (% du PIB) -
Benin”. In : url : https://donnees.banquemondiale.org/indicateur/nv.agr.totl.zs?locations=
BJ.
[4] Ministère français de l’agriculture. In : (). url : https://agriculture.gouv.fr/benin#:~:text=Le%
20secteur%20agricole%20repr%C3%A9sente%2032,l'%C3%A9conomie%20agricole%20du%20B%C3%
A9nin.
[5] Zouaoui SATLA. „Contribution à la modélisation et à la commande d’un drone miniature”. In : (). url :
http://hdl.handle.net/123456789/2520.
[6] Benchouia Nedjem eddine. „Synthèse d’une loi de commande pour la stabilisation des systèmes non
linéaires : résultats et discussions”. In : International Journal of Scientific Research Engineering Tech-
nology (IJSET) Vol.3 (jan. 2015).
[7] Abid Sulficar et al. „MODELING, SIMULATION AND COMPLETE CONTROL OF A QUADCOPTER”.
In : 2017.
[8] Mounia (Encadreur) Mohdeb Leila ; Ouaar. „Etude d’une loi de commande robuste pour le pilotage d’un
drone quadri-rotor.” In : (). url : http://dspace.univ-jijel.dz:8080/xmlui/handle/123456789/
5647.
[9] Andrea Alaimo et al. „Comparison between Euler and Quaternion Parametrization in UAV Dynamics”.
In : AIP Conference Proceedings 1558 (oct. 2013), p. 1228-1231. doi : 10.1063/1.4825732.
[10] KPADEVI François Vital Nasser ; AGBOKPANZO Richard ; Gilles FIFATIN ; Francois-Xavier ; SANYA
Fréjus AZA-GNANDJI Maurel. „Développement et implémentation d’un contrôleur linéaire quadratique
pour le contrôle d’un drone quadrirotor”. In : (). url : https : / / biblionumeric . epac - uac . org :
9443/jspui/handle/123456789/2860.
[11] Jossué Cariño Escobar, Hernán Abaunza González et Pedro Castillo Garcia. „Quadrotor Quaternion Control”.
In : juin 2015. doi : 10.1109/ICUAS.2015.7152367.
[12] L. Praly, B. d’Andrea-Novel et J.-M. Coron. „Lyapunov design of stabilizing controllers”. In : Proceedings
of the 28th IEEE Conference on Decision and Control, 1989, 1047-1052 vol.2. doi : 10.1109/CDC.
1989.70285.
[13] Guillaume Charland-Arcand. „Contrôle non linéaire par backstepping d’un hélicoptère de type quadrotor
pour des applications autonomes”. In : 2014.
[14] visitée en Mai 2022 Documentaire Cést pas forcier. „Les hélicoptères”. In : url : https://www.youtube.
com/watch?v=ULeMFoy-aq4.
[15] Ronald Goldman. „Understanding quaternions”. In : Graphical Models 73 (mars 2011), p. 21-49. doi :
10.1016/j.gmod.2010.10.004.
[16] Florian Monteghetti. Quaternions, orientation et mouvement. Research Report. ISAE-SUPAERO, fév.
2012. url : https://hal.archives-ouvertes.fr/hal-01618257.
[17] David Eberly. „Quaternion Algebra and Calculus”. In : (jan. 2002).
[18] Samir Bouabdallah. „Design and Control of quadrotors with application to autonomous flying”. In : (jan.
2007). doi : 10.5075/epfl-thesis-3727.
116
[19] Nic Fischer, Rushikesh Kamalapurkar et Warren Dixon. „LaSalle-Yoshizawa Corollaries for Nonsmooth
Systems”. In : Automatic Control, IEEE Transactions on 58 (sept. 2013), p. 2333-2338. doi : 10.1109/
TAC.2013.2246900.
[20] An Honglei et al. „Backstepping-Based Inverse Optimal Attitude Control of Quadrotor”. In : International
Journal of Advanced Robotic Systems 10.5 (2013), p. 223. doi : 10 . 5772 / 56337. eprint : https :
//doi.org/10.5772/56337. url : https://doi.org/10.5772/56337.
117
Annexe
118
Fig. 37 : Drone à voilure tournante : 4 hélices
• Les drones à ailes battantes : Ce sont des drones aux allures d’oi-
seau et qui peuvent aussi effectuer des vols stationnaires. Leur taille
leur permet d’effectuer souvent des missions de reconnaissance ou de
surveillance sans être repérés.
.2.1 MATLAB
MATLAB est un langage de script émulé par un environnement de dé-
veloppement du même nom ; il est utilisé à des fins de calcul numérique.
Développé par la société The MathWorks, MATLAB permet de manipuler
des matrices, d’afficher des courbes et des données, de mettre en œuvre
des algorithmes, de créer des interfaces utilisateurs, et peut s’interfacer
avec d’autres langages comme le C, C++, Java, et Fortran.
119
Il est utilisé par des millions d’ingénieurs et de scientifiques pour analyser
des données, développer des algorithmes et créer des modèles.
Il combine un environnement de bureau adapté aux processus d’analyse
et de conception itératifs avec un langage de programmation qui exprime
directement les mathématiques matricielles et matricielles. Il inclut l’éditeur
en direct pour créer des scripts qui combinent du code, de la sortie et du
texte formaté dans un bloc-notes exécutable.
.2.2 Simulink
Simulink est une plate-forme de simulation multi-domaine et de modé-
lisation de systèmes dynamiques. Il fournit un environnement graphique
et un ensemble de bibliothèques contenant des blocs de modélisation qui
permettent le design précis, la simulation, l’implémentation et le contrôle de
120
systèmes de communications et de traitement du signal. Simulink est inté-
gré à MATLAB, fournissant ainsi un accès immédiat aux nombreux outils
de développement algorithmique, de visualisation et d’analyse de données
de MATLAB.
Il permet globalement de concevoir et simuler un système avant de passer
sur le hardware.
.2.3 SolidWorks
SolidWorks est une application de Conception Assistée par Ordinateur
(CAO) et d’Ingénierie Assistée par Ordinateur (IAO) de modélisation solide
éditée par Dassault Systèmes.
Nous avons utilisé ce logiciel pour proposer un design du drone quadrico-
ptère qui sera fabriqué :
121