Bond Graph

De Wiki d'activités IMA
Révision datée du 5 mai 2013 à 08:25 par Qli (discussion | contributions) (27-28mars)

Présentation du projet

Encadrant :

Belkacem Ould-Bouamama.

Binôme :

Qiaomu Li / Abdel-Hakim Mahir

Objectif :

Valider en temps réel un modèle dynamique ‘Bond Graph’ pour l’implémentation en temps réel d’un ensemble de commandes simples et avancées.

Compétence demandé :

  • Identification des systèmes ( boîte à outil IDENT)
  • modélisation et simulation dynamique par BG avec boîte à outil Sybols2000
  • boîte à outil RTW
  • mise en place des algorithmes de commande ( développé en cours ISA)
  • travail en équipe


Matériel:

Le système hydraulique est composé de:

  • deux réservoirs
  • trois vannes
  • un serpentin de retard
  • une pompe
  • un panneau de commande.
système hydraulique


logiciel:

  • Bond Graph
  • Matlab Simulink
  • Symbols
  • IDENT



Avancement du projet

Séance par séance

7,févier

Cette séance a été mise à profit afin de mieux cerner le projet :

  • contact le encadrant du projet
  • présentation du projet par M. Belkacem Ould-Bouamama
  • discussion autour des différentes parties du projet


14, févier

Durant cette séance, nous avons pris plus amplement la connaissance du sujet et nous avons analysé le système(le fonctionnement des réservoirs).
On a essayé en particulier de contrôler le système manuellement pour mieux comprendre le fonctionnement du système.


25-27,févier

Nous avons analysé l’objectif du projet, et discuté sur la façon dont on pourrait le réaliser idéalement étape par étape.
Nous avons développés nos connaissances utiles pour la bonne réalisation du projet (logiciels et outils tels que Symbols, Bond Graph, Matlab Simulink...)
A l’aide du cours d’automatique sur les Bond Graph, nous avons défini des variables, les paramètres et les relations du modèle hydraulique. Comme nous n’avions pas le logiciel Symbols sur les Bond Graph, nous avons pris un rendez-vous avec M. Belkacem Ould-Bouamama pour lui demander ce logiciel.
A la fin, nous avons réalisé le schéma Bond Graph.



4,mars

Durant cette séance, nous avons déterminé des équations du modèle à partir du modèle Bond Graph. Grâce à ces équations, nous avons pu réaliser le modèle théorique sous Simulink.
Nous avions alors besoin de certaines valeurs de paramètres. On a donc contacté M. Belkacem Ould-Bouamama pour qu’il nous fournisse la documentation technique avec la valeur de certains paramètres (air exacte des 2 réservoirs,...)

BG



6-7mars

système simplifié

Lors de cette séance, notre encadrant a vérifié notre schéma Bond Graph et nous a demandé de changer la configuration du système : utiliser 2 vannes ouvertes (vanne du réservoir 1 et vanne entre les réservoir 1 et 2) et fermer la vanne du réservoir 2.
Nous avons donc dû rectifier légèrement le schéma Bond Graph.
Ensuite, nous avons obtenus et déterminer la valeur de certains paramètres du modèle. Après avoir entrée ces valeurs sous Matlab, on a pu lancer la simulation du modèle.
Dans ce modèle le signal d’entrée est le débit Qe et les signaux de sorties sont les hauteurs h1 et h2 du niveau d’eau atteint dans les réservoirs 1 et 2. Modèle théorique.png



11,mars

courbes théorique h1 et h2

A partir de cette séance, nous avons passé du modèle théorique au modèle réel.
Nous avons analysé la réalisation du modèle réel.
Comme la boite de commande du système est commandé par une tension, nous avons cherché à comprendre comment il est possible de convertir une tension en un débit. La solution est d'utiliser le bloc d'étalonnage.
Comme le bloc d'étalonnage ne fait pas partie de l’objectif de notre projet, nous avons pris un bloc d’étalonnage réalisé par une autre équipe. Nous nous sommes renseignés sur le fonctionnement de ce bloc d’étalonnage.
But de la prochaine séance:
La réalisation du modèle réel.



20-21mars

Nous avons réalisé notre modèle réel avec le bloc d'étalonnage sous Simulink. Puis nous avons configuré notre modèle avec le système.
Dans le modèle réel, nous avons passé du temps pour bien comprendre le fonctionnement des blocs AnalogOutput, AnalogInput, et les channels dedans.
Puis, nous avons testé notre modèle réel avec un débit d'entrée. Vu que le modèle réel fonctionne bien.
Nous avons ensuite fait un schéma sous Simulink qui comparait le modèle réel avec le modèle théorique. Nous avons remarqué que les deux modèles correspondent bien(l'allure réel est presque la même que l'allure théorique).
Pour passer à l'étape suivante, nous avons pris un rendez-vous avec M.Bouamama pour la prochaine séance.

modèle réel avec théorique




25,mars

