Snapshot WIP: solver HP epic progress, BPHX/HX physics, BMAD skill refresh.
Some checks failed
CI / check (push) Has been cancelled
Some checks failed
CI / check (push) Has been cancelled
Capture uncommitted solver robustness work (regularization, domain errors, linear solver lifecycle, tube DP/MSH), web workbench updates, and synced BMAD skills across IDE agent folders before starting BPHX pressure-drop. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -16,6 +16,8 @@ Ce tutoriel décrit **pas à pas**, sans raccourci, comment utiliser l’outil E
|
||||
6. [Créer notre fichier sample pas à pas](#6-créer-notre-fichier-sample-pas-à-pas)
|
||||
7. [Exporter les résultats (option -o)](#7-exporter-les-résultats-option--o)
|
||||
8. [Mode batch (optionnel)](#8-mode-batch-optionnel)
|
||||
9. [Qualifier une machine à charge partielle (rate — IPLV / ESEER)](#9-qualifier-une-machine-à-charge-partielle-rate--iplv--eseer)
|
||||
10. [Performances saisonnières (scop / seer — méthode par bins EN 14825)](#10-performances-saisonnières-scop--seer--méthode-par-bins-en-14825)
|
||||
|
||||
---
|
||||
|
||||
@@ -161,3 +163,122 @@ Tu dois obtenir un message d’erreur (par exemple « Configuration error » ou
|
||||
---
|
||||
|
||||
*[Sections 4 à 8 à compléter au fur et à mesure]*
|
||||
|
||||
---
|
||||
|
||||
## 9. Qualifier une machine à charge partielle (rate — IPLV / ESEER)
|
||||
|
||||
La commande **rate** calcule un indice de performance à charge partielle
|
||||
(**IPLV**, **NPLV**, **ESEER**…) en re-résolvant le cycle à plusieurs points de
|
||||
charge, puis en les pondérant selon la norme choisie. Chaque point est une
|
||||
**vraie** résolution couplée (pas d'approximation) : on fait varier les
|
||||
températures secondaires et la vitesse du compresseur, et on lit l'EER émergent.
|
||||
|
||||
**Étape 9.1 — Lancer l'exemple fourni**
|
||||
|
||||
```bash
|
||||
./target/release/entropyk-cli rate --config crates/cli/examples/rate_chiller_iplv_ahri.json
|
||||
```
|
||||
|
||||
Tu obtiens un tableau des points (100/75/50/25 %) avec leur EER, puis la valeur
|
||||
intégrée, par exemple `IPLV = 8.114`. Comme la portée (« lift ») de pression
|
||||
diminue à charge partielle, l'EER augmente à mesure que la charge baisse.
|
||||
|
||||
**Étape 9.2 — Choisir / changer la norme**
|
||||
|
||||
La norme est **modulable** (voir `docs/rating-and-seasonal-metrics.md`). Dans le
|
||||
fichier de config `rate`, l'ordre de priorité est :
|
||||
|
||||
1. `standard` — objet norme inline (poids + fractions de charge) ;
|
||||
2. `standard_file` — chemin vers un JSON de norme (résolu relativement au config) ;
|
||||
3. `standard_name` — identifiant intégré (`iplv`, `eseer`, `nplv`…) ;
|
||||
4. `metric` — enum historique.
|
||||
|
||||
Exemple avec une norme externe personnalisée :
|
||||
|
||||
```bash
|
||||
./target/release/entropyk-cli rate --config crates/cli/examples/rate_chiller_custom_standard.json
|
||||
```
|
||||
|
||||
Quand une norme évolue, il suffit d'éditer/remplacer le fichier de poids — **aucune
|
||||
recompilation** n'est nécessaire.
|
||||
|
||||
**Étape 9.3 — Exporter le rapport**
|
||||
|
||||
```bash
|
||||
./target/release/entropyk-cli rate --config <config> --output rapport_iplv.json
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 10. Performances saisonnières (scop / seer — méthode par bins EN 14825)
|
||||
|
||||
Les commandes **scop** (chauffage saisonnier) et **seer** (refroidissement
|
||||
saisonnier) appliquent la **méthode par bins** d'EN 14825 : la machine est
|
||||
re-résolue à **chaque température extérieure** d'un climat, la demande du bâtiment
|
||||
est déduite d'une droite de charge, puis la saison est agrégée par un ratio
|
||||
d'énergie utile / énergie électrique.
|
||||
|
||||
**Étape 10.1 — Lancer un SCOP (pompe à chaleur air/eau)**
|
||||
|
||||
```bash
|
||||
./target/release/entropyk-cli scop --config crates/cli/examples/scop_heatpump_r134a.json
|
||||
```
|
||||
|
||||
Résultat attendu (extrait) :
|
||||
|
||||
```text
|
||||
T[°C] h Demand[kW] Cap[kW] COP_full backup COP_eff
|
||||
-10.0 1 6.000 4.967 3.649 17% 2.506
|
||||
2.0 320 3.231 6.918 4.169 0% 3.613
|
||||
15.0 74 0.231 9.445 4.751 0% 3.592
|
||||
|
||||
Seasonal useful: 12393.7 kWh Seasonal electric: 3441.1 kWh
|
||||
SCOP = 3.602
|
||||
```
|
||||
|
||||
Le COP pleine charge augmente quand l'air extérieur se réchauffe (moins de lift) ;
|
||||
aux bins les plus froids, la capacité ne suffit plus à la demande et l'appoint
|
||||
électrique intervient (colonne `backup`).
|
||||
|
||||
**Étape 10.2 — Comprendre le fichier de config**
|
||||
|
||||
```jsonc
|
||||
{
|
||||
"base_config": "heatpump_r134a_air_source.json", // cycle de base (chemin relatif)
|
||||
"climate_name": "en_14825_average", // climat intégré (bins EN 14825)
|
||||
"outdoor_side": "evaporator", // côté piloté par T extérieure
|
||||
"design_load_w": 6000.0, // demande [W] à design_outdoor_c
|
||||
"design_outdoor_c": -10.0, // T extérieure où demande = design_load_w
|
||||
"threshold_outdoor_c": 16.0, // T extérieure où la demande s'annule
|
||||
"cd": 0.25, // dégradation de cyclage (PLF = 1 - Cd*(1-CR))
|
||||
"backup_cop": 1.0 // COP de l'appoint électrique (chauffage)
|
||||
}
|
||||
```
|
||||
|
||||
La température du bin est appliquée au `secondary_inlet_temp_c` de l'échangeur
|
||||
extérieur ; le **débit** et le **cp** du secondaire (ex. air, cp 1006 J/kg·K)
|
||||
restent ceux du `base_config`.
|
||||
|
||||
**Étape 10.3 — Lancer un SEER (refroidissement)**
|
||||
|
||||
Le mode `seer` pilote par défaut le **condenseur** (côté extérieur) et exige un
|
||||
climat de refroidissement explicite (`climate_name`, `climate_file` ou `climate`) :
|
||||
|
||||
```bash
|
||||
./target/release/entropyk-cli seer --config <mon_config_seer>.json --output seer.json
|
||||
```
|
||||
|
||||
**Étape 10.4 — Sortie JSON**
|
||||
|
||||
Ajoute `--output rapport.json`, ou utilise `--quiet` pour n'émettre que le JSON
|
||||
(pratique pour l'intégration outillée) :
|
||||
|
||||
```bash
|
||||
./target/release/entropyk-cli --quiet scop --config crates/cli/examples/scop_heatpump_r134a.json
|
||||
```
|
||||
|
||||
> **Note.** Comme le climat est une donnée (`BinClimateStandard`), ajouter une
|
||||
> nouvelle saison (climat SEER, révision future d'EN 14825…) revient à fournir un
|
||||
> tableau de bins — **sans changer le code**. Détails complets dans
|
||||
> `docs/rating-and-seasonal-metrics.md`.
|
||||
|
||||
Reference in New Issue
Block a user