Files
online-energieausweis/src/lib/Berechnungen/BedarfsausweisWohnen/BerechnungWaermeTransferMaxStroemeBauteile.ts
Jens Cornelsen b006327c4e .
2025-01-28 17:53:48 +01:00

238 lines
7.6 KiB
TypeScript

export function BerechnungWaermeTransferMaxStroemeBauteile() {
// Definition Variablen (Beispielwerte Planung)
let ObjektAdresse = "";
let ObjektBruttoVolumen = 0;
let ObjektNettoVolumenAlternativ = 0;
let WohnEinheiten = 0;
let NettoGrundflaeche = 0;
let GeschossHoehe = 0;
// Definition Variablen (Konstanten)
let minimaleAussentemperatur = 0;
let innenTemperatur = 0;
let DeckenStaerke = 0;
let WaermeBrueckenZuschlag = 0;
// Definition Variablen (Berechnung)
let FaktorNettoVolumen = 0;
let ObjektNettoVolumen = 0;
let maximaleTemperaturDifferenz = 0;
let LichteRaumHoehe = 0;
let WaermeTransferKoeffizientWaeremebruecken = 0;
let maximalerWaermestromWaermebruecken = 0;
let maximalerWaermestromBauteile = 0;
let HuellFlaechenVolumenVerhaeltnis = 0;
// Beispielwerte Planung werden aus Eingabe geholt
ObjektAdresse = "EFH Normbeispiel";
ObjektBruttoVolumen = 525.6;
WohnEinheiten = 1;
NettoGrundflaeche = 154.2;
GeschossHoehe = 2.83;
DeckenStaerke = 0.24;
const PlanungswerteBauteil = [
{
Art: "Fenster",
Flaeche: 18.91,
WaermeDurchgangsKoeffizient: 0.95,
Neigung: 90,
GesamtEnergieDurchlassGrad: 0.6,
RahmenAnteil: 0.7,
StrahlungsEinfluss: 0.9,
Verschattung: 0.9,
TemperaturKorrekturFaktor: 1,
Orientierung: "West"
},
{
Art: "Fenster",
Flaeche: 19.62,
WaermeDurchgangsKoeffizient: 0.95,
Neigung: 90,
GesamtEnergieDurchlassGrad: 0.6,
RahmenAnteil: 0.7,
StrahlungsEinfluss: 0.9,
Verschattung: 0.9,
TemperaturKorrekturFaktor: 1,
Orientierung: "Süd"
},
{
Art: "Fenster",
Flaeche: 2.97,
WaermeDurchgangsKoeffizient: 0.95,
Neigung: 90,
GesamtEnergieDurchlassGrad: 0.6,
RahmenAnteil: 0.7,
StrahlungsEinfluss: 0.9,
Verschattung: 0.9,
TemperaturKorrekturFaktor: 1,
Orientierung: "Nord"
},
{
Art: "Fenster",
Flaeche: 4.3,
WaermeDurchgangsKoeffizient: 0.95,
Neigung: 90,
GesamtEnergieDurchlassGrad: 0.6,
RahmenAnteil: 0.7,
StrahlungsEinfluss: 0.9,
Verschattung: 0.9,
TemperaturKorrekturFaktor: 1,
Orientierung: "Ost"
},
{
Art: "Außenwand",
Flaeche: 32.27,
WaermeDurchgangsKoeffizient: 0.2,
Neigung: 90,
GesamtEnergieDurchlassGrad: 0,
RahmenAnteil: 0,
StrahlungsEinfluss: 0,
Verschattung: 0,
TemperaturKorrekturFaktor: 1,
Orientierung: "West"
},
{
Art: "Außenwand",
Flaeche: 40.97,
WaermeDurchgangsKoeffizient: 0.2,
Neigung: 90,
GesamtEnergieDurchlassGrad: 0,
RahmenAnteil: 0,
StrahlungsEinfluss: 0,
Verschattung: 0,
TemperaturKorrekturFaktor: 1,
Orientierung: "Süd"
},
{
Art: "Außenwand",
Flaeche: 57.63,
WaermeDurchgangsKoeffizient: 0.2,
Neigung: 90,
GesamtEnergieDurchlassGrad: 0,
RahmenAnteil: 0,
StrahlungsEinfluss: 0,
Verschattung: 0,
TemperaturKorrekturFaktor: 1,
Orientierung: "Nord"
},
{
Art: "Außenwand",
Flaeche: 44.52,
WaermeDurchgangsKoeffizient: 0.2,
Neigung: 90,
GesamtEnergieDurchlassGrad: 0,
RahmenAnteil: 0,
StrahlungsEinfluss: 0,
Verschattung: 0,
TemperaturKorrekturFaktor: 1,
Orientierung: "Ost"
},
{
Art: "Haustür",
Flaeche: 2.35,
WaermeDurchgangsKoeffizient: 1.3,
Neigung: 90,
GesamtEnergieDurchlassGrad: 0,
RahmenAnteil: 0,
StrahlungsEinfluss: 0,
Verschattung: 0,
TemperaturKorrekturFaktor: 1,
Orientierung: "West"
},
{
Art: "Flachdach",
Flaeche: 89.09,
WaermeDurchgangsKoeffizient: 0.13,
Neigung: 0,
GesamtEnergieDurchlassGrad: 0,
RahmenAnteil: 0,
StrahlungsEinfluss: 0,
Verschattung: 0,
TemperaturKorrekturFaktor: 1,
Orientierung: "Horizontal"
},
{
Art: "Bodenplatte",
Flaeche: 89.09,
WaermeDurchgangsKoeffizient: 0.21,
Neigung: 0,
GesamtEnergieDurchlassGrad: 0,
RahmenAnteil: 0,
StrahlungsEinfluss: 0,
Verschattung: 0,
TemperaturKorrekturFaktor: 0.8,
Orientierung: "Horizontal"
}
];
// Konstanten werden aus Eingabe geholt
minimaleAussentemperatur = -12;
innenTemperatur = 20;
WaermeBrueckenZuschlag = 0.03;
// Berechnung
maximaleTemperaturDifferenz = innenTemperatur - minimaleAussentemperatur;
LichteRaumHoehe = GeschossHoehe - DeckenStaerke;
ObjektNettoVolumen = NettoGrundflaeche * LichteRaumHoehe;
if (WohnEinheiten < 3) {FaktorNettoVolumen = 0.76;} else {FaktorNettoVolumen = 0.8;}
ObjektNettoVolumenAlternativ = ObjektBruttoVolumen * FaktorNettoVolumen;
const ErgebnisseBauteile = PlanungswerteBauteil.map(bauteil => {
const WaermeTransferKoeffizient = bauteil.WaermeDurchgangsKoeffizient * bauteil.Flaeche;
const WaermeTransferKoeffizientKorrektur = WaermeTransferKoeffizient * bauteil.TemperaturKorrekturFaktor;
const maximalerWaermestrom = WaermeTransferKoeffizientKorrektur * maximaleTemperaturDifferenz;
return {
Art: bauteil.Art,
Orientierung: bauteil.Orientierung,
Flaeche: bauteil.Flaeche,
WaermeDurchgangsKoeffizient: bauteil.WaermeDurchgangsKoeffizient,
WaermeTransferKoeffizient,
TemperaturKorrekturFaktor: bauteil.TemperaturKorrekturFaktor,
WaermeTransferKoeffizientKorrektur,
maximalerWaermestrom
};
});
const GesamtHuellFlaeche = PlanungswerteBauteil.reduce((sum, bauteil) => sum + bauteil.Flaeche, 0);
HuellFlaechenVolumenVerhaeltnis = GesamtHuellFlaeche / ObjektNettoVolumenAlternativ;
WaermeTransferKoeffizientWaeremebruecken = GesamtHuellFlaeche * WaermeBrueckenZuschlag;
maximalerWaermestromWaermebruecken = WaermeTransferKoeffizientWaeremebruecken * maximaleTemperaturDifferenz;
const WaermeTransferKoeffizientBauteile =
(ErgebnisseBauteile.reduce((sum, bauteil) => sum + bauteil.WaermeTransferKoeffizientKorrektur, 0))
+ WaermeTransferKoeffizientWaeremebruecken;
maximalerWaermestromBauteile = WaermeTransferKoeffizientBauteile * maximaleTemperaturDifferenz;
return {
ObjektAdresse,
ObjektBruttoVolumen,
NettoGrundflaeche,
maximaleTemperaturDifferenz,
innenTemperatur,
minimaleAussentemperatur,
LichteRaumHoehe,
ObjektNettoVolumen,
FaktorNettoVolumen,
ObjektNettoVolumenAlternativ,
GesamtHuellFlaeche,
ErgebnisseBauteile,
WaermeBrueckenZuschlag,
WaermeTransferKoeffizientWaeremebruecken,
maximalerWaermestromWaermebruecken,
WaermeTransferKoeffizientBauteile,
maximalerWaermestromBauteile,
HuellFlaechenVolumenVerhaeltnis,
}
}