Jump to content
Menü aufrufen
Toggle preferences menu
Persönliches Menü aufrufen
Nicht angemeldet
Ihre IP-Adresse wird öffentlich sichtbar sein, wenn Sie Änderungen vornehmen.

Programm Dokumentation/Berechnung/Pufferspeicher: Unterschied zwischen den Versionen

Aus wiki.epos-plan.de
H13: Hilferubrik Berechnung aus EPOS-Plan (Stand 06.09.2026)
 
#250/#251: Fachseite beschreibt nur die Funktion, wie sie ist; keine Hersteller- und Produktdaten
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
<!-- EPOS-Plan Hilferubrik Berechnung | Seite: Pufferspeicher | Stand: 2026-09-06 | Rechenkern:
<!-- EPOS-Plan Hilferubrik Berechnung | Seite: Pufferspeicher | Fassung 3 | Rechenkern:
     EPOS.Kern/Allgemein/Simulation/SimulationPufferspeicher.cs (Energie- und Schichtebene),
     EPOS.Kern/Allgemein/Simulation/SimulationPufferspeicher.cs (Energie- und Schichtebene),
     Ladeordnung.cs (Lade- und Entladereihenfolge, Obergrenzen), Kaskadenschleife.cs (Phasen A-G),
     Ladeordnung.cs (Lade- und Entladereihenfolge, Obergrenzen), Kaskadenschleife.cs (Phasen A-G),
Zeile 5: Zeile 5:


== Was berechnet wird ==
== Was berechnet wird ==
{{Anker|was}}


Ein thermischer Pufferspeicher entkoppelt Erzeugung und Bedarf. Der Lauf führt für jede Stunde
Ein thermischer Pufferspeicher entkoppelt Erzeugung und Bedarf. Der Lauf führt für jede Stunde
Zeile 17: Zeile 18:


== Eingangsgrößen ==
== Eingangsgrößen ==
{{Anker|eingang}}


