- Archived 20 pre-refactor pages to wiki/Archive/ with standard banners:
- All 6 architecture/ pages (old _loadConfig/_setupSpecificClass internals,
pre-refactor S88 hierarchy, deployment blueprint)
- All 3 sessions/ logs (Apr-07 + Apr-13 session summaries)
- findings/open-issues-2026-03.md (issues 1-5 all resolved by refactor)
- concepts/generalfunctions-api.md (missing BaseDomain/BaseNodeAdapter)
- concepts/sources-readme.md (empty PDF placeholder, never populated)
- manuals/nodes/rotatingMachine.md + measurement.md (superseded by per-repo wikis)
- Top-level SCHEMA.md, index.md, log.md, metrics.md, overview.md,
knowledge-graph.yaml (all Apr-07 snapshot, pre-refactor)
- Kept wiki/concepts/ domain pages (ASM, PID, pump-affinity, settling, etc.)
- Kept wiki/findings/ proven results (BEP, NCog, curve-non-convexity, stability)
- Kept wiki/manuals/node-red/* (FlowFuse + Node-RED runtime docs, still current)
- Kept wiki/tools/* (utility scripts)
- Updated wiki/Archive.md index with 20 rows
- Fixed wiki/Home.md: Tier 6 was wrongly marked done; corrected to pending;
Tier 9 updated to reflect 2026-05-11 in-progress wave
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
79 lines
3.4 KiB
Markdown
79 lines
3.4 KiB
Markdown
---
|
||
title: EVOLV Project Overview
|
||
created: 2026-04-07
|
||
updated: 2026-04-07
|
||
status: evolving
|
||
tags: [overview, wastewater, node-red, isa-88]
|
||
---
|
||
|
||
> **⚠️ ARCHIVED — pre-refactor (Tier 1–4, 2026-05)**
|
||
>
|
||
> This page describes the architecture before the platform refactor.
|
||
> The current page is the per-node wiki on **[gitea.wbd-rd.nl/RnD](https://gitea.wbd-rd.nl/RnD)** or **[Home](../Home)**.
|
||
>
|
||
> Kept for historical reference only. **Do not update.**
|
||
|
||
|
||
# EVOLV — Edge-Layer Evolution for Optimized Virtualization
|
||
|
||
Industrial automation platform for wastewater treatment, built as custom Node-RED nodes by Waterschap Brabantse Delta R&D. Follows ISA-88 (S88) batch control standard.
|
||
|
||
## Stack
|
||
|
||
Node.js, Node-RED, InfluxDB (time-series), TensorFlow.js (prediction), CoolProp (thermodynamics). No build step — pure Node.js.
|
||
|
||
## Architecture
|
||
|
||
Each node follows a 3-tier pattern:
|
||
1. **Entry file** — registers with Node-RED, admin HTTP endpoints
|
||
2. **nodeClass** — Node-RED adapter (tick loop, message routing, status)
|
||
3. **specificClass** — pure domain logic (physics, state machines, predictions)
|
||
|
||
3-port output convention: Port 0 = process data, Port 1 = InfluxDB telemetry, Port 2 = parent-child registration.
|
||
|
||
## What Works
|
||
|
||
| Capability | Status | Evidence |
|
||
|---|---|---|
|
||
| rotatingMachine state machine | proven | 76 tests passing, all sequences verified |
|
||
| 3D pump curve prediction (flow/power from pressure+control) | proven | Monotonic cubic spline interpolation across 34 pressure levels |
|
||
| NCog / BEP tracking per pump | proven | Produces meaningful values with differential pressure |
|
||
| machineGroupControl BEP-Gravitation | proven | Within 0.1% of brute-force global optimum |
|
||
| Combination selection (2^n exhaustive) | proven | Stable: 1-2 switches across 5-95% demand sweep, no hysteresis |
|
||
| Prediction health scoring | proven | NRMSE drift, pressure source penalties, edge detection |
|
||
| Hydraulic efficiency (η = QΔP/P) | proven | CoolProp density, head calculation |
|
||
| Unit conversion chain | proven | No double-conversion, clean layer separation |
|
||
|
||
## What Doesn't Work (honestly)
|
||
|
||
| Issue | Status | Evidence |
|
||
|---|---|---|
|
||
| C5 curve non-convexity | evolving | 5 raw data points cause spline artifacts, dP/dQ non-monotonic |
|
||
| NCog = 0 at high ΔP | evolving | At ΔP > 800 mbar for H05K, Q/P is monotonically decreasing |
|
||
| calcBestCombination (NCog-weight mode) | disproven | Uses NCog as proportional weight instead of BEP target |
|
||
|
||
## Current Scale
|
||
|
||
- 13 custom Node-RED nodes (12 submodules + generalFunctions)
|
||
- rotatingMachine: 76 tests, 1563 lines domain logic
|
||
- machineGroupControl: 90+ tests, 1400+ lines domain logic
|
||
- 3 real pump curves: H05K-S03R, C5-D03R-SHN1, ECDV
|
||
- Tick loop: 1000ms interval
|
||
|
||
## Node Inventory
|
||
|
||
| Node | Purpose | Test Status |
|
||
|------|---------|-------------|
|
||
| rotatingMachine | Pump/compressor control | 76 tests (full) |
|
||
| machineGroupControl | Multi-pump optimization | 90 tests (full) |
|
||
| pumpingStation | Multi-pump station | needs review |
|
||
| valve | Valve modeling | needs review |
|
||
| valveGroupControl | Valve group coordination | needs review |
|
||
| reactor | Biological reactor (ASM kinetics) | needs review |
|
||
| settler | Secondary clarifier | needs review |
|
||
| monster | Multi-parameter bio monitoring | needs review |
|
||
| measurement | Sensor signal conditioning | needs review |
|
||
| diffuser | Aeration system control | needs review |
|
||
| dashboardAPI | InfluxDB + FlowFuse charts | needs review |
|
||
| generalFunctions | Shared utilities | partial |
|