RaydiumWikiNi

PilotageSerie

PagePrincipale :: DerniersChangements :: ParametresUtilisateur :: Vous êtes ec2-3-137-218-176.us-east-2.compute.amazonaws.com

Pilotage par liaison série

Retour

Objectifs :


Le but de cette partie était d’asservir le drone de tel sorte qu’il puisse décoller (en passant d’une position verticale à une position quasi horizontale) et atteindre un point en patrouillant autour. Ce point est entré par l’intermédiaire du clavier situé sur la maquette.

1)Asservissement hauteur roulis tangage


Phase décollage

Pour cette phase nous avons simplement orienté l’empennage arrière de tel sorte que le drone puisse passer de la verticale à l’horizontale. De plus nous avons démarré le moteur de l’hélice avant. ( voir code)



Phase asservissement hauteur, tangage

Après avoir réussi le décollage du drone, nous avons décidé de commencer l’asservissement en hauteur et par la même, le tangage. Pour cela nous avons effectué une proportionnelle dans un premier temps puis une dérivée.

Formule :
hauteur=75+(((10)*(z- commande_hauteur)) +(z-anc_z);

hauteur est la variable qui est envoyée par l’intermédiaire de la liaison série au simulateur (il varie de 0 à 160).

commande_hauteur est la hauteur que l’on souhaite obtenir.

z et anc_z représentent la position du drone en z et l’ancienne position.
La valeur 75 permet d’incliner l’avion pour qu’il soit asservi mais légèrement incliné.

Les coefficients (1 et 10) ont été trouvés à l’aide de tests successifs par l’intermédiaire du clavier.

Phase asservissement roulis

Cette phase nous a permis d’asservir le drone pour que celui-ci, lorsqu'aucune position n’est désirée, puisse aller droit.



Problème :

Nous avons rencontré des problèmes concernant la gestion de la liaison série. En effet celle-ci prenait beaucoup de temps, ce qui a eu pour conséquence un effet d’oscillation du drone. Malgré un coefficient le plus petit possible sur l’asservissement proportionnel, le drone oscillait encore. C’est pourquoi il a fallu trouver une solution.

Solution :

Pour corriger cela, nous avons modifié le simulateur: il a fallu remettre à 80 les angles envoyés sur les ailes à chaque fois que l’on envoyait une commande par l’intermédiaire du microcontrôleur.





Finalisation asservissement hauteur, tangage

Apres avoir terminé l’asservissement du roulis, nous avons décidé de modifier l’asservissement en hauteur car celui-ci n’était pas très performant. En effet, il ne prenait en compte que la hauteur du drone, et non l’angle entre le vecteur direction du drone et l’ordonnée au repère. Pour corriger cela, nous avons ajouté la gestion d’une proportionnelle sur l’angle. Nous avons simplement rajouté une ligne de code :

hauteur=75+(((10)*(z- commande_hauteur)) +(z-anc_z) +(30)*(angley-30))/100;

La valeur de -30 est l’angle entre le vecteur direction du drone et l’ordonnée au repère que l’on souhaite obtenir pour que le drone soit incliné vers le haut.

Conclusion :

Après ces quatre étapes, le drone était capable de décoller à une hauteur désirée. De plus il pouvait être piloté de façon semi automatique car seulement en x et y. Le but fixé était donc partiellement atteint. Pour l’atteindre il fallait asservir la position en x et y.

2)Asservissement position


Problème :

On souhaite se rendre à un point situér sur la carte repère par deux coordonnées. Cependant le simulateur n’accepte que des angles.

Solution :

Calculer l’angle entre le vecteur direction du drone et le vecteur direction entre les coordonnées du drone et celle du point souhaité. Asservir à l’aide de cet angle, la position en utilisant l’empennage des ailes.



1ère solution retenue :

Nous avons retenu le calcul par les scalaires. Cependant, nous nous sommes rapidement rendu compte que le calcul par scalaire ne permettait pas la gestion des angles négatifs.

L’angle que l’on devrait obtenir



L’angle obtenu avec les scalaires



2ème solution :

Après avoir constaté ce problème, nous avons décidé d’utiliser le calcul des angles par rapport à un repère trigonométrique. En effet, en utilisant ces calculs, nous avons seulement eu à prendre en compte le sinus qui nous a donné le sens de l’angle et qui nous a permis d’obtenir des angles orientés.




Pour finir, il suffit de calculer l’angle permettant l’asservissement, à savoir la différence entre l’angle et l’angle_d. D’où :

Il a fallu cependant borner cet angle pour qu’il fasse [-180 ; 180].

Conclusion :

Une fois tous les asservissements réalisés, il est possible d’indiquer au drone, par l’intermédiaire du clavier, deux positions au drone, et celui-ci se rend de l’un à l’autre. Il est aussi capable de monter jusqu’à une altitude désirée. Il est aussi capable de se rendre à un point donné et de tourner autour, tant qu’un autre point n’est pas entré au clavier.

Futur réalisation :

Pour terminer l’asservissement du drone, il pourra être fait un asservissement permettant au drone de descendre puisque que le drone ne peut descendre. En effet, il ne peut que monter ou se stabiliser. De plus l’asservissement actuel ne prend pas en compte la nouvelle configuration mise en œuvre par la partie équation physique et rendu physique. En effet, par manque de temps, l’asservissement a été réalisé sur une première version du drone qui a été modifié récemment suite à un problème de réalisme.
Retour