Une fois un modèle créé selon les recommandations du guide de modélisation pour Ladybug, il convient d’y ajouter des paramètres d’entrée qui permettront d’en faire des simulations thermiques dynamiques.

Pour cette documentation, nous reprenons le modèle du guide mentionné ci-dessus, ainsi qu’un fichier Grasshopper qui reprend l’implémentation de ce modèle dans Grasshopper :

Télécharger le modèle d’exemple Rhino

1. Jeux de construction

Les jeux de construction permettent de paramétrer la qualité des matériaux à appliquer sur notre modèle Honeybee. Ce sont des paramètres déterminants dans le cas d’un simulation thermique dynamique. Il convient donc de les paramétrer avec rigueur. Néanmoins, l’interface de Ladybug est quelque peu laborieuse pour gérer cette question efficacement.

Nous développons ici trois méthodes différentes de paramétrage des jeux de construction, pour couvrir l’ensemble des techniques possibles pour créer ses matériaux et les appliquer à la construction simulée.

1.1. Création manuelle d’un jeu de construction

Les types de programmes sont définies par le composant HB ConstructionSet. Ils sont appliqués aux définitions de pièces, dans l’exemple suivant, au composant HB Room from Solid :

Le composant HB ConstructionSet relié au composant HB Room from Solid

Le composant HB ConstructionSet relié au composant HB Room from Solid

Les différentes entrées du jeu de construction peuvent être divisées en deux parties, d’une part les deux premières entrées, qui permettent de définir :

  • Le nom du jeu de construction ;
  • Un jeu de construction de base (ce sujet sera traité ensuite) ;

Puis, les quatre entrées suivantes, qui sont des sous-parties du jeu de construction, dans lequel on devra renseigner :

  • _exterior_subset_ : Un sous-ensemble relatif aux éléments extérieurs ;
  • _ground_subset_ : Un sous-ensemble relatif aux éléments de sol ;
  • _interior_subset_ : Un sous-ensemble relatif aux éléments intérieurs ;
  • _subface_subset_ : Un sous-ensemble relatif aux “sous-faces” (fenêtres, portes, parois vitrées).

Pour chacune de ces sous-ensembles correspondent des composants : HB Exterior Construction Subset, HB Ground Construction Subset, HB Interior Construction Subset, et HB Subface Subset :

Les composants de sous-ensembles qui constituent un jeu de construction

Les composants de sous-ensembles qui constituent un jeu de construction

Les entrées des sous-ensembles précisent chacun des éléments qu’il est possible d’informer. Il n’est pas utile de tout renseigner pour que le jeu de construction fonctionne.

Dans un premier temps, nous allons développer entièrement la définition d’un complexe de mur extérieur : ce processus est assez long, et nécessite de connaître précisément les différents éléments mis en œuvre sur le projet.

Nous aborderons ensuite une approche plus générale, qui permet d’approcher la simulation énergétique plus rapidement et dans des phases où les matériaux ne sont pas encore précisément définis.

Le mur que l’on cherche à décrire est le suivant :

ComposantEpaisseur
Conductivité
Densité
Chaleur spécifique
Enduit à la chaux0.60.70014000.278
Brique creuse GFR20 th+20.00.13810000.183
Pavaflex 03614.00.036550.583
Freine vapeur vario Isover0.10.031100.006
Lame d’air faible venti. 25mm flux asc.2.50.31310.340
Placoplatre BA131.30.3258500.222

Pour définir chacun de ces matériaux, on va utiliser le composant HB Opaque Material :

Le composant HB Opaque Material

Le composant HB Opaque Material

On peut observer que ce composant possède quatre entrées obligatoires :

  • _thickness : l’épaisseur du matériau (en )
  • _conductivity : la conductivité thermique (en )
  • _density : la densité du matériau (en )
  • _spec_heat : la chaleur spécifique (en )

Chacun de ces paramètres est renseigné dans le tableau ci-dessus, dans la bonne unité, à l’exception de la chaleur spécifique qui est donnée en .

La conversion se fait selon ce rapport : .

Selon les fabricants, ces valeurs ne sont pas normalisées et peuvent être données dans des unités différentes. Il est important de vérifier la correspondance avec les unités attendues dans Honeybee.

On peut donc remplir les différentes informations de la brique de cette manière dans le composant HB Opaque Material :

La définition de la brique creuse complétée dans le composant HB Opaque Material

La définition de la brique creuse complétée dans le composant HB Opaque Material

Cette opération est à répéter sur chacun des matériaux, pour constituer toutes les couches qui composent le complexe de mur.

Enfin, une fois ces matériaux renseignés, on peut les assembler dans un composant HB Opaque Construction. Ce composant peut recevoir chacune des couches du complexe de mur, à brancher de l’extérieur vers l’intérieur. L’utilisation d’un composant Merge permet de bien visualiser l’ordre de branchement.

