- Simulation of a Missile Approach Warning System (MAWS)
- Processes UV/IR sensor data to detect incoming missile threats
- Inspired by real-time avionics and defense system design
- Built for educational and demonstration purposes
- Real-time sensor data processing
- Missile plume signature detection
- Multi-target tracking (up to 8 concurrent tracks)
- Time-to-impact (TTI) estimation
- Threat confidence classification
- Simulated cockpit warning and countermeasure triggering
- Represents raw hardware sensor output
- Data fields:
timestamp_us(microsecond precision)ir_intensityuv_intensityazimuth_degelevation_degdelta_intensitysensor_valid
- Filters and validates missile-like signatures
- Detection criteria:
- Minimum IR threshold
- Minimum UV threshold
- UV/IR ratio within defined bounds
- Minimum intensity growth rate
- Sun-glint rejection logic
- Eliminates false positives (e.g. sunlight reflections, flares)
- Tracks multiple objects simultaneously
- Key characteristics:
- Maximum of 8 active tracks
- Spatial association using angular distance (azimuth/elevation)
- Track confirmation requires multiple frames
- Circular buffer for intensity history
- Prevents false alarms from single-frame noise
- Estimates time-to-impact (TTI)
- Based on:
- Intensity growth between consecutive readings
- Approximation of inverse-square law behavior
- Output range:
- Minimum: 1 second
- Maximum: 99 seconds (fallback/default)
- Produces structured output:
- Threat detected (boolean)
- Confidence level:
- NONE
- LOW
- MEDIUM
- HIGH
- CERTAIN
- Direction (azimuth/elevation)
- Time-to-impact
- Track ID
- Trigger conditions:
- HIGH confidence → cockpit warning
- CERTAIN confidence (TTI < 4s) → automatic flare deployment
- Simulated actions:
- Audio alert ("MISSILE WARNING")
- Visual marker (Helmet Mounted Display)
- Countermeasure deployment signal
- Deterministic execution
- No dynamic memory allocation
- Fixed-size arrays
- Real-time safety
- Predictable timing
- No exceptions
- Fault tolerance
- Sensor health checked before processing
- Modular architecture
- Independent components:
- Detector
- Tracker
- Estimator
- Independent components:
- Multi-frame validation
- Reduces false positives
- Simplified physics model for impact estimation
- Fixed thresholds (illustrative, not real-world values)
- No external dependencies (STL avoided for predictability)
- Maximum 8 simultaneous tracked threats
- Sensor input assumed at fixed time intervals (~20 ms)
- Sensor produces a reading
- System validates sensor health
- Plume signature detection runs
- If valid:
- Track is updated or created
- Track is confirmed across multiple frames
- Time-to-impact is estimated
- Threat assessment is generated
- Warning or countermeasure is triggered (if required)
- C++17 or later
- Any standard compiler (g++, clang, MSVC)
g++ -std=c++17 main.cpp -o maws