Modelica et bond graph : modélisation multi-domaine, analyse et simulation
Description
Ce cours propose d’enrichir votre savoir-faire, ainsi que votre réflexion théorique, sur la modélisation, l’analyse et la simulation des systèmes multiphysiques complexes (ex. : simulation de drones, performance thermique du bâtiment, bioréacteurs…).
Contexte : Les systèmes techniques sont généralement des assemblages de composants (ex. dans une voiture : moteur, alternodémarreur, direction, freins…) et leurs lois de comportement sont souvent issues de disciplines différentes (électricité, mécanique, thermique… ). Ainsi, ces composants sont souvent maitrisés par des personnes différentes. L’ingénierie des systèmes complexes pose donc des difficultés d’échange et de capitalisation des modèles. Cet électif vise à s’approprier deux outils de modélisation couramment utilisés pour répondre à ces besoins : Modelica et les graphes de liaison (bond graphs).
Le bond graph est une description graphique des liens énergétiques entre les composants d’un système. Cette représentation se fonde sur les analogies entre domaines physiques (ex. : inertie mécanique ~ inductance électrique). Avec la modélisation par bond graph, il devient possible de réaliser des analyses structurelles du système modélisé, en particulier à travers la notion centrale de causalité. Ces analyses mettent en lumière le fonctionnement physique et les échanges d’énergie du système.
Modelica est un langage non propriétaire* pour répondre aux besoins suivants :
- Modéliser des systèmes appartenant à plusieurs domaines physiques
- Structurer aisément un modèle en composants réutilisables
- Collaborer efficacement et capitaliser les modèles au sein d’une équipe
*à l’inverse de Simulink/Simscape par exemple
Modelica permet de décrire simplement (graphiquement), puis simuler temporellement des systèmes complexes (quelques milliers de variables). Il gagne donc en popularité dans l’industrie (bâtiment, transport, réseaux électriques…).
Grâce au caractère open source du logiciel utilisé (OpenModelica), vous pourrez réutiliser librement le savoir-faire de ce cours des contextes différents. Au-delà de Modelica, vos compétences acquises sur la structure des modèles et la collaboration seront transposables à bien d’autres environnements.
Numéro de trimestre
Prérequis
Syllabus
Déroulement du cours :
Bond graph (5 h + 2 h travail personnel)
- Principes du formalisme bond graph, analogies entre les domaines
- procédure d’assignation de la causalité
- Analyse des propriétés structurelles
- Extraction des équations d’état
Modelica (14 h + 6 h travail personnel)
- Introduction à Modelica : bref historique, utilisation dans l’industrie, principes
-
Prise en main de Modelica
- Premiers exemples pratiques : ODE, circuit électrique, mécanique.
- Analogies entre les variables : flux et potentiel
- Systèmes hybrides, discontinuité, évènements (exemple d’un redresseur à diode)
-
Structuration de modèles
- Héritage et composition
- Packages
- Création d’un composant physique personnalisé
Versionnement (3 h + 1 h travail personnel, selon le besoin)
Selon le besoin des étudiants, il y aura des exercices d’aide à la prise en main de Git (logiciel de versionnement) et GitLab (plateforme de développement collaboratif).
Projet de modélisation (9 h + 18 h travail personnel)
(“M³ project”: Multiphysics Modeling with Modelica) en groupes de 3-4.
- Exemples de sujets de projets : usine marémotrice, drone, fusible, interrupteur électromagnétique. Nouveauté 2020-2021: modélisation de la dynamique des épidémies (e.g. COVID-19)!
Évaluation finale (2 h, cf. §Méthodes d’évaluation)
Composition du cours
Pour le bond graph, l’enseignement est sous forme de cours-TD.
Pour Modelica, l’enseignement se fait par des séances d’exercices pratiques sur ordinateur avec des points de cours condensés pour introduire les notions clés.
Dans le but de permettre une maitrise concrète de ces deux outils, l’accent est mis sur la pratique au travers de petits exercices en séances, de petits exercices en travail personnel entre les séances et enfin avec le projet final.
Notation
L’évaluation de l’électif repose sur deux activités :
- Examen final théorique, sans documents, sur le bond graph et les fondements de Modelica (50% de la note finale)
- Projet de modélisation (50% de la note finale)
- Une fiche détaillant les objectifs du projet est fournie au démarrage du projet. En regard de ces objectifs, les critères d’évaluation y sont listés précisément.
- La note de projet peut être individualisée au sein d’un groupe
Par ailleurs, cet électif se déroule sous forme de cours appliqués où l'essentiel de l'apprentissage se fait dans les échanges en séance. La participation en classe est donc incontournable pour acquérir les savoirs et compétences de cet électif. La participation et le respect des échéances comptent donc pour une partie de la note finale.
Ressources
Enseignant : Pierre Haessig
Séances sur ordinateur, avec logiciel libre OpenModelica
À noter que l'installation sous macOS est difficile. Il peut être nécessaire de travailler avec une machine virtuelle Linux. En alternative, Parallels Desktop (payant) a été testé avec succès en 2021-2022.
Résultats de l'apprentissage couverts par le cours
Pour le bond graph, il s’agit d’apprendre les concepts de cette représentation pour être capable, sur des exemples simples, de :
- modéliser le système par un bond graph
- y compris en appliquant la procédure d’assignation de la causalité
- analyser les propriétés structurelles du système
- extraire les équations d’états
Pour Modelica, il s’agit de :
- utiliser le langage Modelica et l’environnement de développement OpenModelica pour modéliser et simuler des systèmes dynamiques
- savoir réutiliser des modèles Modelica standards
- structurer un modèle complexe en composants réutilisables
- travailler en équipe sur un même modèle complexe, avec un système de versionnement (git)
Description des compétences acquises à la fin du cours
The skills described above make it possible to validate the following CentraleSupélec engineering skills:
C1: Analyze, design, and build complex systems with scientific, technological, human, and economic components. In particular:
- C1.2: Modeling: using and developing the appropriate models, choosing the correct modeling scale and the relevant simplifying assumptions
- C1.4: Design: specify, implement and validate all or part of a complex system (in this course, the “complex system” to be designed is in fact the Modelica model of a complex system)
C6: Be operational, responsible, and innovative in the digital world. In particular:
- C6.1: Solve a problem numerically (in particular the simulation of dynamical systems)
- C6.2: Design software (the Modelica model being seen as software)
Support de cours, bibliographie
Support du cours Modelica : http://éole.net/courses/modelica/ (en anglais)
- bibliographie détaillée incluse : http://éole.net/courses/modelica/90-references.html
Support du cours Bond graph : diaporama de l'enseignant “Bond Graphs - A graphical language for the analysis of multiphysical systems”. https://cel.archives-ouvertes.fr/hal-03602684
Michael M. Tiller “Modelica by Example”, livre en ligne, publié en 2014 et mis à jour continuellement depuis. URL: mbe.modelica.university.
Geneviève Dauphin-Tanguy et al. “Les bond graphs”, livre Hermès, 2000.