Aller au contenu

Dimensionnement du réseau et hydraulique

Une fois la topologie d'un réseau tracée et les bâtiments raccordés, deux outils séquentiels la transforment en un dimensionnement résolu en pression : Dimension pipes sélectionne un diamètre nominal pour chaque tronçon en fonction du débit de pointe, et le solveur hydraulique (exécuté dans le cadre de Simulate network operation) calcule les vitesses, les pertes de charge et les hauteurs manométriques de pompe.

Cette page explique les algorithmes qui sous-tendent ces deux étapes. Pour les champs de données écrits sur chaque conduite et chaque nœud, voir Modèle de données des réseaux et sources de chaleur. Pour ce que la simulation complète calcule au-delà de l'hydraulique, voir Pertes thermiques et simulation.

Dimensionnement des conduites

De la puissance de pointe au débit

L'objectif du dimensionnement des conduites est de sélectionner le plus petit diamètre nominal (DN) qui maintienne la vitesse du fluide et la perte de charge à l'intérieur de l'enveloppe définie pour ce DN dans la table des spécifications de conduites du réseau — une vitesse minimale pour éviter la sédimentation, ainsi que des limites de vitesse maximale et de gradient de pression pour maîtriser le bruit, l'érosion et le coût de pompage. Le point de départ est le débit volumétrique de pointe à chaque tronçon de conduite.

Le débit de pointe est dérivé de la puissance thermique de pointe que le tronçon doit transporter :

\[Q = \frac{P}{\rho \cdot c_p \cdot \Delta T}\]

P est la puissance de pointe (W), ρ la masse volumique du fluide (kg/m³), c_p la capacité thermique massique (J/kg·K), et ΔT = T_\text{supply} − T_\text{return} l'écart de température. ρ et c_p sont tous deux issus du fluide de travail du réseau à ses températures de service.

Sélection du diamètre nominal

Le dimensionnement est piloté par la table des spécifications de conduites du réseau — une table de correspondance modifiable, propre à chaque réseau, indexée sur le DN et le matériau, qui contient pour chaque DN son diamètre intérieur ainsi que son enveloppe de vitesse et de gradient de pression (voir Spécifications des conduites). Pour chaque DN candidat, le dimensionneur calcule la vitesse et le gradient de pression résultants et applique les limites de la table :

velocity = Q / A_inner          where A_inner = π (d_inner / 2)²
pressure_gradient = Darcy-Weisbach ΔP/L at that velocity

For each segment, walking DNs from largest to smallest:
  reject any DN where velocity > max_velocity_m_s        (hard limit)
  reject any DN where ΔP/L     > max_pressure_gradient_pa_m (hard limit)
  prefer the smallest surviving DN with velocity ≥ min_velocity_m_s
  if none reaches min velocity → use the smallest surviving DN
  if nothing survives the hard limits → use the largest DN (flagged below)

La vitesse minimale et maximale, ainsi que le gradient de pression recommandé et maximal, sont lus par ligne de DN dans la table de spécifications — il n'existe pas de règle 1–4 m/s codée en dur. Les valeurs par défaut livrées pour l'acier utilisent un minimum de 0.5 m/s et un maximum de 1.5–3.0 m/s qui s'élargit avec le diamètre ; d'autres matériaux et des tables modifiées peuvent différer.

Une fois un DN sélectionné, les champs suivants sont écrits sur le tronçon de conduite :

flowchart LR P["━━ Pipe segment"] P --> DN["Nominal diameter<br/>(DN)"] P --> ID["inner_diameter_m"] P --> VEL["velocity_m_s"] P --> VOL["fluid_volume_m3"] P --> CAP["maximum_capacity_kw"] classDef pipe fill:#ffab91,stroke:#bf360c,stroke-width:2px,color:#bf360c classDef field fill:#fff3e0,stroke:#ED6000,stroke-width:1.5px,color:#bf360c class P pipe class DN,ID,VEL,VOL,CAP field

