Bond Graph : Différence entre versions
(→8,avril) |
(→vacance printemps) |
||
Ligne 215 : | Ligne 215 : | ||
Nous avons remarqué que notre système est commandable et observable. | Nous avons remarqué que notre système est commandable et observable. | ||
<br> | <br> | ||
− | Avec | + | Avec ces matrices, nous avons modélisé notre modèle par retour d'état. |
[[Fichier:schéma retour d'état.jpg]] | [[Fichier:schéma retour d'état.jpg]] | ||
Version actuelle datée du 14 juin 2013 à 13:42
Sommaire
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.
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,...)
6-7mars
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.
11,mars
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.
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.
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.
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 ).
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.
courbes de h1(en bleu) et h2 (en vert):
vacance printemps
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.
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.