diff --git a/src/components/Tabellen/A12NutzenergiebedarfHeizung.svelte b/src/components/Tabellen/A12NutzenergiebedarfHeizung.svelte index 7e0a9807..5723b393 100644 --- a/src/components/Tabellen/A12NutzenergiebedarfHeizung.svelte +++ b/src/components/Tabellen/A12NutzenergiebedarfHeizung.svelte @@ -1,3 +1,5 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Tabelle A.5 — Gebäude – Berechnung Wärmetransferkoeffizienten und maximaler Wärmeströme

+
+ Wärmesenken - Bauteile +
Objekt:{ObjektAdresse}
NettogrundflächeANGF [m²]{NettoGrundflaeche}θe,min [°C]{minimaleAussentemperatur}
Lichte RaumhöhehG [m]{LichteRaumHoehe}θi,h,soll [°C]{innenTemperatur}
Volumen (Innenmaß)V = ANGF · hG [m³]{Math.round(ObjektNettoVolumen*10)/10}Δθmax = θi,h,soll − θe,min{maximaleTemperaturDifferenz}
Volumen (Außenmaß)Ve [m³]{ObjektBruttoVolumen}
Faktor (kleine Gebäude: 0,76 / große Gebäude: 0,8)n*{FaktorNettoVolumen}
Volumen (Innenmaß) - alternativV = n* · Ve [m³]{Math.round(ObjektNettoVolumenAlternativ*10)/10}A/V-Verhätnis [1/m]
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BauteilFläche
Ai (m²)
Wärmedurchgangs-
koeffizient Ui
(W/m²·K)
HT,i*
= Ui · Ai
(W/K)
Fxi
aus Tabelle C.3/C.4
HT,i
= Ui · Ai · Fxi
(W/K)
maximaler Wärmestrom
T,i = HT,i · ΔΘmax
(W)
Außenwand West{AussenWandFlaecheWest}{WaermeDurchgangsKoeffizientAussenWandWest}{Math.round(WaermeTransferKoeffizientAussenwandWest*100)/100}{TemperaturKorrekturFaktorAussenwand}{Math.round(WaermeTransferKoeffizientAussenwandWestKorrektur*100)/100}{Math.round(maximalerWaermestromAussenwandWest)}
Außenwand Süd{AussenWandFlaecheSued}{WaermeDurchgangsKoeffizientAussenWandSued}{Math.round(WaermeTransferKoeffizientAussenwandSued*100)/100}{TemperaturKorrekturFaktorAussenwand}{Math.round(WaermeTransferKoeffizientAussenwandSuedKorrektur*100)/100}{Math.round(maximalerWaermestromAussenwandSued)}
Außenwand Nord{AussenWandFlaecheNord}{WaermeDurchgangsKoeffizientAussenWandNord}{Math.round(WaermeTransferKoeffizientAussenwandNord*100)/100}{TemperaturKorrekturFaktorAussenwand}{Math.round(WaermeTransferKoeffizientAussenwandNordKorrektur*100)/100}{Math.round(maximalerWaermestromAussenwandNord)}
Außenwand Ost{AussenWandFlaecheOst}{WaermeDurchgangsKoeffizientAussenWandOst}{Math.round(WaermeTransferKoeffizientAussenwandOst*100)/100}{TemperaturKorrekturFaktorAussenwand}{Math.round(WaermeTransferKoeffizientAussenwandOstKorrektur*100)/100}{Math.round(maximalerWaermestromAussenwandOst)}
Fenster West{FensterFlaecheWest}{WaermeDurchgangsKoeffizientFensterWest}{Math.round(WaermeTransferKoeffizientFensterWest*100)/100}{TemperaturKorrekturFaktorFenster}{Math.round(WaermeTransferKoeffizientFensterWestKorrektur*100)/100}{Math.round(maximalerWaermestromFensterWest)}
Fenster Süd{FensterFlaecheSued}{WaermeDurchgangsKoeffizientFensterSued}{Math.round(WaermeTransferKoeffizientFensterSued*100)/100}{TemperaturKorrekturFaktorFenster}{Math.round(WaermeTransferKoeffizientFensterSuedKorrektur*100)/100}{Math.round(maximalerWaermestromFensterSued)}
Fenster Nord{FensterFlaecheNord}{WaermeDurchgangsKoeffizientFensterNord}{Math.round(WaermeTransferKoeffizientFensterNord*100)/100}{TemperaturKorrekturFaktorFenster}{Math.round(WaermeTransferKoeffizientFensterNordKorrektur*100)/100}{Math.round(maximalerWaermestromFensterNord)}
Fenster Ost{FensterFlaecheOst}{WaermeDurchgangsKoeffizientFensterOst}{Math.round(WaermeTransferKoeffizientFensterOst*100)/100}{TemperaturKorrekturFaktorFenster}{Math.round(WaermeTransferKoeffizientFensterOstKorrektur*100)/100}{Math.round(maximalerWaermestromFensterOst)}
Fenstertür
Haustür{HaustuerFlaeche}{WaermeDurchgangsKoeffizientHaustuer}{Math.round(WaermeTransferKoeffizientHaustuer*100)/100}{TemperaturKorrekturFaktorHaustuer}{Math.round(WaermeTransferKoeffizientHaustuerKorrektur*100)/100}{Math.round(maximalerWaermestromHaustuer)}
Flachdach{FlachdachFlaeche}{WaermeDurchgangsKoeffizientFlachdach}{Math.round(WaermeTransferKoeffizientFlachdach*100)/100}{TemperaturKorrekturFaktorFlachdach}{Math.round(WaermeTransferKoeffizientFlachdachKorrektur*100)/100}{Math.round(maximalerWaermestromFlachdach)}
Oberste Geschossdecke
Wand gegen Abseitenraum
Bodenplatte{BodenplatteFlaeche}{WaermeDurchgangsKoeffizientBodenplatte}{Math.round(WaermeTransferKoeffizientBodenplatte*100)/100}{TemperaturKorrekturFaktorBodenplatte}{Math.round(WaermeTransferKoeffizientBodenplatteKorrektur*100)/100}{Math.round(maximalerWaermestromBodenplatte)}
Gesamthüllfläche + A = ∑i Ai [m²]Wärmebrückenzuschlag
ΔUWB [W/m²K] + aus C.5
+ HT,WB = ΔUWB · A [W/K]
Berücksichtigung von Wärmebrücken{Math.round(GesamtHuellFlaeche*100)/100}{WaermeBrueckenZuschlag}{Math.round(WaermeTransferKoeffizientWaeremebruecken*100)/100}{Math.round(maximalerWaermestromWaermebruecken)}
HT,ges = ∑ HTi + HT,WB [W/K]T = HT,ges · ΔΘmax [W]
{Math.round(WaermeTransferKoeffizientGesamt*100)/100}{Math.round(maximalerWaermestromGesamt)}
Wärmetransferkoeffizient für Transmissionmaximaler Wärmestrom
+
\ No newline at end of file diff --git a/src/lib/Berechnungen/BedarfsausweisWohnen/funktionAusnutzungsgrad.ts b/src/lib/Berechnungen/BedarfsausweisWohnen/funktionAusnutzungsgrad.ts index 177a1ab6..6ed17a0a 100644 --- a/src/lib/Berechnungen/BedarfsausweisWohnen/funktionAusnutzungsgrad.ts +++ b/src/lib/Berechnungen/BedarfsausweisWohnen/funktionAusnutzungsgrad.ts @@ -1,6 +1,6 @@ // Funktion zur Berechnung des Ausnutzungsgrades aus Tabelle 18 -import { linearInterpolation, nevillePolynomialInterpolation } from "js-interpolate"; +import { cubicSplineInterpolation, nevillePolynomialInterpolation } from "js-interpolate"; const dataset = { alleMonate: { @@ -130,7 +130,7 @@ export function funktionAusnutzungsgrad( for (const key in data) { const values = data[key as unknown as keyof typeof data]; - const interpolated = linearInterpolation( + const interpolated = cubicSplineInterpolation( values.map((value, i) => ({ x: waermeQuellenSenkenVerhaeltnis[i], y: value, @@ -142,7 +142,7 @@ export function funktionAusnutzungsgrad( interpolations.push(interpolated); } - const interpolated = linearInterpolation( + const interpolated = cubicSplineInterpolation( interpolations.map((interpolation, i) => { return { x: Object.keys(data)[i], diff --git a/src/lib/Berechnungen/BedarfsausweisWohnen/funktionBilanzInnentemperatur.ts b/src/lib/Berechnungen/BedarfsausweisWohnen/funktionBilanzInnentemperatur.ts index 6b886b2d..9a55ab68 100644 --- a/src/lib/Berechnungen/BedarfsausweisWohnen/funktionBilanzInnentemperatur.ts +++ b/src/lib/Berechnungen/BedarfsausweisWohnen/funktionBilanzInnentemperatur.ts @@ -1,10 +1,10 @@ // Funktion zur Berechnung der Bilanzinnentemperatur aus Tabelle 8 EFH oder Tabelle 10 MFH -import { linearInterpolation, nevillePolynomialInterpolation } from "js-interpolate"; +import { cubicSplineInterpolation } from "js-interpolate"; import { any } from "node_modules/cypress/types/bluebird/index.js"; // aus Eingabeformular -let wohneinheiten = 3; +let WohnEinheiten = 2; const datasetEinfamilienHaus = { Januar: { @@ -132,15 +132,15 @@ const datasetEinfamilienHaus = { }, }; - function getDataset(wohneinheiten: number) { - if (wohneinheiten < 3) { + function getDataset(WohnEinheiten: number) { + if (WohnEinheiten < 3) { return datasetEinfamilienHaus; } else { return datasetMehrfamilienHaus; } } - const dataset = getDataset(wohneinheiten); + const dataset = getDataset(WohnEinheiten); // Für "Ohne Teilbeheizung" habe ich hier einfach 0 eingesetzt: const HeizLast = [0, 5, 10, 25, 50, 75, 100, 125, 150]; @@ -157,7 +157,7 @@ export function funktionBilanzInnentemperatur(heizlast: number, zeitkonstane: nu for (const key in data) { const values = data[key as unknown as keyof typeof data] - const interpolated = linearInterpolation( + const interpolated = cubicSplineInterpolation( values.map((value, i) => ({ x: HeizLast[i], y: value })), heizlast ) @@ -165,7 +165,7 @@ export function funktionBilanzInnentemperatur(heizlast: number, zeitkonstane: nu interpolations.push(interpolated) } - const interpolated = linearInterpolation( + const interpolated = cubicSplineInterpolation( interpolations.map((interpolation, i) => { return { x: Object.keys(data)[i], diff --git a/src/lib/Berechnungen/BedarfsausweisWohnen/funktionMonatlicherBelastungsgrad.ts b/src/lib/Berechnungen/BedarfsausweisWohnen/funktionMonatlicherBelastungsgrad.ts index 6f37a4b3..6439be49 100644 --- a/src/lib/Berechnungen/BedarfsausweisWohnen/funktionMonatlicherBelastungsgrad.ts +++ b/src/lib/Berechnungen/BedarfsausweisWohnen/funktionMonatlicherBelastungsgrad.ts @@ -1,9 +1,9 @@ // Funktion zur Berechnung des monatlichen Belastungsgrades aus Tabelle 9 EFH und Tabelle 11 MFH -import { linearInterpolation } from "js-interpolate"; +import { cubicSplineInterpolation } from "js-interpolate"; // aus Eingabeformular -let wohneinheiten = 3; +let WohnEinheiten = 3; const datasetEinfamilienHausMittlereBelastung = { Januar: { @@ -131,15 +131,15 @@ const datasetMehrfamilienHausMittlereBelastung = { }, }; -function getDatasetBelastung(wohneinheiten: number) { - if (wohneinheiten < 3) { +function getDatasetBelastung(WohnEinheiten: number) { + if (WohnEinheiten < 3) { return datasetEinfamilienHausMittlereBelastung; } else { return datasetMehrfamilienHausMittlereBelastung; } } -const dataset = getDatasetBelastung(wohneinheiten); +const dataset = getDatasetBelastung(WohnEinheiten); // Für "Ohne Teilbeheizung" habe ich hier einfach 0 eingesetzt: const HeizLast = [0, 5, 10, 25, 50, 75, 100, 125, 150]; @@ -156,7 +156,7 @@ export function funktionMonatlicherBelastungsgrad(heizlast: number, zeitkonstane for (const key in data) { const values = data[key as unknown as keyof typeof data] - const interpolated = linearInterpolation( + const interpolated = cubicSplineInterpolation( values.map((value, i) => ({ x: HeizLast[i], y: value })), heizlast ) @@ -164,7 +164,7 @@ export function funktionMonatlicherBelastungsgrad(heizlast: number, zeitkonstane interpolations.push(interpolated) } - const interpolated = linearInterpolation( + const interpolated = cubicSplineInterpolation( interpolations.map((interpolation, i) => { return { x: Object.keys(data)[i], diff --git a/src/pages/DIN18599/berechnungstabellen/index.astro b/src/pages/DIN18599/berechnungstabellen/index.astro index ad33526e..8638f7e2 100644 --- a/src/pages/DIN18599/berechnungstabellen/index.astro +++ b/src/pages/DIN18599/berechnungstabellen/index.astro @@ -6,7 +6,7 @@ import A12BerechnungNutzenergiebedarf from "#components/Tabellen/A12BerechnungNu import { BedarfsausweisWohnenClient, GebaeudeAufnahmeClient } from "#components/Ausweis/types"; import A1AnlagenBeschreibung from "#components/Tabellen/A1AnlagenBeschreibung.svelte"; import A2Wintergarten from "#components/Tabellen/A2Wintergarten.svelte"; -import A5Waermetransferkoeffizienten from "#components/Tabellen/A5Waermetransferkoeffizienten.svelte"; +import A5WaermeTransferMaxStroemeObjekt from "#components/Tabellen/A5WaermeTransferMaxStroemeObjekt.svelte"; import A9Trinkwassererwaermung from "#components/Tabellen/A9Trinkwassererwaermung.svelte"; import A12NutzenergiebedarfHeizung from "#components/Tabellen/A12NutzenergiebedarfHeizung.svelte"; @@ -444,253 +444,7 @@ const ausweis: BedarfsausweisWohnenClient = {}; -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Tabelle A.5 — Gebäude – Berechnung Wärmetransferkoeffizienten und maximaler Wärmeströme

