Bond Graph : Différence entre versions

De Wiki de Projets IMA
(Problème rencontré)
(vacance printemps)
 
(85 révisions intermédiaires par 4 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 +
<include nopre noesc src="/home/pedago/pimasc/include/video-RegulationHydraulique2012-iframe.html" />
 +
__TOC__
 +
<br style="clear: both;">
 
= '''Présentation du projet''' =
 
= '''Présentation du projet''' =
 
 
 
==== Encadrant :====
 
 
Belkacem Ould-Bouamama.
 
 
====Binôme :====
 
 
Qiaomu Li / Abdel-Hakim Mahir
 
  
 
====Objectif :====
 
====Objectif :====
Ligne 18 : Ligne 11 :
  
 
*Identification des systèmes ( boîte à outil IDENT)
 
*Identification des systèmes ( boîte à outil IDENT)
*modélisation et simulation dynamique par BG avec boîte à outil Sybols2000
+
*modélisation et simulation dynamique par BG avec boîte à outil Symbols2000
 
*boîte à outil RTW
 
*boîte à outil RTW
 
*mise en place des algorithmes de commande ( développé en cours ISA)
 
*mise en place des algorithmes de commande ( développé en cours ISA)
 
*travail en équipe
 
*travail en équipe
 
  
 
====Matériel:====
 
====Matériel:====
Ligne 32 : Ligne 24 :
 
*une pompe
 
*une pompe
 
*un panneau de commande.
 
*un panneau de commande.
 +
[[Fichier:système hydraulique.jpg|thumb|système hydraulique]]
  
  
Ligne 40 : Ligne 33 :
 
*Symbols
 
*Symbols
 
*IDENT
 
*IDENT
 
 
 
 
  
 
= '''Avancement du projet''' =
 
= '''Avancement du projet''' =
Ligne 49 : Ligne 38 :
 
   
 
   
 
== Séance par séance ==
 
== Séance par séance ==
 
====4,février====
 
 
Nous somme allé cherché M. Belkacem Ould-Bouamama, mais il était absent, donc nous ne pouvions pas aller dans la salle de travail C006 pour commencer notre projet.
 
  
  
Ligne 59 : Ligne 44 :
 
   
 
   
 
Cette séance a été mise à profit afin de mieux cerner le projet :
 
Cette séance a été mise à profit afin de mieux cerner le projet :
*contact le encadrant du projet  
+
*prise de contact de l'encadrant du projet  
 
*présentation du projet par M. Belkacem Ould-Bouamama
 
*présentation du projet par M. Belkacem Ould-Bouamama
*discussion autour des differentes parties du projet  
+
*discussion autour des différentes parties du projet
 
 
 
 
  
 
====14, févier====
 
====14, févier====
  
Durant cette séance, nous avons pris la connaissance du sujet et analysé le fonctionnement du système (le fonctionnement des réservoirs).
+
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).
 
<br>
 
<br>
On a essayé de contrôler le système manuellement pour mieux comprendre le fonctionnement du système. Et nous avons également testé un système qui est déjà réalisé par une autre équipe sur ce modèle ( ce système realise pas la même fonction comme nous )
+
On a essayé en particulier de contrôler le système manuellement pour mieux comprendre le fonctionnement du système.
 
 
  
  
 
====25-27,févier====  
 
====25-27,févier====  
  
Nous avons analysé l’objectif du projet, et discuté comment on peut le réaliser étape par étape.
+
Nous avons analysé l’objectif du projet, et discuté sur la façon dont on pourrait le réaliser idéalement étape par étape.
 
<br>
 
<br>
Nous avons pris plus de connaissance utiles pour la bonne réalisation du projet ( logiciels et outils tels que Symbols, Bond Graph, Matlab Simulink...)
+
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...)
 +
<br>
 +
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.
 
<br>  
 