Si vous ne souhaitez pas utiliser le composant Merge, il est possible de connecter plusieurs entrées sur une seule en gardant la touche MAJ appuyée lors du branchement.

Une fois ce mur extérieur défini de cette manière, il peut être branché aux sous-ensemble HB Exterior Construction Subset vu précédemment :

Connexion du mur extérieur au jeu de construction

Connexion du mur extérieur au jeu de construction

Ce processus complet permet d’entrer dans le détail de la composition des éléments constructifs qui composent le bâtiment à analyser. Néanmoins, ce processus est particulièrement lourd et nécessite de connaître précisément les qualités de chacun des éléments constructifs de manière très détaillée.

La suite de ce guide développe donc des alternatives à cette méthode manuelle.

Télécharger le script Grasshopper de l’exemple ci-dessus

Le fichier Grasshopper d'exemple contient les dépendances suivantes, il convient de les installer :

  • Ladybug Tools 1.8.0 (Guide d’installation) ;
  • Bifocals 0.5.0.0 (optionnel, pour l’affichage des noms de composants) ;
  • Moonlight 1.0.0.0 (optionnel, pour l’affichage en mode sombre).

1.2. Utilisation des valeurs par défaut de Honeybee

Honeybee est livré avec un certain nombre de matériaux et de complexes de matériaux prédéfinis qui peuvent être utiles.

1.2.1. Les complexes prédéfinis

Pour naviguer parmi les complexes de matériaux prédéfinis, il faut utiliser le composant HB Search Constructions :

Le composant HB Search Constructions, connecté à un Panel

Le composant HB Search Constructions, connecté à un Panel

Ce composant a trois sorties : lorsqu’on connecte une sortie à un panel, on peut naviguer parmi les complexes de matériaux prédéfinis. Pour préciser sa recherche, il est possible d’entrer des mots-clés en entrée, par exemple “Insulated Exterior” :

Recherche parmi les complexes de matériaux par mot-clé

Recherche parmi les complexes de matériaux par mot-clé

Enfin, pour lire la composition d’un complexe de matériaux et en connaître les caractéristiques, on utilise le composant HB Deconstruct Construction.

Un complexe de matériaux est sélectionné à l'aide d'un List Item, puis entré dans un composant HB Deconstruct Construction

Un complexe de matériaux est sélectionné à l'aide d'un List Item, puis décomposé à l'aide d'un composant HB Deconstruct Construction

Il est intéressant de noter que pour utiliser un complexe de matériaux prédéfini, il suffit d'y faire référence en écrivant exactement son nom dans un Panel. Par exemple, si on souhaite utiliser ce complexe Typical Insulated Exterior Mass Wall-R22 comme mur extérieur pour notre jeu de construction, on peut l'entrer de cette manière-là dans notre script précédent :

 Référencement d'un complexe préexistant en l'appelant avec un Panel

1.2.2. Les matériaux prédéfinis

Pour naviguer plus finement parmi les matériaux prédéfinis, il faut utiliser le composant HB Search Materials. Il fonctionne plus ou moins de la même manière que le comopsant des complexes de matériaux décrit précédemment, et peut recevoir des mot-clés en entrée pour filtrer des résultats :

Le composant HB Search Materials

Le composant HB Search Materials

Pour connaître les caractéristiques (épaisseur, densité, conductivité, etc) d’un matériau, il est possible d’y accéder en utilisant un composant HB Deconstruct Material :

Un matériau est sélectionné à l'aide d'un List Item, puis décomposé à l'aide d'un composant HB Deconstruct Material

Un matériau est sélectionné à l'aide d'un List Item, puis décomposé à l'aide d'un composant HB Deconstruct Material

Même si méthodes permettent d'obtenir rapidement des matériaux et des complexes de matériaux pré-enregistrés, il est important de comparer ces valeurs avec des valeurs connues. En effet, les fabricants et les qualités de matériaux diffèrent selon les pays.

1.2.3. Les jeux de constructions prédéfinis

Enfin, il est possible d’accéder à des jeux de constructions prédéfinis par Honeybee, classés selon leur zone climatique et leur année de construction. Ce processus est explicité dans le tutoriel vidéo de Chris Mackey disponible ici.

Ces jeux de construction ont été réalisés dans un contexte étranger, et la composition des matériaux et des complexes doit être sujet à vérification pour connaître leur validité dans un contexte français.

1.3. Constituer une base de matériaux personnalisée

Cette dernière solution pour la constitution de jeux de construction allie les avantages des deux méthodes précédentes :

  • Facilité d’accès à des matériaux pré-enregistrés ;
  • Contrôle sur les valeurs des matériaux par la constitution d’une base de données personnalisée.

