MTEngineering in Motion

Distillation soft sensor

The column runs every second; the lab answers hours later. This estimates the vapour pressure of the bottoms product from two readings the plant already has — one tray temperature and the column pressure — and says when not to trust the answer.

How the soft sensor sits on the column A distillation column with a tray temperature and the column pressure feeding a computer function that estimates vapour pressure, next to the lab sample on the bottoms line that answers 1 to 3 hours later. Feed Overhead Bottoms product PIC1 TI9 column pressure tray temperature AYVP 38.8 35.8–41.8 now Lab result, 1–3 h later

Try the estimate

This calls the deployed model. Change the two readings, or pick one of the cases below — one is normal, one is outside the conditions the model has seen, and one is a unit mistake.

Absolute scale. Training range 400–507.
Training range 200–255.

Try one of these

Checking the service…

Press Estimate to get a value, its 95% range, and whether the conditions are inside what the model was tested on.

Why estimate at all?

The lab is the reference. A sample is taken about once a shift, and the result comes 1–3 hours later — so a change in the column can wait 4–8 hours before anyone sees it.

Until then the operator cannot see where the product is, so they keep a wide gap below the vapour-pressure limit and pay for it in steam and lost product. Many refineries also run an online analyzer; the soft sensor covers the gaps between lab results, where there is no analyzer, or when it is out of service.

One day: a lab sample each shift with the result two hours later, against a continuous estimate Shift 1Shift 2Shift 3 Soft sensor: an estimate at every reading Lab: one sample per shift 1–3 h1–3 h1–3 h no new lab number for about 8 h

What the project found

Trained on 163 lab samples from one operating campaign, then tested on 67 samples from a later campaign that ran at less than half the reboiler duty. Never a random split: neighbouring rows are near-copies.

The physics changed the input, not the model

Antoine's equation ties vapour pressure to 1/T. Giving the same simple model 1/T instead of T cut the error by about a third.

InputR²MAE
T and pressure0.9500.953
1/T and pressure0.9800.645

Random forest (0.75) and XGBoost (0.90) on the same inputs did worse: they fit the old campaign and missed the new one.

Pressure needs temperature

Pressure alone scores R² −0.50 — worse than guessing the average. With temperature it is essential: boiling point depends on pressure, so a tray temperature moves when the product changes or when the column pressure changes.

A 25-tray column simulation showed the same thing, and pointed to the lower section of the column as the place to measure.

It knows when to refuse

Every answer carries a 95% range and an envelope check. On the later campaign, the 3 points it flagged had a 7.8× larger error than the rest.

The service's range held 63 of 67 lab values (94%). Adding the model's own spread, as in the validation record, holds 64 (95.5%).

Where it stops

An estimate between lab samples — not a replacement for the lab, and not a plant system.

  • It under-predicts high values. The error on the top 10% is 4.8× larger, so it is not an off-spec alarm.
  • Small data. 253 lab samples and two campaigns: it is shown across one change of operation, not many.
  • Coded sensors. The tray behind Temp9 is not disclosed; the simulation narrows it to the lower section, not to one tray.
  • One number is optimistic. The best input pair was found by searching the test campaign, so its 0.950 is not an unbiased estimate.
  • A prototype. No historian connection, no authentication, no monitoring, no automatic retraining, no field validation.
  • Free hosting. The first request after a quiet spell can take up to a minute.

Go further