Files
SDR-Rover/data/processed/lab040/lab040_report.txt
2026-08-05 13:12:49 +03:00

171 lines
23 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Lab040 — постоянное аварийное намерение и безопасное повторное разрешение движения
Состояние Git до начала
- Корень: C:/Users/user/Desktop/projects/SDR_Rover
- Ветка: main
- HEAD: b3ebe1637fbb401198cdbb43a862e94614be9cb0
- Рабочее дерево и индекс были чистыми; относительно локально известной origin/main расхождение составляло 0/0.
- Коммиты Lab038 и Lab039 присутствовали; сетевые команды Git не выполнялись.
Автоматы наземной станции и ровера
- Наземная станция: GROUND_NORMAL → GROUND_EMERGENCY_REQUESTED → GROUND_EMERGENCY_CONFIRMED → GROUND_RESET_REQUESTED → GROUND_MOVEMENT_REAUTHORIZED.
- Подтверждение аварийной команды прекращает её копии, но не снимает аварийное намерение и не разрешает положительные команды движения.
- Ровер сохраняет состояния NORMAL, STAGE1_DECELERATION, STAGE2_BRAKING и EMERGENCY_LATCHED из Lab039.
- Обычная или поздняя старая команда не снимает EMERGENCY_LATCHED.
Безопасный сброс
- Сброс использует отдельные идентификаторы потоков и прикладные данные внутри неизменного пакета LinkPacket из Lab033.
- Проверяются зафиксированное аварийное состояние, нулевая фактическая скорость, свежесть связи 250 мс, идентификатор события, номер последовательности, нулевая требуемая скорость и запрет движения.
- Потерянное подтверждение сброса вызывает повтор запроса; принятый дубликат не повторяет действие, но вызывает новое подтверждение.
- После подтверждения сброса сохраняется нулевая скорость; новая команда оператора формируется только через 2 секунды и имеет новый номер последовательности.
Параметры
- Опыт 120 с; аварийная команда на 30-й секунде; сброс на 60-й секунде; команды 20 Гц; повторы каждые 50 мс.
- Матрица: 5 каналов × 3 режима × 3 скорости = 45 сочетаний; условия с потерями по 200 повторов.
- Сторожевой таймер 150/250 мс; замедление первой ступени 1,0 м/с², второй ступени 3,0 м/с², ускорение восстановления 1,0 м/с².
- Исходная нагрузка проверена контрольной суммой и помехоустойчивым кодированием: 12356/714.
Компактная таблица 45 сочетаний
канал | режим | скорость | доставка аварийной команды, % | время аварийного намерения, % | небезопасное восстановление, % | остановка, % | нагрузка, кбит/с | видео, % | телеметрия, % | очередь
Без потерь, 300 кбит/с | Ограниченное повторение | 5 | 100.000 | 0.417 | 0.000 | 100.000 | 0.00700 | 100.000 | 100.000 | 21
Без потерь, 300 кбит/с | Ограниченное повторение | 15 | 100.000 | 0.417 | 0.000 | 100.000 | 0.00700 | 100.000 | 100.000 | 21
Без потерь, 300 кбит/с | Ограниченное повторение | 25 | 100.000 | 0.417 | 0.000 | 100.000 | 0.00700 | 100.000 | 100.000 | 21
Без потерь, 300 кбит/с | Постоянное намерение | 5 | 100.000 | 75.000 | 0.000 | 100.000 | 0.00700 | 100.000 | 100.000 | 21
Без потерь, 300 кбит/с | Постоянное намерение | 15 | 100.000 | 75.000 | 0.000 | 100.000 | 0.00700 | 100.000 | 100.000 | 21
Без потерь, 300 кбит/с | Постоянное намерение | 25 | 100.000 | 75.000 | 0.000 | 100.000 | 0.00700 | 100.000 | 100.000 | 21
Без потерь, 300 кбит/с | Постоянное намерение и сброс | 5 | 100.000 | 25.002 | 0.000 | 100.000 | 0.01333 | 100.000 | 100.000 | 21
Без потерь, 300 кбит/с | Постоянное намерение и сброс | 15 | 100.000 | 25.002 | 0.000 | 100.000 | 0.01333 | 100.000 | 100.000 | 21
Без потерь, 300 кбит/с | Постоянное намерение и сброс | 25 | 100.000 | 25.002 | 0.000 | 100.000 | 0.01333 | 100.000 | 100.000 | 21
300 кбит/с, помеха 50 мс | Ограниченное повторение | 5 | 100.000 | 0.417 | 0.000 | 100.000 | 0.00711 | 94.165 | 97.920 | 21
300 кбит/с, помеха 50 мс | Ограниченное повторение | 15 | 100.000 | 0.417 | 0.000 | 100.000 | 0.00711 | 94.165 | 97.920 | 21
300 кбит/с, помеха 50 мс | Ограниченное повторение | 25 | 100.000 | 0.417 | 0.000 | 100.000 | 0.00711 | 94.165 | 97.920 | 21
300 кбит/с, помеха 50 мс | Постоянное намерение | 5 | 100.000 | 75.000 | 0.000 | 100.000 | 0.00711 | 94.165 | 97.920 | 21
300 кбит/с, помеха 50 мс | Постоянное намерение | 15 | 100.000 | 75.000 | 0.000 | 100.000 | 0.00711 | 94.165 | 97.920 | 21
300 кбит/с, помеха 50 мс | Постоянное намерение | 25 | 100.000 | 75.000 | 0.000 | 100.000 | 0.00711 | 94.165 | 97.920 | 21
300 кбит/с, помеха 50 мс | Постоянное намерение и сброс | 5 | 100.000 | 25.004 | 0.000 | 100.000 | 0.01360 | 94.164 | 97.919 | 21
300 кбит/с, помеха 50 мс | Постоянное намерение и сброс | 15 | 100.000 | 25.004 | 0.000 | 100.000 | 0.01360 | 94.164 | 97.919 | 21
300 кбит/с, помеха 50 мс | Постоянное намерение и сброс | 25 | 100.000 | 25.004 | 0.000 | 100.000 | 0.01360 | 94.164 | 97.919 | 21
260 кбит/с, помеха 200 мс | Ограниченное повторение | 5 | 100.000 | 0.417 | 0.000 | 100.000 | 0.00708 | 96.028 | 97.976 | 36
260 кбит/с, помеха 200 мс | Ограниченное повторение | 15 | 100.000 | 0.417 | 0.000 | 100.000 | 0.00708 | 96.028 | 97.976 | 36
260 кбит/с, помеха 200 мс | Ограниченное повторение | 25 | 100.000 | 0.417 | 0.000 | 100.000 | 0.00708 | 96.028 | 97.976 | 36
260 кбит/с, помеха 200 мс | Постоянное намерение | 5 | 100.000 | 75.000 | 0.000 | 100.000 | 0.00708 | 96.028 | 97.976 | 36
260 кбит/с, помеха 200 мс | Постоянное намерение | 15 | 100.000 | 75.000 | 0.000 | 100.000 | 0.00708 | 96.028 | 97.976 | 36
260 кбит/с, помеха 200 мс | Постоянное намерение | 25 | 100.000 | 75.000 | 0.000 | 100.000 | 0.00708 | 96.028 | 97.976 | 36
260 кбит/с, помеха 200 мс | Постоянное намерение и сброс | 5 | 100.000 | 25.012 | 0.000 | 100.000 | 0.01392 | 96.031 | 97.977 | 38
260 кбит/с, помеха 200 мс | Постоянное намерение и сброс | 15 | 100.000 | 25.012 | 0.000 | 100.000 | 0.01392 | 96.031 | 97.977 | 38
260 кбит/с, помеха 200 мс | Постоянное намерение и сброс | 25 | 100.000 | 25.012 | 0.000 | 100.000 | 0.01392 | 96.031 | 97.977 | 38
230 кбит/с, помеха 200 мс | Ограниченное повторение | 5 | 100.000 | 0.417 | 0.000 | 100.000 | 0.00717 | 84.913 | 97.985 | 40
230 кбит/с, помеха 200 мс | Ограниченное повторение | 15 | 100.000 | 0.417 | 0.000 | 100.000 | 0.00717 | 84.913 | 97.985 | 40
230 кбит/с, помеха 200 мс | Ограниченное повторение | 25 | 100.000 | 0.417 | 0.000 | 100.000 | 0.00717 | 84.913 | 97.985 | 40
230 кбит/с, помеха 200 мс | Постоянное намерение | 5 | 100.000 | 75.000 | 0.000 | 100.000 | 0.00717 | 84.913 | 97.985 | 40
230 кбит/с, помеха 200 мс | Постоянное намерение | 15 | 100.000 | 75.000 | 0.000 | 100.000 | 0.00717 | 84.913 | 97.985 | 40
230 кбит/с, помеха 200 мс | Постоянное намерение | 25 | 100.000 | 75.000 | 0.000 | 100.000 | 0.00717 | 84.913 | 97.985 | 40
230 кбит/с, помеха 200 мс | Постоянное намерение и сброс | 5 | 100.000 | 25.014 | 0.000 | 100.000 | 0.01430 | 84.918 | 97.987 | 40
230 кбит/с, помеха 200 мс | Постоянное намерение и сброс | 15 | 100.000 | 25.014 | 0.000 | 100.000 | 0.01430 | 84.918 | 97.987 | 40
230 кбит/с, помеха 200 мс | Постоянное намерение и сброс | 25 | 100.000 | 25.014 | 0.000 | 100.000 | 0.01430 | 84.918 | 97.987 | 40
230 кбит/с, помеха 1000 мс | Ограниченное повторение | 5 | 99.000 | 0.417 | 1.000 | 100.000 | 0.00739 | 86.314 | 97.971 | 40
230 кбит/с, помеха 1000 мс | Ограниченное повторение | 15 | 99.000 | 0.417 | 1.000 | 100.000 | 0.00739 | 86.314 | 97.971 | 40
230 кбит/с, помеха 1000 мс | Ограниченное повторение | 25 | 99.000 | 0.417 | 1.000 | 99.000 | 0.00739 | 86.314 | 97.971 | 40
230 кбит/с, помеха 1000 мс | Постоянное намерение | 5 | 100.000 | 75.000 | 0.000 | 100.000 | 0.00811 | 86.314 | 97.971 | 40
230 кбит/с, помеха 1000 мс | Постоянное намерение | 15 | 100.000 | 75.000 | 0.000 | 100.000 | 0.00811 | 86.314 | 97.971 | 40
230 кбит/с, помеха 1000 мс | Постоянное намерение | 25 | 100.000 | 75.000 | 0.000 | 100.000 | 0.00811 | 86.314 | 97.971 | 40
230 кбит/с, помеха 1000 мс | Постоянное намерение и сброс | 5 | 100.000 | 25.009 | 0.000 | 100.000 | 0.01479 | 86.318 | 97.975 | 39
230 кбит/с, помеха 1000 мс | Постоянное намерение и сброс | 15 | 100.000 | 25.009 | 0.000 | 100.000 | 0.01479 | 86.318 | 97.975 | 39
230 кбит/с, помеха 1000 мс | Постоянное намерение и сброс | 25 | 100.000 | 25.009 | 0.000 | 100.000 | 0.01479 | 86.318 | 97.975 | 39
Отрицательный исходный режим
- Полностью потерянные первые 500 мс аварийной передачи: 2 на одно сочетание.
- Остановки по сторожевому таймеру после такой потери: 4.
- Небезопасные восстановления движения: 6; максимальная доля 1.000%.
- Среднее время от остановки до повторного движения: 1.1666 с; путь после восстановления до 599.4074 м.
- Ограниченный режим Lab038 служит отрицательным исходным уровнем и не принимается для рабочей архитектуры.
Постоянное аварийное намерение
- Итоговая доставка 100% в режимах постоянного намерения получена в конечной выборке и не является математической гарантией.
- Безопасность не зависит от гарантированной доставки удалённой команды: локальный сторожевой таймер продолжает действовать.
- Подтверждение аварийной команды (Emergency ACK) прекращает копии, но не снимает аварийное намерение emergency_intent.
- Положительные задания при активном аварийном намерении: 0.
- Команды с разрешением движения при активном аварийном намерении: 0.
- Небезопасные восстановления в режимах 2 и 3: 0.
Подтверждение сброса
- Принятые запросы сброса: 1.0000 на опыт; отклонённые: 0.0120.
- Причины отказов: аварийное состояние не зафиксировано=0, движение=0, устаревшая связь=36, неверное событие=0, старый номер последовательности=0, ненулевая скорость=0, разрешение движения=0.
- Среднее число повторов сброса: 0.0990; потерянных подтверждений сброса: 0.0000.
- 95-й процентиль времени от запроса оператора до подтверждения сброса: до 7.477 мс.
- Движение до подтверждения сброса: 0; автоматическое восстановление старой команды: 0.
- Подтверждение сброса (RESET_ACK) разрешает перейти только в безопасное состояние с нулевой скоростью.
- Для движения после сброса требуется новая команда оператора.
Точечная проверка пути до начала безопасной реакции
- Канал: 230 кбит/с, средняя помеха 1000 мс; транспортный эксперимент повторно не запускался.
- Если в момент действия оператора уже активно состояние STAGE1_DECELERATION, STAGE2_BRAKING или EMERGENCY_LATCHED, путь до начала реакции равен нулю и не измеряется до будущего перехода в торможение.
- режим | скорость, км/ч | среднее, м | 95-й процентиль, м | максимум, м | полные остановки, % | небезопасные возобновления
- Ограниченное повторение | 5 | 0.005284 | 0.005362 | 0.005362 | 100.000 | 2
- Ограниченное повторение | 15 | 0.015719 | 0.016087 | 0.016087 | 100.000 | 2
- Ограниченное повторение | 25 | 0.026197 | 0.026812 | 0.026812 | 99.000 | 2
- Постоянное намерение | 5 | 0.005284 | 0.005362 | 0.005362 | 100.000 | 0
- Постоянное намерение | 15 | 0.015719 | 0.016087 | 0.016087 | 100.000 | 0
- Постоянное намерение | 25 | 0.026197 | 0.026812 | 0.026812 | 100.000 | 0
- Постоянное намерение и сброс | 5 | 0.005284 | 0.005362 | 0.005362 | 100.000 | 0
- Постоянное намерение и сброс | 15 | 0.015719 | 0.016087 | 0.016087 | 100.000 | 0
- Постоянное намерение и сброс | 25 | 0.026197 | 0.026812 | 0.026812 | 100.000 | 0
- Сводная и двигательная таблицы согласованы по числу повторов, доле полных остановок и небезопасным возобновлениям.
- Ни один график Lab040 напрямую не использует путь до начала реакции; график пути до остановки использует отдельный показатель полного пути и не требует изменения.
Движение и нагрузка
- Максимальный путь до полной остановки: 9.2678 м; максимальное время: 2.3335 с.
- Дополнительная нагрузка защиты: 0.00948…0.01479 кбит/с.
- Нагрузка нулевых состояний: до 5.52000 кбит/с; максимальная очередь 40 пакетов.
- Видео опубликовано: 84.913…100.000%; телеметрия: 97.919…100.000%.
Функциональные проверки
- ПРОЙДЕНО — 01. Оператор фиксирует аварийное намерение: действие оператора фиксирует аварийное намерение наземной станции
- ПРОЙДЕНО — 02. После аварии нет положительной заданной скорости: аварийное намерение заменяет движение безопасным нулевым состоянием с торможением
- ПРОЙДЕНО — 03. Движение запрещено до сброса: после подтверждения аварийной команды движение остаётся запрещённым
- ПРОЙДЕНО — 04. Потеря аварийной команды сохраняет намерение: управляемая помеха теряет все копии за первые 500 мс, не снимая аварийное намерение
- ПРОЙДЕНО — 05. Подтверждение аварии сохраняет намерение: потеря первого подтверждения и доставка повтора сохраняют аварийное намерение
- ПРОЙДЕНО — 06. Первая аварийная команда фиксирует состояние ровера: первая аварийная команда фиксирует аварийное состояние ровера
- ПРОЙДЕНО — 07. Обычная команда не снимает аварийное состояние: обычная команда не снимает аварийное состояние ровера
- ПРОЙДЕНО — 08. Старая команда движения отклоняется: запоздалая команда движения со старым номером последовательности отклоняется
- ПРОЙДЕНО — 09. Сброс при движении отклоняется: движущийся ровер отклоняет запрос сброса
- ПРОЙДЕНО — 10. Сброс при устаревшей связи отклоняется: при устаревшем состоянии связи запрос сброса отклоняется
- ПРОЙДЕНО — 11. Сброс для неверного события отклоняется: запрос сброса с неверным идентификатором аварии отклоняется
- ПРОЙДЕНО — 12. Сброс со старым номером последовательности отклоняется: запрос сброса со старым номером последовательности отклоняется
- ПРОЙДЕНО — 13. Сброс с ненулевой скоростью отклоняется: ненулевая скорость или разрешение движения приводят к отклонению сброса
- ПРОЙДЕНО — 14. После успешного сброса скорость остаётся нулевой: принятый сброс выводит из аварийного состояния только в состояние нулевой скорости
- ПРОЙДЕНО — 15. До подтверждения сброса движение отсутствует: до подтверждения сброса наземная станция сохраняет безопасное нулевое задание
- ПРОЙДЕНО — 16. Потеря подтверждения сброса вызывает повтор: управляемая потеря первого подтверждения сброса вызывает повтор запроса
- ПРОЙДЕНО — 17. Дубликат не выполняет сброс дважды: принятый дубликат не выполняет сброс повторно
- ПРОЙДЕНО — 18. На дубликат повторно отправляется подтверждение: принятый дубликат вызывает повторное подтверждение сброса
- ПРОЙДЕНО — 19. Старая команда движения не восстанавливается: подтверждение сброса не восстанавливает сохранённую команду движения
- ПРОЙДЕНО — 20. Для движения требуется новая команда оператора: для движения требуется новый номер последовательности команды оператора
- ПРОЙДЕНО — 21. Аварийное состояние устойчиво к обычным командам: состояние EMERGENCY_LATCHED не снимается обычной командой управления
- ПРОЙДЕНО — 22. Сторожевой таймер работает при потере аварийной команды: локальный двухступенчатый сторожевой таймер работает без доставки аварийной команды
- ПРОЙДЕНО — 23. Интервалы помех воспроизводимы: фиксированное начальное значение генератора воспроизводит интервалы помех
- ПРОЙДЕНО — 24. Действие оператора во время торможения: действие оператора при уже активном торможении даёт нулевой путь до начала реакции
Созданные файлы
- protocol/persistent_emergency.py
- protocol/safe_reset.py
- tests/lab040_persistent_emergency.py
- data/processed/lab040/lab040_summary.csv
- data/processed/lab040/lab040_emergency_metrics.csv
- data/processed/lab040/lab040_reset_metrics.csv
- data/processed/lab040/lab040_motion_metrics.csv
- data/processed/lab040/lab040_load_metrics.csv
- data/processed/lab040/lab040_report.txt
- data/processed/lab040/lab040_emergency_delivery.png
- data/processed/lab040/lab040_unsafe_recovery.png
- data/processed/lab040/lab040_latch_time.png
- data/processed/lab040/lab040_stop_path.png
- data/processed/lab040/lab040_reset_latency.png
- data/processed/lab040/lab040_protection_load.png
- data/processed/lab040/lab040_video_telemetry.png
- data/processed/lab040/lab040_tradeoff.png
Ограничения
- Параметры замедления предварительные и требуют измерения на реальном ровере.
- Модель одномерная и не заменяет испытания тормозов, привода и процедуры операторского сброса.
- Lab040 не добавлена в Git и не закоммичена; Lab028Lab039 не изменены.