feat(S3): Feed-Forward-Boost bei Bezug für den Wasserkessel (5.2.0) #10

Merged
thomas merged 1 commits from feat/feed-forward-bei-bezug into main 2026-07-18 04:11:40 +02:00
Owner

Während eines Bezugs strömt kaltes Wasser in den Kessel; die PID reagiert erst auf den verzögert gemessenen Temperaturabfall (Dip von 1–3 °C mitten im Shot). Der neue Feed-Forward (Störgrößenaufschaltung) schaltet der Heizung bei Bezugsstart sofort einen einstellbaren Leistungs-Boost auf; die PID regelt nur noch den Restfehler.

Änderungen:

  • Neue Einstellung „Boost bei Bezug (% Heizleistung)“ (0–100 %, 0 % = aus) auf der /PID-Seite, EEPROM-Adresse 944
  • Optional „I-Anteil während Bezug einfrieren“ (EEPROM 945): verhindert Windup des Integral-Anteils während des Shots und damit Überschwingen nach Bezugsende; zentral in der PID-Schleife verwaltet, dadurch auch bei Software-Shots und Einstellungsänderungen mid-shot konsistent
  • Zustandslose Aufschaltung in der SSR-Fensterlogik über effectiveOutputWasserMs() — SSR-Ansteuerung und Duty-Telemetrie (dutyW, Verlaufs-Chart am Display) sehen denselben Wert, die Wirkung ist direkt im Chart kalibrierbar
  • Wirkt nur bei echten Bezügen (Hardware-/Software-Shot), nicht bei Spülen, Wartungsmodus oder AutoTune; Deckelung auf die Fenstergröße, Sensorfehler-/Übertemperatur-Logik und „Heizen oberhalb Setpoint verhindern“ behalten Vorrang
  • Bewusst kein Profilfeld: der Boost hängt an Kessel/Heizleistung der Maschine, nicht am Rezept

Kalibrierhinweis (0,45-l-Kessel, 600 W): benötigte Leistung = Flow [g/s] · 4,2 · Temperaturhub [K]; bei ca. 1,5 g/s und 73 K sind das ~460 W ≈ 75 % Boost als Startwert.

Build geprüft: arduino-cli, esp32s3 (FQBN wie IDE-Build), kompiliert fehlerfrei (72 % Flash / 22 % RAM).

🤖 Generated with Claude Code

Während eines Bezugs strömt kaltes Wasser in den Kessel; die PID reagiert erst auf den verzögert gemessenen Temperaturabfall (Dip von 1–3 °C mitten im Shot). Der neue Feed-Forward (Störgrößenaufschaltung) schaltet der Heizung bei Bezugsstart sofort einen einstellbaren Leistungs-Boost auf; die PID regelt nur noch den Restfehler. **Änderungen:** - Neue Einstellung „Boost bei Bezug (% Heizleistung)“ (0–100 %, 0 % = aus) auf der /PID-Seite, EEPROM-Adresse 944 - Optional „I-Anteil während Bezug einfrieren“ (EEPROM 945): verhindert Windup des Integral-Anteils während des Shots und damit Überschwingen nach Bezugsende; zentral in der PID-Schleife verwaltet, dadurch auch bei Software-Shots und Einstellungsänderungen mid-shot konsistent - Zustandslose Aufschaltung in der SSR-Fensterlogik über `effectiveOutputWasserMs()` — SSR-Ansteuerung und Duty-Telemetrie (`dutyW`, Verlaufs-Chart am Display) sehen denselben Wert, die Wirkung ist direkt im Chart kalibrierbar - Wirkt nur bei echten Bezügen (Hardware-/Software-Shot), nicht bei Spülen, Wartungsmodus oder AutoTune; Deckelung auf die Fenstergröße, Sensorfehler-/Übertemperatur-Logik und „Heizen oberhalb Setpoint verhindern“ behalten Vorrang - Bewusst kein Profilfeld: der Boost hängt an Kessel/Heizleistung der Maschine, nicht am Rezept **Kalibrierhinweis (0,45-l-Kessel, 600 W):** benötigte Leistung = Flow [g/s] · 4,2 · Temperaturhub [K]; bei ca. 1,5 g/s und 73 K sind das ~460 W ≈ 75 % Boost als Startwert. Build geprüft: arduino-cli, esp32s3 (FQBN wie IDE-Build), kompiliert fehlerfrei (72 % Flash / 22 % RAM). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
thomas added 1 commit 2026-07-18 04:11:30 +02:00
Während eines Bezugs strömt kaltes Wasser in den Kessel; die PID reagiert
erst auf den verzögert gemessenen Temperaturabfall. Der neue Feed-Forward
schaltet der Heizung sofort einen einstellbaren Leistungs-Boost auf
(0-100 % der Fenstergröße, 0 % = aus), die PID regelt nur den Restfehler.

- Zustandslose Aufschaltung in der SSR-Fensterlogik (effectiveOutputWasserMs),
  gedeckelt auf die Fenstergröße; Duty-Telemetrie (dutyW) zeigt den Boost mit
- Optional: I-Anteil der Wasser-PID während des Bezugs einfrieren
  (zentral in der PID-Schleife verwaltet, applyPidWasserTunings-Helper)
- Nur bei echten Bezügen (Hardware/Software-Shot), nicht bei Spülen,
  Wartungsmodus oder AutoTune; Sicherheitslogik unverändert
- Web-UI: neue Sektion „Feed-Forward bei Bezug (Wasser)“ auf /PID;
  EEPROM 944/945, bewusst kein Profilfeld (maschinenabhängig)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
thomas merged commit 5a1e8d4b50 into main 2026-07-18 04:11:40 +02:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: thomas/Dual-PID#10