Energiberegning etter NS 3031:2025 med timesmetode og energirapport
enok leser en bygningsbeskrivelse i TOML, henter typisk klimaår for kommunen, simulerer 8760 timer etter NS-EN ISO 52016-1 og skriver energirapport, CSV og JSON. Motor - Femnodemodell for opake bygningsdeler, tonodemodell for vinduer, luftnode og strålingsnode per sone, implisitt løsning per time med egen tett LU-løser. - Varme- og kjølebehov ved eksakt interpolasjon mellom to løsninger, siden systemet er lineært. Vinduslufting for bygninger uten kjøleanlegg. - Solberegning etter ISO 52010-1, kontrollert mot pvlib med avvik under 1 prosent. Beregningsgang - Beregningspunktene A til E: netto, brutto, tilført, levert per energibærer og vektet levert energi, med solceller, klimakorrigering og effektbehov. - Energikarakter etter Enovas skala fra 1.1.2026, med arealkorreksjon. Inndata - TOML med scenarier for tiltak, og import fra IFC, gbXML og regneark. - Normerte verdier, karakterskala, vektingsfaktorer og klimadata i data/, som kan overstyres med --data. Kontroll - Stasjonært varmetap mot U·A·ΔT innenfor 2 prosent, energibalansen innenfor 2 prosent, varmetapsbudsjettet for TEK17-referansebygget identisk med publisert tabell. Kjent avvik i romoppvarming mot Simien 8 er dokumentert i README. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015GeH3y8fwTaTudaD88P57o
This commit is contained in:
@@ -0,0 +1,233 @@
|
||||
# enok
|
||||
|
||||
Årlig energiberegning og energirapport for bygninger etter **NS 3031:2025**, med
|
||||
timesoppløsning gjennom hele året og energikarakter etter Enovas skala som gjelder fra
|
||||
1. januar 2026.
|
||||
|
||||
Programmet tar en beskrivelse av bygningen — geometri, konstruksjoner, vinduer, ventilasjon,
|
||||
varmekilder og drift — og et typisk klimaår, og gir 8760 timesverdier, et fullt energibudsjett
|
||||
fra netto energibehov til vektet levert energi, en energikarakter og en ferdig rapport i PDF.
|
||||
|
||||
```
|
||||
enok beregn bygninger/nordhusstykket-5.toml
|
||||
```
|
||||
|
||||
```
|
||||
Nordhusstykket 5 (Småhus, 140 m², byggeår 1948)
|
||||
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)
|
||||
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
|
||||
```
|
||||
|
||||
## Hva programmet gjør
|
||||
|
||||
**Beregningsmetode.** Dynamisk timesberegning etter NS-EN ISO 52016-1, slik NS 3031:2025
|
||||
krever. Hver opake bygningsdel modelleres med fem noder der varmekapasiteten fordeles etter
|
||||
masseplassering, vinduer med to noder, og sonen har en luftnode og en strålingsnode som
|
||||
fordeler langbølget utveksling mellom innvendige overflater. Systemet løses implisitt for hver
|
||||
time. Varme- og kjølebehovet bestemmes ved å løse uten tilført effekt og med en prøveeffekt;
|
||||
siden systemet er lineært treffer interpolasjonen settpunktet nøyaktig.
|
||||
|
||||
**Beregningspunkter.** Budsjettet følger NS 3031:2025 fra A til E: netto energibehov,
|
||||
brutto etter distribusjons- og akkumuleringstap, tilført energi etter systemvirkningsgrad og
|
||||
årsvarmefaktor for hver varmekilde, levert energi per energibærer med fradrag for
|
||||
egenprodusert solstrøm, og til slutt vektet levert energi.
|
||||
|
||||
**Energikarakter.** Vektet levert energi per kvadratmeter oppvarmet BRA slås opp i Enovas
|
||||
skala, med arealkorreksjonen som gjelder for småhus og boligblokk. Vektingsfaktorene er
|
||||
elektrisitet 1,0, fjernvarme og biobrensel 0,45, eksportert energi 0. Vedovn regnes å dekke
|
||||
inntil 10 prosent av romoppvarmingen.
|
||||
|
||||
**Klimadata.** Timesverdier for alle norske kommuner fra datasettet som ble laget til
|
||||
NS 3031:2025 (CERRA 1991–2020, CC-BY-4.0). Beregnes bygningen i lokalt klima, korrigeres de
|
||||
klimaavhengige energipostene til referanseklima Oslo med klimakorrigeringsfaktorene fra
|
||||
standardens tillegg, slik energimerkeforskriften krever. Arkivet lastes ned én gang og
|
||||
hurtiglagres.
|
||||
|
||||
**Tiltak.** Scenarier i samme fil gir før-og-etter-tall og karakterer i én tabell.
|
||||
|
||||
## Installasjon
|
||||
|
||||
```sh
|
||||
cargo install --path .
|
||||
```
|
||||
|
||||
Typst må være installert for PDF-rapporten. Uten Typst kjører du med `--ingen-pdf`; da skrives
|
||||
`rapport.typ` som du kan kompilere senere.
|
||||
|
||||
## Bruk
|
||||
|
||||
| Kommando | Hva den gjør |
|
||||
| --- | --- |
|
||||
| `enok beregn FIL.toml` | Beregner og skriver rapport, CSV og JSON til `ut/<navn>/` |
|
||||
| `enok import FIL` | Leser IFC, gbXML eller regneark og skriver `bygning.toml` |
|
||||
| `enok klima --liste` | Lister alle kommuner med klimadata |
|
||||
| `enok klima --kommune Oslo` | Viser nøkkeltall for ett klimasted |
|
||||
| `enok skala smaahus --areal 140` | Viser karakterskalaen med arealkorreksjon |
|
||||
|
||||
Nyttige valg til `beregn`: `--ingen-pdf`, `--ingen-timeserie`, `--enova-xml`,
|
||||
`--uten-scenarier`, `--ut KATALOG`.
|
||||
|
||||
### Utdata
|
||||
|
||||
| Fil | Innhold |
|
||||
| --- | --- |
|
||||
| `rapport.pdf` | Energirapport med karakter, varmetapsbudsjett, energibudsjett og figurer |
|
||||
| `rapport.typ`, `stil.typ` | Typst-kilde, slik at rapporten kan tilpasses |
|
||||
| `resultat.json` | Hele resultatet, inkludert forutsetninger og månedsverdier |
|
||||
| `timeserie.csv` | 8760 rader med temperaturer, laster, sol og energistrømmer |
|
||||
| `maaned.csv` | Månedssummer |
|
||||
| `enova-2014.xml` | XML for energimerkesystemet, med `--enova-xml` |
|
||||
|
||||
## Bygningsbeskrivelsen
|
||||
|
||||
En bygning beskrives i TOML. Alt som utelates fylles med normerte verdier for
|
||||
bygningskategorien, eller med typiske verdier for byggeåret, og rapporten viser hva som er
|
||||
antatt og hvor det kommer fra.
|
||||
|
||||
```toml
|
||||
[bygning]
|
||||
navn = "Nordhusstykket 5"
|
||||
kategori = "smaahus"
|
||||
byggeaar = 1948
|
||||
oppvarmet_bra = 140.0
|
||||
|
||||
[klima]
|
||||
kommune = "Indre Østfold"
|
||||
|
||||
[[flate]]
|
||||
navn = "Yttervegg sør"
|
||||
type = "vegg"
|
||||
areal = 26.0
|
||||
orientering = 180 # grader fra nord med klokka
|
||||
u_verdi = 1.0 # eller `lag = [{ materiale = "tre", tykkelse = 0.02 }, …]`
|
||||
masseklasse = "lett"
|
||||
mot = "ute" # ute | grunn | uoppvarmet
|
||||
|
||||
[[vindu]]
|
||||
navn = "Vinduer sør"
|
||||
areal = 6.0
|
||||
orientering = 180
|
||||
u_verdi = 2.80
|
||||
g_verdi = 0.76
|
||||
|
||||
[infiltrasjon]
|
||||
n50 = 8.0
|
||||
|
||||
[ventilasjon]
|
||||
type = "naturlig" # naturlig | avtrekk | balansert
|
||||
|
||||
[[oppvarming.kilde]]
|
||||
type = "el_kjel" # direkte_el, luft_luft_vp, vaeske_vann_vp, vedovn, fjernvarme, …
|
||||
andel_rom = 0.75
|
||||
andel_tappevann = 1.0
|
||||
|
||||
[[scenario]]
|
||||
navn = "Nye vinduer"
|
||||
endringer.vindu = [{ navn = "Vinduer sør", u_verdi = 0.80, g_verdi = 0.50 }]
|
||||
```
|
||||
|
||||
Scenarier flettes inn i bygningsbeskrivelsen: tabeller flettes rekursivt, elementer i lister
|
||||
matches på `navn` eller `type`, nye elementer legges til, og `slett = true` fjerner et element.
|
||||
|
||||
Ferdige eksempler ligger i `eksempler/`.
|
||||
|
||||
## Import fra Vectorworks og andre BIM-verktøy
|
||||
|
||||
| Format | Slik henter du det | Hva som kommer med |
|
||||
| --- | --- | --- |
|
||||
| IFC | *Fil → Eksporter → Export IFC Project* | Flater, areal, U-verdier fra egenskapssett, himmelretning fra plassering, vinduer og dører koblet til vegg |
|
||||
| gbXML | Verktøy som eksporterer gbXML | Rom, flater, åpninger, konstruksjoner med lag |
|
||||
| Regneark | *Fil → Eksporter → Export Worksheet* | Enkel CSV med én rad per bygningsdel |
|
||||
|
||||
Himmelretningene i IFC utledes av elementenes plassering: veggens lokale akse gir planet, og
|
||||
ytre normal velges som den som peker bort fra bygningens tyngdepunkt, korrigert for prosjektets
|
||||
sanne nord. Kontroller dem mot tegningen etter import.
|
||||
|
||||
Ingen av formatene beskriver ventilasjon, lekkasjetall eller varmekilder. Importen skriver
|
||||
merknader øverst i TOML-filen om hva som må fylles ut.
|
||||
|
||||
Regnearkformatet er bevisst enkelt, slik at det kan settes opp som en rapport i BIM-verktøyet:
|
||||
|
||||
```csv
|
||||
type,navn,areal,u_verdi,orientering,helning,mot,g_verdi,antall
|
||||
bygning,Nordhusstykket 5,140,,,,smaahus,1948,
|
||||
vegg,Yttervegg sør,26,1.0,180,90,ute,,
|
||||
gulv,Mot kjeller,98,0.8,,180,uoppvarmet,,
|
||||
vindu,Stue sør,3.0,2.8,180,90,,0.76,2
|
||||
```
|
||||
|
||||
## Rapporter fra byggeserveren
|
||||
|
||||
`.gitea/workflows/rapport.yml` bygger rapporter for alle bygningene i `bygninger/` og legger
|
||||
PDF, JSON og CSV ved utgivelsen når du setter en tagg som begynner med `v` eller `rapport-`.
|
||||
IFC-, gbXML- og CSV-filer importeres automatisk til TOML dersom det ikke allerede finnes en
|
||||
TOML-fil med samme navn. Se `bygninger/LES-MEG.md`.
|
||||
|
||||
## Kontroll av beregningen
|
||||
|
||||
Motoren er kontrollert mot uavhengige referanser:
|
||||
|
||||
| Kontroll | Resultat |
|
||||
| --- | --- |
|
||||
| Solinnstråling på skrå og orienterte flater, mot pvlib (Hay–Davies) | avvik under 1 % for alle himmelretninger i Oslo-klima |
|
||||
| Stasjonært varmetap mot U·A·ΔT | innenfor 2 % |
|
||||
| Årlig energibalanse | går opp innenfor 2 % |
|
||||
| Varmebehov som funksjon av temperaturdifferanse | eksakt lineært |
|
||||
| Varmetapsbudsjett for TEK17-referansebygget | identisk med publisert tabell, 0,69 W/(m²K) |
|
||||
| Normerte energiposter for småhus | varmtvann 25,1, belysning 11,4, teknisk utstyr 17,5 kWh/(m²·år) |
|
||||
|
||||
### Kjent avvik
|
||||
|
||||
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.
|
||||
|
||||
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, skjermingsforutsetningene
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
## Datagrunnlag
|
||||
|
||||
Alle normerte verdier ligger i `data/` og kan overstyres med `--data KATALOG`.
|
||||
|
||||
| Fil | Innhold og kilde |
|
||||
| --- | --- |
|
||||
| `skala.toml` | Energikarakterskalaen fra 1.1.2026, Enova SF via Multiconsult-notatet «Grunnlag for ny energikarakterskala», 19.12.2025 |
|
||||
| `vekting.toml` | Vektingsfaktorer etter energimerkeforskriften § 10a med NVEs veileder |
|
||||
| `normerte/*.toml` | Normerte laster, driftstider og settpunkt. Utgangspunktet er NS 3031:2014 Tillegg A; varmtvann er oppdatert til NS 3031:2025-verdien for småhus. Timesprofiler fra NS 3031:2025 kan legges inn i `profil_*`-feltene |
|
||||
| `varmepumpe_spf.toml` | Veiledende årsvarmefaktorer, NS 3031:2014 tabell B.9-3 |
|
||||
| `materialer.toml` | Materialdata og typiske U-verdier per byggeperiode |
|
||||
| `klimakorreksjon.csv` | Klimakorrigeringsfaktorer, Standard Norge SN/K 34, doi 10.5281/zenodo.15041587 |
|
||||
|
||||
Klimadata: «TMY files for Norway based on CERRA data from 1991-2020», doi
|
||||
10.5281/zenodo.14779899, CC-BY-4.0.
|
||||
|
||||
## Regelverk
|
||||
|
||||
- Forskrift om energimerking av bygninger og energivurdering av varme- og klimaanlegg,
|
||||
§§ 10a og 10b, med NVEs veileder
|
||||
- NS 3031:2025 *Bygningers energiytelse — Beregning av energi- og effektbehov*
|
||||
- NS-EN ISO 52016-1:2017 og NS-EN ISO 52010-1:2017
|
||||
|
||||
## Lisens
|
||||
|
||||
MIT.
|
||||
Reference in New Issue
Block a user