Au départ de cette séance, nous avons corrigé certains paramètres du modèle réel et théorique pour que le modèle théorique se rapproche le plus possible du modèle réel.
Puis nous avons validé notre modèle.
Après la validation du modèle. Nous somme passé dans le bureau de M.Bouamama, il nous a demandé de simplifier notre modèle avec l'outil "ident". Il nous a expliqué un peu le fonctionnement de "ident" et nous a donné un document sur l'utilisation de "ident".
Nous avons lu le document pour prendre la connaissance de cet outil.
But de la prochaine séance:
Essayer d'utiliser "ident" et trouver la fonction de transfert.
comparer




27-28mars

Durant les deux séances, nous avons utilisé l'outil "ident" pour trouver la fonction de transfert.
Vu que notre modèle est difficile à comprendre pour des gens qui n'ont pas de connaissance sur ce système hydraulique, il faut simplifier notre modèle en remplaçant du modèle théorique par la fonction de transfert.
Nous avons cherché des utilisations de "ident" sur Internet. On a constaté qu’il existait plus types de modèles possibles : équations d’état, modèle ARX, Laplace...Nous avions décidé de travailler avec le modèle ARX. En fait ce modèle permettait d’obtenir des caractéristiques du système mais ne permettait pas de tracer facilement l’allure du signal de sortie sous Matlab. Du coup nous avons décidé d’utiliser le modèle de fonction de transfert dans Laplace. Nous avons perdu du temps à trouver la fonction de transfert.
Finalement nous avons trouvé un vidéo qui explique étape par étape comment nous pouvions trouver la fonction de transfert plus rapide et avec la méthode plus simple.
Voici le lien du vidéo :[1]
Après avoir obtenu les valeurs des entrées et sorties du système envoyées à Workspace, nous avons modélisé le système théorique grâce à l'outil "ident" (fonction de transfert=S/E).
Puis nous avons simulé le modèle avec la fonction de transfert obtenue.

3-4avril

Objectif de la séance: contrôler le niveau d'eau du réservoir 1.

contrôle h1 par niveau

Le signal d'entrée ne doit plus être un débit constant mais une consigne en hauteur.
Pour réalisé cet objectif, il faut modéliser du modèle avec PID.
Durant les séances, nous avons déterminés des paramètres du PID( Kp, Ki, Kd )en utilisant la méthode Ziegler-Nichols. Nous avons déterminé les valeurs des paramètres de tel sorte que le temps de monté soit rapide, et surtout que le système soit précis.
Finalement, nous avons choisit un correcteur PI avec Kp=0.86, Ki=0.036
Nous avons validé notre modèle pour le contrôle du niveau d’eau des réservoirs.
Si on entre une consigne de 18 cm le niveau d'eau atteint bien 18 cm.
A la fin de cette séance, nous avons fini toutes les parties de modélisation du système( modélisation théorique et modélisationréel ).

PID

8,avril

Nous somme allé voir M.Bouamama. Il a vérifié un peu notre modèle et après nous avons passé à l'étape suivante: la régulation cascade et le schéma du retour d'état .
M.Bouamama nous a expliqué le principe du schéma cascade. Cette séance à été concentré sur:

  • Développement de connaissance sur le principe du schéma cascade
  • Analyse du schéma cascade et du retour d’état



10,avril

Durant cette, nous avons réalisé notre schéma cascade sous Simulink et nous l’avons testé.
Nous avons particulièrement mis du temps à analyser et comprendre les parties qui correspondent à la pompe et aux capteurs de niveau.
Ensuite, nous avons déternimé des paramètres PID maître et esclave du schéma cascade en utilisant également la méthode de Ziegler-Nichols de telle sorte à avoir un système stable, précis et rapide. Nous avons déterminé des paramètre comme suivant:
PID maître : Kp=0.87, Ki=0.036
PID esclave : Kp=1
finalement nous avons validé notre schéma cascade après quelques tests. Régulation cascade.png

courbes de h1(en bleu) et h2 (en vert): courbe

vacance printemps

programme

Nous nous somme rencontrés pendant la vacance pour finir la partie de retour d'état.

  • Objectif : faire le modèle du système par retour d'état

Pour obtenir des équations d'état, il faut définir des variables et utiliser les équations du modèle utiles pour le retour d’état.
Nous somme allé à la bibliothèque pour pour mieux comprendre quelle variable est la variable d’état.
On en a déduit que H= (h1, h2) sont les variables d’état.
Nous avons donc déterminé les équations d’état sous forme de matrice :
X’=A*X+B
Y=C*X+D*U
Au départ, nous avons réalisé le modèle sans retour d'état. Puis nous avons fait un programme sous Matlab( développé en cours ISA ) qui permet de vérifier la commandabilité et l'observabilité du système, et trouver la matrice K avec la matrice M en utilisant la commande Matlab acker(A,B,M).
Nous avons remarqué que notre système est commandable et observable.
Avec des matrices, nous avons modélisé notre modèle par retour d'état. Schéma retour d'état.jpg

Problème rencontré

niveau d'outil

  • la compréhension du système d’acquisition
  • la compréhension du bloc d'étalonnage.
  • l’utilisation de l’outil "ident" sur lequel nous avons passé beaucoup de temps pour trouver la fonction de transfert.


niveau des paramètres

  • la difficulté de définir des paramètres pour le modèle théorique.
  • la difficulté de trouver des bons paramètres du PID( Kp, Ki, Kd ) pour avoir des résultats compréhensibles.