| Description |
|---|
| Cette macro calcule le flux thermique dans une direction due à la convection et (ou) à la conduction, lorsque le phénomène est en état stationnaire. Elle calcule également les températures entre les couches des matériaux. Version macro : 0.0.2 Date dernière modification : 14/09/2025 Version FreeCAD : Toutes Téléchargement : Text-x-python.png Auteur: Garlic |
| Auteur |
| Garlic |
| Téléchargement |
| Text-x-python.png |
| Liens |
| Documentation sur le flux thermique, la convection et la conduction Page des macros Comment installer une macro Comment créer une barre d'outils |
| Version Macro |
| 0.0.2 |
| Dernière modification |
| 14/09/2025 |
| Version(s) FreeCAD |
| Toutes |
| Raccourci clavier |
| None |
| Voir aussi |
| None |
Il s'agit d'un algorithme qui calcule le flux thermique dû à la conduction et/ou à la convection dans une seule direction (par exemple, un mur composé de plusieurs couches de matériaux tels que du plâtre, des briques et de l'isolant, ou une fenêtre à double vitrage avec une cavité remplie d'air, etc.). Le phénomène doit être en état stationnaire (c'est-à-dire non variable dans le temps).
Les données doivent être saisies dans un tableur dans FreeCAD et les résultats sont écrits dans le même tableur, quelques lignes en dessous de la dernière ligne écrite. Ces données d'entrée doivent inclure (dans un ordre spécifique) les propriétés thermiques des matériaux des couches dans lesquelles le flux thermique se produit, l'épaisseur de chaque couche, la surface, la température du premier et du dernier point dans la direction du flux thermique, le type de phénomène dans chaque couche (par exemple conduction, ou convection forcée, ou convection libre sur une surface horizontale, verticale, inclinée ou dans une cavité fermée). Les résultats sont le débit thermique (en watts), la précision relative des calculs (l'algorithme utilise des équations de flux thermique et résout le problème par itérations, en essayant de converger) et les températures calculées des deux surfaces sur chaque couche.
Notez que vous ne devez effectuer les étapes suivantes qu'une seule fois :
Ici, vous trouverez plus d'informations sur la manière d'installer manuellement des macros.
Les exemples suivants montrent comment utiliser ce script.
Dans cet exemple, le débit thermique qui traverse une fenêtre à double vitrage est calculé. On sait que la température ambiante à l'intérieur de la pièce est de 25 °C et que la température ambiante à l'extérieur de la fenêtre est de 10 °C. La fenêtre mesure 0.57 m de haut et 0.43 m de large (soit une surface de 0.2451 m2). L'épaisseur de chaque vitre est de 4 mm (soit 0.004 m) et l'espace entre les deux vitres est de 16 mm.
Pour utiliser l'algorithme, ouvrez d'abord l'application FreeCAD. Ensuite, sélectionnez le atelier Spreadsheet, créez un nouveau document et, après cela, créez une nouvelle
feuille de calcul.
L'algorithme recherche la première colonne du tableur afin de trouver le premier nombre. Lorsqu'il le trouve, il suppose qu'il s'agit de l'identifiant de la première couche. Il recherche ensuite l'identifiant de la deuxième couche. Si cinq lignes consécutives ne contiennent pas de nombre dans la première colonne, il suppose qu'il n'y a pas d'autres couches. Les lignes situées entre les données des couches peuvent être utilisées pour écrire les unités, les commentaires, etc. Les propriétés de chaque couche doivent être écrites dans un ordre spécifique.
Pour cet exemple, les données du tableur peuvent être écrites comme illustré dans l'image ci-dessous.
La ligne 4 contient les données de la couche dont l'identifiant est 1. Il s'agit de la couche dans laquelle se produit la convection entre l'air ambiant à l'extérieur de la fenêtre et la surface extérieure du vitrage extérieur de la fenêtre. Les unités des données sont exprimées en S.I. (système métrique).
Temp. 1 est la température ambiante extérieure, en kelvins (qui est connue : 10 °C + 273,15 = 283,15 K).
Temp. 2 est la température de la surface extérieure du verre extérieur et est estimée approximativement à 286,15 K. Il s'agit d'une valeur initiale permettant au solveur de démarrer la première itération. Cette température sera calculée et présentée dans les résultats. Afin d'estimer une valeur initiale, nous avons utilisé l'équation suivante : (25 - 10) / 5 = 3, où 25 °C est la température intérieure, 10 °C est la température extérieure et 5 est le nombre de couches. Nous avons donc ajouté 3 à 283,15 K.
0,2451 m2 est la superficie de la fenêtre.
2 est le nombre qui spécifie la catégorie « convection libre sur une surface inclinée ou verticale » (en tant que mécanisme de transfert thermique dans cette couche).
101325 Pa correspond à la pression atmosphérique au niveau de la mer.
0,7 (70 % / 100) correspond à l'humidité relative de l'air ambiant extérieur.
0,57 m est la longueur caractéristique (pour une convection libre sur un plan vertical, la longueur caractéristique correspond à la hauteur du plan).
0 degré est l'angle entre le plan et la verticale.
Notez que pour que l'algorithme puisse comprendre les données, celles-ci doivent être écrites dans l'ordre ci-dessus (sans cellules vides entre elles), lorsque le mécanisme de transfert thermique est une convection libre sur un plan vertical.
La ligne 7 contient les données relatives à la couche sur laquelle la conduction se produit sur le verre extérieur de la fenêtre. 2 est l'identifiant de cette couche.
Temp. 1 est la température de la surface extérieure du verre extérieur et est estimée approximativement à 286,15 K (elle doit avoir la même valeur que la temp. 2 de la couche précédente, puisqu'elle se réfère à la même surface).
Temp. 2 est la température de la surface interne du verre extérieur (c'est-à-dire la surface en contact avec l'air emprisonné entre les deux verres) et est estimée approximativement à 289,15 K (la température précédente plus 3 K). Cette température sera calculée par le solveur.
0,2451 m2 est la superficie de la fenêtre.
1 est le nombre qui spécifie la catégorie de « conduction » (en tant que mécanisme de transfert thermique dans cette couche).
0,96 W/(m × K) est la conductivité thermique du verre [1]. Il existe divers tableaux sur Internet qui répertorient les propriétés thermiques des matériaux les plus courants. Vous pouvez également utiliser l'atelier Material pour afficher les propriétés d'un matériau.
0,004 m est l'épaisseur du verre.
The above order is the one that the data must be written on the spreadsheet, when concerning conduction.
Row 10 has the data of the layer of the air that is trapped between the two glasses. 3 is the id of this layer.
289.15K is the roughly estimated temperature of the inner surface of the outer glass.
292.15K is the roughly estimated temperature of the opposite surface that encloses the air (i.e. the surface of the other glass that is in contact with the trapped air). This temperature will also be calculated by the solver.
0.2451m2 is the area of the window.
4 is the number that specifies the category of “free convection in an enclosure” (as a mechanism of heat transfer in this layer). Please note that the set of equations in the algorithm (for this case) is only suitable for small gaps, similar to the gap in a double glazed window (i.e. less than 0.05m) [2].
101325Pa is the atmospheric pressure at sea level.
0.2 (20% / 100) is the relative humidity of the enclosed air.
0.016m is the characteristic length (for a free convection in an enclosure, the characteristic length is the thickness of the air gap, i.e. the distance between the two glasses).
Row 13 has the data of the layer with id 4, which concerns the conduction (category 1) that occurs at the second glass of the window.
Row 16 has the data of the layer with id 5, which concerns the free convection (category 2) that occurs at the surface of the second glass of the window that is in contact with the ambient air of the room. Note that the Temp. 2 of this layer is 298.15K which is 25°C (a given value in this example).
Please note that the used equations are valid for a range of values concerning the input data (the comments in the script Thermal.py specify these ranges). If these ranges are exceeded, then warnings (or errors) are printed in the Python Console of the FreeCAD.
In order for the algorithm to run, you need to open the Python Console on FreeCAD, and execute the code below (i.e. copy-paste each line of the code below separately and press each time Enter).
import HeatFlowConvectionConduction
heatFlowObj = HeatFlowConvectionConduction.HeatFlowConvectionConduction()
heatFlowObj.calcHeatFlowConvectionConduction()
Please note that once you open FreeCAD, you need to copy-paste the first two lines of this code only once (the first line imports the script and the second line creates an object). Then, every time you want to execute the algorithm of the script (in order to read the data of the spreadsheet, run the solver, and present the results), just copy-paste the third line of the code above and then press Enter.
The results are written in the same spreadsheet, three rows below the last written row (please have in mind that the algorithm checks only if the first ten columns in seven subsequent rows are empty, and if true, it considers that it has found “the last written row”).
The heat flow rate is 2.62W. We firstly wrote the lower temperature, thus the minus symbol in the picture above indicates that the flow is in the opposite direction (i.e. from the higher temperature to the lower).
The relative accuracy is 0.76% (the solver of the algorithm terminates if the relative accuracy is less than 5%, or the number of iterations are more than ten - you can change these limits by altering their values in the simulate_thermal_flow function inside the script).
The temperatures of each layer are calculated. The rest of the input data are also printed again for each layer, for clarity.
A wind with speed 10m/sec, humidity 40%, and temperature 10°C flows in parallel with the width of a wall, which has 5m width × 3m height, and which its surface has a temperature of 11°C.
In order to calculate the heat flow rate, we need to write the data on the spreadsheet, in the correct order.
1 is the id of the layer.
283.15K is the temperature of the air (the temperature of the wall could also have been written firstly).
284.15K is the temperature of the surface of the wall.
15m2 is the area of the surface.
5 specifies the category “forced convection parallel to a flat surface”.
101325Pa is the atmospheric pressure at sea level.
0.4 is the relative humidity divided by 100.
5m is the characteristic length (for forced convection, it is the dimension of the surface that is parallel to the flow).
10m/sec is the speed of flow.
The results show that the heat flow rate is 367.18W.
The surface of a terrace has an area of 50m2 (10m length × 5m width) and a temperature of 11°C. The outdoor ambient temperature is 10°C and the humidity is 50%.
In order to calculate the heat flow rate, we need to enter these data in a correct order.
1 is the id of the layer.
283.15K is the temperature of the ambient air (i.e. the temperature of the fluid outside the thermal boundary layer, in Kelvins).
284.15K is the temperature of the surface of the terrace.
50m2 is the area of the surface.
3 specifies the category “free convection on a horizontal surface”.
101325Pa is the atmospheric pressure at sea level.
0.5 is the relative humidity divided by 100.
1.67m is the characteristic length (for free convection on a horizontal surface it is the area of the surface divided by the perimeter: 50 / (10 + 5 + 10 + 5)). Please note that in order for the data to be read correctly, you should write in the cell of the spreadsheet 1.67 (and not = 50 / (10 + 5 + 10 + 5)).
1 is the direction of the surface. Since the air is on the top of the surface, this entry must be 1. If the air was at the bottom of the surface (e.g. in the case of a ceiling) then you should write -1.
2 is the last written data in the row, and it specifies that temp. 1 is the temperature of the air and temp. 2 is the temperature of the surface. If you had written firstly the temperature of the surface and secondly the temperature of the air, then this last entry should be 1.
The results show that the heat flow rate is 92.55W
The above examples cover the five cases (categories) that the algorithm in the script can calculate heat flow:
You can download the files HeatFlowConvectionConduction.py, Thermal.py and SpreadsheetDataReadWrite.py from:
https://git.disroot.org/CrowdDiscussesAlternatives/ScriptsForFreeCAD/src/branch/master/Thermal
The forum discussion: Presenting HeatFlowConvectionConduction macro
The documentation of this script in pdf format: Heat Flow Convection Conduction Documentation