Les matériaux disponibles par défaut dans Ladybug Tools sont enregistrés au format JSON dans un fichier local nommé opaque_material.json, et situé à cet emplacement :

C:\Users\[USERNAME]\ladybug_tools\resources\standards\honeybee_energy_standards\constructions

Le format JSON est un langage dérivé du Javascript, et sa syntaxe est la suivante :

"RESS-Tuiles en terre cuite": {
	"type": "EnergyMaterial",
	"identifier": "RESS-Tuiles en terre cuite",
	"roughness": "MediumRough",
	"thickness": 0.103,
	"conductivity": 0.75,
	"density": 500.0,
	"specific_heat": 840.0,
	"thermal_absorptance": 0.9,
	"solar_absorptance": 0.7,
	"visible_absorptance": 0.7
}

La méthode que nous mettons ici en place consiste à venir modifier ce fichier pour venir y ajouter des matériaux et des valeurs nous-mêmes.

1.3.1. Modification de la base de matériaux

Ce fichier peut être directement modifié à l’aide d’un éditeur de texte adapté (Sublime Text ou VS Code, par exemple).

Néanmoins, dans un soucis pratique, deux scripts ont été réalisés pour faciliter l’édition de la base de matériaux.

1.3.1.1. JSON to CSV

Le script suivant (en Python) permet de transcrire le fichier JSON en CSV :

import json
import csv
 
def json_to_csv(json_file, csv_file):
    with open(json_file, 'r') as f:
        data = json.load(f)
        
    with open(csv_file, 'w', newline='') as f:
        writer = csv.writer(f)
        
        first_material = next(iter(data))
        header = list(data[first_material].keys())
        writer.writerow(['Material'] + header) 
        
        for material, properties in data.items():
            row = [material]
            for key in header:
                if key in properties:
                    row.append(properties[key])
                else:
                    row.append('')
            writer.writerow(row)
 
json_to_csv('opaque_material.json', 'opaque_material.csv')

1.3.1.2. Ajout de matériaux

Une fois le fichier CSV créé, il est possible d’ajouter des matériaux à l’aide d’un éditeur comme Modern CSV :

Interface de Modern CSV

Interface de Modern CSV

Il convient de ne pas utiliser de caractères spéciaux dans ce fichier, en particulier pas de caractères avec accents. Les lettres, chiffres, espaces et tirets sont autorisés.

La principale source utilisée pour remplir les matériaux est UBAKUS. Cette plateforme permet en effet de trouver les trois informations nécessaires au bon ajout du matériau :

  • Conductivité thermique (W/m.K) ;
  • Densité/Masse volumique apparente (kg/m3) ;
  • Chaleur spécifique/Capacité thermique (J/kg.K).

Interface Ubakus

Interface Ubakus

Notre convention interne consiste à placer un préfixe RESS- devant le nom du matériau, permettant de reconnaître les matériaux par défaut et ceux ajoutés par nos soins.

1.3.1.3. CSV to JSON

Le script suivant (en Python) permet de retranscrire le fichier CSV vers du JSON :

import csv
import json
 
def csv_to_json(csv_file, json_file):
    data = {}
    
    with open(csv_file, 'r', newline='') as f:
        reader = csv.reader(f)
        header = next(reader)  
        
        for row in reader:
            material = row[0]
            properties = {}
            for i in range(1, len(row)):
                try:
                    properties[header[i]] = float(row[i])
                except ValueError:
                    properties[header[i]] = row[i]
            
            data[material] = properties
    
    with open(json_file, 'w') as f:
        json.dump(data, f, indent=4)
 
csv_to_json('opaque_material.csv', 'opaque_material.json')

Une fois cette étape réalisée, la base de matériaux a été mise à jour selon les modifications faites dans le tableau CSV.

Si ces actions ont été réalisées alors que Rhino et Grasshopper étaient ouverts, il est nécessaire de les redémarrer pour que les changements dans la base de matériaux prennent effet et que les matériaux soient disponibles dans Ladybug.

1.3.2. Accéder aux matériaux de la base de matériaux

Le script Grasshopper suivant met en évidence la manière dont on peut accéder aux matériaux de la base de matériaux :

Utilisation du composant HB Search Materials et d'un Item Selector pour accéder aux matériaux de la base de matériaux

Utilisation du composant HB Search Materials et d'un Item Selector pour accéder aux matériaux de la base de matériaux - le Panel indiquant RESS en entrée à gauche permet de filtrer les matériaux personnalisés

En utilisant le composant HB Search Materials, l’intégralité des matériaux de la base de matériaux est listé dans la sortie opaque_mats.

