2026-06-14 22:45:48 +02:00
2026-06-14 09:13:30 +02:00
2026-06-14 09:34:02 +02:00

Auslegung Wärmerückgewinnung Milchkühlung

Kommandozeilen-Werkzeug zur Auslegung einer Wärmerückgewinnung aus der Milchkühlung: Aus der täglich zu kühlenden Milchmenge werden Wärmepumpe, PV-Anlage, Batterie und Natriumacetat-Latentspeicher dimensioniert inklusive Abhollogistik, versorgbarer Haushalte und Brennstoffkosten-Vergleich.

Alle Annahmen liegen in einer config.json, sodass sich Varianten ohne Codeänderung nachrechnen lassen.

Konzept

Milchabwärme (37→4 °C)  ──►  Wärmepumpe (Strom aus PV)  ──►  Latentspeicher (Natriumacetat, 58 °C)  ──►  Abholung per LKW

Da Natriumacetat-Trihydrat erst bei 58 °C schmilzt, die Milchabwärme aber nur bei ~37 °C anfällt, hebt eine Wärmepumpe das Temperaturniveau an. Der Speicher kann unterkühlt und damit isolierungsfrei transportiert werden.

Voraussetzungen

  • Python 3.8+
  • Keine externen Abhängigkeiten (nur Standardbibliothek)

Dateien

Datei Zweck
auslegung.py Berechnungsprogramm
config.json Sämtliche Annahmen (kopieren für Varianten)

Verwendung

# Detailreport für 1000 L Milch/Tag
python auslegung.py 1000

# Kompakte Empfehlung (gerundete Größen + vorgeschlagener Abholzyklus)
python auslegung.py 1000 --suggest-size

# Variante mit eigener Config und Ergebnis-Export als JSON
python auslegung.py 1500 --config meine_variante.json --json ergebnis.json
Argument Beschreibung
milch_l_tag (Pflicht) Milchmenge pro Tag in Litern
--config PFAD Pfad zur JSON-Konfiguration (Standard: config.json)
--json PFAD Ergebnis zusätzlich als JSON schreiben
--suggest-size Kompakte Empfehlung statt Detailreport

Was berechnet wird

  • Milchkühllast (kWh/Tag) aus Menge und Temperaturhub
  • Wärmepumpe: Kälte-, Heiz- und elektrische Leistung, Strombedarf, in den Speicher gelieferte Wärme
  • PV-Anlage: Leistung (kWp) und Dachfläche für die Jahresbilanz des WP-Strombedarfs
  • Netzbezug: jährlicher Zukauf-Anteil durch die Wintermonate (Monatsbilanz)
  • Batterie: nutzbare und Nennkapazität für den Tag-/Nacht-Ausgleich
  • Latentspeicher: Masse, Volumen, LKW-Auslastung, Energieinhalt einer Ladung
  • Versorgte Haushalte: Warmwasser (ganzjährig) und Winterfall (Heizung + WW)
  • Brennstoffkosten: Wert der Wärme als Ersatzkosten für Gas, Heizöl, Pellets

Konfiguration (config.json)

Abschnitt Wichtigste Parameter
milch Ein-/Austrittstemperatur, Dichte, spez. Wärme
waermepumpe cop, laufzeit_h_pro_tag
pcm modus (latent_only / latent_plus_hub), Latentwärme, Dichte, c-Werte, Lade-/Entladetemperatur
abholung zyklus_tage, LKW-Nutzlast und -Volumen
pv spez. Jahresertrag, Fläche je kWp, Monatsprofil
batterie Direkt-PV-Stunden, nutzbarer Anteil, Reservefaktor
haushalt Personen, Warmwasser je Person, Winter-Heizbedarf
brennstoffe Preis (ct/kWh) und Wirkungsgrad für Gas/Öl/Pellets

Wichtigste Stellschrauben

  • pcm.modus latent_only (nur Phasenwechsel) oder latent_plus_hub (mit Überhitzung): bestimmt Energiedichte und Speichergröße.
  • abholung.zyklus_tage Abholrhythmus, steuert die Speichergröße direkt.
  • waermepumpe.cop bestimmt Strombedarf und damit PV-Größe.
  • haushalt.heizbedarf_winter_kWh_tag stark gebäudeabhängig (saniert ~40, Altbau ~100, 0 = nur Warmwasser).
  • brennstoffe Preise sind Stand Juni 2026 (DE) und jederzeit überschreibbar.

Ausgabe

Der Detailreport schreibt einen formatierten Konsolentext mit allen Blöcken. Mit --json wird das vollständige Ergebnis zusätzlich als strukturiertes JSON gespeichert (alle Zwischengrößen, im Suggest-Modus zusätzlich der vorschlag-Block).

Beispiel (gekürzt, 1000 L)

WAERMEPUMPE  (COP 2.60, Laufzeit 18 h/Tag)
  Strombedarf .................     24.0 kWh/Tag
  Waerme in den Speicher ......     62.4 kWh/Tag

PV-ANLAGE
  Leistung ....................      8.8 kWp
  Dachflaeche .................       44 m2

NETZBEZUG  (durch Wintermonate)
  Netzbezug ...................     1941 kWh/a  = 22 %

VERSORGTE HAUSHALTE  (2 Erw. + 2 Kinder)
  -> Warmwasser ganzjaehrig ...     11.1 Haushalte
  -> im Winter ................      1.0 Haushalte

LATENTSPEICHER  (Natriumacetat-Trihydrat, Modus: latent_plus_hub)
  Energieinhalt voller LKW ....     2185 kWh

WERT DER WAERME BEIM KAEUFER
  Gas        |    11.6 ct/kWh |  253 EUR/LKW |  2635 EUR/Jahr
  Pellets    |     8.0 ct/kWh |  174 EUR/LKW |  1810 EUR/Jahr

Modell-Annahmen & Vereinfachungen

  • Milch wird thermisch als Wasser gerechnet.
  • Der zurückkehrende Speicherbehälter wird als „warm" (nahe Schmelzpunkt) angenommen; sonst müsste die WP ihn zusätzlich aufheizen.
  • Der Netzbezug ist eine Monatsbilanz und setzt einen Tag-/Nacht-Ausgleich per Batterie voraus. Ohne Batterie liegt der reale Zukauf höher (~5060 %).
  • --suggest-size optimiert den Abholzyklus auf Transportauslastung, nicht auf die Verweildauer der Wärme im Speicher.
  • Die Brennstoffkosten sind der Brutto-Substitutionswert der Wärme, kein erzielbarer Verkaufspreis (Transport, Strom, Abschreibung noch nicht abgezogen).

Mögliche Erweiterungen

  • Anbieterseite: Transportkosten, WP-Stromkosten und Speicher-Abschreibung → echte Marge bzw. Mindestverkaufspreis je kWh.
  • Monatlich aufgelöste PV-Deckung als Diagramm.
S
Description
No description provided
Readme 148 KiB
Languages
Python 96%
Batchfile 2.3%
Shell 1.7%