+------------------------------------------------------------------------------ | Program Name: step_b_explore.py | Program Version: 2026-09-10 19:50:26 | Date: 2026-09-11 | Time: 08:50:19 | Input 1 - Raw CSV: data.parquet (Step A output for Chemical-Reactors-21d-AI) | Input 2 - Glossary: chem_reactors_schema.csv | Input 3 - Time stamp: 2024-01-01 00:00:00 -> 2024-01-21 23:59:00 +------------------------------------------------------------------------------
Tags are grouped by the correlation of their changes, not their levels. Two tags belong together when they move at the same moments, whatever their units or their size. Levels were tried first and put 94% of tags in one group, because almost everything in a plant drifts together slowly.
Every tag starts alone and the two closest join, then the next two, and so on. The height of each join is how different the two were: low means they move almost identically. The dashed line is where the tree was cut at a distance of 0.99. Anything joined below it is one cluster; anything that only joined above it was kept apart.

Every tag against every other. Dark blocks along the diagonal are the clusters: members correlate with each other and not with outsiders. Black lines mark the cluster boundaries. If a block is pale, that cluster is weak.

within is how strongly members correlate with each other; between is how strongly they correlate with the nearest other cluster. separation is one divided by the other, so above 1 means the cluster is real and the further above, the sharper it is. least attached is the member holding on most weakly — the first place to look if a grouping looks wrong to you.
| cluster | tags | within | nearest_cluster | between | separation | most_typical | least_attached | least_attached_corr |
|---|---|---|---|---|---|---|---|---|
| 1 | 6 | 1.000 | 2 | 0.000 | 14228.34 | B_R3_ambient_temp_effect - B_R3 Ambient temperature effect - deg C | A_R2_ambient_temp_effect - A_R2 Ambient temperature effect - deg C | 1.000 |
| 2 | 3 | 0.169 | 3 | 0.005 | 31.18 | A_R3_motor_current - A_R3 Agitator motor current - A | A_R3_agitator_speed_rpm - A_R3 Agitator speed - rpm | 0.168 |
| 3 | 12 | 0.006 | 2 | 0.005 | 1.03 | B_R2_reaction_rate - B_R2 Reaction rate - 1/min | B_R2_agitator_speed_rpm - B_R2 Agitator speed - rpm | 0.002 |
| 4 | 15 | 0.008 | 6 | 0.005 | 1.73 | A_R3_reaction_rate - A_R3 Reaction rate - 1/min | A_R3_coolant_flow_rate - A_R3 Coolant flow rate - m3/h | 0.004 |
| 5 | 6 | 0.013 | 6 | 0.005 | 2.51 | A_R1_agitator_speed_rpm - A_R1 Agitator speed - rpm | A_R1_motor_current - A_R1 Agitator motor current - A | 0.005 |
| 6 | 36 | 0.006 | 5 | 0.005 | 1.14 | A_R2_reactor_temp - A_R2 Reactor temperature - deg C | A_R3_vibration_rms - A_R3 Agitator vibration RMS - mm/s | 0.003 |
| cluster | tags | members (first 6) | trend |
|---|---|---|---|
| 1 | 6 | B_R2_ambient_temp_effect - B_R2 Ambient temperature effect - deg C, B_R3_ambient_temp_effect - B_R3 Ambient temperature effect - deg C, B_R1_ambient_temp_effect - B_R1 Ambient temperature effect - deg C, A_R2_ambient_temp_effect - A_R2 Ambient temperature effect - deg C, A_R1_ambient_temp_effect - A_R1 Ambient temperature effect - deg C, A_R3_ambient_temp_effect - A_R3 Ambient temperature effect - deg C | trend |
| 2 | 3 | A_R3_motor_current - A_R3 Agitator motor current - A, A_R3_agitator_speed_rpm - A_R3 Agitator speed - rpm, A_R3_power_consumption_kw - A_R3 Power consumption - kW | trend |
| 3 | 12 | B_R2_coolant_flow_rate - B_R2 Coolant flow rate - m3/h, B_R2_reactor_temp - B_R2 Reactor temperature - deg C, B_R2_agitator_speed_rpm - B_R2 Agitator speed - rpm, B_R2_reaction_rate - B_R2 Reaction rate - 1/min, B_R2_reactor_pressure - B_R2 Reactor pressure - bar, B_R2_power_consumption_kw - B_R2 Power consumption - kW … | trend |
| 4 | 15 | A_R3_coolant_flow_rate - A_R3 Coolant flow rate - m3/h, A_R3_reactor_temp - A_R3 Reactor temperature - deg C, A_R3_reaction_rate - A_R3 Reaction rate - 1/min, A_R2_power_consumption_kw - A_R2 Power consumption - kW, A_R2_motor_current - A_R2 Agitator motor current - A, A_R2_agitator_speed_rpm - A_R2 Agitator speed - rpm … | trend |
| 5 | 6 | B_R3_agitator_speed_rpm - B_R3 Agitator speed - rpm, A_R1_motor_current - A_R1 Agitator motor current - A, B_R3_power_consumption_kw - B_R3 Power consumption - kW, A_R1_power_consumption_kw - A_R1 Power consumption - kW, A_R1_agitator_speed_rpm - A_R1 Agitator speed - rpm, B_R3_motor_current - B_R3 Agitator motor current - A | trend |
| 6 | 36 | A_R1_conversion_rate - A_R1 Conversion - %, A_R3_vibration_rms - A_R3 Agitator vibration RMS - mm/s, A_R1_feed_flow_rate - A_R1 Feed flow rate - m3/h, A_R1_coolant_flow_rate - A_R1 Coolant flow rate - m3/h, A_R1_reactor_temp - A_R1 Reactor temperature - deg C, A_R2_coolant_flow_rate - A_R2 Coolant flow rate - m3/h … | trend |

