-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathisolationthermique.py
More file actions
68 lines (51 loc) · 2.17 KB
/
Copy pathisolationthermique.py
File metadata and controls
68 lines (51 loc) · 2.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# -*- coding: utf-8 -*-
"""Calculs de déperdition thermique simplifiés."""
from typing import Dict
def pertes_parois(coeffs_u: Dict[str, float], surfaces: Dict[str, float]) -> Dict[str, float]:
"""Calcule les déperditions pour chaque paroi: U * A."""
return {name: coeffs_u[name] * surfaces.get(name, 0.0) for name in coeffs_u}
def pertes_totales_parois(coeffs_u: Dict[str, float], surfaces: Dict[str, float]) -> float:
"""Somme des déperditions pour toutes les parois."""
return sum(pertes_parois(coeffs_u, surfaces).values())
def pertes_ponts_thermiques(psi: Dict[str, float], longueurs: Dict[str, float]) -> Dict[str, float]:
"""Calcule les déperditions liées aux ponts thermiques: ψ * l."""
return {name: psi[name] * longueurs.get(name, 0.0) for name in psi}
def pertes_totales_ponts_thermiques(psi: Dict[str, float], longueurs: Dict[str, float]) -> float:
"""Somme des pertes par ponts thermiques."""
return sum(pertes_ponts_thermiques(psi, longueurs).values())
def coefficient_global(coeffs_u: Dict[str, float], surfaces: Dict[str, float],
psi: Dict[str, float], longueurs: Dict[str, float]) -> float:
"""Calcule le coefficient global de déperdition thermique."""
return (
pertes_totales_parois(coeffs_u, surfaces)
+ pertes_totales_ponts_thermiques(psi, longueurs)
)
if __name__ == "__main__":
# Exemple d'utilisation
u = {
"mur_nord": 0.4,
"mur_sud": 0.35,
"toit": 0.25,
"plancher": 0.3,
}
a = {
"mur_nord": 20.0,
"mur_sud": 20.0,
"toit": 30.0,
"plancher": 30.0,
}
psi = {
"plancher_mur": 0.1,
"toit_mur": 0.08,
}
l = {
"plancher_mur": 15.0,
"toit_mur": 20.0,
}
pertes_paroi = pertes_parois(u, a)
pertes_ponts = pertes_ponts_thermiques(psi, l)
print("Pertes par paroi (U*A) :", pertes_paroi)
print("Σ(U*A) =", pertes_totales_parois(u, a), "W/K")
print("Pertes ponts thermiques (ψ*l) :", pertes_ponts)
print("Σ(ψ*l) =", pertes_totales_ponts_thermiques(psi, l), "W/K")
print("Coefficient global :", coefficient_global(u, a, psi, l), "W/K")