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 :
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
:
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 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 :
Composant | Epaisseur | Conductivité | Densité | Chaleur spécifique |
---|---|---|---|---|
Enduit à la chaux | 0.6 | 0.700 | 1400 | 0.278 |
Brique creuse GFR20 th+ | 20.0 | 0.138 | 1000 | 0.183 |
Pavaflex 036 | 14.0 | 0.036 | 55 | 0.583 |
Freine vapeur vario Isover | 0.1 | 0.031 | 10 | 0.006 |
Lame d’air faible venti. 25mm flux asc. | 2.5 | 0.313 | 1 | 0.340 |
Placoplatre BA13 | 1.3 | 0.325 | 850 | 0.222 |
Pour définir chacun de ces matériaux, on va utiliser 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
:
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 :
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.
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
:
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” :
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
.
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 complexeTypical 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 :
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 :
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
:
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 :
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).
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 :
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
.
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
.
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.
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
.
On observe que ce composant a quatre entrées :
Nom de l’entrée | Information attendue | Présence |
---|---|---|
_name_ | Nom du type de programme | Optionnel |
_ppl_per_area | Personnes par surface (personnes/m²) | Obligatoire |
_occupancy_sch | Planning d’occupation | Obligatoire |
_activity_sch | Planning 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.
Les plannings sont un peu plus complexes à réaliser. Pour cet exemple, on va utiliser le composant HB Weekly Schedule
.
Une des interfaces les plus lisibles pour alimenter ce composant est le 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) :
La valeur comprise entre
0.0
et1.0
constituera un multiplicateur de la première valeur renseignée dans le composantHB 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 sur0.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
.
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.
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
:
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
.
On observe que ce composant a sept entrées :
Nom de l’entrée | Information attendue | Présence |
---|---|---|
_name_ | Nom | Optionnel |
_watts_per_area | Watts par surface () | Obligatoire |
_schedule | Planning d’utilisation de l’éclairage | Obligatoire |
_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.
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
.
On observe que ce composant a sept entrées :
Nom de l’entrée | Information attendue | Présence |
---|---|---|
_name_ | Nom | Optionnel |
_watts_per_area | Watts par surface () | Obligatoire |
_schedule | Planning d’utilisation de l’éclairage | Obligatoire |
_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 à gaz | Optionnel |
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 ordinateur | 16 W | 5h/jour |
---|---|---|
Ordinateur fixe | 100 W | 5h/jour |
Ordinateur portable | 100 W | 5h/jour |
Vidéo projecteur | 450 W | 2h/jour |
Cafetière | 1200 W | 1h/jour |
Imprimante | 500 W | 1h/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.
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
.
On observe que ce composant a six entrées :
Nom de l’entrée | Information attendue | Présence |
---|---|---|
_name_ | Nom | Optionnel |
_flow_per_area | Débit volumétrique total de l’eau par unité de surface du sol () | Obligatoire |
_schedule | Planning d’utilisation de l’eau chaude | Obligatoire |
_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
.
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
etLB Hourly Plot
, utilisés comme ceci :
Enfin, le composant HB Hot Water
peut être relié au HB ProgramType
:
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
.
On observe que ce composant a trois entrées :
Nom de l’entrée | Information attendue | Présence |
---|---|---|
_name_ | Nom | Optionnel |
_flow_per_ext_area | Valeur numérique de l’intensité de l’infiltration en m³/s par mètre carré de surface extérieure (m³/s.m²) | Obligatoire |
_schedule | Planning 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
.
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
.
On observe que ce composant a six entrées :
Nom de l’entrée | Information attendue | Présence |
---|---|---|
_name_ | Nom | Optionnel |
_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 ventilation | Optionnel |
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
:
On utilise enfin le même planning que le planning d’occupation.
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
.
On observe que ce composant a cinq entrées :
Nom de l’entrée | Information attendue | Présence |
---|---|---|
_name_ | Nom | Optionnel |
_heating_sch | Planning de chauffage | Obligatoire |
_cooling_sch | Planning de refroidissement | Obligatoire |
humid_setpt_ | Consigne d’humidification | Optionnel |
dehumid_setpt_ | Consigne de déshumidification | Optionnel |
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.
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.
Une fois ces deux plannings réalisés, on peut les connecter au composant HB Setpoint
et les associer ainsi au type de programme.
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 :
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 :
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 :
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 lePanel
, et en cliquant surMultiline 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.
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.