Skip to content

nvipash/uav-cps-analyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UAV-CPS-Analyzer

Програмний комплекс моделювання кіберфізичних систем безпілотних літальних апаратів

Software Complex for Modeling Cyber-Physical Systems of Unmanned Aerial Vehicles

Python 3.9+ License: GPL v3 Version

Research Questions / Дослідницькі питання

This software addresses the following formal research questions in the dissertation "Methods and Software Tools for Modeling Electromagnetic Interference for Countermeasures Against Unmanned Aerial Vehicles":

  1. Under what geometric and environmental conditions does electromagnetic interference achieve effective disruption of UAV control links, and how does Al-Hourani A2G propagation modelling capture the altitude-dependent LOS transition that governs jamming effectiveness at the ranges typical of C-UAS operations (0.1–5 km)?

  2. How do propagation model selection and uncertainty quantification affect the reliability of jamming-effectiveness predictions, and what is the quantitative improvement of the integrated multi-model framework over single-model baselines (Friis-only and Al-Hourani-only without fading)?

  3. What are the quantitative limitations of simulation-based V&V for C-UAS systems in the absence of field measurements, and how should prediction uncertainty be formally communicated to system designers using ASME V&V 20?


Термінологія / Terminology

  • REB (Радіоелектронна боротьба / Radio Electronic Combat) — the use of electromagnetic energy to disrupt, deny, or degrade adversary use of the electromagnetic spectrum, primarily targeting UAV control and telemetry links. Synonym of electronic warfare (EW) in the Ukrainian military context.

  • EMI (Електромагнітні завади / Electromagnetic Interference) — in this project: intentional electromagnetic interference (jamming) applied to UAV control links, as opposed to unintentional EMI in the EMC/compliance sense. All analyses assume a deliberate jamming source targeting the ground-control-station-to-UAV uplink.


Опис

UAV-CPS-Analyzer — комплексний програмний інструмент для моделювання та аналізу надійності кіберфізичних систем безпілотних літальних апаратів в умовах електромагнітних завад. Інтегрує 10 фізичних моделей розповсюдження, 8 верифікованих AI/ML модулів (GP-Байєс оптимізація, сурогатні мережі, Q-learning RL, генетичний алгоритм та ін.), формальну валідацію за ASME V&V 20 та 48 еталонних сценаріїв з 6 верифікованих відкритих науково-технічних джерел.

Автори: Новицький П.С., Степаняк М.В., Національний університет «Львівська політехніка», 2025-2026

Основні можливості

  • 10 моделей розповсюдження — Friis, COST 231-Hata, Rice fading, Shadow fading, Al-Hourani A2G, Altitude-dependent, BER/PER soft degradation, Doppler, ITU-R P.676 atmospheric absorption, urban multi-path correction
  • Монте-Карло симуляція — QMC (Sobol), antithetic variates, адаптивна збіжність, просторова кореляція (Gudmundson), N=10 000
  • Емуляція FHSS — DJI OcuSync 2.0/3.0/3+, 5 стратегій глушіння, LFSR-16
  • Аналіз C-UAS — Dempster-Shafer 4-сенсорна фузія, Парето-оптимізація сенсорних комплексів
  • 8 AI/ML модулів — GP-Байєс оптимізація (EI), сурогатна модель (2000–3000×, R² на синтетичних даних), Q-learning RL, ансамблевий класифікатор (99.6% на синтетичних даних¹), Nash ко-еволюція, PCE+активне навчання, GB-корекція, генетичний алгоритм
  • Мережі глушників — координоване об'єднання потужностей, генетична оптимізація розміщення
  • Сценарії роїв — 4 типи атак (cooperative/decentralized/kamikaze/decoy+strike)
  • Формальна валідація — ASME V&V 20, 48 еталонних випадків з 6 верифікованих джерел

Встановлення

pip install numpy scipy matplotlib scikit-learn

Python 3.9+, без додаткових залежностей.

Запуск

# Повний аналіз (26 кроків, ~160 с)
python run_analysis.py

# Окремі модулі
python validation.py
python ai_threat_classifier.py
python multi_jammer_coordination.py

Структура проекту