<br>  
Avec les connaissance qu’on a vu au cours de Bond Graph, nous avons défini des variables, les paramètres et les relations du modèle hydraulique.
+
A la fin, nous avons réalisé le schéma Bond Graph.
Comme nous n’avons pas le logiciel 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.
+
 
<br>
 
  
  
Ligne 87 : Ligne 71 :
 
====4,mars====
 
====4,mars====
 
   
 
   
Durant cette séance, nous avons déterminé des équations du modèle à partir du modèle Bond Graph. Avec des relations qu’on a eu la séance dernière, nous avons réalisé notre modèle theorique sous Simulink.
+
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.
 
<br>
 
<br>
Mais il nous manque des paramètres pour déterminer les gains du modèle. Nous n’avons pas les trouvé dans le document que M. Belkacem Ould-Bouamama nous a donné. Nous somme allé dans son bureau pour lui demander des paramètres, mais il n’était pas là.  
+
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,...)
<br>
+
 
Comme nous ne pouvions pas avancer , nous avons arrêté là pour cette séance et lui envoyé un email pour des paramètres.
+
[[Fichier:image.jpg|BG]]
  
  
Ligne 97 : Ligne 81 :
  
 
====6-7mars====
 
====6-7mars====
 
+
[[Fichier:système_simplifié.jpg|thumb|système simplifié]]
Nous somme allé voir M.Ould-Bouamama et discuté ce que nous avons fait pour l’instant. Il a vérifié notre schéma Bond Graph et nous expliqué le fonctionnement des vanne. En réalité, on utilise que deux vanne, la troisième (la venne de la sortie du réservoir 2)est toujours fermée. Donc il y aura pas de débit qui sort de cette vanne.
+
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.
 
<br>
 
<br>
Avec des données que nous avons eu, nous avons déterminé les paramètres du modèle.
+
Nous avons donc dû rectifier légèrement le schéma Bond Graph.
 
<br>
 
<br>
Après, nous avons configuré notre modèle simulation -> Configuration Parameters pour la modification du type, fixed time etc.  
+
Ensuite, nous avons obtenu et déterminé la valeur de certains paramètres du modèle. Après avoir entré ces valeurs sous Matlab, on a pu lancer la simulation du modèle.
 
<br>
 
<br>
Nous avons lancé notre modèle, et avec des courbes de h1 et h2, nous avons modifié des paramètres du modèle pour qu’il fonctionne mieux.
+
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.
 
+
[[Fichier:modèle théorique.png]]
 
 
 
 
  
 
====11,mars====
 
====11,mars====
 
+
[[Fichier:courbes théorique.png|thumb|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.
+
A partir de cette séance, nous sommes passé du modèle théorique au modèle réel.
 
<br>
 
<br>
 
Nous avons analysé la réalisation du modèle réel.
 
Nous avons analysé la réalisation du modèle réel.
 
<br>
 
<br>
Comme la boitre de commande du système est commandé par une tension, nous avons discuté comment nous pouvions transmettre un débit en une tension. La solution est d'utiliser le bloc d'étalonnage.  
+
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.
 
<br>
 
<br>
Nous avons discuté avec M.Bouamama, il nous a expliqué le fonctionnement d'étalonnage. Comme le bloc d'étalonnage n'est pas dans notre but du projet, nous avons pris le même bloc d'étalonnage qui est déjà réalisé par une autre équipe.
+
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.  
 
<br>
 
<br>
 
But de la prochaine séance:
 
But de la prochaine séance:
 
<br>
 
<br>
 
La réalisation du modèle réel.
 
La réalisation du modèle réel.
 
 
 
  
 
====20-21mars====  
 
====20-21mars====  
Ligne 130 : Ligne 109 :
 
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.
 
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.
 
<br>
 
<br>
Dans le modèle réel, nous avons passé du temps pour bien comprendre le fonctionnement des blocs AnalogOutput, AnalogInput, et les channels dedans.
+
Dans le modèle réel, nous avons passé du temps pour bien comprendre le fonctionnement des blocs AnalogOutput, AnalogInput, et les channels du modèle.
 
<br>
 
<br>
Puis, nous avons testé notre modèle réel avec un débit d'entrée. Vu que le modèle réel fonctinne bien.
+
Puis, nous avons testé notre modèle réel avec un débit d'entrée.  
 
<br>
 
<br>
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).
+
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).
 
