Décollage d'un avion sous Matlab¶
Dans ce TP, vous allez tout d'abord lancer une simulation du décollage d'un avion déjà réalisée sous Matlab. Vous allez ensuite étudier et comprendre le système d'équations à résoudre pour calculer les coordonnées de l'avion, et remplacer le bloc de contrôle (compliqué !) par le votre qui implémentera les équations précédantes. Ensuite, on complètera la simulation par des asservissements permettant de réagir automatiquement à des perturbations extérieures.
Démarrage de la simulation initiale¶
Lancez Matlab, et téléchargez les fichiers vrtkoff.slx et constants.m.
Sous Matlab,
- chargez le fichier vrtkoff.slx
- Lancez la simulation (run).
- Une erreur est reportée.
- double click sur "aerospace" not found
- selectionner "Design and Validate Gain-schedule Controler for ..." (premier choix) puis ok
- relancez la simulation :
- Error Evaluating 'gain'
- cliquer sur fix, choisir le fichier constants.m
- relancez la simulation :
- ca devrait fonctionner.
Explorer le projet et notamment le bloc de controle permettant de calculer les coordonnées de l'avion. Celui ci devrait vous sembler bien compliquer ! Vous allez maintenant étudier le systèmes d'équations à résoudre afin de remplacer cette partie par votre propre bloc de controle.
Équations de la dynamique de l'aéronef¶
On considérera ici l'avion comme un point matériel de masse \(m = 1000 Kg\).
Juste après le décollage l’avion est soumis à son poids selon la verticale, à sa poussée \(F_x=3000N\) suivant l’axe \(O_x\) dirigé selon sa vitesse, ainsi que sa trainée et à sa force de portance suivant l’axe \(O_z\) perpendiculaire à \(O_x\). On désigne ici \(\theta\) (Théta), l’angle de l’avion (axe \(O_x\)) par rapport au sol (angle d’assiette). On admettra que pour le décollage la force de portance verticale est liée à la poussée résultante : Poussée – Trainée.
Le vecteur vitesse est nommé \(\overrightarrow{V}\) et le vecteur accélération \(\overrightarrow{\Gamma}\) (Gamma).
On peut écrire les deux équations de la dynamique découlant du principe fondamental de la mécanique pour un mouvement uniformément accéléré :
- La somme des forces est égale à \(m\) fois l'accélération :
\(\sum \overrightarrow{F} = m . \overrightarrow{\Gamma}\)
- l'accélération est la dérivée de la vitesse linéaire plus le produit vectoriel de la vitesse angulaire et de la vitesse :
\(\overrightarrow{\Gamma} = \frac{d\overrightarrow{V}}{dt}+\overrightarrow{\Omega} \wedge \overrightarrow{V}\)
On projettera les composantes sur les axes \(O_x\) et \(O_z\) pour obtenir les coordonnées de l'avion.
- La somme des couples autour de l'axe \(\overrightarrow{j}\) (rotation perpendiculaire à l'axe \(O_y\)) est égale au produit scalaire de \(\overrightarrow{j}\) et du moment d'inertie (\(J\)) multiplié par la dérivée seconde de \(\theta\) :
\(\sum \overrightarrow{C} = J.\theta''. \overrightarrow{j}\)
soit ici \(M = J.\theta''\).
Cette équation nous permettra de retrouver l'angle de l'avion.
Compréhension des équations¶
On définit \(F_x\) (la poussée moins la trainée) et \(F_z\) (la portance) :
- \(F_x - m.g.sin \theta = m. \Gamma_x\) suivant l'axe \(O_x\)
- \(F_z - m.g.cos \theta = m. \Gamma_z\) suivant l'axe \(O_z\)
- \(M = j.\theta''\) suivant l'axe \(O_y\), perpendiculaire au plan de décollage défini par \((O_x, O_z)\)
Après décomposition de l'accélération sur les axes x et z, nous obtenons :
- \(\frac{F_x}{m}-g.sin \theta = u'+q.w\)
- \(\frac{F_z}{m}-g.cos \theta = w'+q.u\)
- \(M = J.\theta''\)
et donc :
- \(u = \int u' = \frac{u'}{s} = \frac{1}{s}(\frac{F_x}{m}-g.sin \theta -q.w)\)
- \(w = \int w' = \frac{w'}{s} = \frac{1}{s}(\frac{F_z}{m}-g.cos \theta -q.u)\)
- \(\theta' = \frac{1}{s}.\frac{M}{J}\) et donc \(\theta = \frac{1}{s^2}.\frac{M}{J}\)
À faire
Vous pouvez maintenant implémenter les 3 équations établies précédemment pour créer votre propre modèle de simulation de l’avion.
Info
La force de réaction de la piste sur l’avion empêche l’aéronef d’avoir une accélération et une vitesse négative suivant \(O_z\) juste avant le décollage quand il est encore au sol. Cette force n’est pas prise en compte dans le modèle donné en exemple et ne sera pas prise en compte dans un premier temps dans votre propre modèle.
Attention
Nécessaire introduction dans les équations sous Simulink de la réaction du sol (compensant le poids) avant le décollage. On pourra réaliser un sous schéma avec un masque permettant de rentrer directement des variables caractéristiques telle que mass (la masse de l’avion), \(g\) (l’accélération terrestre), \(J\) (le moment d’inertie de l’avion par rapport à l’axe \(O_Y\)) avec \(J = I_{yy} = 1000Kg.m^2\) On communiquera à l’avion un couple de \(20N.m\) à un temps donné pour impulser la rotation autour de l’axe \(O_y\) et autre couple de sens inverse un peu plus tard pour stopper cette rotation, à l’aide tableau look-up table comme indiqué ci-dessous
Visualisation
Pour visualiser les résultats, on se servira de la représentation graphique du programme VRTKOFF où l’attitude désigne l’angle d’assiette \(\theta\) : On pourra utiliser la fonction scope disponible dans la bibliothèque SINK de simulink pour observer les variables au cours du temps. Visualiser vos résultats suivant les axes x, z tant pour les vitesses u (suivant x) et w (suivant z) que pour les positions x et z en fonction du temps. On visualisera également \(theta(t)\).
Rétablissement d'un angle d'assiette nul après le décollage¶
On rétablira après le décollage l’assiette à \(\theta = 0\) afin de faire voler l’avion en vitesse de croisière en modifiant les couples de la fonction pilot input contrôlé par la variable temps avec les données suivantes sur les couples C suivant le temps :
Gestion automatique des turbulences verticales¶
Des turbulences entrainant des pertes d’altitude peuvent avoir lieu à cause du transitoire en vitesse verticale \(w\) lors d'une perturbation verticale (trou d’air) suivant \(O_z\).
À faire
Introduire une régulation sur \(w\) permettant de stabiliser verticalement l’avion après 35 secondes par exemple et la tester avec une perturbation après 40 secondes par exemple. On se servira pour cela du multiplexage temporel décrit ci-dessous (commutation à 30s) :
Gestion des turbulences horyzontales¶
Il s'agit de faire la même chose sur des turbulences entrainant des variations de vitesse horizontale \(u\) suivant \(O_x\). Par exemple due à une rafale de vent de face. Introduction d’une régulation sur \(u\) après 45 secondes par exemple.
À faire
Introduire une régulation sur \(u\) permettant de stabiliser horizontalement l’avion et la tester avec une perturbation après 50 secondes par exemple.
Annexe¶
voir le sujet original