ControlIQ · interactive demo
ControlIQ · process control
Control algorithms are settled engineering — the backbone every plant already runs on, and they do their job. What decides whether a loop holds is the model underneath them: how well anyone actually knew the process when the controller was set up. Get that wrong and the controller is confidently wrong with it, and the plant gives you no sign. ControlIQ measures the loop, tells you whether the data determined a model, and commissions a controller only when it did.
01 · Commissioning
Before anything else, the three questions an advanced-control evaluation actually turns on: how long will you be in my plant, what will you disturb, and what happens when it fails. The schedule scales with your loop’s time constant, so we can answer for a process we have never seen.
Step test ≈3 τ, hold-out ≈5 τ. This is the only window that touches production. Identification, twin build and tuning are offline; the shadow period runs alongside your existing controller and changes nothing.
Supervised bumps of the manipulated variable, inside limits your engineers set, on a loop your operators choose. No new hardware and nothing of ours executing on your control system.
If the loop cannot be bumped at all — and many critical ones cannot — the route changes but the verdict does not. The model can come from setpoint moves under the controller already running, from history the plant has been recording all along, or from process design with no plant time at all (the greenfield path further down). What never changes is the last step: if the data was not enough to determine a model, we say so and do not tune from it.
Your controller keeps running. ControlIQ commissions the block that is already in your control system; there is nothing of ours in the loop to fail. In the supervisory mode on the roadmap, losing our link leaves that same tuned controller in charge, bumplessly.
calibration: the rig’s model came from 2.91 h of step test plus a 4.94 h hold-out and replayed a closed-loop run to 0.259 °C.
02 · Why this is the hard part
Everything below runs on a model identified from real hardware — a physical temperature loop with a time constant just over an hour. Drag the slider to shorten the bump test, the way a busy plant would. Watch the model, and watch R².
This is not a constructed example. It is the failure that happened on this hardware: a 900 s test against a plant with τ ≈ 3881 s returned a time constant four times wrong at R² = 0.993, and the number stood until the plant refused to behave. Our identifier now exits with an error rather than return it.
03 · The pipeline
The same code on two plants that agree on almost nothing. Every rule it applies is published and cited — the value is in the acceptance step, not the arithmetic.
SIMC — Skogestad, J. Process Control 13(4), 2003.
04 · Controller choice
One identification supports both. The step response that tuned the PID is exactly what Dynamic Matrix Control needs — DMC, Cutler & Ramaker 1980, the lineage behind every commercial MPC package. So we can just run both and look.
This is the one dial an MPC has and a PID does not: it trades setpoint tracking against how much the valve moves. Slide it and watch both numbers move together.
Slide left and the valve settles down while the error grows; slide right and the reverse. Every position is a real controller — there is no setting at which it beats the PID on both at once.
A properly tuned PID wins 6 of 7. That is the textbook result for a single unconstrained loop, and it is the most useful thing on this page: MPC earns its licence fee on hard constraints, interacting multivariable units, and feedforward from a measured disturbance slower than the control channel. A single loop exercises none of those, and we are not going to pretend it does.
This is the economic argument, not a modest one. Advanced process control is reserved for the few dozen loops per site whose value justifies a specialist building and maintaining a bespoke model. Every plant has hundreds more below that line, still running the tuning they were commissioned with. Those loops do not need a better algorithm — they need the model kept honest, at a cost per loop that makes reaching them worth doing.
05 · Deployment
ControlIQ never replaces the controller in your control system. It either commissions the one already there, or it produces the loop before the plant exists.
Nothing of ours runs on your plant. No new hardware, no safety re-certification, and if we vanish tomorrow your loop is unchanged.
No plant trial at all. Measured here: commissioning from a design model carrying 5 % parameter error costs 0.5 % against a real plant trial, averaged over every scenario on this page.
The unit is one loop. A refinery is one company with several sites and thousands of them, and they are commissioned, and drift, one at a time.
06 · Transfer
The two plants on this page share every line of the identification, acceptance and tuning code, and agree on nothing else. Nothing was written for either of them specifically — which is what makes the cost per loop low enough to matter.
| Behaviour | reverse-acting |
| Manipulated | coolant temperature, K |
| Controlled | concentration, mol/L |
| Time constant | ≈ 2 min |
| Nastiness | multiple steady states |
| Actuator | lag larger than the plant |
Textbook reactor from the open-source pcgym package. A 10 % feed-temperature step crosses its ignition point, so the browser integrates it at 500 RK4 sub-steps per step — fewer than 100 and it diverges outright.
| Behaviour | direct-acting |
| Manipulated | heater duty, % |
| Controlled | water temperature, °C |
| Time constant | ≈ 62 min |
| Nastiness | heat loss is a power law |
| Actuator | the heater is the lag |
Not a textbook model — a physical loop, instrumented and driven through real step tests. Fitted to measured data and validated on a run it had never seen: 1.05 °C RMSE on hold-out data, and 0.259 °C replaying a closed-loop run that included 27 minutes of actuator saturation.
07 · Roadmap
Badged honestly, because the fastest way to lose a control engineer is to show them something that is not running.
Supervisory setpoint writes into Honeywell, Emerson, Yokogawa, ABB, Siemens. Kill the link and your own controller keeps running, bumplessly.
The design model arrives as an artefact instead of being re-measured, closing the greenfield path end to end.
Plants foul and catalysts age. Naive re-tuning of a drifted plant measurably makes things worse in our tests — we have the numbers, and we are not shipping a claim we cannot defend.
Everything measured here is one loop at a time. Units where loops fight each other are the case model predictive control was invented for, and they are next — not claimed today.
A policy that transfers across plants with modest fine-tuning, benchmarked continuously against a properly tuned PID — which, as the section above shows, is a harder opponent than it sounds.