diff --git a/README.md b/README.md index 9076465..eccc100 100644 --- a/README.md +++ b/README.md @@ -444,22 +444,54 @@ Motoren er kontrollert mot uavhengige referanser: | Normerte energiposter for småhus | varmtvann 25,1, belysning 11,4, teknisk utstyr 17,5 kWh/(m²·år) | | Faste energiposter for yrkesbyggene | belysning, utstyr og varmtvann treffer energibudsjettene i kildene | -### Kjent avvik +### Kontroll mot de publiserte referansebyggene -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 27,1 og 86,6 for den samme bygningen. +Multiconsult for DiBK, «Grunnlag og forutsetninger for beregnede energirammer» (13.11.2015), +gir geometri, komponentverdier og beregnet netto energibehov for bygningskategoriene som +ligger til grunn for energirammene i TEK17, beregnet med Simien etter NS 3031:2014. Modellene +er gjengitt i `eksempler/referansebygg/`, og `tests/referansebygg_2015.rs` regner dem om igjen: -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 -Tillegg A er ikke offentlig tilgjengelig, så de normerte solfaktorene, skjermings­forutsetningene -og timesprofilene Simien bruker, lar seg ikke etterprøve her. `tests/referansebygg.rs` låser -dagens verdier slik at endringer i motoren blir synlige, og oppdateres når standardens -forutsetninger er tilgjengelige. +| Bygg | enok | Publisert | Avvik | +| --- | ---: | ---: | ---: | +| Småhus | 85,3 | 107,5 | −20,6 % | +| Boligblokk | 77,6 | 91,8 | −15,5 % | +| Barnehage | 80,1 | 132,0 | −39,3 % | +| Kontorbygning | 93,5 | 115,3 | −18,9 % | +| Skolebygning | 72,8 | 106,8 | −31,8 % | +| Idrettsbygning | 106,7 | 144,3 | −26,0 % | +| Kulturbygning | 73,2 | 128,0 | −42,8 % | +| **Snitt** | | | **−27,9 %** | -Bruk derfor tallene til å sammenligne tiltak mot hverandre og til å se hvor varmen forsvinner. -Til en energiattest som skal leveres til Enova må resultatet kontrolleres mot et validert -beregningsprogram. +Netto energibehov, kWh/(m²·år), Oslo-klima. Kjør `cargo test --release --test +referansebygg_2015 -- --nocapture` for tabellen. + +**enok regner gjennomgående for lavt.** Avviket er systematisk og går én vei, så det kommer +neppe av inndataene for den enkelte kategorien. Dette er kontrollert: + +- Varmetapstallet for småhuset blir 0,70 W/(m²K) mot publisert 0,69, så geometri og + U-verdier i modellene er riktig gjengitt. +- De faste postene, varmtvann, belysning og teknisk utstyr, treffer de normerte verdiene + nøyaktig. +- Solinnstrålingen avviker under 1 % fra pvlib, og energibalansen går opp. + +Avviket ligger dermed i den dynamiske delen: romoppvarming og ventilasjonsvarme. De to mest +sannsynlige årsakene er hvor stor del av sol- og internvarmen som regnes nyttiggjort, der +NS 3031:2025 Tillegg A gir timesprofiler og solfaktorer som ikke er offentlig tilgjengelige, +og luftmengdene i NS 3031 tabell B.1, som er anslått for flere yrkesbyggkategorier. + +Standard Norges lanseringseksempel for NS 3031:2025 peker samme vei: det oppgir 46,2 +kWh/(m²·år) romoppvarming og 106,4 kWh/(m²·år) netto energibehov for et TEK17-småhus, mot +enoks 27,1 og 86,6. + +### Hva tallene kan brukes til + +Sammenligning av tiltak mot hverandre, og å se hvor varmen forsvinner. Et systematisk avvik +som dette slår omtrent likt ut på alle alternativene, så rekkefølgen mellom tiltak står seg. + +Den absolutte energikarakteren gjør den ikke. En energiattest skal lages av en godkjent +ekspert i Enovas system, med et beregningsprogram som er validert for formålet, og enok er +ikke validert av noen. Bruk derfor karakteren her som en indikasjon, og kontroller den mot et +validert program før den brukes til noe. ## Datagrunnlag diff --git a/eksempler/referansebygg/barnehage.toml b/eksempler/referansebygg/barnehage.toml new file mode 100644 index 0000000..e146638 --- /dev/null +++ b/eksempler/referansebygg/barnehage.toml @@ -0,0 +1,99 @@ +# Barnehage — referansebygg for energirammene i TEK17. +# +# Geometri og komponentverdier fra Multiconsult for DiBK, «Grunnlag og forutsetninger for +# beregnede energirammer» (128298-RIEn-NOT-001, 13. november 2015), tabell 1 og 2. Notatet +# oppgir beregnet netto energibehov 132.0 kWh/(m²·år) for denne modellen, beregnet +# med Simien etter NS 3031:2014. Filen er enoks gjengivelse av den samme modellen. +# +# Forenklinger: taket er regnet flatt, og veggarealet er omkrets × etasjehøyde × antall +# etasjer minus vindusarealet. + +[bygning] +navn = "Barnehage (referansebygg TEK17)" +kategori = "barnehage" +byggeaar = 2017 +oppvarmet_bra = 300.0 +oppvarmet_volum = 960.0 + +[klima] +kommune = "Oslo" + +[[flate]] +navn = "Yttervegger" +type = "vegg" +areal = 205.0 +u_verdi = 0.18 +masseklasse = "middels" + +[[flate]] +navn = "Tak" +type = "tak" +areal = 300.0 +u_verdi = 0.13 +masseklasse = "middels" + +[[flate]] +navn = "Gulv på grunn" +type = "gulv" +areal = 300.0 +u_verdi = 0.10 +mot = "grunn" +omkrets = 80.0 +masseklasse = "tung" +kommentar = "U-verdien i notatet er oppgitt inkludert varmemotstanden i grunnen" + +[[vindu]] +navn = "Vinduer nord" +areal = 22.5 +orientering = 0 +u_verdi = 0.80 +g_verdi = 0.40 +karmandel = 0.20 + +[[vindu]] +navn = "Vinduer øst" +areal = 15.0 +orientering = 90 +u_verdi = 0.80 +g_verdi = 0.40 +karmandel = 0.20 + +[[vindu]] +navn = "Vinduer sør" +areal = 22.5 +orientering = 180 +u_verdi = 0.80 +g_verdi = 0.40 +karmandel = 0.20 + +[[vindu]] +navn = "Vinduer vest" +areal = 15.0 +orientering = 270 +u_verdi = 0.80 +g_verdi = 0.40 +karmandel = 0.20 + +[kuldebroer] +normalisert = 0.07 + +[infiltrasjon] +n50 = 0.6 +skjerming = "moderat" + +[ventilasjon] +type = "balansert" +luftmengde = 8.0 +gjenvinning = 0.85 +sfp = 1.5 + +[drift] +belysning_effekt = 6.4 + +[distribusjon] +type = "punkt" + +[[oppvarming.kilde]] +type = "direkte_el" +andel_rom = 1.0 +andel_tappevann = 1.0 diff --git a/eksempler/referansebygg/boligblokk.toml b/eksempler/referansebygg/boligblokk.toml new file mode 100644 index 0000000..17b4f6b --- /dev/null +++ b/eksempler/referansebygg/boligblokk.toml @@ -0,0 +1,83 @@ +# Boligblokk — referansebygg for energirammene i TEK17. +# +# Geometri og komponentverdier fra Multiconsult for DiBK, «Grunnlag og forutsetninger for +# beregnede energirammer» (128298-RIEn-NOT-001, 13. november 2015), tabell 1 og 2. Notatet +# oppgir beregnet netto energibehov 91.8 kWh/(m²·år) for denne modellen, beregnet +# med Simien etter NS 3031:2014. Filen er enoks gjengivelse av den samme modellen. +# +# Forenklinger: taket er regnet flatt, og veggarealet er omkrets × etasjehøyde × antall +# etasjer minus vindusarealet. + +[bygning] +navn = "Boligblokk (referansebygg TEK17)" +kategori = "boligblokk" +byggeaar = 2017 +oppvarmet_bra = 900.0 +oppvarmet_volum = 2430.0 + +[klima] +kommune = "Oslo" + +[[flate]] +navn = "Yttervegger" +type = "vegg" +areal = 495.0 +u_verdi = 0.18 +masseklasse = "middels" + +[[flate]] +navn = "Tak" +type = "tak" +areal = 300.0 +u_verdi = 0.13 +masseklasse = "middels" + +[[flate]] +navn = "Gulv på grunn" +type = "gulv" +areal = 300.0 +u_verdi = 0.10 +mot = "grunn" +omkrets = 80.0 +masseklasse = "tung" +kommentar = "U-verdien i notatet er oppgitt inkludert varmemotstanden i grunnen" + +[[vindu]] +navn = "Vinduer nord" +areal = 112.5 +orientering = 0 +u_verdi = 0.80 +g_verdi = 0.40 +karmandel = 0.20 + +[[vindu]] +navn = "Vinduer sør" +areal = 112.5 +orientering = 180 +u_verdi = 0.80 +g_verdi = 0.40 +karmandel = 0.20 + +[kuldebroer] +normalisert = 0.07 + +[infiltrasjon] +n50 = 0.6 +skjerming = "moderat" + +[ventilasjon] +type = "balansert" +luftmengde = 1.5 +gjenvinning = 0.8 +sfp = 1.5 + +[drift] +belysning_effekt = 1.95 + +[distribusjon] +type = "punkt" + +[[oppvarming.kilde]] +type = "direkte_el" +andel_rom = 1.0 +andel_tappevann = 1.0 diff --git a/eksempler/referansebygg/idrettsbygg.toml b/eksempler/referansebygg/idrettsbygg.toml new file mode 100644 index 0000000..abcd15d --- /dev/null +++ b/eksempler/referansebygg/idrettsbygg.toml @@ -0,0 +1,104 @@ +# Idrettsbygning — referansebygg for energirammene i TEK17. +# +# Geometri og komponentverdier fra Multiconsult for DiBK, «Grunnlag og forutsetninger for +# beregnede energirammer» (128298-RIEn-NOT-001, 13. november 2015), tabell 1 og 2. Notatet +# oppgir beregnet netto energibehov 144.3 kWh/(m²·år) for denne modellen, beregnet +# med Simien etter NS 3031:2014. Filen er enoks gjengivelse av den samme modellen. +# +# Forenklinger: taket er regnet flatt, og veggarealet er omkrets × etasjehøyde × antall +# etasjer minus vindusarealet. + +[bygning] +navn = "Idrettsbygning (referansebygg TEK17)" +kategori = "idrettsbygg" +byggeaar = 2017 +oppvarmet_bra = 3200.0 +oppvarmet_volum = 25600.0 + +[klima] +kommune = "Oslo" + +[[flate]] +navn = "Yttervegger" +type = "vegg" +areal = 1192.0 +u_verdi = 0.18 +masseklasse = "middels" + +[[flate]] +navn = "Tak" +type = "tak" +areal = 3200.0 +u_verdi = 0.13 +masseklasse = "middels" + +[[flate]] +navn = "Gulv på grunn" +type = "gulv" +areal = 3200.0 +u_verdi = 0.10 +mot = "grunn" +omkrets = 240.0 +masseklasse = "tung" +kommentar = "U-verdien i notatet er oppgitt inkludert varmemotstanden i grunnen" + +[[vindu]] +navn = "Vinduer nord" +areal = 240.0 +orientering = 0 +u_verdi = 0.80 +g_verdi = 0.40 +karmandel = 0.20 +solskjerming = { type = "automatisk", faktor = 0.125 } + +[[vindu]] +navn = "Vinduer øst" +areal = 160.0 +orientering = 90 +u_verdi = 0.80 +g_verdi = 0.40 +karmandel = 0.20 +solskjerming = { type = "automatisk", faktor = 0.125 } + +[[vindu]] +navn = "Vinduer sør" +areal = 240.0 +orientering = 180 +u_verdi = 0.80 +g_verdi = 0.40 +karmandel = 0.20 +solskjerming = { type = "automatisk", faktor = 0.125 } + +[[vindu]] +navn = "Vinduer vest" +areal = 160.0 +orientering = 270 +u_verdi = 0.80 +g_verdi = 0.40 +karmandel = 0.20 +solskjerming = { type = "automatisk", faktor = 0.125 } + +[kuldebroer] +normalisert = 0.07 + +[infiltrasjon] +n50 = 0.6 +skjerming = "moderat" + +[ventilasjon] +type = "balansert" +luftmengde = 6.4 +gjenvinning = 0.85 +sfp = 1.5 +kjolebatteri = true + +[drift] +belysning_effekt = 6.4 + +[distribusjon] +type = "radiator" + +[[oppvarming.kilde]] +type = "direkte_el" +andel_rom = 1.0 +andel_tappevann = 1.0 diff --git a/eksempler/referansebygg/kontorbygg.toml b/eksempler/referansebygg/kontorbygg.toml new file mode 100644 index 0000000..52aa7af --- /dev/null +++ b/eksempler/referansebygg/kontorbygg.toml @@ -0,0 +1,104 @@ +# Kontorbygning — referansebygg for energirammene i TEK17. +# +# Geometri og komponentverdier fra Multiconsult for DiBK, «Grunnlag og forutsetninger for +# beregnede energirammer» (128298-RIEn-NOT-001, 13. november 2015), tabell 1 og 2. Notatet +# oppgir beregnet netto energibehov 115.3 kWh/(m²·år) for denne modellen, beregnet +# med Simien etter NS 3031:2014. Filen er enoks gjengivelse av den samme modellen. +# +# Forenklinger: taket er regnet flatt, og veggarealet er omkrets × etasjehøyde × antall +# etasjer minus vindusarealet. + +[bygning] +navn = "Kontorbygning (referansebygg TEK17)" +kategori = "kontorbygg" +byggeaar = 2017 +oppvarmet_bra = 3600.0 +oppvarmet_volum = 11520.0 + +[klima] +kommune = "Oslo" + +[[flate]] +navn = "Yttervegger" +type = "vegg" +areal = 780.0 +u_verdi = 0.18 +masseklasse = "middels" + +[[flate]] +navn = "Tak" +type = "tak" +areal = 1200.0 +u_verdi = 0.13 +masseklasse = "middels" + +[[flate]] +navn = "Gulv på grunn" +type = "gulv" +areal = 1200.0 +u_verdi = 0.10 +mot = "grunn" +omkrets = 160.0 +masseklasse = "tung" +kommentar = "U-verdien i notatet er oppgitt inkludert varmemotstanden i grunnen" + +[[vindu]] +navn = "Vinduer nord" +areal = 270.0 +orientering = 0 +u_verdi = 0.80 +g_verdi = 0.40 +karmandel = 0.20 +solskjerming = { type = "automatisk", faktor = 0.125 } + +[[vindu]] +navn = "Vinduer øst" +areal = 180.0 +orientering = 90 +u_verdi = 0.80 +g_verdi = 0.40 +karmandel = 0.20 +solskjerming = { type = "automatisk", faktor = 0.125 } + +[[vindu]] +navn = "Vinduer sør" +areal = 270.0 +orientering = 180 +u_verdi = 0.80 +g_verdi = 0.40 +karmandel = 0.20 +solskjerming = { type = "automatisk", faktor = 0.125 } + +[[vindu]] +navn = "Vinduer vest" +areal = 180.0 +orientering = 270 +u_verdi = 0.80 +g_verdi = 0.40 +karmandel = 0.20 +solskjerming = { type = "automatisk", faktor = 0.125 } + +[kuldebroer] +normalisert = 0.07 + +[infiltrasjon] +n50 = 0.6 +skjerming = "moderat" + +[ventilasjon] +type = "balansert" +luftmengde = 8.0 +gjenvinning = 0.85 +sfp = 1.5 +kjolebatteri = true + +[drift] +belysning_effekt = 6.4 + +[distribusjon] +type = "radiator" + +[[oppvarming.kilde]] +type = "direkte_el" +andel_rom = 1.0 +andel_tappevann = 1.0 diff --git a/eksempler/referansebygg/kulturbygg.toml b/eksempler/referansebygg/kulturbygg.toml new file mode 100644 index 0000000..cb19879 --- /dev/null +++ b/eksempler/referansebygg/kulturbygg.toml @@ -0,0 +1,104 @@ +# Kulturbygning — referansebygg for energirammene i TEK17. +# +# Geometri og komponentverdier fra Multiconsult for DiBK, «Grunnlag og forutsetninger for +# beregnede energirammer» (128298-RIEn-NOT-001, 13. november 2015), tabell 1 og 2. Notatet +# oppgir beregnet netto energibehov 128.0 kWh/(m²·år) for denne modellen, beregnet +# med Simien etter NS 3031:2014. Filen er enoks gjengivelse av den samme modellen. +# +# Forenklinger: taket er regnet flatt, og veggarealet er omkrets × etasjehøyde × antall +# etasjer minus vindusarealet. + +[bygning] +navn = "Kulturbygning (referansebygg TEK17)" +kategori = "kulturbygg" +byggeaar = 2017 +oppvarmet_bra = 2400.0 +oppvarmet_volum = 7680.0 + +[klima] +kommune = "Oslo" + +[[flate]] +navn = "Yttervegger" +type = "vegg" +areal = 520.0 +u_verdi = 0.18 +masseklasse = "middels" + +[[flate]] +navn = "Tak" +type = "tak" +areal = 1200.0 +u_verdi = 0.13 +masseklasse = "middels" + +[[flate]] +navn = "Gulv på grunn" +type = "gulv" +areal = 1200.0 +u_verdi = 0.10 +mot = "grunn" +omkrets = 160.0 +masseklasse = "tung" +kommentar = "U-verdien i notatet er oppgitt inkludert varmemotstanden i grunnen" + +[[vindu]] +navn = "Vinduer nord" +areal = 180.0 +orientering = 0 +u_verdi = 0.80 +g_verdi = 0.40 +karmandel = 0.20 +solskjerming = { type = "automatisk", faktor = 0.125 } + +[[vindu]] +navn = "Vinduer øst" +areal = 120.0 +orientering = 90 +u_verdi = 0.80 +g_verdi = 0.40 +karmandel = 0.20 +solskjerming = { type = "automatisk", faktor = 0.125 } + +[[vindu]] +navn = "Vinduer sør" +areal = 180.0 +orientering = 180 +u_verdi = 0.80 +g_verdi = 0.40 +karmandel = 0.20 +solskjerming = { type = "automatisk", faktor = 0.125 } + +[[vindu]] +navn = "Vinduer vest" +areal = 120.0 +orientering = 270 +u_verdi = 0.80 +g_verdi = 0.40 +karmandel = 0.20 +solskjerming = { type = "automatisk", faktor = 0.125 } + +[kuldebroer] +normalisert = 0.07 + +[infiltrasjon] +n50 = 0.6 +skjerming = "moderat" + +[ventilasjon] +type = "balansert" +luftmengde = 8.0 +gjenvinning = 0.85 +sfp = 1.5 +kjolebatteri = true + +[drift] +belysning_effekt = 6.4 + +[distribusjon] +type = "radiator" + +[[oppvarming.kilde]] +type = "direkte_el" +andel_rom = 1.0 +andel_tappevann = 1.0 diff --git a/eksempler/referansebygg/skolebygg.toml b/eksempler/referansebygg/skolebygg.toml new file mode 100644 index 0000000..f89a729 --- /dev/null +++ b/eksempler/referansebygg/skolebygg.toml @@ -0,0 +1,104 @@ +# Skolebygning — referansebygg for energirammene i TEK17. +# +# Geometri og komponentverdier fra Multiconsult for DiBK, «Grunnlag og forutsetninger for +# beregnede energirammer» (128298-RIEn-NOT-001, 13. november 2015), tabell 1 og 2. Notatet +# oppgir beregnet netto energibehov 106.8 kWh/(m²·år) for denne modellen, beregnet +# med Simien etter NS 3031:2014. Filen er enoks gjengivelse av den samme modellen. +# +# Forenklinger: taket er regnet flatt, og veggarealet er omkrets × etasjehøyde × antall +# etasjer minus vindusarealet. + +[bygning] +navn = "Skolebygning (referansebygg TEK17)" +kategori = "skolebygg" +byggeaar = 2017 +oppvarmet_bra = 2400.0 +oppvarmet_volum = 7680.0 + +[klima] +kommune = "Oslo" + +[[flate]] +navn = "Yttervegger" +type = "vegg" +areal = 520.0 +u_verdi = 0.18 +masseklasse = "middels" + +[[flate]] +navn = "Tak" +type = "tak" +areal = 1200.0 +u_verdi = 0.13 +masseklasse = "middels" + +[[flate]] +navn = "Gulv på grunn" +type = "gulv" +areal = 1200.0 +u_verdi = 0.10 +mot = "grunn" +omkrets = 160.0 +masseklasse = "tung" +kommentar = "U-verdien i notatet er oppgitt inkludert varmemotstanden i grunnen" + +[[vindu]] +navn = "Vinduer nord" +areal = 180.0 +orientering = 0 +u_verdi = 0.80 +g_verdi = 0.40 +karmandel = 0.20 +solskjerming = { type = "automatisk", faktor = 0.125 } + +[[vindu]] +navn = "Vinduer øst" +areal = 120.0 +orientering = 90 +u_verdi = 0.80 +g_verdi = 0.40 +karmandel = 0.20 +solskjerming = { type = "automatisk", faktor = 0.125 } + +[[vindu]] +navn = "Vinduer sør" +areal = 180.0 +orientering = 180 +u_verdi = 0.80 +g_verdi = 0.40 +karmandel = 0.20 +solskjerming = { type = "automatisk", faktor = 0.125 } + +[[vindu]] +navn = "Vinduer vest" +areal = 120.0 +orientering = 270 +u_verdi = 0.80 +g_verdi = 0.40 +karmandel = 0.20 +solskjerming = { type = "automatisk", faktor = 0.125 } + +[kuldebroer] +normalisert = 0.07 + +[infiltrasjon] +n50 = 0.6 +skjerming = "moderat" + +[ventilasjon] +type = "balansert" +luftmengde = 8.0 +gjenvinning = 0.85 +sfp = 1.5 +kjolebatteri = true + +[drift] +belysning_effekt = 8.0 + +[distribusjon] +type = "radiator" + +[[oppvarming.kilde]] +type = "direkte_el" +andel_rom = 1.0 +andel_tappevann = 1.0 diff --git a/eksempler/referansebygg/smaahus.toml b/eksempler/referansebygg/smaahus.toml new file mode 100644 index 0000000..2c7fd36 --- /dev/null +++ b/eksempler/referansebygg/smaahus.toml @@ -0,0 +1,99 @@ +# Småhus — referansebygg for energirammene i TEK17. +# +# Geometri og komponentverdier fra Multiconsult for DiBK, «Grunnlag og forutsetninger for +# beregnede energirammer» (128298-RIEn-NOT-001, 13. november 2015), tabell 1 og 2. Notatet +# oppgir beregnet netto energibehov 107.5 kWh/(m²·år) for denne modellen, beregnet +# med Simien etter NS 3031:2014. Filen er enoks gjengivelse av den samme modellen. +# +# Forenklinger: taket er regnet flatt, og veggarealet er omkrets × etasjehøyde × antall +# etasjer minus vindusarealet. + +[bygning] +navn = "Småhus (referansebygg TEK17)" +kategori = "smaahus" +byggeaar = 2017 +oppvarmet_bra = 160.0 +oppvarmet_volum = 459.2 + +[klima] +kommune = "Oslo" + +[[flate]] +navn = "Yttervegger" +type = "vegg" +areal = 188.2 +u_verdi = 0.18 +masseklasse = "middels" + +[[flate]] +navn = "Tak" +type = "tak" +areal = 80.0 +u_verdi = 0.13 +masseklasse = "middels" + +[[flate]] +navn = "Gulv på grunn" +type = "gulv" +areal = 80.0 +u_verdi = 0.10 +mot = "grunn" +omkrets = 36.0 +masseklasse = "tung" +kommentar = "U-verdien i notatet er oppgitt inkludert varmemotstanden i grunnen" + +[[vindu]] +navn = "Vinduer nord" +areal = 12.0 +orientering = 0 +u_verdi = 0.80 +g_verdi = 0.40 +karmandel = 0.20 + +[[vindu]] +navn = "Vinduer øst" +areal = 8.0 +orientering = 90 +u_verdi = 0.80 +g_verdi = 0.40 +karmandel = 0.20 + +[[vindu]] +navn = "Vinduer sør" +areal = 12.0 +orientering = 180 +u_verdi = 0.80 +g_verdi = 0.40 +karmandel = 0.20 + +[[vindu]] +navn = "Vinduer vest" +areal = 8.0 +orientering = 270 +u_verdi = 0.80 +g_verdi = 0.40 +karmandel = 0.20 + +[kuldebroer] +normalisert = 0.05 + +[infiltrasjon] +n50 = 0.6 +skjerming = "moderat" + +[ventilasjon] +type = "balansert" +luftmengde = 1.2 +gjenvinning = 0.8 +sfp = 1.5 + +[drift] +belysning_effekt = 1.95 + +[distribusjon] +type = "punkt" + +[[oppvarming.kilde]] +type = "direkte_el" +andel_rom = 1.0 +andel_tappevann = 1.0 diff --git a/tests/referansebygg_2015.rs b/tests/referansebygg_2015.rs new file mode 100644 index 0000000..423acc9 --- /dev/null +++ b/tests/referansebygg_2015.rs @@ -0,0 +1,92 @@ +//! Kontroll mot de publiserte referansebyggene for energirammene i TEK17. +//! +//! Multiconsult for DiBK, «Grunnlag og forutsetninger for beregnede energirammer» +//! (128298-RIEn-NOT-001, 13. november 2015), gir geometri (tabell 1), komponentverdier +//! (tabell 2) og beregnet netto energibehov (tabell 3) for tretten bygningskategorier, +//! beregnet med Simien etter NS 3031:2014. Modellene er gjengitt i `eksempler/referansebygg/`. +//! +//! Dette er den eneste kontrollen der hele beregningen kan sammenlignes med et publisert +//! resultat for flere bygningskategorier. Testen låser dagens avvik, slik at det blir synlig +//! både når motoren nærmer seg de publiserte tallene og når noe gjør avviket større. +//! +//! Kjør `cargo test --release referansebygg_2015 -- --nocapture` for hele tabellen. + +use enok::data::Datakilde; +use enok::{inndata, kjor}; +use std::path::Path; + +/// Fil, publisert netto energibehov, og enoks verdi slik den er i dag, kWh/(m²·år). +const BYGG: [(&str, f64, f64); 7] = [ + ("smaahus", 107.5, 85.3), + ("boligblokk", 91.8, 77.6), + ("barnehage", 132.0, 80.1), + ("kontorbygg", 115.3, 93.5), + ("skolebygg", 106.8, 72.8), + ("idrettsbygg", 144.3, 106.7), + ("kulturbygg", 128.0, 73.2), +]; + +fn netto(navn: &str) -> f64 { + let sti = format!("eksempler/referansebygg/{navn}.toml"); + let b = inndata::les_bygning(Path::new(&sti)).unwrap(); + let r = kjor::kjor(&b, &Datakilde::default()).unwrap(); + r.budsjett.netto_spesifikk(r.lost.bra) +} + +/// Verdiene skal ikke endre seg uten at noen har ment det. +#[test] +fn referansebyggene_gir_de_samme_tallene() { + println!( + "\n {:14}{:>10}{:>12}{:>9}", + "bygg", "enok", "publisert", "avvik" + ); + let mut avvik = Vec::new(); + for (navn, publisert, laast) in BYGG { + let n = netto(navn); + println!( + " {navn:14}{n:10.1}{publisert:12.1}{:8.1} %", + 100.0 * (n - publisert) / publisert + ); + avvik.push(100.0 * (n - publisert) / publisert); + assert!( + (n - laast).abs() < 1.0, + "{navn}: {n:.1} kWh/(m²·år), låst verdi {laast:.1}" + ); + } + let snitt = avvik.iter().sum::() / avvik.len() as f64; + println!(" {:14}{:>10}{:>12}{snitt:8.1} %\n", "snitt", "", ""); +} + +/// Varmetapstallet for småhuset skal treffe den publiserte verdien for TEK17-nivå. +/// +/// Geometri og U-verdier er dermed riktig gjengitt, og avviket i netto energibehov ligger i +/// den dynamiske beregningen, ikke i inndataene. +#[test] +fn varmetapstallet_for_smaahuset_stemmer() { + let b = inndata::les_bygning(Path::new("eksempler/referansebygg/smaahus.toml")).unwrap(); + let r = kjor::kjor(&b, &Datakilde::default()).unwrap(); + let publisert = 0.69; + assert!( + (r.varmetap.totalt - publisert).abs() < 0.03, + "varmetapstall {:.2}, publisert {publisert:.2}", + r.varmetap.totalt + ); +} + +/// De faste postene følger av normerte verdier og skal stemme uavhengig av motoren. +#[test] +fn faste_poster_i_referansebyggene() { + let post = |r: &kjor::Resultat, nr: &str| { + r.budsjett + .poster + .iter() + .find(|p| p.nr == nr) + .map(|p| p.netto / r.lost.bra) + .unwrap_or(0.0) + }; + let b = inndata::les_bygning(Path::new("eksempler/referansebygg/smaahus.toml")).unwrap(); + let r = kjor::kjor(&b, &Datakilde::default()).unwrap(); + assert!((post(&r, "2") - 25.1).abs() < 0.2, "varmtvann"); + assert!((post(&r, "5") - 11.4).abs() < 0.2, "belysning"); + assert!((post(&r, "6") - 17.5).abs() < 0.2, "teknisk utstyr"); +}