IMA4 2016/2017 P47 : Différence entre versions

De Wiki d'activités IMA
(Avancement du Projet)
(Avancement du Projet)
Ligne 293 : Ligne 293 :
 
===Semaine 9===
 
===Semaine 9===
  
Nous réalisons cette semaine le modèle du Robotino pour les positions angulaires des roues  θ1, θ2 et θ3. Nous avons réutiliser le script réalisé pour le modèle précédent et le modifié car nous sommes plus dans un système SISO mais dans un système à multiples entrées à présent, c'est-à-dire MISO. Nous avons rencontré plusieurs difficultés
+
Nous réalisons cette semaine le modèle du Robotino pour les positions angulaires des roues  θ1, θ2 et θ3. Nous avons réutiliser le script réalisé pour le modèle précédent et le modifié car nous sommes plus dans un système SISO mais dans un système à multiples entrées à présent, c'est-à-dire MISO. Nous avons rencontré plusieurs difficultés lors de la modification de notre code. Nous avons demandé de l'aide à Mr. Pekpe et il nous a aiguillé sur les modifications à réalisé. Nous avons réussi à obtenir le modèle pour les positions angulaires des roues. Comme pour le précédent, nous l'avons validé hors-ligne.
  
 
== Fichiers Rendus ==
 
== Fichiers Rendus ==

Version du 6 mai 2017 à 14:57


Cahier des charges

Présentation générale du projet P47 :

Contexte et Description

La modélisation des systèmes est indispensable dans beaucoup de domaines: automobile, aéronautique, robotique, etc. Elle permet d'obtenir un modèle mathématique des systèmes pour réaliser leur commande, comprendre leur fonctionnement et surveiller leur bon fonctionnement afin de pouvoir apporter des actions correctives en temps réel lors d'un défaut ou d'une défaillance du systèmes. Cette modélisation peut être réaliser en se basant sur les lois physiques (boites blanches) ou en utilisant les données (boîtes noires).

Ce projet a pour but la modélisation d’un robot à trois roues omnidirectionnelles à savoir le Robotino. Cette modélisation se fera à partir des données recueillies sur ce robot. Ce projet se déroulera suivant les phases suivantes :

  • Estimer un modèle mathématique d'un robot mobile.
  • Déterminer le modèle à partir de mesures recueillies par le robot.
  • Valider le modèle avec d'autres mesures qui n'ont pas servi à déterminer celui-ci.
  • Tester en ligne le modèle.

La validation consistera à comparer le comportement du modèle à celui du robot en appliquant les mêmes commandes aux deux.

Objectif du projet

Obtenir le modèle mathématique du Robot pour avoir les positions en x et y avec un mouvement en lacet et les vitesses selon les axes

Choix techniques (matériel et logiciel)

  • Algorithme d'optimisation non linéaire.
  • Méthode d'identification des sous-espaces.
  • Matlab: Toolbox identification, outil direct.
  • Robotino
  • PC equipé d'une carte réseau afin d'utiliser le Robotino en Wifi ou avec un câble Ethernet.

Liste des tâches à effectuer

  • Prise en main du Robotino.
  • Prise en main de la Toolbox Identification de Matlab.
  • Prise en main de la Toolbox optimisation non linéaire de Matlab.
  • Identification boite noire d’un modèle linéaire du système :
    • étude des méthodes d’identification des sous-espaces ;
    • application à l’identification du robot.
  • Identification boîte noire d’un modèle non linéaire du robot :
    • étude des méthodes d’optimisation non linéaires ;
    • application à l’identification du robot.
  • Validation du modèle

Feuille d'heures

Tâche Prélude Heures S1 Heures S2 Heures S3 Heures S4 Heures S5 Heures S6 Heures S7 Heures S8 Heures S9 Heures S10 Heures supplémentaire Total
Définition cahier des charges 3 1 1 5
Rédaction Wiki 1 1 1 1 1
Recherche 6 5 7 2 1 1
Campagne d'acquisition 2 5 2
Simulation: Initiation à l'identification d'un modèle 4 6 10
Simulation: Identification du modèle linéaire d'un robot mobile 6 6 8
Identification du modèle non linéaire d'un robot mobile

