Lab040: add persistent emergency intent and safe reset
This commit is contained in:
170
data/processed/lab040/lab040_report.txt
Normal file
170
data/processed/lab040/lab040_report.txt
Normal file
@@ -0,0 +1,170 @@
|
||||
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 и не закоммичена; Lab028–Lab039 не изменены.
|
||||
Reference in New Issue
Block a user