La convention qui consiste à ajouter un préfixe RESS- devant le nom des matériaux permet de filtrer les résultats en plaçant un Panel contenant les caractères RESS connecté à l’entrée keywords du composant HB Search Materials.

Enfin, en sortie du composant HB Search Materials, un Item Selector permet de naviguer et de choisir un matériau.

Ce matériau peut ensuite être utilisé pour la création de complexes et de jeux de constructions, comme explicité dans la partie précédente.

1.3.3. Téléchargement de la base de données personnalisée

Pour utiliser les matériaux de notre base de données, réalisée selon la méthode décrite ci-dessus, nous mettons à disposition les fichiers de notre base de données aux formats CSV et JSON.

Télécharger la base de données de matériaux RESSOURCES au format CSV

Télécharger la base de données de matériaux RESSOURCES au format JSON (Pour télécharger le JSON, clic-droit > Enregistrer la cible du lien sous ...)

Ainsi, vous pouvez simplement télécharger le fichier au format JSON et remplacer le fichier situé à l’emplacement suivant :

C:\Users\[USERNAME]\ladybug_tools\resources\standards\honeybee_energy_standards\constructions\opaque_material.json

Cette méthode écrase le fichier d'origine de Ladybug Tools. Néanmoins, nous n'avons pas supprimé d'informations de ce fichier, nous y avons simplement ajouté une série de matériaux supplémentaires. Cette méthode ne supprime donc pas toutes les valeurs disponibles par défaut dans Ladybug Tools.

2. Programmes

Une fois la composition matérielle de la construction définie selon l’une des méthodes précédente, il convient de paramétrer le(s) programme(s) relatif(s) à la construction, soit :

  • le nombre de personnes occupant la pièce ;
  • les besoins en éclairage ;
  • les besoins en équipements électrique ;
  • les besoins en équipements fonctionnant au gaz ;
  • les besoins en eau chaude ;
  • le degré d’infiltration des parois ;
  • les besoins en ventilation ;
  • les consignes de chauffage et de refroidissement.

Un fichier d’exemple comprenant le résultat du guide suivant est disponible ici, il est paramétré pour fonctionner avec ce fichier Rhino d’exemple :

Télécharger le fichier Grasshopper d’exemple de constitution d’un programme

Le fichier Grasshopper d'exemple contient les dépendances suivantes, il convient de les installer :

  • Ladybug Tools 1.8.0 (Guide d’installation) ;
  • Bifocals 0.5.0.0 (optionnel, pour l’affichage des noms de composants) ;
  • Moonlight 1.0.0.0 (optionnel, pour l’affichage en mode sombre).

2.1. Créer un programme

Les programmes sont définis par le composant HB ProgramType. Ils s’appliquent aux définitions de pièces, dans l’exemple suivant, au composant HB Room from Solid.

Le composant HB ProgramType, lié à un composant de définition de pièces HB Room from Solid

Le composant HB ProgramType, lié à un composant de définition de pièces HB Room from Solid

On peut observer les différentes entrées du composant HB ProgramType, qui correspondent aux points mentionnées dans l’introduction de cette partie. Nous allons construire chacun de ces paramètres un par un.

2.1.1. Nom

Ce premier paramètre est simple, mais utile à renseigner pour s’y retrouver à l’avenir. Nous allons ici prendre l’exemple d’une salle de classe, et entrer le nom “Salles de classe” pour ce type de programme à l’aide d’un Panel.

Ajout d’un nom du type de programme à l’aide d’un Panel

Ajout d’un nom du type de programme à l’aide d’un Panel

2.1.2. Programme de base

Cette entrée peut recevoir un autre HB ProgramType, dont les paramètres viendront établir des valeurs par défaut pour le présent type de programme. Pour le moment, nous n’avons aucun type de programme préexistant à utiliser, et pouvons laisser cette entrée vide.

Honeybee est installé avec des types de programmes prédéfinis, qui pourraient servir de programmes de base. Néanmoins, ces programmes ne sont pas établis sur des standards français. C’est pourquoi nous privilégions ici une approche complète de paramétrage. Le script ci-dessous donne un aperçu de l’utilisation des types de programmes prédéfinis d’Honeybee.

 Utilisation d’un programme prédéfini de Honeybee en utilisant les composants HB Building Programs et HB Search Programs

2.1.3. Nombre de personnes

Le composant HB People permet d’ajouter les données relatives aux nombre de personnes occupant la pièce, et se branche au composant HB ProgramType.

Ajout du composant HB People

Ajout du composant HB People

On observe que ce composant a quatre entrées :

Nom de l’entréeInformation attenduePrésence
_name_Nom du type de programmeOptionnel
_ppl_per_areaPersonnes par surface (personnes/m²)Obligatoire
_occupancy_schPlanning d’occupationObligatoire
_activity_schPlanning d’activitéOptionnel

