Vous êtes sur la page 1sur 120

République du Bénin

Ministère de l’Enseignement
Supérieur et de la Recherche
Scientifique

Université Nationale des Sciences, Technologies, Ingénierie et


Mathématiques (UNSTIM) d’Abomey

Ecole Nationale Supérieure de Génie Mathématique


et Modélisation
Mémoire
pour l’obtention du diplôme d’Ingénieur de conception

Spécialité : Mathématiques Appliquées et Modélisation

Option : Modélisation et Simulation Numérique (MSN)

CONCEPTION D’UN DRONE QUADRICOPTÈRE POUR LA


COLLECTE DE DONNÉES IMAGES DANS UNE ZONE
RURALE : CAS D’UN CHAMP DE COTON

Présenté par : Sous la supervision de :


Marcos Thyrbus VITOULEY Dr (MC) Stéphane J. M. HOUNDJO
Enseignant-Chercheur à la FAST-Natitingou/UNSTIM

Sous l’encadrement de :
Dr (MA) Aliou MOUSSA DJIBRIL
Enseignant-Chercheur à l’ENSGMM/UNSTIM

Soutenu à Abomey, le 15/12/2022

Composition du jury

Président : Prof. DEGLA Guy, Enseignant-Chercheur


Membres : 1- Dr(MC) LOKO Laura, Enseignante-Chercheuse
2- Dr(MA) MOUSSA DJIBRIL Aliou, Enseignant-Chercheur

Année académique 2021 - 2022


Approbation

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.

Abomey, le 15 Décembre 2022.

Signatures
Superviseur :
Maître de mémoire :

Dr (MC) Stéphane J. M. HOUNDJO


Dr (MA) Aliou MOUSSA DJIBRIL Enseignant-Chercheur à l’UNSTIM
Enseignant-Chercheur à d’Abomey
l’ENSGMM/UNSTIM Maître de Conférences des
Universités du CAMES
Dédicace

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 l’ex-Recteur feu Gérard DEGAN qui a toujours eu à voir de la lumière


dans la filière Génie Mathématique et qui, sans forcément le savoir, a
accentué ma passion pour la modélisation multiphysique ;

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 les membres ma famille, source d’espoir et de motivation ;

A tous mes amis et à tous ceux qui m’ont porté leur amour ;

Et à vous, chers lecteurs.


Remerciements
J’exprime ma profonde gratitude à Dieu, l’intelligence infinie, créateur du
ciel et de la terre pour toute sa protection, sa lumière et sa guidance
incessante dans ma vie.

Mes remerciements vont à l’endroit de :

• Prof Joachim GBENOU, Recteur de l’Université Nationale des Sciences


Technologies Ingénierie et Mathématiques (UNSTIM) et toute son équipe
pour la dynamique de développement instaurée à l’UNSTIM et les ef-
forts de tous les jours ;
• Dr (MC) Stéphane HOUNDJO pour son accompagnement dans la su-
pervision des travaux réalisés au sein de ce document ;

• Dr Aliou MOUSSA DJIBRIL, coordonnateur des programmes de l’Ecole


Nationale Supérieure de Génie Mathématique et Modélisation (ENSGMM)
qui est en même temps mon maître mémoire, pour ses approches dans
la réalisation de ce document ;

• Dr Jamal ADETOLA, mon tuteur de stage pour son aide et son grand
apport dans la réalisation de ce document ;

• M. Robert AGBOVOEDO, Directeur Général de l’entreprise Green


Tech Innovation (GTI) pour tout son soutien et sa confiance avant et
pendant ma période de stage ;

• Dr Jean-Louis FANOU, ex-Directeur de l’Ecole Nationale Supéieure


de Génie Energétique et Procédés (ENSGEP) pour son aide dans la
compréhension du logiciel SIMULINK de MATLAB ;

• Dr Christian AKOWANOU, Directeur de l’Institut National Supérieur


des classes Préparatoires aux Etudes d’Ingénieur (INSPEI) ;
• Mon aîné Olivier ADJAGBA pour toute son assistance pendant mon
stage à GTI dans le cadre de ce travail ;

• Dr Géraud AZEHOUN-PAZOU, pour tous ses conseils pendant ces


cinq années de formation ;
• Mon ami Marius ESSESSINOU pour sa présence et son soutien indé-
fectible dans tout ce que j’entreprends (Merci) ;

• Tous mes enseignants de l’Institut National Supérieur des classes Pré-


paratoires aux Etudes d’Ingénieur (INSPEI) et de l’Ecole Nationale Su-
périeure de Génie Mathématique et Modélisation (ENSGMM) ;

• Tous mes enseignants du CEG 1 Glazoué et de l’EPP la Qualité no-


tamment M. Aubin VITOULEY, M. Florentin DOSSOU, M. Razack
OROU, le couple TOHA, M. Bernadin AGBOGNIHOUE, M. Méchak
EZIN, feu Didier AVADEME, M. Mathias GOUKOTAN, M. Christian
ADJAITO, M. Dana MINDIGA ;

• Mes camarades et amis de la 2e promotion de l’INSPEI pour l’am-


biance conviviale durant ces 5 années de formation.
• Mes parents, mon frère et mes soeurs pour l’amour, le réconfort, l’union
et la paix depuis toutes ces années. Vous êtes les meilleurs.

En enfin, mes remerciements vont à l’endroit de tout ceux qui m’ont


soutenu de près ou de loin dans la réussite de ce travail.

Mes sincères salutations.


Table des matières

Introduction générale 16

1 Revue de littérature 19
1.1 Travaux effectués . . . . . . . . . . . . . . . . . . . . . . . 19
1.2 Notre approche . . . . . . . . . . . . . . . . . . . . . . . . . 22

2 Modélisation mathématique du quadricoptère 24


2.1 Le Quadricoptère . . . . . . . . . . . . . . . . . . . . . . . . 24
2.1.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . 24
2.1.2 Fonctionnement et mouvements d’un quadricoptère 25
2.2 Les Quaternions . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2.2 Opérations sur les quaternions . . . . . . . . . . . . 30
2.2.3 Quaternions et rotation . . . . . . . . . . . . . . . . 31
2.2.4 Cinématique du quaternion . . . . . . . . . . . . . . 32
2.2.5 Quaternions et changement de bases . . . . . . . . 33
2.3 Modélisation de la dynamique . . . . . . . . . . . . . . . . . 35
2.3.1 Définition des repères . . . . . . . . . . . . . . . . . 35
2.3.2 Définition du vecteur position, de force et de moment 35
2.3.3 Définition de la vitesse angulaire . . . . . . . . . . . 36
2.3.4 Analyse des forces appliquées au quadrirotor . . . . 37
2.3.5 Analyse des moments de forces appliqués au qua-
drirotor . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.3.6 Forces et moments non modélisés . . . . . . . . . . 43
2.3.7 Développement de la dynamique de translation . . . 43
2.3.8 Développement de la dynamique de rotation . . . . 44
2.3.9 Modèle mathématique final . . . . . . . . . . . . . . 45

3 Synthèse du contrôleur de vol et implémentation du modèle 47

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

4 Simulation, Résultats et Discussion 83


4.1 Mise en place de la consigne de simulation . . . . . . . . . 83
4.2 La méthode xyz2quat . . . . . . . . . . . . . . . . . . . . . 87
4.2.1 Problématique . . . . . . . . . . . . . . . . . . . . . 88
4.2.2 Le cas où 𝑥 = 0 et 𝑦 ≠ 0 . . . . . . . . . . . . . . . . 88
4.2.3 Le cas où 𝑦 = 0 et 𝑥 ≠ 0 . . . . . . . . . . . . . . . . 89
4.2.4 Le cas où 𝑥 ≠ 0 et 𝑦 ≠ 0 . . . . . . . . . . . . . . . . 90
4.3 Simulation de la trajectoire consigne sous Simulink . . . . . 92
4.4 Optimisation des coefficients 𝐴1 , 𝐴2 , 𝐴3 , 𝐴4 . . . . . . . . . 94
4.4.1 Description de la trajectoire test . . . . . . . . . . . 94
4.4.2 Simulation pour différentes valeurs des coefficients
𝐴1 , 𝐴 2 . . . . . . . . . . . . . . . . . . . . . . . . . . 97
4.4.3 Simulation pour différentes valeurs des coefficients
𝐴3 , 𝐴 4 . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.4.4 Le cas particulier 𝐴1 =0, 𝐴2 =0, 𝐴3 =0, 𝐴4 =0 . . . . . . 106
4.4.5 Table des erreurs . . . . . . . . . . . . . . . . . . . . 106
4.4.6 Pertubation de l’altitude 𝑧 . . . . . . . . . . . . . . . 107
4.5 Simulation de la trajectoire consigne . . . . . . . . . . . . . 108
4.5.1 Evaluation de l’altitude . . . . . . . . . . . . . . . . . 109
4.5.2 Evaluation du roulis . . . . . . . . . . . . . . . . . . 109
4.5.3 Evaluation du tangage . . . . . . . . . . . . . . . . . 109
4.5.4 Evaluation du lacet . . . . . . . . . . . . . . . . . . . 110
4.5.5 Aperçu en 3D . . . . . . . . . . . . . . . . . . . . . . 110
4.6 Vitesse de rotation des moteurs . . . . . . . . . . . . . . . . 111
4.7 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

Conclusion générale 114

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

2.1 Sens de rotation des rotors d’un quadricoptère en 2D . . . 25


2.2 Illustration du mouvement vertical d’un quadricoptère . . . 27
2.3 Illustration du mouvement de roulis d’un quadricoptère . . . 27
2.4 Illustration du mouvement de tangage d’un quadricoptère . 28
2.5 Illustration du mouvement de lacet d’un quadricoptère . . . 29
2.6 William Rowan Hamilton (1805-1865) . . . . . . . . . . . . 30
2.7 Plaque commémorative de la naissance des quaternions sur
le pont de Broom (Dublin). . . . . . . . . . . . . . . . . . . . 31
2.8 Rotation et quaternion unitaire dans l’espace . . . . . . . . 32
2.9 Mise en évidence du vecteur position . . . . . . . . . . . . 36
2.10 Orientation Roulis, Tangage, Lacet Quadricoptère . . . . . 37
2.11 Illustration du moment par rapport à X . . . . . . . . . . . . 39
2.12 Illustration du moment par rapport à Y . . . . . . . . . . . . 40
2.13 Illustration du moment par rapport à Z . . . . . . . . . . . . 41

3.1 Radio commande d’un drone . . . . . . . . . . . . . . . . . 55


