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.
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.
Try one of these
Press Estimate to get a value, its 95% range, and whether the conditions are inside what the model was tested on.
estimated vapour pressure
95% range
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.
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.
| Input | R² | MAE |
|---|---|---|
| T and pressure | 0.950 | 0.953 |
| 1/T and pressure | 0.980 | 0.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.