maximum_capacity_kw est la puissance thermique que le tronçon peut transporter à la vitesse maximale de son DN — il s'agit d'une marge de conception, et non d'une limite stricte appliquée à l'exécution.

Indicateurs de validation du dimensionnement

Après le choix d'un DN, chaque conduite est vérifiée par rapport à sa ligne dans la table de spécifications et marquée par deux booléens :

Field Signification
velocity_in_range min_velocity_m_s ≤ v ≤ max_velocity_m_s pour le DN choisi.
pressure_gradient_ok ΔP/L ≤ max_pressure_gradient_pa_m pour le DN choisi.

Un tronçon dont le débit est trop faible pour atteindre la vitesse minimale même au plus petit DN, ou dont le DN se situe en dehors de la table de spécifications, est marqué velocity_in_range = false. Ces indicateurs apparaissent dans l'inspecteur de conduites afin de repérer les tronçons fonctionnant hors de leur enveloppe — ils ne bloquent pas l'exécution.

Réseaux arborescents et bouclés

La manière dont les débits des tronçons sont déterminés avant le dimensionnement dépend de la topologie du réseau.

Les réseaux arborescents (ramifiés) ont un chemin d'écoulement unique de chaque centrale énergétique vers chaque bâtiment. Le débit de pointe à chaque tronçon est la somme des demandes de pointe de toutes les sous-stations de bâtiment situées en aval. Le dimensionnement s'effectue tronçon par tronçon, des feuilles vers la centrale énergétique.

flowchart LR EC["⚙️ Energy center"] EC -->|"Q₁+Q₂+Q₃"| J1["●"] J1 -->|"Q₁+Q₂"| J2["●"] J1 -->|"Q₃"| BS3["🔌 Substation C"] J2 -->|"Q₁"| BS1["🔌 Substation A"] J2 -->|"Q₂"| BS2["🔌 Substation B"] classDef ec fill:#ffccbc,stroke:#bf360c,stroke-width:2px,color:#bf360c classDef bs fill:#ffe0b2,stroke:#e65100,stroke-width:1.5px,color:#bf360c classDef cp fill:#ffffff,stroke:#bf360c,stroke-width:1.5px,color:#bf360c class EC ec class BS1,BS2,BS3 bs class J1,J2 cp

Les réseaux bouclés (maillés) comportent plusieurs chemins entre les centrales énergétiques et les sous-stations, de sorte que les débits ne sont pas uniques. TESSA emploie une approche pratique en deux passes :

  1. Calculer l'arbre couvrant minimal (MST) de la topologie bouclée.
  2. Dimensionner le MST comme un réseau arborescent à l'aide de la procédure ci-dessus.
  3. Pour chaque connexion supplémentaire qui ferme une boucle, construire un MST forcé qui inclut cette connexion comme arête obligatoire et le dimensionner indépendamment.
  4. Pour chaque tronçon, le DN final est le plus grand DN sélectionné parmi toutes les passes MST qui incluent ce tronçon.

Cela garantit que chaque corde de boucle est dimensionnée pour transporter un débit de pointe réalisable, tout en évitant le recours à un solveur d'écoulement hydraulique complet à l'étape de dimensionnement.

Raccordements

Les raccordements de bâtiment et les raccordements de centrale énergétique sont dimensionnés indépendamment des autres conduites. Leur débit provient de leur propre valeur v_dot (le débit volumétrique à la sous-station ou à la centrale énergétique raccordée), et non de la demande agrégée en aval. Cela reflète le fait que les conduites de raccordement ne desservent qu'une seule sous-station.

Réexécution du dimensionnement

L'indicateur overwrite_diameters (par défaut : true) détermine si une nouvelle exécution de dimensionnement remplace les diamètres existants. Réglez-le sur false pour préserver les tronçons où vous avez saisi manuellement un DN — par exemple si vous savez qu'un tronçon de dorsale particulier doit être au moins de DN 150 pour une extension future — tout en laissant TESSA dimensionner les tronçons restants.

