Merge pull request #303 from IBCornelsen/Jens

Tabelle A12 überarbeitet, Tabelle A13 fertiggestellt
This commit is contained in:
Jens Cornelsen
2025-02-01 19:51:24 +01:00
committed by GitHub
6 changed files with 365 additions and 324 deletions

View File

@@ -89,7 +89,7 @@ $: result = A12BerechnungNutzenergiebedarfHeizung();
</td>
<td class="border-2 border-gray-600 px-2 py-1">{Math.round(result.waermeSenken.März)}</td>
<td class="border border-gray-300 px-2 py-1 bg-yellow-100">{Math.round(result.waermeQuellen.März)}</td>
<td class="border border-gray-300 px-2 py-1 bg-yellow-100">{Math.round(result.waermeQuellen.Maerz)}</td>
<td class="border-2 border-gray-600 px-2 py-1">{Math.round(result.waermequellensenkenverhaeltnisMärz*1000)/1000}</td>
<td class="border border-gray-300 px-2 py-1 bg-blue-100">{Math.round(result.ausnutzungsgradMärz*1000)/1000}</td>
<td class="border-2 border-gray-600 px-2 py-1">{Math.round(result.faktorBelastungMärz*1000)/1000}</td>

View File

@@ -1,4 +1,9 @@
<script lang="ts">
import { A13BerechnungRechnerischeLaufzeitHeizung } from "#lib/Berechnungen/BedarfsausweisWohnen/A13BerechnungRechnerischeLaufzeitHeizung.js";
$: result = A13BerechnungRechnerischeLaufzeitHeizung();
</script>
<div class="overflow-x-auto mt-16">
@@ -14,7 +19,7 @@
Rechnerische Laufzeit Heizung
</th>
</tr>
<tr>
<tr class="text-center">
<th class="border border-gray-300 px-4 py-2">Monat</th>
<th class="border border-gray-300 px-4 py-2">t<sub>h</sub> [h] (aus Tabelle A.12)<br>(1)</th>
<th class="border border-gray-300 px-4 py-2">f<sub>WE</sub> [-]<br>(2)</th>
@@ -24,109 +29,109 @@
</tr>
</thead>
<tbody>
<tr>
<tr class="text-center">
<td class="border border-gray-300 px-4 py-2">Januar</td>
<td class="border border-gray-300 px-4 py-2 bg-yellow-100"></td>
<td class="border border-gray-300 px-4 py-2 bg-yellow-100">{Math.round(result.heizstunden.Januar)}</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">0,042</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">17,00</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">19,86</td>
<td class="border-2 border-gray-600 px-4 py-2"></td>
<td class="border-2 border-gray-600 px-4 py-2">{Math.round(result.rechnerischeLaufzeiten[0])}</td>
</tr>
<tr>
<tr class="text-center">
<td class="border border-gray-300 px-4 py-2">Februar</td>
<td class="border border-gray-300 px-4 py-2 bg-yellow-100"></td>
<td class="border border-gray-300 px-4 py-2 bg-yellow-100">{Math.round(result.heizstunden.Februar)}</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">0,042</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">17,00</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">18,58</td>
<td class="border-2 border-gray-600 px-4 py-2"></td>
<td class="border-2 border-gray-600 px-4 py-2">{Math.round(result.rechnerischeLaufzeiten[1])}</td>
</tr>
<tr>
<tr class="text-center">
<td class="border border-gray-300 px-4 py-2">März</td>
<td class="border border-gray-300 px-4 py-2 bg-yellow-100"></td>
<td class="border border-gray-300 px-4 py-2 bg-yellow-100">{Math.round(result.heizstunden.Maerz)}</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">0,042</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">17,00</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">18,69</td>
<td class="border-2 border-gray-600 px-4 py-2"></td>
<td class="border-2 border-gray-600 px-4 py-2">{Math.round(result.rechnerischeLaufzeiten[2])}</td>
</tr>
<tr>
<tr class="text-center">
<td class="border border-gray-300 px-4 py-2">April</td>
<td class="border border-gray-300 px-4 py-2 bg-yellow-100"></td>
<td class="border border-gray-300 px-4 py-2 bg-yellow-100">{Math.round(result.heizstunden.April)}</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">0,042</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">17,00</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">17,25</td>
<td class="border-2 border-gray-600 px-4 py-2"></td>
<td class="border-2 border-gray-600 px-4 py-2">{Math.round(result.rechnerischeLaufzeiten[3])}</td>
</tr>
<tr>
<tr class="text-center">
<td class="border border-gray-300 px-4 py-2">Mai</td>
<td class="border border-gray-300 px-4 py-2 bg-yellow-100"></td>
<td class="border border-gray-300 px-4 py-2 bg-yellow-100">{Math.round(result.heizstunden.Mai)}</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">0,042</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">17,00</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">17,00</td>
<td class="border-2 border-gray-600 px-4 py-2"></td>
<td class="border-2 border-gray-600 px-4 py-2">{Math.round(result.rechnerischeLaufzeiten[4])}</td>
</tr>
<tr>
<tr class="text-center">
<td class="border border-gray-300 px-4 py-2">Juni</td>
<td class="border border-gray-300 px-4 py-2 bg-yellow-100"></td>
<td class="border border-gray-300 px-4 py-2 bg-yellow-100">{Math.round(result.heizstunden.Juni)}</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">0,042</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">17,00</td>
<td class="border border-gray-300 px-4 py-2b bg-gray-100">17,00</td>
<td class="border-2 border-gray-600 px-4 py-2"></td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">17,00</td>
<td class="border-2 border-gray-600 px-4 py-2">{Math.round(result.rechnerischeLaufzeiten[5])}</td>
</tr>
<tr>
<tr class="text-center">
<td class="border border-gray-300 px-4 py-2">Juli</td>
<td class="border border-gray-300 px-4 py-2 bg-yellow-100"></td>
<td class="border border-gray-300 px-4 py-2 bg-yellow-100">{Math.round(result.heizstunden.Juli)}</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">0,042</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">17,00</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">17,00</td>
<td class="border-2 border-gray-600 px-4 py-2"></td>
<td class="border-2 border-gray-600 px-4 py-2">{Math.round(result.rechnerischeLaufzeiten[6])}</td>
</tr>
<tr>
<tr class="text-center">
<td class="border border-gray-300 px-4 py-2">August</td>
<td class="border border-gray-300 px-4 py-2 bg-yellow-100"></td>
<td class="border border-gray-300 px-4 py-2 bg-yellow-100">{Math.round(result.heizstunden.August)}</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">0,042</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">17,00</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">17,00</td>
<td class="border-2 border-gray-600 px-4 py-2"></td>
<td class="border-2 border-gray-600 px-4 py-2">{Math.round(result.rechnerischeLaufzeiten[7])}</td>
</tr>
<tr>
<tr class="text-center">
<td class="border border-gray-300 px-4 py-2">September</td>
<td class="border border-gray-300 px-4 py-2 bg-yellow-100"></td>
<td class="border border-gray-300 px-4 py-2 bg-yellow-100">{Math.round(result.heizstunden.September)}</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">0,042</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">17,00</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">17,00</td>
<td class="border-2 border-gray-600 px-4 py-2"></td>
<td class="border-2 border-gray-600 px-4 py-2">{Math.round(result.rechnerischeLaufzeiten[8])}</td>
</tr>
<tr>
<tr class="text-center">
<td class="border border-gray-300 px-4 py-2">Oktober</td>
<td class="border border-gray-300 px-4 py-2 bg-yellow-100"></td>
<td class="border border-gray-300 px-4 py-2 bg-yellow-100">{Math.round(result.heizstunden.Oktober)}</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">0,042</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">17,00</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">17,16</td>
<td class="border-2 border-gray-600 px-4 py-2"></td>
<td class="border-2 border-gray-600 px-4 py-2">{Math.round(result.rechnerischeLaufzeiten[9])}</td>
</tr>
<tr>
<tr class="text-center">
<td class="border border-gray-300 px-4 py-2">November</td>
<td class="border border-gray-300 px-4 py-2 bg-yellow-100"></td>
<td class="border border-gray-300 px-4 py-2 bg-yellow-100">{Math.round(result.heizstunden.November)}</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">0,042</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">17,00</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">18,88</td>
<td class="border-2 border-gray-600 px-4 py-2"></td>
<td class="border-2 border-gray-600 px-4 py-2">{Math.round(result.rechnerischeLaufzeiten[10])}</td>
</tr>
<tr>
<tr class="text-center">
<td class="border border-gray-300 px-4 py-2">Dezember</td>
<td class="border border-gray-300 px-4 py-2 bg-yellow-100"></td>
<td class="border border-gray-300 px-4 py-2 bg-yellow-100">{Math.round(result.heizstunden.Dezember)}</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">0,042</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">17,00</td>
<td class="border border-gray-300 px-4 py-2 bg-gray-100">19,90</td>
<td class="border-2 border-gray-600 px-4 py-2"></td>
<td class="border-2 border-gray-600 px-4 py-2">{Math.round(result.rechnerischeLaufzeiten[11])}</td>
</tr>
<tr>
<tr class="text-center">
<td class="border border-gray-300 px-4 py-2">Jahressumme</td>
<td class="border-2 border-gray-600 px-4 py-2"></td>
<td class="border-2 border-gray-600 px-4 py-2">{Math.round(result.heizstundenGesamt)}</td>
<td class="border border-gray-300 px-4 py-2"></td>
<td class="border border-gray-300 px-4 py-2"></td>
<td class="border border-gray-300 px-4 py-2"></td>
<td class="border-2 border-gray-600 px-4 py-2"></td>
<td class="border-2 border-gray-600 px-4 py-2">{Math.round(result.rechnerischeLaufzeitGesamt)}</td>
</tr>
</tbody>
</table>