The window is the longest stretch that is quiet, contains no issue zone from Step A, and lasts at least 168 h. Everything Step C calls "normal" comes from here, so it matters more than any other choice on this page.






change_vs_ref = how much more the tag varies over the whole period than in the reference window; that is the first hint of where something happened.
| tag | AI/AO | description | eu | cluster | change_vs_ref | std | update_min | unknown_pct | repaired | include |
|---|---|---|---|---|---|---|---|---|---|---|
| B_R2_ambient_temp_effect | AI | B_R2 Ambient temperature effect | deg C | 1 | 2.71 | 3.02 | 1 | 0 | False | True |
| B_R3_ambient_temp_effect | AI | B_R3 Ambient temperature effect | deg C | 1 | 2.71 | 3.02 | 1 | 0 | False | True |
| B_R1_ambient_temp_effect | AI | B_R1 Ambient temperature effect | deg C | 1 | 2.71 | 3.02 | 1 | 0 | False | True |
| A_R2_ambient_temp_effect | AI | A_R2 Ambient temperature effect | deg C | 1 | 2.71 | 3.02 | 1 | 0 | False | True |
| A_R1_ambient_temp_effect | AI | A_R1 Ambient temperature effect | deg C | 1 | 2.71 | 3.02 | 1 | 0 | False | True |
| A_R3_ambient_temp_effect | AI | A_R3 Ambient temperature effect | deg C | 1 | 2.71 | 3.02 | 1 | 0.00331 | False | True |
| A_R3_motor_current | AI | A_R3 Agitator motor current | A | 2 | 1.38 | 0.695 | 1 | 0 | False | True |
| A_R3_agitator_speed_rpm | AI | A_R3 Agitator speed | rpm | 2 | 1 | 4.93 | 1 | 0.00331 | False | True |
| A_R3_power_consumption_kw | AI | A_R3 Power consumption | kW | 2 | 0.999 | 0.451 | 1 | 0 | False | True |
| B_R2_coolant_flow_rate | AI | B_R2 Coolant flow rate | m3/h | 3 | 1.11 | 1.33 | 1 | 0 | False | True |
| B_R2_reactor_temp | AI | B_R2 Reactor temperature | deg C | 3 | 1.01 | 0.605 | 1 | 0 | False | True |
| B_R2_agitator_speed_rpm | AI | B_R2 Agitator speed | rpm | 3 | 1.01 | 5.92 | 1 | 0 | False | True |
| B_R2_reaction_rate | AI | B_R2 Reaction rate | 1/min | 3 | 1.01 | 0.00242 | 1 | 0 | False | True |
| B_R2_reactor_pressure | AI | B_R2 Reactor pressure | bar | 3 | 1 | 0.119 | 1 | 0 | False | True |
| B_R2_power_consumption_kw | AI | B_R2 Power consumption | kW | 3 | 1 | 0.459 | 1 | 0 | False | True |
| B_R2_feed_flow_rate | AI | B_R2 Feed flow rate | m3/h | 3 | 1 | 1.18 | 1 | 0 | False | True |
| B_R2_motor_current | AI | B_R2 Agitator motor current | A | 3 | 1 | 0.509 | 1 | 0 | False | True |
| B_R2_selectivity | AI | B_R2 Selectivity | % | 3 | 1 | 0.198 | 1 | 0 | False | True |
| B_R3_vibration_rms | AI | B_R3 Agitator vibration RMS | mm/s | 3 | 0.994 | 0.0592 | 1 | 0 | False | True |
| B_R2_conversion_rate | AI | B_R2 Conversion | % | 3 | 0.991 | 0.298 | 1 | 0 | False | True |
| B_R2_yield_pct | AI | B_R2 Yield | % | 3 | 0.991 | 0.303 | 1 | 0 | False | True |
| A_R3_coolant_flow_rate | AI | A_R3 Coolant flow rate | m3/h | 4 | 1.14 | 1.16 | 1 | 0 | False | True |
| A_R3_reactor_temp | AI | A_R3 Reactor temperature | deg C | 4 | 1.12 | 0.557 | 1 | 0 | False | True |
| A_R3_reaction_rate | AI | A_R3 Reaction rate | 1/min | 4 | 1.03 | 0.00204 | 1 | 0 | False | True |
| A_R2_power_consumption_kw | AI | A_R2 Power consumption | kW | 4 | 1.01 | 0.45 | 1 | 0 | False | True |
| A_R2_motor_current | AI | A_R2 Agitator motor current | A | 4 | 1.01 | 0.5 | 1 | 0 | False | True |
| A_R2_agitator_speed_rpm | AI | A_R2 Agitator speed | rpm | 4 | 1.01 | 4.95 | 1 | 0.00331 | False | True |
| B_R1_agitator_speed_rpm | AI | B_R1 Agitator speed | rpm | 4 | 0.999 | 5.9 | 1 | 0 | False | True |
| B_R1_motor_current | AI | B_R1 Agitator motor current | A | 4 | 0.998 | 0.506 | 1 | 0 | False | True |
| A_R3_reactor_pressure | AI | A_R3 Reactor pressure | bar | 4 | 0.998 | 0.0991 | 1 | 0.00661 | False | True |
| B_R1_power_consumption_kw | AI | B_R1 Power consumption | kW | 4 | 0.997 | 0.456 | 1 | 0 | False | True |
| A_R1_vibration_rms | AI | A_R1 Agitator vibration RMS | mm/s | 4 | 0.995 | 0.049 | 1 | 0 | False | True |
| A_R3_yield_pct | AI | A_R3 Yield | % | 4 | 0.994 | 0.302 | 1 | 0 | False | True |
| A_R3_feed_flow_rate | AI | A_R3 Feed flow rate | m3/h | 4 | 0.993 | 0.976 | 1 | 0 | False | True |
| A_R3_conversion_rate | AI | A_R3 Conversion | % | 4 | 0.993 | 0.297 | 1 | 0 | False | True |
| A_R3_selectivity | AI | A_R3 Selectivity | % | 4 | 0.993 | 0.197 | 1 | 0 | False | True |
| B_R3_agitator_speed_rpm | AI | B_R3 Agitator speed | rpm | 5 | 1 | 5.91 | 1 | 0 | False | True |
| A_R1_motor_current | AI | A_R1 Agitator motor current | A | 5 | 1 | 0.499 | 1 | 0 | False | True |
| B_R3_power_consumption_kw | AI | B_R3 Power consumption | kW | 5 | 0.996 | 0.455 | 1 | 0 | False | True |
| A_R1_power_consumption_kw | AI | A_R1 Power consumption | kW | 5 | 0.996 | 0.449 | 1 | 0 | False | True |
| A_R1_agitator_speed_rpm | AI | A_R1 Agitator speed | rpm | 5 | 0.995 | 4.93 | 1 | 0 | False | True |
| B_R3_motor_current | AI | B_R3 Agitator motor current | A | 5 | 0.995 | 0.506 | 1 | 0.00331 | False | True |
| A_R1_conversion_rate | AI | A_R1 Conversion | % | 6 | 5.09 | 1.51 | 1 | 0 | False | True |
| A_R3_vibration_rms | AI | A_R3 Agitator vibration RMS | mm/s | 6 | 4.08 | 0.199 | 1 | 0 | False | True |
| A_R1_feed_flow_rate | AI | A_R1 Feed flow rate | m3/h | 6 | 3.18 | 3.11 | 1 | 0 | False | True |
| A_R1_coolant_flow_rate | AI | A_R1 Coolant flow rate | m3/h | 6 | 1.54 | 1.55 | 1 | 0 | False | True |
| A_R1_reactor_temp | AI | A_R1 Reactor temperature | deg C | 6 | 1.42 | 0.707 | 1 | 0 | False | True |
| A_R2_coolant_flow_rate | AI | A_R2 Coolant flow rate | m3/h | 6 | 1.15 | 1.16 | 1 | 0 | False | True |
| B_R1_coolant_flow_rate | AI | B_R1 Coolant flow rate | m3/h | 6 | 1.11 | 2.11 | 1 | 0 | False | True |
| B_R3_coolant_flow_rate | AI | B_R3 Coolant flow rate | m3/h | 6 | 1.11 | 1.32 | 1 | 0 | False | True |
| B_R1_reactor_temp | AI | B_R1 Reactor temperature | deg C | 6 | 1.07 | 1.03 | 1 | 0 | False | True |
| A_R2_reactor_temp | AI | A_R2 Reactor temperature | deg C | 6 | 1.03 | 0.511 | 1 | 0 | False | True |
| A_R2_reaction_rate | AI | A_R2 Reaction rate | 1/min | 6 | 1.03 | 0.00204 | 1 | 0 | False | True |
| A_R1_reaction_rate | AI | A_R1 Reaction rate | 1/min | 6 | 1.02 | 0.00204 | 1 | 0 | False | True |
| B_R1_reaction_rate | AI | B_R1 Reaction rate | 1/min | 6 | 1.02 | 0.00242 | 1 | 0.00661 | False | True |
| B_R3_reaction_rate | AI | B_R3 Reaction rate | 1/min | 6 | 1.02 | 0.00243 | 1 | 0 | False | True |
| B_R3_selectivity | AI | B_R3 Selectivity | % | 6 | 1.01 | 0.196 | 1 | 0 | False | True |
| B_R1_reactor_pressure | AI | B_R1 Reactor pressure | bar | 6 | 1.01 | 0.118 | 1 | 0 | False | True |
| A_R2_selectivity | AI | A_R2 Selectivity | % | 6 | 1.01 | 0.197 | 1 | 0 | False | True |
| A_R2_conversion_rate | AI | A_R2 Conversion | % | 6 | 1 | 0.298 | 1 | 0 | False | True |
| A_R1_selectivity | AI | A_R1 Selectivity | % | 6 | 1 | 0.197 | 1 | 0 | False | True |
| A_R1_reactor_pressure | AI | A_R1 Reactor pressure | bar | 6 | 1 | 0.0995 | 1 | 0 | False | True |
| B_R3_feed_flow_rate | AI | B_R3 Feed flow rate | m3/h | 6 | 1 | 1.17 | 1 | 0 | False | True |
| A_R1_yield_pct | AI | A_R1 Yield | % | 6 | 1 | 0.302 | 1 | 0 | False | True |
| A_R2_yield_pct | AI | A_R2 Yield | % | 6 | 1 | 0.302 | 1 | 0 | False | True |
| A_R2_vibration_rms | AI | A_R2 Agitator vibration RMS | mm/s | 6 | 1 | 0.0491 | 1 | 0 | False | True |
| B_R3_conversion_rate | AI | B_R3 Conversion | % | 6 | 1 | 0.297 | 1 | 0 | False | True |
| B_R2_vibration_rms | AI | B_R2 Agitator vibration RMS | mm/s | 6 | 0.998 | 0.059 | 1 | 0 | False | True |
| B_R1_yield_pct | AI | B_R1 Yield | % | 6 | 0.998 | 0.301 | 1 | 0 | False | True |
| B_R3_yield_pct | AI | B_R3 Yield | % | 6 | 0.995 | 0.304 | 1 | 0 | False | True |
| B_R3_reactor_pressure | AI | B_R3 Reactor pressure | bar | 6 | 0.994 | 0.12 | 1 | 0 | False | True |
| A_R2_feed_flow_rate | AI | A_R2 Feed flow rate | m3/h | 6 | 0.992 | 0.98 | 1 | 0 | False | True |
| B_R1_vibration_rms | AI | B_R1 Agitator vibration RMS | mm/s | 6 | 0.992 | 0.0591 | 1 | 0 | False | True |
| B_R1_selectivity | AI | B_R1 Selectivity | % | 6 | 0.991 | 0.196 | 1 | 0 | False | True |
| A_R2_reactor_pressure | AI | A_R2 Reactor pressure | bar | 6 | 0.99 | 0.0989 | 1 | 0 | False | True |
| B_R3_reactor_temp | AI | B_R3 Reactor temperature | deg C | 6 | 0.886 | 0.736 | 1 | 0 | False | True |
| B_R1_feed_flow_rate | AI | B_R1 Feed flow rate | m3/h | 6 | 0.754 | 1.51 | 1 | 0 | False | True |
| B_R1_conversion_rate | AI | B_R1 Conversion | % | 6 | 0.644 | 0.56 | 1 | 0 | False | True |
scope.json from this folder and analyses only what it names: PCA operability against the reference window, oscillation and slowness per tag, loop metrics.Folder: /Volumes/YN-4T/WIP/CTRL-Designer/B-CDL-Data-Analysis/B-Scope/Chemical-Reactors-21d-AI
© 2026 CTRL Designer LLC. All rights reserved.
Yahya Nazer · info@ctrlDesigner.com