Safety-Gated Agentic Control for Coupled Multivariable Processes
A reproducible research project on LLM-based agentic supervisory control with an auditable counterfactual safety gate, evaluated apples-to-apples against classical PID and linear MPC on coupled multivariable processes — demonstrated on Skogestad's Column A binary distillation benchmark.
The chemistry is the demonstration. The methodology is the contribution. The architecture transfers to semiconductor process control, pharmaceutical continuous manufacturing, battery electrode lines, energy systems, and beyond.
Phase 5 — manuscripts complete. Full arXiv preprint and SAFEPROCESS conference cut are in-repo; C0–C3 evaluation ladder closed on Skogestad Column A.
Headline (DeepSeek-V4-Flash, locked): asymmetric outcome-class B — strong off-nominal target acquisition (C2/C1 IAE ratio 0.361 at the upper CI) / disturbance rejection fails (upper-CI factor 16.03). A rule-based forked-twin counterfactual gate (C3) contains the specification-abandonment attractor ((d \approx -1.4); P95 cell IAE (11.5 \rightarrow 0.77)).
| Deliverable | Location |
|---|---|
| arXiv / full preprint | paper/latex/main_arxiv_publication_ready.pdf |
| SAFEPROCESS short cut | paper/latex/main_safeprocess_publication_ready.pdf |
| Locked numbers | paper/FROZEN_NUMBERS.md |
| Roadmap | PROJECT_PLAN.md |
arXiv submission and SAFEPROCESS 2027 (deadline 31 October 2026) are the next publication steps. After an arXiv identifier is live, this section will carry the abs/DOI links.
This architecture transfers to any process with:
- Coupled multivariable loops where classical PID hits its limits
- High constraint-violation costs (quality, safety, energy)
- Significant gains available from anticipatory rather than reactive control
Concrete transfer targets (architectural — not claimed multi-plant empirics):
- Semiconductor wafer fabs — multi-zone temperature/gas control with tight spec windows
- Pharma continuous manufacturing — coupled crystallization/drying/granulation trains
- Battery electrode coating — coupled slot-die, drying, calendering with quality gates
- HVAC and district heating — multi-loop energy optimization with safety constraints
- Water treatment plants — coupled chemical dosing with effluent-spec safety
Four supervisory configurations are compared apples-to-apples on the same plant, same regulatory backend contract, same disturbance scenarios, and same seeds:
Supervisory layer (5-min cadence — the variable under study)
┌──────────┐ ┌─────────────┐ ┌────────────────┐ ┌─────────────────────┐
│ C0 │ │ C1 │ │ C2 Agent │ │ C3 Agent │
│ PID-only │ │ Linear MPC │ │ Observer / │ │ + Safety Gate │
│ fixed │ │ (do-mpc) │ │ Optimizer / │ │ (forked-twin │
│ setpts │ │ │ │ Critic loop │ │ counterfactual, │
│ │ │ │ │ (deterministic │ │ nine pinned │
│ │ │ │ │ Python) │ │ constraints) │
└──────────┘ └─────────────┘ └───────┬────────┘ └──────────┬──────────┘
│ (y_D, x_B) targets │
▼ ▼
Regulatory layer (~1–5 s, identical contract across C0–C3)
│
▼
Process twin: Skogestad Column A — 40-stage binary distillation,
LV configuration, scipy.solve_ivp dynamics
- Process twin: Python clean-room port of Skogestad's Column A (40-stage binary distillation, LV configuration), dynamics via
scipy.integrate.solve_ivp, optional CasADi symbolic-gradient layer — see ADR 007. IDAES retained for steady-state / property-package work only — see ADR 001. - Baselines: multi-loop PID with relay-feedback tuning (C0); Linear MPC via
do-mpcwith per-OP linearization (C1). - Agent runtime: deterministic Python Observer → Optimizer → Critic loop (LangGraph optional extra only).
- LLM (headline evaluation): DeepSeek-V4-Flash (model-conditional headline per ADR 015).
- LLM (cross-family): NVIDIA Nemotron-3-Super family — DR
failsband reproduced; TA strong cells survivorship-qualified only. - Safety gate: rule-based forked-twin counterfactual gate (primary C3 contribution) — see ADR 016.
- Evaluation: matplotlib, seaborn, bootstrap CIs and effect-size reporting.
# Prerequisites: macOS (Apple Silicon) or Linux, Homebrew (macOS only)
# Install uv (one-time)
brew install uv # macOS
# curl -LsSf https://astral.sh/uv/install.sh | sh # Linux
# Clone and set up
git clone https://github.com/cgncro-cyber/IndustrialAI.git
cd IndustrialAI
make setup # uv sync + idaes get-extensions
# Verify
make smoke # IDAES + ipopt sanity checkFor Apple-Silicon-specific notes and known pitfalls, see
docs/setup/idaes_on_macos.md.
src/industrial_ai/
├── twin/ # Column A dynamic twin (scipy/CasADi) + IDAES steady-state helpers
├── control/ # PID baselines + tuning
├── agents/ # Deterministic Observer/Optimizer/Critic + LLM clients
├── safety/ # Counterfactual gate + constraints
└── evaluation/ # KPIs, plots, statistical tests
tests/ # Unit + integration tests
notebooks/ # Exploratory work, never source of truth
data/ # Benchmark datasets (TEP, NoBOOM references)
paper/latex/ # End manuscripts: *_publication_ready.{tex,pdf}
docs/decisions/ # ADRs — architecture decision records
| Deliverable | File |
|---|---|
| arXiv / full preprint | paper/latex/main_arxiv_publication_ready.pdf |
| SAFEPROCESS short cut | paper/latex/main_safeprocess_publication_ready.pdf |
| arXiv TeX | paper/latex/main_arxiv_publication_ready.tex |
| SAFEPROCESS TeX | paper/latex/main_safeprocess_publication_ready.tex |
Build:
cd paper/latex
tectonic main_arxiv_publication_ready.tex
tectonic main_safeprocess_publication_ready.texLocked numbers for QA: paper/FROZEN_NUMBERS.md.
Author of record: Christian Rosenthal — sole author of the research, evaluation design, interpretation, manuscripts, and this repository.
- Papers list only that author (
\author{Christian Rosenthal}). - Git history is a single human identity (
cgncro-cyber). - AI coding assistants were used under the author's direction for implementation acceleration (code, tests, tooling). They are not co-authors and hold no claim on the scientific contribution.
- Full statement:
AUTHORSHIP.md· machine-readable:CITATION.cff
@article{rosenthal2026safety,
title = {Safety-Gated Agentic Supervisory Control on a Coupled Distillation Benchmark},
author = {Rosenthal, Christian},
year = {2026},
note = {Preprint; see paper/latex/main_arxiv_publication_ready.pdf},
}After arXiv is live, replace the note field with eprint / archivePrefix / primaryClass.
MIT — see LICENSE. Copyright (c) 2026 Christian Rosenthal.
Christian Rosenthal is a Product Manager and Lean Six Sigma Black Belt with 15+ years of experience optimizing chemical processes at industrial scale, currently completing a DBA in AI/ML. This project bridges classical process engineering with contemporary agentic AI.