3.2 Mise en évidence du moment d’inertie . . . . . . . . . . . . 72
3.3 Inertie tige de longueur L . . . . . . . . . . . . . . . . . . . 72
3.4 Schéma de simulation . . . . . . . . . . . . . . . . . . . . . 76
3.5 Bloc du contrôleur sous SIMULINK . . . . . . . . . . . . . . 77
3.6 Intérieur du bloc du contrôleur sous SIMULINK . . . . . . . 78
3.7 Contrôleur linéaire sous SIMULINK . . . . . . . . . . . . . . 78
3.8 Contrôleur linéaire sous SIMULINK . . . . . . . . . . . . . . 79
3.9 Bloc moteur . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.10 Bloc dynamique du quadricoptère . . . . . . . . . . . . . . 80
3.11 Schéma de simulation sous Simulink . . . . . . . . . . . . . 81

4.1 Champ de coton . . . . . . . . . . . . . . . . . . . . . . . . 84


4.2 Alignement dans un champ de coton . . . . . . . . . . . . . 84

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

4.1 Table des erreurs pour l’optimisation des constantes 𝐴1 , 𝐴2 ,


𝐴3 et 𝐴4 du contrôleur . . . . . . . . . . . . . . . . . . . . . 107

13
Résumé

Le développement des drones connaît de plus en plus une ascension


fulgurante. Aujourd’hui on parle des taxis-drones, des drones de livraison,
etc. Les drones peuvent être utiles dans plusieurs secteurs d’activités dont
le domaine agricole. Au Bénin, le domaine agricole représente un secteur
prépondérant de l’économie. En 2021, il représentait 29.4% du PIB. Utiliser
les moyens modernes tels que les drones pourrait donc aider à améliorer
les rendements et la productivité. C’est dans ce cadre que le projet COTON
NUTRIENT de l’entreprise GREEN TECH INNOVATION vise à quantifier
les niveaux de nutriments déficitaires dans un champ de coton sur la base
des feuilles et d’essais substratifs afin d’apporter les engrais nécessaires.
Pour y arriver, des données images de feuilles de coton sont nécessaires.
L’objectif principal de ce travail est donc de concevoir un drone quadrico-
ptère capable d’effectuer le parcours d’un champ de coton tout seul afin
de capturer des données images de feuilles de coton. Il a donc été ques-
tion de faire usage de la commande des systèmes pour simuler tout le
comportement du drone afin de mettre en place son ”cerveau” qui pourrait
éventuellement être flashé sur un micro-contrôleur. Pour y arriver, nous
avons choisi de faire une modélisation multiphysique du drone sur la base
des nombres hypercomplexes appelés «quaternion» à partir des compor-
tements cinématique et dynamique du quadricoptère. Ensuite, nous avons
utilisé des fonctions de Lyapunov pour mettre en place un contrôleur backs-
tepping (adapté aux systèmes non linéaires) pour commander l’attitude et
l’altitude de notre quadricoptère. Une trajectoire consigne a donc été éla-
borée avec une méthode xyz2quat nous permettant de convertir n’importe
quel point en rotation quaternionique pour que le drone puisse l’atteindre
facilement. Toutes ces méthodes nous ont permis d’exécuter avec succès
la trajectoire de parcours d’un champ de coton de 50ℎ𝑎 avec un temps de
réponse à la perturbation d’environ 1s.

Mots clés : Drone quadricoptère, Agriculture, Quaternion, Backstepping,


Champ de coton
Abstract

The development of drones is experiencing a meteoric rise. Today we


are talking about taxi-drones, delivery drones, etc. Drones can be useful
in several sectors of activity, including the agricultural sector. In Benin, the
agricultural field represents a predominant sector in the economy. It rep-
resents 29.4% of the GDP in 2021. Using modern means such as drones
could therefore help improve yields and productivity. It is in this context that
the COTTON NUTRIENT project of the company GREEN TECH INNOVA-
TION aims to quantify the levels of nutrient deficiencies in a cotton field
based on leaves and substrate tests in order to provide the necessary fer-
tilizers. To achieve this, image data of cotton leaves are required. The main
objective of this work is therefore to design a quadricopter capable of flying
around a cotton field by itself in order to collect image data of cotton leaves.
It was thus a question of using system control to simulate all the behavior
of the drone in order to set up its ”brain” which could eventually be flashed
on a microcontroller. To achieve this, we chose to do a multiphysics mod-
eling of the drone based on hypercomplex numbers called «quaternion»
from the kinematic and dynamic behaviors of the quadricopter. Then, we
used Lyapunov functions to implement a backstepping controller (adapted
to nonlinear systems) to control the attitude and altitude of our quadricopter.
A set trajectory was then elaborated with a method xyz2quat allowing us
to convert any point into a quaternionic rotation so that the drone can easily
reach it. All these methods allowed us to successfully execute the trajec-
tory of a 50ℎ𝑎 cotton field with a response time to disturbance of about 1s.

Keywords: Quadricopter drone, Agriculture, Quaternion, Backstepping,


Cotton field
Introduction générale

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 :

• Le développement d’un modèle mathématique du quadrirotor


• La mise en place d’un modèle multiphysique du quadrirotor sous SI-
MULINK
• La conception d’une commande efficace pour le contrôle du drone
• La mise en place d’une trajectoire consigne de parcours d’un champ
de coton
• La simulation du modèle sous MATLAB
• La simulation du drone selon la trajectoire consigne de parcours de
champ de coton

Ce mémoire est composé de 4 chapitres :


• Chapitre 1 : Revue de littérature
• Chapitre 2 : Modélisation mathématique du quadricoptère
• Chapitre 3 : Synthèse du contrôleur de vol et implémentation du mo-
dèle
• Chapitre 4 : Simulation, Résultats et Discussion

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.

1.1 Travaux effectués


Plusieurs travaux ont été effectués dans le domaine des systèmes de
commandes appliquées aux drones quadrirotor ;

Dans l’ensemble des travaux, la première étape, très importante, dans


la conception des lois de commandes est la modélisation du système.
Certains auteurs adoptent une modélisation basée sur les angles d’Euler
(angles de roulis, de tangage et de lacet directement) tandis que d’autres
se servent des quaternions (nombres complexes à trois parties imaginaires).

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.

Cependant, ce qui diffère dans les différentes approches est la méthode


de contrôle du système : la technologie de la commande du système.

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.

1.2 Notre approche


En se basant sur cette étude de littérature, les objectifs suivants ont été
établis pour la commande du système de ce projet :
• Réaliser une modélisation à base des quaternions pour le système
multiphysique de notre drone quadrirotor
• Mettre en œuvre un contrôleur non linéaire basé sur la méthode Backs-
tepping pour le contrôle d’altitude et le contrôle d’attitude en proposant
une solution de la dernière constante de l’équation 𝐴4 présentant moins
de contraintes et qui marche.
• Mettre en place une stratégie de trajectoire-consigne basée sur des
coordonnées cartésiennes et une nouvelle méthode de conversion de
ces coordonnées en rotation quaternionique.

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

2.1.2 Fonctionnement et mouvements d’un quadricoptère


Le fonctionnement d’un quadrirotor est assez particulier. En faisant va-
rier astucieusement la puissance des moteurs, il est possible de le faire
monter/descendre, de l’incliner à gauche/droite (roulis) ou en avant/arrière
(tangage) ou encore de le faire pivoter sur lui-même (lacet) [5]. Le quadri-
rotor a six degrés de libertés :
• Trois mouvements de rotation (Rotation autour des axes X,Y et Z)
• Trois mouvements de translation (Suivant les axes X,Y et Z)
Ces six degrés doivent être commandés à l’aide de quatre déclencheurs :
4 actions produisent 6 mouvements ; donc c’est un système sous actionné
(le nombre des entrées est inférieur au nombre de sorties).
Dans son fonctionnement, la rotation d’un moteur entraine la rotation de
son hélice correspondant. L’hélice en tournant, du fait de son profil bombé
permet à l’air d’être plus fort en dessous qu’au dessus de l’aile. Or plus il y
a l’air, moins il y a de pression. Il se créér donc une différence de pression
entre le dessus et le dessous de l’hélice[14]. Cette dépression au niveau
des 4 hélices entraine la création d’une force de poussée qui tend à faire
monter l’appareil vers le haut.

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.

Fig. 2.3 : Illustration du mouvement de roulis d’un quadricoptère

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.

Fig. 2.4 : Illustration du mouvement de tangage d’un quadricoptère

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

2.2 Les Quaternions


2.2.1 Définition
Les quaternions sont des vecteurs à quatre dimensions [15]. Ils sont des
nombres hypercomplexes appartenant à l’espace quaternionique H [11]
et peuvent être représentés de plusieurs façons, mais la façon utilisée ici
est comme la somme d’une composante scalaire 𝑞0 le long d’un vecteur
imaginaire (𝑞1 𝑖, 𝑞2 𝑗, 𝑞3 𝑘)𝑇 où (𝑞1 , 𝑞2 , 𝑞3 ) ∈ ℝ3
Les trois composantes imaginaires sont reliées par :
𝑖2 = 𝑗2 = 𝑘2 = −1
𝑖𝑗 = 𝑘 = −𝑗𝑖
𝑗𝑘 = 𝑖 = −𝑘𝑗
𝑘𝑖 = 𝑗 = −𝑖𝑘
𝑞1
𝑞0
On représente donc un quaternion par le vecteur 𝑞 = [ ] avec ⃗⃗⃗⃗⃗⃗ 𝑞𝑟 = ⎢ 𝑞2 ⎤


⃗⃗⃗⃗⃗⃗
𝑞𝑟
⎣𝑞3 .⎦
On peut également noter le quaternion 𝑞 = 𝑞0 + 𝑞1 𝑖 ⃗ + 𝑞2 𝑗 ⃗+ 𝑞3 𝑘⃗
Ces nombres ont été découverts par le mathématicien, physicien, astro-
nome irlandais Sir William Rowan Hamilton le 16 octobre 1843.

29
Fig. 2.6 : William Rowan Hamilton (1805-1865)

2.2.2 Opérations sur les quaternions


• Addition : Soit 𝑞, 𝑝 ∈ 𝐻. On définit la somme des deux quaternions 𝑞 et
𝑝 par :
𝑞0 + 𝑝0
𝑞+𝑝 =[ ]
⃗⃗⃗⃗⃗⃗
𝑞𝑟 + ⃗⃗𝑝⃗ ⃗𝑟⃗

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).

Notons que la multiplication est associative et distributive mais non-


commutative, 𝑞 ⨂ 𝑝 = −𝑝 ⨂ 𝑞
1
[ ] est l’élément neutre de la multiplication.
0⃗

• 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

2.2.3 Quaternions et rotation


Les quaternions peuvent être utilisés pour comprendre les rotations dans
ℝ𝟛 . L’ensemble de ces quaternions forme une hypersphère de rayon unité

31
[16].

Fig. 2.8 : Rotation et quaternion unitaire dans l’espace

Soit u, un vecteur de norme 1 et 𝑣,⃗ un vecteur quelconque.