{| class="wikitable"
{| class="wikitable"
Zeile 46: Zeile 48:
|-
|-
| Ladepriorität je ladender Anlage || 1…99 || Simulationskonfiguration, Karte des Erzeugers
| Ladepriorität je ladender Anlage || 1…99 || Simulationskonfiguration, Karte des Erzeugers
|}
== Formelzeichen und Parameter ==
{{Anker|zeichen}}
Die Schreibweise ist die der ganzen Rubrik: <math>t</math> ist die Stunde des Jahres
(1…8&nbsp;760), <math>Q</math> eine Wärmemenge, <math>\vartheta</math> eine Temperatur in Grad
Celsius, <math>\lambda</math> eine Wärmeleitfähigkeit. Der Füllstand heißt hier
<math>\mathrm{SOC}(t)</math> — dasselbe Zeichen wie beim Stromspeicher, nur in kWh statt in
Prozent. Der Schichtindex <math>i</math> läuft von 0 (oben) bis <math>N - 1</math> (unten). Ein
Strich am Symbol (<math>\mathrm{SOC}'(t)</math>) bezeichnet den Wert '''nach''' dem jeweiligen
Schritt.
=== Parameter ===
Eingaben, Katalogwerte, Vorgaben und Konstanten. Sie ändern sich innerhalb eines Laufs nicht.
{| class="wikitable"
! Symbol !! Bedeutung !! Einheit !! Herkunft
|-
| <math>V</math> || Gesamtvolumen des Behälters || l || Pufferspeicherkatalog, Feld „Gesamtvolumen"
|-
| <math>q_{\mathrm{V,24}}</math> || Bereitschaftsverluste eines Tages || kWh/24&nbsp;h || Pufferspeicherkatalog, Feld „Bereitschaftsverluste"
|-
| <math>\vartheta_{\mathrm{VL}}</math>, <math>\vartheta_{\mathrm{RL}}</math> || Vorlauf- und Rücklauftemperatur || °C || Dialog „Pufferspeicher (Projekt)", Abschnitt „Eigenschaften"
|-
| <math>c_{\mathrm{W}}</math> || Wärmekapazität des Wassers je Liter und Kelvin || Wh/(l·K) || '''Konstante: 1,16'''
|-
| <math>\Delta T_{0}</math> || Spreizung, wenn kein vollständiges Temperaturpaar gepflegt ist || K || '''Vorgabe: 10''' — beim BHKW-Pendelspeicher '''20'''
|-
| <math>s_{\mathrm{ein}}</math> || Einschaltschwelle der Speicherregelung || — (0…1) || Abschnitt „Schwellen"
|-
| <math>s_{\mathrm{aus}}</math> || Abschaltschwelle || — (0…1) || derselbe Abschnitt
|-
| <math>s_{\mathrm{nach}}</math> || Abschaltschwelle für nachrangige Anlagen — die Solar-Reservezone || — (0…1) || derselbe Abschnitt
|-
| <math>s_{\mathrm{min}}</math> || Mindestfüllstand (Notreserve) || — (0…1) || derselbe Abschnitt
|-
| <math>N</math> || Schichtenzahl || — (1…10) || Abschnitt „Schichtung"; '''Vorbelegung: 1''' — dann ist die Schichtebene wirkungslos
|-
| <math>H</math> || Behälterhöhe || m || Abschnitt „Schichtung"; ohne Wert aus (14)
|-
| <math>\lambda_{\mathrm{eff}}</math> || effektive Wärmeleitfähigkeit zwischen den Zonen || W/(m·K) || Abschnitt „Schichtung"; '''Vorgabe: 1,5''' — sie enthält die Wandleitung
|-
| <math>\mathrm{HD}</math> || Höhen-Durchmesser-Verhältnis des Ersatzbehälters || — || '''Konstante: 2,5'''
|-
| <math>\kappa</math> || Kappung des vertikalen Ausgleichs je Schichtpaar und Stunde || — || '''Konstante: 0,25''' (25&nbsp;%)
|-
| <math>h_{\mathrm{E}}</math> || Entnahmehöhe eines Kanals || — (0…1) || Abschnitt „Schichtung"; '''Vorbelegung: 1''' (ganz oben)
|-
| <math>\vartheta_{\mathrm{min}}</math> || Mindest-Nutztemperatur eines Kanals || °C || Abschnitt „Schichtung"; '''Vorbelegung: <math>\vartheta_{\mathrm{RL}}</math>'''
|-
| <math>P_{\mathrm{lad,max}}</math>, <math>P_{\mathrm{ent,max}}</math> || Lade- und Entladeleistungsgrenze als Budget der Stunde || kWh je Stunde || Abschnitt „Eigenschaften"; '''0 = unbegrenzt'''
|-
| <math>N_{\mathrm{Sch,max}}</math> || größte Schichtenzahl || — || '''Konstante: 10'''
|}
=== Variablen ===
Größen, die der Lauf je Stunde oder je Speicher bildet.
{| class="wikitable"
! Symbol !! Bedeutung !! Einheit !! berechnet in
|-
| <math>t</math> || Stunde des Jahres, 1…8&nbsp;760 || — || Laufindex der Stundenschleife
|-
| <math>i</math> || Schichtindex, 0 = oben || — || 0…<math>N - 1</math>
|-
| <math>Q_{\mathrm{max}}</math> || nutzbare Kapazität des Speichers || kWh || (1)
|-
| <math>q_{\mathrm{V}}</math> || Bereitschaftsverlust einer Stunde bei vollem Speicher || kWh || (2)
|-
| <math>\mathrm{SOC}(t)</math> || Füllstand am Ende der Stunde || kWh || fortgeschrieben über (11)
|-
| <math>o(t)</math> || gültige Ladeobergrenze der ladenden Anlage || — (0…1) || Schritt 2, Obergrenzentabelle
|-
| <math>R(t)</math> || bereits reservierte Menge anderer Lader || kWh || Ladeordnung (Eingang)
|-
| <math>L(t)</math> || Ladefähigkeit || kWh || (3)
|-
| <math>Q_{\mathrm{Dl}}(t)</math> || Durchlass — was im selben Zeitschritt wieder entnommen wird || kWh || Kaskadenschleife (Eingang)
|-
| <math>A(t)</math> || in dieser Stunde aufnehmbare Menge || kWh || (4)
|-
| <math>Q_{\mathrm{offen}}(t)</math> || offener Kanalbedarf || kWh || Eingang aus der Kaskade
|-
| <math>Q_{\mathrm{anf}}(t)</math> || angeforderte Entnahme || kWh || Eingang aus der Kaskade
|-
| <math>B(t)</math> || Bilanzraum eines ladenden Erzeugers || kWh || (5)
|-
| <math>Q_{\mathrm{ent}}(t)</math> || Entnahme der Stunde || kWh || (6)
|-
| <math>f(t)</math> || Füllstandsanteil || — (0…1) || (9)
|-
| <math>Q_{\mathrm{V}}(t)</math> || Bereitschaftsverlust dieser Stunde || kWh || (10)
|-
| <math>q_{i}(t)</math> || Energie der Schicht <math>i</math> || kWh || (12)
|-
| <math>\vartheta_{i}(t)</math> || Temperatur der Schicht <math>i</math> || °C || (13)
|-
| <math>d</math> || Durchmesser des Ersatzbehälters || m || (14)
|-
| <math>A_{q}</math> || Querschnittsfläche des Behälters || m² || (15)
|-
| <math>k</math> || Wärmeleitwert eines Schichtpaars || kWh/K || (16)
|-
| <math>C_{\mathrm{Sch}}</math> || Wärmekapazität einer Schicht || kWh/K || (17)
|-
| <math>\Delta\vartheta_{i}(t)</math> || Temperaturunterschied zweier benachbarter Schichten || K || (18)
|-
| <math>q_{i,i+1}(t)</math> || Wärme, die im Ausgleich zwischen zwei Schichten fließt || kWh || (18)
|-
| <math>U_{\mathrm{a}}</math> || Jahresumsatz — Entladung beim Quellspeicher, sonst Ladung || kWh || Jahressumme
|-
| <math>z_{\mathrm{V}}</math> || Vollzyklen des Jahres || — || (19)
|}
|}


== Rechenweg ==
== Rechenweg ==
{{Anker|rechenweg}}
Gerechnet wird im festen Jahresraster von '''8&nbsp;760 Stunden'''; <math>t</math> ist in allen
Gleichungen dieser Seite die laufende Stunde des Jahres und <math>i</math> der Schichtindex — beide
werden in den Legenden nicht wiederholt.


=== Schritt 1 — Nutzbare Kapazität ===
=== Schritt 1 — Nutzbare Kapazität ===


Q_max [kWh] = Volumen [l] · 1,16 Wh/(l·K) · (Vorlauf − Rücklauf) / 1000
: <math>\displaystyle Q_{\mathrm{max}} = \frac{V \cdot c_{\mathrm{W}} \cdot \left( \vartheta_{\mathrm{VL}} - \vartheta_{\mathrm{RL}} \right)}{1\,000}</math> &nbsp;&nbsp;(1)
:: <math>Q_{\mathrm{max}}</math> – nutzbare Kapazität des Speichers [kWh]
:: <math>V</math> – Gesamtvolumen des Behälters [l]
:: <math>c_{\mathrm{W}}</math> – Wärmekapazität des Wassers [Wh/(l·K)], Konstante 1,16
:: <math>\vartheta_{\mathrm{VL}}</math>, <math>\vartheta_{\mathrm{RL}}</math> – Vorlauf- und Rücklauftemperatur [°C]
:: <math>1\,000</math> – Umrechnung von Wh in kWh [Wh/kWh]


Fehlt ein vollständiges Temperaturpaar, gilt ein Rückfall-ΔT von '''10&nbsp;K''' — beim
Fehlt ein vollständiges Temperaturpaar, tritt <math>\Delta T_{0} = 10</math>&nbsp;K an die Stelle
BHKW-Pendelspeicher '''20&nbsp;K''', weil dessen Altformel diese Spreizung fest verdrahtet hatte und
von <math>\vartheta_{\mathrm{VL}} - \vartheta_{\mathrm{RL}}</math> — beim BHKW-Pendelspeicher
ein Rückfall auf 10&nbsp;K seine Kapazität ohne fachlichen Grund halbieren würde. Der Rückfall wird
'''20&nbsp;K''', weil dessen Altformel diese Spreizung fest verdrahtet hatte und ein Rückfall auf
am Speicher vermerkt und lässt sich protokollieren.
10&nbsp;K seine Kapazität ohne fachlichen Grund halbieren würde. Der Rückfall wird am Speicher
vermerkt und lässt sich protokollieren.


Verlust je Stunde = Bereitschaftsverluste [kWh/24 h] / 24
: <math>\displaystyle q_{\mathrm{V}} = \frac{q_{\mathrm{V,24}}}{24}</math> &nbsp;&nbsp;(2)
:: <math>q_{\mathrm{V}}</math> – Bereitschaftsverlust einer Stunde bei vollem Speicher [kWh]
:: <math>q_{\mathrm{V,24}}</math> – Bereitschaftsverluste eines Tages aus dem Katalog [kWh/24&nbsp;h]
:: <math>24</math> – Stunden eines Tages [h]


=== Schritt 2 — Laden ===
=== Schritt 2 — Laden ===


Ein Erzeuger lädt bis zu seiner '''Obergrenze''', und die hängt davon ab, ob er an diesem Speicher
Ein Erzeuger lädt bis zu seiner '''Obergrenze''' <math>o(t)</math>, und die hängt davon ab, ob er an
der vorrangige Lader ist:
diesem Speicher der vorrangige Lader ist:


Obergrenze = eigene Ladegrenze der Senkenzeile, wenn gesetzt
{| class="wikitable"
            = Abschaltschwelle,                  wenn die Anlage die vorrangige ist
! Fall !! Obergrenze <math>o(t)</math>
            = Abschaltschwelle für Nachrangige,  sonst
|-
| die Senkenzeile führt eine eigene Ladegrenze || diese Ladegrenze
|-
| die Anlage ist die vorrangige || <math>s_{\mathrm{aus}}</math>
|-
| sonst || <math>s_{\mathrm{nach}}</math>
|}


Ladefähigkeit = Q_max · Obergrenze − Füllstand − Reserviertes
Ein Wert <math>o(t) \le 0</math> gilt als „nicht gesetzt" und fällt auf
<math>s_{\mathrm{aus}}</math> zurück.


Die zweite Zeile ist die '''Solar-Reservezone''': Wo eine Reserve gepflegt ist, laden nachrangige
: <math>\displaystyle L(t) = \max\left( 0 , Q_{\mathrm{max}} \cdot o(t) - \mathrm{SOC}(t) - R(t) \right)</math> &nbsp;&nbsp;(3)
:: <math>L(t)</math> – Ladefähigkeit des Speichers in dieser Stunde [kWh]
:: <math>Q_{\mathrm{max}}</math> – nutzbare Kapazität [kWh]
:: <math>o(t)</math> – gültige Ladeobergrenze der ladenden Anlage [–]
:: <math>\mathrm{SOC}(t)</math> – Füllstand [kWh]
:: <math>R(t)</math> – bereits reservierte Menge anderer Lader [kWh]
 
Die dritte Zeile ist die '''Solar-Reservezone''': Wo eine Reserve gepflegt ist, laden nachrangige
Erzeuger — üblicherweise der Heizkessel — nur bis dorthin, und der obere Teil bleibt für die
Erzeuger — üblicherweise der Heizkessel — nur bis dorthin, und der obere Teil bleibt für die
Solarthermie frei. In Stunden mit PV-Überschuss kann eine andere Anlage vorrangig sein; dann gilt die
Solarthermie frei. In Stunden mit PV-Überschuss kann eine andere Anlage vorrangig sein; dann gilt die
Reservezone für sie, denn Anzeige und Rechnung lösen die Obergrenzen mit derselben Funktion und der
Reservezone für sie, denn Anzeige und Rechnung lösen <math>o(t)</math> mit derselben Funktion und
jeweils gültigen Priorität auf.
der jeweils gültigen Priorität auf.


'''Der Speicher als hydraulische Weiche.''' Er drosselt die Anlage nicht auf seinen freien Raum: Er
'''Der Speicher als hydraulische Weiche.''' Er drosselt die Anlage nicht auf seinen freien Raum: Er
Zeile 83: Zeile 228:
(''Durchlass''):
(''Durchlass''):


aufnehmbar = Q_max − Füllstand + Durchlass
: <math>\displaystyle A(t) = Q_{\mathrm{max}} - \mathrm{SOC}(t) + Q_{\mathrm{Dl}}(t)</math> &nbsp;&nbsp;(4)
Bilanzraum = Ladefähigkeit + min(offener Kanalbedarf ; Entnahmefähigkeit)
:: <math>A(t)</math> – in dieser Stunde aufnehmbare Menge [kWh]
:: <math>Q_{\mathrm{max}}</math> – nutzbare Kapazität [kWh]
:: <math>\mathrm{SOC}(t)</math> – Füllstand zu Beginn [kWh]
:: <math>Q_{\mathrm{Dl}}(t)</math> – Durchlass: was im selben Zeitschritt wieder entnommen wird [kWh]


Der Füllstand liegt dann vorübergehend über Q_max; die Nachentladung zieht ihn im selben Zeitschritt
: <math>\displaystyle B(t) = L(t) + \min\left( Q_{\mathrm{offen}}(t) , Q_{\mathrm{ent}}(t) \right)</math> &nbsp;&nbsp;(5)
wieder herunter. Buchhalterisch wird die Aufnahme in '''Umsatz''' (bis Q_max) und '''Durchfluss'''
:: <math>B(t)</math> – Bilanzraum eines ladenden Erzeugers [kWh]
(alles darüber) zerlegt — nur der Umsatz ist Speicherinhalt.
:: <math>L(t)</math> – Ladefähigkeit aus (3) [kWh]
:: <math>Q_{\mathrm{offen}}(t)</math> – offener Kanalbedarf [kWh]
:: <math>Q_{\mathrm{ent}}(t)</math> – Entnahme der Stunde [kWh]


Eine gepflegte '''Ladeleistungsgrenze''' wirkt als '''Budget der Stunde''', nicht je Ladevorgang:
Der Füllstand liegt dann vorübergehend über <math>Q_{\mathrm{max}}</math>; die Nachentladung zieht
Ein Speicher wird in derselben Stunde von mehreren Erzeugern angefahren, und je Aufruf gewährt
ihn im selben Zeitschritt wieder herunter. Buchhalterisch wird die Aufnahme in '''Umsatz''' (bis
bekäme er die Grenze mehrfach.
<math>Q_{\mathrm{max}}</math>) und '''Durchfluss''' (alles darüber) zerlegt — nur der Umsatz ist
Speicherinhalt.
 
Eine gepflegte '''Ladeleistungsgrenze''' <math>P_{\mathrm{lad,max}}</math> wirkt als '''Budget der
Stunde''', nicht je Ladevorgang: Ein Speicher wird in derselben Stunde von mehreren Erzeugern
angefahren, und je Aufruf gewährt bekäme er die Grenze mehrfach.


=== Schritt 3 — Entladen ===
=== Schritt 3 — Entladen ===


Entnahme = min(angefordert ; Füllstand)
: <math>\displaystyle Q_{\mathrm{ent}}(t) = \min\left( Q_{\mathrm{anf}}(t) , \mathrm{SOC}(t) , P_{\mathrm{ent,max}} \right)</math> &nbsp;&nbsp;(6)
danach auf das Entladebudget der Stunde begrenzt (0 = unbegrenzt)
:: <math>Q_{\mathrm{ent}}(t)</math> – Entnahme der Stunde [kWh]
:: <math>Q_{\mathrm{anf}}(t)</math> – angeforderte Entnahme [kWh]
:: <math>\mathrm{SOC}(t)</math> – Füllstand [kWh]
:: <math>P_{\mathrm{ent,max}}</math> – Restbudget der Stunde aus der Entladeleistungsgrenze [kWh je Stunde]; 0 = unbegrenzt, dann entfällt dieser Teil
 
Das Budget der Stunde ist <math>P_{\mathrm{ent,max}}</math>; bei
<math>P_{\mathrm{ent,max}} = 0</math> gibt es keine Grenze, und der dritte Teil von (6) entfällt.
Die Entnahme wird ebenfalls in Durchfluss und Umsatz zerlegt; der Durchfluss verlässt den Speicher
zuerst. Führt ein Kanal eine '''Mindest-Nutztemperatur''' <math>\vartheta_{\mathrm{min}}</math> und
ist der Speicher geschichtet, zählt nur, was die Schichten mit
<math>\vartheta_{i}(t) \ge \vartheta_{\mathrm{min}}</math> unterhalb der '''Entnahmehöhe'''
<math>h_{\mathrm{E}}</math> des Kanals hergeben. Beim Kombispeicher ist das der Grund, warum die
Heizung die Bereitschaftszone des Brauchwassers oben nicht antastet.
 
'''Der Mindestfüllstand''' <math>s_{\mathrm{min}}</math> (Notreserve) wirkt an genau einer Stelle:
Er klemmt die '''angeforderte''' Entnahme <math>Q_{\mathrm{anf}}(t)</math> auf den Vorrat oberhalb
der Marke <math>Q_{\mathrm{max}} \cdot s_{\mathrm{min}}</math>. Er gilt nur an Speichern, die ein
'''BHKW''' lädt — eine Maschine mit Anlaufverhalten braucht einen Vorrat, aus dem die nächste
Bedarfsspitze bis zum Anlaufen gedeckt wird; Wärmepumpe, Kessel und Solarthermie entladen
unverändert bis 0. Ist die Marke erreicht, bleibt der Bedarf offen und geht an die nächste
Kaskadenstufe, während der Speicher in den Nachladebetrieb geht. Der Durchfluss derselben Stunde
bleibt unberührt — die Reserve begrenzt den '''Vorrat''', nicht die hydraulische Weiche.


Die Entnahme wird ebenfalls in Durchfluss und Umsatz zerlegt — der Durchfluss verlässt den Speicher
Auch dieser Vergleich trägt den '''Zahlenrand''' der Abschaltschwelle (siehe Schritt 4), nur
zuerst. Führt ein Kanal eine '''Mindest-Nutztemperatur''' und ist der Speicher geschichtet, zählt nur,
spiegelbildlich: Die Marke wird von '''oben''' erreicht, und als erreicht gilt sie schon, wenn der
was die Schichten oberhalb dieser Temperatur und unterhalb der '''Entnahmehöhe''' des Kanals
Füllstand höchstens 10<sup>−9</sup> kWh zuzüglich 10<sup>−12</sup> seines eigenen Betrages darüber
hergeben. Beim Kombispeicher ist das der Grund, warum die Heizung die Bereitschaftszone des
steht. Der Grund ist derselbe — die Entladung fährt den Füllstand auf '''genau''' diese Marke, und
Brauchwassers oben nicht antastet.
in Gleitkommaarithmetik trifft eine Differenz ihren Zielwert nicht immer im letzten Bit.


'''Die Entladereihenfolge''' läuft je Kanal über die Entladepriorität; ohne manuelle Angabe gilt die
'''Die Entladereihenfolge''' läuft je Kanal über die Entladepriorität; ohne manuelle Angabe gilt die
Zeile 110: Zeile 286:
=== Schritt 4 — Hysterese der Speicherregelung ===
=== Schritt 4 — Hysterese der Speicherregelung ===


Füllstand ≤ Q_max · Einschaltschwelle →  Nachladung beginnt
: <math>\displaystyle \mathrm{SOC}(t) \le Q_{\mathrm{max}} \cdot s_{\mathrm{ein}} \; \to \; \text{Nachladung beginnt}</math> &nbsp;&nbsp;(7)
Füllstand ≥ Q_max · Abschaltschwelle   →  Nachladung endet
:: <math>\mathrm{SOC}(t)</math> – Füllstand des Speichers [kWh]
:: <math>Q_{\mathrm{max}}</math> – nutzbare Kapazität [kWh]
:: <math>s_{\mathrm{ein}}</math> – Einschaltschwelle der Speicherregelung [–]
 
: <math>\displaystyle \mathrm{SOC}(t) \ge Q_{\mathrm{max}} \cdot s_{\mathrm{aus}} \; \to \; \text{Nachladung endet}</math> &nbsp;&nbsp;(8)
:: <math>\mathrm{SOC}(t)</math> – Füllstand des Speichers [kWh]
:: <math>Q_{\mathrm{max}}</math> – nutzbare Kapazität [kWh]
:: <math>s_{\mathrm{aus}}</math> – Abschaltschwelle [–]


Solange nachgeladen wird, deckt der Speicher '''keinen''' Bedarf vorab (Phase A der Stundenschleife).
Solange nachgeladen wird, deckt der Speicher '''keinen''' Bedarf vorab (Phase A der Stundenschleife).
Die '''Nachentladung''' (Phase E) greift davon unabhängig — genau wie im Bestand die Entladung vor
Die '''Nachentladung''' (Phase E) greift davon unabhängig — genau wie im Bestand die Entladung vor
Heizstab und nachfolgendem Erzeuger.
Heizstab und nachfolgendem Erzeuger.
Der Vergleich (8) trägt einen '''Zahlenrand''': Er gilt bereits als erfüllt, wenn der Füllstand die
Abschaltschwelle bis auf 10<sup>−9</sup> kWh zuzüglich 10<sup>−12</sup> ihres eigenen Betrages
erreicht hat. Das ist keine Fachtoleranz, sondern Rechentechnik — die Nachladung füllt den Speicher
auf '''genau''' diese Schwelle, und in Gleitkommaarithmetik trifft eine Summe ihren Zielwert nicht
immer im letzten Bit. Ohne den Rand hinge es an dieser letzten Stelle, ob die Nachladung endet; da
die Regelung bistabil ist, trüge sie den Fehltritt über Stunden weiter.
'''Zwei Marken tragen ihn, und beide aus demselben Grund''': die Abschaltschwelle (8), auf die die
Ladung den Füllstand hinauffährt, und der '''Mindestfüllstand''' <math>s_{\mathrm{min}}</math>
(Schritt 3), auf den die Entladung ihn herunterfährt. Auf beide wird der Füllstand von einer
Rechnung '''angesteuert''' — deshalb sitzt er dort auf der Kante. Die '''Einschaltschwelle''' (7)
braucht den Rand aus demselben Grund '''nicht''': Auf sie steuert keine Rechnung zu, der Füllstand
sinkt durch Entnahme und Bereitschaftsverluste auf einen beliebigen Wert.


=== Schritt 5 — Bereitschaftsverluste, einmal je Stunde ===
=== Schritt 5 — Bereitschaftsverluste, einmal je Stunde ===
Zeile 121: Zeile 318:
Am Stundenende, nach Bedarfsdeckung, Ladung und Nachentladung:
Am Stundenende, nach Bedarfsdeckung, Ladung und Nachentladung:


Anteil  = Füllstand / Q_max , auf 1 begrenzt
: <math>\displaystyle f(t) = \min\left( \frac{\mathrm{SOC}(t)}{Q_{\mathrm{max}}} , 1 \right)</math> &nbsp;&nbsp;(9)
Verlust = Verlust je Stunde · Anteil , höchstens der Füllstand
:: <math>f(t)</math> – Füllstandsanteil [–]
Füllstand = Füllstand − Verlust
:: <math>\mathrm{SOC}(t)</math> – Füllstand [kWh]
:: <math>Q_{\mathrm{max}}</math> – nutzbare Kapazität [kWh]
 
: <math>\displaystyle Q_{\mathrm{V}}(t) = \min\left( q_{\mathrm{V}} \cdot f(t) , \mathrm{SOC}(t) \right)</math> &nbsp;&nbsp;(10)
:: <math>Q_{\mathrm{V}}(t)</math> – Bereitschaftsverlust dieser Stunde [kWh]
:: <math>q_{\mathrm{V}}</math> – Bereitschaftsverlust einer Stunde bei vollem Speicher aus (2) [kWh]
:: <math>f(t)</math> – Füllstandsanteil aus (9) [–]
:: <math>\mathrm{SOC}(t)</math> – Füllstand; mehr als er hergibt, kann nicht verloren gehen [kWh]
 
: <math>\displaystyle \mathrm{SOC}'(t) = \mathrm{SOC}(t) - Q_{\mathrm{V}}(t)</math> &nbsp;&nbsp;(11)
:: <math>\mathrm{SOC}'(t)</math> – Füllstand nach Abzug des Bereitschaftsverlusts [kWh]
:: <math>\mathrm{SOC}(t)</math> – Füllstand vor dem Abzug [kWh]
:: <math>Q_{\mathrm{V}}(t)</math> – Bereitschaftsverlust dieser Stunde aus (10) [kWh]


Der Verlust ist also füllstandsanteilig: Ein halb voller Speicher verliert halb so viel wie ein
Der Verlust ist also füllstandsanteilig: Ein halb voller Speicher verliert halb so viel wie ein
Zeile 131: Zeile 340:
=== Schritt 6 — Schichtung (nur bei mehr als einer Schicht) ===
=== Schritt 6 — Schichtung (nur bei mehr als einer Schicht) ===


Der Speicherinhalt wird auf '''N''' gleich große Zonen verteilt, Schicht 0 oben. Der Füllstand bleibt
Der Speicherinhalt wird auf <math>N</math> gleich große Zonen verteilt, Schicht 0 oben. Der
die führende Größe; die Schichtebene verteilt ihn nur:
Füllstand bleibt die führende Größe; die Schichtebene verteilt ihn nur:


Σ Schichtenergie  = min(Füllstand ; Q_max)
: <math>\displaystyle \sum_{i} q_{i}(t) = \min\left( \mathrm{SOC}(t) , Q_{\mathrm{max}} \right) \quad \mathrm{mit} \quad 0 \le q_{i}(t) \le \frac{Q_{\mathrm{max}}}{N}</math> &nbsp;&nbsp;(12)
Schichtenergie ∈ [0 ; Q_max/N]     entspricht    T ∈ [Rücklauf ; Vorlauf]
:: <math>q_{i}(t)</math> – Energie der Schicht <math>i</math> [kWh]
T[i] = Rücklauf + Schichtenergie[i] / (Q_max/N) · (Vorlauf − Rücklauf)
:: <math>\mathrm{SOC}(t)</math> – Füllstand des Speichers [kWh]
:: <math>Q_{\mathrm{max}}</math> – nutzbare Kapazität [kWh]
:: <math>N</math> – Schichtenzahl [–]
 
: <math>\displaystyle \vartheta_{i}(t) = \vartheta_{\mathrm{RL}} + \frac{q_{i}(t)}{Q_{\mathrm{max}} / N} \cdot \left( \vartheta_{\mathrm{VL}} - \vartheta_{\mathrm{RL}} \right)</math> &nbsp;&nbsp;(13)
:: <math>\vartheta_{i}(t)</math> – Temperatur der Schicht <math>i</math> [°C]
:: <math>\vartheta_{\mathrm{RL}}</math> – Rücklauftemperatur; sie gilt für die leere Zone [°C]
:: <math>q_{i}(t)</math> – Energie der Schicht [kWh]
:: <math>Q_{\mathrm{max}} / N</math> – Kapazität einer Zone [kWh]
:: <math>\vartheta_{\mathrm{VL}}</math> – Vorlauftemperatur; sie gilt für die volle Zone [°C]
 
Eine volle Zone hat damit Vorlauf-, eine leere Rücklauftemperatur. Ohne gepflegte Höhe entsteht der
Ersatzbehälter aus dem Volumen über <math>\mathrm{HD} = 2{,}5</math> — aus
<math>V = \frac{\pi}{4} \cdot d^{2} \cdot H</math> und <math>H = \mathrm{HD} \cdot d</math> folgt:
 
: <math>\displaystyle d = \left( \frac{4 \cdot V / 1\,000}{\pi \cdot \mathrm{HD}} \right)^{1/3} \; ; \quad H = \mathrm{HD} \cdot d</math> &nbsp;&nbsp;(14)
:: <math>d</math> – Durchmesser des Ersatzbehälters [m]
:: <math>V</math> – Gesamtvolumen des Behälters [l]; <math>1\,000</math> rechnet es in m³ um
:: <math>\mathrm{HD}</math> – Höhen-Durchmesser-Verhältnis [–], Konstante 2,5
:: <math>H</math> – Behälterhöhe [m]
 
: <math>\displaystyle A_{q} = \frac{V / 1\,000}{H}</math> &nbsp;&nbsp;(15)
:: <math>A_{q}</math> – Querschnittsfläche des Behälters [m²]
:: <math>V</math> – Gesamtvolumen [l]; <math>1\,000</math> rechnet es in m³ um
:: <math>H</math> – Behälterhöhe [m]
 
: <math>\displaystyle k = \frac{\lambda_{\mathrm{eff}} \cdot A_{q} \cdot N}{H \cdot 1\,000}</math> &nbsp;&nbsp;(16)
:: <math>k</math> – Wärmeleitwert eines Schichtpaars [kWh/K]
:: <math>\lambda_{\mathrm{eff}}</math> – effektive Wärmeleitfähigkeit zwischen den Zonen [W/(m·K)]
:: <math>A_{q}</math> – Querschnittsfläche aus (15) [m²]
:: <math>N</math> – Schichtenzahl [–]
:: <math>H</math> – Behälterhöhe [m]; <math>H / N</math> ist der Abstand zweier Zonenmitten
:: <math>1\,000</math> – Umrechnung von W in kW [W/kW]
 
: <math>\displaystyle C_{\mathrm{Sch}} = \frac{Q_{\mathrm{max}} / N}{\vartheta_{\mathrm{VL}} - \vartheta_{\mathrm{RL}}}</math> &nbsp;&nbsp;(17)
:: <math>C_{\mathrm{Sch}}</math> – Wärmekapazität einer Schicht [kWh/K]
:: <math>Q_{\mathrm{max}} / N</math> – Kapazität einer Zone [kWh]
:: <math>\vartheta_{\mathrm{VL}}</math>, <math>\vartheta_{\mathrm{RL}}</math> – Vorlauf- und Rücklauftemperatur [°C]
 
: <math>\displaystyle q_{i,i+1}(t) = k \cdot \Delta\vartheta_{i}(t) \; ; \quad \left| q_{i,i+1}(t) \right| \le \kappa \cdot \left| \Delta\vartheta_{i}(t) \right| \cdot C_{\mathrm{Sch}} \; ; \quad \Delta\vartheta_{i}(t) = \vartheta_{i+1}(t) - \vartheta_{i}(t)</math> &nbsp;&nbsp;(18)
:: <math>q_{i,i+1}(t)</math> – Wärme, die im Ausgleich zwischen den Schichten <math>i</math> und <math>i+1</math> fließt [kWh]
:: <math>k</math> – Wärmeleitwert eines Schichtpaars aus (16) [kWh/K]
:: <math>\Delta\vartheta_{i}(t)</math> – Temperaturunterschied der zwei benachbarten Schichten [K]
:: <math>\kappa</math> – Kappung des Ausgleichs je Schichtpaar und Stunde [–], Konstante 0,25
:: <math>C_{\mathrm{Sch}}</math> – Wärmekapazität einer Schicht aus (17) [kWh/K]


Je Stunde laufen in dieser Reihenfolge: ideale '''Einschichtung''' beim Laden (die Wärme geht auf die
Je Stunde laufen in dieser Reihenfolge: ideale '''Einschichtung''' beim Laden (die Wärme geht auf die
Einspeisehöhe), ideale '''Verdrängung''' beim Entladen (an der Entnahmehöhe des Kanals), dann der
Einspeisehöhe), ideale '''Verdrängung''' beim Entladen (an der Entnahmehöhe des Kanals), dann der
'''vertikale Ausgleich''' — Wärmeleitung zwischen benachbarten Zonen, je Schichtpaar und Stunde auf
'''vertikale Ausgleich''' (18) — Wärmeleitung zwischen benachbarten Zonen, auf
'''25&nbsp;%''' der Temperaturdifferenz gekappt, damit der Schritt stabil bleibt und die Reihenfolge
<math>\kappa = 25</math>&nbsp;% der Temperaturdifferenz gekappt, damit der Schritt stabil bleibt und
zweier Schichten nicht kippen kann —, anschließend die '''Inversionsmischung''' (wärmer unten als
die Reihenfolge zweier Schichten nicht kippen kann —, anschließend die '''Inversionsmischung'''
oben wird gemischt), danach die Verluste nach Wärmeabgabefläche und Temperaturüberhöhung, und ein
(wärmer unten als oben wird gemischt), danach die Verluste nach Wärmeabgabefläche und
zweiter Inversionsdurchgang.
Temperaturüberhöhung, und ein zweiter Inversionsdurchgang.


Vorbelegungen ohne gepflegte Werte: effektive Wärmeleitfähigkeit '''1,5&nbsp;W/(m·K)''' (sie enthält
Weitere Vorbelegungen ohne gepflegte Werte: Entnahmehöhe <math>h_{\mathrm{E}}</math> '''oben'''
die Wandleitung und ist deshalb deutlich größer als die des ruhenden Wassers), Höhen-Durchmesser-
(1,0), Mindest-Nutztemperatur <math>\vartheta_{\mathrm{min}}</math> '''gleich
Verhältnis '''2,5''', Entnahmehöhe '''oben''', Mindest-Nutztemperatur '''gleich dem Rücklauf'''.
<math>\vartheta_{\mathrm{RL}}</math>'''. Höchstens '''zehn''' Schichten.
Höchstens '''zehn''' Schichten.


Mit '''N = 1''' — der Vorbelegung — ist die Schichtebene wirkungslos: Es gibt kein Schichtpaar, also
Mit <math>N = 1</math> — der Vorbelegung — ist die Schichtebene wirkungslos: Es gibt kein
keine Wärmeleitung und keine Inversion, und die Entladefähigkeit klemmt nichts.
Schichtpaar, also weder (16) noch (18), keine Inversion, und die Entladefähigkeit klemmt nichts.


=== Schritt 7 — Vollzyklen ===
=== Schritt 7 — Vollzyklen ===


Vollzyklen = entnommene Energie / nutzbare Kapazität
: <math>\displaystyle z_{\mathrm{V}} = \frac{U_{\mathrm{a}}}{Q_{\mathrm{max}}}</math> &nbsp;&nbsp;(19)
:: <math>z_{\mathrm{V}}</math> – Vollzyklen des Jahres [–]
:: <math>U_{\mathrm{a}}</math> – Jahresumsatz: Entladung beim Quellspeicher, sonst Ladung [kWh]
:: <math>Q_{\mathrm{max}}</math> – nutzbare Kapazität [kWh]
 
Der '''Umsatz''' <math>U_{\mathrm{a}}</math> hängt von der Rolle des Speichers ab: Bei einem
'''Quellspeicher''' ist es die Jahressumme der Entladung, bei jedem anderen die der '''Ladung'''.
<math>Q_{\mathrm{max}} \le 0</math> ergibt <math>z_{\mathrm{V}} = 0</math>.


== Grenzen und Annahmen ==
== Grenzen und Annahmen ==
{{Anker|grenzen}}


* '''Ein Energiebilanzmodell, kein Strömungsmodell.''' Es gibt keine Massenströme, keine
* '''Ein Energiebilanzmodell, kein Strömungsmodell.''' Es gibt keine Massenströme, keine
   Rohrleitungen, keine Wärmeübertrager. Die Lade- und Entladeleistungsgrenzen sind die einzige
   Rohrleitungen, keine Wärmeübertrager. <math>P_{\mathrm{lad,max}}</math> und
  hydraulische Schranke, und sie sind Zahlen, keine Geometrie.
  <math>P_{\mathrm{ent,max}}</math> sind die einzige hydraulische Schranke, und sie sind Zahlen,
  keine Geometrie.
* '''Ideale Einschichtung und ideale Verdrängung.''' Ein einströmender Strahl mischt nicht auf; in
* '''Ideale Einschichtung und ideale Verdrängung.''' Ein einströmender Strahl mischt nicht auf; in
   einem realen Speicher tut er das.
   einem realen Speicher tut er das.
* '''Gleich große Zonen.''' Die Schichtdicke ist nicht wählbar.
* '''Gleich große Zonen.''' Die Schichtdicke <math>Q_{\mathrm{max}} / N</math> ist nicht wählbar.
* '''Der Bereitschaftsverlust ist ein Tageswert''', keine Funktion von Umgebungstemperatur,
* '''Der Bereitschaftsverlust ist ein Tageswert''', keine Funktion von Umgebungstemperatur,
   Aufstellort oder Dämmstärke.
   Aufstellort oder Dämmstärke — (2) teilt ihn schlicht durch 24.
* '''Ein Quellspeicher ist statisch''', solange er nicht zugleich Senke eines Erzeugers ist: Erst
* '''Ein Quellspeicher ist statisch''', solange er nicht zugleich Senke eines Erzeugers ist: Erst
   ein geteilter Puffer bekommt eine stündliche Temperatur; ein eigenständiger Quellspeicher bleibt
   ein geteilter Puffer bekommt eine stündliche Temperatur; ein eigenständiger Quellspeicher bleibt
   bei seiner festen Temperatur.
   bei seiner festen Temperatur.
* '''Der Durchfluss wird nicht in Schichten geführt.''' Er ist hydraulisch durchströmende Wärme und
* '''Der Durchfluss wird nicht in Schichten geführt.''' Er ist hydraulisch durchströmende Wärme und
   war nie Speicherinhalt; eine bei Vorlauftemperatur gekappte Temperatursumme könnte ihn gar nicht
   war nie Speicherinhalt; eine bei Vorlauftemperatur gekappte Temperatursumme (12) könnte ihn gar
   darstellen.
   nicht darstellen.
* '''Der Katalog führt nur sechs Gerätewerte.''' Vor- und Rücklauf, Schwellen, Schichten,
* '''Der Katalog führt nur sechs Gerätewerte.''' Vor- und Rücklauf, Schwellen, Schichten,
   Entnahmehöhen und Leistungsgrenzen entstehen erst in der Projektkopie und werden im
   Entnahmehöhen und Leistungsgrenzen entstehen erst in der Projektkopie und werden im
Zeile 180: Zeile 441:


== Ergebnisse und wo sie stehen ==
== Ergebnisse und wo sie stehen ==
{{Anker|ergebnisse}}


* '''Simulationsergebnis, Reiter „Übersicht"''' — je Speicher Ladung, Entladung, Verluste und
* '''Simulationsergebnis, Reiter „Übersicht"''' — je Speicher Ladung, Entladung, Verluste und
   Vollzyklen; dazu die Ganglinie des Füllstands.
   Vollzyklen <math>z_{\mathrm{V}}</math>; dazu die Ganglinie des Füllstands
  <math>\mathrm{SOC}(t)</math>.
* '''Simulationsergebnis, Reiter „Wärmegang"''' — Speicherladung und Speicherentladung im Stapel
* '''Simulationsergebnis, Reiter „Wärmegang"''' — Speicherladung und Speicherentladung im Stapel
   der Erzeuger; die Entladung ist dabei den Erzeugern zugerechnet, die geladen haben.
   der Erzeuger; die Entladung ist dabei den Erzeugern zugerechnet, die geladen haben.
* '''Simulationsergebnis, Temperaturverlauf''' — je geschichtetem Speicher die Zonentemperaturen
* '''Simulationsergebnis, Temperaturverlauf''' — je geschichtetem Speicher die Zonentemperaturen
   über das Jahr.
   <math>\vartheta_{i}(t)</math> über das Jahr.
* '''Simulationskonfiguration''' — die Speicherkachel zeigt Kurzbilanz und Schwellenband, das
* '''Simulationskonfiguration''' — die Speicherkachel zeigt Kurzbilanz und Schwellenband, das
   Hydraulikschema die Kanten zwischen Erzeugern, Speichern und Kanälen samt Ladepriorität.
   Hydraulikschema die Kanten zwischen Erzeugern, Speichern und Kanälen samt Ladepriorität.
* '''Simulationsprotokoll''' — Rückfall-ΔT, wirkungslose Quellbezüge, Speicher ohne Lader.
* '''Simulationsprotokoll''' — Rückfall <math>\Delta T_{0}</math>, wirkungslose Quellbezüge,
  Speicher ohne Lader.


== Bezüge ==
== Bezüge ==
{{Anker|bezuege}}


* [[Programm Dokumentation/Pufferspeicher|Pufferspeicher]] — Bedienung von Katalog und Projektdialog
* [[Programm Dokumentation/Pufferspeicher|Pufferspeicher]] — Bedienung von Katalog und Projektdialog

Aktuelle Version vom 13. September 2026, 12:42 Uhr


Was berechnet wird

Ein thermischer Pufferspeicher entkoppelt Erzeugung und Bedarf. Der Lauf führt für jede Stunde seinen Füllstand, die Ladung, die Entladung, die Bereitschaftsverluste und — wenn mehr als eine Schicht gepflegt ist — die Temperaturen seiner Zonen. Ergebnisgrößen sind die Jahressummen dieser vier Energieströme, die Vollzyklen und die Ganglinien von Füllstand und Temperaturen.

Der Speicher rechnet nicht für sich: Er ist die Senke der Erzeuger und die Quelle der Bedarfsdeckung. Wer wann in ihn lädt, entscheidet die Ladeordnung; wer wann aus ihm entnimmt, die Entladereihenfolge seines Kanals.

Eingangsgrößen

Größe Einheit Herkunft im Programm
Gesamtvolumen l Pufferspeicherkatalog, Feld „Gesamtvolumen"
Bereitschaftsverluste kWh/24 h Pufferspeicherkatalog, Feld „Bereitschaftsverluste"
Vorlauf, Rücklauf °C Dialog „Pufferspeicher (Projekt)", Abschnitt „Eigenschaften"
Nutzung (Heizung / Brauchwasser / Prozess, einzeln oder kombiniert) derselbe Abschnitt, Klassen-Set
Einschaltschwelle, Abschaltschwelle Anteil 0…1 derselbe Abschnitt, Abschnitt „Schwellen"
Abschaltschwelle für nachrangige Anlagen Anteil 0…1 derselbe Abschnitt — die Solar-Reservezone
Mindestfüllstand Anteil 0…1 derselbe Abschnitt
Schichtenzahl (1…10), Behälterhöhe, effektive Wärmeleitfähigkeit —, m, W/(m·K) Abschnitt „Schichtung"
Entnahmehöhe je Kanal Anteil 0…1 (1 = ganz oben) Abschnitt „Schichtung"
Mindest-Nutztemperatur Brauchwasser °C Abschnitt „Schichtung"
Ladeleistungsgrenze, Entladeleistungsgrenze kWh je Stunde, 0 = unbegrenzt Abschnitt „Eigenschaften"
Entladepriorität 1…99 oder Automatik Abschnitt „Ladereihenfolge"
Ladepriorität je ladender Anlage 1…99 Simulationskonfiguration, Karte des Erzeugers

Formelzeichen und Parameter

Die Schreibweise ist die der ganzen Rubrik: t ist die Stunde des Jahres (1…8 760), Q eine Wärmemenge, ϑ eine Temperatur in Grad Celsius, λ eine Wärmeleitfähigkeit. Der Füllstand heißt hier SOC(t) — dasselbe Zeichen wie beim Stromspeicher, nur in kWh statt in Prozent. Der Schichtindex i läuft von 0 (oben) bis N1 (unten). Ein Strich am Symbol (SOC(t)) bezeichnet den Wert nach dem jeweiligen Schritt.

Parameter

Eingaben, Katalogwerte, Vorgaben und Konstanten. Sie ändern sich innerhalb eines Laufs nicht.

Symbol Bedeutung Einheit Herkunft
V Gesamtvolumen des Behälters l Pufferspeicherkatalog, Feld „Gesamtvolumen"
qV,24 Bereitschaftsverluste eines Tages kWh/24 h Pufferspeicherkatalog, Feld „Bereitschaftsverluste"
ϑVL, ϑRL Vorlauf- und Rücklauftemperatur °C Dialog „Pufferspeicher (Projekt)", Abschnitt „Eigenschaften"
cW Wärmekapazität des Wassers je Liter und Kelvin Wh/(l·K) Konstante: 1,16
ΔT0 Spreizung, wenn kein vollständiges Temperaturpaar gepflegt ist K Vorgabe: 10 — beim BHKW-Pendelspeicher 20
sein Einschaltschwelle der Speicherregelung — (0…1) Abschnitt „Schwellen"
saus Abschaltschwelle — (0…1) derselbe Abschnitt
snach Abschaltschwelle für nachrangige Anlagen — die Solar-Reservezone — (0…1) derselbe Abschnitt
smin Mindestfüllstand (Notreserve) — (0…1) derselbe Abschnitt
N Schichtenzahl — (1…10) Abschnitt „Schichtung"; Vorbelegung: 1 — dann ist die Schichtebene wirkungslos
H Behälterhöhe m Abschnitt „Schichtung"; ohne Wert aus (14)
λeff effektive Wärmeleitfähigkeit zwischen den Zonen W/(m·K) Abschnitt „Schichtung"; Vorgabe: 1,5 — sie enthält die Wandleitung
HD Höhen-Durchmesser-Verhältnis des Ersatzbehälters Konstante: 2,5
κ Kappung des vertikalen Ausgleichs je Schichtpaar und Stunde Konstante: 0,25 (25 %)
hE Entnahmehöhe eines Kanals — (0…1) Abschnitt „Schichtung"; Vorbelegung: 1 (ganz oben)
ϑmin Mindest-Nutztemperatur eines Kanals °C Abschnitt „Schichtung"; Vorbelegung: ϑRL
Plad,max, Pent,max Lade- und Entladeleistungsgrenze als Budget der Stunde kWh je Stunde Abschnitt „Eigenschaften"; 0 = unbegrenzt
NSch,max größte Schichtenzahl Konstante: 10

Variablen

Größen, die der Lauf je Stunde oder je Speicher bildet.

Symbol Bedeutung Einheit berechnet in
t Stunde des Jahres, 1…8 760 Laufindex der Stundenschleife
i Schichtindex, 0 = oben 0…N1
Qmax nutzbare Kapazität des Speichers kWh (1)
qV Bereitschaftsverlust einer Stunde bei vollem Speicher kWh (2)
SOC(t) Füllstand am Ende der Stunde kWh fortgeschrieben über (11)
o(t) gültige Ladeobergrenze der ladenden Anlage — (0…1) Schritt 2, Obergrenzentabelle
R(t) bereits reservierte Menge anderer Lader kWh Ladeordnung (Eingang)
L(t) Ladefähigkeit kWh (3)
QDl(t) Durchlass — was im selben Zeitschritt wieder entnommen wird kWh Kaskadenschleife (Eingang)
A(t) in dieser Stunde aufnehmbare Menge kWh (4)
Qoffen(t) offener Kanalbedarf kWh Eingang aus der Kaskade
Qanf(t) angeforderte Entnahme kWh Eingang aus der Kaskade
B(t) Bilanzraum eines ladenden Erzeugers kWh (5)
Qent(t) Entnahme der Stunde kWh (6)
f(t) Füllstandsanteil — (0…1) (9)
QV(t) Bereitschaftsverlust dieser Stunde kWh (10)
qi(t) Energie der Schicht i kWh (12)
ϑi(t) Temperatur der Schicht i °C (13)
d Durchmesser des Ersatzbehälters m (14)
Aq Querschnittsfläche des Behälters (15)
k Wärmeleitwert eines Schichtpaars kWh/K (16)
CSch Wärmekapazität einer Schicht kWh/K (17)
Δϑi(t) Temperaturunterschied zweier benachbarter Schichten K (18)
qi,i+1(t) Wärme, die im Ausgleich zwischen zwei Schichten fließt kWh (18)
Ua Jahresumsatz — Entladung beim Quellspeicher, sonst Ladung kWh Jahressumme
zV Vollzyklen des Jahres (19)

Rechenweg

Gerechnet wird im festen Jahresraster von 8 760 Stunden; t ist in allen Gleichungen dieser Seite die laufende Stunde des Jahres und i der Schichtindex — beide werden in den Legenden nicht wiederholt.

Schritt 1 — Nutzbare Kapazität

Qmax=VcW(ϑVLϑRL)1000   (1)
Qmax – nutzbare Kapazität des Speichers [kWh]
V – Gesamtvolumen des Behälters [l]
cW – Wärmekapazität des Wassers [Wh/(l·K)], Konstante 1,16
ϑVL, ϑRL – Vorlauf- und Rücklauftemperatur [°C]
1000 – Umrechnung von Wh in kWh [Wh/kWh]

Fehlt ein vollständiges Temperaturpaar, tritt ΔT0=10 K an die Stelle von ϑVLϑRL — beim BHKW-Pendelspeicher 20 K, weil dessen Altformel diese Spreizung fest verdrahtet hatte und ein Rückfall auf 10 K seine Kapazität ohne fachlichen Grund halbieren würde. Der Rückfall wird am Speicher vermerkt und lässt sich protokollieren.

qV=qV,2424   (2)
qV – Bereitschaftsverlust einer Stunde bei vollem Speicher [kWh]
qV,24 – Bereitschaftsverluste eines Tages aus dem Katalog [kWh/24 h]
24 – Stunden eines Tages [h]

Schritt 2 — Laden

Ein Erzeuger lädt bis zu seiner Obergrenze o(t), und die hängt davon ab, ob er an diesem Speicher der vorrangige Lader ist:

Fall Obergrenze o(t)
die Senkenzeile führt eine eigene Ladegrenze diese Ladegrenze
die Anlage ist die vorrangige saus
sonst snach

Ein Wert o(t)0 gilt als „nicht gesetzt" und fällt auf saus zurück.

L(t)=max(0,Qmaxo(t)SOC(t)R(t))   (3)
L(t) – Ladefähigkeit des Speichers in dieser Stunde [kWh]
Qmax – nutzbare Kapazität [kWh]
o(t) – gültige Ladeobergrenze der ladenden Anlage [–]
SOC(t) – Füllstand [kWh]
R(t) – bereits reservierte Menge anderer Lader [kWh]

Die dritte Zeile ist die Solar-Reservezone: Wo eine Reserve gepflegt ist, laden nachrangige Erzeuger — üblicherweise der Heizkessel — nur bis dorthin, und der obere Teil bleibt für die Solarthermie frei. In Stunden mit PV-Überschuss kann eine andere Anlage vorrangig sein; dann gilt die Reservezone für sie, denn Anzeige und Rechnung lösen o(t) mit derselben Funktion und der jeweils gültigen Priorität auf.

Der Speicher als hydraulische Weiche. Er drosselt die Anlage nicht auf seinen freien Raum: Er wird geladen, während die Last aus ihm entnimmt. Die Aufnahme einer Stunde darf deshalb um genau die Menge über die freie Kapazität hinausgehen, die im selben Zeitschritt wieder entnommen wird (Durchlass):

A(t)=QmaxSOC(t)+QDl(t)   (4)
A(t) – in dieser Stunde aufnehmbare Menge [kWh]
Qmax – nutzbare Kapazität [kWh]
SOC(t) – Füllstand zu Beginn [kWh]
QDl(t) – Durchlass: was im selben Zeitschritt wieder entnommen wird [kWh]
B(t)=L(t)+min(Qoffen(t),Qent(t))   (5)
B(t) – Bilanzraum eines ladenden Erzeugers [kWh]
L(t) – Ladefähigkeit aus (3) [kWh]
Qoffen(t) – offener Kanalbedarf [kWh]
Qent(t) – Entnahme der Stunde [kWh]

Der Füllstand liegt dann vorübergehend über Qmax; die Nachentladung zieht ihn im selben Zeitschritt wieder herunter. Buchhalterisch wird die Aufnahme in Umsatz (bis Qmax) und Durchfluss (alles darüber) zerlegt — nur der Umsatz ist Speicherinhalt.

Eine gepflegte Ladeleistungsgrenze Plad,max wirkt als Budget der Stunde, nicht je Ladevorgang: Ein Speicher wird in derselben Stunde von mehreren Erzeugern angefahren, und je Aufruf gewährt bekäme er die Grenze mehrfach.

Schritt 3 — Entladen

Qent(t)=min(Qanf(t),SOC(t),Pent,max)   (6)
Qent(t) – Entnahme der Stunde [kWh]
Qanf(t) – angeforderte Entnahme [kWh]
SOC(t) – Füllstand [kWh]
Pent,max – Restbudget der Stunde aus der Entladeleistungsgrenze [kWh je Stunde]; 0 = unbegrenzt, dann entfällt dieser Teil

Das Budget der Stunde ist Pent,max; bei Pent,max=0 gibt es keine Grenze, und der dritte Teil von (6) entfällt. Die Entnahme wird ebenfalls in Durchfluss und Umsatz zerlegt; der Durchfluss verlässt den Speicher zuerst. Führt ein Kanal eine Mindest-Nutztemperatur ϑmin und ist der Speicher geschichtet, zählt nur, was die Schichten mit ϑi(t)ϑmin unterhalb der Entnahmehöhe hE des Kanals hergeben. Beim Kombispeicher ist das der Grund, warum die Heizung die Bereitschaftszone des Brauchwassers oben nicht antastet.

Der Mindestfüllstand smin (Notreserve) wirkt an genau einer Stelle: Er klemmt die angeforderte Entnahme Qanf(t) auf den Vorrat oberhalb der Marke Qmaxsmin. Er gilt nur an Speichern, die ein BHKW lädt — eine Maschine mit Anlaufverhalten braucht einen Vorrat, aus dem die nächste Bedarfsspitze bis zum Anlaufen gedeckt wird; Wärmepumpe, Kessel und Solarthermie entladen unverändert bis 0. Ist die Marke erreicht, bleibt der Bedarf offen und geht an die nächste Kaskadenstufe, während der Speicher in den Nachladebetrieb geht. Der Durchfluss derselben Stunde bleibt unberührt — die Reserve begrenzt den Vorrat, nicht die hydraulische Weiche.

Auch dieser Vergleich trägt den Zahlenrand der Abschaltschwelle (siehe Schritt 4), nur spiegelbildlich: Die Marke wird von oben erreicht, und als erreicht gilt sie schon, wenn der Füllstand höchstens 10−9 kWh zuzüglich 10−12 seines eigenen Betrages darüber steht. Der Grund ist derselbe — die Entladung fährt den Füllstand auf genau diese Marke, und in Gleitkommaarithmetik trifft eine Differenz ihren Zielwert nicht immer im letzten Bit.

Die Entladereihenfolge läuft je Kanal über die Entladepriorität; ohne manuelle Angabe gilt die Automatik: die beste (kleinste) Ladepriorität der Anlagen, die diesen Speicher laden.

Schritt 4 — Hysterese der Speicherregelung

SOC(t)QmaxseinNachladung beginnt   (7)
SOC(t) – Füllstand des Speichers [kWh]
Qmax – nutzbare Kapazität [kWh]
sein – Einschaltschwelle der Speicherregelung [–]
SOC(t)QmaxsausNachladung endet   (8)
SOC(t) – Füllstand des Speichers [kWh]
Qmax – nutzbare Kapazität [kWh]
saus – Abschaltschwelle [–]

Solange nachgeladen wird, deckt der Speicher keinen Bedarf vorab (Phase A der Stundenschleife). Die Nachentladung (Phase E) greift davon unabhängig — genau wie im Bestand die Entladung vor Heizstab und nachfolgendem Erzeuger.

Der Vergleich (8) trägt einen Zahlenrand: Er gilt bereits als erfüllt, wenn der Füllstand die Abschaltschwelle bis auf 10−9 kWh zuzüglich 10−12 ihres eigenen Betrages erreicht hat. Das ist keine Fachtoleranz, sondern Rechentechnik — die Nachladung füllt den Speicher auf genau diese Schwelle, und in Gleitkommaarithmetik trifft eine Summe ihren Zielwert nicht immer im letzten Bit. Ohne den Rand hinge es an dieser letzten Stelle, ob die Nachladung endet; da die Regelung bistabil ist, trüge sie den Fehltritt über Stunden weiter.

Zwei Marken tragen ihn, und beide aus demselben Grund: die Abschaltschwelle (8), auf die die Ladung den Füllstand hinauffährt, und der Mindestfüllstand smin (Schritt 3), auf den die Entladung ihn herunterfährt. Auf beide wird der Füllstand von einer Rechnung angesteuert — deshalb sitzt er dort auf der Kante. Die Einschaltschwelle (7) braucht den Rand aus demselben Grund nicht: Auf sie steuert keine Rechnung zu, der Füllstand sinkt durch Entnahme und Bereitschaftsverluste auf einen beliebigen Wert.

Schritt 5 — Bereitschaftsverluste, einmal je Stunde

Am Stundenende, nach Bedarfsdeckung, Ladung und Nachentladung:

f(t)=min(SOC(t)Qmax,1)   (9)
f(t) – Füllstandsanteil [–]
SOC(t) – Füllstand [kWh]
Qmax – nutzbare Kapazität [kWh]
QV(t)=min(qVf(t),SOC(t))   (10)
QV(t) – Bereitschaftsverlust dieser Stunde [kWh]
qV – Bereitschaftsverlust einer Stunde bei vollem Speicher aus (2) [kWh]
f(t) – Füllstandsanteil aus (9) [–]
SOC(t) – Füllstand; mehr als er hergibt, kann nicht verloren gehen [kWh]
SOC(t)=SOC(t)QV(t)   (11)
SOC(t) – Füllstand nach Abzug des Bereitschaftsverlusts [kWh]
SOC(t) – Füllstand vor dem Abzug [kWh]
QV(t) – Bereitschaftsverlust dieser Stunde aus (10) [kWh]

Der Verlust ist also füllstandsanteilig: Ein halb voller Speicher verliert halb so viel wie ein voller. Steht ausnahmsweise noch Durchfluss im Speicher, trägt dieser den Verlust zuerst, damit die getrennte Bilanz aufgeht.

Schritt 6 — Schichtung (nur bei mehr als einer Schicht)

Der Speicherinhalt wird auf N gleich große Zonen verteilt, Schicht 0 oben. Der Füllstand bleibt die führende Größe; die Schichtebene verteilt ihn nur:

iqi(t)=min(SOC(t),Qmax)mit0qi(t)QmaxN   (12)
qi(t) – Energie der Schicht i [kWh]
SOC(t) – Füllstand des Speichers [kWh]
Qmax – nutzbare Kapazität [kWh]
N – Schichtenzahl [–]
ϑi(t)=ϑRL+qi(t)Qmax/N(ϑVLϑRL)   (13)
ϑi(t) – Temperatur der Schicht i [°C]
ϑRL – Rücklauftemperatur; sie gilt für die leere Zone [°C]
qi(t) – Energie der Schicht [kWh]
Qmax/N – Kapazität einer Zone [kWh]
ϑVL – Vorlauftemperatur; sie gilt für die volle Zone [°C]

Eine volle Zone hat damit Vorlauf-, eine leere Rücklauftemperatur. Ohne gepflegte Höhe entsteht der Ersatzbehälter aus dem Volumen über HD=2,5 — aus V=π4d2H und H=HDd folgt:

d=(4V/1000πHD)1/3;H=HDd   (14)
d – Durchmesser des Ersatzbehälters [m]
V – Gesamtvolumen des Behälters [l]; 1000 rechnet es in m³ um
HD – Höhen-Durchmesser-Verhältnis [–], Konstante 2,5
H – Behälterhöhe [m]
Aq=V/1000H   (15)
Aq – Querschnittsfläche des Behälters [m²]
V – Gesamtvolumen [l]; 1000 rechnet es in m³ um
H – Behälterhöhe [m]
k=λeffAqNH1000   (16)
k – Wärmeleitwert eines Schichtpaars [kWh/K]
λeff – effektive Wärmeleitfähigkeit zwischen den Zonen [W/(m·K)]
Aq – Querschnittsfläche aus (15) [m²]
N – Schichtenzahl [–]
H – Behälterhöhe [m]; H/N ist der Abstand zweier Zonenmitten
1000 – Umrechnung von W in kW [W/kW]
CSch=Qmax/NϑVLϑRL   (17)
CSch – Wärmekapazität einer Schicht [kWh/K]
Qmax/N – Kapazität einer Zone [kWh]
ϑVL, ϑRL – Vorlauf- und Rücklauftemperatur [°C]
qi,i+1(t)=kΔϑi(t);|qi,i+1(t)|κ|Δϑi(t)|CSch;Δϑi(t)=ϑi+1(t)ϑi(t)   (18)
qi,i+1(t) – Wärme, die im Ausgleich zwischen den Schichten i und i+1 fließt [kWh]
k – Wärmeleitwert eines Schichtpaars aus (16) [kWh/K]
Δϑi(t) – Temperaturunterschied der zwei benachbarten Schichten [K]
κ – Kappung des Ausgleichs je Schichtpaar und Stunde [–], Konstante 0,25
CSch – Wärmekapazität einer Schicht aus (17) [kWh/K]

Je Stunde laufen in dieser Reihenfolge: ideale Einschichtung beim Laden (die Wärme geht auf die Einspeisehöhe), ideale Verdrängung beim Entladen (an der Entnahmehöhe des Kanals), dann der vertikale Ausgleich (18) — Wärmeleitung zwischen benachbarten Zonen, auf κ=25 % der Temperaturdifferenz gekappt, damit der Schritt stabil bleibt und die Reihenfolge zweier Schichten nicht kippen kann —, anschließend die Inversionsmischung (wärmer unten als oben wird gemischt), danach die Verluste nach Wärmeabgabefläche und Temperaturüberhöhung, und ein zweiter Inversionsdurchgang.

Weitere Vorbelegungen ohne gepflegte Werte: Entnahmehöhe hE oben (1,0), Mindest-Nutztemperatur ϑmin gleich ϑRL. Höchstens zehn Schichten.

Mit N=1 — der Vorbelegung — ist die Schichtebene wirkungslos: Es gibt kein Schichtpaar, also weder (16) noch (18), keine Inversion, und die Entladefähigkeit klemmt nichts.

Schritt 7 — Vollzyklen

zV=UaQmax   (19)
zV – Vollzyklen des Jahres [–]
Ua – Jahresumsatz: Entladung beim Quellspeicher, sonst Ladung [kWh]
Qmax – nutzbare Kapazität [kWh]

Der Umsatz Ua hängt von der Rolle des Speichers ab: Bei einem Quellspeicher ist es die Jahressumme der Entladung, bei jedem anderen die der Ladung. Qmax0 ergibt zV=0.

Grenzen und Annahmen

  • Ein Energiebilanzmodell, kein Strömungsmodell. Es gibt keine Massenströme, keine
 Rohrleitungen, keine Wärmeübertrager. Plad,max und
 Pent,max sind die einzige hydraulische Schranke, und sie sind Zahlen,
 keine Geometrie.
  • Ideale Einschichtung und ideale Verdrängung. Ein einströmender Strahl mischt nicht auf; in
 einem realen Speicher tut er das.
  • Gleich große Zonen. Die Schichtdicke Qmax/N ist nicht wählbar.
  • Der Bereitschaftsverlust ist ein Tageswert, keine Funktion von Umgebungstemperatur,
 Aufstellort oder Dämmstärke — (2) teilt ihn schlicht durch 24.
  • Ein Quellspeicher ist statisch, solange er nicht zugleich Senke eines Erzeugers ist: Erst
 ein geteilter Puffer bekommt eine stündliche Temperatur; ein eigenständiger Quellspeicher bleibt
 bei seiner festen Temperatur.
  • Der Durchfluss wird nicht in Schichten geführt. Er ist hydraulisch durchströmende Wärme und
 war nie Speicherinhalt; eine bei Vorlauftemperatur gekappte Temperatursumme (12) könnte ihn gar
 nicht darstellen.
  • Der Katalog führt nur sechs Gerätewerte. Vor- und Rücklauf, Schwellen, Schichten,
 Entnahmehöhen und Leistungsgrenzen entstehen erst in der Projektkopie und werden im
 Projektdialog gepflegt.
  • Kein interner Wärmeübertrager, kein Frischwassermodul, keine Legionellenschaltung.

Ergebnisse und wo sie stehen

  • Simulationsergebnis, Reiter „Übersicht" — je Speicher Ladung, Entladung, Verluste und
 Vollzyklen zV; dazu die Ganglinie des Füllstands
 SOC(t).
  • Simulationsergebnis, Reiter „Wärmegang" — Speicherladung und Speicherentladung im Stapel
 der Erzeuger; die Entladung ist dabei den Erzeugern zugerechnet, die geladen haben.
  • Simulationsergebnis, Temperaturverlauf — je geschichtetem Speicher die Zonentemperaturen
 ϑi(t) über das Jahr.
  • Simulationskonfiguration — die Speicherkachel zeigt Kurzbilanz und Schwellenband, das
 Hydraulikschema die Kanten zwischen Erzeugern, Speichern und Kanälen samt Ladepriorität.
  • Simulationsprotokoll — Rückfall ΔT0, wirkungslose Quellbezüge,
 Speicher ohne Lader.

Bezüge