Hydraulique de Darcy-Weisbach

Le calcul hydraulique de la pression s'exécute dans le cadre de Simulate network operation et utilise l'équation de Darcy-Weisbach conjuguée à la corrélation du facteur de frottement de Colebrook.

Nombre de Reynolds et facteur de frottement

Le nombre de Reynolds pour chaque tronçon de conduite est :

\[\text{Re} = \frac{\rho \cdot v \cdot d}{\mu}\]

μ est la viscosité dynamique du fluide de travail. Le facteur de frottement f est ensuite calculé :

  • Écoulement laminaire (Re < 2000) : la solution exacte, f = 64 / Re.
  • Écoulement turbulent (Re ≥ 2000) : TESSA résout itérativement l'équation de Colebrook implicite :
\[\frac{1}{\sqrt{f}} = -2 \log_{10}\!\left(\frac{\varepsilon}{3.7\,d} + \frac{2.51}{\text{Re}\,\sqrt{f}}\right)\]

ε est la rugosité de la conduite (m). La rugosité provient de la table des spécifications de conduites du réseau — par ligne de DN lorsqu'elle y est définie, sinon la rugosité de repli à l'échelle du réseau (la valeur par défaut pour l'acier est 0.045 mm). L'application d'un autre préréglage de matériau, ou la modification de la table de spécifications, change la rugosité utilisée ici. Voir Spécifications des conduites.

Perte de charge par tronçon

Une fois f déterminé, la perte de charge de Darcy-Weisbach est :

\[\Delta p = f \cdot \frac{L}{d} \cdot \frac{\rho v^2}{2}\]

Une majoration de perte de charge (par défaut 20 %) est ajoutée à la perte de Darcy-Weisbach calculée pour tenir compte des pertes locales aux coudes, raccords et vannes. Le facteur de majoration est appliqué uniformément à tous les tronçons et peut être ajusté dans les paramètres du réseau.

La perte de charge exprimée en mètres de colonne de fluide est stockée à côté de la valeur en Pa :

\[h_{f,\text{DW}} = \frac{\Delta p}{\rho \cdot g}\]

Résultats écrits par conduite après la résolution hydraulique :

Field Description
m_dot_kg_s Débit massique (kg/s)
v_dot_m3_s Débit volumétrique (m³/s)
velocity_m_s Vitesse moyenne (m/s)
pressure_loss_pa Perte de charge totale, majoration comprise (Pa)
h_f_dw_m Perte de charge en mètres de colonne de fluide
pressure_loss_pa_m Perte de charge par mètre de conduite (Pa/m)

Pertes de charge aux sous-stations

Les pertes de charge aux sous-stations sont modélisées comme des chutes fixes à travers l'échangeur de chaleur ou les équipements internes :

  • Sous-station de bâtiment (échangeur de chaleur) : chute de pression par défaut 0.7 bar
  • Centrale énergétique (équipements internes et vannes) : chute de pression par défaut 1.0 bar

Celles-ci sont converties en perte de charge via h = ΔP / (ρ · g) et ajoutées au chemin hydraulique lors de la sommation des pertes d'une centrale énergétique à une sous-station.

Pression statique et mise sous pression du réseau

Une fois les pertes dynamiques résolues, TESSA calcule les pressions absolues à chaque nœud. L'utilisateur désigne un nœud de référence — typiquement l'aspiration de la pompe d'une centrale énergétique — et fixe une pression statique minimale qui doit être maintenue partout dans le réseau (afin d'éviter que le fluide ne se vaporise ou n'aspire de l'air par les joints).

L'étape de mise sous pression propage la pression dynamique du nœud de référence vers tous les autres nœuds le long des chemins d'écoulement résolus, puis vérifie qu'aucun nœud ne descend en dessous du minimum. Si un nœud y descend, la pression minimale du réseau est relevée jusqu'à ce que la contrainte soit satisfaite.

Résultats par nœud :