Le quaternion unitaire 𝑝 = cos 𝜃 + 𝑢⃗ sin 𝜃 (||𝑝|| = 1) est utilisé pour effectuer
la rotation du vecteur 𝑣 ⃗ d’angle 2𝜃 par rapport à l’axe 𝑢⃗ [17] et on note
𝑅𝑜𝑡𝜃,𝑢⃗ (𝑣)⃗ = 𝑝 ⨂ 𝑣 ⃗ ⨂ 𝑝−1 .
On peut aisément montrer que : 𝑅𝑜𝑡𝜃,𝑢⃗ (𝑢)⃗ = 𝑝 ⨂ 𝑢⃗ ⨂ 𝑝−1 = 𝑢⃗
Le quaternion unitaire p est appelé quaternion d’orientation en robotique.

2.2.4 Cinématique du quaternion


Lien entre le quaternion d’orientation et le vecteur vitesse angulaire
Il existe une relation entre le vecteur vitesse angulaire et la dérivée tem-
porelle du quaternion. Cette relation s’écrit comme suit :
1
𝑞 ̇ = 𝑞 ⨂ 𝜔𝑞
2
q étant un quaternion d’orientation
et 𝜔𝑞 = [0, 𝜔]𝑡 , le quaternion dérivant du vecteur vitesse angulaire du so-
lide. Cette relation précédante est démontrée dans [16].
En posant, 𝑞 = (𝑞0 , 𝑞1 , 𝑞2 , 𝑞3 )𝑡 et 𝑤(𝑡) = (𝑤𝑥 (𝑡), 𝑤𝑦 (𝑡), 𝑤𝑧 (𝑡))𝑡 , on obtient le
système d’équations différentielles suivant :

32
𝑑(𝑞0 (𝑡))
⎡ 𝑑𝑡 ⎤
⎢ 𝑑(𝑞 (𝑡)) ⎥ 0 −𝜔𝑥 (𝑡) −𝜔𝑦 (𝑡) −𝜔𝑧 (𝑡) 𝑞0 (𝑡)
⎢ 1 ⎥ 1 ⎡𝜔 (𝑡) 0 −𝜔𝑦 (𝑡) −𝜔𝑧 (𝑡)⎥⎤ ⎡ 𝑞1 (𝑡)⎤
⎢ 𝑑𝑡 ⎥ = ⎢ 𝑥 ⨂ ⎢ ⎥
⎢ 𝑑(𝑞2 (𝑡)) ⎥ 2 ⎢𝜔𝑦 (𝑡) 𝜔𝑧 (𝑡) 0 −𝜔𝑥 (𝑡)⎥ ⎢𝑞2 (𝑡)⎥
⎢ 𝑑𝑡 ⎥
⎢ 𝑑(𝑞3 (𝑡)) ⎥ ⎣𝜔𝑥 (𝑡) −𝜔𝑦 (𝑡) 𝜔𝑧 (𝑡) 0 ⎦ ⎣𝑞3 (𝑡)⎦
⎣ 𝑑𝑡 ⎦

2.2.5 Quaternions et changement de bases


Les quaternions peuvent être utilisés pour opérer un changement de
bases. Soit 𝑅𝑖 (𝑂𝑖 , 𝑖,⃗ 𝑗,⃗ 𝑘)⃗ un repère galliléen lié à la terre ;
𝑅𝑏 (𝑂𝑏 , 𝑖𝑏⃗ , 𝑗𝑏⃗ , 𝑘⃗ 𝑏 ) un repère mobile lié à un solide indéformable.
Afin d’étudier le mouvement du solide dans le repère 𝑅𝑖 , on passe à tout
instant t de la base 𝐵𝑏 = (𝑖𝑏⃗ , 𝑗𝑏⃗ , 𝑘⃗ 𝑏 ) à la base 𝐵𝑖 = (𝑖,⃗ 𝑗,⃗ 𝑘). ⃗ Deux bases
orthonormées ayant même orientation se déduisent l’une de l’autre par
une certaine rotation [16]. On passe donc à tout instant t de la base 𝐵𝑏 =
(𝑖𝑏⃗ , 𝑗𝑏⃗ , 𝑘⃗ 𝑏 ) à la base 𝐵𝑖 = (𝑖,⃗ 𝑗,⃗ 𝑘)⃗ par la rotation R d’angle 𝛼 d’axe dirigé par
𝑢.⃗
𝛼 𝛼
A cette rotation, on associe le quaternion unitaire 𝑞 = cos + 𝑢⃗ sin .
2 2
Dans l’espace, on est amené à effectuer des rotations successives autour
des axes X, Y et Z du repère inertiel. Ces rotations (roulis, tangage, lacet)
sont les rotations des angles d’Euler (𝜙, 𝜃, 𝜓).
En considérant la rotation quaternionique (voir fig. 2.8), il est simple de trou-
ver les quaternions permettant d’effectuer les rotations des angles d’Euler.
Ces quaternions sont :
𝑇
𝜙 𝜙
𝑞𝜙 = [cos , sin , 0, 0]
2 2
𝑇
𝜃 𝜙
𝑞𝜃 = [cos , 0, sin , 0]
2 2
𝑇
𝜓 𝜓
𝑞𝜓 = [cos , 0, 0, sin ]
2 2
Ainsi, la rotation d’un quelconque vecteur 𝑝⃗ des trois angles d’Euler est
donnée par
0
Rot (𝑝)⃗ = 𝑞𝜓 ⨂ 𝑞𝜃 ⨂ 𝑞𝜙 ⨂ [ ] ⨂ 𝑞𝜙−1 ⨂ 𝑞𝜃−1 ⨂ 𝑞𝜓−1
𝑝⃗
NB : L’ordre de rotation choisi ici est 𝜓 → 𝜃 → 𝜙
On peut donc définir le quaternion 𝑞 permettant d’effectuer en une seule

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, 𝐹𝑏 .

2.3.2 Définition du vecteur position, de force et de moment


La position du quadricoptère sera définie par un vecteur allant de 𝑂𝑖 à
𝑂𝑏 comme le montre la figure ci-après 2.9

35
Fig. 2.9 : Mise en évidence du vecteur position

Le vecteur position sera noté 𝜂 = (𝑥, 𝑦, 𝑧)𝑇 dans le repère inertiel.

L’ensemble des forces appliquées au centre du quadricoptère dans le


repère du quadricoptère est 𝐹𝑏 = 𝑓 = (𝑓𝑥 , 𝑓𝑦 , 𝑓𝑧 )𝑇 et l’ensemble des mo-
ments des forces par rapport aux axes 𝑋𝑖 , 𝑌𝑖 et 𝑍𝑖 , 𝑀 = (𝑀𝑥 , 𝑀𝑦 , 𝑀𝑧 )
Ensuite, le vecteur vitesse linéaire, qui est donné par :
𝑑𝜂
𝜂̇ = = (𝑥,̇ 𝑦,̇ 𝑧)̇ 𝑇 dans le repère inertiel.
𝑑𝑡
Dans le domaine aérospatial, la vitesse linéaire exprimée dans le repère
du quadricoptère est notée 𝑣 = (𝑢, 𝑣, 𝑤)𝑇 .

2.3.3 Définition de la vitesse angulaire


La définition de la vitesse angulaire passe par la définition de la position
angulaire. La position angulaire définit l’orientation du repère mobile 𝑅𝑏
par rapport aux axes du repère inertiel 𝑅𝑖 . Sur ce point, l’orientation est
directement définie dans le repère 𝑅𝑖 et est donné par Ω = (𝜙, 𝜃, 𝜓)𝑇 où
• 𝜙 désigne la rotation autour de l’axe 𝑋𝑖 : le roulis

36
• 𝜃 désigne la rotation autour de l’axe 𝑌𝑖 : le tangage
• 𝜓 désigne la rotation autour de l’axe 𝑍𝑖 : le lacet

Fig. 2.10 : Orientation Roulis, Tangage, Lacet Quadricoptère

Ainsi, la vitesse angulaire est donc donnée par :


𝑑Ω
Ω̇ = = (𝜙,̇ 𝜃,̇ 𝜓)̇ 𝑇 dans le repère inertiel.
𝑑𝑡
2.3.4 Analyse des forces appliquées au quadrirotor
Plusieurs forces sont appliquées au quadricoptère :

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.

Les forces de portance 𝐹𝑖 ∶


Les forces de portance font partie des forces produites par l’hélice dans
sa rotation. En effet pendant sa rotation, l’hélice déplace l’air du haut vers le

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.

Les forces de trainée 𝐷𝑖 ∶


Les forces de trainée font partie des forces produites par l’hélice dans
sa rotation. En effet pendant sa rotation, l’hélice pousse l’air dans une di-
rection spécifique, dans notre cas vers le bas, pour générer la force de
portance. Cependant, puisque l’hélice a un certain angle d’attaque par rap-
port à l’air, une autre force perpendiculaire à la portance est créée : c’est
la TRAINEE DANS LES HELICES
Elle est donnée par :

𝐷𝑖 = 𝑑𝑤𝑖̄ 2 (2.4)

Avec 𝑖 ∈ 1...4, 𝑤𝑖̄ la vitesse de rotation de l’hélice i, et d le coefficient de


trainée
𝑑 = 𝐶𝐷 𝜌𝐴(Ω𝑟)2 (2.5)
𝐶𝐷 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 trainée de
l’hélice

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.

2.3.5 Analyse des moments de forces appliqués au quadrirotor


Plusieurs moments de forces sont appliqués au quadricoptère :

Moment de roulis 𝑀𝑥
Il s’agit du moment qui tend à faire tourner le système autour de l’axe 𝑋.

Fig. 2.11 : Illustration du moment par rapport à X

Ce roulis est dû à la différence de portance entre les moteurs 2-3 et les


moteurs 1-4. Les forces F2 et F3 tendent à faire touner le système dans
le sens trigonométrique tandis que les forces F1 et F4 tendent à le faire
tourner dans le sens contraire.

𝑀 𝑥 = 𝑀 (𝐹1 /𝑥) + 𝑀 (𝐹2 /𝑥) + 𝑀 (𝐹3 /𝑥) + 𝑀 (𝐹4 /𝑥)


= −𝑎𝐹1 + 𝑎𝐹2 + 𝑎𝐹3 − 𝑎𝐹4

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 𝑌 .

Fig. 2.12 : Illustration du moment par rapport à Y

Ce tangage est dû à la différence de portance entre les moteurs 1-2


et les moteurs 3-4. Les forces F1 et F2 tendent à faire touner le système
dans le sens trigonométrique tandis que les forces F3 et F4 tendent à le
faire tourner dans le sens contraire.

𝑀 𝑦 = 𝑀 (𝐹1 /𝑦) + 𝑀 (𝐹2 /𝑦) + 𝑀 (𝐹3 /𝑦) + 𝑀 (𝐹4 /𝑦)

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 𝑧.

Fig. 2.13 : Illustration du moment par rapport à Z

