Modelica et bond graph : modélisation multi-domaine, analyse et simulation

Ref: 2EL6050

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

SG6

Prérequis

aucun

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 :

  1. Examen final théorique, sans documents, sur le bond graph et les fondements de Modelica (50% de la note finale)
  2. 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)

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.