<br>
 
<br>
 
Pour passer à l'étape suivante, nous avons pris un rendez-vous avec M.Bouamama pour la prochaine séance.
 
Pour passer à l'étape suivante, nous avons pris un rendez-vous avec M.Bouamama pour la prochaine séance.
 
+
[[Fichier:modèle réel avec théorique.png|thumb|modèle réel avec théorique]]
 
 
 
 
 
 
  
 
====25,mars====
 
====25,mars====
Ligne 146 : Ligne 122 :
 
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.
 
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.
 
<br>
 
<br>
Puis nous avons validé notre modèle.
+
Nous sommes passé ensuite 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".
<br>
 
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'outi "ident". Il nous a expliqué un peu le fonctionnement de "ident" et nous a donné un document sur l'utilisation de "ident".
 
 
<br>
 
<br>
 
Nous avons lu le document  pour prendre la connaissance de cet outil.
 
Nous avons lu le document  pour prendre la connaissance de cet outil.
Ligne 155 : Ligne 129 :
 
<br>
 
<br>
 
Essayer d'utiliser "ident" et trouver la fonction de transfert.
 
Essayer d'utiliser "ident" et trouver la fonction de transfert.
 
+
<br>
 
+
[[Fichier:comparer.jpg|comparer]]
  
 
====27-28mars====  
 
====27-28mars====  
Ligne 162 : Ligne 136 :
 
Durant les deux séances, nous avons utilisé l'outil "ident" pour trouver la fonction de transfert.
 
Durant les deux séances, nous avons utilisé l'outil "ident" pour trouver la fonction de transfert.
 
<br>
 
<br>
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.
+
L'intérêt de l'outil 'ident' est de simplifier notre modèle en remplaçant le modèle théorique par la fonction de transfert.
 +
<br>
 +
Nous avons cherché des utilisations de "ident" sur Internet. On a constaté qu’il existait plusieurs 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.
 
<br>
 
<br>
Nous avons cherché des utilisations de "ident" sur Internet. Avec des données que nous avons obtenu par le modèle réel, nous avons essayé de trouver des paramètres de la fonction de transfert. Mais quand nous modélisions notre modèle avec la fonction de transfert, il nous a pas donné le bon résultat. Nous avons lancé plusieurs fois notre modèle pour trouver des bons paramètres de la fonction de transfert, mais chaque fois, "ident" nous a donné des paramètres différents. Nous avons perdu beaucoup de temps pour trouver la fonction.
+
Finalement nous avons trouvé une vidéo qui explique étape par étape comment nous pouvions  trouver la fonction de transfert plus rapidement et avec une méthode plus simple.
 
<br>
 
