Industrial edge setpoint kernels
Compact learned predictors and controllers for industrial setpoint control, tested against tuned PI and MPC on simulated plants: a two-pump pressure manifold, the Johansson four-tank system, and a thermal CSTR. It includes a C99 predictor for edge devices. All plants are synthetic, and the methods are adaptations of published papers, not reproductions.
Interactive viewer · Full results · Protocol
Headline results
| Study | Result |
|---|---|
| Two-pump pressure, 360 fresh episodes | Offset-compensated MPC cut demand-shift error by 25.9% against tuned PI (RMSE 0.0267 vs 0.0360). PI still tracked pump wear better (0.0207 vs 0.0306), and a biased sensor made it worse (0.0596 vs 0.0563). |
| Four-tank, 288 fresh episodes | Both kernel policies lost to PI and MPC in every condition. MPC improved nominal tracking by 2.49% against PI but regressed under pump loss. |
| Paper objective (Eq. 19), 192 episodes | Both kernel controllers lost to PI in five of six conditions. |
| Thermal CSTR, 192 held-out runs | A linear predictive controller closely matched the 282-parameter neural model. Online neural learning became unstable. |
| Kernel forecasting, 48 held-out runs | The linear reference stayed stronger than the adaptive kernel. |
The offline FKDPP adaptation underperformed PI. Every outcome, including the losses, is kept in the reports.
Edge numbers
- The saved predictor is 12,484 bytes, with fixed-size inference.
- The decision time is about 0.61 ms at the 95th percentile on an Apple ARM host. That excludes communication, PLC scans and admission checks.
- The C99 predictor matches Python within 1.11×10⁻¹⁶ on 128 probes.
- A portable C99 delayed observer gives identical results on Mac and Linux builds.
Other studies
Johansson observer · pressure-only observers · causal pump control · local pressure fallback · pressure/flow consistency · runtime measurements · CSTR random-stream fix (an issue and tested patch went upstream) · PLC proposal admission spec · edge deployment contract · method review
Reproduce
python -m pip install -e '.[test,report]'
python -m pytest -q
python -m edge_control.benchmark --config config.v2.json --output results/reproduction
python tools/verify_c.py --model results/reproduction/models/rff.npz --data results/reproduction/training_data.npz --output results/reproduction/c99
Load the saved model
import numpy as np
from edge_control.predictive import RFFDynamics
from edge_control.offset_free import OffsetFreeController
model = RFFDynamics.load("models/rff.npz")
controller = OffsetFreeController(model, alpha=0.30)
state = np.array([0.80, 0.60, 0.60, 0.90, 0.80, 0.60, 0.60])
proposal = controller.action(state, state[5:7])
print(proposal) # a simulated local-approval proposal
Limits
- These are simulations. Nothing here shows field performance, PLC timing or functional safety.
- The speed-cubed energy objective is a normalized proxy, not kWh.
Provenance and license
Independently authored code, synthetic data and model artifacts: MIT. Authored with AI assistance; equations, evaluation and claims are reviewed against primary sources and executed receipts. Paper PDFs, proprietary simulators, vendor SDKs and customer source documents are not distributed. This is an independent research artifact without vendor endorsement.
The full development log is in HISTORY.md.
Measured evaluation review — 2026-10-07
Both compact linear/RFF predictors execute three authored state-command pairs and reject invalid/nonfinite input. The prior closed-loop PI/MPC losses remain unchanged; this replay establishes no new controller score or rank.
Report and retained failures · Whole-profile evaluation scope. No external rank-one position or industrial deployment qualification is established. Original scientific objects and model weights are preserved.
- Downloads last month
- 97