- wiki/functional-description.md: rename Overfill Protection → High-volume
Safety; tighten basin-ordering chain; relocate level-based mode
diagrams under wiki/diagrams/modes/level-based/; document the new
flow.predicted.overflow.default position (replaces the previous
child='overflow' under position 'out'); add underflowVolume +
predictedUnderflowVolume entries.
- wiki/modes/{levelbased,powerbased}.md: paragraph cleanups.
- wiki/diagrams: move level-linear basin diagram under modes/level-based/
alongside a new level-log variant.
- simulations/run.js: add max_demand_gt expectation.
- simulations/scenarios/*: minor fixture updates.
- test/basic/nodeClass-config.test.js: new config-shape coverage.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Control modes
Each page describes one pumpingStation control mode and how it uses the shared basin model — specifically, how it uses the three control thresholds (minLevel, startLevel, maxLevel) and computes the demand it sends to the MGC.
The two safety thresholds (dryRunLevel and overflowLevel) are mode-independent and are enforced by the safety layer outside any mode. They never appear in a mode's policy.
Template
Every mode page follows the same structure:
- At a glance — one sentence + small fact table (inputs, output, status)
- Diagram — one or more, per tier (see below)
- Inputs — what signals the mode reads
- Threshold policy — how it uses / adjusts
minLevel,startLevel,maxLevel - Demand formula — pseudocode for Tier 1/2, objective function for Tier 3
- Edge cases — cold start, sensor dropout, interaction with safety layer
- Related — links to other modes + functional description
The three tiers classify modes by how dynamic the decision surface is:
| Tier | Curve | Example modes | Diagram type |
|---|---|---|---|
| 1 — static | Memoryless demand = f(x); single curve |
levelbased, manual |
Single-curve transfer function |
| 2 — parameterised | Shape fixed, curve moves with θ(t) | flowbased, pressureBased, percentageBased, powerBased |
Transfer function + parameter overlay / family |
| 3 — horizon-based | Optimisation, no fixed curve | hybrid-optimal, mpc, weather-aware |
Block diagram of signal flow + scenario time-series |
Implementation status
| Mode | Tier | Status | Page |
|---|---|---|---|
levelbased |
1 | ✅ implemented | levelbased.md |
manual |
1 | ✅ implemented (via Qd topic) |
— |
flowbased |
2 | 🚧 code placeholder, template | flowbased.md |
pressureBased |
2 | 🚧 code placeholder | — |
percentageBased |
2 | 🚧 code placeholder | — |
powerBased |
2 | 🚧 code placeholder, template | powerbased.md |
hybrid |
3 | 🚧 code placeholder | — |
mpc |
3 | 🚧 not in code yet, template | mpc.md |