Un nom peut être entré avec un simple Panel, encore une fois optionnel mais utile dans une relecture future du script.

Le nombre de personnes par mètre carré peut être défini de manière dynamique avec des Slider, comme l’exemple ci-dessous.

Définition du nombre de personnes par mètre carré

Définition du nombre de personnes par mètre carré à l’aide de 2 Slider et d’une Division - le résultat est ensuite connecté au composant HB People

Les plannings sont un peu plus complexes à réaliser. Pour cet exemple, on va utiliser le composant HB Weekly Schedule.

Le composant HB Weekly Schedule

Le composant HB Weekly Schedule

Une des interfaces les plus lisibles pour alimenter ce composant est le Gene Pool.

Le composant Gene Pool

Le composant Gene Pool

Ce composant permet de créer une liste de valeurs, qui vont représenter les 24h d’une journées. Pour paramétrer le composant Gene Pool, il faut effectuer cliquer-droit dessus, et choisir Edit…. On peut ensuite entrer les valeurs suivantes :

  • Gene Count : 24 (pour les 24 heures de la journée)
  • Decimals : 1
  • Minimum : 0.0
  • Maximum : 1.0

On obtient alors le composant suivant, paramétrable pour représenter les horaires d’occupation d’une journée classique (ici, une occupation de 8h à 12h, puis de 14h à 18h) :

Le composant Gene Pool paramétré pour représenter une journée type d’occupation

Le composant Gene Pool paramétré pour représenter une journée type d’occupation.

La valeur comprise entre 0.0 et 1.0 constituera un multiplicateur de la première valeur renseignée dans le composant HB People (personne/m²). Ici, nous renseignons des occupations complètement pleines ou complètement vides, mais il serait par exemple possible de renseigner une classe à moitié occupée entre 18h et 19h en plaçant le curseur sur 0.5.

Une fois ce composant terminé, on peut le brancher au HB Weekly Schedule, et compléter les autres paramètres requis avec des simples Panel.

Le composant HB Weekly Schedule renseigné avec notre planning d’occupation de la pièce et connecté au composant HB People

Le composant HB Weekly Schedule renseigné avec notre planning d’occupation de la pièce et connecté au composant HB People