<br>
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 de la vidéo :[http://www.youtube.com/watch?v=t6SPSRacD_0]
 
<br>
 
<br>
Voici le lien du vidéo :[http://www.youtube.com/watch?v=t6SPSRacD_0]
+
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).
<br> 
 
Après avoir obtenu des paramètres de la fonction de transfert S et E (fonction de transfert=S/E), nous avons modélisé le système théorique grâce à l'outil "ident".
 
 
<br>
 
<br>
 
Puis nous avons simulé le modèle avec la fonction de transfert obtenue.
 
Puis nous avons simulé le modèle avec la fonction de transfert obtenue.
 
 
 
 
 
 
  
 
====3-4avril====  
 
====3-4avril====  
  
Objectif de la séance: contrôler le niveau d'eau du réservoir 1. Le signal d'entrée ne doit plus être un débit constant mais une consigne en hauteur. 
+
Objectif de la séance: contrôler le niveau d'eau du réservoir 1.  
 
<br>
 
<br>
Pour réalisé cet objectif, il faut modéliser du modèle avec PID.
+
[[Fichier:controleh1.jpg|thumb|contrôle h1 par niveau ]]
 +
Le signal d'entrée ne doit plus être un débit constant mais une consigne en hauteur. 
 
<br>
 
<br>
Durant les séances, nous avons calculé des paramètres du PID( Kp, Ki, Kd )et les modifiés avec des phénomène que nous avons vu (le dépassement du niveau, le temps de monté, etc.) pour que le modèle fonctionne comme on veut.  
+
Pour réaliser cet objectif, il faut réaliser le modèle avec un correcteur PID.
 
<br>
 
<br>
A la fin, nous avons choisit un correcteur PI(les paramètres du PID en fonction des vannes ouvertes ).  
+
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.
 
<br>
 
<br>
Nous avons arrêté à valider le modèle avec PID pour le contrôle du niveau du réservoir.  
+
Finalement, nous avons choisit un correcteur PI avec Kp=0.86, Ki=0.036
 +
<br>
 +
Nous avons validé notre modèle pour le contrôle du niveau d’eau des réservoirs.
 
<br>
 
<br>
 
Si on entre une consigne de 18 cm le niveau d'eau atteint bien 18 cm.
 
Si on entre une consigne de 18 cm le niveau d'eau atteint bien 18 cm.
 
<br>
 
<br>
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 ).  
+
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élisation réel ).
 
 
 
 
 
 
 
  
 +
[[Fichier:h1_pid.jpg|PID]]
  
 
====8,avril====
 
====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 .
+
Nous sommes allé voir M.Bouamama. Il a vérifié un peu notre modèle et après nous sommes passé à l'étape suivante: la régulation cascade et le schéma de commande par retour d'état .
 
<br>
 
<br>
 
M.Bouamama nous a expliqué le principe du schéma cascade. Cette séance à été concentré sur:  
 
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  
+
*le développement de connaissance sur le principe du schéma cascade  
*Analyse du schéma cascade et du retour d’état
+
*l'analyse du schéma cascade et du retour d’état
 
 
 
 
 
 
 
 
  
 
====10,avril====
 
====10,avril====
  
Durant cette, nous avons réalisé notre schéma cascade sous Simulink et le testé.
+
Durant cette séance, nous avons réalisé notre schéma cascade sous Simulink et nous l’avons testé.
 +
<br>
 +
Nous avons particulièrement mis du temps à analyser et comprendre les parties qui correspondent à la pompe et aux capteurs de niveau.
 +
<br>
 +
Ensuite, nous avons déternimé les paramètres PID maître et esclave du schéma cascade de telle sorte à avoir un système stable, précis et rapide. Nous avons alors trouvé:
 
<br>
 
<br>
Au début, nous n'avons pas compris des parties qui correspond la pompe et les capteurs de niveau. Donc nous avons mis du temps d'analyser et discuter sur le schéma bloc dans le document.
+
PID maître : Kp=0.87, Ki=0.036
 
<br>
 
<br>
Après nous avons modélisé des paramètres PID maître et esclave du schéma cascade de tel sorte à avoir un système stable, précis et rapide.
+
PID esclave : Kp=1
 
<br>
 
<br>
finalement nous avons validé notre schéma cascade après quelques tests.
+
finalement nous avons validé notre schéma cascade après quelques tests.
 
+
[[Fichier:régulation cascade.png]]
 
 
 
 
 
 
  
 +
courbes de h1(en bleu) et h2 (en vert):
 +
[[Fichier:courbe.JPG|courbe]]
  
 
==== vacance printemps ====  
 
==== vacance printemps ====  
 
+
[[Fichier:programme.jpg|thumb|programme]]
Nous nous somme rencontrés pendant la vacance pour finir la partie de retour d'état.
+
Nous nous somme rencontrés pendant les vacance pours finir la partie de retour d'état.
 
