Fouling builds slowly across the preheat train, the furnace fires harder to compensate, and once it reaches its duty limit the only lever left is to cut crude. Routine historian data shows temperatures and flows but not the running cost a deposit imposes or the heat a clean would recover. A physics informed twin makes both explicit, and a reinforcement learning agent learns which shell to clean and how to split the crude, returning a Pareto set the plant chooses from.
All case studies
the preheat train modelled shell by shell, each exchanger a mechanistic simulation with its own fouling, duty and pressure drop
coil inlet temperature error of the twin against measured operation across a full run, validated on the plant's own cleaning history
retrospective and offline first, run beside a copy of the historian with no live connection to control systems, fully isolated from the plant
Fouling builds slowly across the preheat train and degrades heat recovery, so the coil inlet temperature reaching the fired heater declines between cleans. The furnace then fires harder to hold the column feed temperature, which raises fuel use and carbon, and once the heater reaches its duty limit the only remaining lever is to cut crude throughput. Routine historian data shows temperatures and flows but not the two numbers a decision needs, namely the running cost a given deposit is imposing and the heat a given clean would recover. Cleaning is also coupled, because taking one shell offline redistributes duty across the others and the crude split changes how much heat each shell delivers, so cleans are timed by calendar habit rather than by value and avoidable firing accumulates unseen.
| Months in run | Twin |
|---|---|
| 0 | 245.8 |
| 1 | 244.4 |
| 2 | 243 |
| 3 | 241.6 |
| 4 | 240.5 |
| 5 | 239.8 |
| 6 | 239.4 |
| 7 | 238.8 |
| 8 | 238 |
| 8.3 | 236.5 |
| 8.6 | 244.3 |
| 9 | 243.6 |
| 10 | 241.8 |
| 11 | 240.4 |
| 12 | 239 |
| 13 | 238 |
| 14 | 237.5 |
| 15 | 237.2 |
| 16 | 236.7 |
| 16.3 | 234.8 |
| 16.6 | 242.5 |
| 17 | 242.2 |
| 18 | 240 |
| 19 | 238.2 |
| 20 | 237.6 |
| 21 | 236.6 |
| 22 | 236 |
| 23 | 235.2 |
| 24 | 234.5 |
EntroMetrix builds a physics informed twin of the preheat train in which each shell is a mechanistic simulation of fouling and heat transfer, coupled through the exchanger network so that coil inlet temperature, duty and pressure drop follow the deposit as it grows. Fitted per shell to the historian, the twin reproduces the measured coil inlet temperature across a full run, so the cost of any deposit and the value of any clean become explicit. A reinforcement learning agent then learns a joint policy over which shell to clean and how to split crude between branches, with a reward that weighs fuel and carbon against throughput at the furnace limit and against cleaning cost. Rather than a single schedule it surfaces a Pareto set, from which the plant selects one operating point.
| Annual fuel and carbon cost (index) | Crude throughput (% of furnace limit) | |
|---|---|---|
| Calendar practice | 1.07 | 95.0 |
| Chosen policy | 0.89 | 97.9 |
The twin is built from data the plant already holds. Historian records of temperatures, flows and pressure drops across the train, together with the log of past cleans and the crude slate, are enough to fit each shell and to reproduce how heat recovery declines between cleans. The fouling law and the operating limits are set with the plant's own engineers, and the assumptions are documented before any schedule is proposed.
On a comparable crude distillation preheat train the twin reproduced the measured coil inlet temperature to within about half a degree across a full run and matched the plant's annual operating cost to within a few percent, so its account of the fouling cost could be trusted. Joint optimisation of cleaning timing and flow distribution then delivered materially more than retiming cleans alone, because most of the value after any clean lies in re routing crude to the freshly cleaned shell.
| Baseline | Optimised | |
|---|---|---|
| Furnace fuel | 100 | 92.6 |
| CO2 | 100 | 92.9 |
| Cleaning cost | 100 | 87.2 |
| Crude throughput | 100 | 102.6 |
Validation is retrospective and blind. The twin is tested against the plant's own recorded cleans and coil inlet temperature over past runs before any forward schedule is trusted, and the policy is constrained to the plant's proven ranges for flow split, coil temperatures and pressure drop, so proposed actions stay inside limits operators already accept. The system runs offline beside a copy of the historian, with no live connection to control systems, and each recommendation is delivered with the fuel, carbon, throughput and cleaning cost it implies.
| Months in run | Current practice | Optimised policy |
|---|---|---|
| 0 | 244.5 | 246.5 |
| 2 | 241.5 | 243.5 |
| 4 | 239 | 241.5 |
| 6 | 237.6 | 240.2 |
| 8 | 236.2 | 243.5 |
| 8.2 | 234 | |
| 8.5 | 242.2 | |
| 10 | 240 | 241.5 |
| 12 | 237.5 | 240 |
| 14 | 235.5 | 239 |
| 16 | 234.4 | 242.5 |
| 16.2 | 231.8 | |
| 16.6 | 240 | |
| 18 | 238.2 | 240.2 |
| 20 | 235.5 | 239 |
| 22 | 233.2 | |
| 24 | 231.5 | 237 |
| Furnace limit | 231 |
The same cleans, retimed, with flow re routed after each, hold the temperature to the furnace consistently higher.
The carbon saving is a growing total, stepping up as each retimed clean recovers duty, not a single headline figure.
Most of the benefit comes from a few shells cleaned at the right time, not from cleaning the whole train on a calendar.
| Months in run | Cumulative CO2 saved (kt) |
|---|---|
| 0 | 0 |
| 2 | 0.3 |
| 4 | 0.8 |
| 6 | 1.3 |
| 6.4 | 1.4 |
| 8.3 | 2.7 |
| 9 | 2.8 |
| 10 | 2.9 |
| 12 | 3.4 |
| 14 | 4 |
| 14.4 | 4.0 |
| 16.3 | 5.5 |
| 17 | 5.7 |
| 18 | 5.8 |
| 20 | 6.4 |
| 21.3 | 7.0 |
| 22 | 7.5 |
| 23 | 8.1 |
| 24 | 8.6 |
| Value of a clean (index) | |
|---|---|
| S7 | 41 |
| S4 | 34 |
| S12 | 28 |
| S2 | 21 |
| S9 | 15 |
| S5 | 12 |
| S1 | 9 |
| S8 | 7 |
| S3 | 6 |
| S11 | 4 |
| S6 | 3 |
| S10 | 2 |
A short call with our engineering team, your process data stays on site.