Ce lacet est dû à la différence de trainée entre les moteurs 1-3 et les


moteurs 2-4. Il survient à partir du couple de réaction provoqué par les
couples de traînée dans chaque hélice.
Les forces de trainée D2 et D4 tendent à faire touner le système dans le
sens trigonométrique tandis que les forces de trainée D1 et D3 tendent à
le faire tourner dans le sens contraire.

𝑀 𝑧 = −𝐷1 + 𝐷2 − 𝐷3 + 𝐷4

41
Ainsi,

𝑀𝑧 = 𝑑(−𝑤1̄ 2 + 𝑤2̄ 2 − 𝑤3̄ 2 + 𝑤4̄ 2 ) (2.9)

Les moments gyroscopiques


La pression gyroscopique est un moment obtenu lorsqu’on applique un
couple perpendiculaire à l’axe de rotation d’un objet en mouvement. Il s’en
suit l’effet gyroscopique qui se traduit par la difficulté à changer l’axe de
rotation d’un objet tournant.
L’équation fondamentale décrivant le comportement du gyroscope est :
𝑑𝐿⃗
𝜏⃗ =
𝑑𝑡
où les vecteurs 𝜏 ⃗ et 𝐿⃗ sont respectivement le moment (ou couple) sur le
gyroscope et son moment cinétique.
Dans le cas du quadrirotor, il y a deux moments gyroscopiques, le pre-
mier étant le moment gyroscopique des hélices et le second le moment
gyroscopique dû aux mouvements du quadrirotor.
• Moment gyroscopique des hélices 𝑀𝑔ℎ :
L’hélice possédant sa propre vitesse de rotation est pertubée par les
mouvements rotatifs du quadricoptère.

𝑀𝑔ℎ𝑖 = 𝜔⃗ × 𝐽𝐻 Ω𝑖⃗ (2.10)

Avec 𝜔 la vitesse angulaire du quadricoptère,


𝐽𝐻 , le moment d’inertie ROTOR-HELICE et
Ω𝑖 , la vitesse de rotation du moteur i
L’équation (2.10) est liée à une hélice. Pour les 4 hélices, on obtient :
4 4 4
𝑀𝑔ℎ = ∑𝑖=1 𝑀𝑔ℎ𝑖 = ∑𝑖=1 𝜔⃗ ⨂ 𝐽𝐻 Ω𝑖⃗ = 𝐽𝐻 𝜔⃗ × 𝑘⃗ 𝑏 ∑𝑖=1 Ω𝑖̄
4
Posons ∑ Ω ̄ = −Ω + Ω − Ω + Ω = 𝛾
𝑖=1 𝑖 1 2 3 4
Il s’en suit :
𝑀𝑔ℎ = 𝐽𝐻 𝛾 𝜔⃗ × 𝑘⃗ 𝑏 (2.11)

• Moment gyroscopique du quadricoptère 𝑀𝑔𝑞 :


Tout système rotatif étant susceptible de générer un moment gyrosco-
pique,
𝑀𝑔𝑞 = 𝜔⃗ × 𝐽𝑄 𝜔⃗ (2.12)

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.

2.3.6 Forces et moments non modélisés


Plusieurs autres effets aérodynamiques qui peuvent perturber le qua-
drirotor ne seront pas modélisés dans le cadre de ce travail, car ceux-ci
peuvent être négligés à faible vitesse [18].
Il s’agit par exemple de
• Trainée selon les axes X,Y et Z :
Le châssis du quadrirotor ainsi que les hélices offrent une résistance à
l’air. Celle-ci génère une force de trainée qui s’oppose au mouvement
linéaire et rotatif du quadrirotor. Elle est appelée Force de friction [13]
mais [10] expliqua mieux en l’énonçant comme étant la trainée selon
les axes X, Y et Z. Cette force est proportionnelle au carré de la vi-
tesse du quadrirotor et dépend des conditions de l’air ainsi que de la
géométrie du quadrirotor.
• Battement d’hélice :
L’effet de battement d’hélice est créé lorsque l’hélice se déplace hori-
zontalement. Ce déplacement crée une différence de vitesse, et donc
de poussée, entre la partie de l’hélice qui attaque le flot d’air par rap-
port à celle qui se retire du flot d’air. Cette différence de poussée entre
ces éléments de l’hélice amène le plan de l’hélice à s’incliner, ce qui
change la direction du vecteur de poussée comme décrit ici [13].
• L’effet sol :
L’effet de sol est créé lorsqu’une surface, qui est suffisamment près de
l’hélice, perturbe le flot d’air généré par celle-ci en plus d’améliorer la
poussée de l’hélice.

2.3.7 Développement de la dynamique de translation


D’après la deuxième loi de Newton (en translation), la somme totale des
forces appliquées à un système en mouvement est égale au produit de sa
masse par son vecteur accélération.

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)
𝑚 𝐹𝑏
⎣𝑧 ⎦ ̈ ⎣−𝑔⎦

2.3.8 Développement de la dynamique de rotation


Le quaternion d’orientation
Le quaternion décrivant la cinématique du mouvement de rotation du
quadrirotor est donné par :
1
𝑞 ̇ = 𝑞 ⨂ 𝜔𝑞 (2.15)
2
Avec 𝜔𝑞 = (0, 𝜔)⃗ 𝑇 , le quaternion dérivant du vecteur vitesse angulaire 𝜔⃗

Principe fondamental de la dynamique


Toujours d’après le principe fondamental de la dynamique (deuxième loi
de Newton) appliqué aux systèmes en rotation, la somme totale des mo-
ments des forces appliquées au système en rotation est égale au produit
de son moment d’inertie par sa vitesse angulaire.
Soit
∑ 𝑀 = 𝐽𝑄 𝜔̇ (2.16)

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 𝑀𝑔𝑞 = 𝜔⃗ × 𝐽𝑄 𝜔⃗ = ⎢ 𝜃 ⎥ ⎢𝜃⎥
⎣𝜓 ⎦ ̇ ⎣𝜓 ⎦ ̇

Ainsi, la dynamique de rotation donnera :



2
⎛ ⎡ 𝑏𝑙 (−𝑤1̄ 2 + 𝑤2̄ 2 + 𝑤3̄ 2 − 𝑤4̄ 2 )⎤ 𝜙̇ 0 𝜙̇ 𝜙̇ ⎞
1 ⎜

⎜ ⎢ 2
√ ⎥ ⎡ ⎤ ̇ ⎡0⎤ − ⎡ 𝜃 ⎤
̇ ⎡ ⎤ ̇



𝜔̇ = ⎜ ⎢ 2 2 2 2 2 ⎥ − 𝐽 𝛾
𝐻 ⎢ ⎥𝜃 × ⎢ ⎥ ⎢ ⎥ × 𝐽 𝜃
𝑄 ⎢ ⎥⎟
𝐽𝑄 ⎜
⎜⎢ 𝑏𝑙 ( 𝑤1̄ + 𝑤2̄ − 𝑤3̄ − 𝑤4̄ ) ⎥ ̇ ̇ ̇ ⎟

2 ⎣ 𝜓⎦ ⎣ 1⎦ ⎣𝜓⎦ ⎣ 𝜓⎦
2 2 2 2
⎝⎣ 𝑑(−𝑤1̄ + 𝑤2̄ − 𝑤3̄ + 𝑤4̄ ) ⎦ ⎠
(2.17)

2.3.9 Modèle mathématique final


