Merge pull request #300 from IBCornelsen/Jens

A5 Überarbeitet Planungswerte, Tabelle jetzt auch dynamisch
This commit is contained in:
Jens Cornelsen
2025-01-28 17:55:34 +01:00
committed by GitHub
4 changed files with 223 additions and 394 deletions

View File

@@ -88,135 +88,19 @@
<th class="border border-gray-300 p-2">maximaler Wärmestrom<br><sub>T,i</sub> = H<sub>T,i</sub> · ΔΘ<sub>max</sub><br>(W)</th>
</tr>
</thead>
<!-- Tabellenkörper -->
<tbody>
{#each result.ErgebnisseBauteile as bauteil, index}
<tr class="text-center">
<td class="border border-gray-300 p-2" colspan="2">Außenwand West</td>
<td class="border border-gray-300 p-2 bg-yellow-100">{result.AussenWandFlaecheWest}</td>
<td class="border border-gray-300 p-2 bg-yellow-100">{result.WaermeDurchgangsKoeffizientAussenWandWest}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.WaermeTransferKoeffizientAussenwandWest*100)/100}</td>
<td class="border border-gray-300 p-2 bg-blue-100">{result.TemperaturKorrekturFaktorAussenwand}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.WaermeTransferKoeffizientAussenwandWestKorrektur*100)/100}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.maximalerWaermestromAussenwandWest)}</td>
</tr>
<tr class="text-center">
<td class="border border-gray-300 p-2" colspan="2">Außenwand Süd</td>
<td class="border border-gray-300 p-2 bg-yellow-100">{result.AussenWandFlaecheSued}</td>
<td class="border border-gray-300 p-2 bg-yellow-100">{result.WaermeDurchgangsKoeffizientAussenWandSued}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.WaermeTransferKoeffizientAussenwandSued*100)/100}</td>
<td class="border border-gray-300 p-2 bg-blue-100">{result.TemperaturKorrekturFaktorAussenwand}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.WaermeTransferKoeffizientAussenwandSuedKorrektur*100)/100}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.maximalerWaermestromAussenwandSued)}</td>
</tr>
<tr class="text-center">
<td class="border border-gray-300 p-2" colspan="2">Außenwand Nord</td>
<td class="border border-gray-300 p-2 bg-yellow-100">{result.AussenWandFlaecheNord}</td>
<td class="border border-gray-300 p-2 bg-yellow-100">{result.WaermeDurchgangsKoeffizientAussenWandNord}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.WaermeTransferKoeffizientAussenwandNord*100)/100}</td>
<td class="border border-gray-300 p-2 bg-blue-100">{result.TemperaturKorrekturFaktorAussenwand}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.WaermeTransferKoeffizientAussenwandNordKorrektur*100)/100}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.maximalerWaermestromAussenwandNord)}</td>
</tr>
<tr class="text-center">
<td class="border border-gray-300 p-2" colspan="2">Außenwand Ost</td>
<td class="border border-gray-300 p-2 bg-yellow-100">{result.AussenWandFlaecheOst}</td>
<td class="border border-gray-300 p-2 bg-yellow-100">{result.WaermeDurchgangsKoeffizientAussenWandOst}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.WaermeTransferKoeffizientAussenwandOst*100)/100}</td>
<td class="border border-gray-300 p-2 bg-blue-100">{result.TemperaturKorrekturFaktorAussenwand}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.WaermeTransferKoeffizientAussenwandOstKorrektur*100)/100}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.maximalerWaermestromAussenwandOst)}</td>
</tr>
<tr class="text-center">
<td class="border border-gray-300 p-2" colspan="2">Fenster West</td>
<td class="border border-gray-300 p-2 bg-yellow-100">{result.FensterFlaecheWest}</td>
<td class="border border-gray-300 p-2 bg-yellow-100">{result.WaermeDurchgangsKoeffizientFensterWest}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.WaermeTransferKoeffizientFensterWest*100)/100}</td>
<td class="border border-gray-300 p-2 bg-blue-100">{result.TemperaturKorrekturFaktorFenster}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.WaermeTransferKoeffizientFensterWestKorrektur*100)/100}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.maximalerWaermestromFensterWest)}</td>
</tr>
<tr class="text-center">
<td class="border border-gray-300 p-2" colspan="2">Fenster Süd</td>
<td class="border border-gray-300 p-2 bg-yellow-100">{result.FensterFlaecheSued}</td>
<td class="border border-gray-300 p-2 bg-yellow-100">{result.WaermeDurchgangsKoeffizientFensterSued}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.WaermeTransferKoeffizientFensterSued*100)/100}</td>
<td class="border border-gray-300 p-2 bg-blue-100">{result.TemperaturKorrekturFaktorFenster}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.WaermeTransferKoeffizientFensterSuedKorrektur*100)/100}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.maximalerWaermestromFensterSued)}</td>
</tr>
<tr class="text-center">
<td class="border border-gray-300 p-2" colspan="2">Fenster Nord</td>
<td class="border border-gray-300 p-2 bg-yellow-100">{result.FensterFlaecheNord}</td>
<td class="border border-gray-300 p-2 bg-yellow-100">{result.WaermeDurchgangsKoeffizientFensterNord}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.WaermeTransferKoeffizientFensterNord*100)/100}</td>
<td class="border border-gray-300 p-2 bg-blue-100">{result.TemperaturKorrekturFaktorFenster}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.WaermeTransferKoeffizientFensterNordKorrektur*100)/100}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.maximalerWaermestromFensterNord)}</td>
</tr>
<tr class="text-center">
<td class="border border-gray-300 p-2" colspan="2">Fenster Ost</td>
<td class="border border-gray-300 p-2 bg-yellow-100">{result.FensterFlaecheOst}</td>
<td class="border border-gray-300 p-2 bg-yellow-100">{result.WaermeDurchgangsKoeffizientFensterOst}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.WaermeTransferKoeffizientFensterOst*100)/100}</td>
<td class="border border-gray-300 p-2 bg-blue-100">{result.TemperaturKorrekturFaktorFenster}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.WaermeTransferKoeffizientFensterOstKorrektur*100)/100}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.maximalerWaermestromFensterOst)}</td>
</tr>
<tr class="text-center">
<td class="border border-gray-300 p-2" colspan="2">Fenstertür</td>
<td class="border border-gray-300 p-2 bg-yellow-100"></td>
<td class="border border-gray-300 p-2 bg-yellow-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border-2 border-gray-600 p-2"></td>
</tr>
<tr class="text-center">
<td class="border border-gray-300 p-2" colspan="2">Haustür</td>
<td class="border border-gray-300 p-2 bg-yellow-100">{result.HaustuerFlaeche}</td>
<td class="border border-gray-300 p-2 bg-yellow-100">{result.WaermeDurchgangsKoeffizientHaustuer}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.WaermeTransferKoeffizientHaustuer*100)/100}</td>
<td class="border border-gray-300 p-2 bg-blue-100">{result.TemperaturKorrekturFaktorHaustuer}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.WaermeTransferKoeffizientHaustuerKorrektur*100)/100}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.maximalerWaermestromHaustuer)}</td>
</tr>
<tr class="text-center">
<td class="border border-gray-300 p-2" colspan="2">Flachdach</td>
<td class="border border-gray-300 p-2 bg-yellow-100">{result.FlachdachFlaeche}</td>
<td class="border border-gray-300 p-2 bg-yellow-100">{result.WaermeDurchgangsKoeffizientFlachdach}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.WaermeTransferKoeffizientFlachdach*100)/100}</td>
<td class="border border-gray-300 p-2 bg-blue-100">{result.TemperaturKorrekturFaktorFlachdach}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.WaermeTransferKoeffizientFlachdachKorrektur*100)/100}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.maximalerWaermestromFlachdach)}</td>
</tr>
<tr class="text-center">
<td class="border border-gray-300 p-2" colspan="2">Oberste Geschossdecke</td>
<td class="border border-gray-300 p-2 bg-yellow-100"></td>
<td class="border border-gray-300 p-2 bg-yellow-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border-2 border-gray-600 p-2"></td>
</tr>
<tr class="text-center">
<td class="border border-gray-300 p-2" colspan="2">Wand gegen Abseitenraum</td>
<td class="border border-gray-300 p-2 bg-yellow-100"></td>
<td class="border border-gray-300 p-2 bg-yellow-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border border-gray-300 p-2 bg-blue-100"></td>
<td class="border-2 border-gray-600 p-2"></td>
<td class="border-2 border-gray-600 p-2"></td>
</tr>
<tr class="text-center">
<td class="border border-gray-300 p-2" colspan="2">Bodenplatte</td>
<td class="border border-gray-300 p-2 bg-yellow-100">{result.BodenplatteFlaeche}</td>
<td class="border border-gray-300 p-2 bg-yellow-100">{result.WaermeDurchgangsKoeffizientBodenplatte}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.WaermeTransferKoeffizientBodenplatte*100)/100}</td>
<td class="border border-gray-300 p-2 bg-blue-100">{result.TemperaturKorrekturFaktorBodenplatte}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.WaermeTransferKoeffizientBodenplatteKorrektur*100)/100}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(result.maximalerWaermestromBodenplatte)}</td>
<td class="border border-gray-300 p-2" colspan="2">{bauteil.Art} {bauteil.Orientierung}</td>
<td class="border border-gray-300 p-2 bg-yellow-100">{bauteil.Flaeche}</td>
<td class="border border-gray-300 p-2 bg-yellow-100">{bauteil.WaermeDurchgangsKoeffizient}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(bauteil.WaermeTransferKoeffizient*100)/100}</td>
<td class="border border-gray-300 p-2 bg-blue-100">{bauteil.TemperaturKorrekturFaktor}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(bauteil.WaermeTransferKoeffizientKorrektur*100)/100}</td>
<td class="border-2 border-gray-600 p-2">{Math.round(bauteil.maximalerWaermestrom)}</td>
</tr>
{/each}
<tr class="text-center">
<td class="border border-gray-300 p-2 font-bold" colspan="2"></td>
<td class="border border-gray-300 p-2"></td>

