What the data shows. Oscillation index 0.10 against 0.02 in the reference window (5.1x). Variability 5.4x the reference.
Why we believe it. cycling 5.1x stronger than in the reference window - this is new behaviour; a fast, regular cycle is the signature of a control-loop problem - a sticking valve or aggressive tuning.
What to do. Operations review - what changed in the plant over this window; Loop check - stroke the valve, review the tuning, try the loop in manual. Pull this tag at 1-minute or faster to pin the period down.; Check the Step A availability map over this window; re-run Step C without those tags if the overlap is large.; Confirm with the operators whether anything was done to the plant in this window.
| Tag name | AI/AO | Description | Engineering unit |
|---|---|---|---|
| xmeas_9 | AI | Reactor temperature | deg C |
| xmeas_10 | AI | Purge rate (stream 9) | kscmh |
| xmeas_16 | AI | Stripper pressure | kPa gauge |
| xmeas_2 | AI | D feed (stream 2) | kg/h |
| xmeas_21 | AI | Reactor cooling water outlet temperature | deg C |
| xmeas_27 | AI | Reactor feed composition E | mol% |
| xmeas_29 | AI | Purge gas composition A (stream 9) | mol% |
| xmeas_35 | AI | Purge gas composition G | mol% |
What the data shows. SPE reached 908 and T2 1337 against limits from the reference window. Most of the deviation sits in: xmeas_38, xmeas_16, xmeas_33, xmeas_1, xmeas_20.
Why we believe it. the plant went 91x past the reference limit - far outside anything seen in the normal window; it held for 38.2 h - far too long to be noise or a single bad sample; 5 tags moved together, so it reads as a plant event rather than one instrument.
What to keep in mind. 1 of the 5 named tags were repaired by Step A (held (not interpolated)): xmeas_38.
What to do. Operations review - what changed in the plant over this window; Trace the common cause - a shared utility (steam, cooling water, feed) usually carries it. Compare raw against corrected for those tags in the Step A fixed-tags report before acting.; Compare raw against corrected for those tags in the Step A fixed-tags report before acting; Look at the reference window before concluding anything: it may not be a quiet period; Look upstream: a shared utility (steam, cooling water, feed) is the usual carrier.
| Tag name | AI/AO | Description | Engineering unit |
|---|---|---|---|
| xmeas_1 | AI | A feed (stream 1) | kscmh |
| xmeas_16 | AI | Stripper pressure | kPa gauge |
| xmeas_20 | AI | Compressor work | kW |
| xmeas_33 | AI | Purge gas composition E | mol% |
| xmeas_38 | AI | Product composition E | mol% |
| xmeas_10 | AI | Purge rate (stream 9) | kscmh |
| xmeas_11 | AI | Product separator temperature | deg C |
| xmeas_13 | AI | Product separator pressure | kPa gauge |
| xmeas_22 | AI | Separator cooling water outlet temperature | deg C |
| xmeas_7 | AI | Reactor pressure | kPa gauge |
What the data shows. Oscillation index 0.10 against 0.02 in the reference window (4.5x). Variability 4.7x the reference.
Why we believe it. cycling 4.5x stronger than in the reference window - this is new behaviour; a fast, regular cycle is the signature of a control-loop problem - a sticking valve or aggressive tuning.
What to do. Loop check - stroke the valve, review the tuning, try the loop in manual. Pull this tag at 1-minute or faster to pin the period down.
| Tag name | AI/AO | Description | Engineering unit |
|---|---|---|---|
| xmeas_21 | AI | Reactor cooling water outlet temperature | deg C |
These came out of the analysis but did not survive review. They are listed so that nothing is hidden, and so nobody re-runs the same study expecting a different answer.
| verdict | what it claimed | why we set it aside |
|---|---|---|
| likely artefact · 30% | The plant left its normal envelope for 0.1 h | 1 of the 5 named tags were repaired by Step A (held (not interpolated)): xmeas_38; only 1.2x past the limit - close enough to the boundary that the limit itself could explain it; only 6 min - short enough to be one upset or a data glitch |
| weak · 38% | The plant left its normal envelope for 0.2 h | only 1.2x past the limit - close enough to the boundary that the limit itself could explain it; only 12 min - short enough to be one upset or a data glitch |
| weak · 38% | The plant left its normal envelope for 0.1 h | only 1.2x past the limit - close enough to the boundary that the limit itself could explain it; only 6 min - short enough to be one upset or a data glitch |
| weak · 38% | The plant left its normal envelope for 0.1 h | only 1.2x past the limit - close enough to the boundary that the limit itself could explain it; only 6 min - short enough to be one upset or a data glitch |
| priority | # | cause | action | tags |
|---|---|---|---|---|
| High | 1 | xmeas_9 - Reactor temperature - deg C is cycling (7 min) | Operations review - what changed in the plant over this window; Loop check - stroke the valve, review the tuning, try the loop in manual | xmeas_9, xmeas_10, xmeas_16, xmeas_2, xmeas_21, xmeas_27, xmeas_29, xmeas_35 |
| High | 2 | The plant left its normal envelope for 38.2 h | Operations review - what changed in the plant over this window; Trace the common cause - a shared utility (steam, cooling water, feed) usually carries it | xmeas_1, xmeas_16, xmeas_20, xmeas_33, xmeas_38, xmeas_10, xmeas_11, xmeas_13, xmeas_22, xmeas_7 |
| High | 3 | xmeas_21 - Reactor cooling water outlet temperature - deg C is cycling (7 min) | Loop check - stroke the valve, review the tuning, try the loop in manual | xmeas_21 |
| Low | 4 | The plant left its normal envelope for 0.2 h | Operations review - what changed in the plant over this window | xmeas_11, xmeas_25, xmeas_31, xmeas_33, xmeas_35 |
| Low | 5 | The plant left its normal envelope for 0.1 h | Operations review - what changed in the plant over this window | xmeas_1, xmeas_25, xmeas_27, xmeas_33, xmeas_35 |
| Low | 6 | The plant left its normal envelope for 0.1 h | Operations review - what changed in the plant over this window | xmeas_1, xmeas_25, xmeas_27, xmeas_33, xmeas_35 |
Nothing above is certain until these are answered. They are the fastest way to turn a statistical result into a decision.
A study either closes here or returns to Step B with a new scope. For this one:
Five steps, each writing its own report, so any number here can be traced back to the raw export.
| step | what it does | program | |
|---|---|---|---|
| A | Prepare | Raw historian exports become one clean, regular Data table. Merge files, normalise timestamps, replace bad-value strings, put on a regular grid, fill short gaps, apply the repair rules, and record every change. | step_a_prepare.py + A-Prepare-GUI-v01.py |
| B | Explore | Trend and cluster the clean data. The engineer chooses which tags, which period, and which window counts as normal, and writes it down as the scope. | step_b_explore.py + B-Explore-GUI-v01.py |
| C | Analyze | Operability (PCA, T2/SPE, events), oscillation and slowness per tag, control-loop metrics, batch phases - all driven by the scope from B. | step_c_analyze.py + C-Analyze-GUI-v01.py |
| D | AI review | An AI reads the results and the scope and drafts findings, anomalies and questions for the engineer. | step_d_review.py + D-Review-GUI-v01.py |
| E | Report | The engineer edits, decides, and either closes the study or returns to B with a new scope. | to build |
| Raw export | /Users/yahyanazer/Dropbox/__C_2026_Work/CTRL-Designer/B-CDL-Data-Analysis/A-Raw-Data/TEP/tep_plant_10days.csv |
|---|---|
| Glossary | tep_schema.csv |
| Period | 2026-04-01 00:00 to 2026-04-10 23:57 |
| Sampling | 3 minutes |
| Tags | 41 analysed of 41 available |
| Reference window | 2026-04-03 12:00 to 2026-04-05 11:57 (47.95 h, 23.4 samples per tag) |
| Repairs made | 7 (gaps<=5 interpolate; slow tags held; frozen unknown; spikes flag) |
| Model | 29 components holding 91% of the variation |
| Programs | step_a_prepare.py 2026-09-10 10:49:28 · step_b_explore.py 2026-09-10 19:50:26 · step_c_analyze.py 2026-09-10 19:35:16 · step_d_review.py 2026-09-10 10:49:28 · step_e_report.py 2026-09-10 10:49:28 |
| issue | count |
|---|---|
| spike | 114 |
| missing | 41 |
| slow update | 6 |
| bad values | 1 |
| frozen | 1 |
Charts in this document are live: drag to zoom, double-click to reset, click a name in the legend to hide it. They are copied into charts/ beside this file, so the whole folder can be zipped and sent as one piece.
© 2026 CTRL Designer LLC. All rights reserved.
Yahya Nazer · info@ctrlDesigner.com