IMA5 2018/2019 P24 : Différence entre versions
(→Filtrage de Kalman d'un système simple) |
(→Utilisation d'un signal sur mon premier modèle) |
||
Ligne 172 : | Ligne 172 : | ||
==Utilisation d'un signal sur mon premier modèle== | ==Utilisation d'un signal sur mon premier modèle== | ||
+ | |||
+ | Pour pouvoir obtenir les différents paramètres de mon premier modèle, j'ai utilisé la méthode des sous espaces. Ainsi, à l'aide de cette méthode j'ai pu identifier les paramètres de mes différentes matrices A, B, C, D. Avant d'obtenir ces différents paramètres, il était nécessaire d'effectuer des acquisitions de données à l'aide du Robotino. Une fois ces paramètres obtenus, je les utilise pour mon filtrage de Kalman. Il ne faut pas oublier que dans ce nouveau cas, le bruit est ajouté dans l'algorithme. Dans cette simulation, seulement les paramètres du Robotino ont été intégré. | ||
+ | |||
+ | Ainsi, avec ce premier modèle, l'observation principale des résultats amène à conclure que l'établissement de ce premier modèle n'était pas correct car l'erreur était assez grande et donc nous avions un estimation assez éloignée de ce que nous voulions. Cela était aussi du à l'erreur de la matrice de variance - covariance. Les résultats étaient tout de même positifs, le fonctionnement de l'algorithme à l'aide des paramètres est donc fonctionnel. | ||
+ | |||
+ | [[Fichier:utilisation_paramètres_premier_modèle_P24.png|1000px|thumb|center|Figure : Comparaison entre ma sortie et mon filtre de Kalman]] | ||
+ | |||
+ | Cette courbe permet de visualiser et de mieux comprendre les différentes explications données précédemment. Dans cette partie, le signal utilisée n'était pas encore le signal de la commande du Robotino. Le signal était le même que dans l'explication du précédent cas, en effet dans une des prochaines partie l'explication avec le filtrage de Kalman en ligne sera réalisée. | ||
==Explication sur la partie commande de mon robotino== | ==Explication sur la partie commande de mon robotino== |
Version du 3 février 2019 à 22:57
Sommaire
- 1 Présentation générale
- 2 Préparation du projet
- 3 Réalisation du Projet
- 3.1 Journal de Bord
- 3.2 Description des concepts clés du filtrage de Kalman
- 3.3 Comment identifier le modèle du Robotino ?
- 3.4 Comment valider ce modèle ?
- 3.5 Filtrage de Kalman d'un système à étudier
- 3.6 Utilisation d'un signal sur mon premier modèle
- 3.7 Explication sur la partie commande de mon robotino
- 3.8 Mise en place de mon filtre sur le Robot sur la partie simulée
- 4 Documents Rendus
Présentation générale
Description
Les observateurs sont généralement utilisés pour estimer des grandeurs mais en présence de bruits, leur performance se trouve dégradée. On a alors recours au filtrage de Kalman. Son application en diagnostic a permis la surveillance de plusieurs systèmes industriels. En effet, quand un défaut apparaît dans un système, il est crucial de le détecter tôt et de le corriger pour éviter sa propagation qui pourra endommager le système. Ce projet a pour but de mettre en œuvre un filtre de Kalman sur le robotino en vue de détecter l’apparition des défauts sur ce dernier. On commencera par apprendre et maîtriser le fonctionnement du filtrage de Kalman et la commande du Robotino avec Matlab. Suivra l’implémentation du filtre de Kalman pour la détection de défauts.
Objectifs
L'objectif principal de ce projet est la mise en œuvre un filtre de Kalman pour la surveillance d’un robot mobile. En effet, grâce à la mise en oeuvre de ce filtre de Kalman sur le Robotino qui est un robot mobile, il sera donc possible de détecter des défauts.
Préparation du projet
Cahier des charges
Choix techniques : matériel et logiciel
Lors de ce projet, les choix techniques sont les suivants :
- Un robot mobile : Le Robotino
- Le logiciel RobotinoView3
- Matlab Simulink
Liste des tâches à effectuer
Les tâches à effectuer sont les suivantes :
- Recherches bibliographiques et état de l'art
- Prise en main du Robotino
- Modélisation du système
- Recherches Filtre de Kalman
- Expérimentations sur les défauts
Calendrier prévisionnel
Réalisation du Projet
Journal de Bord
Semaine 1
Lors de cette première semaine, j'ai rencontré plusieurs fois mon tuteur de Projet, les points suivants ont été fixé :
- Organisation du PFE ==> Plusieurs réunions par semaine
- Travail préliminaire à réaliser
- Les notions à bien revoir
- Définition de l'objectif principal de ce projet
Semaine 2
Lors de cette semaine de travail, je me suis attardé sur les points suivants :
- Prise en main du Robotino
- Découverte et commande du Robotino à l'aide de Matlab
- Réalisation de parcours
- Recherche sur l'établissement du modèle du Robotino
- Recherche sur le filtre de Kalman
Semaine 3
Lors de ce début de semaine, la réalisation des tâches suivantes a été débuté :
- Recherches approfondies pour valider ce modèle
- Utilisation de techniques mathématiques pour valider ce modèle
Rencontre avec M. Pekpe en ce début de semaine les points qui se sont dégagés sont les suivants :
- Expositions de mes idées d'expérimentation
- Clarification sur certains points du projet
- Continuer de documenter mon travail
Semaine 4
En ce début de semaine 4, j'ai commencé les tâches suivantes :
- Travail su la méthode des résidus
- Rédaction de documents pour le fonctionnement de mes premières expérimentations
Semaine 5
Lors de cette semaine voici les tâches que j'ai continué et commencé :
- Travail sur la méthode des résidus
- Adaptation du modèle
- Travail sur le filtrage de Kalman, plus particulièrement sur un système plus simple
Semaine 6
Lors de cette semaine, le travail entamé est le suivant :
- Travail sur l'algorithme de Kalman
- Création d'un fichier pour initialiser la position du Robot avant l'utilisation de celui-ci
- Réalisation d'un filtrage de Kalman sur un signal sinusoïdal
Semaine 7
Lors de cette semaine, le travail principal sera le suivant :
- Calcul des paramètres pour le filtrage de Kalman sur le Robotino
- Test d'implémentation du filtrage
Une implémentation du filtre a été réalisé sur le Robotino, mais les sorties n'étant que simulées une erreur conséquente s'est installé dans ma prédiction. L'objectif de mes prochaines étapes est donc de ne plus avoir ce problème de bruit.
Semaine 8
Les différentes tâches à réaliser pour cette semaine sont les suivantes :
- Exploitation du bruit pour avoir un meilleur filtrage
- Travail avec la méthode des sous espaces pour pouvoir identifier la matrice de perturbation
- Une modification du modèle est donc à prévoir
La méthodologie et le travail actuel a été validé cette semaine avec M. Pekpe.
Semaine 9
Lors de cette semaine, je vais effectuer les tâches suivantes :
- Recherche d'une méthode pour pouvoir exploiter plus de paramètres
- Travail sur différents paramètres du robotino
- Cela implique un nouveau changement de mon modèle
- Mais aussi un changement de l'algorithme principal
Description des concepts clés du filtrage de Kalman
Le filtre de Kalman est un filtre à réponse impulsionnelle infinie c'est-à-dire que c'est un filtre qui se base sur les valeurs du signal d'entrée mais aussi des valeurs antérieurs de celui-ci. Le filtre de Kalman est donc une méthode permettant d'estimer les différents paramètres d'un système qui évolue dans le temps, tout cela à partir de mesures bruités. Le filtre de Kalman est donc utilisé dans de nombreux domaines tels que le traitement d'images, les radars...
Ce filtre est capable de prédire des paramètres du système, et de rectifier des erreurs. Grâce au filtre de Kalman, il est possible d'avoir des erreurs raisonnables et ainsi d'avoir des estimations correctes.
Il y a deux grandes étapes concernant le fonctionnement du filtre de Kalman :
- La première étape est la prédiction de l'estimation en fonction du modèle du système. De plus, dans cette étape, nous avons l'état prédit et l'estimation prédite de la covariance.
- La seconde étape vise à faire la mise à jour de cette prédiction à l'aide des nouvelles mesures. Alors que dans cette seconde étape, nous avons une équation d'innovation, la covariance de l'innovation, le gain de Kalman mis à jour, ainsi que l'état de mis à jour et la covariance de mis à jour. Finalement, l'objectif de cette seconde étape est d'avoir une estimation bien plus précise.
Comment identifier le modèle du Robotino ?
L’identification est la détermination du modèle d’un système sous forme de représentation d’état de manière numérique à partir des mesures d’entrée et de sorties. Concernant l'identification du modèle, nous utilisons la méthode des sous espaces. On considère le système linéaire à temps invariant suivant :
A l'aide de ce modèle, il faut rechercher une équivalence permettant d'avoir les matrices A, B, C, D. Nous déduisons que la réalisation équivalente peut être la suivante :
Nous obtenons alors des estimations des matrices d'observabilité étendue et de séquences suivantes :
Finalement, nous obtenons le système suivant :
Comment valider ce modèle ?
Concernant la validation du modèle, il faut utiliser la méthode des moindres carrées. La méthode des moindres carrés permet de sélectionner parmi ces fonctions celle qui reproduit le mieux les données expérimentales. On parle dans ce cas d’ajustement par la méthode des moindres carrés. La formule de cette méthode est la suivante :
Filtrage de Kalman d'un système à étudier
Pour commencer, j'ai choisi un système discret pour pouvoir le simuler, j'ai réalisé des simulations en régime permanent et à temps invariant. Dans ce cas, un bruit sera ajouté car dans la simulation, si nous n'avons pas de bruit le résultat s'éloignera fortement de la réalité. Le système choisi est régi par les matrices suivantes qui représentent la dynamique du système simulé. Les matrices A, B, C et D sont donc les suivantes :
A = [3.1587 2.7410 -0.8520; 1.4412 6.6666 0; 0 8.8888 2.2541];
B = [0.5487; 7.4587; -2.2587];
C = [1 0 0];
D = 0;
Dans ce cas l'utilisation des équations du filtre de Kalman sont nécessaires, j'ai utilisé les équations de mise à jour du temps ainsi que celle de la mise à jour des mesures. Dans mes différentes équations, je tiens compte des mesures passées pour prédire l'état futur lors de la mise à jour. En effet, la correction sera réalisé en fonction de l'équation d'innovation c'est-à-dire que l'écart que nous trouvons entre les différentes valeurs mesurées et les différentes valeurs prédites. Ainsi, cet écart est le gain d'innovation, celui-ci permet de minimiser la covariance en tenant compte du bruit. De cette manière nous pourrons estimer à l'aide de ce filtre une estimation optimale de notre sortie.
Dans mon cas, j'ai ajouté un bruit qui correspondrait au bruit du Robotino. L'ajout de ce bruit dans mes équations d'état était donc nécessaire pour avoir une simulation utile. J'ai donc un modèle discret, et choisi au préalable des valeurs pour les coefficients des bruits des capteurs et le bruit du système. Après avoir crée mon système, tous les paramètres de mon modèle sont déterminés. L'objectif de cette simulation est donc de pouvoir comparer la sortie du filtre de Kalman et la sortie réelle. Mais afin d'avoir une simulation exploitable, il fut intéressant de faire des comparaisons avec plus ou moins de bruit. Dans mon système, j'ai mis mon filtre de Kalman dans un retour. L'étape suivante était l'implémentation d'un signal quelconque, (utilisation de fonction affines, fonction cosinus etc...) dans ce cas, j'ai utilisé la fonction cos.
La comparaison avec la sortie filtrée et la sortie réelle a donc été logique. Grâce au différentes mesures de l'erreur de covariance, nous pouvons constater que celle-ci à été réduite de deux après le filtrage à l'aide du filtre de Kalman.
Concernant le filtrage de kalman variant dans le temps, j'ai réutilisé une partie du filtrage de Kalman en régime permanent. Cette fois, le covariance du bruit était aussi variante. L'ajout de récursivité pour pouvoir travailler dans le temps a donc été fortement utile. Dans ce cas, les matrices d'estimation d'état et de covariance d'erreur sont mise à jour à chaque itération. L'utilisation des bruits est nécessaires pour les mêmes raisons que précédemment. Après avoir implémenté le nouvel algorithme, la comparaison entre la sortie réelle et la sortie estimée a été réalisé.
Ce premier graphique montre la réponse de la sortie réelle en bleu et la réponse du filtrage de Kalman en rouge.
Ce second graphique nous montre l'erreur de la mesure et l'erreur du filtrage. De plus en régime à temps variant nous avons une erreur de covariance inférieure à la valeur théorique. En effet la covariance de sortie atteint un état stable à partir de la huitième itération. Par contre, la matrice de gain ne change pas par rapport au régime permanent.
Utilisation d'un signal sur mon premier modèle
Pour pouvoir obtenir les différents paramètres de mon premier modèle, j'ai utilisé la méthode des sous espaces. Ainsi, à l'aide de cette méthode j'ai pu identifier les paramètres de mes différentes matrices A, B, C, D. Avant d'obtenir ces différents paramètres, il était nécessaire d'effectuer des acquisitions de données à l'aide du Robotino. Une fois ces paramètres obtenus, je les utilise pour mon filtrage de Kalman. Il ne faut pas oublier que dans ce nouveau cas, le bruit est ajouté dans l'algorithme. Dans cette simulation, seulement les paramètres du Robotino ont été intégré.
Ainsi, avec ce premier modèle, l'observation principale des résultats amène à conclure que l'établissement de ce premier modèle n'était pas correct car l'erreur était assez grande et donc nous avions un estimation assez éloignée de ce que nous voulions. Cela était aussi du à l'erreur de la matrice de variance - covariance. Les résultats étaient tout de même positifs, le fonctionnement de l'algorithme à l'aide des paramètres est donc fonctionnel.
Cette courbe permet de visualiser et de mieux comprendre les différentes explications données précédemment. Dans cette partie, le signal utilisée n'était pas encore le signal de la commande du Robotino. Le signal était le même que dans l'explication du précédent cas, en effet dans une des prochaines partie l'explication avec le filtrage de Kalman en ligne sera réalisée.