View File

@@ -1,88 +1,20 @@
import { funktionMonatlicherBelastungsgrad } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionMonatlicherBelastungsgrad.js";
import { funktionBilanzInnentemperatur } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionBilanzInnentemperatur.js";
import { funktionAusnutzungsgrad } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionAusnutzungsgrad.js";
import { A6BerechnungWaermeTransferMaxStroemeLueftungGesamt } from "#lib/Berechnungen/BedarfsausweisWohnen/A6BerechnungWaermeTransferMaxStroemeLueftungGesamt.js";
import { A5BerechnungWaermeTransferMaxStroemeBauteile } from "#lib/Berechnungen/BedarfsausweisWohnen/A5BerechnungWaermeTransferMaxStroemeBauteile.js";
import { funktionWaermesenken } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionWaermesenken.js";
import { A11BerechnungWaermequellenZusammenstellung } from "#lib/Berechnungen/BedarfsausweisWohnen/A11BerechnungWaermequellenZusammenstellung.js";
export function A12BerechnungNutzenergiebedarfHeizung() {
const resultBauteile = A5BerechnungWaermeTransferMaxStroemeBauteile();
const minimaleAussentemperatur = resultBauteile.minimaleAussentemperatur;
const innenTemperatur = resultBauteile.innenTemperatur;
const result = A6BerechnungWaermeTransferMaxStroemeLueftungGesamt();
const result = funktionWaermesenken();
const belastungsgrade = result.belastungsgrade;
const bilanzInnenTemperaturen = result.bilanzInnenTemperaturen;
const waermeSenken = result.waermeSenken;
const maximalerWaermestromGesamt = result.maximalerWaermestromGesamt;
const FlaechgenbezogeneHeizlast = result.FlaechgenbezogeneHeizlast;
const minimaleAussentemperatur = result.minimaleAussentemperatur;
const innenTemperatur = result.innenTemperatur;
const ZeitKonstante = result.ZeitKonstante;
let waermeQuellen = {
Januar: 100,
Februar: 100,
März: 100,
April: 650,
Mai: 400,
Juni: 450,
Juli: 450,
August: 560,
September: 400,
Oktober: 350,
November: 320,
Dezember: 300
};
let waermequellensenkenverhaeltnisJanuar = 0;
let waermequellensenkenverhaeltnisFebruar = 0;
let waermequellensenkenverhaeltnisMärz = 0;
let waermequellensenkenverhaeltnisApril = 0;
let waermequellensenkenverhaeltnisMai = 0;
let waermequellensenkenverhaeltnisJuni = 0;
let waermequellensenkenverhaeltnisJuli = 0;
let waermequellensenkenverhaeltnisAugust = 0;
let waermequellensenkenverhaeltnisSeptember = 0;
let waermequellensenkenverhaeltnisOktober = 0;
let waermequellensenkenverhaeltnisNovember = 0;
let waermequellensenkenverhaeltnisDezember = 0;
let faktorBelastungJanuar = 0;
let faktorBelastungFebruar = 0;
let faktorBelastungMärz = 0;
let faktorBelastungApril = 0;
let faktorBelastungMai = 0;
let faktorBelastungJuni = 0;
let faktorBelastungJuli = 0;
let faktorBelastungAugust = 0;
let faktorBelastungSeptember = 0;
let faktorBelastungOktober = 0;
let faktorBelastungNovember = 0;
let faktorBelastungDezember = 0;
let monatlicheBelastungJanuar = 0;
let monatlicheBelastungFebruar = 0;
let monatlicheBelastungMärz = 0;
let monatlicheBelastungApril = 0;
let monatlicheBelastungMai = 0;
let monatlicheBelastungJuni = 0;
let monatlicheBelastungJuli = 0;
let monatlicheBelastungAugust = 0;
let monatlicheBelastungSeptember = 0;
let monatlicheBelastungOktober = 0;
let monatlicheBelastungNovember = 0;
let monatlicheBelastungDezember = 0;
let heizstundenJanuar = 0;
let heizstundenFebruar = 0;
let heizstundenMärz = 0;
let heizstundenApril = 0;
let heizstundenMai = 0;
let heizstundenJuni = 0;
let heizstundenJuli = 0;
let heizstundenAugust = 0;
let heizstundenSeptember = 0;
let heizstundenOktober = 0;
let heizstundenNovember = 0;
let heizstundenDezember = 0;
const resultWaermeQuellen = A11BerechnungWaermequellenZusammenstellung();
const waermeQuellen = resultWaermeQuellen.WaermeQuellenGesamtLeistung;
let nutzenergieHeizungJanuar = 0;
let nutzenergieHeizungFebruar = 0;
@@ -97,51 +29,18 @@ let nutzenergieHeizungOktober = 0;
let nutzenergieHeizungNovember = 0;
let nutzenergieHeizungDezember = 0;
let waermeSenken = {
Januar: 0,
Februar: 0,
März: 0,
April: 0,
Mai: 0,
Juni: 0,
Juli: 0,
August: 0,
September: 0,
Oktober: 0,
November: 0,
Dezember: 0
};
let belastungsgrade = {
Januar: 0,
Februar: 0,
März: 0,
April: 0,
Mai: 0,
Juni: 0,
Juli: 0,
August: 0,
September: 0,
Oktober: 0,
November: 0,
Dezember: 0
};
let bilanzInnenTemperaturen = {
Januar: 0,
Februar: 0,
März: 0,
April: 0,
Mai: 0,
Juni: 0,
Juli: 0,
August: 0,
September: 0,
Oktober: 0,
November: 0,
Dezember: 0
};
let waermequellensenkenverhaeltnisJanuar = 0;
let waermequellensenkenverhaeltnisFebruar = 0;
let waermequellensenkenverhaeltnisMärz = 0;
let waermequellensenkenverhaeltnisApril = 0;
let waermequellensenkenverhaeltnisMai = 0;
let waermequellensenkenverhaeltnisJuni = 0;
let waermequellensenkenverhaeltnisJuli = 0;
let waermequellensenkenverhaeltnisAugust = 0;
let waermequellensenkenverhaeltnisSeptember = 0;
let waermequellensenkenverhaeltnisOktober = 0;
let waermequellensenkenverhaeltnisNovember = 0;
let waermequellensenkenverhaeltnisDezember = 0;
let ausnutzungsgradJanuar = 0;
let ausnutzungsgradFebruar = 0;
@@ -156,50 +55,48 @@ let ausnutzungsgradOktober = 0;
let ausnutzungsgradNovember = 0;
let ausnutzungsgradDezember = 0;
let faktorBelastungJanuar = 0;
let faktorBelastungFebruar = 0;
let faktorBelastungMärz = 0;
let faktorBelastungApril = 0;
let faktorBelastungMai = 0;
let faktorBelastungJuni = 0;
let faktorBelastungJuli = 0;
let faktorBelastungAugust = 0;
let faktorBelastungSeptember = 0;
let faktorBelastungOktober = 0;
let faktorBelastungNovember = 0;
let faktorBelastungDezember = 0;
belastungsgrade.Januar = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "Januar");
belastungsgrade.Februar = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "Februar");
belastungsgrade.März = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "März");
belastungsgrade.April = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "April");
belastungsgrade.Mai = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "Mai");
belastungsgrade.Juni = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "Juni");
belastungsgrade.Juli = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "Juli");
belastungsgrade.August = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "August");
belastungsgrade.September = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "September");
belastungsgrade.Oktober = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "Oktober");
belastungsgrade.November = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "November");
belastungsgrade.Dezember = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "Dezember");
bilanzInnenTemperaturen.Januar = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "Januar");
bilanzInnenTemperaturen.Februar = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "Februar");
bilanzInnenTemperaturen.März = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "März");
bilanzInnenTemperaturen.April = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "April");
bilanzInnenTemperaturen.Mai = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "Mai");
bilanzInnenTemperaturen.Juni = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "Juni");
bilanzInnenTemperaturen.Juli = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "Juli");
bilanzInnenTemperaturen.August = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "August");
bilanzInnenTemperaturen.September = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "September");
bilanzInnenTemperaturen.Oktober = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "Oktober");
bilanzInnenTemperaturen.November = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "November");
bilanzInnenTemperaturen.Dezember = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "Dezember");
waermeSenken.Januar = maximalerWaermestromGesamt * (bilanzInnenTemperaturen.Januar - minimaleAussentemperatur) / (innenTemperatur - minimaleAussentemperatur) * belastungsgrade.Januar;
waermeSenken.Februar = maximalerWaermestromGesamt * (bilanzInnenTemperaturen.Februar - minimaleAussentemperatur) / (innenTemperatur - minimaleAussentemperatur) * belastungsgrade.Februar;
waermeSenken.März = maximalerWaermestromGesamt * (bilanzInnenTemperaturen.März - minimaleAussentemperatur) / (innenTemperatur - minimaleAussentemperatur) * belastungsgrade.März;
waermeSenken.April = maximalerWaermestromGesamt * (bilanzInnenTemperaturen.April - minimaleAussentemperatur) / (innenTemperatur - minimaleAussentemperatur) * belastungsgrade.April;
waermeSenken.Mai = maximalerWaermestromGesamt * (bilanzInnenTemperaturen.Mai - minimaleAussentemperatur) / (innenTemperatur - minimaleAussentemperatur) * belastungsgrade.Mai;
waermeSenken.Juni = maximalerWaermestromGesamt * (bilanzInnenTemperaturen.Juni - minimaleAussentemperatur) / (innenTemperatur - minimaleAussentemperatur) * belastungsgrade.Juni;
waermeSenken.Juli = maximalerWaermestromGesamt * (bilanzInnenTemperaturen.Juli - minimaleAussentemperatur) / (innenTemperatur - minimaleAussentemperatur) * belastungsgrade.Juli;
waermeSenken.August = maximalerWaermestromGesamt * (bilanzInnenTemperaturen.August - minimaleAussentemperatur) / (innenTemperatur - minimaleAussentemperatur) * belastungsgrade.August;
waermeSenken.September = maximalerWaermestromGesamt * (bilanzInnenTemperaturen.September - minimaleAussentemperatur) / (innenTemperatur - minimaleAussentemperatur) * belastungsgrade.September;
waermeSenken.Oktober = maximalerWaermestromGesamt * (bilanzInnenTemperaturen.Oktober - minimaleAussentemperatur) / (innenTemperatur - minimaleAussentemperatur) * belastungsgrade.Oktober;
waermeSenken.November = maximalerWaermestromGesamt * (bilanzInnenTemperaturen.November - minimaleAussentemperatur) / (innenTemperatur - minimaleAussentemperatur) * belastungsgrade.November;
waermeSenken.Dezember = maximalerWaermestromGesamt * (bilanzInnenTemperaturen.Dezember - minimaleAussentemperatur) / (innenTemperatur - minimaleAussentemperatur) * belastungsgrade.Dezember;
let heizstundenJanuar = 0;
let heizstundenFebruar = 0;
let heizstundenMärz = 0;
let heizstundenApril = 0;
let heizstundenMai = 0;
let heizstundenJuni = 0;
let heizstundenJuli = 0;
let heizstundenAugust = 0;
let heizstundenSeptember = 0;
let heizstundenOktober = 0;
let heizstundenNovember = 0;
let heizstundenDezember = 0;
let monatlicheBelastungJanuar = 0;
let monatlicheBelastungFebruar = 0;
let monatlicheBelastungMärz = 0;
let monatlicheBelastungApril = 0;
let monatlicheBelastungMai = 0;
let monatlicheBelastungJuni = 0;
let monatlicheBelastungJuli = 0;
let monatlicheBelastungAugust = 0;
let monatlicheBelastungSeptember = 0;
let monatlicheBelastungOktober = 0;
let monatlicheBelastungNovember = 0;
let monatlicheBelastungDezember = 0;
waermequellensenkenverhaeltnisJanuar = waermeQuellen.Januar / waermeSenken.Januar;
waermequellensenkenverhaeltnisFebruar = waermeQuellen.Februar / waermeSenken.Februar;
waermequellensenkenverhaeltnisMärz = waermeQuellen.März / waermeSenken.März;
waermequellensenkenverhaeltnisMärz = waermeQuellen.Maerz / waermeSenken.März;
waermequellensenkenverhaeltnisApril = waermeQuellen.April / waermeSenken.April;
waermequellensenkenverhaeltnisMai = waermeQuellen.Mai / waermeSenken.Mai;
waermequellensenkenverhaeltnisJuni = waermeQuellen.Juni / waermeSenken.Juni;
@@ -210,19 +107,6 @@ let ausnutzungsgradDezember = 0;
waermequellensenkenverhaeltnisNovember = waermeQuellen.November / waermeSenken.November;
waermequellensenkenverhaeltnisDezember = waermeQuellen.Dezember / waermeSenken.Dezember;
ausnutzungsgradJanuar = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisJanuar, ZeitKonstante, "alleMonate");
ausnutzungsgradFebruar = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisFebruar, ZeitKonstante, "alleMonate");
ausnutzungsgradMärz = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisMärz, ZeitKonstante, "alleMonate");
ausnutzungsgradApril = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisApril, ZeitKonstante, "alleMonate");
ausnutzungsgradMai = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisMai, ZeitKonstante, "alleMonate");
ausnutzungsgradJuni = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisJuni, ZeitKonstante, "alleMonate");
ausnutzungsgradJuli = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisJuli, ZeitKonstante, "alleMonate");
ausnutzungsgradAugust = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisAugust, ZeitKonstante, "alleMonate");
ausnutzungsgradSeptember = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisSeptember, ZeitKonstante, "alleMonate");
ausnutzungsgradOktober = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisOktober, ZeitKonstante, "alleMonate");
ausnutzungsgradNovember = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisNovember, ZeitKonstante, "alleMonate");
ausnutzungsgradDezember = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisDezember, ZeitKonstante, "alleMonate");
faktorBelastungJanuar = Math.max(1 - (waermequellensenkenverhaeltnisJanuar * ausnutzungsgradJanuar), 0);
faktorBelastungFebruar = Math.max(1 - (waermequellensenkenverhaeltnisFebruar * ausnutzungsgradFebruar), 0);
faktorBelastungMärz = Math.max(1 - (waermequellensenkenverhaeltnisMärz * ausnutzungsgradMärz), 0);
@@ -262,6 +146,19 @@ let ausnutzungsgradDezember = 0;
if (monatlicheBelastungNovember > 0.05) {heizstundenNovember = 30 * 24;} else {heizstundenNovember = (monatlicheBelastungNovember / 0.05) * 30 * 24;}
if (monatlicheBelastungDezember > 0.05) {heizstundenDezember = 31 * 24;} else {heizstundenDezember = (monatlicheBelastungDezember / 0.05) * 31 * 24;}
ausnutzungsgradJanuar = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisJanuar, ZeitKonstante, "alleMonate");
ausnutzungsgradFebruar = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisFebruar, ZeitKonstante, "alleMonate");
ausnutzungsgradMärz = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisMärz, ZeitKonstante, "alleMonate");
ausnutzungsgradApril = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisApril, ZeitKonstante, "alleMonate");
ausnutzungsgradMai = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisMai, ZeitKonstante, "alleMonate");
ausnutzungsgradJuni = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisJuni, ZeitKonstante, "alleMonate");
ausnutzungsgradJuli = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisJuli, ZeitKonstante, "alleMonate");
ausnutzungsgradAugust = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisAugust, ZeitKonstante, "alleMonate");
ausnutzungsgradSeptember = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisSeptember, ZeitKonstante, "alleMonate");
ausnutzungsgradOktober = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisOktober, ZeitKonstante, "alleMonate");
ausnutzungsgradNovember = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisNovember, ZeitKonstante, "alleMonate");
ausnutzungsgradDezember = funktionAusnutzungsgrad(waermequellensenkenverhaeltnisDezember, ZeitKonstante, "alleMonate");
nutzenergieHeizungJanuar = waermeSenken.Januar * faktorBelastungJanuar * heizstundenJanuar / 1000;
nutzenergieHeizungFebruar = waermeSenken.Februar * faktorBelastungFebruar * heizstundenFebruar / 1000;
nutzenergieHeizungMärz = waermeSenken.März * faktorBelastungMärz * heizstundenMärz / 1000;
@@ -295,9 +192,6 @@ return {
nutzenergieHeizungOktober,
nutzenergieHeizungNovember,
nutzenergieHeizungDezember,
belastungsgrade,
bilanzInnenTemperaturen,
waermeSenken,
waermeQuellen,
waermequellensenkenverhaeltnisJanuar,
waermequellensenkenverhaeltnisFebruar,
@@ -323,6 +217,11 @@ return {
ausnutzungsgradOktober,
ausnutzungsgradNovember,
ausnutzungsgradDezember,
gesamtHeizstunden,
gesamtNutzenergieHeizung,
belastungsgrade,
bilanzInnenTemperaturen,
waermeSenken,
faktorBelastungJanuar,
faktorBelastungFebruar,
faktorBelastungMärz,
@@ -359,8 +258,6 @@ return {
heizstundenOktober,
heizstundenNovember,
heizstundenDezember,
gesamtHeizstunden,
gesamtNutzenergieHeizung,
maximalerWaermestromGesamt,
minimaleAussentemperatur,
innenTemperatur

View File

@@ -1,9 +1,27 @@
import { A12BerechnungNutzenergiebedarfHeizung } from "#lib/Berechnungen/BedarfsausweisWohnen/A12BerechnungNutzenergiebedarfHeizung.js";
import { BedarfsausweisWohnenClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
import { FixedLengthArray } from "./types.js";
export function berechnungRechnerischeLauzeitHeizung(ausweis: VerbrauchsausweisWohnenClient) {
// TODO Tabelle A.12 (Berechnung Nutzenergiebedarf)
const zeitkonstanteHeizung;
export function A13BerechnungRechnerischeLaufzeitHeizung() {
const result = A12BerechnungNutzenergiebedarfHeizung();
const heizstunden = {
Januar: result.heizstundenJanuar,
Februar: result.heizstundenFebruar,
Maerz: result.heizstundenMärz,
April: result.heizstundenApril,
Mai: result.heizstundenMai,
Juni: result.heizstundenJuni,
Juli: result.heizstundenJuli,
August: result.heizstundenAugust,
September: result.heizstundenSeptember,
Oktober: result.heizstundenOktober,
November: result.heizstundenNovember,
Dezember: result.heizstundenDezember
};
const gebaeudetyp = "Einfamilienhaus";
const faktorWochenendAbschaltung = 0.042;
const zeitkonstanteRechnerischeLaufzeitEinfamilienhaus: FixedLengthArray<number, 12> = [17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17];
@@ -11,18 +29,22 @@ export function berechnungRechnerischeLauzeitHeizung(ausweis: VerbrauchsausweisW
let rechnerischeLaufzeiten = new Array(12).fill(0) as unknown as FixedLengthArray<number, 12>
if (ausweis.gebaeude_aufnahme_allgemein.gebaeudetyp === "Einfamilienhaus") {
if (gebaeudetyp === "Einfamilienhaus") {
for (let i = 0; i < 12; i++) {
rechnerischeLaufzeiten[i] = zeitkonstanteHeizung * faktorWochenendAbschaltung * zeitkonstanteRechnerischeLaufzeitEinfamilienhaus[i]
rechnerischeLaufzeiten[i] = heizstunden[Object.keys(heizstunden)[i]] * faktorWochenendAbschaltung * zeitkonstanteRechnerischeLaufzeitEinfamilienhaus[i]
}
} else {
for (let i = 0; i < 12; i++) {
rechnerischeLaufzeiten[i] = zeitkonstanteHeizung * faktorWochenendAbschaltung * zeitkonstanteRechnerischeLaufzeitMehrfamilienhaus[i]
rechnerischeLaufzeiten[i] = heizstunden[Object.keys(heizstunden)[i]] * faktorWochenendAbschaltung * zeitkonstanteRechnerischeLaufzeitMehrfamilienhaus[i]
}
}
const heizstundenGesamt = Object.values(heizstunden).reduce((acc, value) => acc + value, 0);
return {
rechnerischeLaufzeitGesamt: rechnerischeLaufzeiten.reduce((acc, curr) => acc + curr, 0),
rechnerischeLaufzeiten
rechnerischeLaufzeiten,
heizstunden,
heizstundenGesamt
}
}

View File

@@ -1,10 +1,10 @@
import { A12BerechnungNutzenergiebedarfHeizung } from "#lib/Berechnungen/BedarfsausweisWohnen/A12BerechnungNutzenergiebedarfHeizung.js";
import { funktionWaermesenken } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionWaermesenken.js";
import { A7A2BerechnungWaermequellenSolareEinstrahlung } from "#lib/Berechnungen/BedarfsausweisWohnen/A7A2BerechnungWaermequellenSolareEinstrahlung.js";
import { funktionInterneWaermequellen } from "./funktionInterneWaermequellen.js";
export function A8BerechnungWaermequellenAusAnlagentechnikHeizung() {
const result = A12BerechnungNutzenergiebedarfHeizung();
const result = funktionWaermesenken();
const waermeSenken = result.waermeSenken;
const belastungsgrade = result.belastungsgrade;

View File

@@ -0,0 +1,117 @@
import { funktionMonatlicherBelastungsgrad } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionMonatlicherBelastungsgrad.js";
import { funktionBilanzInnentemperatur } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionBilanzInnentemperatur.js";
import { A5BerechnungWaermeTransferMaxStroemeBauteile } from "#lib/Berechnungen/BedarfsausweisWohnen/A5BerechnungWaermeTransferMaxStroemeBauteile.js";
import { A6BerechnungWaermeTransferMaxStroemeLueftungGesamt } from "#lib/Berechnungen/BedarfsausweisWohnen/A6BerechnungWaermeTransferMaxStroemeLueftungGesamt.js";
export function funktionWaermesenken() {
const resultBauteile = A5BerechnungWaermeTransferMaxStroemeBauteile();
const minimaleAussentemperatur = resultBauteile.minimaleAussentemperatur;
const innenTemperatur = resultBauteile.innenTemperatur;
const result = A6BerechnungWaermeTransferMaxStroemeLueftungGesamt();
const maximalerWaermestromGesamt = result.maximalerWaermestromGesamt;
const FlaechgenbezogeneHeizlast = result.FlaechgenbezogeneHeizlast;
const ZeitKonstante = result.ZeitKonstante;
let waermeSenken = {
Januar: 0,
Februar: 0,
März: 0,
April: 0,
Mai: 0,
Juni: 0,
Juli: 0,
August: 0,
September: 0,
Oktober: 0,
November: 0,
Dezember: 0
};
let belastungsgrade = {
Januar: 0,
Februar: 0,
März: 0,
April: 0,
Mai: 0,
Juni: 0,
Juli: 0,
August: 0,
September: 0,
Oktober: 0,
November: 0,
Dezember: 0
};
let bilanzInnenTemperaturen = {
Januar: 0,
Februar: 0,
März: 0,
April: 0,
Mai: 0,
Juni: 0,
Juli: 0,
August: 0,
September: 0,
Oktober: 0,
November: 0,
Dezember: 0
};
belastungsgrade.Januar = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "Januar");
belastungsgrade.Februar = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "Februar");
belastungsgrade.März = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "März");
belastungsgrade.April = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "April");
belastungsgrade.Mai = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "Mai");
belastungsgrade.Juni = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "Juni");
belastungsgrade.Juli = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "Juli");
belastungsgrade.August = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "August");
belastungsgrade.September = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "September");
belastungsgrade.Oktober = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "Oktober");
belastungsgrade.November = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "November");
belastungsgrade.Dezember = funktionMonatlicherBelastungsgrad(FlaechgenbezogeneHeizlast, ZeitKonstante, "Dezember");
bilanzInnenTemperaturen.Januar = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "Januar");
bilanzInnenTemperaturen.Februar = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "Februar");
bilanzInnenTemperaturen.März = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "März");
bilanzInnenTemperaturen.April = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "April");
bilanzInnenTemperaturen.Mai = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "Mai");
bilanzInnenTemperaturen.Juni = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "Juni");
bilanzInnenTemperaturen.Juli = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "Juli");
bilanzInnenTemperaturen.August = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "August");
bilanzInnenTemperaturen.September = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "September");
bilanzInnenTemperaturen.Oktober = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "Oktober");
bilanzInnenTemperaturen.November = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "November");
bilanzInnenTemperaturen.Dezember = funktionBilanzInnentemperatur(FlaechgenbezogeneHeizlast, ZeitKonstante, "Dezember");
waermeSenken.Januar = maximalerWaermestromGesamt * (bilanzInnenTemperaturen.Januar - minimaleAussentemperatur) / (innenTemperatur - minimaleAussentemperatur) * belastungsgrade.Januar;
waermeSenken.Februar = maximalerWaermestromGesamt * (bilanzInnenTemperaturen.Februar - minimaleAussentemperatur) / (innenTemperatur - minimaleAussentemperatur) * belastungsgrade.Februar;
waermeSenken.März = maximalerWaermestromGesamt * (bilanzInnenTemperaturen.März - minimaleAussentemperatur) / (innenTemperatur - minimaleAussentemperatur) * belastungsgrade.März;
waermeSenken.April = maximalerWaermestromGesamt * (bilanzInnenTemperaturen.April - minimaleAussentemperatur) / (innenTemperatur - minimaleAussentemperatur) * belastungsgrade.April;
waermeSenken.Mai = maximalerWaermestromGesamt * (bilanzInnenTemperaturen.Mai - minimaleAussentemperatur) / (innenTemperatur - minimaleAussentemperatur) * belastungsgrade.Mai;
waermeSenken.Juni = maximalerWaermestromGesamt * (bilanzInnenTemperaturen.Juni - minimaleAussentemperatur) / (innenTemperatur - minimaleAussentemperatur) * belastungsgrade.Juni;
waermeSenken.Juli = maximalerWaermestromGesamt * (bilanzInnenTemperaturen.Juli - minimaleAussentemperatur) / (innenTemperatur - minimaleAussentemperatur) * belastungsgrade.Juli;
waermeSenken.August = maximalerWaermestromGesamt * (bilanzInnenTemperaturen.August - minimaleAussentemperatur) / (innenTemperatur - minimaleAussentemperatur) * belastungsgrade.August;
waermeSenken.September = maximalerWaermestromGesamt * (bilanzInnenTemperaturen.September - minimaleAussentemperatur) / (innenTemperatur - minimaleAussentemperatur) * belastungsgrade.September;
waermeSenken.Oktober = maximalerWaermestromGesamt * (bilanzInnenTemperaturen.Oktober - minimaleAussentemperatur) / (innenTemperatur - minimaleAussentemperatur) * belastungsgrade.Oktober;
waermeSenken.November = maximalerWaermestromGesamt * (bilanzInnenTemperaturen.November - minimaleAussentemperatur) / (innenTemperatur - minimaleAussentemperatur) * belastungsgrade.November;
waermeSenken.Dezember = maximalerWaermestromGesamt * (bilanzInnenTemperaturen.Dezember - minimaleAussentemperatur) / (innenTemperatur - minimaleAussentemperatur) * belastungsgrade.Dezember;
return {
belastungsgrade,
bilanzInnenTemperaturen,
waermeSenken,
maximalerWaermestromGesamt,
ZeitKonstante,
minimaleAussentemperatur,
innenTemperatur
}
}