fix: realistic sinus + continuous pump control + dead zone elimination
Some checks failed
CI / lint-and-test (push) Has been cancelled
Some checks failed
CI / lint-and-test (push) Has been cancelled
Sinus inflow: 54-270 m³/h (base 0.015 + amplitude 0.06 m³/s), 4 min period. Peak needs 1-2 pumps, never all 3 = realistic headroom. PS control: continuous proportional demand when level > stopLevel, not just when > startLevel && filling. Pumps now ramp down smoothly as basin drains toward stopLevel instead of staying stuck at last setpoint. pumpingStation e8dd657: dead zone elimination build_flow.py: sinus tuned for gradual pump scaling visibility Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -3939,7 +3939,7 @@
|
||||
"type": "function",
|
||||
"z": "tab_drivers",
|
||||
"name": "sinus inflow (m\u00b3/s)",
|
||||
"func": "const base = 0.02; // m\u00b3/s (~72 m\u00b3/h always)\nconst amplitude = 0.10; // m\u00b3/s (~360 m\u00b3/h peak)\nconst period = 120; // seconds per full cycle\nconst t = Date.now() / 1000; // seconds since epoch\nconst q = base + amplitude * (1 + Math.sin(2 * Math.PI * t / period)) / 2;\nreturn { topic: 'q_in', payload: q, unit: 'm3/s', timestamp: Date.now() };",
|
||||
"func": "// Realistic wastewater inflow profile:\n// base = minimum dry-weather flow (always present)\n// amplitude = peak wet-weather swing on top of base\n// range = base \u2192 base+amplitude = 54 \u2192 270 m\u00b3/h\n// 1 pump handles up to ~223 m\u00b3/h, so peak needs 2 pumps.\n// 3 pumps (669 m\u00b3/h) are never needed = realistic headroom.\n// period = 240s (4 min) \u2014 slow enough to see pump ramp on dash.\nconst base = 0.015; // m\u00b3/s (~54 m\u00b3/h dry weather)\nconst amplitude = 0.06; // m\u00b3/s (~216 m\u00b3/h peak swing)\nconst period = 240; // seconds per full cycle\nconst t = Date.now() / 1000; // seconds since epoch\nconst q = base + amplitude * (1 + Math.sin(2 * Math.PI * t / period)) / 2;\nreturn { topic: 'q_in', payload: q, unit: 'm3/s', timestamp: Date.now() };",
|
||||
"outputs": 1,
|
||||
"noerr": 0,
|
||||
"initialize": "",
|
||||
|
||||
Reference in New Issue
Block a user