• Aucun résultat trouvé

Simulation du modèle non linéaire de la dynamique du quadrotor

CHAPITRE 7 VALIDATION ET TEST DU CONTRÔLEUR LINÉAIRE

7.2 Simulation du modèle non linéaire de la dynamique du quadrotor

La structure de Simulation à haut niveau est représentée par la figure 7.1. Les principaux signaux qui relient les blocs sont les suivants:

• x_tra, y_tra, z_tra,yaw_tra: ces quatre signaux représentent le signal de référence pour la trajectoire desirée.

• omega(cmd): Ce signal est un vecteur de quatre composants représentant les commandes de vitesses angulaires des hélices à l’entrée de chaque moteur du quadrotor.

• omega (rad/s): Ce signal est un vecteur de quatre composants représentant les vitesses angulaires des hélices à la sortie de chaque moteur du quadrotor.

• eta: Ce signal est un vecteur de trois composants représentant les positions linéaires du quadrotor exprimées dans le référentiel inertiel.

• dot_eta: Ce signal est un vecteur de trois composants représentant les vitesses linéaires du quadrotor exprimées dans le référentiel inertiel.

• teta : Ce signal est un vecteur de trois composants représentant les positions angulaires du roulis, du tangage et de lacet du quadrotor exprimées dans le référentiel inertiel.

• dot_teta: Ce signal est un vecteur de trois composants représentant les vitesses angulaires du quadrotor exprimées dans le référentiel inertiel.

• X[I]: Ce signal est un vecteur de 6 composants [ ] représentant les positions linéaires et angulaire du quadrotor exprimées dans le référentiel inertiel.

• X[b]: Ce signal est un vecteur de 6 composants[ ] représentant les positions linéaires et angulaire du quadrotor exprimées dans le référentiel ℱ du quadrotor.

• U: c’est le signal de commande, qui contient les valeurs instantanées des variables de

contrôle .

Avant de commencer toute simulation, plusieurs scripts d'initialisation sont exécutés.

Il s’agit d’init.m, init_dynamics_constant.m, init_control_constant.m et init_initial _condition.m dans lesquels on définit toutes les variables globales et les constantes utilisées par les blocs de modèle.

Par la suite on passe à l’initialisation du gain optimal grâce au script gain.m, dans lequel on introduit le modèle linéarisé développé dans le chapitre 5.

La figure 7.3 présente le modèle Simulink développé pour tester le régulateur linéaire quadratique. La structure est simple : le bloc de la génération de la trajectoire délivre un vecteur de quatre composants [ ] . Ce vecteur représente le signal de référence qu’on veut poursuivre. Ce vecteur est concaténé aux vecteurs de positions linéaires et angulaires ainsi qu’aux vecteurs de vitesse linéaire et angulaire délivrés par les capteurs. On applique sur ce dernier le régulateur linéaire quadratique pour passer ensuite dans le bloc de la dynamique du moteur et celui de la dynamique du quadrotor.

7.2.1 Le bloc dynamique

Le modèle Simulink du bloc dynamique est illustré à la figure 7.2 Le bloc principal est dynamic_system, qui contient le code MATLAB qui met en œuvre les équations dynamiques (3.36). Les états initiaux des équations sont intégrés à partir des conditions initiales spécifiées comme paramètres dans le script d'initialisation. On sélectionne les composants de l'état et son intégrale pour générer le signal.

Pour la simulation du bloc dynamique, on a eu recours au bloc S-function, car sa mise en forme permet d’introduire l’équation de l’état dérivatif et de l’intégrer en se basant sur les conditions initiales spécifiées comme paramètres dans le script d'initialisation.

7.2.2 Bloc du contrôleur lineaire quadratique

Le modèle Simulink du bloc de commande est représenté dans la figure 7.3. Ce bloc de contrôle contient le code MATLAB qui implémente la logique de contrôleur LQR. Le bloc U_2_omega convertit les sorties du contrôleur en vitesses de l'hélice correspondante pour être transmis au bloc de moteur.

Figure 7.3 Modèle Simulink du bloc de contrôle

7.2.3 Bloc moteur BLDC

Ce bloc traduit l’action de quatre moteurs de même type. Le modèle Simulink du bloc est illustré à la figure 7.4. Ce bloc de moteur admet des valeurs de sortie des vitesses angulaires de rotor correspondant à celles attendues par le dispositif de commande. En d'autres termes, si le signal d'entrée est réglé à une valeur qui devrait correspondre à l'état planant (la poussée exacte pour compenser la gravité), la sortie oméga réelle produite par le bloc converge vers l’état désiré, de sorte que le quadrotor simulé reste en position d’équilibre.

Figure 7.4 Modèle Simulink du bloc moteur BLDC

7.2.4 Bloc des capteurs

L’objectif de la simulation est de traduire le plus vraisemblablement la réalité du comportement du quadrotor. Ainsi, le modèle de mesure se base sur les capteurs dont on dispose dans la réalité. En effet, chaque quadrotor est composé d'un ensemble de capteurs qui fournissent les informations nécessaires à la commande des systèmes de navigation et d'attitude. Cet ensemble de capteurs est généralement appelé IMU (unité de mesure inertielle). L’IMU d'un quadrotor contient les capteurs [1] :

• le gyroscope : permet de mesurer les vitesses angulaires autour des trois axes;

• le magnétomètre : mesure l’intensité et la direction d’un champ magnétique. Si le vecteur de champ magnétique terrestre est connu, la sortie du capteur peut être utilisée pour estimer l’attitude du quadrotor;

• le baromètre : on l’utilise comme altimètre, de sorte que l’instrument a besoin de connaître la valeur de la pression au niveau du sol (ou d’une autre altitude de référence). Un calibrage permanent n’est pas possible, car la pression au sol change avec les conditions météorologiques;

• l’accéléromètre : mesure une quantité appelée accélération propre le long des trois axes. L’accélération propre est la somme de l’accélération linéaire (dérivé de la vitesse linéaire) et une pseudo-accélération constante dirigée vers le haut par rapport au châssis du quadrotor qui a la même grandeur que le vecteur de gravité g2[53].

Pour la suite de la simulation, on a eu recours à une version plus simplifiée des capteurs donnant les positions/vitesses linéaires et angulaire exprimées dans le référentiel inertiel.

Documents relatifs