From a5185ccc5bd65d15ad6c564471a039f9797113b1 Mon Sep 17 00:00:00 2001 From: Bendik Lynghaug Date: Mon, 14 Sep 2026 18:05:16 +0200 Subject: [PATCH] =?UTF-8?q?Knytt=20grensen=20for=20vinduslufting=20til=20n?= =?UTF-8?q?ormert=20settpunkt=20for=20kj=C3=B8ling?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Grensen var satt til 24 °C uten kilde. NS 3031 gir en normert settpunkttemperatur for kjøling også for bygninger uten kjøleanlegg, der overskuddsvarmen antas luftet ut uten at energien telles. Den verdien er et bedre begrunnet utgangspunkt, og gir mindre urealistisk lagring av solvarme i tette bygninger med store vindusflater. Romoppvarmingen for TEK17-referansebygget går fra 24,7 til 27,2 kWh/(m²·år). Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_015GeH3y8fwTaTudaD88P57o --- README.md | 23 ++++++++++++++--------- src/modell/lost.rs | 11 ++++++++--- tests/referansebygg.rs | 4 ++-- 3 files changed, 24 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 9f13a52..68dbae2 100644 --- a/README.md +++ b/README.md @@ -17,17 +17,17 @@ enok beregn bygninger/nordhusstykket-5.toml Klimadata: Indre Østfold Varmetapstall 3,00 W/(m²K) - Netto energibehov 351,2 kWh/(m²·år) - Levert energi 327,6 kWh/(m²·år) - Vektet levert energi 327,6 kWh/(m²·år) + Netto energibehov 352,2 kWh/(m²·år) + Levert energi 328,5 kWh/(m²·år) + Vektet levert energi 328,5 kWh/(m²·år) Energikarakter F Tiltak: - Isolerte varmerør og kjellervegger 310,9 kWh/(m²·år) F - Nye vinduer 304,9 kWh/(m²·år) E - Etterisolert klimaskjerm 205,6 kWh/(m²·år) D - Væske-vann-varmepumpe 162,3 kWh/(m²·år) C - Full pakke 67,9 kWh/(m²·år) A + Isolerte varmerør og kjellervegger 311,9 kWh/(m²·år) F + Nye vinduer 305,6 kWh/(m²·år) E + Etterisolert klimaskjerm 207,0 kWh/(m²·år) D + Væske-vann-varmepumpe 162,7 kWh/(m²·år) C + Full pakke 68,5 kWh/(m²·år) A ``` ## Hva programmet gjør @@ -55,6 +55,11 @@ klimaavhengige energipostene til referanseklima Oslo med klimakorrigeringsfaktor standardens tillegg, slik energimerkeforskriften krever. Arkivet lastes ned én gang og hurtiglagres. +**Overoppheting.** Bygninger uten kjøleanlegg luftes gjennom vinduer. Uten det ville en tett +bygning med store vindusflater fått urealistisk høye innetemperaturer om våren og høsten, og +lagret solvarme ville kunstig redusert oppvarmingsbehovet. Grensen settes til den normerte +settpunkttemperaturen for kjøling, og luftingen koster ingen energi. + **Tiltak.** Scenarier i samme fil gir før-og-etter-tall og karakterer i én tabell. ## Installasjon @@ -192,7 +197,7 @@ Motoren er kontrollert mot uavhengige referanser: Standard Norges lanseringseksempel for NS 3031:2025 oppgir 46,2 kWh/(m²·år) romoppvarming og 106,4 kWh/(m²·år) netto energibehov for TEK17-referansebygget beregnet med Simien 8. enok -beregner 24,7 og 84,1 for den samme bygningen. +beregner 27,2 og 86,7 for den samme bygningen. Varmetapsbudsjettet, de normerte energipostene, solinnstrålingen og energibalansen stemmer hver for seg, så avviket ligger i hvor stor del av solvarmen som nyttiggjøres. NS 3031:2025 diff --git a/src/modell/lost.rs b/src/modell/lost.rs index 8edfa6d..2dd3637 100644 --- a/src/modell/lost.rs +++ b/src/modell/lost.rs @@ -195,13 +195,18 @@ impl Lost { let lufting = if b.lufting.ingen || settpunkt_kjoling.is_some() { None } else { + // Uten oppgitt grense brukes den normerte settpunkttemperaturen for kjøling. + // NS 3031 setter denne også for bygninger uten kjøleanlegg; overskuddsvarmen + // antas luftet ut, og energien telles ikke. let sett = b.lufting.settpunkt.unwrap_or_else(|| { f.push(Forutsetning { felt: "lufting.settpunkt".into(), - verdi: "24 °C".into(), - kilde: "antatt grense for vinduslufting i bygning uten kjøling".into(), + verdi: format!("{:.0} °C", normerte.settpunkt.kjoling), + kilde: + "normert settpunkttemperatur for kjøling; bygningen har ikke kjøleanlegg" + .into(), }); - 24.0 + normerte.settpunkt.kjoling }); let maks = b.lufting.maks_luftmengde.unwrap_or_else(|| { f.push(Forutsetning { diff --git a/tests/referansebygg.rs b/tests/referansebygg.rs index 4a11a10..c706a6e 100644 --- a/tests/referansebygg.rs +++ b/tests/referansebygg.rs @@ -86,13 +86,13 @@ fn regresjonsvakt_for_romoppvarming() { let r = kjor_referansebygg(); naer( post(&r, "1a"), - 24.7, + 27.2, 1.5, "romoppvarming (regresjon, publisert verdi 46,2)", ); naer( r.budsjett.netto_spesifikk(r.lost.bra), - 84.1, + 86.7, 2.0, "netto energibehov (regresjon, publisert verdi 106,4)", );