• Aucun résultat trouvé

Chapitre II : Simulation du comportement énergétique des bâtiments basse

1 Outils de simulation et bâtiments basse consommation

1.2 Environnements de simulation existants

1.2.1 Architecture logicielle des environnements de simulation

Les outils de simulation diffèrent à la fois par leur objectif (calculs de besoins de chauffage, évaluation des consommations, dimensionnement de systèmes etc.) et par leur structure propre. Ils peuvent être classés en trois catégories (Mora 2003) :

 Les environnements monolithiques

 Les environnements modulaires

 Les environnements basés sur les systèmes d’équations

Nous présenterons ici, pour chaque catégorie d’environnement, leurs caractéristiques, leurs avantages et leurs inconvénients. Avant cela, et pour éviter les confusions, revenons sur un concept qui est utilisé par des environnements de simulations appartenant à chacune de ces trois catégories : la programmation orientée objet.

Programmation orientée objet

La programmation orientée objet se base sur la notion fondamentale d’objet. Un

objet représente un concept, une idée ou une entité du monde physique, comme une porte, une maison ou une touche de clavier d’ordinateur. Dans le monde informatique, un objet se traduit par une structure de données, ce qui sous-entend la gestion, la classification et le stockage de celles-ci. L’objet regroupe donc en son sein les données et les moyens de traitement des données.

1 Outils de simulation et bâtiments basse consommation 1.2 Environnements de simulation existants

Un programme ou un langage de programmation est dit « orienté objet » s’il possède les caractéristiques suivantes (Eckel 2002) :

Encapsulation des données et des méthodes au sein de classes

L’encapsulation traduit directement le concept d’objet. L’idée est de rassembler dans une même entité appelée « classe » les structures de données, les fonctions et les procédures qui réalisent le traitement de données. Les classes sont en quelque sorte les types de briques qui constituent le programme, les briques elles mêmes étant appelées « objet » (plusieurs objets peuvent être issus de la même classe). L’intérêt de ce concept est de concevoir des parties de code robustes et réutilisables dans d’autres codes. Il permet aussi de segmenter le développement du code et donc d’en faciliter la maintenance et l’ajout de fonctionnalités.

Héritage des classes

Le principe de l’héritage réside dans le fait que de nouvelles classes appelées classes « filles » héritent des propriétés des classes d’origine appelées classes « mères ». Ainsi, si une classe mère « bâtiment » possède les données « mur », « porte », « adresse », et la méthode « maintenir une ambiance intérieure donnée », la classe fille « maison » hérite de ces données et de ces méthodes mais peut aussi en avoir d’autres comme « fenêtre », « jardin », « protéger de l’effraction » etc.

Polymorphisme

Le polymorphisme correspond à la possibilité pour un opérateur ou une fonction d'être utilisable dans des contextes différents. Par exemple, si on définit une fonction relative à la géométrie plane « agrandir de 50% », il faut que cette fonction soit applicable à la fois à des classes différentes telles qu’un triangle, un carré ou encore un cercle. Cette propriété permet encore une fois d’augmenter la lisibilité du code.

Il faut bien comprendre que ce n’est pas parce qu’un environnement de simulation est basé sur un langage de programmation objet qu’il sera lui-même orienté objet. De même, il est possible de faire un programme orienté objet sans utiliser de langage de programmation orienté objet. On retrouve donc des environnements basés sur les équations, modulaires, ou même monolithiques utilisant ce type de langage. Voyons maintenant en détail ces différents environnements.

Environnements monolithiques

Les environnements monolithiques se caractérisent par une architecture de calcul conçue en un seul bloc algorithmique. Ils sont faits pour répondre à un besoin précis en terme de simulation (calcul des besoins de chauffage, calcul des consommations,

dimensionnement de systèmes etc.). Leurs fonctionnalités sont définies lors de leur conception et en raison de leur structure figée, il est assez difficile de les modifier par la suite, ce qui constitue l’inconvénient principal de ce genre d’environnement. L’avantage de cette restriction des fonctionnalités est que le développeur peut choisir des méthodes de calcul adaptées au problème et ainsi fortement gagner en efficacité au niveau de la résolution. Le tableau II.1 présente les principales caractéristiques, les avantages et les inconvénients de ce type d’environnement.

