Make grain_mass/water_mass per-step and re-derive plant params on change

grain_mass and water_mass now live on each step (defaulted from
default.step) instead of being fixed for the whole brew, since both
change over a mash (malt going in, water boiling off).
Sud.derive_plant_params() takes them as arguments so it can be
recomputed per step; the demo re-applies the resulting M/C to both the
real plant and the controller's Smith-predictor model on every step
change via the new Pot.set_thermal_params()/
TempController.set_model_params().

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CgR9tPaSzFkAwRAUyeaaCD
This commit is contained in:
2026-06-20 07:45:42 +02:00
co-authored by Claude Sonnet 4.6
parent ca0a014ffb
commit 241a796ffa
6 changed files with 41 additions and 16 deletions
+4 -2
View File
@@ -3,14 +3,14 @@
"Description" : "Rotfraenkisch, Dunkles Lager",
"pot_mass" : 5.960,
"pot_material" : "Edelstahl 18/10",
"grain_mass" : 5.21,
"water_mass" : 22,
"default":
{
"step" : {
"descr": "Put description here",
"user_message": "Put user message here",
"user_wait_for_continue": false,
"grain_mass" : 5.21,
"water_mass" : 22,
"ramp": {
"rate": 1.0,
"temp": 0,
@@ -33,6 +33,7 @@
"steps":
[
{
"grain_mass" : 0,
"descr": "Heizen für Einmaischen",
"ramp": {
"rate": 1.8,
@@ -101,6 +102,7 @@
}
},
{
"water_mass" : 21,
"descr": "Halten Abmaischen",
"user_message": "Quittieren zum Abmaischen",
"user_wait_for_continue": true,