Lorsqu’une valeur unique est renseignée pour une journée (par exemple ici dans les entrées "samedi", "dimanche", et "vacances", elle est appliquée pour toute la journée. Ici on a donc indiqué une inoccupation pour ces jours.

Enfin, un planning d’activité peut également être renseigné, mais n’est pas obligatoire. La valeur entrée par défaut ici est de 120 W par personne. Il est possible de moduler cette valeur en utilisant un composant de planning constant, un HB Constant Schedule. Dans notre cas, la modulation de cette valeur est intéressante puisque les enfants d’une salle de classe sont plus proches de 90 W que de 120 W.

Le composant HB Constant Schedule paramétré pour indiquer un niveau d'activité

Le composant HB Constant Schedule paramétré pour indiquer un niveau d'activité

On entre la valeur 90 qui sera affectée en continu sur le planning, et le type de limite “Activity Level” à l’aide de deux Panel. Ce planning constant peut ensuite être connecté au composant HB People :

Le composant HB People entièrement renseigné

Le composant HB People entièrement renseigné

2.1.4. Eclairage artificiel

Le composant HB Lighting permet d’ajouter les données relatives à l’éclairage artificiel de la pièce, et se branche au composant HB ProgramType.

Ajout du composant HB Lighting

Ajout du composant HB Lighting

On observe que ce composant a sept entrées :

Nom de l’entréeInformation attenduePrésence
_name_NomOptionnel
_watts_per_areaWatts par surface ()Obligatoire
_schedulePlanning d’utilisation de l’éclairageObligatoire
_radiant_fract_Fraction de la charge d’éclairage totale émise sous forme de chaleur radiante à ondes longues (entre 0 et 1)Optionnel
_visible_fract_Fraction de la charge d’éclairage totale émise sous forme de lumière visible à ondes courtes (entre 0 et 1)Optionnel
return_fract_Fraction de la charge d’éclairage totale qui va dans l’air de restitution de la zone (dans le point de sortie de la zone).Optionnel
baseline_Un nombre facultatif pour la densité de puissance d’éclairage de référence en W/m² de surface au sol.Optionnel

On va ici se concentrer sur les entrées obligatoires, en laissant de côté les 4 dernières entrées optionnelles. La seconde entrée de Watts par surface () peut être calculée à partir des installations existantes dans le cas d’un bâtiment existant, ou à partir des éclairages projetés.

Les valeurs suivantes sont données à titre d’exemple pour une classe :

  • Eclairage ancien, tubes néons :  ;
  • Eclairage neuf, tubes LED équivalents : .

Le planning d’utilisation d’éclairage peut être le même que le planning d’occupation réalisé dans la partie précédente.

Ajout des connections pour le composant HB Lighting

Ajout des connections pour le composant HB Lighting

2.1.5. Equipements électriques

Le composant HB Equipment permet d’ajouter les données relatives à l’équipement électrique de la pièce, et se branche au composant HB ProgramType.

Ajout du composant HB Equipment

Ajout du composant HB Equipment

On observe que ce composant a sept entrées :

Nom de l’entréeInformation attenduePrésence
_name_NomOptionnel
_watts_per_areaWatts par surface ()Obligatoire
_schedulePlanning d’utilisation de l’éclairageObligatoire
_radiant_fract_Fraction de la charge d’éclairage totale émise sous forme de chaleur radiante à ondes longues (entre 0 et 1)Optionnel
latent_fract_Fraction de la charge totale de l’équipement qui est latente (par opposition à sensible)Optionnel
lost_fract_Fraction de la charge totale de l’équipement qui est perdue en dehors de la zone et du système CVC. Généralement, cette fraction est utilisée pour représenter la chaleur qui est évacuée directement hors d’une zone (comme pour un poêle).Optionnel
gas_Booléen à mettre à True s’il s’agit d’un équipement à gazOptionnel

On va ici se concentrer sur les entrées obligatoires, en laissant de côté les 4 dernières entrées. La seconde entrée de Watts par surface () peut être calculée à partir des installations existantes dans le cas d’un bâtiment existant, ou à partir des éclairages projetés.

Les valeurs suivantes sont données à titre d'exemples.

Ecran ordinateur16 W5h/jour
Ordinateur fixe100 W5h/jour
Ordinateur portable100 W5h/jour
Vidéo projecteur450 W2h/jour
Cafetière1200 W1h/jour
Imprimante500 W1h/jour

De même que pour l’éclairage, on utilise ici pour le planning d’utilisation d’équipements électriques le même que le planning d’occupation.

De même que pour l’éclairage, on utilise ici pour le planning d’utilisation d’équipements électriques le même que le planning d’occupation.

Ajout du composant HB Equipment à la définition du programme

Ajout du composant HB Equipment à la définition du programme

2.1.6. Besoins en eau chaude

Le composant HB Hot Water permet d’ajouter les données relatives aux besoins en eau chaude, et se branche au composant HB ProgramType.

Ajout du composant HB Hot Water

Ajout du composant HB Hot Water

On observe que ce composant a six entrées :

Nom de l’entréeInformation attenduePrésence
_name_NomOptionnel
_flow_per_areaDébit volumétrique total de l’eau par unité de surface du sol ()Obligatoire
_schedulePlanning d’utilisation de l’eau chaudeObligatoire
_target_temp_Température de consigne du robinet (en °C)Optionnel
_sensible_fract_Fraction de la charge totale d’eau chaude cédée sous forme de chaleur sensible dans la zone.Optionnel
_latent_fract_Fraction de la charge totale d’eau chaude qui est latente (par opposition à sensible)Optionnel

On va ici se concentrer sur les entrées obligatoires, en laissant de côté les 4 dernières entrées. Pour obtenir la valeur du débit d’au par mètre carré, on va rechercher une valeur de programme prédéfinie par Honeybee. Dans le cas présent, une salle de classe n’a en réalité pas de besoin en eau chaude, on va donc rechercher la valeur pour des sanitaires d’école.

Pour trouver une valeur prédéfinie par Honeybee, on va naviguer parmi les types de programmes, et les déconstruire pour connaître leurs valeurs, à l’aide des composants HB Deconstruct ProgramType et HB Deconstruct Hot Water.

Définition permettant d’accéder à la valeur par défaut d'Honeybee pour le débit par mètre carré d’eau chaude dans le cas de sanitaires en milieu scolaire

Définition permettant d’accéder à la valeur par défaut d'Honeybee pour le débit par mètre carré d’eau chaude dans le cas de sanitaires en milieu scolaire

Les valeurs suivantes sont données à titre d’exemple :

  • Sanitaires d’école primaire : 1.12574
  • Cuisine d’école primaire : 2.253639
  • Appartement générique : 0.149258

De même que pour les deux points précédents (éclairage et équipements électriques), on utilise ici pour le planning de besoin d’eau chaude la même source que le planning d’occupation.

Il est également possible de consulter les plannings par défaut implémentés dans Honeybee, à l'aide des composants HB Schedule to Data et LB Hourly Plot, utilisés comme ceci :

 Déconstruction et visualisation des plannings prédéfinis d’Honeybee pour les besoins en eau chaude

Enfin, le composant HB Hot Water peut être relié au HB ProgramType :

Ajout de HB Hot Water au HB ProgramType en utilisant les valeurs prédéfinies de Honeybee

Ajout de HB Hot Water au HB ProgramType en utilisant les valeurs prédéfinies de Honeybee

2.1.7. Infiltration

Ce paramètre a une grande influence sur la simulation énergétique. Il est représenté par le composant HB Infiltration, branché au composant HB ProgramType.

Le composant HB Infiltration, connecté au composant HB ProgramType

Le composant HB Infiltration, connecté au composant HB ProgramType.

On observe que ce composant a trois entrées :

Nom de l’entréeInformation attenduePrésence
_name_NomOptionnel
_flow_per_ext_areaValeur numérique de l’intensité de l’infiltration en m³/s par mètre carré de surface extérieure (m³/s.m²)Obligatoire
_schedulePlanning pour moduler l’infiltration.Optionnel

Des valeurs typiques sont données par Honeybee pour définir l’infiltration du bâtiment :

  • 0,0001 (m³/s par m² de façade) : Bâtiment étanche ;
  • 0,0003 (m³/s par m² de façade) : Bâtiment moyen ;
  • 0,0006 (m³/s par m² de façade) : Bâtiment non étanche.

Dans le cas présent, nous utilisons une valeur moyenne.

Un planning peut également être ajouté, pour modéliser par exemple des infiltrations plus grandes à des horaires précis. Ce cas peut par exemple se présenter pour un magasin qui présente de plus grandes infiltrations aux horaires d’ouvertures à cause de la surface des ouvrants et de leur fréquence d’utilisation. Ici, nous ne renseignerons pas de planning.

Une fois l’infiltration renseignée à l’aide d’un Panel, nous pouvons la connecter au HB ProgramType.

Ajout du composant HB Infiltration à la définition du type de programme

Ajout du composant HB Infiltration à la définition du type de programme

2.1.8. Ventilation mécanique

Le composant HB Ventilation permet d’ajouter les données relatives à la ventilation mécanique, et se branche au composant HB ProgramType.

Le composant HB Ventilation, connecté au composant HB ProgramType

Le composant HB Ventilation, connecté au composant HB ProgramType

On observe que ce composant a six entrées :

Nom de l’entréeInformation attenduePrésence
_name_NomOptionnel
_flow_per_person_Intensité de la ventilation en mètre cubes par seconde par personne (m³/s par personne)Optionnel
_flow_per_area_Intensité de la ventilation en mètre cubes par seconde par mètre carré (m³/s par m²)Optionnel
_flow_per_zone_Intensité de la ventilation en mètre cubes par seconde par pièce (m³/s par pièce)Optionnel
_ach_Une valeur numérique pour le niveau de conception de la ventilation en changements d’air par heure (ACH) pour l’ensemble de la zone.Optionnel
_schedule_Planning de ventilationOptionnel

On utilisera ici l’entrée _flow_per_person_ notamment pour sa correspondance avec les unités des normes de ventilation en salle de classe (m³/h par personne).

Une courte conversion réalisée dans Grasshopper permet d’entrer la valeur en m³/h par personne, et de la récupérer en m³/s par personne, comme attendu dans le composant HB Ventilation :

Conversion de la valeur d’entrée

Conversion de la valeur d’entrée

On utilise enfin le même planning que le planning d’occupation.

Ajout du composant HB Ventilation à la définition du type de programme

Ajout du composant HB Ventilation à la définition du type de programme

2.1.9. Consignes de chauffage et de refroidissement

Le composant HB Setpoint permet d’ajouter les données relatives aux consignes de chauffage et de ventilation, et se branche au composant HB ProgramType.

Le composant HB Setpoint, connecté au composant HB ProgramType

Le composant HB Setpoint, connecté au composant HB ProgramType

On observe que ce composant a cinq entrées :

Nom de l’entréeInformation attenduePrésence
_name_NomOptionnel
_heating_schPlanning de chauffageObligatoire
_cooling_schPlanning de refroidissementObligatoire
humid_setpt_Consigne d’humidificationOptionnel
dehumid_setpt_Consigne de déshumidificationOptionnel

Nous ne renseignerons ici que les plannings de chauffage et de refroidissement. Pour les créer, nous utilisons la même technique que pour la définition de l’occupation par les individus avec un Gene Pool et un HB Weekly Schedule. Nous allons simplement modifier les paramètres du Gene Pool pour avoir des valeurs minimales et maximales correspondant à des consignes de chauffe, dans le cas présent : 12 °C et 19 °C.

Définition d’un planning de consigne de chauffe pour la salle de classe

Définition d’un planning de consigne de chauffe pour la salle de classe.

Il est également à noter que nous ajoutons dans l’entrée _type_limit_ le texte “Temperature”. L’ajout de ce Panel est indispensable à la bonne interprétation du planning par le composant HB Setpoint.

Pour compléter le composant HB Setpoint, nous devons également fournir un planning de refroidissement. Néanmoins, l’installation de climatisation n’étant pas aussi répandue en France qu’aux Etats-Unis, nous allons créer un planning “abstrait” qui empêche simplement l’allumage de la climatisation dans la simulation.

Pour cela, nous utilisons un planning constant, un HB Constant Schedule, que nous paramétrons à 50 °C : tant que la température intérieure est inférieure à 50 °C, la climatisation ne se mettra pas en marche.

Définition d’un planning 'abstrait' pour le refroidissement

Définition d’un planning 'abstrait' pour le refroidissement

Une fois ces deux plannings réalisés, on peut les connecter au composant HB Setpoint et les associer ainsi au type de programme.

Définition complète d’un programme de salle de classe fictif

Définition complète d’un programme de salle de classe fictif

Arrivé à cette étape, nous avons terminé la définition d’un type de programme. Nous allons détailler la marche à suivre pour associer ce type de programme à l’une des trois pièces du modèle d’exemple.

2.2. Affectation d’un programme à des pièces

Pour le moment, le script produit nous a permis de définir un type de programme : il est maintenant temps de l’associer à des pièces, pour qu’elles reçoivent ces informations d’usage et de confort recherché.

Dans le guide Modéliser pour Ladybug, nous avons mis en place un processus qui permet de définir des pièces, principalement à l’aide du composant HB Room from Solid. En revenant à ce composant, on peut observer qu’il contient une entrée _program_, qui est destiné à recevoir la sortie de notre composant HB ProgramType créé dans la partie précédente.

Néanmoins, le composant HB Room from Solid, tel que nous l’avons utilisé jusqu’ici, contient l’ensemble des pièces du modèle (en l’occurrence, avec le fichier d’exemple, deux grandes pièces et une circulation). Lors de la création des types de programmes, on a observé que différentes exigences s’appliquent selon la fonction de la pièce, et il est donc important de pouvoir appliquer des types de programmes plus finement à chaque pièce.

Pour entrer dans ce niveau de détail, nous allons diviser la géométrie d’entrée avant de créer les pièces dans Honeybee, en utilisant des List Item.

Pour rappel, le script initial de définition des pièces suivait cette logique :

Script initial utilisé pour la définition des pièces à partir de la géométrie Rhino

Script initial utilisé pour la définition des pièces à partir de la géométrie Rhino

Le composant List Item permet de parcourir une liste d’éléments et d’en sélectionner à l’aide de leur index. Si on part de la géométrie initiale (les 3 pièces), et qu’on les connecte à un List Item, on peut indiquer dans l’entrée i l’index de l’élément que l’on souhaite sélectionner. L’utilisation d’un Slider permet ici de naviguer parmi les 3 géométries :

Utilisation du composant List Item avec une sélection par Slider

Utilisation du composant List Item avec une sélection par Slider

Il est également possible de sélectionner plusieurs éléments en entrant une liste à l’aide d’un Panel plutôt qu’un seul chiffre :

Utilisation du composant List Item avec une sélection par liste

Utilisation du composant List Item avec une sélection par liste

Dans cet exemple, écrire 0, puis 1 à la ligne dans un Panel produira une erreur. Pour que ces données soient comprises comme une liste, il faut l’indiquer en faisant un clic-droit sur le Panel, et en cliquant sur Multiline Data.

En informatique, les listes démarrent à partir de 0 et non à partir de 1, le Panel utilisé ici sélectionne bien les deux premiers objets de la liste. Pour en savoir plus, consulter la page Wikipédia correspondante à ce concept (Zero-based numbering).

Dans notre exemple, l’utilisation du List Item vient après le composant HB Intersect Solids, pour générer deux types de pièces : les deux grandes pièces, et la circulation.

Utilisation des List Item pour diviser le modèle en deux types de pièces : classes et circulation

Utilisation des List Item pour diviser le modèle en deux types de pièces : classes et circulation

On notera également ici l’ajout de Panel aux entrées _name_ des composants HB Room from Solid, qui permettent de rendre lisible les types d’espaces créés.

Nommer les pièces est généralement une bonne pratique qui permet d’obtenir des données plus lisibles en fin de simulation. Il est préférable d’éviter les espaces ou les caractères spéciaux.

On peut enfin assigner aux pièces correspondant à des classes le type de programme réalisé dans la première précédente. Un autre type de programme sera à créer pour la circulation.

Connexion du HB ProgramType aux deux salles de classe

Connexion du HB ProgramType aux deux salles de classe