Field Description
pressure_dynamic_supply_pa Pression absolue côté aller (Pa)
pressure_dynamic_return_pa Pression absolue côté retour (Pa)
flowchart LR EC["⚙️ Energy center<br/>(reference node)"] J1["● Junction"] J2["● Junction"] BS1["🔌 Substation A"] BS2["🔌 Substation B"] EC -->|"Δp₁"| J1 J1 -->|"Δp₂"| J2 J1 -->|"Δp₃"| BS1 J2 -->|"Δp₄"| BS2 EC -.p_ref.- REF["📍 p_min constraint"] classDef ec fill:#ffccbc,stroke:#bf360c,stroke-width:2px,color:#bf360c classDef bs fill:#ffe0b2,stroke:#e65100,stroke-width:1.5px,color:#bf360c classDef cp fill:#ffffff,stroke:#bf360c,stroke-width:1.5px,color:#bf360c classDef fluid fill:#bbdefb,stroke:#0d47a1,stroke-width:1.5px,color:#0d47a1 class EC ec class BS1,BS2 bs class J1,J2 cp class REF fluid

Dimensionnement de la pompe

Une fois toutes les pertes de charge connues, TESSA dimensionne la pompe de circulation de chaque centrale énergétique.

La hauteur manométrique de pompe requise à une centrale énergétique est la perte de charge totale le long du chemin critique — le chemin hydraulique de cette centrale énergétique jusqu'à la sous-station la plus éloignée (la plus résistante) :

\[H_\text{pump} = \sum_\text{critical path} h_{f,\text{segment}} + h_{f,\text{substations}}\]

La puissance de pompe est ensuite :

\[P_\text{pump} = \frac{\dot{V} \cdot \rho \cdot g \cdot H_\text{pump}}{\eta_\text{pump}}\]

η_pump est le rendement de la pompe (un paramètre ajustable par l'utilisateur, par défaut 0.7). La consommation électrique de la pompe est enregistrée heure par heure dans la simulation et ajoutée aux coûts d'exploitation et aux émissions de CO₂ du réseau.

flowchart TD CL["Critical path losses<br/>━━━━━━━━<br/>Σ pipe head losses<br/>+ substation drops"] CL --> H["Pump head H"] H --> PP["Pump power P<br/>(flow × head / efficiency)"] PP --> OPEX["Annual pump electricity<br/>→ operating cost<br/>→ CO₂ emissions"] classDef fluid fill:#bbdefb,stroke:#0d47a1,stroke-width:2px,color:#0d47a1 classDef field fill:#e3f2fd,stroke:#1565c0,stroke-width:1.5px,color:#0d47a1 class CL,H,PP fluid class OPEX field

Assembler dimensionnement et hydraulique

Le flux de travail complet pour une conception de premier jet est :

flowchart TD A["🏠 District with load curves<br/>and connected substations"] A --> B["▶ Dimension pipes<br/>(peak flow → DN selection)"] B --> C["▶ Simulate network operation<br/>step 1: heat distribution<br/>step 2: altitude fetch"] C --> D["▶ Hydraulic solve<br/>(Darcy-Weisbach + Colebrook)"] D --> E["▶ Pressurisation<br/>(static pressure check)"] E --> F["▶ Pump sizing<br/>(critical path → H, P)"] F --> G["✅ Pipe results: DN, v, Δp, h_f<br/>Node results: p_supply, p_return<br/>EC results: pump head, pump power"] classDef step fill:#fff3e0,stroke:#ED6000,stroke-width:1.5px,color:#bf360c classDef done fill:#ffab91,stroke:#bf360c,stroke-width:2px,color:#bf360c classDef input fill:#a5d6a7,stroke:#1b5e20,stroke-width:1.5px,color:#1b5e20 class A input class B,C,D,E,F step class G done

Dimension pipes doit être exécuté avant la simulation. Si vous lancez la simulation sans avoir dimensionné le réseau, les pertes de charge et les valeurs de pompe seront nulles ou absentes.

Pour aller plus loin