Avancement du Projet

Semaine 1

  • Lundi 16-18h :

Nous étions en réunion en D304B avec Mr Pekpe, et nous avons discuter des points fondamentaux du travail qu'on doit effectuer, et qui consistent au début à aborder le Robotino d'une façon linéaire c'est-à-dire par rapport au repère lié à son centre, et dans une seconde étape essayer d'aborder le Robotino mais d'une façon non linéaire cette fois ci par projection sur un repère fixe.

Pour les deux points on a vu des documents avec Mr Pekpe qui expliquent comment les équations d'un Robotino à trois roues mobiles peuvent être déduites, et on a vu que pour ces modèles les équations se résument à des écritures matricielles en général de la forme :

                                                                       X' = AX + BU
                                                                       Y  = CX + DU

Où :

  • X la variable de l'état (vitesse théorique des moteurs)
  • U la variable de la commande (vitesse suivant les axes)
  • Y la mesure ou la sortie (vitesse réelle)


  • Mercredi 14-18h :

Nous avons fait la prise en main du logiciel Robotinoview, en commençant par regarder toutes les fonctions disponibles sur le logiciel, et en soulignant celles qui seront utiles pour notre projet.

Nous avons appris à réaliser une campagne d'acquisition des paramètres X, Y, U (déjà traité théoriquement ci-dessus) et la position P qui renvoie l'évolution de notre robot en déplacement sans frottements.Cette campagne a été réalisé avec le logiciel Robotinoview et ses données ont été traité sur Matlab.L’intérêt de Matlab est de stocker les données et de pouvoir les tracer pour bien interpréter les résultats en graphe.

Ensuite nous avons fait des recherches sur les documents qui nous ont été fourni par notre encadrant, sur les étapes mathématiques qui déterminent le modèle linéaire du Robotino.


  • Jeudi 8-10h :

Nous avons continué nos recherches sur les documentations fournies.


Semaine 2

  • Lundi 16-18h :

Nous avons continué nos recherches sur la documentation fournie.


  • Mercredi 14-19h :

Aujourd'hui, nous avons fait une campagne d'acquisition sur Matlab et une sur RobotinoView afin de relever les différences entres ces deux logiciels et de déterminer lequel convient le plus pour notre méthode qui vise la modélisation linéaire du Robotino. Nous avons constaté que nous obtenons beaucoup plus de données sur la position du Robot sur Matlab que sur RobotinoView. Pour vous donner un ordre de grandeur sur une période de 30 minutes, nous obtenons environ 2000 données sur RobotinoView alors que sur Matlab nous en obtenons à peu près 300 000. Ce qui nous montre bien l'intérêt d'utiliser Matlab pour nos campagnes d'acquisitions qui nous donnera un modèle beaucoup plus précis car plus nous avons de données et plus on s'approche de la courbe théorique.

    • Sous-programme permettant la commande du Robot sur un temps choisi avec consignes variables ainsi que l'enregistrement des données voulues:


Robotinoview.PNG


    • Programme principal sur 6 steps avec des consignes respectives à chaque step, réalisé en boucle 100 fois :


Capture1.PNG


    • Traduction du programme déjà cité mais à présent sur Matlab, on voit qu'avec l'option "inf" (temps infini) on obtient plus de données :


Matlab.JPG


  • Jeudi 11-14h :

Discussion avec M.PEKPE sur l'avancement de notre projet et la lecture d'une partie sur la méthode d'identification des sous-espaces sur les nouveaux documents fournis.

Semaine 3

Le but de la documentation est de comprendre que pour déterminer les défauts d'un système, il faut comparer son comportement au modèle mathématique. La différence entre le comportement du système et celui du modèle mathématique est exprimé sous forme d'un résidu. Pour l'obtention du modèle mathématique utilisé, on utilise les méthodes d'identification pour caractériser le modèle de bon fonctionnement du système.

  • Lundi 16-18h : ( Méthodes classiques des sous-espaces )
    • Formulation du problème :

On considère un système linéaire :

X(k+1)=A.X(k)+B.U(k)
Y(k)  =C.X(k)+D.U(k)

