heating_system
Architecture of the calculation¶
Per il calcolo dell'energia finale, il processo segue il seguente flusso:
Step 0¶
la funzione run_timeseries(...) utilizza:
- qh = Q_H_kWh (o alias),
- θint = T_op (o default),
- θext = T_ext (o default).
Se qh <= 0 e calc_when_QH_positive_only=True, gestisce la riga con modalità off_compute_mode:
idle: output vuoto (NaN/0) +calculated=Falsetemps: calcola solo temperature coerenti con zero scambio
full: calcolo completo anche a carico nullo
1) perchè viene calcolato il fattore di carico del sistema di emissione βH_em? Serve per vedere quanto vicino al potenziale nominale sta lavorando l'emettitore in quel timestep. di seguito le funzioni principali:
-
1. Collegare energia oraria e potenza nominale (dimensionamento/limitazione)¶
in
calculate_common_emission_parameters: si calcola una potenza media richiesta nell’ora:ΦH_em_eff_initial = QH_em_i_out / tH_em_i_ON (kWh/h → kW)tale potenza viene confrontata con la potenza nominale emettitore ΦH_em_n per ottenere:
BetaH_em = min(ΦH_em_eff_initial / ΦH_em_n, 1.0)Cosa vuol dire a livello fisico:
βH_em = 0.3⇒ nell’ora si sta richiedendo circa il 30% della potenza nominale (in media).βH_em = 1⇒ pieno carico (o oltre, ma tagliato a 1).Questo è utile per capire se il sistema è sottodimensionato/sovradimensionato, e per legare i calcoli al “nominale” definito nella tabella dell prestazione del sistaema di emissione (TB14).
-
2. Stimare il tempo di funzionamento effettivo (ON-time) e quindi il consumo degli ausiliari¶
Sempre nel common:
tH_cr_i_ON = tH_em_i_ON * BetaH_emWH_em_i_aux = tH_cr_i_ON * auxiliars_power / 1000gli ausiliari (pompe, attuatori, ventilatori terminali) consumano energia quando il circuito è attivo. Se il carico è basso, il sistema potrebbe funzionare meno tempo (o modulare), quindi gli ausiliari vengono ridotti proporzionalmente.
βH_emè usato come proxy semplice del “duty cycle” per stimare energia ausiliaria.Esempio numerico
timestep = 1 h auxiliars_power = 40 W βH_em = 0,25
Allora:
t_ON = 1h * 0,25 = 0,25 h E_aux = 40 W * 0,25 h = 10 Wh = 0,01 kWh
Per quali condizioni va bene: funziona bene se vale almeno una di queste ipotesi:
- il sistema è ON/OFF (quindi davvero esiste un duty cycle),
- i consumi ausiliari sono proporzionali al “grado di utilizzo” (approssimazione).
Per quali condizioni non va bene:
- la pompa gira comunque anche a basso carico (duty cycle ~1),
- la potenza ausiliaria non è costante ma varia con la portata (pompe a inverter: 𝑃∼𝑉3),
- l’emissione modula potenza senza “spegnersi” (duty cycle non coincide con carico).
Cos'è il duty-cycle? Per duty-cycle si intende la frazione di tempo in cui un componente o un sistema è acceso (ON) rispetto al tempo totale considerato.
Esempi (timestep = 1 ora)
- acceso 60 minuti → duty-cycle = 60/60 = 1.0 (100%)
- acceso 30 minuti → duty-cycle = 30/60 = 0.5 (50%)
- acceso 15 minuti → duty-cycle = 15/60 = 0.25 (25%)
-
3. Modellare correttamente i casi intermittenti (C.4) e il duty-cycle finale¶
Nel circuito C.4 (ON/OFF), βH_em diventa direttamente un indicatore di “quanto dell’ora” il sistema deve essere ON per consegnare l’energia richiesta:
- si calcola una potenza quando ON (ΦH_em_ON)
- poi il tempo ON necessario: t_H_cr_ON = QH_sys_out_hz_i / ΦH_em_ON
- infine: βH_em = t_H_cr_ON / tH_em_i_ON
Significato fisico:
βH_em = 0.25 ⇒ in quell’ora il terminale deve funzionare ~15 minuti (se timestep 1h) alla potenza ON calcolata.