-
- Wärmesenken -
Objekt:
NettogrundflächeANGF [m²]θe,min [°C]−12
Lichte RaumhöhehG [m]θi,h,soll [°C]20
Volumen (Innenmaß)V = ANGF · hG [m³]Δθmax = θi,h,soll − θe,min32
Volumen (Außenmaß)Ve [m³]
Faktor (kleine Gebäude: 0,76 / große Gebäude: 0,8)n*
Volumen (Innenmaß)V = n* · Ve [m³]A/V-Verhätnis [1/m]
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
BauteilFläche
Ai (m²)
Wärmedurchgangs-
koeffizient Ui
(W/m²·K)
HT,i*
= Ui · Ai
(W/K)
Fxi
aus Tabelle C.3/C.4
HT,i
= Ui · Ai · Fxi
(W/K)
maximaler Wärmestrom
T,i = HT,i · ΔΘmax
(W)
Außenwand
Fenster
Fenstertür
Haustür
Dach
Oberste Geschossdecke
Wand gegen Abseitenraum
Kellerdecke / Fußboden zum Erdreich
Summen
Gesamthüllfläche - A = ∑i Ai [m²]Wärmebrückenzuschlag
ΔUWB [W/m²K] - aus C.5
- HT,WB = ΔUWB · A [W/K]
Berücksichtigung von Wärmebrücken
HT,ges = ∑ HTi + HT,WB [W/K]
Wärmetransferkoeffizient für Transmission
T = HT,ges · ΔΘmax [W]
maximaler Wärmestrom
-
+