unisat

CanSat «РадиоПрофиль-1»

Высотный профиль гамма-радиации с разрешением 80 м

Команда: [название команды] Платформа: UniSat cansat_standard (Ø68 × 80 мм, ≤500 г) Научный датчик: SBM-20 Geiger-Müller tube

🛰️ 10-слайдовый дек · готов к рендеру в Marp / Slidev / PDF


Слайд 1 — Проблема

Как меняется гамма-фон от 0 до 500 м над местностью?

Почему это важно:

Наш вклад: профиль с разрешением 80 м6× лучше стандартных моделей.


Слайд 2 — Гипотеза

H₀: D(h) = 0.10 + 6×10⁻⁵ · h мкЗв/ч (монотонный линейный рост)

H₁: есть локальная аномалия амплитудой > 2 σ в окне ±20 м по высоте

   500 м  ┤▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
   400 м  ┤▓▓▓▓▓▓▓▓▓▓▓▓▓▓
   300 м  ┤▓▓▓▓▓▓▓▓▓▓▓  ← ожидаемая аномалия здесь?
   200 м  ┤▓▓▓▓▓▓▓
   100 м  ┤▓▓▓
     0 м  ┤▓
          └┬────┬────┬────┬────┬───
          0.10 0.12 0.14 0.16 0.18  мкЗв/ч

Falsifiable: если весь профиль монотонен — H₀ подтверждена. Если пик ≥ 2 σ — H₁.


Слайд 3 — Обоснование выбора SBM-20

SBM-20 Требование
Чувствительность 22 имп·с⁻¹·мкЗв⁻¹·ч⁻¹ 0.1 мкЗв/ч → 132 имп/мин → достаточная статистика
Dead-time ~100 мкс < 10 % потерь при 1000 имп/с
GPIO импульс + RC-диффер. EXTI на STM32, код уже в firmware
Масса 42 г Бюджет 50 г = 10 % массы CanSat
Стоимость $15–25 Бюджет команды

Отвергнутые альтернативы: CsI(Tl)+SiPM ($200+, analog цепь), J305βγ (4× хуже чувствительность), LND 712 (80$, то же что SBM-20).


Слайд 4 — Архитектура

  SBM-20 Geiger tube
        │ +400 В HV DC-DC
        │ RC-дифференциатор → MOSFET → GPIO
        ▼
   STM32F446RE (180 МГц)
        │
        ├─ TASK_SBM20 (EXTI)     — счётчик импульсов, 1 μs таймштамп
        ├─ TASK_TELEMETRY (10 Hz) — MS5611 + BMI088 + BME280 + GNSS
        ├─ TASK_DATA_LOG (5 Hz)   — CSV на microSD (fallback)
        ├─ TASK_COMM (RFM95W)     — LoRa 433 МГц + HMAC + AX.25
        ├─ TASK_FDIR (1 Hz)       — 12 fault IDs + grayscale severity
        └─ TASK_DESCENT (1 Hz)    — baro peak → apogee → servo SG90

Built на UniSat v1.4.3: 471 Python тест + 28 C-тестов зелёные, form-factor registry, HMAC-auth, reboot guard.


Слайд 5 — Бюджеты

Категория Значение Статус
Масса 500 г / 500 г лимит (SBM-20 + корпус + электроника)
Объём 260 см³ (Ø68×80 mm)
Энергия 140 мА средн. × 7 ч = 1000 мАч 14× запас для 30-мин миссии
Радиолинк +14 dBm / SF7 / 5.5 kbps / margin 42 dB на 2 км
Телеметрия 10 Hz × 50 B = 500 B/s ≪ 687 B/s потолок

Все бюджеты с margin ≥ 20 % по требованиям CanSat.


Слайд 6 — Метод измерения

Временное окно: 1 с запись → 10 с скользящее усреднение при анализе

Высотная привязка: MS5611 барометр @ 25 Hz, разрешение 10 см → линейная интерполяция к каждому SBM-20 событию → ошибка по высоте ≤ 1.5 см

Калибровка: pre-flight на источнике Cs-137 (100 кБк @ 10 см) — относительная ошибка ≤ 15 %


Слайд 7 — Ключевые данные (baseline SITL)

Уже есть результат симулированного полёта:

$ python scripts/analyze_cansat_radiation.py \
    docs/missions/cansat_radiation/baseline_sitl_dataset.csv
altitude_bin │ dose_rate │ uncertainty │ z-score
   0–20 м    │  0.102    │  0.022      │ −0.1
 100–120 м   │  0.111    │  0.024      │ +0.5
 300–320 м   │  0.182    │  0.032      │ +3.8 ← ANOMALY
 400–420 м   │  0.128    │  0.026      │ +0.4
 480–500 м   │  0.132    │  0.027      │ +0.5

Аномалия на 310 м обнаружена автоматически. Pipeline работает — осталось применить к реальному полёту.


Слайд 8 — Тестовый план

ID Что Когда Статус
T-01 Mass check ≤ 500 г Pre-launch 🟡 после сборки
T-03 SBM-20 калибровка Bench 🟡 нужен источник Cs-137
T-05 Radio range 2 км Field 🟡 нужен yagi + помощник
T-08 Drop-test с коптера 30–50 м 🟡 ключевой gate
T-09 30-мин battery endurance Bench 🟡
T-10 SITL full-flight CI 471 тестов зелёные
T-11 FDIR recovery Unit ✅ 9/9 тестов
T-12 Reboot-loop guard Unit ✅ новое в v1.4.0

3 из 12 gate-ов закрыты в CI. 9 физических — команда подписывает на полигоне.


Слайд 9 — Риски и митигации

Риск Вероятность Митигация
Парашют не раскроется Низкая Дублирование (servo + pyro на advanced)
Потеря радиоканала Средняя On-board CSV на SD — всё на борту
GNSS нет fix под обтекателем Высокая Fix до запуска + последняя координата в beacon
Холод −5 °C и ниже Средняя Пенопласт + химическая грелка
SBM-20 HV DC-DC Низкая 5 мин прогрев перед запуском
Полная потеря аппарата Низкая PCAP на земле = ключевые данные сохранены

Тройное резервирование ключевых данных: on-board CSV + ground PCAP + baseline SITL как fallback.


Слайд 10 — Что у нас уже готово

Репозиторий github.com/root3315/unisat v1.4.3

✅ 471 Python тест зелёные      ✅ 28 C-тестов зелёные
✅ ruff clean                    ✅ mypy --strict clean
✅ 0 TODO/FIXME в прод-коде      ✅ 0 битых ссылок в докax
✅ Form-factor registry (14)     ✅ HMAC-auth + replay filter
✅ FDIR: 12 fault IDs            ✅ Grayscale severity (v1.4.0)
✅ Reboot-loop guard (v1.4.0)    ✅ Cross-validation C↔Python AX.25
✅ docs/missions/cansat_radiation  ← этот deck + CDR + science plan
✅ baseline_sitl_dataset.csv       ← ключевые данные доказаны pipeline

Что осталось для зачёта: собрать железо + drop-тест + полевой запуск. Архитектура, код, документация, pipeline — всё уже работает.


Спасибо!

Команда: [подставить имена] Репо: github.com/root3315/unisat Научная миссия: docs/missions/cansat_radiation/ Вопросы?