En combinant les équations (2.14) et (2.17) respectivement de la dyna-
mique de translation et celle de rotation, on obtient le modèle final suivant :
⎧𝜂 ̇ = 𝑣
{
{ 0
{ 0 ⎡ ⎤
{𝑣 ̇ = 𝐼𝑚{𝑞 ⨂ ⎡ ⎢1 ⃗⎥
⎤ ⨂ 𝑞 −1
} + ⎢ 0 ⎥
{ 𝐹𝑏 ⎢ ⎥
⎣𝑚 ⎦ ⎣−𝑔⎦ (2.18)

{
{𝑞 ̇ = 1 𝑞 ⨂ [ 0 ]
{ 2 𝜔⃗
{
{𝜔̇ = 𝐽 −1 (−𝜔⃗ × 𝐽 𝜔⃗ − 𝐽 𝛾 𝜔⃗ × 𝑘 ⃗ + 𝑈 )
⎩ 𝑄 𝑄 𝐻 𝑖

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

Synthèse du contrôleur de vol et


implémentation du modèle

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

Synthèse du contrôleur de vol

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.

3.2 Théorie de Lyapunov


Soit le système suivant
𝑥̇ = 𝑓(𝑥, 𝑡) (3.1)
avec
𝑓 ∶ ℝ𝑛 × ℝ ⟶ ℝ 𝑛 (3.2)
une fonction continue par incréments temporels et localement lipschitz. No-
tons qu’une fonction 𝑓 est lipschitz dans un intervalle 𝐼 de ℝ si et seulement
si ∀𝑥 ∈ 𝐼, ∃𝑥 ∈]𝑎, 𝑏[, 𝑘 tel que
|𝑓(𝑢) − 𝑓(𝑣)| ≤ 𝑘|𝑢 − 𝑣|

3.2.1 Stabilité de Lyapunov


La solution de (3.1) a pour point de départ la condition d’équilibre 𝑥0 ∀
𝑡 ≥ 0 et est décrite par 𝑥(𝑡; 𝑥0 , 𝑡0 ), avec 𝑥(𝑡0 ; 𝑥0 , 𝑡0 ) = 𝑥0 .
La stabilité de Lyapunov peut être définit comme suit :
Si la solution initiale 𝑥0 est pertubée et devient 𝑥0̃ , la solution pertubée
𝑥(𝑡; 𝑥0̃ , 𝑡0 ) doit rester proche 𝑥(𝑡; 𝑥0 , 𝑡0 ), pour tout 𝑡 ≥ 𝑡0 pour conserver la
stabilité.
De plus, pour la stabilité asymptomatique, l’erreur 𝑥(𝑡; 𝑥0̃ , 𝑡0 ) − 𝑥(𝑡; 𝑥0 , 𝑡0 )
doit s’annuler pour 𝑡 ⟶ ∞ Ainsi, la solution notée 𝑥(𝑡; 𝑥0 , 𝑡0 ) de (3.1) est
considérée comme une :

49
• Solution stable : si pour tout 𝜖 > 0, il existe 𝛿(𝜖, 𝑡0 ) > 0 de sorte que :

|𝑥0̃ − 𝑥0 | < 𝛿(𝜖, 𝑡0 ) ⟶ |𝑥(𝑡; 𝑥0̃ , 𝑡0 ) − 𝑥(𝑡; 𝑥0 , 𝑡0 )| < 𝜖, ∀𝑡 ≥ 𝑡0 (3.3)

• Solution bornée : s’il existe une constante 𝐵(𝑥0 , 𝑡0 ) > 0 telle que :

|𝑥(𝑡; 𝑥0 , 𝑡0 )| < 𝐵(𝑥0 , 𝑡0 ) (3.4)

• Solution attractive : s’il existe un 𝑟(𝑡0 ) et pour chaque 𝜖 > 0, une


valeur T qui dépend de 𝜖 et 𝑡0 tel que :

|𝑥0̃ − 𝑥0 | < 𝑟 ⟶ |𝑥(𝑡; 𝑥0̃ , 𝑡0 ) − 𝑥(𝑡; 𝑥0 , 𝑡0 )| < 𝜖, ∀𝑡 ≥ 𝑡0 + 𝑇 (3.5)

• Solution asymptotiquement stable : si elle est stable et attractive.


Pour un point d’équilibre asymptotiquement stable au temps 𝑡0 , il existe
un nombre 𝛿(𝑡0 ) > 0 tel que :

||𝑥(𝑡0 )|| < 𝛿(𝑡0 ) ⟹ ||𝑥(𝑡0 )|| ⟶ 0 (3.6)

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.

3.2.2 Fonction de Lyapunov


Soit une fonction 𝑉 (𝑥), définie positive et radialement non bornée, c’est-
à-dire qu’elle vérifie 𝑉 (𝑥, 𝑡) ⟶ ∞ lorsque |𝑥| ⟶ ∞ : Cette fonction est
appelée fonction de Lyapunov.
Du point de vue pratique, l’étude des conditions de stabilité par la méthode
de Lyapunov vise à déterminer les propriétés de stabilité de 𝑥(𝑡; 𝑥0 , 𝑡0 ) à
partir de 𝑓(𝑥, 𝑡) et de leur relation avec la fonction 𝑉 (𝑥).
L’une des propriétés désirées est la propriété UAS (Uniformément, Asymp-
totiquement Stable).
Selon [19], cette propriété est désirée parce que les systèmes la possé-
dant ont une meilleure capacité d’absorption des pertubations. Principale-
ment, ils atteignent juste la propriété de stabilité uniforme en forçant l’er-

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]).

3.2.3 Etude de la convergence (LaSalle-Yoshizawa)


Définition 1
Une fonction 𝑊 (𝑥) ∶ ℝ𝑛 ⟶ ℝ (indépendante du temps) est localement
positive si et seulement si :
𝑊 (0) = 0
{ ∀𝑥
𝑊 (𝑥) > 0

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 :

𝑉1̇ = 𝑥1 𝑥1̇ = 𝑥1 (cos 𝑥1 + 𝑥2 ) (3.9)

52
Pour forcer 𝑉 ̇ à être négative, choisissons donc le contrôleur virtuel

𝛼𝑥2 = − cos 𝑥1 − 𝑘1 𝑥1 (3.10)

On aura de ce fait :

𝑉1̇ = 𝑥1 (cos 𝑥1 − cos 𝑥1 − 𝑘1 𝑥1 ) = −𝑘1 𝑥21 (3.11)

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 :

𝑒2̇ .0 = 𝑥2̇ − 𝛼𝑥̇ 2


(3.12)
= 𝑥1 + 𝑢 − (𝑥1̇ sin 𝑥1 − 𝑘1 𝑥1̇ )

Avec le nouvel état, 𝑥1̇ = cos 𝑥1 + (𝑒2 + 𝛼𝑥2 ) soit

𝑥1̇ = 𝑒2 − 𝑘1 𝑥1 (3.13)
Ainsi,

𝑒2̇ = 𝑥1 + 𝑢 − ((𝑒2 − 𝑘1 𝑥1 ) sin 𝑥1 − 𝑘1 (𝑒2 − 𝑘1 𝑥1 ))


(3.14)
= 𝑥1 + 𝑢 − (sin 𝑥1 − 𝑘1 )(𝑒2 − 𝑘1 𝑥1 )
Soit la fonction candidate de Lyapunov :
1
𝑉2 = 𝑉1 + 𝑒22 , 𝑉2 >= 0
2
Calculons 𝑉2̇

𝑉2̇ = 𝑥1 𝑥1̇ + 𝑒2 𝑒2̇


= 𝑥1 (𝑒2 − 𝑘1 𝑥1 ) + 𝑒2 (𝑥1 + 𝑢 − (sin 𝑥1 − 𝑘1 )(𝑒2 − 𝑘1 𝑥1 )) (3.15)
= − 𝑘1 𝑥21 + 𝑒2 (2𝑥1 + 𝑢 − (sin 𝑥1 − 𝑘1 )(𝑒2 − 𝑘1 𝑥1 ))

53
Pour forcer 𝑉2 à être négative, on choisit le contrôleur u suivant :

𝑢 = −2𝑥1 + (sin 𝑥1 − 𝑘1 )(𝑒2 − 𝑘1 𝑥1 ) − 𝑘2 𝑒2 (3.16)

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.

3.4 Mise en place de notre contrôleur de vol


3.4.1 Reformulation du modèle du quadricoptère
Dans le chapitre précédant en (2.18), le modèle du quadricoptère se
présente comme suit :
⎧𝜂 ̇ = 𝑣
{
{ 0
{ 0 ⎡ ⎤
{𝑣 ̇ = 𝐼𝑚{𝑞 ⨂ ⎡ ⎢1 ⃗⎥
⎤ ⨂ 𝑞 −1
} + ⎢ 0 ⎥
{ 𝐹𝑏 ⎢ ⎥
⎣𝑚 ⎦ ⎣−𝑔⎦ (3.17)

{
{𝑞 ̇ = 1 𝑞 ⨂ [ 0 ]
{ 2 𝜔⃗
{
{𝜔̇ = 𝐽 −1 (−𝜔⃗ × 𝐽 𝜔⃗ − 𝐽 𝛾 𝜔⃗ × 𝑘 ⃗ + 𝑈 )
⎩ 𝑄 𝑄 𝐻 𝑖

Pour simplifier la conception de notre contrôleur, nous allons scinder le


système en deux sous-systèmes d’équations comme suit :

⎧𝜂 ̇ = 𝑣
{
{ 0
0
𝑆1 ∶ ⎨
𝑣 ̇ = 𝐼𝑚{𝑞 ⨂ ⎡ 1 ⎤ ⨂ 𝑞 −1 } + ⎢ 0 ⎤


(3.18)
{ ⎢ ⃗ ⎥ ⎢ ⎥
{ 𝐹𝑏
⎩ ⎣ 𝑚 ⎦ −𝑔
⎣ ⎦
⎧ 1 0
{𝑞 ̇ = 𝑞 ⨂ [ ]
𝑆2 ∶ ⎨ 2 𝜔⃗ (3.19)
{𝜔̇ = 𝐽 −1 (−𝜔⃗ × 𝐽 𝜔⃗ − 𝐽 𝛾 𝜔⃗ × 𝑘 ⃗ + 𝑈 )
⎩ 𝑄 𝑄 𝐻 𝑖

Le système (3.18) représente le système de contrôle de la dynamique de


positionnement essentiellement et le système (3.19) représente celui de la
dynamique d’orientation.
ette façon de reformuler le système principal va être plus intuitive au ni-

54
Fig. 3.1 : Radio commande d’un drone

veau de la conception du contrôleur parce que les deux dynamiques fonc-


tionnent ensembles pour produire les 6 degrés de liberté du quadricoptère.

3.4.2 Problématique de contrôle


Notre objectif est de concevoir un contrôleur qui nous permet de pour-
suivre les trajectoires de sorte que la position du quadricoptère converge
vers la position désirée.
En réalité, les deux sous-systèmes doivent nous permettre d’obtenir la po-
sition finale du quadricoptère après le manoeuvrage ;
Le manoeuvrage, c’est lorsque, avec la radiocommande, on envoie une
altitude désirée et on essaie d’orienter le drone en envoyant des angles
désirées.

Dans la pratique, la radiocommande se compose de deux Joystick


• Un joystick à gauche : celui-ci permet d’envoyer deux commandes
principalement à savoir :
- l’altitude du quadrirotor (l’évolution suivant l’axe z)
- la commande de l’angle de lacet (la rotation autour de l’axe z)
• Un joystick à droite : qui permet d’envoyer aussi deux commandes
- la commande de l’angle de roulis (la rotation autour de l’axe x)
- la commande de l’angle de tangage (la rotation autour de l’axe y)

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.

3.4.3 Description des étapes de conception du contrôleur


Pour atteindre notre objectif de contrôle, nous nous proposons d’utiliser
un contrôleur de type backstepping tel que présenté dans les sections pré-
cédentes.
La liaison successive et dépendante des termes de chaque sous-système
nous permet de tirer avantage de ce type de contrôleur.
Dans un premier temps, nous allons prendre le sous-système et (3.18) :
• Poser l’erreur en position linéaire 𝑒1 sur la base de la 1ère équation
• Etablir la dérivée de l’erreur 𝑒1̇
• Proposer une fonction de Lyapunov définie positive associée à 𝑒1
• S’en servir pour trouver le contrôleur virtuel de vitesse 𝛼𝑣
• Poser l’erreur en vitesse linéaire 𝑒2 sur la base de la 2e équation
• Etablir la dérivée de l’erreur 𝑒2̇
• Proposer une fonction de Lyapunov définie positive associée à 𝑒2
• S’en servir pour trouver l’accélération linéaire qui assure la conver-
gence UAS et la force F nécessaire

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 (𝜂𝑑̇ − 𝐴1 𝑒1 − 𝜂𝑑̇ ) = −𝑒𝑇1 𝐴1 𝑒1 (3.25)

Cette expression de 𝑉1̇ nous assure que : 𝑉1̇ <= 0 ∀ 𝐴1 >= 0


Et par conséquent, le contrôle de 𝑒1 par 𝛼𝑣 nous assure une convergence
uniformément asymptotiquement stable de l’erreur 𝑒1 vers 0.

𝛼𝑣 = 𝜂𝑑̇ − 𝐴1 𝑒1 (3.26)

Etape 2 : Contrôleur de vitesse linéaire


Nous allons nous baser sur la deuxième équation de (3.18) pour contrô-
ler l’expression de la vitesse linéaire.
Soit 𝑒2 = 𝑣 − 𝑣𝑑 l’erreur en vitesse linéare
Ici 𝑣𝑑 = 𝛼𝑣 = 𝜂𝑑̇ − 𝐴1 𝑒1
Donc
𝑣 = 𝑒2 + 𝑣𝑑 = 𝑒2 + 𝜂𝑑̇ − 𝐴1 𝑒1 (3.27)
Calculons 𝑒2̇
𝑒2̇ = 𝑣 ̇ − 𝛼𝑣̇

0 0
𝑒2̇ = 𝐼𝑚{𝑞 ⨂ [ 1 ⃗ ] ⨂ 𝑞 } + ⎢ 0 ⎤
−1 ⎡
⎥ − 𝜂𝑑̈ + 𝐴1 𝑒1̇ (3.28)
𝐹𝑏
𝑚 ⎣−𝑔⎦
Calculons 𝑒1̇
𝑒1̇ = 𝜂 ̇ − 𝜂𝑑̇
Or 𝜂 ̇ = 𝑣 = 𝑒2 + 𝜂𝑑̇ − 𝐴1 𝑒1 Donc

𝑒1̇ = 𝑒2 + 𝜂𝑑̇ − 𝐴1 𝑒1 − 𝜂𝑑̇


(3.29)
= 𝑒 2 − 𝐴 1 𝑒1
(3.30) devient 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 :

𝛼𝑎 = −𝑒1 + 𝜂𝑑̈ − 𝐴1 (𝑒2 − 𝐴1 𝑒1 ) − 𝐴2 𝑒2 − 𝑔,⃗ 𝐴2 > 0 (3.38)

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 𝑎𝑑𝑒𝑠 = 𝛼𝑎 + 𝑔 ⃗

𝑎𝑑𝑒𝑠 = −𝑒1 + 𝜂𝑑̈ − 𝐴1 (𝑒2 − 𝐴1 𝑒1 ) − 𝐴2 𝑒2 (3.42)


et
𝛼𝑎 = −𝑒1 + 𝜂𝑑̈ − 𝐴1 (𝑒2 − 𝐴1 𝑒1 ) − 𝐴2 𝑒2 − 𝑔 ⃗ (3.43)

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 (−𝜔⃗ × 𝐽 𝜔⃗ − 𝐽 𝛾 𝜔⃗ × 𝑘 ⃗ + 𝑈 )
⎩ 𝑄 𝑄 𝐻 𝑖

La première équation va nous permettre de contrôler la position angulaire


et la deuxième, la vitesse angulaire.

Etape 1 : Contrôleur de position angulaire


Sur la base de l’équation 1 de (3.19), nous allons définir l’erreur du qua-
ternion d’orientation.
Soit
𝛽
𝑞𝑒 = ( ) l’erreur du quaternion d’orientation ;
𝜖⃗
𝑞
𝑞𝑑 = ( 𝛼 ) le quaternion dérivant de la position angulaire désirée et
𝑞𝛽⃗
𝑞
𝑞 = ( 0 ) le quaternion dérivant de la position finale obtenue.
𝑞𝑣⃗

Selon [20], on peut définir l’erreur du quaternion comme suit :

𝑞𝑒 = 𝑞𝑑̄ ⨂ 𝑞 (3.45)

Développons un peu cette expression :


𝑞𝑒 = 𝑞𝑑̄ ⨂ 𝑞
𝑞𝛼 𝑞
= ( ) ⨂ ( 0)
−𝑞𝛽⃗ 𝑞𝑣⃗
𝑞𝛼 𝑞0 − 𝑞𝛽⃗ 𝑞𝑣⃗
= ( )
𝑞𝛼 𝑞𝑣⃗ − 𝑞0 𝑞𝛽⃗ + 𝑞𝛽⃗ × 𝑞𝑣⃗
𝛽
= ( )
𝜖⃗

62
Déterminons la dérivée de l’erreur :
𝛽̇
𝑞𝑒̇ = ( )
𝜖 ⃗̇
𝑞𝛼 𝑞0̇ − 𝑞𝛽⃗ 𝑞𝑣⃗̇
= ( )
𝑞𝛼 𝑞𝑣⃗̇ − 𝑞0̇ 𝑞𝛽⃗ − 𝑞𝛽⃗ × 𝑞𝑣⃗̇

Nous devrons donc trouver la dérivée de 𝑞 = (𝑞0̇ , 𝑞𝑣⃗̇ )𝑇 :


Du système (3.44), on a
1 0 𝑞̇ 1 𝑞0 0
𝑞 ̇ = 𝑞 ⨂ [ ] => ( 0̇ ) = ( )⨂( )
2 𝜔⃗ 𝑞𝑣⃗ 2 𝑞𝑣⃗ 𝜔⃗
𝑞̇ 1 𝑞0 0
=> ( 0̇ ) = ( )⨂( ) (3.46)
𝑞𝑣⃗ 2 𝑞𝑣⃗ 𝜔⃗
𝑞̇ 1 −𝑞𝑣⃗
=> ( 0̇ ) = ( ) 𝜔⃗
𝑞𝑣⃗ 2 𝑞0 𝐼 + 𝑆(𝑞𝑣⃗ )
NB : Nous définissions le produit vectoriel de deux vecteurs 𝑢⃗ = (𝑎, 𝑏, 𝑐)𝑇
et 𝑣 ⃗ = (𝑎′ , 𝑏′ , 𝑐′ )𝑇 comme suit :

𝑢⃗ × 𝑣 ⃗ = 𝑆(𝑢)⃗ 𝑣 ⃗
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.

𝜔𝑑 = −𝐴3 𝜖 ⃗ , 𝐴3 > 0 (3.49)

Etape 2 : Contrôleur de vitesse angulaire


Nous allons nous baser sur la deuxième équation de (3.44) pour contrô-
ler l’expression de la vitesse angulaire.
Rappelons cette equation :

𝜔̇ = 𝐽𝑄−1 (−𝜔⃗ × 𝐽𝑄 𝜔⃗ − 𝐽𝐻 𝛾 𝜔⃗ × 𝑘𝑖⃗ + 𝑈 ) (3.50)

Soit 𝑊𝑒 , l’erreur en vitesse angulaire.

𝜔𝑒 = 𝜔 − 𝜔𝑑
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 𝜔𝑒 − 𝑓)

Avec cette loi de commande, On Obtient

𝑉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 𝑒

Les constantes 𝐴1 , 𝐴2 , 𝐴3 , 𝐴4 doivent être choisies de sorte à améliorer


l’erreur globale du système et doivent être tous positives pour assurer la
convergence UAS du système.

3.4.7 Vitesses de rotation des moteurs


Sur la base de la loi de commande 𝛼𝑈 et de la force 𝐹𝑏 , nous allons
déterminer la formule nous permettant de déterminer la vitesse de rotation
des 4 moteurs.

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

On obtient des deux expressions de 𝐹 𝑏 et 𝑈 un système de quatre équa-


tions à quatre inconnues :
√ √ √ √
2 2 2 2
⎡−𝑏𝑙 𝑏𝑙 𝑏𝑙 −𝑏𝑙 ⎤ 𝑤 ̄ 2
⎢ √2 √2 2
√ √2 ⎥ ⎡ 1 2 ⎤ ⎡𝑈1 ⎤
⎢ 𝑏𝑙 2 𝑏𝑙 2 −𝑏𝑙 2 −𝑏𝑙 2 ⎥ ⎢𝑤2̄ 2 ⎥ = ⎢𝑈2 ⎥ (3.53)
⎢ 2 2 2 2 ⎥ ⎢𝑤3̄ ⎥ ⎢𝑈3 ⎥
⎢ −𝑑 𝑑 −𝑑 𝑑 ⎥ 𝑤̄ 2
⎣ 4 ⎦ ⎣ 𝐹𝑏 ⎦
⎣ 𝑏 𝑏 𝑏 𝑏 ⎦

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.

3.6 Détermination des moments d’inertie


Le moment d’inertie (tout comme la masse) réflète la résistance qu’op-
pose un corps à sa mise en mouvement, ici rotation (translation pour la
masse).

3.6.1 Moment d’inertie de l’ensemble hélice-moteur 𝐽𝐻


En choisissant de modéliser l’hélice par une barre rigide homogène, l’ex-
pression du moment d’inertie de l’hélice est donnée par :
1
𝐽𝑏𝑎𝑟𝑟𝑒 = 𝑚𝑏 𝑙 2
12
Avec 𝑚𝑏 la masse de la barre et 𝑙 sa longueur.
Et en choissant de modéliser le moteur par un cylindre plein, l’expression
de son moment d’inertie est donnée par :
1
𝐽𝑐𝑦𝑙𝑖𝑛𝑑𝑟𝑒 = 𝑚𝑐 𝑟𝑐2
2
Avec 𝑚𝑐 la masse du cylindre et 𝑟𝑐 son rayon.
Ainsi, le moment d’inertie de l’ensemble hélice-moteur peut être donné par :
1 1
𝐽𝐻 = 𝐽𝑏𝑎𝑟𝑟𝑒 + 𝐽𝑐𝑦𝑙𝑖𝑛𝑑𝑟𝑒 = 𝑚𝑏 𝑙2 + 𝑚𝑐 𝑟𝑐2 (3.55)
12 2

70
Ici,
⎧𝑚𝑏 = 200𝑔
{
{𝑚𝑐 = 200𝑔
⎨𝑙 = 13𝑐𝑚
{
{𝑟𝑐 = 4𝑐𝑚

On obtient donc

𝐽𝐻 = 1.6476 × 10−4

3.6.2 Moment d’inertie du quadricoptère 𝐽𝑄


Le moment d’intertie d’un solide indéformable est donné par
𝐽𝑋𝑋 −𝐽𝑋𝑌 −𝐽𝑋𝑍

𝐽𝑄 = ⎢−𝐽𝑌 𝑋 𝐽𝑌 𝑌 −𝐽𝑌 𝑍 ⎤

⎣−𝐽𝑍𝑋 −𝐽𝑍𝑌 𝐽𝑍𝑍 ⎦
La structure de notre quadricoptère étant symétrique :

𝐽𝑌 𝑋 = 𝐽𝑋𝑌 = 𝐽𝑍𝑌 = 𝐽𝑌 𝑍 = 𝐽𝑋𝑍 = 𝐽𝑍𝑋 = 0

La matrice 𝐽𝑄 devient donc :

𝐽𝑋𝑋 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

On répartit donc la masse du drone sur les quatre tiges. 𝑙 et 2𝑎 sont


respectivement la moitié de la longueur de la tige et la longueur de deux
extrémités de tige comme calculés en lors du calcul (2.6) des moments de
roulis et de tangage.
Par définition, le moment d’inertie d’un élément de masse 𝑑𝑚 sur 𝑀 d’une
tige de longueur 𝐿 peut être calculé par :
𝑀
𝐼 = ∫ 𝑟2 𝑑𝑚
0

Fig. 3.3 : Inertie tige de longueur L

𝑟 représente la distance du point à l’axe de rotation de la tige.

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 :

𝐼𝑥𝑥 = 0.0021 × 4 = 0.0084𝐾𝑔 𝑚2 (3.61)

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 :

𝐼𝑦𝑦 = 0.0084𝐾𝑔 𝑚2 (3.62)

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.0041 × 4 = 0.0164𝐾𝑔 𝑚2 (3.64)

Par suite, la matrice 𝐽𝑄 revient à :

0.0084 0 0
𝐽𝑄 = ⎡
⎢ 0 0.0084 0 ⎤⎥
⎣ 0 0 0.0164⎦

3.7 Calcul des coefficients de portance 𝑏 et de trainée 𝑑


des hélices
D’après (2.3)
𝑏 = 𝐶𝑝 𝜌𝐴(Ω𝑟)2
Pour la majorité des hélices disponibles sur le marché, on peut choisir
certains coefficients comme décrit ici [10] :
⎧𝐴 = 5
{
{ 273.15𝑃𝑎
{𝜌 = 𝜌
101325(273.15 + 𝑇𝑡 ) 0

{𝑟 = 0.13𝑚
{
{𝐶 = 1.2229 × 10−04
⎩ 𝑝
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érique en Pascal
𝑇𝑡 la température ambiante en °C.
On se propose pour notre étude une température ambiante semblable à
celle au Nord du Benin en Avril qui est de l’ordre de 33°C en moyenne.
Quant à la Pression atmostérique, on choisit une pression de 1𝑎𝑡𝑚 =

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

3.8 Schéma complet de simulation

75
76

Fig. 3.4 : Schéma de simulation


Sur ce schéma, la consigne représente la manipulation de la télécom-
mande qui envoie l’altitude désirée et la position angulaire souhaitée à
notre contrôleur Backstepping.
Le contrôleur prend ces positions désirées, et les positions précédentes
obtenues avec les vitesses linéaires et angulaires pour fournir les lois de
commandes 𝐹 et 𝑈 .
Le moteur utilise donc 𝐹 et 𝑈 avec le système (3.54) pour donner les vi-
tesses de rotation des 4 moteurs qui sont envoyées au drône qui s’actionne
pour donner les accélérations linéaire et angulaire.
Ces accélérations peuvent être intégrées pour obtenir la vitesse et deux
fois pour obtenir la position.
En pratique, un accéléromètre nous permettrait de lire les accélérations et
un gyroscope, les positions angulaires.

3.9 Les blocs principaux sous Simulink


3.9.1 Le contrôleur
Sous simulink, nous avons représenté le bloc du contrôleur par cette
grosse boîte :

Fig. 3.5 : Bloc du contrôleur sous SIMULINK

A l’intérieur de ce bloc, nous avons deux grosses boites principales :


• Le bloc du contrôleur linéaire
• Le bloc du contrôleur d’orientation

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)

Fig. 3.7 : Contrôleur linéaire sous SIMULINK

Le contrôleur de position prend en paramètre la position désirée et la


position obtenue et renvoie la vitesse désirée (le contrôleur virtuel de vi-
tesse 𝛼𝑣 ) et l’erreur 𝑒1 .
Ces deux sorties vont ensuite avec la vitesse obtenue dans le contrôleur
de vitesse pour donner (3.41) (3.43) et (3.42).

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

Le contrôleur d’orienation est constitué de deux blocs :


• Le bloc de contrôle de position angulaire : qui prend le quaternion
d’orientation associé à la position angulaire désirée et le quaternion
d’orientation associé à la position angulaire obtenue.
Il retourne les coordonnées de l’erreur en quaternion (3.45) et le contrô-
leur virtuel de vitesse angulaire 𝑊𝑑 (3.49).
• Le bloc de la loi de commande U : Il se sert des deux dernières sorties
et de la vitesse angulaire obtenue pour donner la loi de commande U
grâce à (3.51).

3.9.2 Le moteur

Fig. 3.9 : Bloc 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

Fig. 3.10 : Bloc dynamique du quadricoptère

Le modèle multiphysique du drone est l’implémentation du système d’équa-


tions multiphysique permettant de donner les accélérations linéaires et an-
gulaires du système.

3.10 (Résumé du) Schéma complet de simulation sous


simulink

80
81

Fig. 3.11 : Schéma de simulation sous Simulink


Sur 3.11, nous avons donc l’implémentation de celui présenté en 3.4
avec cette fois-ci des scope (Oscilloscope) pour visualiser et d’autres outils
de simulation.

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

Simulation, Résultats et Discussion

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.

4.1 Mise en place de la consigne de simulation


Sachant que notre mission principale est de prendre des images de
feuilles de coton, nous allons modéliser le champ. Voici comment se pré-
sente un champ de coton

83
Fig. 4.1 : Champ de coton

Fig. 4.2 : Alignement dans un champ de coton

De ces observations, on se propose de modéliser le champs par une


surface rectangulaire de longueur 𝐿 et de largeur 𝑙 telle montrée sur la
figure ci-dessous.

84
Fig. 4.3 : Rectangle maillé

Pour la consigne de navigation, nous allons choisir un parcours centré


sur les lignes intermédiaires.
C’est-à-dire, en supposant que l’écart entre deux lignes de culture est de
Δ𝑦, le drone va se positionner sur la ligne qui se trouve entre la ligne d’or-
donnée 𝑖 et la ligne 𝑖+2Δ𝑦. Le parcours centré sur les lignes intermédiaires.
Arrivé au bout de l’abscisse, le drone effectuera un saut de 2Δ𝑦 sur l’axe
des ordonnées pour reparcourir une nouvelle ligne.. ainsi de suite.
En supposant qu’on souhaite effectuer une ligne en 𝑡𝑙 secondes et que le
drone prend 1s pour prendre une photo, le pas de saut sur l’axe des abs-
𝐿
cisses sera de Δ𝑥 = .
𝑡𝑙
Voici donc l’algorithme de parcours qu’on propose.

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)

Cet algorithme cherche donc à fournir au contrôleur du quadricoptère


les positions désirées nécessaires pour parcourir tout le champ.
Il sera donc exécuté à chaque time frame. Voici notre implémentation SI-
MULINK de cet algorithme

86
Fig. 4.4 : Bloc consigne sous Simulink

Les positions envoyées par cette consigne sont sous la forme de (𝑥, 𝑦, 𝑧).

4.2 La méthode xyz2quat


Pour effectuer la simulation, on aura besoin d’une méthode permettant
d’effectuer la conversion de n’importe quel point de coordonnées (𝑥, 𝑦, 𝑧)
en un produit de deux quaternions dont un sera de la forme 𝑞 = 0 + 0𝑖 +
0𝑗 + 𝑧 ′ 𝑘.
Il est important de rappeler (Problématique de contrôle) que le mode de
commande qu’on a envisagé depuis le début est de procéder comme dans
une situation réelle : c’est à dire, multiplier le quaternion d’orientation par
l’altitude pour avoir la position finale.
Le quaternion d’orientation définissant les angles de rotation de roulis, tan-
gage et de lacet, deux cas sont donc envisageables :
• L’usage des angles envoyés directement par la radiocommande de
contrôle utilisée (le joystick droit). Ces angles seront directement conver-
tis en un quaternion et pourront être utilisés par le contrôleur.
• L’usage des positions en coordonnées cartésiennes. Dans ce cas, la
position désirée (𝑥, 𝑦, 𝑧) doit être convertie en un quaternion qui sera
utilisé par le contrôleur.
Avec le premier cas, aucun problème ne se pose. La conversion est facile-

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

(𝑥, 𝑦, 𝑧)𝑇 soit :


𝑎 0 𝑎 0

⎜ 𝑏⎟⎞ ⎛
⎜ 0⎟ ⎞ ⎛
⎜ ⎞
−𝑏 ⎟ ⎛
⎜ 𝑥⎞⎟

⎜ ⎟ ⎜ ⎟ ⎜ ⎟ =⎜ ⎟
⎜ (4.1)
⎜ 𝑐 ⎟ ⎜ 0 ⎟ ⎜ −𝑐 ⎟ ⎜𝑦 ⎟
⎟ ⎜ ⎟ ⎜ ⎟ ⎟

⎝𝑑⎠ ⎝𝑧 ⎠ ⎝−𝑑⎠ ⎝ 𝑧 ⎠

Sachant que ||𝑞|| = 𝑎2 + 𝑏2 + 𝑐2 + 𝑑2 = 1. Nous allons scinder le pro-
blème en 3 :
• le cas où 𝑥 = 0 et 𝑦 ≠ 0,
• le cas où 𝑦 = 0 et 𝑥 ≠ 0,
• le cas où 𝑥 ≠ 0 et 𝑥 ≠ 0,
Dans tous les cas, 𝑧′ = 𝑠𝑞𝑟𝑡(𝑥2 + 𝑦2 + 𝑧 2 ) car 𝑞 est un quaternion unitaire
donc ||𝑞|| = 1 et ||𝑞 −1 || = 1 .

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

Fig. 4.5 : Simulink consigne + xyz2quat

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

Fig. 4.7 : Simulation de 120s 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

4.4 Optimisation des coefficients 𝐴1, 𝐴2, 𝐴3, 𝐴4


4.4.1 Description de la trajectoire test
Voici l’algorithme de la trajectoire test sur les 40 secondes. Dans cette
partie, nous allons directement envoyer une consigne sous forme de rota-
tion et d’altitude au sytème.
Algorithm 2 Algorithme de la trajectoire test de 40s
[hbt !]
Require : 𝑡
Θ ← [0, 0, 0]
𝑧 ← [0, 0, 0]
if (𝑡 ≥ 0 & 𝑡 < 2 ) then
𝑝𝑜𝑠 ← [0, 0, 0]
Θ𝑥 ← [0, 0, 0]
else if (𝑡 ≥ 2 & 𝑡 < 15) then
𝑝𝑜𝑠 ← [0, 0, 2]
Θ𝑥 ← [0, 𝑑𝑒𝑔2𝑟𝑎𝑑(10), 0]
else if (𝑡 ≥ 15 & 𝑡 < 20) then
𝑝𝑜𝑠 ← [0, 0, 3]
Θ𝑥 ← [0, 𝑑𝑒𝑔2𝑟𝑎𝑑(20), 0]
else if (𝑡 ≥ 20 & 𝑡 < 25) then
𝑝𝑜𝑠 ← [0, 0, 1.5]
Θ𝑥 ← [0, 0, 0]
else if (𝑡 ≥ 25 & 𝑡 < 30) then
𝑝𝑜𝑠 ← [0, 0, 5]
Θ𝑥 ← [𝑑𝑒𝑔2𝑟𝑎𝑑(10), 0, 0]
else if (𝑡 ≥ 30 & 𝑡 < 35) then
𝑝𝑜𝑠 ← [0, 0, 2]
Θ𝑥 ← [𝑑𝑒𝑔2𝑟𝑎𝑑(20), 0, 0]
else if (𝑡 ≥ 35 & 𝑡 ≤ 40) then
𝑝𝑜𝑠 ← [0, 0, 0]
Θ𝑥 ← [0, 0, 0]
end if

Ce qui devrait ressembler à l’image ci-dessous.


• pos_d :3 (Le cyan) correspond à l’altitude désirée

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

Fig. 4.8 : Trajectoire test de 40s


4.4.2 Simulation pour différentes valeurs des coefficients 𝐴1 , 𝐴2
Rappelons que les coefficents 𝐴1 et 𝐴2 contrôlent l’altitude du quadrico-
ptère.

𝐴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

Fig. 4.9 : Simulation A1<0 || A2<0 de l’altitude test ajusté à l’échelle

97
Fig. 4.10 : Simulation A1<0 || A2<0 de l’altitude test non ajusté à l’échelle

On constate une divergence de la solution obtenue qui n’est pas en confor-


mité avec l’altitude désirée. Une évaluation de la RMSE à ce niveau nous
donne une erreur de
𝑒𝑟𝑟 = 2, 6282.1015
Ce résultat est normal et confirme la contrainte sur les coefficients 𝐴1 , 𝐴2 , 𝐴3 , 𝐴4
sur le fait qu’ils doivent être positifs selon la méthode Lyapunov.

𝐴1 =5 , 𝐴2 =5
Résultat de la simulation pour 𝐴1 =5 et 𝐴2 =5

Fig. 4.11 : Simulation A1=5 et A2=5 de l’altitude test

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

Fig. 4.12 : Simulation A1=15 et A2=15 de l’altitude test

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

Ici, on constate que le résultat ne diffère pas trop du précédent.


Une évaluation de la RMSE à ce niveau nous donne une erreur de

𝑒𝑟𝑟 = 0, 7718

On constate donc globalement que plus 𝐴1 et 𝐴2 augmentent, plus l’al-


titude obtenue s’améliore.
Pour 𝐴1 =30 , 𝐴2 =30, on une RMSE de 0, 65,
Pour 𝐴1 =50 , 𝐴2 =50, on une RMSE de 0, 5127,
Pour 𝐴1 =100 , 𝐴2 =100, on une RMSE de 0, 3678,

Fig. 4.14 : Simulation A1=100 et A2=100 de l’altitude test

100
Fig. 4.15 : Simulation A1=100 et A2=100 de l’altitude test à l’oscilloscope

Pour 𝐴1 =200 , 𝐴2 =200, on une RMSE de 0, 2822,


L’inconvénient avec les valeurs élevées est que le système prend plus de
temps d’exécution.
Pour un bon compromis au niveau de la performance du système, on se
propose donc d’évoluer avec 𝐴1 =75 et 𝐴2 =75.

4.4.3 Simulation pour différentes valeurs des coefficients 𝐴3 , 𝐴4


Les coefficents 𝐴3 et 𝐴4 contrôlent l’attitude du quadricoptère.

𝐴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

On constate une divergence de la solution obtenue qui n’est pas en confor-


mité avec l’orientation désirée. Une évaluation de la RMSE à ce niveau
nous donne une erreur infinie. Ceci confirme encore une fois la théorie sur

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

Fig. 4.18 : Simulation A3=1 et A4=1 de l’attitude test ajusté à l’échelle

Ici, on constate que la trajectoire obtenue commence à suivre un peu la


trajectoire désirée avec quelques imperfections sur les zones de constances
et de points anguleux.
Une évaluation de la RMSE à ce niveau nous donne une erreur de
𝑒𝑟𝑟1 = 0, 0971 pour le roulis
𝑒𝑟𝑟2 = 0, 1017 pour le tangage

𝐴3 =15 , 𝐴4 =15
Résultat de la simulation pour 𝐴3 =15 et 𝐴4 =15

Fig. 4.19 : Simulation A3=15 et A4=15 de l’attitude test ajusté à l’échelle

Ici, on constate que la trajectoire obtenue ne présente d’imperfections


que sur les zones de points anguleux.
Une évaluation de la RMSE à ce niveau nous donne une erreur de

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).

Fig. 4.20 : Simulation A3=15 et A4=15 de l’attitude test à l’oscilloscope

𝐴3 =30 , 𝐴4 =30
Résultat de la simulation pour 𝐴3 =30 et 𝐴4 =30

Fig. 4.21 : Simulation A3=30 et A4=30 de l’attitude test ajusté à l’échelle

Ici, on constate que la trajectoire obtenue ne présente d’imperfections


que sur les zones de points anguleux tout comme pour le cas précédent.
Une évaluation de la RMSE à ce niveau nous donne une erreur de
𝑒𝑟𝑟1 = 0, 0414 pour le roulis
𝑒𝑟𝑟2 = 0, 0430 pour le tangage
Pour 𝐴3 =50 , 𝐴4 =50, on une RMSE de 0, 0343 pour le roulis et 0.341 pour
le tangage,
Pour 𝐴3 =100 , 𝐴4 =100, on une RMSE de 0, 0280 pour le roulis et 0, 0251
pour le tangage,
Pour 𝐴3 =200 , 𝐴4 =200, on une RMSE de 0, 0280 pour le roulis et 0, 0251

104
pour le tangage,

Fig. 4.22 : Simulation A3=200 || A4=200 de l’attitude test

Fig. 4.23 : Simulation A3=200 || A4=200 de l’attitude test à l’oscilloscope

Donc, plus les valeurs de A3 et A4 augmentent, plus notre contrôleur fait


un bon travail. Encore une fois, le problème avec les valeurs élevées de
A3 et A4, c’est le temps d’éxécution qui prend un coup.
On se propose donc de choisir un bon compromis de A3= 75 et A4=75.

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

Dans le cas où 𝐴1 =0, 𝐴2 =0, 𝐴3 =0, 𝐴4 =0, on oberserve une oscillation de


la valeur obtenue autour de la valeur désirée dans les trois cas. Ceci in-
dique correctement la réaction récursive du contrôleur qui tente à trouver
une solution stable mais le fait que 𝐴1 =0, 𝐴2 =0, 𝐴3 =0, 𝐴4 =0, ne lui permet
pas de se stabiliser et de converger (convergence UAS) correctement vers
les valeurs désirées.

4.4.5 Table des erreurs


Voici un résumé des erreurs obtenues :

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

4.4.6 Pertubation de l’altitude 𝑧


Nous allons nous baser sur les constantes 𝐴1 =75, 𝐴2 =75, 𝐴3 =75, 𝐴4 =75
pour pertuber un peu l’altitude du quadricoptère pour voir le comportement
du contrôleur.
Nous allons nous servir du bloc delay et envoyer un signal d’altitude -5m
à chaque seconde à l’altitude obtenue pour voir le temps de correction et
en même temps le comportement du système.

Fig. 4.25 : Bloc delay d’une seconde qui ajoute une pertubation d’altitude -5m

Voici les résultats obtenus :

Fig. 4.26 : Evolution de l’altitude pertubée en absence du contrôleur

107
Fig. 4.27 : Evolution de l’altitude pertubée en présence du contrôleur

En absence du contrôleur, l’altitude subit à chaque seconde une aug-


mentation de -5m. Par contre, en présence du contrôleur, on constate donc
qu’au début, l’altitude obtenue a subi la pertubation de -5m et au bout d’une
seconde, le contrôleur a réussi à redresser et corriger pour résister à la
pertubation.

4.5 Simulation de la trajectoire consigne


Nous revenons maintenant sur notre trajectoire consigne de parcours du
champ de coton de la figure 4.28.

Fig. 4.28 : Simulation de 120s de la trajectoire consigne

En utilisant les constantes 𝐴1 , 𝐴2 , 𝐴3 , 𝐴4 retenues dans la section pré-


cédente, nous allons simuler le mouvement de notre quadricoptère à la
consigne autonome de parcours de champ de coton.

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

On observe donc une adaptation parfaite de l’altitude désirée à l’altitude


obtenue avec une erreur seulement de err = 0.2814m soit environ 28.14𝑐𝑚
d’erreur en altitude sur la trajectoire de 100𝑚2 . Note : 1ℎ𝑎 = 100m x 100m

4.5.2 Evaluation du roulis

Fig. 4.30 : Evolution de l’angle de roulis désiré et l’angle de roulis obtenu sur la trajectoire consigne

On observe également une adaptation parfaite du roulis avec une erreur


seulement de err = 0.0385 rad.

4.5.3 Evaluation du tangage

Fig. 4.31 : Evolution de l’angle de tangage désiré et l’angle de tangage obtenu sur la trajectoire consigne

On observe également une adaptation parfaite du tangage avec une


erreur seulement de err = 0.0709 rad.

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

L’erreur en lacet obtenue est de err = 0.0405 rad.

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.

Fig. 4.33 : Vue en 3D du mouvement du drone

110
Fig. 4.34 : Vue de dessus du mouvement du drone

En 120s, le drone parcourt donc la trajectoire définie et fait des prises


de photo à chaque point comme défini dans l’algorithme de la première
section (Mise en place de la consigne de simulation).

4.6 Vitesse de rotation des moteurs


Nous allons faire un petit aperçu sur la vitesse de rotation des moteurs :

111
Fig. 4.35 : Aperçu de la vitesse de rotation des moteurs

On peut remarquer ici, la vitesse évolue comme cela se doit. De plus,


notifions que la vitesse de rotation maximale est d’environ 23000rad/s. Ce
qui fait environ 3660tour/s.

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.

Cependant, notre travail présente quelques limites comme la prise en


compte de la limite de rotation des moteurs afin d’évaluer l’autonomie.

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

.1 Les drones aéronefs


Il existe plusieurs types de drones dont la classification se fait généra-
lement par l’altitude maximale, l’endurance et même la taille. On distingue
principalement trois classes (familles) :
• Les drones à voilure fixe : les drones de cette famille sont constitués
d’une paire d’ailes orientée de sorte à assurer la sustentation et la pé-
nétration dans l’air de la machine, tel un avion. Ces drones sont géné-
ralement utilisés par les militaires pour accomplir différentes missions
comme la surveillance aérienne, la prospection ou même l’attaque ci-
blée du territoire ennemi.

Fig. 36 : Drone à voilure fixe

• Les drones à voilure tournante : Encore appelée hélicos ou multi ro-


tors, ces drones sont constitués d’un ou plusieurs rotors ; ils sont ca-
pables de faire un décollage (et un atterrissage) vertical et un vol sta-
tionnaire. Cette capacité fait d’eux des drones populaires et ils sont
utilisés dans plusieurs secteurs d’activité aujourd’hui tels que l’image-
rie, la livraison à domicile, l’agriculture, etc.

118
Fig. 37 : Drone à voilure tournante : 4 hélices

Fig. 38 : Drone à voilure tournante : 8 hélices

Fig. 39 : Drone à voilure tournante : taxi drone

• 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.

Fig. 40 : Drone à voilure tournante

.2 Logiciels et outils utilisés


Au cours de ce travail, le logiciel MATLAB et sa plateforme Simulink et
le logiciel SOLIDWORKS ont été utilisé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.

Fig. 41 : Environnement MATLAB

Fig. 42 : Logo MATLAB

.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é :

Fig. 43 : Drone conçu avec Solidworks (1)

Fig. 44 : Drone conçu avec Solidworks (2)

121

Vous aimerez peut-être aussi