Netto energibehov skal ikke avhenge av varmeanlegget, men enok lot systemtapet fra tappevann og varmedistribusjon telle som varmetilskudd i rommene. Det er riktig etter ISO 52000-1 og NS 3031:2025 for et bygg som skal beskrive faktisk energibruk, men ikke for energirammene, som er netto tall. «drift.systemtap_som_tilskudd» styrer det nå, og referansebyggene settes opp uten. Snittavviket mot de publiserte verdiene går fra 27,9 til 26,4 prosent. Samtidig er det dokumentert hva avviket kommer av. Beregningen er kontrollert mot en uavhengig bin-beregning rett av klimafilen: under de samme forutsetningene gir enok 49,5 mot bin-beregningens 51,5 kWh/(m²·år). Varmetapet er altså riktig, og avviket ligger i varmetilskuddene, som er målt hver for seg i README. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015GeH3y8fwTaTudaD88P57o
This commit is contained in:
+14
-3
@@ -173,18 +173,29 @@ pub fn kjor_med_klima(
|
||||
.map(|s| s.andel_tappevannstap)
|
||||
.sum::<f64>()
|
||||
.min(1.0);
|
||||
// Uten gjenvinnbart systemtap blir netto energibehov uavhengig av varmeanlegget, slik
|
||||
// energirammene i TEK er regnet. Med, slik ISO 52000-1 og NS 3031:2025 beskriver det,
|
||||
// varmer tapet rommene det står i.
|
||||
let med = if lost.systemtap_som_tilskudd {
|
||||
1.0
|
||||
} else {
|
||||
0.0
|
||||
};
|
||||
let tilskudd = Systemtilskudd {
|
||||
tappevann: tappevannstap * systemer_oppsett.tappevann_tap_i_sone * (1.0 - sone_tappevann),
|
||||
tappevann: med
|
||||
* tappevannstap
|
||||
* systemer_oppsett.tappevann_tap_i_sone
|
||||
* (1.0 - sone_tappevann),
|
||||
sone_fast: lost
|
||||
.soner
|
||||
.iter()
|
||||
.map(|s| s.fast_effekt + tappevannstap * s.andel_tappevannstap)
|
||||
.map(|s| s.fast_effekt + med * tappevannstap * s.andel_tappevannstap)
|
||||
.collect(),
|
||||
sone_andel_romvarme: lost
|
||||
.soner
|
||||
.iter()
|
||||
.map(|s| {
|
||||
s.andel_distribusjonstap * systemer_oppsett.distribusjon_tap_ut
|
||||
med * s.andel_distribusjonstap * systemer_oppsett.distribusjon_tap_ut
|
||||
/ (1.0 - systemer_oppsett.distribusjon_tap_ut).max(1e-6)
|
||||
})
|
||||
.collect(),
|
||||
|
||||
@@ -114,6 +114,8 @@ pub struct Lost {
|
||||
pub lufting: Option<(f64, f64)>,
|
||||
pub regulering: Regulering,
|
||||
pub innvendig_varmekapasitet: f64,
|
||||
/// Teller systemtapet fra tappevann og varmedistribusjon som varmetilskudd i sonene?
|
||||
pub systemtap_som_tilskudd: bool,
|
||||
pub maks_varmeeffekt: Option<f64>,
|
||||
pub maks_kjoleeffekt: Option<f64>,
|
||||
pub albedo: f64,
|
||||
@@ -334,6 +336,7 @@ impl Lost {
|
||||
};
|
||||
|
||||
let innvendig_varmekapasitet = b.drift.innvendig_varmekapasitet.unwrap_or(10_000.0);
|
||||
let systemtap_som_tilskudd = b.drift.systemtap_som_tilskudd.unwrap_or(true);
|
||||
|
||||
// Vinduslufting brukes når bygningen ikke har kjøleanlegg.
|
||||
let lufting = if b.lufting.ingen
|
||||
@@ -402,6 +405,7 @@ impl Lost {
|
||||
lufting,
|
||||
regulering: Regulering::Operativ,
|
||||
innvendig_varmekapasitet,
|
||||
systemtap_som_tilskudd,
|
||||
maks_varmeeffekt: b.oppvarming.maks_effekt,
|
||||
maks_kjoleeffekt: b.kjoling.maks_effekt,
|
||||
albedo: b.klima.albedo.unwrap_or(0.2),
|
||||
|
||||
@@ -668,6 +668,13 @@ pub struct Drift {
|
||||
/// Effektiv innvendig varmekapasitet for luft og inventar, J/(m²K). Utelatt: 10 000 (ISO 52016-1).
|
||||
#[serde(default, skip_serializing_if = "Option::is_none")]
|
||||
pub innvendig_varmekapasitet: Option<f64>,
|
||||
/// Skal varmetapet fra tappevanns- og varmeanlegget telle som varmetilskudd i rommene?
|
||||
///
|
||||
/// Utelatt: ja, slik ISO 52000-1 og NS 3031:2025 beskriver gjenvinnbart systemtap. Sett
|
||||
/// den til `false` for et netto energibehov som er uavhengig av varmeanlegget, slik
|
||||
/// energirammene i TEK er regnet.
|
||||
#[serde(default, skip_serializing_if = "Option::is_none")]
|
||||
pub systemtap_som_tilskudd: Option<bool>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Clone, Debug)]
|
||||
|
||||
Reference in New Issue
Block a user