Environnements monolithiques

Caractéristiques Avantages Inconvénients - Architecture algorithmique

monobloc

- Fonctionnalités définies lors de la conception - Données entrée / sortie prédéfinies

- Efficacité et facilité d’utilisation - Interface utilisateurs souvent graphique

- Méthodes de calcul adaptées au problème spécifique ; donc faible temps de calcul

- Sorties limitées - Code souvent de type « boîte noire » ou difficile à comprendre

- Difficile de modifier le code pour ajouter des fonctionnalités

Tableau II.1 : Caractéristiques, avantages et inconvénients des environnements de simulation monolithiques Environnements modulaires

Pour pallier la difficulté de modifier les environnements monolithiques, des environnements modulaires sont apparus en s’inspirant de l’approche objet. Pour Sahlin (1996) un environnement modulaire doit répondre aux deux critères suivants :

 Les modèles sont traités en tant que données. La caractéristique principale d’un environnement de simulation modulaire réside dans le fait que les modèles mathématiques sont interchangeables, l’environnement permet donc à des modèles radicalement différents d’être utilisés pour décrire le même phénomène physique.

 La modélisation et la méthode de résolution sont séparées dans les modules. Bien que peu d’environnements modulaires permettent de sélectionner le solveur, l’architecture doit donc permettre d’en changer.

Dans un environnement modulaire, la construction du code passe par l’assemblage de modules pour la formulation et la résolution du problème, chaque module réalisant une tâche élémentaire. L’intérêt de ce type d’approche est de permettre la création d’une banque de modules spécialisés que l’on peut réutiliser pour différentes applications. L’inconvénient principal est que les modules sont orientés a priori c'est-à-dire que les entrées et les sorties et donc le sens de résolution du problème sont fixés. On est obligé, pour résoudre un problème dans le sens inverse, de développer un

1 Outils de simulation et bâtiments basse consommation 1.2 Environnements de simulation existants

nouveau module alors que les équations qui régissent le phénomène sont bien souvent les mêmes que dans le module de base.

Environnements modulaires

Caractéristiques Avantages Inconvénients - Structure basée sur des

modules directionnels - Langage de connexion directionnel

- Changement de solveur possible

- Facilité d’interchanger des modèles (facilité de développement) - Librairie de modèles souvent très fournie - Interface utilisateurs souvent ergonomique

- Prise en main assez longue pour l’utilisateur

- Résolution orientée des problèmes

- Les modèles peuvent être des boîtes noires

Tableau II.2 : Caractéristiques, avantages et inconvénients des environnements de simulation modulaires Environnements basés sur les systèmes d’équations

Les environnements de simulation basés sur les systèmes d’équations permettent d’éviter le problème du sens de résolution inhérent aux environnements modulaires. En effet, ils permettent de formuler le problème à résoudre uniquement en terme d’association d’équations et de systèmes d’équations. L’utilisateur de ce genre d’environnement n’a donc pas à ce soucier a priori de la façon dont le calcul est réalisé, l’agencement des équations étant réalisé par un assembleur interne. On peut ainsi se focaliser sur la description physique du problème à traiter sans avoir à se soucier du codage qu’il y aura derrière.

Environnements basés sur les systèmes d’équations

Caractéristiques Avantages Inconvénients - Spécification du problème

basé uniquement sur les équations -Connexion non directionnelle - Structuration hiérarchisée - Techniques de résolution ambitieuses

- Non orientation a priori du problème

- Procédure de résolution adaptée choisie par l’environnement

- Lisibilité totale du code (boîte blanche)

- Prise en main assez longue pour l’utilisateur

- Interface utilisateur souvent peu ergonomique.

Tableau II.3 : Caractéristiques, avantages et inconvénients des environnements de simulation basés sur les systèmes d’équations

On peut ajouter aux avantages de ce type de code le fait qu’il permet un couplage simple entre des domaines scientifiques différents en procédant par connexion des variables des équations issues de chacun des domaines considérés.