Readme dazu
This commit is contained in:
@@ -0,0 +1,120 @@
|
|||||||
|
# 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
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 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 (~50–60 %).
|
||||||
|
- `--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.
|
||||||
Reference in New Issue
Block a user