# 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"