delphi-pump-analytics / analysis /knowledge /reasoning_chains.yaml
pandeydigant31's picture
Initial deploy: DELPHI Pump Analytics (renamed from MURPHY)
199bfa3 verified
Raw
History Blame Contribute Delete
10.6 kB
# CSH2 Cryogenic Pump — Diagnostic Reasoning Chains
# Step-by-step decision trees encoding how an expert reasons from observation to diagnosis.
# Each step specifies: what tool to call, what to look for, and branching rules.
reasoning_chains:
- id: RC-001
name: "Low Pressure Build Diagnostic"
trigger: "PT130 cannot reach target pressure"
related_failure_modes: [FM-001, FM-002, FM-003, FM-007]
steps:
- step: 1
action: "query_sensor_data"
description: "Pull PT130, PT110, TT110, VFD speed for the time window"
parameters:
tagindices: [18, 17, 24, 13]
look_for: "PT130 plateau level, PT110 stability, TT110 trend"
next:
if_pt130_below_50pct_target: "step_2"
if_pt130_slow_build: "step_5"
- step: 2
action: "run_simulation"
description: "Compute expected PT130 at current operating conditions"
parameters_from: "extracted operating conditions"
look_for: "Sim vs measured gap magnitude"
next:
if_gap_gt_20pct: "step_3"
if_gap_lt_20pct: "step_6"
- step: 3
action: "Run DCV leak test"
description: "Check PT130 decay rate with pump stopped"
look_for: "Decay rate in bar/min"
next:
if_decay_gt_5_bar_per_min: "conclude_FM002"
if_decay_lt_5_bar_per_min: "step_4"
- step: 4
action: "Compare pressure build at multiple speeds"
description: "Run pump at 10%, 30%, 50% speed and compare pressure"
look_for: "Does pressure gap worsen at higher speeds?"
next:
if_worse_at_higher_speed: "conclude_FM001"
if_similar_at_all_speeds: "step_5"
- step: 5
action: "Check inlet conditions"
description: "Verify subcooling margin: T_sat(PT110) - TT110"
look_for: "Subcooling margin in K"
next:
if_margin_lt_2K: "conclude_FM007"
if_margin_gt_2K: "step_6"
- step: 6
action: "search_domain_knowledge"
description: "Search maintenance history for recent ICV/DCV work"
parameters:
category: "maintenance_history"
component: "ICV"
look_for: "Recent maintenance events"
next:
if_recent_icv_work: "conclude_FM001_installation"
if_no_recent_work: "conclude_FM003"
conclusions:
conclude_FM001:
diagnosis: "ICV reverse flow — leak worsens with speed"
confidence: "high"
failure_mode: FM-001
conclude_FM001_installation:
diagnosis: "ICV installation issue — recent maintenance"
confidence: "high"
failure_mode: FM-001
conclude_FM002:
diagnosis: "DCV leakage — static pressure decay"
confidence: "high"
failure_mode: FM-002
conclude_FM003:
diagnosis: "HP seal blowby — gradual degradation"
confidence: "moderate"
failure_mode: FM-003
conclude_FM007:
diagnosis: "Insufficient subcooling — two-phase inlet"
confidence: "high"
failure_mode: FM-007
- id: RC-002
name: "Pressure Oscillation Diagnostic"
trigger: "PT130 showing high-frequency oscillations"
related_failure_modes: [FM-004]
steps:
- step: 1
action: "query_sensor_data"
description: "Pull PT130 at 1-second resolution for oscillation analysis"
parameters:
tagindices: [18, 1]
resolution: "1sec"
look_for: "Oscillation frequency and amplitude"
- step: 2
action: "Correlate with AOV141 cycling"
description: "Check if AOV140/141 is cycling in sync with PT130"
look_for: "Phase correlation between pressure and valve"
next:
if_correlated: "conclude_FM004"
if_not_correlated: "step_3"
- step: 3
action: "Check DCV dynamics"
description: "Analyze stroke timing — DCV may be bouncing"
look_for: "DCV open/close timing anomalies"
next:
default: "conclude_valve_dynamics"
conclusions:
conclude_FM004:
diagnosis: "Safety loop oscillation — AOV141 hunting"
confidence: "high"
failure_mode: FM-004
conclude_valve_dynamics:
diagnosis: "DCV dynamic behavior anomaly — investigate spring force"
confidence: "moderate"
failure_mode: FM-002
- id: RC-003
name: "Elevated Discharge Temperature Diagnostic"
trigger: "TT130 higher than isentropic prediction"
related_failure_modes: [FM-005, FM-006]
steps:
- step: 1
action: "query_sensor_data"
description: "Pull TT130, PT130, PT110, TT110"
parameters:
tagindices: [27, 18, 17, 24]
look_for: "TT130 excess above isentropic prediction"
- step: 2
action: "run_simulation"
description: "Compute isentropic discharge temperature"
look_for: "Measured TT130 vs predicted"
next:
if_excess_gt_20K: "step_3"
if_excess_lt_20K: "conclude_normal_friction"
- step: 3
action: "Check pressure ratio"
description: "PT130/PT110 ratio vs expected"
look_for: "Is pressure building normally?"
next:
if_ratio_low: "conclude_FM005"
if_ratio_normal: "step_4"
- step: 4
action: "Check TT110 trend"
description: "Is TT110 rising during operation?"
look_for: "TT110 rate of change"
next:
if_tt110_rising: "conclude_FM006"
if_tt110_stable: "conclude_friction"
conclusions:
conclude_FM005:
diagnosis: "Dry running — pump compressing gas"
confidence: "high"
failure_mode: FM-005
conclude_FM006:
diagnosis: "ICV thermal backflow — hot fluid heating inlet"
confidence: "high"
failure_mode: FM-006
conclude_normal_friction:
diagnosis: "Normal — friction heating within expected range"
confidence: "high"
conclude_friction:
diagnosis: "Elevated friction — possible seal break-in or bore damage"
confidence: "moderate"
failure_mode: FM-003
- id: RC-004
name: "Reduced Flow Rate Diagnostic"
trigger: "FT140 below expected mass flow rate"
related_failure_modes: [FM-001, FM-002, FM-007]
steps:
- step: 1
action: "query_sensor_data"
description: "Pull FT140, PT130, VFD speed"
parameters:
tagindices: [7, 18, 13]
look_for: "Flow rate vs expected at current speed"
- step: 2
action: "Check FT140 calibration"
description: "Verify FT140 density correction factor is applied"
look_for: "Is fluid H2 or N2? Apply correct density correction"
next:
if_calibration_wrong: "conclude_calibration_error"
if_calibration_correct: "step_3"
- step: 3
action: "run_simulation"
description: "Compute expected flow at current conditions"
look_for: "Vol efficiency and loss breakdown"
next:
if_icv_leak_dominant: "conclude_FM001"
if_dcv_leak_dominant: "conclude_FM002"
if_gas_inlet: "conclude_FM007"
conclusions:
conclude_FM001:
diagnosis: "ICV leakage reducing effective displacement"
confidence: "high"
failure_mode: FM-001
conclude_FM002:
diagnosis: "DCV leakage losing compressed fluid"
confidence: "high"
failure_mode: FM-002
conclude_FM007:
diagnosis: "Two-phase inlet reducing effective displacement"
confidence: "high"
failure_mode: FM-007
conclude_calibration_error:
diagnosis: "FT140 reading incorrect — apply density correction"
confidence: "high"
- id: RC-005
name: "Motor Power Anomaly Diagnostic"
trigger: "Motor power or current anomaly at given speed"
related_failure_modes: [FM-003]
steps:
- step: 1
action: "query_sensor_data"
description: "Pull VFD power, current, speed, torque"
parameters:
tagindices: [43, 45, 13, 48]
look_for: "Power/current at each speed point"
- step: 2
action: "Compare to baseline power-speed curve"
description: "Plot power vs speed, compare to reference"
look_for: "Offset direction"
next:
if_power_higher: "step_3"
if_power_lower: "conclude_reduced_load"
- step: 3
action: "search_domain_knowledge"
description: "Check seal friction baseline expectations"
parameters:
category: "operational_context"
look_for: "Post-maintenance friction expectations"
next:
if_recent_seal_work: "conclude_seal_break_in"
if_no_recent_work: "conclude_FM003"
conclusions:
conclude_FM003:
diagnosis: "HP seal friction increasing — possible bore damage"
confidence: "moderate"
failure_mode: FM-003
conclude_seal_break_in:
diagnosis: "Normal seal break-in after maintenance (7-9 kgf → 4-5 kgf)"
confidence: "high"
conclude_reduced_load:
diagnosis: "Reduced load — possible liquid starvation or low discharge pressure"
confidence: "moderate"
- id: RC-006
name: "Post-Maintenance Performance Verification"
trigger: "Performance check after maintenance event"
related_failure_modes: [FM-001, FM-002, FM-003]
steps:
- step: 1
action: "search_domain_knowledge"
description: "Look up the maintenance event details"
parameters:
category: "maintenance_history"
look_for: "What was done, what to expect"
- step: 2
action: "query_sensor_data"
description: "Pull first test run after maintenance"
look_for: "Compare to pre-maintenance baseline"
- step: 3
action: "run_diagnostics"
description: "Run full D1-D8 diagnostic sweep"
look_for: "Any new or resolved diagnostic flags"
- step: 4
action: "run_simulation"
description: "Compare sim prediction to post-maintenance performance"
look_for: "Has the residual changed after maintenance?"
conclusions:
conclude_improved:
diagnosis: "Maintenance successfully addressed the issue"
confidence: "high"
conclude_no_change:
diagnosis: "Maintenance did not resolve the underlying issue"
confidence: "moderate"
conclude_degraded:
diagnosis: "Performance worse after maintenance — investigate installation"
confidence: "high"