Two compounding problems, found by actually running it: - pot_mass=1/water_mass=1 (~2kg) is far lighter than the mass the real PID gains are tuned for (~30kg, matching the real recipes) - same heater power swings a 2kg pot far faster than the gains expect, causing massive overshoot (24 -> 37.5 instead of holding at 24). Fixed by using the same realistic mass as sud_0010.json/sud_0020.json. - The overshoot then needed a passive cooldown back down to the next step's target - independent of any declared rate, governed by the plant's L/C time constant (~350 min here), regardless of mass. Removed the (now unnecessary, since the overshoot is gone) explicit cooldown step too. Predicted/actual duration drops from ~408 min to ~18-21 min - verified both via components/sud_forecast.py's estimator and a live run against the real server (reaches DONE, no controller chattering).
74 lines
1.3 KiB
JSON
74 lines
1.3 KiB
JSON
{
|
|
"Name": "GuiTest",
|
|
"Description": "Small, fast schedule for exercising the GUI (load/start/pause/stop/restart) without waiting through a real brew",
|
|
"pot_mass": 5.96,
|
|
"pot_material": "Edelstahl 18/10",
|
|
"default": {
|
|
"step": {
|
|
"descr": "Put description here",
|
|
"user_message": "Put user message here",
|
|
"user_wait_for_continue": false,
|
|
"grain_mass": 5.21,
|
|
"water_mass": 22,
|
|
"temperature": 0,
|
|
"ramp": {
|
|
"rate": 5.0,
|
|
"stirrer": {
|
|
"speed": 50,
|
|
"interval_time": 0,
|
|
"on_ratio": 1.0
|
|
}
|
|
},
|
|
"hold": {
|
|
"duration": 1,
|
|
"stirrer": {
|
|
"speed": 30,
|
|
"interval_time": 0,
|
|
"on_ratio": 1.0
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"steps": [
|
|
{
|
|
"descr": "Heat to 24",
|
|
"temperature": 24,
|
|
"ramp": {
|
|
"rate": 5.0
|
|
}
|
|
},
|
|
{
|
|
"descr": "Add something",
|
|
"user_message": "Please confirm to continue",
|
|
"user_wait_for_continue": true,
|
|
"hold": {
|
|
"duration": 0
|
|
}
|
|
},
|
|
{
|
|
"descr": "Short hold at 24",
|
|
"hold": {
|
|
"duration": 1
|
|
}
|
|
},
|
|
{
|
|
"descr": "Heat to 28, then hold",
|
|
"temperature": 28,
|
|
"ramp": {
|
|
"rate": 5.0
|
|
},
|
|
"hold": {
|
|
"duration": 1
|
|
}
|
|
},
|
|
{
|
|
"descr": "Final confirm",
|
|
"user_message": "Quittieren zum Abschluss",
|
|
"user_wait_for_continue": true,
|
|
"hold": {
|
|
"duration": 0
|
|
}
|
|
}
|
|
]
|
|
}
|