Research/Note 02

A physics-informed fouling model for fired heaters.

Why the heater's energy balance belongs inside the loss function, what it changes about extrapolation, and how it turns an efficiency gap into a number an engineer can audit line by line.

PublishedAugust 2026 AuthorsCatalyx Research InstrumentCX Ember Reading time9 min
In brief
  • Purely data-driven efficiency models fail exactly where they are needed: outside the operating regimes they were trained on.
  • Embedding the heater's energy balance and fouling kinetics as penalty terms cuts extrapolation error by roughly 4× on a held-out fouled regime and makes the efficiency gap attributable.
  • The output is a recoverable-value figure per heater in which every term traces back to a measured tag.

01The problem with learning a heater from its history

Fired heaters consume most of a refinery's fuel, and their efficiency decays continuously between decokes as coke and scale build on the tubes. Everyone knows this. The difficulty is quantifying how much of today's gap to best-demonstrated efficiency is fouling, how much is excess air, how much is stack temperature, and therefore what it is worth to act on each.

The obvious move is to train a regression model on historian data: fuel flow, O₂, stack temperature, pass outlet temperatures, duty. It works well on the data it has seen. It fails on the data that matters. A gradient-boosted model fitted across a run predicts beautifully in the clean, post-decoke regime it was mostly trained on, and drifts badly as the heater fouls toward end-of-run, precisely the period in which the operator needs a trustworthy number to decide whether to pull the decoke forward.

The failure is structural, not a matter of more data. A statistical model has no reason to respect the first law of thermodynamics when it leaves the support of its training set. A heater does.

02Putting the balance inside the loss

Our model has two halves: a small mechanistic core that encodes what is known, and a learned residual that absorbs what is not. The core is deliberately simple.

Heat transfer and fouling state

Fouling is carried as a single latent state per heater pass, the fouling resistance Rf(t), which adds in series to the clean overall heat-transfer coefficient:

Eq. 1 · Overall heat transfer with fouling
1 / U(t) = 1 / Uclean + Rf(t)    Qabs = U(t) · A · ΔTlm

Uclean is fitted once from the first days after decoke; A and the log-mean temperature difference come from geometry and measured pass temperatures.

Energy balance

Fired duty must go somewhere. We write the balance explicitly and treat any violation as error:

Eq. 2 · Heater energy balance
Qfired = Qabs + flue cp (TstackTamb) + Qcasing + ε

Flue mass flow is derived from fuel composition and measured O₂ via the combustion stoichiometry; Qcasing is a small fitted constant; ε is the unexplained residual the model is penalised for.

Fouling kinetics

The rate at which Rf grows is where the mechanistic prior is weakest, so this is where the learned component lives. We use a threshold-fouling form (in the family of the Ebert–Panchal model): a deposition term that accelerates with film temperature and a removal term that scales with wall shear, and let a small network fθ learn a multiplicative correction to the deposition rate from the process conditions we cannot model from first principles, crude slate and feed contaminants chiefly.

Eq. 3 · Fouling rate with a learned correction
dRf / dt = α · fθ(x) · exp(−E / R Tfilm) − γ · τw

The loss

Training minimises data misfit plus three physics penalties:

Eq. 4 · Physics-informed loss
ℒ(θ) = ℒdata + λ1balance + λ2mono + λ3bounds

balance penalises ε² from Eq. 2 at every timestep. ℒmono penalises any decrease in Rf between decokes, since fouling does not spontaneously reverse. ℒbounds keeps U and the flue-gas properties inside physically admissible ranges. The λ weights are set by the residual scale of each term, not tuned per heater.

The effect of the penalties is to remove degrees of freedom the data cannot pin down. A pure network can explain a rising stack temperature as "efficiency dropped" or "fouling rose" or "the O₂ analyser drifted" interchangeably. The balance and monotonicity terms make those explanations non-interchangeable, and that is what makes the model hold when the inputs move.

03What the constraints buy

The test that matters is extrapolation. For each heater we train on the first 60% of a run and evaluate on the last 40%, the heavily fouled tail the model has never seen. The comparison is a tuned gradient-boosted regressor on the same features against the hybrid model.

90888684 DAY 0TRAIN / TEST CUTDAY 300 EFFICIENCY % Measured Physics-informed Data-only (GBM)
Figure 1. One heater, one run. Both models fit the training window. Past the cut-off the data-only model flattens toward the mean of what it has seen; the physics-informed model keeps tracking the measured decline because the balance will not let stack losses and absorbed duty drift apart.
Held-out fouled regime, six heatersData-only GBMPhysics-informed
Mean absolute error, efficiency (pts)1.90.4
Error at end of run (pts)3.60.7
Energy-balance residual, median (% of fired duty)4.20.6
Fouling trajectory monotonic between decokesNoYes

The last row is not a metric anyone reports, but it is the one operators check first. A fouling curve that goes down on a Tuesday is a model nobody in the control room will trust on Wednesday.

04From a model to a number

A calibrated model is the means, not the end. The end is a statement of the form "this heater is 1.2 points below its best-demonstrated efficiency; 0.7 of that is fouling, 0.2 excess air, 0.2 stack temperature, 0.1 radiation and casing; the fouling alone is worth $103k/yr at current fuel price."

We get there by counterfactual evaluation. With the model fitted, each contributor is returned to its reference value in turn (clean Rf, target O₂, design stack temperature) and the balance re-solved. Because the order in which contributors are reset changes the split slightly, we average over orderings, which is the Shapley decomposition. The four shares sum exactly to the measured gap by construction, so nothing is hidden in a remainder term.

Why it is auditable Every share is a difference of two balance evaluations, and every input to the balance is a tag in the historian. An engineer who disagrees with the fouling share can open the trend for T_stack, O2 and the pass outlets and recompute it. That is the standard we hold every CX Ember figure to.

05What this changes for an operator

  • Decoke on economics, not calendar. The fouling share in $/day, against the cost of a decoke, gives a break-even date per heater rather than a fleet-wide interval.
  • Alarm on rate, not level. A step change in dRf/dt flags a feed-quality event days before the stack temperature crosses a limit.
  • One number per heater, comparable across the fleet. Recoverable value ranks where the next engineering hour is best spent.

06Limits and what comes next

The model needs stack temperature, flue O₂, fuel flow and composition, and pass outlet temperatures at a few minutes' resolution. Tube-skin thermocouples improve Tfilm but are not required. Casing losses are treated as constant, which is adequate for refinery heaters and less so for older boxes with degraded refractory. The current formulation covers single-phase process fluids; extending it to the two-phase, coking service of steam-cracker furnaces is in progress and will be the subject of a later note.

None of this is exotic. The point of the note is narrower: a heater has a heat balance, and a model that is allowed to violate it will, exactly when it is least convenient.

Reference deployment Six-heater fleet at a Gulf refinery; 14 months of historian data spanning two decoke cycles per heater. Plant identity withheld under NDA. Figures in this note are from that engagement and are illustrative of typical results, not guarantees.