View File

@@ -27,8 +27,8 @@ $: result = BerechnungWaermequellenSolareEinstrahlung();
<thead>
<tr class="bg-yellow-100 text-left">
<th class="border border-gray-300 p-2 w-4/12 bg-white">Orientierung</th>
{#each result.PlanungswerteFenster as fenster, index}
<th class="border border-gray-300 p-2 w-1/12 text-center">{fenster.OrientierungFensterFlaeche}</th>
{#each result.PlanungswerteBauteil as fenster, index}
<th class="border border-gray-300 p-2 w-1/12 text-center">{fenster.Orientierung}</th>
{/each}
<th class="border border-gray-300 p-2 w-2/12 bg-white text-center">Gesamtfläche</th>
</tr>
@@ -38,42 +38,42 @@ $: result = BerechnungWaermequellenSolareEinstrahlung();
<tbody>
<tr class="bg-yellow-100">
<td class="border border-gray-300 p-2 bg-white">Neigung</td>
{#each result.PlanungswerteFenster as fenster, index}
<td class="border border-gray-300 p-2 text-center">{fenster.NeigungFensterflaeche}</td>
{#each result.PlanungswerteBauteil as fenster, index}
<td class="border border-gray-300 p-2 text-center">{fenster.Neigung}</td>
{/each}
<td class="border border-gray-300 p-2 text-center bg-white">[m²]</td>
</tr>
<tr class="bg-yellow-100">
<td class="border border-gray-300 p-2 bg-white">Bauteilfläche A [m²] (1)</td>
{#each result.PlanungswerteFenster as fenster, index}
<td class="border border-gray-300 p-2 text-center">{fenster.FensterFlaeche}</td>
{#each result.PlanungswerteBauteil as fenster, index}
<td class="border border-gray-300 p-2 text-center">{fenster.Flaeche}</td>
{/each}
<td class="border-2 border-gray-600 p-2 text-center bg-white">{Math.round(result.summeFensterFlaeche*100)/100}</td>
<td class="border-2 border-gray-600 p-2 text-center bg-white">{Math.round(result.summeFlaeche*100)/100}</td>
</tr>
<tr class="bg-yellow-100">
<td class="border border-gray-300 p-2 bg-white">Gesamtenergiedurchlassgrad g (2)</td>
{#each result.PlanungswerteFenster as fenster, index}
{#each result.PlanungswerteBauteil as fenster, index}
<td class="border border-gray-300 p-2 text-center">{fenster.GesamtEnergieDurchlassGrad}</td>
{/each}
<td class="border border-gray-300 p-2 text-center bg-white"></td>
</tr>
<tr class="bg-gray-100">
<td class="border border-gray-300 p-2 bg-white">Abm. Rahmenanteil F<sub>F</sub> (3)</td>
{#each result.PlanungswerteFenster as fenster, index}
{#each result.PlanungswerteBauteil as fenster, index}
<td class="border border-gray-300 p-2 text-center">{fenster.RahmenAnteil}</td>
{/each}
<td class="border border-gray-300 p-2 text-center bg-white"></td>
</tr>
<tr class="bg-gray-100">
<td class="border border-gray-300 p-2 bg-white">Abm. Strahlungseinfluss F<sub>w</sub> (4)</td>
{#each result.PlanungswerteFenster as fenster, index}
{#each result.PlanungswerteBauteil as fenster, index}
<td class="border border-gray-300 p-2 text-center">{fenster.StrahlungsEinfluss}</td>
{/each}
<td class="border border-gray-300 p-2 text-center bg-white"></td>
</tr>
<tr class="bg-gray-100">
<td class="border border-gray-300 p-2 bg-white ">Abm. Verschattung F<sub>s</sub> (5)</td>
{#each result.PlanungswerteFenster as fenster, index}
{#each result.PlanungswerteBauteil as fenster, index}
<td class="border border-gray-300 p-2 text-center">{fenster.Verschattung}</td>
{/each}
<td class="border border-gray-300 p-2 text-center bg-white"></td>

View File

@@ -7,45 +7,11 @@ export function BerechnungWaermeTransferMaxStroemeBauteile() {
let WohnEinheiten = 0;
let NettoGrundflaeche = 0;
let GeschossHoehe = 0;
let AussenWandFlaecheWest = 0;
let AussenWandFlaecheSued = 0;
let AussenWandFlaecheNord = 0;
let AussenWandFlaecheOst = 0;
let WaermeDurchgangsKoeffizientAussenWandWest = 0;
let WaermeDurchgangsKoeffizientAussenWandSued = 0;
let WaermeDurchgangsKoeffizientAussenWandNord = 0;
let WaermeDurchgangsKoeffizientAussenWandOst = 0;
let FensterFlaecheWest = 0;
let FensterFlaecheSued = 0;
let FensterFlaecheNord = 0;
let FensterFlaecheOst = 0;
let WaermeDurchgangsKoeffizientFensterWest = 0;
let WaermeDurchgangsKoeffizientFensterSued = 0;
let WaermeDurchgangsKoeffizientFensterNord = 0;
let WaermeDurchgangsKoeffizientFensterOst = 0;
let HaustuerFlaeche = 0;
let WaermeDurchgangsKoeffizientHaustuer = 0;
let FlachdachFlaeche = 0;
let WaermeDurchgangsKoeffizientFlachdach = 0;
let BodenplatteFlaeche = 0;
let WaermeDurchgangsKoeffizientBodenplatte = 0;
// Definition Variablen (Konstanten)
let minimaleAussentemperatur = 0;
let innenTemperatur = 0;
let DeckenStaerke = 0;
let TemperaturKorrekturFaktorAussenwand = 0;
let TemperaturKorrekturFaktorFenster = 0;
let TemperaturKorrekturFaktorHaustuer = 0;
let TemperaturKorrekturFaktorFlachdach = 0;
let TemperaturKorrekturFaktorBodenplatte = 0;
let WaermeBrueckenZuschlag = 0;
// Definition Variablen (Berechnung)
@@ -54,53 +20,8 @@ export function BerechnungWaermeTransferMaxStroemeBauteile() {
let maximaleTemperaturDifferenz = 0;
let LichteRaumHoehe = 0;
let WaermeTransferKoeffizientAussenwandWest = 0;
let WaermeTransferKoeffizientAussenwandSued = 0;
let WaermeTransferKoeffizientAussenwandNord = 0;
let WaermeTransferKoeffizientAussenwandOst = 0;
let WaermeTransferKoeffizientAussenwandWestKorrektur = 0;
let WaermeTransferKoeffizientAussenwandSuedKorrektur = 0;
let WaermeTransferKoeffizientAussenwandNordKorrektur = 0;
let WaermeTransferKoeffizientAussenwandOstKorrektur = 0;
let maximalerWaermestromAussenwandWest = 0;
let maximalerWaermestromAussenwandSued = 0;
let maximalerWaermestromAussenwandNord = 0;
let maximalerWaermestromAussenwandOst = 0;
let WaermeTransferKoeffizientFensterWest = 0;
let WaermeTransferKoeffizientFensterSued = 0;
let WaermeTransferKoeffizientFensterNord = 0;
let WaermeTransferKoeffizientFensterOst = 0;
let WaermeTransferKoeffizientFensterWestKorrektur = 0;
let WaermeTransferKoeffizientFensterSuedKorrektur = 0;
let WaermeTransferKoeffizientFensterNordKorrektur = 0;
let WaermeTransferKoeffizientFensterOstKorrektur = 0;
let maximalerWaermestromFensterWest = 0;
let maximalerWaermestromFensterSued = 0;
let maximalerWaermestromFensterNord = 0;
let maximalerWaermestromFensterOst = 0;
let WaermeTransferKoeffizientHaustuer = 0;
let WaermeTransferKoeffizientHaustuerKorrektur = 0;
let maximalerWaermestromHaustuer = 0;
let WaermeTransferKoeffizientFlachdach = 0;
let WaermeTransferKoeffizientFlachdachKorrektur = 0;
let maximalerWaermestromFlachdach = 0;
let WaermeTransferKoeffizientBodenplatte = 0;
let WaermeTransferKoeffizientBodenplatteKorrektur = 0;
let maximalerWaermestromBodenplatte = 0;
let GesamtHuellFlaeche = 0;
let WaermeTransferKoeffizientWaeremebruecken = 0;
let maximalerWaermestromWaermebruecken = 0;
let WaermeTransferKoeffizientBauteile = 0;
let maximalerWaermestromBauteile = 0;
let HuellFlaechenVolumenVerhaeltnis = 0;
@@ -113,113 +34,185 @@ export function BerechnungWaermeTransferMaxStroemeBauteile() {
NettoGrundflaeche = 154.2;
GeschossHoehe = 2.83;
DeckenStaerke = 0.24;
AussenWandFlaecheWest = 32.27;
AussenWandFlaecheSued = 40.97;
AussenWandFlaecheNord = 57.63;
AussenWandFlaecheOst = 44.52;
FensterFlaecheWest = 18.91;
FensterFlaecheSued = 19.62;
FensterFlaecheNord = 2.97;
FensterFlaecheOst = 4.3;
HaustuerFlaeche = 2.35;
FlachdachFlaeche = 89.09;
BodenplatteFlaeche = 89.09;
WaermeDurchgangsKoeffizientAussenWandWest = 0.2;
WaermeDurchgangsKoeffizientAussenWandSued = 0.2;
WaermeDurchgangsKoeffizientAussenWandNord = 0.2;
WaermeDurchgangsKoeffizientAussenWandOst = 0.2;
WaermeDurchgangsKoeffizientFensterWest = 0.95;
WaermeDurchgangsKoeffizientFensterSued = 0.95;
WaermeDurchgangsKoeffizientFensterNord = 0.95;
WaermeDurchgangsKoeffizientFensterOst = 0.95;
WaermeDurchgangsKoeffizientHaustuer = 1.3;
WaermeDurchgangsKoeffizientFlachdach = 0.13;
WaermeDurchgangsKoeffizientBodenplatte = 0.21;
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;
TemperaturKorrekturFaktorAussenwand = 1;
TemperaturKorrekturFaktorFenster = 1;
TemperaturKorrekturFaktorHaustuer = 1;
TemperaturKorrekturFaktorFlachdach = 1;
TemperaturKorrekturFaktorBodenplatte = 0.8;
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;
WaermeTransferKoeffizientAussenwandWest = WaermeDurchgangsKoeffizientAussenWandWest * AussenWandFlaecheWest;
WaermeTransferKoeffizientAussenwandSued = WaermeDurchgangsKoeffizientAussenWandSued * AussenWandFlaecheSued;
WaermeTransferKoeffizientAussenwandNord = WaermeDurchgangsKoeffizientAussenWandNord * AussenWandFlaecheNord;
WaermeTransferKoeffizientAussenwandOst = WaermeDurchgangsKoeffizientAussenWandOst * AussenWandFlaecheOst;
WaermeTransferKoeffizientAussenwandWestKorrektur = WaermeTransferKoeffizientAussenwandWest * TemperaturKorrekturFaktorAussenwand;
WaermeTransferKoeffizientAussenwandSuedKorrektur = WaermeTransferKoeffizientAussenwandSued * TemperaturKorrekturFaktorAussenwand;
WaermeTransferKoeffizientAussenwandNordKorrektur = WaermeTransferKoeffizientAussenwandNord * TemperaturKorrekturFaktorAussenwand;
WaermeTransferKoeffizientAussenwandOstKorrektur = WaermeTransferKoeffizientAussenwandOst * TemperaturKorrekturFaktorAussenwand;
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
};
});
maximalerWaermestromAussenwandWest = WaermeTransferKoeffizientAussenwandWestKorrektur * maximaleTemperaturDifferenz;
maximalerWaermestromAussenwandSued = WaermeTransferKoeffizientAussenwandSuedKorrektur * maximaleTemperaturDifferenz;
maximalerWaermestromAussenwandNord = WaermeTransferKoeffizientAussenwandNordKorrektur * maximaleTemperaturDifferenz;
maximalerWaermestromAussenwandOst = WaermeTransferKoeffizientAussenwandOstKorrektur * maximaleTemperaturDifferenz;
const GesamtHuellFlaeche = PlanungswerteBauteil.reduce((sum, bauteil) => sum + bauteil.Flaeche, 0);
WaermeTransferKoeffizientFensterWest = WaermeDurchgangsKoeffizientFensterWest * FensterFlaecheWest;
WaermeTransferKoeffizientFensterSued = WaermeDurchgangsKoeffizientFensterSued * FensterFlaecheSued;
WaermeTransferKoeffizientFensterNord = WaermeDurchgangsKoeffizientFensterNord * FensterFlaecheNord;
WaermeTransferKoeffizientFensterOst = WaermeDurchgangsKoeffizientFensterOst * FensterFlaecheOst;
WaermeTransferKoeffizientFensterWestKorrektur = WaermeTransferKoeffizientFensterWest * TemperaturKorrekturFaktorFenster;
WaermeTransferKoeffizientFensterSuedKorrektur = WaermeTransferKoeffizientFensterSued * TemperaturKorrekturFaktorFenster;
WaermeTransferKoeffizientFensterNordKorrektur = WaermeTransferKoeffizientFensterNord * TemperaturKorrekturFaktorFenster;
WaermeTransferKoeffizientFensterOstKorrektur = WaermeTransferKoeffizientFensterOst * TemperaturKorrekturFaktorFenster;
maximalerWaermestromFensterWest = WaermeTransferKoeffizientFensterWestKorrektur * maximaleTemperaturDifferenz;
maximalerWaermestromFensterSued = WaermeTransferKoeffizientFensterSuedKorrektur * maximaleTemperaturDifferenz;
maximalerWaermestromFensterNord = WaermeTransferKoeffizientFensterNordKorrektur * maximaleTemperaturDifferenz;
maximalerWaermestromFensterOst = WaermeTransferKoeffizientFensterOstKorrektur * maximaleTemperaturDifferenz;
WaermeTransferKoeffizientHaustuer = WaermeDurchgangsKoeffizientHaustuer * HaustuerFlaeche;
WaermeTransferKoeffizientHaustuerKorrektur = WaermeTransferKoeffizientHaustuer * TemperaturKorrekturFaktorHaustuer;
maximalerWaermestromHaustuer = WaermeTransferKoeffizientHaustuerKorrektur * maximaleTemperaturDifferenz;
WaermeTransferKoeffizientFlachdach = WaermeDurchgangsKoeffizientFlachdach * FlachdachFlaeche;
WaermeTransferKoeffizientFlachdachKorrektur = WaermeTransferKoeffizientFlachdach * TemperaturKorrekturFaktorFlachdach;
maximalerWaermestromFlachdach = WaermeTransferKoeffizientFlachdachKorrektur * maximaleTemperaturDifferenz;
WaermeTransferKoeffizientBodenplatte = WaermeDurchgangsKoeffizientBodenplatte * BodenplatteFlaeche;
WaermeTransferKoeffizientBodenplatteKorrektur = WaermeTransferKoeffizientBodenplatte * TemperaturKorrekturFaktorBodenplatte;
maximalerWaermestromBodenplatte = WaermeTransferKoeffizientBodenplatteKorrektur * maximaleTemperaturDifferenz;
GesamtHuellFlaeche = AussenWandFlaecheWest + AussenWandFlaecheSued + AussenWandFlaecheNord + AussenWandFlaecheOst + FensterFlaecheWest +
FensterFlaecheSued + FensterFlaecheNord + FensterFlaecheOst + HaustuerFlaeche + FlachdachFlaeche + BodenplatteFlaeche;
HuellFlaechenVolumenVerhaeltnis = GesamtHuellFlaeche / ObjektNettoVolumenAlternativ;
WaermeTransferKoeffizientWaeremebruecken = GesamtHuellFlaeche * WaermeBrueckenZuschlag;
maximalerWaermestromWaermebruecken = WaermeTransferKoeffizientWaeremebruecken * maximaleTemperaturDifferenz;
WaermeTransferKoeffizientBauteile = WaermeTransferKoeffizientAussenwandWestKorrektur + WaermeTransferKoeffizientAussenwandSuedKorrektur +
WaermeTransferKoeffizientAussenwandNordKorrektur + WaermeTransferKoeffizientAussenwandOstKorrektur + WaermeTransferKoeffizientFensterWestKorrektur +
WaermeTransferKoeffizientFensterSuedKorrektur + WaermeTransferKoeffizientFensterNordKorrektur + WaermeTransferKoeffizientFensterOstKorrektur +
WaermeTransferKoeffizientHaustuerKorrektur + WaermeTransferKoeffizientFlachdachKorrektur + WaermeTransferKoeffizientBodenplatteKorrektur +
WaermeTransferKoeffizientWaeremebruecken;
maximalerWaermestromBauteile = WaermeTransferKoeffizientBauteile * maximaleTemperaturDifferenz;
const WaermeTransferKoeffizientBauteile =
(ErgebnisseBauteile.reduce((sum, bauteil) => sum + bauteil.WaermeTransferKoeffizientKorrektur, 0))
+ WaermeTransferKoeffizientWaeremebruecken;
maximalerWaermestromBauteile = WaermeTransferKoeffizientBauteile * maximaleTemperaturDifferenz;
return {
@@ -233,74 +226,13 @@ export function BerechnungWaermeTransferMaxStroemeBauteile() {
ObjektNettoVolumen,
FaktorNettoVolumen,
ObjektNettoVolumenAlternativ,
WaermeDurchgangsKoeffizientAussenWandWest,
WaermeTransferKoeffizientAussenwandWest,
WaermeDurchgangsKoeffizientAussenWandSued,
WaermeTransferKoeffizientAussenwandSued,
WaermeDurchgangsKoeffizientAussenWandNord,
WaermeTransferKoeffizientAussenwandNord,
WaermeDurchgangsKoeffizientAussenWandOst,
WaermeTransferKoeffizientAussenwandOst,
TemperaturKorrekturFaktorAussenwand,
WaermeTransferKoeffizientAussenwandWestKorrektur,
WaermeTransferKoeffizientAussenwandSuedKorrektur,
WaermeTransferKoeffizientAussenwandNordKorrektur,
WaermeTransferKoeffizientAussenwandOstKorrektur,
maximalerWaermestromAussenwandWest,
maximalerWaermestromAussenwandSued,
maximalerWaermestromAussenwandNord,
maximalerWaermestromAussenwandOst,
WaermeDurchgangsKoeffizientFensterWest,
WaermeTransferKoeffizientFensterWest,
WaermeDurchgangsKoeffizientFensterSued,
WaermeTransferKoeffizientFensterSued,
WaermeDurchgangsKoeffizientFensterNord,
WaermeTransferKoeffizientFensterNord,
WaermeDurchgangsKoeffizientFensterOst,
WaermeTransferKoeffizientFensterOst,
TemperaturKorrekturFaktorFenster,
WaermeTransferKoeffizientFensterWestKorrektur,
WaermeTransferKoeffizientFensterSuedKorrektur,
WaermeTransferKoeffizientFensterNordKorrektur,
WaermeTransferKoeffizientFensterOstKorrektur,
maximalerWaermestromFensterWest,
maximalerWaermestromFensterSued,
maximalerWaermestromFensterNord,
maximalerWaermestromFensterOst,
WaermeDurchgangsKoeffizientHaustuer,
WaermeTransferKoeffizientHaustuer,
TemperaturKorrekturFaktorHaustuer,
WaermeTransferKoeffizientHaustuerKorrektur,
maximalerWaermestromHaustuer,
WaermeDurchgangsKoeffizientFlachdach,
WaermeTransferKoeffizientFlachdach,
TemperaturKorrekturFaktorFlachdach,
WaermeTransferKoeffizientFlachdachKorrektur,
maximalerWaermestromFlachdach,
WaermeDurchgangsKoeffizientBodenplatte,
WaermeTransferKoeffizientBodenplatte,
TemperaturKorrekturFaktorBodenplatte,
WaermeTransferKoeffizientBodenplatteKorrektur,
maximalerWaermestromBodenplatte,
GesamtHuellFlaeche,
ErgebnisseBauteile,
WaermeBrueckenZuschlag,
WaermeTransferKoeffizientWaeremebruecken,
maximalerWaermestromWaermebruecken,
WaermeTransferKoeffizientBauteile,
maximalerWaermestromBauteile,
HuellFlaechenVolumenVerhaeltnis,
AussenWandFlaecheWest,
AussenWandFlaecheSued,
AussenWandFlaecheNord,
AussenWandFlaecheOst,
FensterFlaecheWest,
FensterFlaecheSued,
FensterFlaecheNord,
FensterFlaecheOst,
HaustuerFlaeche,
FlachdachFlaeche,
BodenplatteFlaeche,
}
}

View File

@@ -1,3 +1,4 @@
import FensterImage from "#components/Ausweis/FensterImage.svelte";
import { funktionSolareBestrahlungsEnergie } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionSolareBestrahlungsEnergie.js";
export function BerechnungWaermequellenSolareEinstrahlung() {
@@ -30,73 +31,85 @@ export function BerechnungWaermequellenSolareEinstrahlung() {
// Aus Planung, Konstante für Neigung Fensterfläche (bei Dachfenstern kann die Neigung zwischen 0 und 85)
const PlanungswerteFenster = [
const PlanungswerteBauteil = [
{
FensterFlaeche: 18.91,
NeigungFensterflaeche: 90,
Art: "Fenster",
Flaeche: 18.91,
WaermeDurchgangsKoeffizient: 0.95,
Neigung: 90,
GesamtEnergieDurchlassGrad: 0.6,
RahmenAnteil: 0.7,
StrahlungsEinfluss: 0.9,
Verschattung: 0.9,
OrientierungFensterFlaeche: "West"
TemperaturKorrekturFaktor: 1,
Orientierung: "West"
},
{
FensterFlaeche: 19.62,
NeigungFensterflaeche: 90,
Art: "Fenster",
Flaeche: 19.62,
WaermeDurchgangsKoeffizient: 0.95,
Neigung: 90,
GesamtEnergieDurchlassGrad: 0.6,
RahmenAnteil: 0.7,
StrahlungsEinfluss: 0.9,
Verschattung: 0.9,
OrientierungFensterFlaeche: "Süd"
TemperaturKorrekturFaktor: 1,
Orientierung: "Süd"
},
{
FensterFlaeche: 2.97,
NeigungFensterflaeche: 90,
Art: "Fenster",
Flaeche: 2.97,
WaermeDurchgangsKoeffizient: 0.95,
Neigung: 90,
GesamtEnergieDurchlassGrad: 0.6,
RahmenAnteil: 0.7,
StrahlungsEinfluss: 0.9,
Verschattung: 0.9,
OrientierungFensterFlaeche: "Nord"
TemperaturKorrekturFaktor: 1,
Orientierung: "Nord"
},
{
FensterFlaeche: 4.3,
NeigungFensterflaeche: 90,
Art: "Fenster",
Flaeche: 4.3,
WaermeDurchgangsKoeffizient: 0.95,
Neigung: 90,
GesamtEnergieDurchlassGrad: 0.6,
RahmenAnteil: 0.7,
StrahlungsEinfluss: 0.9,
Verschattung: 0.9,
OrientierungFensterFlaeche: "Ost"
TemperaturKorrekturFaktor: 1,
Orientierung: "Ost"
}
];
// const MonatsWerteWest = funktionSolareBestrahlungsEnergie(NeigungFensterflaeche, OrientierungFensterFlaecheWest);
// Berechnung der solaren Wärmequellen pro Fenster und Monat
PlanungswerteFenster.forEach(item => {
const MonatsWerte = funktionSolareBestrahlungsEnergie(item.NeigungFensterflaeche, item.OrientierungFensterFlaeche);
PlanungswerteBauteil.forEach(item => {
const MonatsWerte = funktionSolareBestrahlungsEnergie(item.Neigung, item.Orientierung);
if (MonatsWerte) {
const SolareWaermequelleJanuar = MonatsWerte.jan * item.FensterFlaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const SolareWaermequelleJanuar = MonatsWerte.jan * item.Flaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const MonatsWerteJanuar = MonatsWerte.jan;
const SolareWaermequelleFebruar = MonatsWerte.feb * item.FensterFlaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const SolareWaermequelleFebruar = MonatsWerte.feb * item.Flaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const MonatsWerteFebruar = MonatsWerte.feb;
const SolareWaermequelleMaerz = MonatsWerte.mrz * item.FensterFlaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const SolareWaermequelleMaerz = MonatsWerte.mrz * item.Flaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const MonatsWerteMaerz = MonatsWerte.mrz;
const SolareWaermequelleApril = MonatsWerte.apr * item.FensterFlaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const SolareWaermequelleApril = MonatsWerte.apr * item.Flaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const MonatsWerteApril = MonatsWerte.apr;
const SolareWaermequelleMai = MonatsWerte.mai * item.FensterFlaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const SolareWaermequelleMai = MonatsWerte.mai * item.Flaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const MonatsWerteMai = MonatsWerte.mai;
const SolareWaermequelleJuni = MonatsWerte.jun * item.FensterFlaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const SolareWaermequelleJuni = MonatsWerte.jun * item.Flaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const MonatsWerteJuni = MonatsWerte.jun;
const SolareWaermequelleJuli = MonatsWerte.jul * item.FensterFlaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const SolareWaermequelleJuli = MonatsWerte.jul * item.Flaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const MonatsWerteJuli = MonatsWerte.jul;
const SolareWaermequelleAugust = MonatsWerte.aug * item.FensterFlaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const SolareWaermequelleAugust = MonatsWerte.aug * item.Flaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const MonatsWerteAugust = MonatsWerte.aug;
const SolareWaermequelleSeptember = MonatsWerte.sep * item.FensterFlaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const SolareWaermequelleSeptember = MonatsWerte.sep * item.Flaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const MonatsWerteSeptember = MonatsWerte.sep;
const SolareWaermequelleOktober = MonatsWerte.okt * item.FensterFlaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const SolareWaermequelleOktober = MonatsWerte.okt * item.Flaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const MonatsWerteOktober = MonatsWerte.okt;
const SolareWaermequelleNovember = MonatsWerte.nov * item.FensterFlaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const SolareWaermequelleNovember = MonatsWerte.nov * item.Flaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const MonatsWerteNovember = MonatsWerte.nov;
const SolareWaermequelleDezember = MonatsWerte.dez * item.FensterFlaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const SolareWaermequelleDezember = MonatsWerte.dez * item.Flaeche * item.RahmenAnteil * item.GesamtEnergieDurchlassGrad * item.StrahlungsEinfluss * item.Verschattung;
const MonatsWerteDezember = MonatsWerte.dez;
ErgebnisseJanuar.push(SolareWaermequelleJanuar);
@@ -154,10 +167,10 @@ export function BerechnungWaermequellenSolareEinstrahlung() {
summeErgebnisseAugust + summeErgebnisseSeptember + summeErgebnisseOktober + summeErgebnisseNovember +
summeErgebnisseDezember;
const summeFensterFlaeche = PlanungswerteFenster.reduce((acc, val) => acc + val.FensterFlaeche, 0);
const summeFlaeche = PlanungswerteBauteil.reduce((acc, val) => acc + val.Flaeche, 0);
return {
PlanungswerteFenster,
PlanungswerteBauteil,
ErgebnisseJanuar,
ErgebnisseMonatsWerteJanuar,
ErgebnisseFebruar,
@@ -196,6 +209,6 @@ export function BerechnungWaermequellenSolareEinstrahlung() {
summeErgebnisseDezember,
summeErgebnisseJahr,
ErgebnisseWirksamerGesamtEnergieDurchlassGrad,
summeFensterFlaeche,
summeFlaeche,
}
}