*Objectif : faire le modèle du système par 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 des équations utiles pour le retour d’état.
+
Pour obtenir des équations d'état, il faut d'abord définir des variables et utiliser les équations du modèle utiles pour le retour d’état.
 +
<br>
 +
Nous sommes allé à la bibliothèque pour pour mieux comprendre la variable correspondant à la variable d’état.
 +
<br>
 +
On en a déduit que H= (h1, h2) sont les variables d’état.
 +
<br>
 +
Nous avons donc déterminé les équations d’état sous forme de matrice :
 +
<br>
 +
X’=A*X+B
 +
<br>
 +
Y=C*X+D*U
 
<br>
 
<br>
Nous somme allé à la bibliothèque pour trouver des exemples hydrauliques. Notre modèle est de permier ordre, donc nous avons défini des équations et des paramètres pour ce modèle.
+
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 de trouver la matrice K en utilisant la commande Matlab '''acker'''(A,B,M).
 
<br>
 
<br>
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 trouver des matrices M et K de retour d'état.
+
Nous avons remarqué que notre système est commandable et observable.
 
<br>
 
<br>
Avec des matrices, nous avons modélisé notre modèle par retour d'état.
+
Avec ces matrices, nous avons modélisé notre modèle par retour d'état.
 
+
[[Fichier:schéma retour d'état.jpg]]
 
 
 
 
  
 
== '''Problème rencontré''' ==
 
== '''Problème rencontré''' ==
Ligne 254 : Ligne 229 :
 
====niveau des paramètres====
 
====niveau des paramètres====
  
*la difficulté de définir des paramètres pour le modèle théorique.
+
*la difficulté de définir des paramètres pour la réalisation du modèle théorique.
 
*la difficulté de trouver des bons paramètres du PID( Kp, Ki, Kd ) pour avoir des résultats compréhensibles.
 
*la difficulté de trouver des bons paramètres du PID( Kp, Ki, Kd ) pour avoir des résultats compréhensibles.
 +
 +
 +
 +
 +
 +
= '''Rapport partagé''' =
 +
 +
[[Fichier:rapport_hydraulique.pdf]]

Version actuelle datée du 14 juin 2013 à 13:42


Vidéo HD


Présentation du projet

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 Symbols2000
  • 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 :

  • prise de contact de l'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 obtenu et déterminé la valeur de certains paramètres du modèle. Après avoir entré 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 sommes 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 du modèle.
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.
Nous sommes passé ensuite 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.
L'intérêt de l'outil 'ident' est de simplifier notre modèle en remplaçant le modèle théorique par la fonction de transfert.
Nous avons cherché des utilisations de "ident" sur Internet. On a constaté qu’il existait plusieurs 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é une vidéo qui explique étape par étape comment nous pouvions trouver la fonction de transfert plus rapidement et avec une méthode plus simple.
Voici le lien de la 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éaliser cet objectif, il faut réaliser le modèle avec un correcteur 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élisation réel ).

PID

8,avril

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

  • le développement de connaissance sur le principe du schéma cascade
  • l'analyse du schéma cascade et du retour d’état

10,avril

Durant cette séance, 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é les paramètres PID maître et esclave du schéma cascade de telle sorte à avoir un système stable, précis et rapide. Nous avons alors trouvé:
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 les vacance pours 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'abord définir des variables et utiliser les équations du modèle utiles pour le retour d’état.
Nous sommes allé à la bibliothèque pour pour mieux comprendre la variable correspondant à 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 de trouver la matrice K en utilisant la commande Matlab acker(A,B,M).
Nous avons remarqué que notre système est commandable et observable.
Avec ces 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 la réalisation du modèle théorique.
  • la difficulté de trouver des bons paramètres du PID( Kp, Ki, Kd ) pour avoir des résultats compréhensibles.



Rapport partagé

Fichier:Rapport hydraulique.pdf