🎓 Lesson 20
D5
Fault Detection Using Embedded Observers
An embedded observer is a software tool inside a digital twin that quietly watches sensor data to spot hidden problems—like a fault in a blasting system—before they cause failure.
🎯 Learning Objectives
- ✓ Design a Luenberger observer for a simplified blasthole pressure dynamics model
- ✓ Analyze observer residuals to distinguish between sensor noise and incipient detonator failure
- ✓ Explain how observer gain selection affects fault detection sensitivity and robustness
- ✓ Apply residual thresholding logic using industry-accepted false-alarm rates (e.g., <1% per 1000 shots)
- ✓ Calculate observer convergence time and relate it to critical blast sequence timing constraints
📖 Why This Matters
In modern smart blasting operations, undetected faults—such as misfired detonators, degraded explosive coupling, or faulty down-the-hole pressure sensors—can compromise fragmentation, increase flyrock risk, or trigger regulatory non-compliance. Traditional diagnostics rely on post-blast inspection; embedded observers enable *real-time, pre-detonation fault awareness* by continuously validating expected vs. observed behavior inside the digital twin—turning simulation from a planning tool into an active safety guardian.
📘 Core Principles
Fault detection using embedded observers rests on three pillars: (1) A validated first-principles or data-informed dynamic model of the blasting subsystem (e.g., pressure wave propagation in a blasthole); (2) An observer architecture that asymptotically estimates unmeasurable states (e.g., charge integrity, initiation timing error) using available measurements (e.g., surface vibration, EM signature, or partial pressure traces); and (3) Residual generation and evaluation—where the difference between measured output and observer-predicted output forms a 'residual signal'. Persistent residuals exceeding statistically justified thresholds indicate faults. Observer design must balance convergence speed (to catch fast transients), robustness to modeling uncertainty (e.g., rock variability), and insensitivity to known disturbances (e.g., wind noise on accelerometers).
📐 Luenberger Observer Residual
The residual signal quantifies mismatch between actual sensor output and observer prediction. For linear time-invariant systems, it directly informs fault decision logic.
💡 Worked Example
Problem: A digital twin models blasthole gas pressure dynamics as ẋ = Ax + Bu, y = Cx, with A = [-5], B = [1], C = [1]. Measured pressure at t=0.1s is y_meas = 42 kPa. The observer uses gain L = 8, initial estimate x̂₀ = 0, and u = 50 kPa/s (initiation command). Compute residual r(t) at t = 0.1 s using Euler integration (Δt = 0.02 s).
1.
Step 1: Propagate observer: x̂₁ = x̂₀ + Δt·(A·x̂₀ + B·u - L·(C·x̂₀ - y_meas)) = 0 + 0.02·(0 + 50 - 8·(0 - 42)) = 0.02·(50 + 336) = 7.72
2.
Step 2: Predict output: ŷ₁ = C·x̂₁ = 1·7.72 = 7.72 kPa
3.
Step 3: Compute residual: r₁ = y_meas - ŷ₁ = 42 - 7.72 = 34.28 kPa — exceeds threshold of 5 kPa → indicates fault (e.g., failed detonator)
Answer:
The residual is 34.28 kPa, which far exceeds the safe limit of 5 kPa, indicating a high-confidence fault condition requiring abort or revalidation.
🏗️ Real-World Application
At BHP’s South Flank iron ore operation (Pilbara, WA), an embedded Kalman observer was deployed within their blast digital twin to monitor downhole initiation timing across 120+ holes per round. Using only surface-mounted seismometers and EM field sensors (no downhole wiring), the observer reconstructed individual hole initiation delays by comparing predicted vs. observed P-wave arrival patterns. During commissioning, it detected a batch defect in wireless detonators showing 12–18 ms late firing—previously masked by averaging in conventional QA reports—leading to a supplier recall and 92% reduction in overbreak incidents in subsequent rounds (BHP Technical Bulletin #BLAST-DT-2023-07).
✏️ Student Exercise
Given a simplified 2-state observer model for explosive energy release: ẋ₁ = -a·x₁ + b·u, ẋ₂ = x₁ − c·x₂, y = x₂. With a=3 s⁻¹, b=1.2 kJ/s, c=0.8 s⁻¹, u=10 kJ/s (nominal input), and measured y_meas = 8.4 kJ at t=0.5 s. Design a Luenberger observer with gains L₁=5, L₂=3, initial estimates x̂₁₀=x̂₂₀=0, and Δt=0.1 s. Compute residual r at t=0.5 s. Is this residual indicative of a fault if the alarm threshold is |r| > 1.5 kJ?