UAV-CPS-Analyzer/
│
├── Core modules (Layer 1 — Physics)
│   ├── propagation_models.py   # 10 RF/propagation models
│   ├── fhss_emulator.py        # FHSS protocol emulation
│   ├── monte_carlo_engine.py   # MC + QMC + antithetic, N=10 000
│   ├── cps_analyzer.py         # Dempster-Shafer sensor fusion, C-UAS
│   └── config.py               # Drone DB, jammer specs, environments
│
├── Statistical & Validation (Layer 2)
│   ├── sensitivity.py          # Sobol S1/ST, Morris elementary effects
│   ├── validation.py           # ASME V&V 20, 48 cases, per-domain MAPE
│   ├── reporting.py            # LaTeX booktabs tables, Markdown reports
│   ├── baseline_models.py      # Friis/Al-Hourani baselines, run_baseline_comparison()
│   └── literature_dataset.py   # A2G data from Khawaja (2019), data_origin labels
│
├── AI/ML & Advanced (Layer 3)
│   ├── ai_surrogate.py         # MLP/GP/ensemble surrogate, R²=0.965 (synthetic), 2000–3000×
│   ├── ai_optimizer.py         # Bayesian optimization (GP + EI acquisition)
│   ├── ai_propagation_correction.py  # Gradient Boosting residual correction
│   ├── ai_adaptive_jamming.py  # Q-learning RL jammer agent
│   ├── ai_threat_classifier.py # MLP+RF+GBT ensemble, 99.6% accuracy (synthetic data)
│   ├── ai_coevolution.py       # Adversarial AI-vs-AI, Nash equilibrium
│   ├── ai_uncertainty_active.py # PCE (Hermite order-3), active learning
│   ├── multi_jammer_coordination.py  # Jammer networks, genetic optimizer
│   ├── swarm_scenarios.py      # UAV swarm attacks (4 types)
│   ├── trajectory_scenarios.py # Time-varying trajectories (4 types)
│   └── visualization.py        # 5 publication figures (300 DPI PDF+PNG)
│
├── run_analysis.py             # 26-step integrated pipeline
│
├── docs/
│   ├── en/README.md            # Full English documentation
│   └── ua/README.md            # Повна українська документація
│
└── output_v1.5/                # Generated artifacts
    ├── fig_*.pdf / fig_*.png   # 5 publication figures (300 DPI)
    ├── table3.tex / table4.tex / table7.tex
    └── summary_report.md

Ключові результати (v1.5)

Модуль Результат
Surrogate model R²=0.965, RMSE=3.32 dB, 2000–3000× speedup ¹
BER/PER threshold Реальний поріг J/S ≈ −10 dB (не +10 dB) → 100× менша потужність
FHSS protection Narrowband втрачає 97% ефективності проти FHSS ²
Nash equilibrium frequency_diversity ~40–45% — домінантна стратегія захисника
ThreatClassifier (3-class) 99.6% accuracy (vs 32% D-S) — synthetic data only ¹
DroneRFClassifier (drone/no-drone) Trained on real DroneRF measurements (Mohammed et al. 2019) ³
RL jammer (adversarial) +112% vs best fixed strategy
Spatial correlation Ігнорування → +9–30% завищення ширини CI
Baseline comparison (integrated vs Friis) Integrated model MAPE 35.7% vs Friis-only (see baseline table)
Validation (medium range) MAPE 24.9%, PASS rate 53% (ASME V&V 20, 17 кейсів)
Validation (field_measurement) MAPE 16.5% (Khawaja 2019, 5 A2G кейсів)
Validation (field_meas_estimated) MAPE 29.9% (Khawaja 2019, 7 A2G кейсів)
Validation (overall, 48 кейсів) MAPE 35.7%, CI coverage 50%, PASS 29%

¹ ThreatClassifier accuracy measured on synthetic test data (ThreatDataGenerator). Real-world accuracy for FIBER_OPTIC and AUTONOMOUS classes is unknown — no public field measurement dataset exists for these classes. See ai_threat_classifier.py module docstring.

² FHSS effectiveness results are theoretical analytical bounds (Torrieri 2018, Poisel 2008, Adamy 2015). No open-access OcuSync-specific measurement data was available for empirical validation.

³ DroneRFClassifier covers RF-controlled commercial drones (Bebop, AR Drone, Phantom 3) only. Accuracy on real held-out DroneRF test split. Requires DroneRF dataset path at runtime.

Документація

Цитування

@software{uav_cps_analyzer_2025,
  author    = {Novitskyi, Pavlo and Stepaniak, Maksym},
  title     = {UAV-CPS-Analyzer: Software Complex for Cyber-Physical Systems
               Analysis of UAV Communication Reliability},
  year      = {2025},
  institution = {Lviv Polytechnic National University},
  version   = {1.5.0}
}

Ліцензія

GNU General Public License v3.0 — see LICENSE file.

About

The UAV-CPS-Analyzer software package is presented for simulation and analysis of electromagnetic interference against UAV communication systems in counter-UAV (C-UAS) tasks. The modular Python architecture uses NumPy, SciPy, scikit-learn, and multiprocessing for Monte Carlo simulation and AI-based jamming, FHSS emulation, and propagation analysis

Topics

Resources

License

Stars

Watchers

Forks

Contributors