From 7c1963ffcc909a535e5504c1ced8e4c21f26d157 Mon Sep 17 00:00:00 2001 From: Moritz Utcke Date: Sun, 29 Dec 2024 13:33:17 +0700 Subject: [PATCH] Berechnung Trinkwarmwasser --- package.json | 2 +- .../BerechnungTrinkwarmwasser.ts | 43 +++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 src/lib/Berechnungen/BedarfsausweisWohnen/BerechnungTrinkwarmwasser.ts diff --git a/package.json b/package.json index 48a2af2c..5be67421 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "i18next-fs-backend": "^2.3.2", "i18next-http-backend": "^2.6.2", "js-cookie": "^3.0.5", - "js-interpolate": "^1.0.1", + "js-interpolate": "^1.1.0", "katex": "^0.16.11", "moment": "^2.30.1", "moment-timezone": "^0.5.46", diff --git a/src/lib/Berechnungen/BedarfsausweisWohnen/BerechnungTrinkwarmwasser.ts b/src/lib/Berechnungen/BedarfsausweisWohnen/BerechnungTrinkwarmwasser.ts new file mode 100644 index 00000000..eb31dfed --- /dev/null +++ b/src/lib/Berechnungen/BedarfsausweisWohnen/BerechnungTrinkwarmwasser.ts @@ -0,0 +1,43 @@ +import { BedarfsausweisWohnenClient, GebaeudeAufnahmeClient } from "#components/Ausweis/types.js"; +import { linearInterpolation } from "js-interpolate" + + +/** + * Implementierung Tabelle E.7 — Tabelle A.9 - Trinkwassererwärmung - Berechnung des Wärmebedarfs zur Trinkwassererwärmung + * + * @see 18599-Tabellenverfahren-Wohngebaeude.pdf + * @export + * @param {BedarfsausweisWohnenClient} ausweis + */ +export function berechnungTrinkwarmwasserWaermebedarf(ausweis: BedarfsausweisWohnenClient, gebaeude_aufnahme: GebaeudeAufnahmeClient) { + // A_NGF + const bezugsflaeche = gebaeude_aufnahme.flaeche ?? 0; + + const einheiten = gebaeude_aufnahme.einheiten ?? 1; + + // A_NGF,WE,m + const flaecheProEinheit = bezugsflaeche / einheiten; + + // q_w,b + let flaechenBezogenerWaermebedarf: number; + + if (flaecheProEinheit < 10) { + flaechenBezogenerWaermebedarf = 16.5 + } else if (flaecheProEinheit >= 160) { + flaechenBezogenerWaermebedarf = 8.5 + } else { + flaechenBezogenerWaermebedarf = linearInterpolation([{ + x: 10, + y: 16 + }, { + x: 150, + y: 9 + }], flaecheProEinheit) + } + + // Q_w,b + // Trinkwasser Wärmebedarf übers gesamte Jahr gerechnet. Falls ein bestimmter Monat gesucht wird kann man einfach (Q_w,b / 365 * d_mth) rechnen. + const trinkwasserWaermebedarf = bezugsflaeche * flaechenBezogenerWaermebedarf; + + return trinkwasserWaermebedarf +} \ No newline at end of file