Ship the Next.js cycle editor with CAD chrome, technical HX symbols, Fixed/Free boundary guidance, and secondary water/air pressure drop support in the solver stack. Co-authored-by: Cursor <cursoragent@cursor.com>
8.0 KiB
IsentropicCompressor
Config type: "IsentropicCompressor"
Source: crates/components/src/isentropic_compressor.rs
EN
Purpose & physical model
Vapor-compression compressor for cycle simulation. Two operating families:
| Mode | When | Mass / pressure behaviour |
|---|---|---|
| Fixed-pressure (default) | emergent_pressure: false |
Pins P_dis = P_sat(T_cond); mass continuity across suction/discharge |
| Emergent-pressure | emergent_pressure: true |
Closes ṁ with a volumetric displacement law; P_dis floats from the condenser ↔ secondary balance |
True isentropic path via CoolProp: (P,h)→s then (P,s)→h_is, corrected by isentropic efficiency:
h_dis = h_suc + (h_is − h_suc) / η_is,eff
Swept mass flow (emergent only):
ṁ_calc = ρ_suc · V_s · N · η_vol(P_dis/P_suc) · f_VSD,vol
ṁ = σ · z_flow · ṁ_calc
Volumetric efficiency models:
| Model | Formula |
|---|---|
| Constant | η_vol = const (default 1.0) |
| Clearance | η_vol = 1 + C − C · (P_dis/P_suc)^(1/n) |
Optional VSD speed map (quadratic, identity default [1,0,0]):
f(r) = c0 + c1·r + c2·r² , r = N / N_ref , clamped ∈ [0.1, 1.2]
η_vol,eff = η_vol · f_vol(r) ; η_is,eff = η_is · f_is(r)
Optional liquid injection desuperheat (no extra equation; φ from controls):
h_dis,eff = h_dis − φ_inj · (h_dis − h_f(P_dis)) , φ_inj ∈ [0, φ_max]
Design anchors t_cond_k, t_evap_k, superheat_k are used for fixed-pressure pins and as initial-condition helpers; in emergent mode the live suction (P,h) drives the isentropic path.
Residuals & n_equations()
n_equations = (2 if same_branch else 3) + (1 if slide_valve active else 0)
| Row | Fixed-pressure | Emergent-pressure |
|---|---|---|
| r0 | P_dis − P_sat(T_cond) |
ṁ − σ·z_flow·ṁ_calc |
| r1 | H_dis − h_dis |
H_dis − h_dis,eff |
| r2 | ṁ_dis − ṁ_suc (dropped if same-branch) |
same |
| r3 | — | (slide) T_sat(P_suc) − SST_target |
Ports
| Index | Role |
|---|---|
| 0 | suction (inlet) |
| 1 | discharge (outlet) |
Edge-wired via set_system_context (CM1.3 ṁ/P/h triples). get_ports() may be empty.
Emergent pressure & actuators
- Requires
displacement_m3andspeed_hzwhenemergent_pressure: true. - Slide valve (
slide_valve_sst_target_k/_c): free actuator σ ∈ [σ_min, 1] scales swept volume and holds SST. - Liquid injection (
liquid_injection: true): φ_inj on theactuator/ control factor"injection"; closing equation from a usercontrols[]loop (e.g. max DGT), not hard-coded.
Calibration
| Factor | Effect | Default |
|---|---|---|
z_flow |
scales swept ṁ (emergent r0) | 1.0 |
actuator |
slide σ or injection φ | – |
measure_output / energy_transfers
measure_output(Temperature)→ discharge gas temperature (DGT) for injection control.energy_transfers:(Q, W) = (0, −ṁ·(h_dis,work − h_suc))— adiabatic; shaft work negative. With liquid injection, work uses un-desuperheated compression enthalpy.
JSON parameters
| Key | Meaning | Unit | Default |
|---|---|---|---|
isentropic_efficiency |
η_is | – | 0.75 |
t_cond_k |
condensing sat. T (fixed pin / design) | K | 323.15 |
t_evap_k |
evaporating sat. T (design) | K | 275.15 |
superheat_k |
suction superheat design | K | 5.0 |
fluid |
refrigerant | – | primary |
emergent_pressure |
enable displacement closure | bool | false |
displacement_m3 |
swept volume V_s | m³/rev | 0.0 |
speed_hz |
rotational speed N | rev/s | 0.0 |
volumetric_efficiency |
constant η_vol | – | 1.0 |
clearance |
clearance ratio C (enables clearance model) | – | – |
polytropic_n |
re-expansion exponent | – | 1.1 |
vsd_reference_speed_hz |
VSD N_ref (enables map) | rev/s | – |
vsd_volumetric_coeffs |
[c0,c1,c2] η_vol map |
– | [1,0,0] |
vsd_isentropic_coeffs |
[c0,c1,c2] η_is map |
– | [1,0,0] |
slide_valve_sst_target_k / _c |
slide SST setpoint | K / °C | – |
liquid_injection |
enable injection desuperheat | bool | false |
slide_position_init / min / max |
free-actuator bounds | – | 1.0 / 0.1 / 1.0 |
Notes
Preferred cycle compressor for physics-based machines. For manufacturer AHRI maps use "Compressor"; for economized screws use "ScrewEconomizerCompressor".
FR
But & modèle physique
Compresseur à compression de vapeur. Deux familles de fonctionnement :
| Mode | Quand | Comportement |
|---|---|---|
| Pression fixée (défaut) | emergent_pressure: false |
Impose P_dis = P_sat(T_cond) ; continuité de masse |
| Pression émergente | emergent_pressure: true |
Ferme ṁ par une loi volumétrique ; P_dis flotte via le condenseur |
Chemin isentropique CoolProp + rendement :
h_dis = h_suc + (h_is − h_suc) / η_is,eff
Débit balayé (émergent) :
ṁ_calc = ρ_suc · V_s · N · η_vol(P_dis/P_suc) · f_VSD,vol
ṁ = σ · z_flow · ṁ_calc
Modèles de rendement volumétrique : constant, ou volume mort η_vol = 1 + C − C·Pr^(1/n).
Carte VSD optionnelle (quadratique, identité [1,0,0]).
Injection liquide optionnelle : h_dis,eff = h_dis − φ_inj·(h_dis − h_f(P_dis)) (pas d'équation interne).
Résiduels & n_equations()
n_equations = (2 si même branche sinon 3) + (1 si tiroir actif)
| Ligne | Pression fixée | Pression émergente |
|---|---|---|
| r0 | P_dis − P_sat(T_cond) |
ṁ − σ·z_flow·ṁ_calc |
| r1 | H_dis − h_dis |
H_dis − h_dis,eff |
| r2 | ṁ_dis − ṁ_suc (supprimée si même branche) |
idem |
| r3 | — | (tiroir) T_sat(P_suc) − SST_cible |
Ports
| Index | Rôle |
|---|---|
| 0 | aspiration (entrée) |
| 1 | refoulement (sortie) |
Câblage par arêtes (set_system_context, triples ṁ/P/h CM1.3).
Pression émergente & actionneurs
displacement_m3etspeed_hzobligatoires en mode émergent.- Tiroir (
slide_valve_sst_target_k/_c) : actionneur libre σ pour tenir la SST. - Injection liquide : φ_inj via boucle
controls[](ex. DGT max), facteur"injection".
Calibration
| Facteur | Effet | Défaut |
|---|---|---|
z_flow |
échelle le débit balayé | 1.0 |
actuator |
position tiroir σ ou ratio d'injection φ | – |
measure_output / energy_transfers
Temperature→ température des gaz de refoulement (DGT).(Q, W) = (0, −ṁ·(h_dis,work − h_suc))— adiabatique ; travail sur le compresseur négatif.
Paramètres JSON
| Clé | Signification | Unité | Défaut |
|---|---|---|---|
isentropic_efficiency |
η_is | – | 0.75 |
t_cond_k |
T sat. condensation (pin / design) | K | 323.15 |
t_evap_k |
T sat. évaporation (design) | K | 275.15 |
superheat_k |
surchauffe aspiration design | K | 5.0 |
fluid |
fluide frigorigène | – | primaire |
emergent_pressure |
active la fermeture volumétrique | bool | false |
displacement_m3 |
cylindrée V_s | m³/tr | 0.0 |
speed_hz |
vitesse N | tr/s | 0.0 |
volumetric_efficiency |
η_vol constant | – | 1.0 |
clearance |
rapport volume mort C | – | – |
polytropic_n |
exposant de détente | – | 1.1 |
vsd_reference_speed_hz |
N_ref carte VSD | tr/s | – |
vsd_volumetric_coeffs |
[c0,c1,c2] carte η_vol |
– | [1,0,0] |
vsd_isentropic_coeffs |
[c0,c1,c2] carte η_is |
– | [1,0,0] |
slide_valve_sst_target_k / _c |
consigne SST tiroir | K / °C | – |
liquid_injection |
active la désurchauffe par injection | bool | false |
slide_position_init / min / max |
bornes actionneur libre | – | 1.0 / 0.1 / 1.0 |
Notes
Compresseur de cycle préféré pour les machines physiques. Cartes fabricant AHRI → "Compressor" ; vis économisée → "ScrewEconomizerCompressor".