comme noté auparavant. L'objectif est de déterminer les matrices A,B,C et D du système à partir des seules données qu'on a sur les entrées et les sorties u et y. On peut aussi chercher à résoudre le système en déterminant les matrices T^−1.A.T, T^−1.B, C.T et D.Et donc on peut écrire le système d'une nouvelle façon comme suit :

X(k+1)=T^−1.A.T.X(k)+T^−1.B.U(k)
Y(k)  =C.T.X(k)+D.U(k)
    • Matrices du système :

Les matrices de ce système est leur types sont définies de la façon suivante: La matrice de Hankel d'entrée Ui et la matrice de Hankel de sortie Yi.Avec ces deux matrices on définit bien la matrice de Hankel des mesures T=(Y U).

  • Mercredi 13-18h :
    • Identification du système :

Pour identifier un système suivant les méthodes des sous-espaces, il faut d'abord estimer la matrice d'observabilité (qui détermine le rang de notre matrice globale), ensuite au moment où on arrive à estimer la matrice d'observabilité on peut commencer à réfléchir sur la réalisation du système, c'est-à-dire, déterminer les paramètres T^−1.A.T, T^−1.B, C.T et D.


Semaine 4

  • Lundi 16-18h

On a lu les documents pour la partie théorique de notre projet sur les méthodes des sous-espaces.

  • Mercredi 14-18h:

Documentation sur les méthodes des sous-espaces, et préparation pour pouvoir expliquer à Mr. Pekpe ce que nous avons compris.

  • Jeudi 8-10h:

Passage oral et écrit sur le tableau devant Mr Pekpe pour qu'il évalue si on a bien compris la théorie.

Semaine 5

  • Lundi 16-18h:

On a essayé de traiter un exercice plus simple qu'on a vu en TD suite à la demande de Mr. Pekpe. Tout d'abord on a essayé de nous familiariser avec Matlab et MatlabSimulink, en regardant les fonctions qui peuvent nous être utiles.

  • Mercredi 14-18h:

On a pu simuler l'exercice que le mercredi vu qu'il fallait qu'on se familiarise avec les logiciels, mais on a réussi à traiter un autre exercice plus compliqué dans les deux dernières heures de la séance.

Semaine 6

Cette semaine nous avons continué nos identifications des modèles sur des systèmes vus en cours afin d'améliorer notre compréhension et nos connaissances sur les méthodes des sous-espaces employées. Pour ce qui est de l'identification du robot mobile Robotino on compte l'entamer dès la semaine prochaine.

Semaine 7

Nous avons rencontré Mr. Pekpe afin de pouvoir commencer l'identification du robot mobile.Tout d'abord avec la méthode de résolution des sous-espaces n4sid, nous avons mis au point un script sur Matlab pour déterminer notre modèle.Nous avons utilisé des données recueillies lors des campagnes d'acquisitions, où on a utilisé la position sur l'axe lacet comme sortie du système avec une entrée dit SISO (single input single output)

Semaine 8

Au cours de cette semaine, nous avons réussi à déterminer le modèle du Robotino avec la position sur l'axe lacet. Nous avons validé le modèle obtenu avec les données recueillies lors des campagnes d'acquisitions. Nous voyons que les positions réelles collent avec les positions estimées par le modèle jusqu’à un tiers du temps. Il est normal qu'au bout d'un moment le modèle diverge de la réalité au bout d'un certain temps, il faudrait ajouter un observateur et faire un retour d'état pour s'assurer que notre modèle colle parfaitement avec les données réelles même pendant une très longue durée.

Semaine 9

Nous réalisons cette semaine le modèle du Robotino pour les positions angulaires des roues θ1, θ2 et θ3. Nous avons réutiliser le script réalisé pour le modèle précédent et le modifié car nous sommes plus dans un système SISO mais dans un système à multiples entrées à présent, c'est-à-dire MISO. Nous avons rencontré plusieurs difficultés lors de la modification de notre code. Nous avons demandé de l'aide à Mr. Pekpe et il nous a aiguillé sur les modifications à réalisé. Nous avons réussi à obtenir le modèle pour les positions angulaires des roues. Comme pour le précédent, nous l'avons validé hors-ligne.

Fichiers Rendus