Engineering log · updated
What we have measured so far.
A simulator’s fidelity should be a number with its limits stated. We hold our own progress to the same rule, so this log lists what has passed, what has not, and what has not been tried yet.
-
PHASE 0WE ARE HERE
Engine core and tuning proof
Run a hand-built plant through trips, upsets, startup and shutdown, and prove tuning against a plant that differs from the model.
6 of 11 milestones complete, 4 in progress, 1 not started
-
PHASE 1
Full product on virtual plants
Reading plant documents (P&IDs, DCS configuration, operator graphics), building the model from them, the web interface and the OPC UA connection, all scored end to end on virtual plants.
-
PHASE 2
Real data
A university unit operations lab, then one design partner’s historical exports.
-
PHASE 3
Product
More control systems, more property packages (including petroleum pseudo-components from crude assays), whole-plant scale, automatic upkeep in service.
Phase 0, item by item
Thermodynamics
DoneSix property packages (Ideal, Redlich-Kwong, Soave-Redlich-Kwong, Peng-Robinson, Wilson, NRTL) behind one interface, checked against CoolProp reference values and published vapor-liquid equilibrium data.
Network solver and unit operations
DonePressures and flows solved together as one implicit system. Tanks, gas nodes, two-phase vessels, pipes, control, check and relief valves, pumps, a compressor with surge, and shell-and-tube exchangers, each tested at zero and reverse flow.
Trips and upsets on the reference plant
8 of 8 passThe reference plant, an inlet separation and compression train with a 20-component Peng-Robinson fluid, runs through eight scenarios: a feed step, a compressor trip, surge and recovery, a pump trip, a level valve failing closed, a cooling-water failure, loss of exchanger liquid flow, and blowdown to flare. Zero solver failures; mass and energy balances close to rounding error. Real time, the third gate criterion, is not yet met (below).
Cold start, startup and full shutdown
Not startedThe three scenarios that begin or end with the plant at rest, with vessels empty of liquid and filled with nitrogen, and dry lines.
Real time
Not yet metThe requirement is real time or faster on every scenario: each 0.5 s tick computed in at most 250 ms on a 4-core Windows server like the ones the product will run on. Ten times real time is the goal. On our 32-core development server the slowest ticks still take up to 115 times the 0.5 s budget, and many quiet ticks under control take 150 to 360 ms, some above the 250 ms limit. Faster integrator settings are built and measured, cutting the median quiet tick from 211 ms to 5 ms, but are not yet the default: they wait on a fix for a vessel whose vapor space is nearly empty.
Independent engine cross-check
40 of 58 agreeWe rebuilt the plant’s liquid section separately in IDAES, from published equations and without reading our engine’s code. At three operating points and three step tests, 40 of 58 judged quantities agree within tolerance (2 % on flows, pressures, duty and the feed drum’s fill rate, 1 K on temperatures, 10 % on gains and time constants); 14 more are reported for information only, with no tolerance set. We measured them on October 13. Each of the 18 misses has a written cause: 14 have an approved fix that is built but not yet merged (mean-temperature exchanger cells and a vented feed drum), and the other 4 come from a two-phase header’s flashing rate, a parameter that tuning will set.
Automated tuning on a structurally different plant
In progressThe tuning pipeline is built and tested on small synthetic plants: data cleaning, staged fits, identifiability, drift and change detection, and structural-mismatch reports. The test plant hides stiction, a bypass, fouling and a valve swap, and its historian adds stuck and drifting sensors and a clock offset. We will generate that two-month historian next, once the engine is faster.
Engine service
In progressThe API every future screen and agent will use: live and sandbox instances, change sets, an audit log, and refusal of agent and pipeline writes on a live instance. Still open: running as a Windows service, and the live-value stream for browser screens.
AI agent access
Not startedAn MCP server through which an agent drives a sandbox copy, proposes a change set for approval, and is refused on a live instance.
How we keep the tests honest
Sealed answers
Only the scoring code reads a test plant’s true topology, parameters and planted faults. The code under test sees what a customer would hand over.
A gate plant built by someone else
The test plant we must pass before the first pilot will be built by a separate author, in an engine we do not develop with, and kept out of reach of the pipeline’s developers.
A new record for every scored run
Operations and sensor defects come from a random seed, and scored runs use seeds the pipeline has never seen, so nothing can be tuned to one record’s quirks.