From b3ebe1637fbb401198cdbb43a862e94614be9cb0 Mon Sep 17 00:00:00 2001 From: LittleSam129 <1qwe432@gmail.com> Date: Wed, 5 Aug 2026 11:44:43 +0300 Subject: [PATCH] Lab039: model two-stage failsafe braking --- PROJECT_LOG.md | 25 + .../lab039/lab039_analytic_checks.csv | 10 + .../lab039/lab039_analytic_vs_model.png | Bin 0 -> 48257 bytes .../lab039/lab039_deceleration_profiles.png | Bin 0 -> 30344 bytes .../lab039/lab039_distance_metrics.csv | 181 ++ .../lab039/lab039_emergency_path.png | Bin 0 -> 80927 bytes .../lab039/lab039_emergency_stop_metrics.csv | 46 + .../processed/lab039/lab039_path_by_speed.png | Bin 0 -> 74380 bytes .../lab039/lab039_policy_comparison.png | Bin 0 -> 44943 bytes .../lab039/lab039_reaction_rates.png | Bin 0 -> 46094 bytes data/processed/lab039/lab039_report.txt | 183 ++ .../lab039/lab039_safety_state_time.png | Bin 0 -> 50486 bytes data/processed/lab039/lab039_summary.csv | 181 ++ data/processed/lab039/lab039_tradeoff.png | Bin 0 -> 46301 bytes .../lab039/lab039_watchdog_metrics.csv | 181 ++ protocol/two_stage_failsafe.py | 229 ++ tests/lab039_two_stage_braking.py | 1890 +++++++++++++++++ 17 files changed, 2926 insertions(+) create mode 100644 data/processed/lab039/lab039_analytic_checks.csv create mode 100644 data/processed/lab039/lab039_analytic_vs_model.png create mode 100644 data/processed/lab039/lab039_deceleration_profiles.png create mode 100644 data/processed/lab039/lab039_distance_metrics.csv create mode 100644 data/processed/lab039/lab039_emergency_path.png create mode 100644 data/processed/lab039/lab039_emergency_stop_metrics.csv create mode 100644 data/processed/lab039/lab039_path_by_speed.png create mode 100644 data/processed/lab039/lab039_policy_comparison.png create mode 100644 data/processed/lab039/lab039_reaction_rates.png create mode 100644 data/processed/lab039/lab039_report.txt create mode 100644 data/processed/lab039/lab039_safety_state_time.png create mode 100644 data/processed/lab039/lab039_summary.csv create mode 100644 data/processed/lab039/lab039_tradeoff.png create mode 100644 data/processed/lab039/lab039_watchdog_metrics.csv create mode 100644 protocol/two_stage_failsafe.py create mode 100644 tests/lab039_two_stage_braking.py diff --git a/PROJECT_LOG.md b/PROJECT_LOG.md index 8558931..44e2782 100644 --- a/PROJECT_LOG.md +++ b/PROJECT_LOG.md @@ -311,3 +311,28 @@ git version 2.51.1.windows.1 - Порог 100 мс вызывает слишком частые безопасные остановки. - Порог 500 мс допускает слишком большой путь до реакции. - Для следующей проверки принята двухступенчатая логика: предварительная реакция после 150 мс и обязательная остановка после 250 мс. + +--- + +# Запись 014 + +## Дата + +5 августа 2026 года + +## Тема + +Завершение Lab039: двухступенчатая безопасная реакция и оценка пути до остановки. + +## Выполнено + +- Lab039 реализует состояния NORMAL, STAGE1_DECELERATION, STAGE2_BRAKING и EMERGENCY_LATCHED. +- Используется точное событийное интегрирование движения. +- Аналитические значения совпали с моделью с нулевой ошибкой. +- Максимальный полный путь составил 13,9642 м. +- При 25 км/ч и номинальном профиле политика 150/250 мс дала полный путь около 9,5388 м. +- Основную часть пути составляет торможение после реакции. +- Пара 150/250 мс сохраняется как предварительный кандидат, но окончательно не утверждается. +- Фактические замедления должны быть измерены на реальном ровере. +- Локальный сторожевой таймер сохранил безопасную реакцию в опытах, где аварийная команда не была доставлена. +- Следующий этап исследует постоянное аварийное намерение наземной станции и безопасное разрешение повторного движения. diff --git a/data/processed/lab039/lab039_analytic_checks.csv b/data/processed/lab039/lab039_analytic_checks.csv new file mode 100644 index 0000000..94d7857 --- /dev/null +++ b/data/processed/lab039/lab039_analytic_checks.csv @@ -0,0 +1,10 @@ +initial_speed_kmh,deceleration_profile,single_reaction_path_m,single_braking_path_m,single_total_analytic_m,single_total_model_m,two_stage_reaction_path_m,two_stage_deceleration_path_m,two_stage_braking_path_m,two_stage_total_analytic_m,two_stage_total_model_m,two_stage_minus_single_m,maximum_absolute_error_m +5.0,soft,0.3472222222222222,0.48225308641975306,0.8294753086419753,0.8294753086419753,0.20833333333333331,0.1363888888888889,0.4481558641975308,0.792878086419753,0.792878086419753,-0.03659722222222228,0.0 +5.0,nominal,0.3472222222222222,0.3215020576131687,0.668724279835391,0.668724279835391,0.20833333333333331,0.1338888888888889,0.276872427983539,0.6190946502057613,0.6190946502057613,-0.04962962962962969,0.0 +5.0,intensive,0.3472222222222222,0.24112654320987653,0.5883487654320987,0.5883487654320987,0.20833333333333331,0.1313888888888889,0.1918557098765432,0.5315779320987655,0.5315779320987655,-0.056770833333333215,0.0 +15.0,soft,1.0416666666666667,4.340277777777779,5.3819444444444455,5.3819444444444455,0.625,0.41416666666666674,4.236736111111112,5.2759027777777785,5.2759027777777785,-0.10604166666666703,0.0 +15.0,nominal,1.0416666666666667,2.893518518518519,3.935185185185186,3.935185185185186,0.625,0.41166666666666674,2.756296296296297,3.7929629629629638,3.7929629629629638,-0.14222222222222225,0.0 +15.0,intensive,1.0416666666666667,2.1701388888888893,3.2118055555555562,3.2118055555555562,0.625,0.40916666666666673,2.016701388888889,3.0508680555555556,3.0508680555555556,-0.16093750000000062,0.0 +25.0,soft,1.7361111111111112,12.056327160493828,13.792438271604938,13.792438271604938,1.0416666666666667,0.6919444444444446,11.883341049382718,13.61695216049383,13.61695216049383,-0.175486111111109,0.0 +25.0,nominal,1.7361111111111112,8.037551440329219,9.77366255144033,9.77366255144033,1.0416666666666667,0.6894444444444445,7.807736625514405,9.538847736625517,9.538847736625517,-0.23481481481481303,0.0 +25.0,intensive,1.7361111111111112,6.028163580246914,7.764274691358025,7.764274691358025,1.0416666666666667,0.6869444444444446,5.770559413580247,7.499170524691358,7.499170524691358,-0.26510416666666714,0.0 diff --git a/data/processed/lab039/lab039_analytic_vs_model.png b/data/processed/lab039/lab039_analytic_vs_model.png new file mode 100644 index 0000000000000000000000000000000000000000..c436fe3c87d8cbdfb40a1b8892719039cf6adb2a GIT binary patch literal 48257 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 K+pXRu@XkNJWFW2p literal 0 HcmV?d00001 diff --git a/data/processed/lab039/lab039_deceleration_profiles.png b/data/processed/lab039/lab039_deceleration_profiles.png new file mode 100644 index 0000000000000000000000000000000000000000..692c906f18bdba5812cb606c7181b5a6288f81af GIT binary patch literal 30344 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

@|X)EhT%3C4XRaVx!w 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 literal 0 HcmV?d00001 diff --git a/data/processed/lab039/lab039_distance_metrics.csv b/data/processed/lab039/lab039_distance_metrics.csv new file mode 100644 index 0000000..f4ab339 --- /dev/null +++ b/data/processed/lab039/lab039_distance_metrics.csv @@ -0,0 +1,181 @@ +channel_condition,policy,initial_speed_kmh,deceleration_profile,event_count,mean_speed_last_fresh_mps,p95_speed_last_fresh_mps,max_speed_last_fresh_mps,mean_speed_first_threshold_mps,p95_speed_first_threshold_mps,max_speed_first_threshold_mps,mean_speed_second_threshold_mps,p95_speed_second_threshold_mps,max_speed_second_threshold_mps,mean_distance_to_first_m,p95_distance_to_first_m,max_distance_to_first_m,mean_distance_between_m,p95_distance_between_m,max_distance_between_m,mean_distance_to_second_m,p95_distance_to_second_m,max_distance_to_second_m,mean_braking_distance_m,p95_braking_distance_m,max_braking_distance_m,mean_total_stop_path_m,p95_total_stop_path_m,max_total_stop_path_m,mean_time_to_stop_seconds,p95_time_to_stop_seconds,max_time_to_stop_seconds,mean_minimum_speed_mps,p95_minimum_speed_mps,max_minimum_speed_mps,full_stop_fraction,recovery_before_stop_fraction +no_loss,single_250,5.0,soft,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,single_250,5.0,nominal,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,single_250,5.0,intensive,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,single_250,15.0,soft,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,single_250,15.0,nominal,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,single_250,15.0,intensive,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,single_250,25.0,soft,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,single_250,25.0,nominal,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,single_250,25.0,intensive,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_100_200,5.0,soft,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_100_200,5.0,nominal,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_100_200,5.0,intensive,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_100_200,15.0,soft,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_100_200,15.0,nominal,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_100_200,15.0,intensive,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_100_200,25.0,soft,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_100_200,25.0,nominal,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_100_200,25.0,intensive,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_150_250,5.0,soft,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_150_250,5.0,nominal,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_150_250,5.0,intensive,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_150_250,15.0,soft,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_150_250,15.0,nominal,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_150_250,15.0,intensive,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_150_250,25.0,soft,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_150_250,25.0,nominal,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_150_250,25.0,intensive,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_200_300,5.0,soft,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_200_300,5.0,nominal,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_200_300,5.0,intensive,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_200_300,15.0,soft,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_200_300,15.0,nominal,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_200_300,15.0,intensive,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_200_300,25.0,soft,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_200_300,25.0,nominal,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_200_300,25.0,intensive,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +300_50,single_250,5.0,soft,113,1.388888888888889,1.3888888888888888,1.3888888888888888,1.388888888888889,1.3888888888888888,1.3888888888888888,1.388888888888889,1.3888888888888888,1.3888888888888888,0.3472222222222259,0.34722222222222854,0.34722222222222854,0.0,0.0,0.0,0.3472222222222259,0.34722222222222854,0.34722222222222854,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.292257378564404,1.386520355555564,1.3887295555555528,0.0,1.0 +300_50,single_250,5.0,nominal,113,1.3888888888888888,1.3888888888888888,1.3888888888888888,1.3888888888888888,1.3888888888888888,1.3888888888888888,1.3888888888888888,1.3888888888888888,1.3888888888888888,0.34722222222222576,0.34722222222222854,0.34722222222222854,0.0,0.0,0.0,0.34722222222222576,0.34722222222222854,0.34722222222222854,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2439416234021616,1.3853360888889017,1.3886498888888847,0.0,1.0 +300_50,single_250,5.0,intensive,113,1.388888888888889,1.3888888888888888,1.3888888888888888,1.388888888888889,1.3888888888888888,1.3888888888888888,1.388888888888889,1.3888888888888888,1.3888888888888888,0.3472222222222259,0.34722222222222854,0.34722222222222854,0.0,0.0,0.0,0.3472222222222259,0.34722222222222854,0.34722222222222854,0.24112654320987303,0.24112654320987303,0.24112654320987303,0.5883487654320945,0.5883487654320945,0.5883487654320945,0.5972222222222214,0.5972222222222214,0.5972222222222214,1.1956382969518167,1.3841518222222393,1.3885702222222167,0.008849557522123894,0.9911504424778761 +300_50,single_250,15.0,soft,113,4.166666666666666,4.166666666666667,4.166666666666667,4.166666666666666,4.166666666666667,4.166666666666667,4.166666666666666,4.166666666666667,4.166666666666667,1.0416666666666725,1.0416666666666856,1.0416666666666856,0.0,0.0,0.0,1.0416666666666725,1.0416666666666856,1.0416666666666856,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.070035156342182,4.164298133333342,4.166507333333331,0.0,1.0 +300_50,single_250,15.0,nominal,113,4.166666666666665,4.166666666666667,4.166666666666667,4.166666666666665,4.166666666666667,4.166666666666667,4.166666666666665,4.166666666666667,4.166666666666667,1.0416666666666725,1.0416666666666856,1.0416666666666856,0.0,0.0,0.0,1.0416666666666725,1.0416666666666856,1.0416666666666856,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.021719401179939,4.16311386666668,4.166427666666663,0.0,1.0 +300_50,single_250,15.0,intensive,113,4.166666666666666,4.166666666666667,4.166666666666667,4.166666666666666,4.166666666666667,4.166666666666667,4.166666666666666,4.166666666666667,4.166666666666667,1.0416666666666725,1.0416666666666856,1.0416666666666856,0.0,0.0,0.0,1.0416666666666725,1.0416666666666856,1.0416666666666856,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.9734036460176965,4.161929600000017,4.166347999999995,0.0,1.0 +300_50,single_250,25.0,soft,113,6.944444444444444,6.944444444444445,6.944444444444445,6.944444444444444,6.944444444444445,6.944444444444445,6.944444444444444,6.944444444444445,6.944444444444445,1.7361111111110947,1.7361111111111143,1.7361111111111143,0.0,0.0,0.0,1.7361111111110947,1.7361111111111143,1.7361111111111143,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.847812934119959,6.94207591111112,6.944285111111109,0.0,1.0 +300_50,single_250,25.0,nominal,113,6.944444444444443,6.944444444444445,6.944444444444445,6.944444444444443,6.944444444444445,6.944444444444445,6.944444444444443,6.944444444444445,6.944444444444445,1.7361111111110947,1.7361111111111143,1.7361111111111143,0.0,0.0,0.0,1.7361111111110947,1.7361111111111143,1.7361111111111143,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.799497178957717,6.9408916444444575,6.9442054444444405,0.0,1.0 +300_50,single_250,25.0,intensive,113,6.944444444444444,6.944444444444445,6.944444444444445,6.944444444444444,6.944444444444445,6.944444444444445,6.944444444444444,6.944444444444445,6.944444444444445,1.7361111111110947,1.7361111111111143,1.7361111111111143,0.0,0.0,0.0,1.7361111111110947,1.7361111111111143,1.7361111111111143,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.751181423795474,6.939707377777795,6.9441257777777725,0.0,1.0 +300_50,two_100_200,5.0,soft,2277,1.3883654808227202,1.3888888888888888,1.3888888888888888,1.388768120772947,1.3888888888888888,1.3888888888888888,1.3696358253549956,1.3877422222222235,1.388862222222222,0.13886054891271582,0.13888888888889284,0.13888888888889284,0.05246359369459609,0.136388888888888,0.13638888888890222,0.1913241426073119,0.27527777777778084,0.27527777777778795,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3573122337871437,1.3877422222222235,1.388862222222222,0.0,1.0 +300_50,two_100_200,5.0,nominal,2277,1.3875596189430537,1.3888888888888888,1.3888888888888888,1.3883363608549262,1.3888888888888888,1.3888888888888888,1.3500717700190237,1.3865955555555582,1.3888355555555552,0.13880274939762102,0.13888888888889284,0.13888888888889284,0.05177076770564442,0.13388888888889028,0.1338888888889045,0.19057351710326545,0.2727777777777777,0.2727777777777902,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3315863826672456,1.3865955555555582,1.3888355555555552,0.0,1.0 +300_50,two_100_200,5.0,intensive,2277,1.3862801530278632,1.3888888888888888,1.3888888888888888,1.387654309007954,1.3888888888888888,1.3888888888888888,1.3302574227541004,1.385448888888893,1.3888088888888883,0.13870774169851907,0.13888888888889284,0.13888888888889284,0.05106484339113538,0.13138888888889255,0.13138888888889255,0.18977258508965447,0.2702777777777783,0.2702777777777854,0.19185570987654188,0.19185570987654188,0.19185570987654188,0.46213348765432727,0.46213348765432727,0.46213348765432727,0.5097222222222229,0.5097222222222229,0.5097222222222229,1.3057645674376517,1.385448888888893,1.3888088888888883,0.0004391743522178305,0.9995608256477821 +300_50,two_100_200,15.0,soft,2277,4.166143258600497,4.166666666666667,4.166666666666667,4.166545898550725,4.166666666666667,4.166666666666667,4.147413603132774,4.165520000000002,4.16664,0.41663832669048284,0.4166666666666856,0.4166666666666856,0.15875412379432557,0.4141666666666879,0.4141666666666879,0.5753924504848084,0.8308333333333309,0.8308333333333735,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.135090011564921,4.165520000000002,4.16664,0.0,1.0 +300_50,two_100_200,15.0,nominal,2277,4.165337396720831,4.166666666666667,4.166666666666667,4.166114138632703,4.166666666666667,4.166666666666667,4.127849547796801,4.164373333333336,4.166613333333333,0.41658052717538796,0.4166666666666856,0.4166666666666856,0.15806129780537476,0.41166666666669016,0.41166666666669016,0.5746418249807627,0.8283333333333331,0.8283333333333758,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.109364160445024,4.164373333333336,4.166613333333333,0.0,1.0 +300_50,two_100_200,15.0,intensive,2277,4.163903602986386,4.166666666666667,4.166666666666667,4.165277758966477,4.166666666666667,4.166666666666667,4.107880872712624,4.163226666666671,4.166586666666666,0.41647008669436064,0.4166666666666856,0.4166666666666856,0.1573416898090024,0.40916666666669244,0.40916666666669244,0.5738117765033631,0.8258333333333354,0.825833333333378,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.083233689576918,4.163226666666671,4.166586666666666,0.0,1.0 +300_50,two_100_200,25.0,soft,2277,6.943921036378275,6.944444444444445,6.944444444444445,6.9443236763285014,6.944444444444445,6.944444444444445,6.925191380910551,6.943297777777779,6.944417777777778,0.6944161044682784,0.6944444444444571,0.6944444444444571,0.26504465389405196,0.6919444444445162,0.6919444444445162,0.9594607583623302,1.3863888888889164,1.3863888888889733,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.912867789342698,6.943297777777779,6.944417777777778,0.0,1.0 +300_50,two_100_200,25.0,nominal,2277,6.943115174498608,6.944444444444445,6.944444444444445,6.943891916410481,6.944444444444445,6.944444444444445,6.905627325574579,6.942151111111114,6.944391111111111,0.6943583049531834,0.6944444444444571,0.6944444444444571,0.2643518279050987,0.6894444444444616,0.6894444444445185,0.9587101328582822,1.3838888888889187,1.3838888888889187,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.8871419382228005,6.942151111111114,6.944391111111111,0.0,1.0 +300_50,two_100_200,25.0,intensive,2277,6.941681380764162,6.944444444444445,6.944444444444445,6.943055536744253,6.944444444444445,6.944444444444445,6.8856586504904005,6.941004444444449,6.944364444444444,0.6942478644721558,0.6944444444444571,0.6944444444444571,0.2636322199087285,0.6869444444445207,0.6869444444445207,0.9578800843808843,1.381388888888921,1.3813888888889778,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.861011467354697,6.941004444444449,6.944364444444444,0.0,1.0 +300_50,two_150_250,5.0,soft,842,1.3887903607812087,1.3888888888888888,1.3888888888888888,1.388888888888889,1.3888888888888888,1.3888888888888888,1.3698616260226968,1.3878088888888906,1.3888355555555552,0.2083301411408178,0.2083333333333428,0.2083333333333428,0.05218613029291181,0.136388888888888,0.13638888888889156,0.2605162714337296,0.3447222222222305,0.3447222222222308,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3568932641858003,1.3878088888888906,1.3888355555555552,0.0,1.0 +300_50,two_150_250,5.0,nominal,842,1.3886471462127208,1.3888888888888888,1.3888888888888888,1.388888888888889,1.3888888888888888,1.3888888888888888,1.3508343631565043,1.3867288888888922,1.3887822222222215,0.20832105015183075,0.2083333333333428,0.2083333333333428,0.051518752624176975,0.13388888888889028,0.13388888888889028,0.2598398027760077,0.3422222222222189,0.3422222222222331,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3313818204011598,1.3867288888888922,1.3887822222222215,0.0,1.0 +300_50,two_150_250,5.0,intensive,842,1.3881660151095268,1.3888888888888888,1.3888888888888888,1.3888043165742936,1.3888888888888888,1.3888888888888888,1.3317225279757166,1.385648888888894,1.3887288888888878,0.20828180162934723,0.2083333333333428,0.2083333333333428,0.05084747584211224,0.13138888888889255,0.13138888888889255,0.2591292774714595,0.33972222222222115,0.33972222222223536,0.19185570987654188,0.19185570987654188,0.19185570987654188,0.531577932098763,0.531577932098763,0.531577932098763,0.55972222222222,0.55972222222222,0.55972222222222,1.3059656195566083,1.385648888888894,1.3887288888888878,0.0011876484560570072,0.998812351543943 +300_50,two_150_250,15.0,soft,842,4.1665681385589854,4.166666666666667,4.166666666666667,4.166666666666666,4.166666666666667,4.166666666666667,4.147639403800474,4.165586666666669,4.166613333333333,0.6249968078074819,0.625,0.6250000000000036,0.1578931462162002,0.41416666666665947,0.4141666666666879,0.7828899540236823,1.0391666666666595,1.0391666666666879,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.134671041963578,4.165586666666669,4.166613333333333,0.0,1.0 +300_50,two_150_250,15.0,nominal,842,4.166424923990498,4.166666666666667,4.166666666666667,4.166666666666666,4.166666666666667,4.166666666666667,4.1286121409342815,4.164506666666671,4.16656,0.6249877168184949,0.625,0.6250000000000036,0.15722576854746706,0.41166666666666174,0.41166666666669016,0.7822134853659619,1.0366666666666617,1.0366666666666902,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.1091595981789375,4.164506666666671,4.16656,0.0,1.0 +300_50,two_150_250,15.0,intensive,842,4.165763977632619,4.166666666666667,4.166666666666667,4.166402279097387,4.166666666666667,4.166666666666667,4.10932049049881,4.163426666666672,4.166506666666666,0.6249214960078086,0.625,0.6250000000000036,0.1565475389688267,0.409166666666664,0.40916666666669244,0.7814690349766352,1.034166666666664,1.0341666666666924,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.083383766825016,4.163426666666672,4.166506666666666,0.0,1.0 +300_50,two_150_250,25.0,soft,842,6.944345916336763,6.944444444444445,6.944444444444445,6.944444444444444,6.944444444444445,6.944444444444445,6.925417181578252,6.9433644444444464,6.944391111111111,1.0416634744741682,1.0416666666667425,1.0416666666667425,0.26360016213949533,0.6919444444444594,0.6919444444444594,1.3052636366136634,1.7336111111111165,1.733611111111145,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.912448819741356,6.9433644444444464,6.944391111111111,0.0,1.0 +300_50,two_150_250,25.0,nominal,842,6.944202701768276,6.944444444444445,6.944444444444445,6.944444444444444,6.944444444444445,6.944444444444445,6.906389918712059,6.942284444444448,6.944337777777777,1.041654383485181,1.0416666666667425,1.0416666666667425,0.2629327844707617,0.6894444444444616,0.6894444444444616,1.3045871679559429,1.7311111111111188,1.731111111111204,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.886937375956715,6.942284444444448,6.944337777777777,0.0,1.0 +300_50,two_150_250,25.0,intensive,842,6.943541755410397,6.944444444444445,6.944444444444445,6.9441800568751635,6.944444444444445,6.944444444444445,6.8870982682765876,6.94120444444445,6.944284444444444,1.0415881626744947,1.0416666666667425,1.0416666666667425,0.262254554892117,0.6869444444444639,0.6869444444444639,1.3038427175666116,1.728611111111121,1.7286111111111495,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.861161544602795,6.94120444444445,6.944284444444444,0.0,1.0 +300_50,two_200_300,5.0,soft,294,1.3887842624716553,1.3888888888888888,1.3888888888888888,1.388888888888889,1.3888888888888888,1.3888888888888888,1.3689005719954659,1.3880856638888748,1.3888357222222214,0.2777761686147635,0.2777777777777857,0.2777777777777857,0.054811652898884955,0.136388888888888,0.13638888888889156,0.33258782151364846,0.4141666666666737,0.4141666666666737,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3534088803854885,1.3880856638888748,1.3888357222222214,0.0,1.0 +300_50,two_200_300,5.0,nominal,294,1.3886796360544216,1.3888888888888888,1.3888888888888888,1.388888888888889,1.3888888888888888,1.3888888888888888,1.3489122551020425,1.387282438888861,1.388782555555554,0.2777713411257157,0.2777777777777857,0.2777777777777857,0.0541002033160372,0.13388888888888942,0.13388888888889028,0.33187154444175293,0.41166666666666174,0.41166666666666885,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.3256747176870762,1.387282438888861,1.388782555555554,0.0,1.0 +300_50,two_200_300,5.0,intensive,294,1.388494557823129,1.3888888888888888,1.3888888888888888,1.388888888888889,1.3888888888888888,1.3888888888888888,1.328923938208619,1.3864792138888469,1.3887293888888865,0.2777623438539614,0.2777777777777857,0.2777777777777857,0.0533887537331898,0.131388888888889,0.13138888888889255,0.3311510975871512,0.409166666666664,0.4091666666666711,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.2979405549886642,1.3864792138888469,1.3887293888888865,0.0,1.0 +300_50,two_200_300,15.0,soft,294,4.166562040249433,4.166666666666667,4.166666666666667,4.166666666666667,4.166666666666667,4.166666666666667,4.146678349773243,4.165863441666653,4.1666134999999995,0.8333317241703362,0.8333333333333712,0.8333333333333712,0.16585785786234594,0.41416666666663104,0.4141666666666737,0.9991895820326822,1.2475000000000023,1.2475000000000023,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.131186658163267,4.165863441666653,4.1666134999999995,0.0,1.0 +300_50,two_200_300,15.0,nominal,294,4.1664574138322,4.166666666666667,4.166666666666667,4.166666666666667,4.166666666666667,4.166666666666667,4.126690032879821,4.165060216666639,4.166560333333332,0.8333268966812885,0.8333333333333712,0.8333333333333712,0.165146408279498,0.4116666666666333,0.41166666666667595,0.9984733049607865,1.2450000000000045,1.2450000000000045,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.103452495464853,4.165060216666639,4.166560333333332,0.0,1.0 +300_50,two_200_300,15.0,intensive,294,4.166272335600906,4.166666666666667,4.166666666666667,4.166666666666667,4.166666666666667,4.166666666666667,4.1067017159863966,4.164256991666625,4.166507166666665,0.833317899409534,0.8333333333333712,0.8333333333333712,0.16443495869665148,0.4091666666666356,0.4091666666666782,0.9977528581061854,1.2425000000000068,1.2425000000000068,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.075718332766442,4.164256991666625,4.166507166666665,0.0,1.0 +300_50,two_200_300,25.0,soft,294,6.94433981802721,6.944444444444445,6.944444444444445,6.944444444444444,6.944444444444445,6.944444444444445,6.9244561275510215,6.943641219444431,6.944391277777777,1.3888872797258907,1.3888888888889142,1.3888888888889142,0.27690406282581237,0.6919444444444025,0.6919444444444594,1.665791342551703,2.0808333333333167,2.080833333333345,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.908964435941043,6.943641219444431,6.944391277777777,0.0,1.0 +300_50,two_200_300,25.0,nominal,294,6.944235191609976,6.944444444444445,6.944444444444445,6.944444444444444,6.944444444444445,6.944444444444445,6.904467810657597,6.9428379944444165,6.94433811111111,1.3888824522368428,1.3888888888889142,1.3888888888889142,0.27619261324296385,0.6894444444444616,0.6894444444444616,1.6650750654798065,2.0783333333333474,2.0783333333333758,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.881230273242632,6.9428379944444165,6.94433811111111,0.0,1.0 +300_50,two_200_300,25.0,intensive,294,6.944050113378684,6.944444444444445,6.944444444444445,6.944444444444444,6.944444444444445,6.944444444444445,6.884479493764175,6.942034769444403,6.944284944444442,1.3888734549650883,1.3888888888889142,1.3888888888889142,0.2754811636601147,0.686944444444407,0.6869444444444639,1.6643546186252032,2.075833333333321,2.0758333333333496,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.853496110544219,6.942034769444403,6.944284944444442,0.0,1.0 +260_200,single_250,5.0,soft,468,1.383328590875899,1.3888888888888888,1.3888888888888888,1.385308890349929,1.3888888888888888,1.3888888888888888,1.385308890349929,1.3888888888888888,1.3888888888888888,0.3461086862766823,0.34722222222222854,0.34722222222222854,0.0,0.0,0.0,0.3461086862766823,0.34722222222222854,0.34722222222222854,0.46315071885521353,0.4822530864197532,0.4822530864197603,0.7988287491582475,0.8294753086419746,0.8294753086419888,0.9241969696969666,0.9444444444444446,0.94444444444445,0.9910565358682447,1.380910427350486,1.3884581196582846,0.04700854700854701,0.9508547008547008 +260_200,single_250,5.0,nominal,468,1.3805090343158868,1.3888888888888888,1.3888888888888888,1.384069522974664,1.3888888888888888,1.3888888888888888,1.384069522974664,1.3888888888888888,1.3888888888888888,0.3455906425065219,0.34722222222222854,0.34722222222222854,0.0,0.0,0.0,0.3455906425065219,0.34722222222222854,0.34722222222222854,0.31074990141292985,0.3215020576131735,0.3215020576131735,0.6482391519060329,0.6687242798354021,0.6687242798354021,0.7015882314266956,0.7129629629629637,0.712962962962969,0.840491865457681,1.3769211965812846,1.3882427350429825,0.1111111111111111,0.8867521367521367 +260_200,single_250,5.0,intensive,468,1.379328387939222,1.3888888888888888,1.3888888888888888,1.3832718504638877,1.3888888888888888,1.3888888888888888,1.3832718504638877,1.3888888888888888,1.3888888888888888,0.34534581715847934,0.34722222222222854,0.34722222222222854,0.0,0.0,0.0,0.34534581715847934,0.34722222222222854,0.34722222222222854,0.2354926911115136,0.2411265432098766,0.2411265432098766,0.5759331801903396,0.5883487654321016,0.5883487654321016,0.5914821557454916,0.5972222222222285,0.5972222222222356,0.7274434315143864,1.3708088888891128,1.3880273504276803,0.19230769230769232,0.8055555555555556 +260_200,single_250,15.0,soft,468,4.160174730111783,4.166666666666667,4.166666666666667,4.162155029585814,4.166666666666667,4.166666666666667,4.162155029585814,4.166666666666667,4.166666666666667,1.0403202210856577,1.0416666666666856,1.0416666666666856,0.0,0.0,0.0,1.0403202210856577,1.0416666666666856,1.0416666666666856,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.7494865262985413,4.158688205128264,4.166235897436063,0.0,0.9978632478632479 +260_200,single_250,15.0,nominal,468,4.152808939349129,4.166666666666667,4.166666666666667,4.156369428007907,4.166666666666667,4.166666666666667,4.156369428007907,4.166666666666667,4.166666666666667,1.0386656187648367,1.0416666666666856,1.0416666666666856,0.0,0.0,0.0,1.0386656187648367,1.0416666666666856,1.0416666666666856,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.537366673076999,4.1546989743590625,4.166020512820761,0.0,0.9978632478632479 +260_200,single_250,15.0,intensive,468,4.143932209237367,4.166666666666667,4.166666666666667,4.148409859796221,4.166666666666667,4.166666666666667,4.148409859796221,4.166666666666667,4.166666666666667,1.036563545987293,1.0416666666666856,1.0416666666666856,0.0,0.0,0.0,1.036563545987293,1.0416666666666856,1.0416666666666856,1.5945357338989368,2.1701388888889115,2.170138888888914,2.4355011185144235,3.211805555555594,3.2118055555555998,1.1013820512821464,1.2916666666666707,1.2916666666666714,3.327775088593134,4.148586666666891,4.1658051282054585,0.00641025641025641,0.9914529914529915 +260_200,single_250,25.0,soft,468,6.937952507889561,6.944444444444445,6.944444444444445,6.939932807363592,6.944444444444445,6.944444444444445,6.939932807363592,6.944444444444445,6.944444444444445,1.7347646655300781,1.7361111111111143,1.7361111111111427,0.0,0.0,0.0,1.7347646655300781,1.7361111111111143,1.7361111111111427,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.527264304076319,6.936465982906042,6.94401367521384,0.0,0.9978632478632479 +260_200,single_250,25.0,nominal,468,6.930586717126909,6.944444444444445,6.944444444444445,6.934147205785685,6.944444444444445,6.944444444444445,6.934147205785685,6.944444444444445,6.944444444444445,1.733110063209257,1.7361111111111143,1.7361111111111427,0.0,0.0,0.0,1.733110063209257,1.7361111111111143,1.7361111111111427,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.315144450854777,6.93247675213684,6.943798290598538,0.0,0.9978632478632479 +260_200,single_250,25.0,intensive,468,6.921709987015146,6.944444444444445,6.944444444444445,6.9261876375739995,6.944444444444445,6.944444444444445,6.9261876375739995,6.944444444444445,6.944444444444445,1.7310079904317144,1.7361111111111143,1.7361111111111427,0.0,0.0,0.0,1.7310079904317144,1.7361111111111143,1.7361111111111427,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.100850630999454,6.926364444444669,6.943582905983236,0.0,0.9978632478632479 +260_200,two_100_200,5.0,soft,893,1.3793984008767155,1.3888888888888888,1.3888888888888888,1.381645825767372,1.3888888888888888,1.3888888888888888,1.3402149409366368,1.3836950427350496,1.3883350427350432,0.13805836150813458,0.13888888888889284,0.13888888888889284,0.11271588421565396,0.13638888888890222,0.13638888888890222,0.25077424572378854,0.27527777777778795,0.27527777777778795,0.41693344446303227,0.4481558641975312,0.4481558641975312,0.6776667572835481,0.7234336419753191,0.7234336419753191,0.8340832820512857,0.8694444444444471,0.8694444444444471,1.080058695839445,1.3836950427350496,1.3883350427350432,0.027995520716685332,0.9686450167973124 +260_200,two_100_200,5.0,nominal,893,1.3745396602635926,1.3888888888888888,1.3888888888888888,1.3770854743350507,1.3888888888888888,1.3888888888888888,1.2942237046735803,1.378488888888913,1.3877811965811975,0.13758392741104195,0.13888888888889284,0.13888888888889284,0.11047630596394122,0.1338888888889045,0.1338888888889045,0.24806023337498317,0.2727777777777902,0.2727777777777902,0.26849341719453246,0.27687242798354106,0.27687242798354816,0.5349063198533109,0.5496502057613242,0.5496502057613384,0.6193632478632496,0.6296296296296333,0.6296296296296333,0.9417432462074513,1.378488888888913,1.3877811965811975,0.08958566629339305,0.9070548712206047 +260_200,two_100_200,5.0,intensive,893,1.3705384145251367,1.3888888888888888,1.3888888888888888,1.3737396855696333,1.3888888888888888,1.3888888888888888,1.2494470310774273,1.3732888888889252,1.3872273504273518,0.13721581849136394,0.13888888888889284,0.13888888888889284,0.10829284938111963,0.13138888888889255,0.13138888888889255,0.24550866787248357,0.2702777777777854,0.2702777777777854,0.18763774738928465,0.19185570987654899,0.19185570987654899,0.4534105756717147,0.46213348765432727,0.46213348765432727,0.5043576858326857,0.5097222222222229,0.5097222222222229,0.8327942889329102,1.3732888888889252,1.3872273504273518,0.14781634938409854,0.8488241881298992 +260_200,two_100_200,15.0,soft,893,4.15337001751515,4.166666666666667,4.166666666666667,4.155734286616716,4.166666666666667,4.166666666666667,4.114303401785981,4.161472820512828,4.166112820512821,0.4154611328314999,0.4166666666666856,0.4166666666666856,0.3426785364363736,0.4141666666666879,0.4141666666666879,0.7581396692678735,0.8308333333333451,0.8308333333333735,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.84017751394036,4.161472820512828,4.166112820512821,0.0,0.9966405375139977 +260_200,two_100_200,15.0,nominal,893,4.137071363798214,4.166666666666667,4.166666666666667,4.1399660145002555,4.166666666666667,4.166666666666667,4.0571042448387855,4.156266666666691,4.165558974358976,0.4138546796795043,0.4166666666666856,0.4166666666666856,0.33966145926524366,0.41166666666669016,0.41166666666669016,0.7535161389447481,0.8283333333333474,0.8283333333333758,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.645915413070354,4.156266666666691,4.165558974358976,0.0,0.9966405375139977 +260_200,two_100_200,15.0,intensive,893,4.118031308898299,4.166666666666667,4.166666666666667,4.122107684181837,4.166666666666667,4.166666666666667,3.997815029689632,4.151066666666703,4.16500512820513,0.41201305396243026,0.4166666666666856,0.4166666666666856,0.3364024018612716,0.40916666666669244,0.40916666666669244,0.7484154558237021,0.8258333333333496,0.825833333333378,1.7122700891716534,2.0167013888889116,2.0167013888889187,2.4444895763511703,2.84253472222224,2.84253472222224,1.0881910256410723,1.2041666666666657,1.2041666666666657,3.4542490078100796,4.151066666666703,4.16500512820513,0.006718924972004479,0.9899216125419933 +260_200,two_100_200,25.0,soft,893,6.931147795292928,6.944444444444445,6.944444444444445,6.933512064394494,6.944444444444445,6.944444444444445,6.8920811795637595,6.939250598290606,6.943890598290599,0.6932389106092949,0.6944444444444571,0.6944444444444571,0.5728501188293589,0.6919444444445162,0.6919444444445162,1.2660890294386535,1.3863888888889733,1.3863888888889733,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.617955291718138,6.939250598290606,6.943890598290599,0.0,0.9966405375139977 +260_200,two_100_200,25.0,nominal,893,6.914849141575992,6.944444444444445,6.944444444444445,6.917743792278034,6.944444444444445,6.944444444444445,6.834882022616565,6.934044444444469,6.943336752136753,0.6916324574572987,0.6944444444444571,0.6944444444444571,0.5698330416582148,0.6894444444445185,0.6894444444445185,1.2614654991155136,1.3838888888889187,1.3838888888889187,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.423693190848132,6.934044444444469,6.943336752136753,0.0,0.9966405375139977 +260_200,two_100_200,25.0,intensive,893,6.892920181631147,6.944444444444445,6.944444444444445,6.897098833883709,6.944444444444445,6.944444444444445,6.772806179391505,6.928844444444481,6.942782905982908,0.6895066118839833,0.6944444444444571,0.6944444444444571,0.5663948600620589,0.6869444444445207,0.6869444444445207,1.2559014719460424,1.3813888888889778,1.3813888888889778,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.224554403700261,6.928844444444481,6.942782905982908,0.0,0.9966405375139977 +260_200,two_150_250,5.0,soft,754,1.3827764869074421,1.3888888888888888,1.3888888888888888,1.3848438912693637,1.3888888888888888,1.3888888888888888,1.3460535548584267,1.3870235042735224,1.38882735042738,0.2075787771468138,0.2083333333333428,0.2083333333333428,0.1056529564804012,0.1363888888888889,0.13638888888890222,0.313231733627215,0.3447222222222308,0.3447222222222308,0.4307442031893001,0.4481558641975312,0.4481558641975312,0.7646759161522665,0.792878086419762,0.792878086419762,0.8988009259259284,0.9194444444444514,0.9194444444444514,1.1030465730406664,1.3870235042735224,1.38882735042738,0.03183023872679045,0.9641909814323607 +260_200,two_150_250,5.0,nominal,754,1.3787047283660891,1.3888888888888888,1.3888888888888888,1.3816178725770332,1.3888888888888888,1.3888888888888888,1.3040371997551585,1.385158119658156,1.3887658119658712,0.2070352084912672,0.2083333333333428,0.2083333333333428,0.10365509958351639,0.13388888888889028,0.1338888888889045,0.3106903080747836,0.3422222222222331,0.3422222222222331,0.2687901710618184,0.27687242798354816,0.27687242798354816,0.6029963747286375,0.619094650205767,0.619094650205767,0.6694032347140042,0.6796296296296305,0.6796296296296376,0.9749939499081842,1.385158119658156,1.3887658119658712,0.08620689655172414,0.9098143236074271 +260_200,two_150_250,5.0,intensive,754,1.3762981582216784,1.3888888888888888,1.3888888888888888,1.3797878121245102,1.3888888888888888,1.3888888888888888,1.2634168028916986,1.3832927350427893,1.3887042735043624,0.20671608813285708,0.2083333333333428,0.2083333333333428,0.10172168902603347,0.13138888888889255,0.13138888888889255,0.30843777715889054,0.33972222222223536,0.33972222222223536,0.18683806029562833,0.19185570987654899,0.19185570987654899,0.5198646663125392,0.5315779320987701,0.5315779320987701,0.5533676163342807,0.5597222222222222,0.5597222222222271,0.8755563849271164,1.3832927350427893,1.3887042735043624,0.1312997347480106,0.8647214854111406 +260_200,two_150_250,15.0,soft,754,4.158626435897447,4.166666666666667,4.166666666666667,4.160964850710751,4.166666666666667,4.166666666666667,4.122174514299814,4.1648012820513,4.166605128205158,0.6239731481690246,0.625,0.6250000000000071,0.3210384608502728,0.4141666666666737,0.4141666666666879,0.9450116090192975,1.0391666666666737,1.0391666666666879,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.8660354432939212,4.1648012820513,4.166605128205158,0.0,0.9960212201591512 +260_200,two_150_250,15.0,nominal,754,4.1454819275318,4.166666666666667,4.166666666666667,4.14906396017821,4.166666666666667,4.166666666666667,4.071483287356335,4.162882051282067,4.166543589743649,0.6220985078886404,0.625,0.6250000000000071,0.3185411399110748,0.41166666666667595,0.41166666666669016,0.9406396477997152,1.036666666666676,1.0366666666666902,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.6872746808474957,4.162882051282067,4.166543589743649,0.0,0.9960212201591512 +260_200,two_150_250,15.0,intensive,754,4.130778353125239,4.166666666666667,4.166666666666667,4.135346267700488,4.166666666666667,4.166666666666667,4.018975258467677,4.160989743589767,4.1664820512821406,0.6199663520692152,0.625,0.6250000000000284,0.3158605023007536,0.4091666666666782,0.40916666666669244,0.9358268543699687,1.0341666666666782,1.0341666666666924,1.581277115595121,2.0167013888889187,2.0167013888889187,2.4542928207233814,3.0508680555555543,3.0508680555555543,1.0958282051282744,1.2541666666666629,1.2541666666666629,3.510571808695562,4.160989743589767,4.1664820512821406,0.005305039787798408,0.9907161803713528 +260_200,two_150_250,25.0,soft,754,6.936404213675225,6.944444444444445,6.944444444444445,6.938742628488529,6.944444444444445,6.944444444444445,6.899952292077593,6.942579059829078,6.944382905982936,1.0406398148357126,1.0416666666667425,1.0416666666667425,0.5365403297999314,0.6919444444444594,0.6919444444445162,1.577180144635644,1.733611111111145,1.733611111111145,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.643813221071698,6.942579059829078,6.944382905982936,0.0,0.9960212201591512 +260_200,two_150_250,25.0,nominal,754,6.923259705309577,6.944444444444445,6.944444444444445,6.9268417379559875,6.944444444444445,6.944444444444445,6.8492610651341135,6.940659829059845,6.944321367521427,1.0387651745553281,1.0416666666667425,1.0416666666667425,0.5340430088607466,0.6894444444444616,0.6894444444445185,1.572808183416075,1.731111111111204,1.731111111111204,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.465052458625273,6.940659829059845,6.944321367521427,0.0,0.9960212201591512 +260_200,two_150_250,25.0,intensive,754,6.906296483212075,6.944444444444445,6.944444444444445,6.911051842526501,6.944444444444445,6.944444444444445,6.794680833293688,6.938767521367545,6.944259829059918,1.036307317677163,1.0416666666667425,1.0416666666667425,0.5313360988969944,0.6869444444444639,0.6869444444445207,1.5676434165741573,1.7286111111111495,1.7286111111111495,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.282402691281903,6.938767521367545,6.944259829059918,0.0,0.9960212201591512 +260_200,two_200_300,5.0,soft,586,1.3844405752749447,1.3888888888888888,1.3888888888888888,1.385941349435559,1.3888888888888888,1.3888888888888888,1.3464508888159676,1.3859965811965864,1.388673504273537,0.27706457130355644,0.2777777777777857,0.2777777777777857,0.10758764466476362,0.13638888888889156,0.13638888888890222,0.3846522159683201,0.4141666666666737,0.4141666666666737,0.4271881563474387,0.4481558641975312,0.4481558641975312,0.8262068068197808,0.8623225308642049,0.8623225308642049,0.9459521367521527,0.9694444444444485,0.9694444444444485,1.0997185764563837,1.3859965811965864,1.388673504273537,0.032423208191126277,0.9641638225255973 +260_200,two_200_300,5.0,nominal,586,1.3818491683877463,1.3888888888888888,1.3888888888888888,1.3845999649951972,1.3888888888888888,1.3888888888888888,1.3056190437560145,1.383104273504284,1.388458119658185,0.27666449248999986,0.2777777777777857,0.2777777777777857,0.1056222347259896,0.13388888888889028,0.1338888888889045,0.3822867272159895,0.41166666666666885,0.41166666666667595,0.2671381936548752,0.27687242798354816,0.27687242798354816,0.6675099096312059,0.6885390946502099,0.6885390946502099,0.717934385272849,0.7296296296296312,0.7296296296296347,0.9718405085324496,1.383104273504284,1.388458119658185,0.08873720136518772,0.9078498293515358 +260_200,two_200_300,5.0,intensive,586,1.3807265867973597,1.3888888888888888,1.3888888888888888,1.3836202013360261,1.3888888888888888,1.3888888888888888,1.2651488194772522,1.3802119658119816,1.3882427350428332,0.2764431951512881,0.2777777777777857,0.2777777777777857,0.10370737998353123,0.13138888888889255,0.13138888888889255,0.38015057513481937,0.4091666666666711,0.4091666666666782,0.18638725767614445,0.19185570987654899,0.19185570987654899,0.5866798345992185,0.601022376543213,0.601022376543213,0.6029521474358944,0.6097222222222243,0.6097222222222243,0.8738452341093212,1.3802119658119816,1.3882427350428332,0.13651877133105803,0.8600682593856656 +260_200,two_200_300,15.0,soft,586,4.160456776669306,4.166666666666667,4.166666666666667,4.16247690557453,4.166666666666667,4.166666666666667,4.122986444954938,4.163639743589778,4.16637435897439,0.8323112307189604,0.8333333333333712,0.8333333333333712,0.32693487990664855,0.4141666666666737,0.4141666666666879,1.159246110625609,1.2475000000000023,1.2475000000000023,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.8632103730200975,4.163639743589778,4.16637435897439,0.0,0.9965870307167235 +260_200,two_200_300,15.0,nominal,586,4.151254640806877,4.166666666666667,4.166666666666667,4.154524792158938,4.166666666666667,4.166666666666667,4.075543870919755,4.160374358974432,4.166082051282113,0.8305890061103578,0.8333333333333712,0.8333333333333712,0.324673805546636,0.41166666666667595,0.41166666666669016,1.1552628116569938,1.2450000000000045,1.2450000000000045,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.6858797630174926,4.160374358974432,4.166082051282113,0.0,0.9965870307167235 +260_200,two_200_300,15.0,intensive,586,4.140923530279193,4.166666666666667,4.166666666666667,4.1446777964907975,4.166666666666667,4.166666666666667,4.026206414632023,4.157228205128315,4.165789743589836,0.8285601326770192,0.8333333333333712,0.8333333333333712,0.3222376360795623,0.4091666666666782,0.40916666666669244,1.1507977687565818,1.2425000000000068,1.2425000000000068,1.4696409262066272,2.016701388888916,2.0167013888889187,2.477132721078533,3.2592013888889197,3.2592013888889255,1.1138820512821443,1.3041666666666665,1.3041666666666671,3.5101536669293063,4.157228205128315,4.165789743589836,0.005119453924914676,0.9914675767918089 +260_200,two_200_300,25.0,soft,586,6.938234554447082,6.944444444444445,6.944444444444445,6.940254683352306,6.944444444444445,6.944444444444445,6.9007642227327155,6.941417521367556,6.944152136752168,1.3878667862745138,1.3888888888889142,1.3888888888889142,0.546326327793272,0.6919444444444594,0.6919444444445162,1.9341931140677857,2.080833333333345,2.0808333333333735,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.640988150797874,6.941417521367556,6.944152136752168,0.0,0.9965870307167235 +260_200,two_200_300,25.0,nominal,586,6.9290324185846535,6.944444444444445,6.944444444444445,6.932302569936715,6.944444444444445,6.944444444444445,6.8533216486975315,6.93815213675221,6.943859829059891,1.386144561665911,1.3888888888889142,1.3888888888889142,0.5440652534332726,0.6894444444444616,0.6894444444445185,1.9302098150991838,2.0783333333333758,2.0783333333333758,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.4636575407952686,6.93815213675221,6.943859829059891,0.0,0.9965870307167235 +260_200,two_200_300,25.0,intensive,586,6.91870130805697,6.944444444444445,6.944444444444445,6.922455574268573,6.944444444444445,6.944444444444445,6.8039841924098,6.935005982906093,6.943567521367614,1.3841156882325727,1.3888888888889142,1.3888888888889142,0.5416290839661865,0.6869444444444639,0.6869444444445207,1.9257447721987593,2.0758333333333496,2.075833333333378,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.284432048540117,6.935005982906093,6.943567521367614,0.0,0.9965870307167235 +230_200,single_250,5.0,soft,463,1.3838735822873292,1.3888888888888888,1.3888888888888888,1.3867153890297466,1.3888888888888888,1.3888888888888888,1.3867153890297466,1.3888888888888888,1.3888888888888888,0.3463537562032076,0.34722222222222854,0.34722222222222854,0.0,0.0,0.0,0.3463537562032076,0.34722222222222854,0.34722222222222854,0.4699418283768949,0.4822530864197532,0.4822530864197532,0.8103861158165095,0.8294753086419746,0.8294753086419746,0.9340135748792203,0.9444444444444446,0.9444444444444446,0.9829751985058052,1.374579323671494,1.3887149758453776,0.04319654427645788,0.9568034557235421 +230_200,single_250,5.0,nominal,463,1.3792361056332871,1.3888888888888888,1.3888888888888888,1.3835796162393952,1.3888888888888888,1.3888888888888888,1.3835796162393952,1.3888888888888888,1.3888888888888888,0.3453775711979115,0.34722222222222854,0.34722222222222854,0.0,0.0,0.0,0.3453775711979115,0.34722222222222854,0.34722222222222854,0.31212163168820134,0.3215020576131735,0.3215020576131735,0.6513190118442785,0.6687242798354021,0.6687242798354021,0.7038657376439954,0.7129629629629637,0.7129629629629637,0.8264722571758769,1.3674245410627968,1.388628019323622,0.11231101511879049,0.8876889848812095 +230_200,single_250,5.0,intensive,463,1.3761552821861196,1.3888888888888888,1.3888888888888888,1.3810206821715123,1.3888888888888888,1.3888888888888888,1.3810206821715123,1.3888888888888888,1.3888888888888888,0.34469222418924733,0.34722222222222854,0.34722222222222854,0.0,0.0,0.0,0.34469222418924733,0.34722222222222854,0.34722222222222854,0.23527399742709953,0.2411265432098766,0.2411265432098766,0.575181146443294,0.5883487654321016,0.5883487654321016,0.5913444234404557,0.5972222222222285,0.5972222222222285,0.7035373504031943,1.3602697584540993,1.3885410628018664,0.19870410367170627,0.8012958963282938 +230_200,single_250,15.0,soft,463,4.161651360065106,4.166666666666667,4.166666666666667,4.164493166807523,4.166666666666667,4.166666666666667,4.164493166807523,4.166666666666667,4.166666666666667,1.0407982006476557,1.0416666666666856,1.0416666666666856,0.0,0.0,0.0,1.0407982006476557,1.0416666666666856,1.0416666666666856,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.7380755876920495,4.152357101449272,4.166492753623156,0.0,1.0 +230_200,single_250,15.0,nominal,463,4.1548957085172304,4.166666666666667,4.166666666666667,4.160169292891351,4.166666666666667,4.166666666666667,4.160169292891351,4.166666666666667,4.166666666666667,1.0393951987927903,1.0416666666666856,1.0416666666666856,0.0,0.0,0.0,1.0393951987927903,1.0416666666666856,1.0416666666666856,2.893518518518519,2.893518518518532,2.8935185185185333,3.9351851851851762,3.935185185185189,3.9351851851851904,1.6388888888888857,1.6388888888888857,1.6388888888888857,3.5238461952608082,4.145202318840575,4.1664057971014,0.004319654427645789,0.9956803455723542 +230_200,single_250,15.0,intensive,463,4.147966381819887,4.166666666666667,4.166666666666667,4.1543018123767474,4.166666666666667,4.166666666666667,4.1543018123767474,4.166666666666667,4.166666666666667,1.037815220572014,1.0416666666666856,1.0416666666666856,0.0,0.0,0.0,1.037815220572014,1.0416666666666856,1.0416666666666856,2.170138888888893,2.1701388888889097,2.170138888888914,3.211805555555559,3.211805555555592,3.2118055555555998,1.2916666666666665,1.2916666666666705,1.2916666666666714,3.3148842770837965,4.137783188405631,4.1663188405796445,0.008639308855291577,0.9913606911447084 +230_200,single_250,25.0,soft,463,6.939429137842884,6.944444444444445,6.944444444444445,6.942270944585301,6.944444444444445,6.944444444444445,6.942270944585301,6.944444444444445,6.944444444444445,1.7352426450920766,1.7361111111111143,1.7361111111111427,0.0,0.0,0.0,1.7352426450920766,1.7361111111111143,1.7361111111111427,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.515853365469828,6.93013487922705,6.944270531400933,0.0,1.0 +230_200,single_250,25.0,nominal,463,6.930733936415519,6.944444444444445,6.944444444444445,6.936007520789638,6.944444444444445,6.944444444444445,6.936007520789638,6.944444444444445,6.944444444444445,1.7333547557673386,1.7361111111111143,1.7361111111111143,0.0,0.0,0.0,1.7333547557673386,1.7361111111111143,1.7361111111111143,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.296381152116427,6.922980096618352,6.944183574879178,0.0,1.0 +230_200,single_250,25.0,intensive,463,6.92015833307248,6.944444444444445,6.944444444444445,6.92649376362934,6.944444444444445,6.944444444444445,6.92649376362934,6.944444444444445,6.944444444444445,1.7308632083851387,1.7361111111111143,1.7361111111111427,0.0,0.0,0.0,1.7308632083851387,1.7361111111111143,1.7361111111111427,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.07365860539839,6.915560966183409,6.944096618357422,0.0,1.0 +230_200,two_100_200,5.0,soft,962,1.380447794952142,1.3888888888888888,1.3888888888888888,1.3822839896752932,1.3888888888888888,1.3888888888888888,1.3423377363986015,1.385825410628017,1.3888541062801933,0.13814121206156238,0.13888888888889284,0.13888888888889284,0.10860330047852315,0.13638888888890222,0.13638888888890222,0.2467445125400855,0.27527777777778795,0.27527777777778795,0.43287141170910287,0.4481558641975312,0.4481558641975312,0.7016949739859344,0.7234336419753191,0.7234336419753191,0.8538523839529455,0.8694444444444471,0.8694444444444471,1.0978168730603362,1.385825410628017,1.3888541062801933,0.02390852390852391,0.975051975051975 +230_200,two_100_200,5.0,nominal,962,1.3731412255064421,1.3888888888888888,1.3888888888888888,1.3764581759016532,1.3888888888888888,1.3888888888888888,1.29656566934827,1.3827619323671452,1.3888193236714979,0.13748971878531097,0.13888888888889284,0.13888888888889284,0.10627274555333256,0.1338888888889045,0.1338888888889045,0.2437624643386435,0.2727777777777902,0.2727777777777902,0.26560879572093793,0.27687242798354106,0.27687242798354816,0.5303238165666804,0.5496502057613242,0.5496502057613384,0.6166483224141358,0.6296296296296333,0.6296296296296333,0.9644847148151333,1.3827619323671452,1.3888193236714979,0.07588357588357589,0.9230769230769231 +230_200,two_100_200,5.0,intensive,962,1.3665171010475348,1.3888888888888888,1.3888888888888888,1.3709562606084333,1.3888888888888888,1.3888888888888888,1.2511248405596112,1.3775567149758143,1.3887845410628024,0.13688200403286768,0.13888888888889284,0.13888888888889284,0.10395293665611088,0.13138888888889255,0.13138888888889255,0.2408349406889786,0.2702777777777854,0.2702777777777854,0.18117455958973294,0.19185570987654899,0.19185570987654899,0.440287161468805,0.46213348765432727,0.46213348765432727,0.49610585610502594,0.5097222222222229,0.5097222222222229,0.859161139735039,1.3775567149758143,1.3887845410628024,0.13617463617463618,0.8627858627858628 +230_200,two_100_200,15.0,soft,962,4.1575106511193445,4.166666666666667,4.166666666666667,4.159411509837595,4.166666666666667,4.166666666666667,4.119465256560903,4.163603188405795,4.1666318840579715,0.41584950894718986,0.4166666666666856,0.4166666666666856,0.3305070488736812,0.4141666666666879,0.4141666666666879,0.746356557820871,0.8308333333333451,0.8308333333333735,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.860410388984281,4.163603188405795,4.1666318840579715,0.0,0.998960498960499 +230_200,two_100_200,15.0,nominal,962,4.145687269878572,4.166666666666667,4.166666666666667,4.149172834372831,4.166666666666667,4.166666666666667,4.069280327819449,4.160539710144923,4.166597101449276,0.41475153199662895,0.4166666666666856,0.4166666666666856,0.32786416071686775,0.41166666666669016,0.41166666666669016,0.7426156927134967,0.8283333333333474,0.8283333333333758,2.756296296296289,2.756296296296297,2.7562962962962985,3.5846296296296294,3.5846296296296316,3.5846296296296316,1.5555555555555565,1.5555555555555571,1.5555555555555571,3.683056084847358,4.160539710144923,4.166597101449276,0.0031185031185031187,0.9958419958419958 +230_200,two_100_200,15.0,intensive,962,4.131165145078184,4.166666666666667,4.166666666666667,4.1360402603272135,4.166666666666667,4.166666666666667,4.0162015004971385,4.155131014492724,4.1665623188405805,0.41336883182168865,0.4166666666666856,0.4166666666666856,0.32502259842690034,0.40916666666669244,0.40916666666669244,0.7383914302485889,0.8258333333333496,0.825833333333378,2.0167013888888863,2.0167013888888903,2.0167013888888903,2.8420072908206566,2.84253472222224,2.84253472222224,1.2041666666666657,1.2041666666666657,1.2041666666666657,3.5062870770435577,4.155131014492724,4.1665623188405805,0.007276507276507277,0.9916839916839917 +230_200,two_100_200,25.0,soft,962,6.935288428897122,6.944444444444445,6.944444444444445,6.9371892876153725,6.944444444444445,6.944444444444445,6.897243034338683,6.941380966183573,6.944409661835749,0.6936272867249852,0.6944444444444571,0.6944444444444571,0.5524306781886457,0.6919444444445162,0.6919444444445162,1.2460579649136307,1.3863888888889733,1.3863888888889733,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.63818816676206,6.941380966183573,6.944409661835749,0.0,0.998960498960499 +230_200,two_100_200,25.0,nominal,962,6.922271688410815,6.944444444444445,6.944444444444445,6.9257572529050755,6.944444444444445,6.944444444444445,6.845864746351692,6.938317487922701,6.944374879227054,0.6924099738498699,0.6944444444444571,0.6944444444444571,0.5496684541072642,0.6894444444445185,0.6894444444445185,1.2420784279571344,1.3838888888889187,1.3838888888889187,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.457282444986758,6.938317487922701,6.944374879227054,0.0,0.998960498960499 +230_200,two_100_200,25.0,intensive,962,6.904363714885448,6.944444444444445,6.944444444444445,6.909342780238428,6.944444444444445,6.944444444444445,6.789504020408354,6.932908792270502,6.944340096618358,0.6906938863076288,0.6944444444444571,0.6944444444444571,0.5465013447862125,0.6869444444445207,0.6869444444445207,1.2371952310938414,1.3813888888889778,1.3813888888889778,5.7705594135802585,5.7705594135802585,5.7705594135802585,7.1519483024691795,7.1519483024691795,7.1519483024691795,1.8986111111111157,1.8986111111111157,1.8986111111111157,6.2715590044893945,6.932908792270502,6.944340096618358,0.0010395010395010396,0.997920997920998 +230_200,two_150_250,5.0,soft,771,1.3820840391736675,1.3888888888888888,1.3888888888888888,1.3841478524032398,1.3888888888888888,1.3888888888888888,1.3452226846369326,1.3858019323671509,1.3888801932367119,0.20748521789540297,0.2083333333333428,0.2083333333333428,0.10604066115309638,0.1363888888888889,0.13638888888889156,0.3135258790484994,0.3447222222222308,0.3447222222222308,0.4331911967343885,0.4481558641975312,0.4481558641975312,0.7702604841740005,0.792878086419762,0.792878086419762,0.9052635748792242,0.9194444444444514,0.9194444444444514,1.104260676579105,1.3858019323671509,1.3888801932367119,0.02594033722438392,0.9727626459143969 +230_200,two_150_250,5.0,nominal,771,1.3765493712287813,1.3888888888888888,1.3888888888888888,1.3799964410358585,1.3888888888888888,1.3888888888888888,1.3021461055032435,1.382714975845413,1.3888714975845349,0.2067571906239473,0.2083333333333428,0.2083333333333428,0.10392613138777097,0.13388888888889028,0.13388888888889028,0.3106833220117183,0.3422222222222331,0.3422222222222331,0.26846017094624874,0.27687242798354816,0.27687242798354816,0.6028842589022702,0.619094650205767,0.619094650205767,0.6697493586540051,0.6796296296296305,0.6796296296296305,0.9751589215335787,1.382714975845413,1.3888714975845349,0.07522697795071336,0.9234760051880675 +230_200,two_150_250,5.0,intensive,771,1.371587078704486,1.3888888888888888,1.3888888888888888,1.3763115071085286,1.3888888888888888,1.3888888888888888,1.2595360038096062,1.379628019323673,1.388862801932358,0.20610502501331004,0.2083333333333428,0.2083333333333428,0.10189144634865628,0.13138888888889255,0.13138888888889255,0.30799647136196634,0.33972222222223536,0.33972222222223536,0.18561946992727607,0.19185570987654899,0.19185570987654899,0.5172203308829381,0.5315779320987701,0.5315779320987701,0.5522691777873417,0.5597222222222218,0.5597222222222236,0.8725101198643752,1.379628019323673,1.388862801932358,0.1309987029831388,0.867704280155642 +230_200,two_150_250,15.0,soft,771,4.159861816951445,4.166666666666667,4.166666666666667,4.161925630181017,4.166666666666667,4.166666666666667,4.12300046241471,4.163579710144929,4.16665797101449,0.6241518845620669,0.625,0.6250000000000002,0.3222915931881319,0.4141666666666737,0.4141666666666879,0.9464434777501988,1.0391666666666737,1.0391666666666879,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.8669286866294126,4.163579710144929,4.16665797101449,0.0,0.9987029831387808 +230_200,two_150_250,15.0,nominal,771,4.151684918889451,4.166666666666667,4.166666666666667,4.155459170285154,4.166666666666667,4.166666666666667,4.077608834752539,4.160492753623191,4.166649275362313,0.6230477673870628,0.625,0.6250000000000002,0.3200102213922261,0.41166666666667595,0.41166666666669016,0.943057988779289,1.036666666666676,1.0366666666666902,2.756296296296289,2.756296296296297,2.7562962962962985,3.792962962962953,3.792962962962965,3.7929629629629673,1.605555555555555,1.6055555555555558,1.605555555555556,3.6958597342054818,4.160492753623191,4.166649275362313,0.0038910505836575876,0.9948119325551232 +230_200,two_150_250,15.0,intensive,771,4.1416131092689685,4.166666666666667,4.166666666666667,4.146614564183535,4.166666666666667,4.166666666666667,4.029839060884612,4.15740579710145,4.166640579710136,0.6216248321150202,0.625,0.6250000000000002,0.3175946239921458,0.4091666666666782,0.40916666666669244,0.9392194561071661,1.0341666666666782,1.0341666666666924,2.016701388888896,2.016701388888913,2.0167013888889187,3.0508680555555543,3.0508680555555543,3.0508680555555543,1.2541666666666642,1.2541666666666664,1.2541666666666664,3.526537698076968,4.15740579710145,4.166640579710136,0.00648508430609598,0.9922178988326849 +230_200,two_150_250,25.0,soft,771,6.937639594729222,6.944444444444445,6.944444444444445,6.939703407958795,6.944444444444445,6.944444444444445,6.900778240192487,6.941357487922707,6.944435748792268,1.0408185512287558,1.0416666666667425,1.0416666666667425,0.5385425252231796,0.6919444444444594,0.6919444444444594,1.579361076451935,1.733611111111145,1.733611111111145,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.64470646440719,6.941357487922707,6.944435748792268,0.0,0.9987029831387808 +230_200,two_150_250,25.0,nominal,771,6.928168258801854,6.944444444444445,6.944444444444445,6.931942510197558,6.944444444444445,6.944444444444445,6.854092174664942,6.938270531400969,6.944427053140091,1.0395202683739455,1.0416666666667425,1.0416666666667425,0.536131709640751,0.6894444444444616,0.6894444444444616,1.5756519780146963,1.731111111111204,1.731111111111204,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.469984510986996,6.938270531400969,6.944427053140091,0.0,0.9987029831387808 +230_200,two_150_250,25.0,intensive,771,6.914038049587393,6.944444444444445,6.944444444444445,6.919234057031142,6.944444444444445,6.944444444444445,6.802458553732221,6.935183574879229,6.944418357487914,1.0375031646024946,1.0416666666667425,1.0416666666667425,0.5333571282717834,0.6869444444444639,0.6869444444444639,1.5708602928742779,1.7286111111111495,1.7286111111111495,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.290315002161625,6.935183574879229,6.944418357487914,0.0,0.9987029831387808 +230_200,two_200_300,5.0,soft,599,1.3855709531989706,1.3888888888888888,1.3888888888888888,1.3872088714685504,1.3888888888888888,1.3888888888888888,1.3484494318227693,1.387184541062783,1.3888367149758483,0.2772855870185115,0.2777777777777857,0.2777777777777857,0.10571754987760659,0.13638888888889156,0.13638888888889156,0.3830031368961181,0.4141666666666737,0.4141666666666737,0.4481558641975312,0.4481558641975312,0.4481558641975312,0.8623225308641987,0.8623225308642049,0.8623225308642049,0.969444444444445,0.9694444444444485,0.9694444444444485,1.1033768648229787,1.387184541062783,1.3888367149758483,0.028380634390651086,0.9699499165275459 +230_200,two_200_300,5.0,nominal,599,1.3815071883090164,1.3888888888888888,1.3888888888888888,1.3845306364068928,1.3888888888888888,1.3888888888888888,1.307011757115331,1.3854801932366771,1.3887845410628077,0.27661824474913055,0.2777777777777857,0.2777777777777857,0.10369879407861297,0.13388888888889028,0.13388888888889028,0.3803170388277436,0.41166666666666885,0.41166666666667595,0.2680332822676144,0.27687242798354816,0.27687242798354816,0.6702734755043244,0.6885390946502099,0.6885390946502099,0.7200272299580022,0.7296296296296312,0.7296296296296312,0.9751048526932559,1.3854801932366771,1.3887845410628077,0.08514190317195326,0.9131886477462438 +230_200,two_200_300,5.0,intensive,599,1.3785711290153464,1.3888888888888888,1.3888888888888888,1.381809224714297,1.3888888888888888,1.3888888888888888,1.2655309057769544,1.3837758454105713,1.388732367149767,0.2760532079193517,0.2777777777777857,0.2777777777777857,0.10168459950182288,0.13138888888889255,0.13138888888889255,0.3777378074211745,0.40916666666666757,0.4091666666666711,0.18596065703411208,0.19185570987654899,0.19185570987654899,0.5855586647391154,0.601022376543213,0.601022376543213,0.6025922216107098,0.6097222222222243,0.6097222222222243,0.8718111506294256,1.3837758454105713,1.388732367149767,0.1318864774624374,0.8664440734557596 +230_200,two_200_300,15.0,soft,599,4.163348730976748,4.166666666666667,4.166666666666667,4.1649866492463286,4.166666666666667,4.166666666666667,4.126227209600548,4.164962318840561,4.166614492753626,0.8328411425740856,0.8333333333333712,0.8333333333333712,0.32104777013193725,0.4141666666666737,0.4141666666666737,1.1538889127060228,1.2475000000000023,1.2475000000000023,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.86522025598215,4.164962318840561,4.166614492753626,0.0,0.998330550918197 +230_200,two_200_300,15.0,nominal,599,4.15781465727904,4.166666666666667,4.166666666666667,4.1613900655682174,4.166666666666667,4.166666666666667,4.083871186276656,4.163257971014455,4.166562318840586,0.8319273701539732,0.8333333333333712,0.8333333333333712,0.3189371794713023,0.41166666666667595,0.41166666666667595,1.1508645496252756,1.2450000000000045,1.2450000000000045,2.7562962962963127,2.7562962962963127,2.7562962962963127,4.001296296296289,4.001296296296289,4.001296296296289,1.6555555555555515,1.6555555555555515,1.6555555555555515,3.6947470905615076,4.163257971014455,4.166562318840586,0.00333889816360601,0.994991652754591 +230_200,two_200_300,15.0,intensive,599,4.151944758171831,4.166666666666667,4.166666666666667,4.156068703878444,4.166666666666667,4.166666666666667,4.039790384941101,4.161553623188349,4.166510144927545,0.8308089543431224,0.8333333333333712,0.8333333333333712,0.3167008542608546,0.4091666666666782,0.4091666666666782,1.1475098086039772,1.2425000000000068,1.2425000000000068,2.0167013888888903,2.0167013888888903,2.0167013888888903,3.259201388888876,3.2592013888888878,3.25920138888889,1.3041666666666671,1.3041666666666671,1.3041666666666671,3.5278620696328886,4.161553623188349,4.166510144927545,0.005008347245409015,0.993322203672788 +230_200,two_200_300,25.0,soft,599,6.941126508754526,6.944444444444445,6.944444444444445,6.942764427024106,6.944444444444445,6.944444444444445,6.904004987378324,6.942740096618339,6.944392270531404,1.388396698129639,1.3888888888889142,1.3888888888889142,0.5363779903862804,0.6919444444444594,0.6919444444444594,1.9247746885159194,2.080833333333345,2.080833333333345,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.642998033759927,6.942740096618339,6.944392270531404,0.0,0.998330550918197 +230_200,two_200_300,25.0,nominal,599,6.934176722879514,6.944444444444445,6.944444444444445,6.937752131168693,6.944444444444445,6.944444444444445,6.860233251877131,6.941035748792233,6.9443400966183635,1.3871997832740666,1.3888888888889142,1.3888888888889142,0.5341258285079296,0.6894444444444616,0.6894444444444616,1.9213256117819963,2.0783333333333758,2.0783333333333758,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.468722821449535,6.941035748792233,6.9443400966183635,0.0,0.998330550918197 +230_200,two_200_300,25.0,intensive,599,6.923500436314949,6.944444444444445,6.944444444444445,6.927958271837922,6.944444444444445,6.944444444444445,6.81167995290058,6.939331400966127,6.944287922705323,1.3851534789533806,1.3888888888889142,1.3888888888889142,0.5315531207236125,0.6869444444444639,0.6869444444444639,1.9167065996769932,2.0758333333333496,2.0758333333333496,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.289666045663784,6.939331400966127,6.944287922705323,0.0,0.998330550918197 +230_1000,single_250,5.0,soft,207,1.3724854815748335,1.3888888888888888,1.3888888888888888,1.378743167868561,1.3888888888888888,1.3888888888888888,1.378743167868561,1.3888888888888888,1.3888888888888888,0.3439259953198591,0.34722222222222854,0.34722222222222854,0.0,0.0,0.0,0.3439259953198591,0.34722222222222854,0.34722222222222854,0.4776768861115074,0.4822530864197532,0.4822530864197603,0.8223001645049943,0.8294753086419746,0.8294753086419888,0.9404720469830434,0.9444444444444446,0.9444444444444446,0.3588959835703238,1.1799567149757608,1.3820367149757433,0.4927536231884058,0.4975845410628019 +230_1000,single_250,5.0,nominal,207,1.3712565800835494,1.3888888888888888,1.3888888888888888,1.3775142663772775,1.3888888888888888,1.3888888888888888,1.3775142663772775,1.3888888888888888,1.3888888888888888,0.34361876994703816,0.34722222222222854,0.34722222222222854,0.0,0.0,0.0,0.34361876994703816,0.34722222222222854,0.34722222222222854,0.3180271803179197,0.3215020576131735,0.3215020576131735,0.6623059998776091,0.6687242798354021,0.6687242798354021,0.7099926245528622,0.712962962962963,0.7129629629629655,0.2296820182502099,1.075490628019197,1.3786106280191706,0.6328502415458938,0.36231884057971014 +230_1000,single_250,5.0,intensive,207,1.3692046582183937,1.3888888888888888,1.3888888888888888,1.3762853648859938,1.3888888888888888,1.3888888888888888,1.3762853648859938,1.3888888888888888,1.3888888888888888,0.343241437551761,0.34722222222222854,0.34722222222222854,0.0,0.0,0.0,0.343241437551761,0.34722222222222854,0.34722222222222854,0.2385019169849753,0.2411265432098766,0.2411265432098766,0.5826735237163153,0.5883487654321016,0.5883487654321016,0.5948838577421841,0.5972222222222285,0.5972222222222285,0.16166930383451694,0.9710245410626328,1.3751845410625978,0.7342995169082126,0.2608695652173913 +230_1000,single_250,15.0,soft,207,4.086817279283066,4.166666666666667,4.166666666666667,4.098894573969057,4.166666666666667,4.166666666666667,4.098894573969057,4.166666666666667,4.166666666666667,1.0232139816565227,1.0416666666666856,1.0416666666666856,0.0,0.0,0.0,1.0232139816565227,1.0416666666666856,1.0416666666666856,4.052152116724752,4.340277777777779,4.340277777777786,5.046971004055289,5.381944444444457,5.381944444444457,2.247702290790094,2.3333333333333357,2.3333333333333357,2.2927411888260014,3.957734492753539,4.159814492753521,0.1497584541062802,0.8357487922705314 +230_1000,single_250,15.0,nominal,207,4.0658827977315735,4.166666666666667,4.166666666666667,4.077960092417563,4.166666666666667,4.166666666666667,4.077960092417563,4.166666666666667,4.166666666666667,1.0179803612686495,1.0416666666666856,1.0416666666666856,0.0,0.0,0.0,1.0179803612686495,1.0416666666666856,1.0416666666666856,2.7670296297307675,2.8935185185185333,2.8935185185185333,3.7761954423601787,3.935185185185219,3.935185185185219,1.598530607315391,1.6388888888888893,1.6388888888888893,1.7818815654976756,3.853268405796975,4.156388405796949,0.27053140096618356,0.714975845410628 +230_1000,single_250,15.0,intensive,207,4.051722775327312,4.166666666666667,4.166666666666667,4.066113365539456,4.166666666666667,4.166666666666667,4.066113365539456,4.166666666666667,4.166666666666667,1.014789343724533,1.0416666666666856,1.0416666666666856,0.0,0.0,0.0,1.014789343724533,1.0416666666666856,1.0416666666666856,2.0659811888264135,2.170138888888914,2.170138888888914,3.0719853935142036,3.2118055555555998,3.2118055555555998,1.2583190195025986,1.2916666666666714,1.2916666666666714,1.439227977316039,3.748802318840411,4.152962318840376,0.391304347826087,0.5942028985507246 +230_1000,single_250,25.0,soft,207,6.830749879810491,6.944444444444445,6.944444444444445,6.842827174496482,6.944444444444445,6.944444444444445,6.842827174496482,6.944444444444445,6.944444444444445,1.709197131788354,1.7361111111111143,1.7361111111111143,0.0,0.0,0.0,1.709197131788354,1.7361111111111143,1.7361111111111143,10.610217522100562,12.05632716049386,12.056327160493879,12.206108524515997,13.792438271604954,13.792438271604965,3.457407004830901,3.722222222222226,3.7222222222222285,4.803812812434454,6.735512270531316,6.937592270531299,0.03864734299516908,0.9468599033816425 +230_1000,single_250,25.0,nominal,207,6.776690256482066,6.944444444444445,6.944444444444445,6.788767551168056,6.944444444444445,6.944444444444445,6.788767551168056,6.944444444444445,6.944444444444445,1.6956822259562483,1.7361111111111143,1.7361111111111143,0.0,0.0,0.0,1.6956822259562483,1.7361111111111143,1.7361111111111143,7.222003975933089,8.037551440329253,8.037551440329253,8.833932616374762,9.773662551440339,9.773662551440339,2.4051905682079604,2.5648148148148167,2.5648148148148167,4.009368480011386,6.631046183574752,6.934166183574726,0.13526570048309178,0.8502415458937198 +230_1000,single_250,25.0,intensive,207,6.744055086466428,6.944444444444445,6.944444444444445,6.758445676678572,6.944444444444445,6.944444444444445,6.758445676678572,6.944444444444445,6.944444444444445,1.6878724215092884,1.7361111111111143,1.7361111111111143,0.0,0.0,0.0,1.6878724215092884,1.7361111111111143,1.7361111111111143,5.470568704426801,6.0281635802469395,6.0281635802469395,7.0867966282555725,7.764274691358025,7.764274691358025,1.8698616447590215,1.9861111111111143,1.9861111111111143,3.4055366519641526,6.526580096618189,6.930740096618154,0.20772946859903382,0.7777777777777778 +230_1000,two_100_200,5.0,soft,236,1.3738655612871538,1.3888888888888888,1.3888888888888888,1.3761763285024153,1.3888888888888888,1.3888888888888888,1.3287141324818128,1.3641758454106223,1.3884888888888827,0.137507345113003,0.13888888888889284,0.13888888888889284,0.12823703748712198,0.13638888888890222,0.13638888888890222,0.26574438260012495,0.27527777777778795,0.27527777777778795,0.4408439421152163,0.4481558641975312,0.4481558641975312,0.7132345191903162,0.7234336419753191,0.7234336419753191,0.8625673517786538,0.8694444444444471,0.8694444444444471,0.41482872349149863,1.3641758454106223,1.3884888888888827,0.4661016949152542,0.5169491525423728 +230_1000,two_100_200,5.0,nominal,236,1.3714417587816259,1.3888888888888888,1.3888888888888888,1.3741762548104468,1.3888888888888888,1.3888888888888888,1.2792518627692424,1.3394628019323558,1.3880888888888765,0.13728615130312816,0.13888888888889284,0.13888888888889284,0.12570589025313805,0.1338888888889045,0.1338888888889045,0.2629920415562662,0.2727777777777902,0.2727777777777902,0.27243801656878996,0.27687242798354106,0.27687242798354106,0.5423399629289455,0.5496502057613242,0.5496502057613242,0.6250664623243956,0.6296296296296333,0.6296296296296333,0.2910178989602675,1.3394628019323558,1.3880888888888765,0.614406779661017,0.3728813559322034 +230_1000,two_100_200,5.0,intensive,236,1.3686573814787513,1.3888888888888888,1.3888888888888888,1.371391877507572,1.3888888888888888,1.3888888888888888,1.2290052894457653,1.3147497584540893,1.3876888888888703,0.13700771357284072,0.13888888888889284,0.13888888888889284,0.12309631265806012,0.13138888888889255,0.13138888888889255,0.26010402623090084,0.2702777777777854,0.2702777777777854,0.18662966396445485,0.19185570987654899,0.19185570987654899,0.4518130433065305,0.46213348765432727,0.46213348765432727,0.5035774384633078,0.5097222222222229,0.5097222222222229,0.227621632686694,1.3147497584540893,1.3876888888888703,0.711864406779661,0.2754237288135593 +230_1000,two_100_200,15.0,soft,236,4.092815720953085,4.166666666666667,4.166666666666667,4.097053009088677,4.166666666666667,4.166666666666667,4.049590813068075,4.1419536231884,4.166266666666661,0.4094934365020759,0.4166666666666856,0.4166666666666856,0.3862257945490893,0.4141666666666879,0.4141666666666879,0.7957192310511653,0.8308333333333451,0.8308333333333735,3.915341749730826,4.236736111111114,4.236736111111114,4.705471053143637,5.067569444444445,5.067569444444448,2.1581861617578397,2.25833333333334,2.25833333333334,2.4006394743307746,4.1419536231884,4.166266666666661,0.13135593220338984,0.847457627118644 +230_1000,two_100_200,15.0,nominal,236,4.072829378531075,4.166666666666667,4.166666666666667,4.077768803733728,4.166666666666667,4.166666666666667,3.982844411692524,4.117240579710134,4.165866666666655,0.4075346832095401,0.4166666666666856,0.4166666666666856,0.381966234148807,0.41166666666669016,0.41166666666669016,0.7895009173583472,0.8283333333333474,0.8283333333333758,2.633322133880217,2.7562962962962985,2.7562962962962985,3.436310577691097,3.5846296296296316,3.5846296296296316,1.513860521105572,1.5555555555555571,1.5555555555555571,1.9020369442400271,4.117240579710134,4.165866666666655,0.2584745762711864,0.7203389830508474 +230_1000,two_100_200,15.0,intensive,236,4.055446352247603,4.166666666666667,4.166666666666667,4.061378555637433,4.166666666666667,4.166666666666667,3.918991967575628,4.092527536231867,4.165466666666648,0.4058412453942396,0.4166666666666856,0.4166666666666856,0.37799606947439063,0.40916666666669244,0.40916666666669244,0.7838373148686303,0.8258333333333496,0.825833333333378,1.8769313196115756,2.0167013888888903,2.0167013888888903,2.6603070995710585,2.84253472222224,2.84253472222224,1.1516995636590313,1.2041666666666662,1.2041666666666666,1.5711277327442197,4.092527536231867,4.165466666666648,0.3940677966101695,0.5847457627118644 +230_1000,two_100_200,25.0,soft,236,6.834378113485626,6.944444444444445,6.944444444444445,6.839039130434779,6.944444444444445,6.944444444444445,6.791576934414176,6.919587922705303,6.9440444444444385,0.6836708621960256,0.6944444444444571,0.6944444444444571,0.6465648547221928,0.6919444444445162,0.6919444444445162,1.3302357169182184,1.3863888888889733,1.3863888888889733,10.27700007040972,11.883341049382722,11.883341049382722,11.541212872342115,13.269729938271656,13.269729938271666,3.344907004830903,3.6472222222222257,3.6472222222222257,4.92248906083693,6.919587922705303,6.9440444444444385,0.03389830508474576,0.9449152542372882 +230_1000,two_100_200,25.0,nominal,236,6.785125227216901,6.944444444444445,6.944444444444445,6.790488381233113,6.944444444444445,6.944444444444445,6.695563989191908,6.894731400966162,6.943644444444432,0.6787854545188172,0.6944444444444571,0.6944444444444571,0.6393786399372184,0.6894444444445185,0.6894444444445185,1.3181640944560356,1.3838888888889187,1.3838888888889187,6.961494940966431,7.807736625514416,7.807736625514423,8.241037853319801,9.191625514403313,9.191625514403313,2.308761996779391,2.481481481481481,2.481481481481482,4.1596370588719225,6.894731400966162,6.943644444444432,0.11864406779661017,0.8601694915254238 +230_1000,two_100_200,25.0,intensive,236,6.750689846884468,6.944444444444445,6.944444444444445,6.757045779087856,6.944444444444445,6.944444444444445,6.614659191026052,6.86987487922702,6.943244444444426,0.6753867812986212,0.6944444444444571,0.6944444444444571,0.6337032398579249,0.6869444444445207,0.6869444444445207,1.309090021156546,1.3813888888889778,1.3813888888889778,5.135541137028498,5.7705594135802585,5.7705594135802585,6.3993184974972435,7.151948302469236,7.151948302469236,1.7523945729263055,1.8986111111111157,1.8986111111111157,3.5664350691889193,6.86987487922702,6.943244444444426,0.19915254237288135,0.7796610169491526 +230_1000,two_150_250,5.0,soft,222,1.3733685946816387,1.3888888888888888,1.3888888888888888,1.3769512120816467,1.3888888888888888,1.3888888888888888,1.3290207381294525,1.3615697584540978,1.3881671497584374,0.20628467322671853,0.2083333333333428,0.2083333333333428,0.12957973668957068,0.13638888888889156,0.13638888888889156,0.33586440991628924,0.3447222222222308,0.3447222222222308,0.44296281915704516,0.4481558641975312,0.4481558641975454,0.7850142426362475,0.792878086419762,0.7928780864197762,0.9145397401622857,0.9194444444444514,0.9194444444444514,0.4021722287506129,1.3615697584540978,1.3881671497584374,0.46396396396396394,0.5225225225225225 +230_1000,two_150_250,5.0,nominal,222,1.3716928406667535,1.3888888888888888,1.3888888888888888,1.3755801192496837,1.3888888888888888,1.3888888888888888,1.2797191713452953,1.3342506280193065,1.3874454106279859,0.206068706455486,0.2083333333333428,0.2083333333333428,0.12707592635390358,0.13388888888889028,0.13388888888889028,0.3331446328093895,0.3422222222222331,0.3422222222222331,0.27307862380547876,0.27687242798354816,0.27687242798354816,0.6122226231449572,0.619094650205767,0.619094650205767,0.6758710133342606,0.6796296296296305,0.6796296296296305,0.2722592244419439,1.3342506280193065,1.3874454106279859,0.6261261261261262,0.36486486486486486 +230_1000,two_150_250,5.0,intensive,222,1.3691833224528867,1.3888888888888888,1.3888888888888888,1.37344161552857,1.3888888888888888,1.3888888888888888,1.2296501936719872,1.3069314975845154,1.3867236714975344,0.2057075580680814,0.2083333333333428,0.2083333333333428,0.12449537492932472,0.13138888888889255,0.13138888888889255,0.33020293299740605,0.33972222222223536,0.33972222222223536,0.1888916345791824,0.19185570987654899,0.19185570987654899,0.5250754956210629,0.5315779320987701,0.5315779320987701,0.5564704852456972,0.5597222222222222,0.5597222222222227,0.20476956521756046,1.3069314975845154,1.3867236714975344,0.7072072072072072,0.28378378378378377 +230_1000,two_150_250,15.0,soft,222,4.090861156808985,4.166666666666667,4.166666666666667,4.097617913565742,4.166666666666667,4.166666666666667,4.049687439613548,4.139347536231876,4.1659449275362155,0.6141359302781046,0.625,0.6250000000000284,0.3901490399057161,0.4141666666666737,0.4141666666666879,1.0042849701838208,1.0391666666666737,1.0391666666666879,3.9312965884405067,4.236736111111114,4.236736111111128,4.922163862867796,5.275902777777787,5.275902777777787,2.2146377746610657,2.308333333333337,2.308333333333337,2.3748056795927703,4.139347536231876,4.1659449275362155,0.13963963963963963,0.8423423423423423 +230_1000,two_150_250,15.0,nominal,222,4.070586055620841,4.166666666666667,4.166666666666667,4.07764747356052,4.166666666666667,4.166666666666667,3.981786525656132,4.112028405797084,4.165223188405764,0.6111300614308837,0.625,0.6250000000000284,0.38578529485272683,0.41166666666667595,0.41166666666669016,0.9969153562836104,1.036666666666676,1.0366666666666902,2.6291914061507082,2.7562962962962985,2.7562962962963127,3.6331379355175906,3.7929629629629744,3.7929629629629744,1.5629813374014772,1.6055555555555552,1.605555555555556,1.8687387387389953,4.112028405797084,4.165223188405764,0.25675675675675674,0.7252252252252253 +230_1000,two_150_250,15.0,intensive,222,4.054963990077032,4.166666666666667,4.166666666666667,4.063768533751142,4.166666666666667,4.166666666666667,3.919977111894559,4.084709275362294,4.1645014492753125,0.6089064484408799,0.625,0.6250000000000284,0.3820306998193211,0.4091666666666782,0.40916666666669244,0.990937148260201,1.0341666666666782,1.0341666666666924,1.9177415315744555,2.0167013888889187,2.0167013888889187,2.917129852120053,3.0508680555555685,3.0508680555555685,1.220182438192668,1.2541666666666664,1.2541666666666673,1.5296652696178274,4.084709275362294,4.1645014492753125,0.38288288288288286,0.5990990990990991 +230_1000,two_150_250,25.0,soft,222,6.836404917961434,6.944444444444445,6.944444444444445,6.843161674718191,6.944444444444445,6.944444444444445,6.795231200765998,6.917125314009653,6.943722705313993,1.0259674944509924,1.0416666666667425,1.0416666666667425,0.6532060490887157,0.6919444444444594,0.6919444444444594,1.6791735435397084,1.733611111111145,1.733611111111145,10.362329871134381,11.883341049382711,11.883341049382722,11.95134587354983,13.616952160493838,13.616952160493838,3.4136570048309025,3.697222222222223,3.697222222222223,4.897141232536989,6.917125314009653,6.943722705313993,0.036036036036036036,0.9459459459459459 +230_1000,two_150_250,25.0,nominal,222,6.785017635026331,6.944444444444445,6.944444444444445,6.79207905296601,6.944444444444445,6.944444444444445,6.696218105061622,6.889806183574862,6.943000966183542,1.0182947983417274,1.0416666666667425,1.0416666666667425,0.6457310858610491,0.6894444444444616,0.6894444444444616,1.6640258842027766,1.731111111111204,1.731111111111204,6.982563051157364,7.807736625514399,7.807736625514401,8.586991691599083,9.538847736625598,9.538847736625598,2.36471437773177,2.5314814814814817,2.5314814814814817,4.119931583757879,6.889806183574862,6.943000966183542,0.12612612612612611,0.8558558558558559 +230_1000,two_150_250,25.0,intensive,222,6.751718292205247,6.944444444444445,6.944444444444445,6.760522835879357,6.944444444444445,6.944444444444445,6.616731414022777,6.862487053140072,6.94227922705309,1.0134195937601325,1.0416666666667425,1.0416666666667425,0.6402087630998968,0.6869444444444639,0.6869444444444639,1.6536283568600292,1.7286111111111495,1.7286111111111495,5.218716991697903,5.7705594135802585,5.7705594135802585,6.82599142715461,7.499170524691408,7.499170524691408,1.828582574991583,1.94861111111112,1.94861111111112,3.5223522783656356,6.862487053140072,6.94227922705309,0.19369369369369369,0.7882882882882883 +230_1000,two_200_300,5.0,soft,211,1.373033413467043,1.3888888888888888,1.3888888888888888,1.3779876365134964,1.3888888888888888,1.3888888888888888,1.3292009890789218,1.3388888888888917,1.3866280193236622,0.2751187220610514,0.2777777777777857,0.2777777777777857,0.13200728952693241,0.13638888888889156,0.13638888888889156,0.4071260115879839,0.4141666666666737,0.4141666666666737,0.443285087744276,0.4481558641975312,0.4481558641975312,0.854351648226411,0.8623225308642049,0.8623225308642049,0.9649376668101615,0.9694444444444485,0.9694444444444485,0.40154428188760083,1.2908541062801535,1.3866280193236622,0.4786729857819905,0.5118483412322274 +230_1000,two_200_300,5.0,nominal,211,1.3718278086864946,1.3888888888888888,1.3888888888888888,1.376782031732948,1.3888888888888888,1.3888888888888888,1.279208736863798,1.2888888888888945,1.3843671497584356,0.27487760110494175,0.2777777777777857,0.2777777777777857,0.1294656787172998,0.13388888888889028,0.13388888888889028,0.40434327982224144,0.41166666666666885,0.41166666666666885,0.2734234282101569,0.27687242798354816,0.27687242798354816,0.6816776693066586,0.6885390946502099,0.6885390946502099,0.7263548415284157,0.7296296296296312,0.7296296296296312,0.26759488060084785,1.2168367149757873,1.3843671497584356,0.6113744075829384,0.38388625592417064 +230_1000,two_200_300,5.0,intensive,211,1.3700517526386875,1.3888888888888888,1.3888888888888888,1.3755764269523996,1.3888888888888888,1.3888888888888888,1.2292164846486746,1.2388888888888974,1.382106280193209,0.27460214890343454,0.2777777777777857,0.2777777777777857,0.12692406790767147,0.13138888888889255,0.13138888888889255,0.40152621681110606,0.40916666666666757,0.4091666666666711,0.18936696100079312,0.19185570987654899,0.19185570987654899,0.5949706237631145,0.601022376543213,0.601022376543213,0.6071342535081636,0.6097222222222243,0.6097222222222243,0.19539220184548028,1.142819323671421,1.382106280193209,0.6966824644549763,0.2985781990521327 +230_1000,two_200_300,15.0,soft,211,4.089752812693182,4.166666666666667,4.166666666666667,4.099231485678963,4.166666666666667,4.166666666666667,4.050444838244388,4.11666666666667,4.16440579710144,0.818898429837235,0.8333333333333712,0.8333333333333712,0.3973908268577725,0.4141666666666737,0.4141666666666737,1.2162892566950079,1.2475000000000023,1.2475000000000023,3.938435271018157,4.236736111111128,4.236736111111128,5.129177357974677,5.484236111111116,5.484236111111116,2.2681812560386545,2.3583333333333343,2.3583333333333343,2.368266117178499,4.068631884057932,4.16440579710144,0.14218009478672985,0.8436018957345972 +230_1000,two_200_300,15.0,nominal,211,4.0687412597019055,4.166666666666667,4.166666666666667,4.078219932687688,4.166666666666667,4.166666666666667,3.9806466378185377,4.066666666666673,4.162144927536214,0.8146961192389794,0.8333333333333712,0.8333333333333712,0.3928686212270729,0.41166666666667595,0.41166666666667595,1.2075647404660523,1.2450000000000045,1.2450000000000045,2.629519928371154,2.7562962962963127,2.7562962962963127,3.835264339438348,4.001296296296303,4.001296296296303,1.613554396135266,1.6555555555555557,1.655555555555556,1.8603587059553008,3.9946144927535654,4.162144927536214,0.26066350710900477,0.7251184834123223 +230_1000,two_200_300,15.0,intensive,211,4.055086640565973,4.166666666666667,4.166666666666667,4.066123854660351,4.166666666666667,4.166666666666667,3.9197639123566255,4.0166666666666755,4.159884057970987,0.812147614974771,0.8333333333333712,0.8333333333333712,0.3892379630927665,0.4091666666666782,0.4091666666666782,1.2013855780675373,1.2425000000000068,1.2425000000000068,1.910523806892058,2.0167013888889187,2.0167013888889187,3.1083953483940356,3.2592013888889255,3.2592013888889255,1.268274985883681,1.3041666666666671,1.3041666666666671,1.517942853218279,3.920597101449199,4.159884057970987,0.36492890995260663,0.6208530805687204 +230_1000,two_200_300,25.0,soft,211,6.835037928429144,6.944444444444445,6.944444444444445,6.844516601414927,6.944444444444445,6.944444444444445,6.795729953980353,6.8944444444444475,6.942183574879218,1.3679554529844258,1.3888888888889142,1.3888888888889142,0.665178490845682,0.6919444444444594,0.6919444444444594,2.0331339438301077,2.080833333333345,2.080833333333345,10.450472171859033,11.88334104938275,11.88334104938275,12.367416374757568,13.964174382716067,13.964174382716067,3.4824070048308986,3.74722222222222,3.74722222222222,4.889906220665428,6.846409661835709,6.942183574879218,0.037914691943127965,0.9478672985781991 +230_1000,two_200_300,25.0,nominal,211,6.781292231609314,6.944444444444445,6.944444444444445,6.790770904595096,6.944444444444445,6.944444444444445,6.693197609725946,6.84444444444445,6.939922705313991,1.3572063136204586,1.3888888888889142,1.3888888888889142,0.657382870832147,0.6894444444444616,0.6894444444444616,2.0145891844526056,2.0783333333333758,2.0783333333333758,7.004643066110208,7.807736625514417,7.807736625514423,8.935386006068818,9.88606995884777,9.88606995884777,2.4206667586841513,2.5814814814814824,2.5814814814814824,4.104975524875972,6.772392270531343,6.939922705313991,0.13270142180094788,0.8530805687203792 +230_1000,two_200_300,25.0,intensive,211,6.749553632346542,6.944444444444445,6.944444444444445,6.760590846440921,6.944444444444445,6.944444444444445,6.6142309041371945,6.794444444444453,6.937661835748765,1.3510410133308826,1.3888888888889142,1.3888888888889142,0.651943814685136,0.6869444444444639,0.6869444444444639,2.0029848280160185,2.0758333333333496,2.0758333333333496,5.201220435910335,5.7705594135802585,5.7705594135802585,7.126910312191698,7.84639274691358,7.846392746913581,1.8755240838930165,1.9986111111111171,1.9986111111111171,3.508621993269039,6.698374879226977,6.937661835748765,0.1943127962085308,0.7914691943127962 diff --git a/data/processed/lab039/lab039_emergency_path.png b/data/processed/lab039/lab039_emergency_path.png new file mode 100644 index 0000000000000000000000000000000000000000..888c059680e8f5ae910f880727caf11c13ead2b1 GIT binary patch literal 80927 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�#W7l-x{(wdwAKLRieGRVfH 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

X~fxd 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

dKcFfcI1?}D9P^{@W)=_(dR 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 YA5BanZI1|{J_Jko`mJk)SIxuz7bIYlcK`qY literal 0 HcmV?d00001 diff --git a/data/processed/lab039/lab039_policy_comparison.png b/data/processed/lab039/lab039_policy_comparison.png new file mode 100644 index 0000000000000000000000000000000000000000..be11115012f5ec309d9657a7c14475b7833ed526 GIT binary patch literal 44943 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 literal 0 HcmV?d00001 diff --git a/data/processed/lab039/lab039_report.txt b/data/processed/lab039/lab039_report.txt new file mode 100644 index 0000000..e543192 --- /dev/null +++ b/data/processed/lab039/lab039_report.txt @@ -0,0 +1,183 @@ +Lab039 — двухступенчатая безопасная реакция и оценка пути до остановки + +Состояние Git до реализации +- Корень: C:/Users/user/Desktop/projects/SDR_Rover +- Ветка: main +- HEAD: 23cfdf581b63d2674e7c48965aea45cc5afff2d7 +- Перед окончательным повторным запуском рабочее дерево содержало только новые файлы Lab039; индекс был пуст. +- Неизвестных изменений не было; локально известный origin/main имел ahead/behind 0/0. +- Lab036–Lab038 присутствовали; Lab038 зафиксирована коммитом 23cfdf5. +- Fetch, pull и push не выполнялись. + +Конечный автомат +- NORMAL поддерживает заданную скорость и принимает только команды с новым sequence. +- STAGE1_DECELERATION запрещает положительное ускорение и применяет a_stage1. +- STAGE2_BRAKING задаёт нулевую скорость и применяет a_stage2 до точной остановки. +- EMERGENCY_LATCHED выполняет ту же обязательную остановку, фиксируется и не снимается обычной командой. +- Свежая команда снимает только временные защитные состояния; старая и повторная команды таймер не обновляют. +- Предварительная реакция уменьшает скорость с возможностью мягкого восстановления, а обязательное торможение требует полной остановки. + +Порядок совпадающих событий +- Полностью полученная emergency-команда обрабатывается первой и фиксирует аварийную остановку. +- Полностью полученная свежая обычная команда обрабатывается раньше первого и второго порогов watchdog при одинаковом времени. +- Такая команда обновляет время свежести и отменяет переход, рассчитанный от предыдущей команды; затем очередь событий строится заново. +- Далее обрабатывается второй порог, затем первый; равные пороги запрещены проверкой ThresholdPolicy. +- Правило receive-before-threshold отдельно проверяется для обоих порогов. + +Параметры движения и эксперимента +- Длительность опыта: 120 с; команды: 20 Гц; a_resume=1.0 м/с². +- Основная матрица: 5 каналов × 4 политики × 3 скорости × 3 профиля = 180 сочетаний. +- Условия с потерями: 100 повторов; контроль без потерь: один детерминированный опыт. +- Скорости: 5, 15 и 25 км/ч; внутри модели используются м/с. +- Профили a_stage1/a_stage2: мягкий 0,5/2,0; номинальный 1,0/3,0; интенсивный 1,5/4,0 м/с². +- Интегрирование событийное и точное на каждом участке постоянного ускорения; крупный фиксированный шаг не используется. +- Ранее сформированный каталог результатов Lab039 удалён; все CSV, TXT и PNG получены заново одним полным запуском окончательного кода. +- Проверенные при построении нагрузки пакеты CRC/FEC: 12356/714. + +Компактная сводка 180 сочетаний +политика | реакции этапа 1, 1/мин (среднее) | торможения этапа 2, 1/мин (среднее) | полные остановки, 1/мин (среднее) | максимальный полный путь, м +Один порог 250 мс | 0.0000 | 1.2510 | 0.1078 | 13.7924 +Два порога 100/200 мс | 4.3680 | 1.6900 | 0.1303 | 13.2697 +Два порога 150/250 мс | 2.5890 | 1.2510 | 0.1146 | 13.6170 +Два порога 200/300 мс | 1.6900 | 0.9800 | 0.1024 | 13.9642 + +Расширенная сводка политик +политика | этап 1 ср/макс, 1/мин | этап 2 ср/макс, 1/мин | остановки ср/макс, 1/мин | путь ср/макс/P95макс, м | время этап 1/этап 2/ноль, % | потеря скорости, м/с | восстановление, с +Один порог 250 мс | 0.0000/0.0000 | 1.2510/2.3400 | 0.1078/0.7600 | 1.2516/13.7924/13.7924 | 0.0000/0.7027/0.1496 | 0.0000 | 0.6127 +Два порога 100/200 мс | 4.3680/11.3850 | 1.6900/2.9950 | 0.1303/0.8400 | 1.3003/13.2697/13.2697 | 0.4340/0.8205/0.1686 | 0.0256 | 0.5525 +Два порога 150/250 мс | 2.5890/4.2100 | 1.2510/2.3400 | 0.1146/0.7850 | 1.2081/13.6170/13.6170 | 0.2864/0.7027/0.1568 | 0.0220 | 0.5362 +Два порога 200/300 мс | 1.6900/2.9950 | 0.9800/1.8650 | 0.1024/0.7350 | 1.2571/13.9642/13.9642 | 0.2084/0.6121/0.1463 | 0.0219 | 0.5336 + +Интерпретация агрегированного пути +- Нулевой полный путь в строке сочетания означает отсутствие полной остановки в данном сочетании, а не отсутствие движения ровера. +- Средний путь, включающий нулевые значения сочетаний без полной остановки, нельзя использовать как единственный показатель безопасности. +- Для сравнения политик необходимо совместно учитывать максимальный путь, аналитический путь при длительной потере связи, частоту обязательных торможений и частоту полных остановок. + +Сравнение 100/200 и 150/250 мс по выбранным условиям +канал | скорость, км/ч | политика | этап 1/этап 2/остановки, 1/мин | путь ср/макс/P95макс, м | время этап 1/этап 2/ноль, % | потеря скорости, м/с | восстановление, с +260 кбит/с, помеха 200 мс | 5 | Два порога 100/200 мс | 4.4650/2.9300/0.3950 | 0.5553/0.7234/0.7234 | 0.6166/1.0200/0.1803 | 0.0492 | 0.4254 +260 кбит/с, помеха 200 мс | 5 | Два порога 150/250 мс | 3.7700/2.3400/0.3133 | 0.6292/0.7929/0.7929 | 0.4875/0.8047/0.1435 | 0.0358 | 0.4040 +260 кбит/с, помеха 200 мс | 15 | Два порога 100/200 мс | 4.4650/2.9300/0.0100 | 0.8148/2.8425/2.8425 | 0.6166/1.0200/0.0038 | 0.0485 | 0.4887 +260 кбит/с, помеха 200 мс | 15 | Два порога 150/250 мс | 3.7700/2.3400/0.0067 | 0.8181/3.0509/3.0509 | 0.4875/0.8047/0.0026 | 0.0355 | 0.4626 +260 кбит/с, помеха 200 мс | 25 | Два порога 100/200 мс | 4.4650/2.9300/0.0000 | 0.0000/0.0000/0.0000 | 0.6166/1.0200/0.0000 | 0.0484 | 0.4887 +260 кбит/с, помеха 200 мс | 25 | Два порога 150/250 мс | 3.7700/2.3400/0.0000 | 0.0000/0.0000/0.0000 | 0.4875/0.8047/0.0000 | 0.0354 | 0.4619 +230 кбит/с, помеха 200 мс | 5 | Два порога 100/200 мс | 4.8100/2.9950/0.3783 | 0.5574/0.7234/0.7234 | 0.6405/1.0384/0.1851 | 0.0415 | 0.4091 +230 кбит/с, помеха 200 мс | 5 | Два порога 150/250 мс | 3.8550/2.3150/0.2983 | 0.6301/0.7929/0.7929 | 0.5002/0.8226/0.1486 | 0.0414 | 0.3972 +230 кбит/с, помеха 200 мс | 15 | Два порога 100/200 мс | 4.8100/2.9950/0.0167 | 2.1422/3.5846/3.5846 | 0.6405/1.0384/0.0090 | 0.0415 | 0.4642 +230 кбит/с, помеха 200 мс | 15 | Два порога 150/250 мс | 3.8550/2.3150/0.0133 | 2.2813/3.7930/3.7930 | 0.5002/0.8226/0.0076 | 0.0414 | 0.4523 +230 кбит/с, помеха 200 мс | 25 | Два порога 100/200 мс | 4.8100/2.9950/0.0017 | 2.3840/7.1519/7.1519 | 0.6405/1.0384/0.0002 | 0.0415 | 0.4656 +230 кбит/с, помеха 200 мс | 25 | Два порога 150/250 мс | 3.8550/2.3150/0.0000 | 0.0000/0.0000/0.0000 | 0.5002/0.8226/0.0000 | 0.0412 | 0.4533 +230 кбит/с, помеха 1000 мс | 5 | Два порога 100/200 мс | 1.1800/1.0550/0.7050 | 0.5691/0.7234/0.7234 | 0.1867/1.9272/1.3055 | 0.0092 | 0.9961 +230 кбит/с, помеха 1000 мс | 5 | Два порога 150/250 мс | 1.1100/1.0350/0.6650 | 0.6408/0.7929/0.7929 | 0.1773/1.8405/1.2442 | 0.0049 | 0.9795 +230 кбит/с, помеха 1000 мс | 15 | Два порога 100/200 мс | 1.1800/1.0550/0.3083 | 3.6007/5.0676/5.0676 | 0.1867/1.9272/0.5730 | 0.0092 | 2.0091 +230 кбит/с, помеха 1000 мс | 15 | Два порога 150/250 мс | 1.1100/1.0350/0.2883 | 3.8241/5.2759/5.2759 | 0.1773/1.8405/0.5452 | 0.0049 | 1.9554 +230 кбит/с, помеха 1000 мс | 25 | Два порога 100/200 мс | 1.1800/1.0550/0.1383 | 8.7272/13.2697/13.2697 | 0.1867/1.9272/0.2724 | 0.0092 | 2.3735 +230 кбит/с, помеха 1000 мс | 25 | Два порога 150/250 мс | 1.1100/1.0350/0.1317 | 9.1214/13.6170/13.6170 | 0.1773/1.8405/0.2596 | 0.0049 | 2.3052 +- Полные данные каждой комбинации находятся в lab039_summary.csv, lab039_watchdog_metrics.csv и lab039_distance_metrics.csv. + +Путь и защитные реакции +- Максимальный наблюдавшийся промежуток без свежей команды: 6546.922 мс. +- Максимальное время применения устаревшей команды до обязательного торможения: 300 мс. +- Максимальный путь до первой реакции: 1.7361 м. +- Максимальный путь до второго порога: 2.0808 м. +- Максимальный тормозной путь после второго порога: 12.0563 м. +- Максимальный полный путь после последней свежей команды: 13.9642 м. +- Частота предварительных реакций: 0.0000…11.3850 1/мин. +- Частота полных остановок: 0.0000…0.8400 1/мин. +- Произведение v × timeout описывает только путь до порога; после него ровер сохраняет скорость и проходит дополнительный тормозной путь. +- Путь реакции растёт линейно со скоростью, а идеализированный тормозной путь v²/(2a) — квадратично, поэтому высокая начальная скорость особенно существенна. +- Короткий первый порог чаще пересекается обычными краткими помехами и вызывает лишние замедления. +- Длинный второй порог дольше сохраняет движение до обязательного торможения и увеличивает полный путь. + +Аналитические контрольные расчёты без восстановления связи +скорость, км/ч | профиль | один порог: реакция/торможение/итого, м | 150/250: реакция/замедление/торможение/итого, м | разница, м | ошибка модели, м +5 | Мягкий | 0.3472/0.4823/0.8295 | 0.2083/0.1364/0.4482/0.7929 | -0.0366 | 0.000e+00 +5 | Номинальный | 0.3472/0.3215/0.6687 | 0.2083/0.1339/0.2769/0.6191 | -0.0496 | 0.000e+00 +5 | Интенсивный | 0.3472/0.2411/0.5883 | 0.2083/0.1314/0.1919/0.5316 | -0.0568 | 0.000e+00 +15 | Мягкий | 1.0417/4.3403/5.3819 | 0.6250/0.4142/4.2367/5.2759 | -0.1060 | 0.000e+00 +15 | Номинальный | 1.0417/2.8935/3.9352 | 0.6250/0.4117/2.7563/3.7930 | -0.1422 | 0.000e+00 +15 | Интенсивный | 1.0417/2.1701/3.2118 | 0.6250/0.4092/2.0167/3.0509 | -0.1609 | 0.000e+00 +25 | Мягкий | 1.7361/12.0563/13.7924 | 1.0417/0.6919/11.8833/13.6170 | -0.1755 | 0.000e+00 +25 | Номинальный | 1.7361/8.0376/9.7737 | 1.0417/0.6894/7.8077/9.5388 | -0.2348 | 0.000e+00 +25 | Интенсивный | 1.7361/6.0282/7.7643 | 1.0417/0.6869/5.7706/7.4992 | -0.2651 | 0.000e+00 +- Максимальная абсолютная ошибка событийной модели: 0.000e+00 м. + +Независимая аварийная остановка +- Расчёт: 45 сочетаний; emergency сформирована на 60-й секунде; политика локального таймера 150/250 мс. +- Итоговая доставка за окно 500 мс: 98.000…100.000%. +- Время первой доставки: среднее до 8.609 мс, P95 до 6.523 мс, максимум 204.765 мс. +- Путь за время доставки: до 0.0597 м в среднем по сочетанию. +- Тормозной путь после получения: до 12.0563 м в среднем по сочетанию. +- Полный путь от формирования до остановки: среднее до 12.1106 м; максимум 12.8187 м. +- Недоставок за 500 мс: 2 в одном канальном условии, 3 суммарно в независимых транспортных опытах. +- При недоставке доля опытов с включением второго этапа локального таймера: до 100.000%. +- При недоставке доля остановок локальным таймером: до 100.000%. +- Средний путь локальной остановки при недоставке: до 2.8541 м; время — до 1.6847 с. +- Удалённая emergency не заменяет локальный сторожевой таймер: канал может быть физически недоступен, а локальная реакция не зависит от доставки. +- ACK лишь прекращает будущие копии и информирует отправителя; торможение начинается при первом корректном emergency до получения ACK. + +Инварианты безопасности +- Отрицательная скорость: 0 случаев. +- Превышение заданной скорости: 0 случаев. +- Второй порог превышен без торможения: 0 случаев. +- Снятие временного состояния старой командой: 0 случаев. +- Снятие аварийной остановки обычной командой: 0 случаев. + +Интерпретация пары 150/250 мс +- Для 150/250 мс средняя частота предварительных реакций по матрице: 2.5890 1/мин; полных остановок: 0.1146 1/мин. +- Для 100/200 мс соответствующие значения: 4.3680 и 0.1303 1/мин; для 200/300 мс: 1.6900 и 0.1024 1/мин. +- Максимальный полный путь 150/250 мс: 13.6170 м; 100/200 мс: 13.2697 м; 200/300 мс: 13.9642 м. +- Эти результаты характеризуют компромисс, но не подтверждают окончательный выбор: пороги и замедления автоматически не назначаются. + +Ограничения модели +- a_stage1 и a_stage2 являются исследовательскими параметрами и должны быть измерены на реальном ровере. +- Не моделируются уклон, пробуксовка, задержка электромеханического тормоза, изменение сцепления и сопротивление воздуха. +- Не моделируются поперечная динамика, перенос массы, ABS и фактическое время нарастания тормозного момента. +- Это расчётная одномерная модель, а не окончательный алгоритм силовой части и не замена натурных испытаний. + +Функциональные проверки +- PASS 01_fresh_command_updates_watchdog: fresh sequence updates timer +- PASS 02_old_command_does_not_update_watchdog: old sequence ignored +- PASS 03_duplicate_does_not_update_watchdog: equal sequence ignored +- PASS 04_first_threshold_enters_stage1: 150 ms enters preliminary deceleration +- PASS 05_second_threshold_enters_stage2: 250 ms enters mandatory braking +- PASS 06_single_threshold_skips_stage1: single threshold goes directly to stage2 +- PASS 07_stage1_forbids_positive_acceleration: stage1 acceleration is non-positive +- PASS 08_stage2_commands_zero_speed: stage2 applies mandatory braking to zero +- PASS 09_speed_never_negative: braking is clipped at zero +- PASS 10_constant_acceleration_matches_formula: v and s match analytic formula +- PASS 11_internal_zero_crossing_is_exact: internal stop time integrated exactly +- PASS 12_new_command_releases_temporary_state: fresh command releases temporary state +- PASS 13_old_command_does_not_release_state: old command cannot release stage1 +- PASS 14_emergency_enters_latched_state: first emergency latches state +- PASS 15_normal_command_does_not_unlatch: ordinary command cannot unlatch emergency +- PASS 16_ack_not_required_for_braking: braking starts before any ACK +- PASS 17_lost_ack_continues_repetition: controlled first ACK loss deterministically causes exactly one later copy +- PASS 18_received_ack_stops_future_copies: received ACK stops future copies +- PASS 19_stage2_threshold_never_missed: second threshold always enters braking +- PASS 20_fixed_seed_reproducibility: identical seed gives identical intervals +- PASS 21_fresh_command_wins_first_threshold_tie: fresh command at stage1 time is received before the threshold +- PASS 22_fresh_command_wins_second_threshold_tie: fresh command at stage2 time is received before mandatory braking + +Созданные файлы +- protocol/two_stage_failsafe.py +- tests/lab039_two_stage_braking.py +- data/processed/lab039/lab039_summary.csv +- data/processed/lab039/lab039_watchdog_metrics.csv +- data/processed/lab039/lab039_distance_metrics.csv +- data/processed/lab039/lab039_emergency_stop_metrics.csv +- data/processed/lab039/lab039_analytic_checks.csv +- data/processed/lab039/lab039_report.txt +- data/processed/lab039/lab039_path_by_speed.png +- data/processed/lab039/lab039_policy_comparison.png +- data/processed/lab039/lab039_deceleration_profiles.png +- data/processed/lab039/lab039_reaction_rates.png +- data/processed/lab039/lab039_safety_state_time.png +- data/processed/lab039/lab039_emergency_path.png +- data/processed/lab039/lab039_analytic_vs_model.png +- data/processed/lab039/lab039_tradeoff.png + +Состояние результатов +- Lab039 оставлена вне индекса Git и не закоммичена. +- Lab028–Lab038 не изменялись. +- Сохранены только компактные агрегированные CSV, TXT и PNG; запрещённые артефакты не создавались. diff --git a/data/processed/lab039/lab039_safety_state_time.png b/data/processed/lab039/lab039_safety_state_time.png new file mode 100644 index 0000000000000000000000000000000000000000..f3c9d474acf3e4fe68c567d8c2db9dee09db4c8e GIT binary patch literal 50486 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 literal 0 HcmV?d00001 diff --git a/data/processed/lab039/lab039_summary.csv b/data/processed/lab039/lab039_summary.csv new file mode 100644 index 0000000..11a7259 --- /dev/null +++ b/data/processed/lab039/lab039_summary.csv @@ -0,0 +1,181 @@ +channel_condition,policy,initial_speed_kmh,deceleration_profile,repetitions,preliminary_reactions_per_minute,mandatory_brakings_per_minute,full_stops_per_minute,mean_total_stop_path_m,p95_total_stop_path_m,max_total_stop_path_m,max_command_gap_ms,stage1_time_fraction,stage2_time_fraction,zero_speed_fraction,negative_speed_cases,target_speed_exceeded_cases,missed_stage2_cases,stale_command_release_cases,ordinary_command_emergency_release_cases +no_loss,single_250,5.0,soft,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,single_250,5.0,nominal,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,single_250,5.0,intensive,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,single_250,15.0,soft,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,single_250,15.0,nominal,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,single_250,15.0,intensive,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,single_250,25.0,soft,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,single_250,25.0,nominal,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,single_250,25.0,intensive,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_100_200,5.0,soft,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_100_200,5.0,nominal,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_100_200,5.0,intensive,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_100_200,15.0,soft,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_100_200,15.0,nominal,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_100_200,15.0,intensive,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_100_200,25.0,soft,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_100_200,25.0,nominal,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_100_200,25.0,intensive,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_150_250,5.0,soft,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_150_250,5.0,nominal,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_150_250,5.0,intensive,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_150_250,15.0,soft,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_150_250,15.0,nominal,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_150_250,15.0,intensive,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_150_250,25.0,soft,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_150_250,25.0,nominal,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_150_250,25.0,intensive,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_200_300,5.0,soft,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_200_300,5.0,nominal,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_200_300,5.0,intensive,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_200_300,15.0,soft,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_200_300,15.0,nominal,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_200_300,15.0,intensive,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_200_300,25.0,soft,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_200_300,25.0,nominal,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +no_loss,two_200_300,25.0,intensive,1,0.0,0.0,0.0,0.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0,0,0,0,0 +300_50,single_250,5.0,soft,100,0.0,0.565,0.0,0.0,0.0,0.0,597.5733333333295,0.0,0.0004549733611111169,0.0,0,0,0,0,0 +300_50,single_250,5.0,nominal,100,0.0,0.565,0.0,0.0,0.0,0.0,597.5733333333295,0.0,0.0004549733611111169,0.0,0,0,0,0,0 +300_50,single_250,5.0,intensive,100,0.0,0.565,0.005,0.5883487654320945,0.5883487654320945,0.5883487654320945,597.5733333333295,0.0,0.0004549733611111169,5.471509259258702e-06,0,0,0,0,0 +300_50,single_250,15.0,soft,100,0.0,0.565,0.0,0.0,0.0,0.0,597.5733333333295,0.0,0.0004549733611111169,0.0,0,0,0,0,0 +300_50,single_250,15.0,nominal,100,0.0,0.565,0.0,0.0,0.0,0.0,597.5733333333295,0.0,0.0004549733611111169,0.0,0,0,0,0,0 +300_50,single_250,15.0,intensive,100,0.0,0.565,0.0,0.0,0.0,0.0,597.5733333333295,0.0,0.0004549733611111169,0.0,0,0,0,0,0 +300_50,single_250,25.0,soft,100,0.0,0.565,0.0,0.0,0.0,0.0,597.5733333333295,0.0,0.0004549733611111169,0.0,0,0,0,0,0 +300_50,single_250,25.0,nominal,100,0.0,0.565,0.0,0.0,0.0,0.0,597.5733333333295,0.0,0.0004549733611111169,0.0,0,0,0,0,0 +300_50,single_250,25.0,intensive,100,0.0,0.565,0.0,0.0,0.0,0.0,597.5733333333295,0.0,0.0004549733611111169,0.0,0,0,0,0,0 +300_50,two_100_200,5.0,soft,100,11.385,1.47,0.0,0.0,0.0,0.0,597.5733333333295,0.0072607061111124895,0.0011692007499999651,0.0,0,0,0,0,0 +300_50,two_100_200,5.0,nominal,100,11.385,1.47,0.0,0.0,0.0,0.0,597.5733333333295,0.0072607061111124895,0.0011692007499999651,0.0,0,0,0,0,0 +300_50,two_100_200,5.0,intensive,100,11.385,1.47,0.005,0.46213348765432727,0.46213348765432727,0.46213348765432727,597.5733333333295,0.0072607061111124895,0.0011692007499999651,1.2763175925925178e-05,0,0,0,0,0 +300_50,two_100_200,15.0,soft,100,11.385,1.47,0.0,0.0,0.0,0.0,597.5733333333295,0.0072607061111124895,0.0011692007499999651,0.0,0,0,0,0,0 +300_50,two_100_200,15.0,nominal,100,11.385,1.47,0.0,0.0,0.0,0.0,597.5733333333295,0.0072607061111124895,0.0011692007499999651,0.0,0,0,0,0,0 +300_50,two_100_200,15.0,intensive,100,11.385,1.47,0.0,0.0,0.0,0.0,597.5733333333295,0.0072607061111124895,0.0011692007499999651,0.0,0,0,0,0,0 +300_50,two_100_200,25.0,soft,100,11.385,1.47,0.0,0.0,0.0,0.0,597.5733333333295,0.0072607061111124895,0.0011692007499999651,0.0,0,0,0,0,0 +300_50,two_100_200,25.0,nominal,100,11.385,1.47,0.0,0.0,0.0,0.0,597.5733333333295,0.0072607061111124895,0.0011692007499999651,0.0,0,0,0,0,0 +300_50,two_100_200,25.0,intensive,100,11.385,1.47,0.0,0.0,0.0,0.0,597.5733333333295,0.0072607061111124895,0.0011692007499999651,0.0,0,0,0,0,0 +300_50,two_150_250,5.0,soft,100,4.21,0.565,0.0,0.0,0.0,0.0,597.5733333333295,0.0026701592222223226,0.0004549733611111169,0.0,0,0,0,0,0 +300_50,two_150_250,5.0,nominal,100,4.21,0.565,0.0,0.0,0.0,0.0,597.5733333333295,0.0026701592222223226,0.0004549733611111169,0.0,0,0,0,0,0 +300_50,two_150_250,5.0,intensive,100,4.21,0.565,0.005,0.531577932098763,0.531577932098763,0.531577932098763,597.5733333333295,0.0026701592222223226,0.0004549733611111169,8.596509259258746e-06,0,0,0,0,0 +300_50,two_150_250,15.0,soft,100,4.21,0.565,0.0,0.0,0.0,0.0,597.5733333333295,0.0026701592222223226,0.0004549733611111169,0.0,0,0,0,0,0 +300_50,two_150_250,15.0,nominal,100,4.21,0.565,0.0,0.0,0.0,0.0,597.5733333333295,0.0026701592222223226,0.0004549733611111169,0.0,0,0,0,0,0 +300_50,two_150_250,15.0,intensive,100,4.21,0.565,0.0,0.0,0.0,0.0,597.5733333333295,0.0026701592222223226,0.0004549733611111169,0.0,0,0,0,0,0 +300_50,two_150_250,25.0,soft,100,4.21,0.565,0.0,0.0,0.0,0.0,597.5733333333295,0.0026701592222223226,0.0004549733611111169,0.0,0,0,0,0,0 +300_50,two_150_250,25.0,nominal,100,4.21,0.565,0.0,0.0,0.0,0.0,597.5733333333295,0.0026701592222223226,0.0004549733611111169,0.0,0,0,0,0,0 +300_50,two_150_250,25.0,intensive,100,4.21,0.565,0.0,0.0,0.0,0.0,597.5733333333295,0.0026701592222223226,0.0004549733611111169,0.0,0,0,0,0,0 +300_50,two_200_300,5.0,soft,100,1.47,0.205,0.0,0.0,0.0,0.0,597.5733333333295,0.0009794275277777414,0.00018977322222222385,0.0,0,0,0,0,0 +300_50,two_200_300,5.0,nominal,100,1.47,0.205,0.0,0.0,0.0,0.0,597.5733333333295,0.0009794275277777414,0.00018977322222222385,0.0,0,0,0,0,0 +300_50,two_200_300,5.0,intensive,100,1.47,0.205,0.0,0.0,0.0,0.0,597.5733333333295,0.0009794275277777414,0.00018977322222222385,0.0,0,0,0,0,0 +300_50,two_200_300,15.0,soft,100,1.47,0.205,0.0,0.0,0.0,0.0,597.5733333333295,0.0009794275277777414,0.00018977322222222385,0.0,0,0,0,0,0 +300_50,two_200_300,15.0,nominal,100,1.47,0.205,0.0,0.0,0.0,0.0,597.5733333333295,0.0009794275277777414,0.00018977322222222385,0.0,0,0,0,0,0 +300_50,two_200_300,15.0,intensive,100,1.47,0.205,0.0,0.0,0.0,0.0,597.5733333333295,0.0009794275277777414,0.00018977322222222385,0.0,0,0,0,0,0 +300_50,two_200_300,25.0,soft,100,1.47,0.205,0.0,0.0,0.0,0.0,597.5733333333295,0.0009794275277777414,0.00018977322222222385,0.0,0,0,0,0,0 +300_50,two_200_300,25.0,nominal,100,1.47,0.205,0.0,0.0,0.0,0.0,597.5733333333295,0.0009794275277777414,0.00018977322222222385,0.0,0,0,0,0,0 +300_50,two_200_300,25.0,intensive,100,1.47,0.205,0.0,0.0,0.0,0.0,597.5733333333295,0.0009794275277777414,0.00018977322222222385,0.0,0,0,0,0,0 +260_200,single_250,5.0,soft,100,0.0,2.34,0.11,0.7988287491582475,0.8294753086419746,0.8294753086419888,1553.3846153846298,0.0,0.008047035814101813,0.00045221060042689417,0,0,0,0,0 +260_200,single_250,5.0,nominal,100,0.0,2.34,0.26,0.6482391519060329,0.6687242798354021,0.6687242798354021,1553.3846153846298,0.0,0.008047035814101813,0.0012010270933040664,0,0,0,0,0 +260_200,single_250,5.0,intensive,100,0.0,2.34,0.45,0.5759331801903396,0.5883487654321016,0.5883487654321016,1553.3846153846298,0.0,0.008047035814101813,0.0020279770498569305,0,0,0,0,0 +260_200,single_250,15.0,soft,100,0.0,2.34,0.0,0.0,0.0,0.0,1553.3846153846298,0.0,0.008047035814101813,0.0,0,0,0,0,0 +260_200,single_250,15.0,nominal,100,0.0,2.34,0.0,0.0,0.0,0.0,1553.3846153846298,0.0,0.008047035814101813,0.0,0,0,0,0,0 +260_200,single_250,15.0,intensive,100,0.0,2.34,0.015,2.4355011185144235,3.211805555555594,3.2118055555555998,1553.3846153846298,0.0,0.008047035814101813,5.860833333324765e-05,0,0,0,0,0 +260_200,single_250,25.0,soft,100,0.0,2.34,0.0,0.0,0.0,0.0,1553.3846153846298,0.0,0.008047035814101813,0.0,0,0,0,0,0 +260_200,single_250,25.0,nominal,100,0.0,2.34,0.0,0.0,0.0,0.0,1553.3846153846298,0.0,0.008047035814101813,0.0,0,0,0,0,0 +260_200,single_250,25.0,intensive,100,0.0,2.34,0.0,0.0,0.0,0.0,1553.3846153846298,0.0,0.008047035814101813,0.0,0,0,0,0,0 +260_200,two_100_200,5.0,soft,100,4.465,2.93,0.125,0.6776667572835481,0.7234336419753191,0.7234336419753191,1553.3846153846298,0.0061662966923077675,0.010199767410255816,0.0006257084636746991,0,0,0,0,0 +260_200,two_100_200,5.0,nominal,100,4.465,2.93,0.4,0.5349063198533109,0.5496502057613242,0.5496502057613384,1553.3846153846298,0.0061662966923077675,0.010199767410255816,0.0017914852129624007,0,0,0,0,0 +260_200,two_100_200,5.0,intensive,100,4.465,2.93,0.66,0.4534105756717147,0.46213348765432727,0.46213348765432727,1553.3846153846298,0.0061662966923077675,0.010199767410255816,0.0029912988725062117,0,0,0,0,0 +260_200,two_100_200,15.0,soft,100,4.465,2.93,0.0,0.0,0.0,0.0,1553.3846153846298,0.0061662966923077675,0.010199767410255816,0.0,0,0,0,0,0 +260_200,two_100_200,15.0,nominal,100,4.465,2.93,0.0,0.0,0.0,0.0,1553.3846153846298,0.0061662966923077675,0.010199767410255816,0.0,0,0,0,0,0 +260_200,two_100_200,15.0,intensive,100,4.465,2.93,0.03,2.4444895763511703,2.84253472222224,2.84253472222224,1553.3846153846298,0.0061662966923077675,0.010199767410255816,0.00011300018589728251,0,0,0,0,0 +260_200,two_100_200,25.0,soft,100,4.465,2.93,0.0,0.0,0.0,0.0,1553.3846153846298,0.0061662966923077675,0.010199767410255816,0.0,0,0,0,0,0 +260_200,two_100_200,25.0,nominal,100,4.465,2.93,0.0,0.0,0.0,0.0,1553.3846153846298,0.0061662966923077675,0.010199767410255816,0.0,0,0,0,0,0 +260_200,two_100_200,25.0,intensive,100,4.465,2.93,0.0,0.0,0.0,0.0,1553.3846153846298,0.0061662966923077675,0.010199767410255816,0.0,0,0,0,0,0 +260_200,two_150_250,5.0,soft,100,3.77,2.34,0.12,0.7646759161522665,0.792878086419762,0.792878086419762,1553.3846153846298,0.004874652275641122,0.008047035814101813,0.0005152519109681763,0,0,0,0,0 +260_200,two_150_250,5.0,nominal,100,3.77,2.34,0.325,0.6029963747286375,0.619094650205767,0.619094650205767,1553.3846153846298,0.004874652275641122,0.008047035814101813,0.0014273649850418452,0,0,0,0,0 +260_200,two_150_250,5.0,intensive,100,3.77,2.34,0.495,0.5198646663125392,0.5315779320987701,0.5315779320987701,1553.3846153846298,0.004874652275641122,0.008047035814101813,0.0023632394985747623,0,0,0,0,0 +260_200,two_150_250,15.0,soft,100,3.77,2.34,0.0,0.0,0.0,0.0,1553.3846153846298,0.004874652275641122,0.008047035814101813,0.0,0,0,0,0,0 +260_200,two_150_250,15.0,nominal,100,3.77,2.34,0.0,0.0,0.0,0.0,1553.3846153846298,0.004874652275641122,0.008047035814101813,0.0,0,0,0,0,0 +260_200,two_150_250,15.0,intensive,100,3.77,2.34,0.02,2.4542928207233814,3.0508680555555543,3.0508680555555543,1553.3846153846298,0.004874652275641122,0.008047035814101813,7.686239316227155e-05,0,0,0,0,0 +260_200,two_150_250,25.0,soft,100,3.77,2.34,0.0,0.0,0.0,0.0,1553.3846153846298,0.004874652275641122,0.008047035814101813,0.0,0,0,0,0,0 +260_200,two_150_250,25.0,nominal,100,3.77,2.34,0.0,0.0,0.0,0.0,1553.3846153846298,0.004874652275641122,0.008047035814101813,0.0,0,0,0,0,0 +260_200,two_150_250,25.0,intensive,100,3.77,2.34,0.0,0.0,0.0,0.0,1553.3846153846298,0.004874652275641122,0.008047035814101813,0.0,0,0,0,0,0 +260_200,two_200_300,5.0,soft,100,2.93,1.825,0.095,0.8262068068197808,0.8623225308642049,0.8623225308642049,1553.3846153846298,0.003856901653846757,0.006342865756409058,0.00039858852065484315,0,0,0,0,0 +260_200,two_200_300,5.0,nominal,100,2.93,1.825,0.26,0.6675099096312059,0.6885390946502099,0.6885390946502099,1553.3846153846298,0.003856901653846757,0.006342865756409058,0.0011301937599707363,0,0,0,0,0 +260_200,two_200_300,5.0,intensive,100,2.93,1.825,0.4,0.5866798345992185,0.601022376543213,0.601022376543213,1553.3846153846298,0.003856901653846757,0.006342865756409058,0.0019008925491447405,0,0,0,0,0 +260_200,two_200_300,15.0,soft,100,2.93,1.825,0.0,0.0,0.0,0.0,1553.3846153846298,0.003856901653846757,0.006342865756409058,0.0,0,0,0,0,0 +260_200,two_200_300,15.0,nominal,100,2.93,1.825,0.0,0.0,0.0,0.0,1553.3846153846298,0.003856901653846757,0.006342865756409058,0.0,0,0,0,0,0 +260_200,two_200_300,15.0,intensive,100,2.93,1.825,0.015,2.477132721078533,3.2592013888889197,3.2592013888889255,1553.3846153846298,0.003856901653846757,0.006342865756409058,5.548333333324783e-05,0,0,0,0,0 +260_200,two_200_300,25.0,soft,100,2.93,1.825,0.0,0.0,0.0,0.0,1553.3846153846298,0.003856901653846757,0.006342865756409058,0.0,0,0,0,0,0 +260_200,two_200_300,25.0,nominal,100,2.93,1.825,0.0,0.0,0.0,0.0,1553.3846153846298,0.003856901653846757,0.006342865756409058,0.0,0,0,0,0,0 +260_200,two_200_300,25.0,intensive,100,2.93,1.825,0.0,0.0,0.0,0.0,1553.3846153846298,0.003856901653846757,0.006342865756409058,0.0,0,0,0,0,0 +230_200,single_250,5.0,soft,100,0.0,2.315,0.1,0.8103861158165095,0.8294753086419746,0.8294753086419746,1938.2260869568952,0.0,0.008226305797102696,0.000514733896940646,0,0,0,0,0 +230_200,single_250,5.0,nominal,100,0.0,2.315,0.26,0.6513190118442785,0.6687242798354021,0.6687242798354021,1938.2260869568952,0.0,0.008226305797102696,0.0012808948470213028,0,0,0,0,0 +230_200,single_250,5.0,intensive,100,0.0,2.315,0.46,0.575181146443294,0.5883487654321016,0.5883487654321016,1938.2260869568952,0.0,0.008226305797102696,0.002076788405797635,0,0,0,0,0 +230_200,single_250,15.0,soft,100,0.0,2.315,0.0,0.0,0.0,0.0,1938.2260869568952,0.0,0.008226305797102696,0.0,0,0,0,0,0 +230_200,single_250,15.0,nominal,100,0.0,2.315,0.01,3.9351851851851762,3.935185185185189,3.9351851851851904,1938.2260869568952,0.0,0.008226305797102696,5.119388083742042e-05,0,0,0,0,0 +230_200,single_250,15.0,intensive,100,0.0,2.315,0.02,3.211805555555559,3.211805555555592,3.2118055555555998,1938.2260869568952,0.0,0.008226305797102696,0.0001472850241546552,0,0,0,0,0 +230_200,single_250,25.0,soft,100,0.0,2.315,0.0,0.0,0.0,0.0,1938.2260869568952,0.0,0.008226305797102696,0.0,0,0,0,0,0 +230_200,single_250,25.0,nominal,100,0.0,2.315,0.0,0.0,0.0,0.0,1938.2260869568952,0.0,0.008226305797102696,0.0,0,0,0,0,0 +230_200,single_250,25.0,intensive,100,0.0,2.315,0.0,0.0,0.0,0.0,1938.2260869568952,0.0,0.008226305797102696,0.0,0,0,0,0,0 +230_200,two_100_200,5.0,soft,100,4.81,2.995,0.115,0.7016949739859344,0.7234336419753191,0.7234336419753191,1938.2260869568952,0.006404715942029555,0.010383782608696294,0.0006719713365541712,0,0,0,0,0 +230_200,two_100_200,5.0,nominal,100,4.81,2.995,0.365,0.5303238165666804,0.5496502057613242,0.5496502057613384,1938.2260869568952,0.006404715942029555,0.010383782608696294,0.0018144038647347485,0,0,0,0,0 +230_200,two_100_200,5.0,intensive,100,4.81,2.995,0.655,0.440287161468805,0.46213348765432727,0.46213348765432727,1938.2260869568952,0.006404715942029555,0.010383782608696294,0.0030680473027381683,0,0,0,0,0 +230_200,two_100_200,15.0,soft,100,4.81,2.995,0.0,0.0,0.0,0.0,1938.2260869568952,0.006404715942029555,0.010383782608696294,0.0,0,0,0,0,0 +230_200,two_100_200,15.0,nominal,100,4.81,2.995,0.015,3.5846296296296294,3.5846296296296316,3.5846296296296316,1938.2260869568952,0.006404715942029555,0.010383782608696294,7.693719806769252e-05,0,0,0,0,0 +230_200,two_100_200,15.0,intensive,100,4.81,2.995,0.035,2.8420072908206566,2.84253472222224,2.84253472222224,1938.2260869568952,0.006404715942029555,0.010383782608696294,0.00019270567632860566,0,0,0,0,0 +230_200,two_100_200,25.0,soft,100,4.81,2.995,0.0,0.0,0.0,0.0,1938.2260869568952,0.006404715942029555,0.010383782608696294,0.0,0,0,0,0,0 +230_200,two_100_200,25.0,nominal,100,4.81,2.995,0.0,0.0,0.0,0.0,1938.2260869568952,0.006404715942029555,0.010383782608696294,0.0,0,0,0,0,0 +230_200,two_100_200,25.0,intensive,100,4.81,2.995,0.005,7.1519483024691795,7.1519483024691795,7.1519483024691795,1938.2260869568952,0.006404715942029555,0.010383782608696294,7.23747987120719e-06,0,0,0,0,0 +230_200,two_150_250,5.0,soft,100,3.855,2.315,0.1,0.7702604841740005,0.792878086419762,0.792878086419762,1938.2260869568952,0.005001884057970516,0.008226305797102696,0.0005626505636073119,0,0,0,0,0 +230_200,two_150_250,5.0,nominal,100,3.855,2.315,0.29,0.6028842589022702,0.619094650205767,0.619094650205767,1938.2260869568952,0.005001884057970516,0.008226305797102696,0.001466152012882828,0,0,0,0,0 +230_200,two_150_250,5.0,intensive,100,3.855,2.315,0.505,0.5172203308829381,0.5315779320987701,0.5315779320987701,1938.2260869568952,0.005001884057970516,0.008226305797102696,0.0024288750000005677,0,0,0,0,0 +230_200,two_150_250,15.0,soft,100,3.855,2.315,0.0,0.0,0.0,0.0,1938.2260869568952,0.005001884057970516,0.008226305797102696,0.0,0,0,0,0,0 +230_200,two_150_250,15.0,nominal,100,3.855,2.315,0.015,3.792962962962953,3.792962962962965,3.7929629629629673,1938.2260869568952,0.005001884057970516,0.008226305797102696,6.443719806769294e-05,0,0,0,0,0 +230_200,two_150_250,15.0,intensive,100,3.855,2.315,0.025,3.0508680555555543,3.0508680555555543,3.0508680555555543,1938.2260869568952,0.005001884057970516,0.008226305797102696,0.0001631696859904028,0,0,0,0,0 +230_200,two_150_250,25.0,soft,100,3.855,2.315,0.0,0.0,0.0,0.0,1938.2260869568952,0.005001884057970516,0.008226305797102696,0.0,0,0,0,0,0 +230_200,two_150_250,25.0,nominal,100,3.855,2.315,0.0,0.0,0.0,0.0,1938.2260869568952,0.005001884057970516,0.008226305797102696,0.0,0,0,0,0,0 +230_200,two_150_250,25.0,intensive,100,3.855,2.315,0.0,0.0,0.0,0.0,1938.2260869568952,0.005001884057970516,0.008226305797102696,0.0,0,0,0,0,0 +230_200,two_200_300,5.0,soft,100,2.995,1.865,0.085,0.8623225308641987,0.8623225308642049,0.8623225308642049,1938.2260869568952,0.0038694840579704625,0.0065142985507258356,0.0004640957326893967,0,0,0,0,0 +230_200,two_200_300,5.0,nominal,100,2.995,1.865,0.255,0.6702734755043244,0.6885390946502099,0.6885390946502099,1938.2260869568952,0.0038694840579704625,0.0065142985507258356,0.0012076871712295588,0,0,0,0,0 +230_200,two_200_300,5.0,intensive,100,2.995,1.865,0.395,0.5855586647391154,0.601022376543213,0.601022376543213,1938.2260869568952,0.0038694840579704625,0.0065142985507258356,0.0019341896135270343,0,0,0,0,0 +230_200,two_200_300,15.0,soft,100,2.995,1.865,0.0,0.0,0.0,0.0,1938.2260869568952,0.0038694840579704625,0.0065142985507258356,0.0,0,0,0,0,0 +230_200,two_200_300,15.0,nominal,100,2.995,1.865,0.01,4.001296296296289,4.001296296296289,4.001296296296289,1938.2260869568952,0.0038694840579704625,0.0065142985507258356,4.8416103059642795e-05,0,0,0,0,0 +230_200,two_200_300,15.0,intensive,100,2.995,1.865,0.015,3.259201388888876,3.2592013888888878,3.25920138888889,1938.2260869568952,0.0038694840579704625,0.0065142985507258356,0.0001397844202899152,0,0,0,0,0 +230_200,two_200_300,25.0,soft,100,2.995,1.865,0.0,0.0,0.0,0.0,1938.2260869568952,0.0038694840579704625,0.0065142985507258356,0.0,0,0,0,0,0 +230_200,two_200_300,25.0,nominal,100,2.995,1.865,0.0,0.0,0.0,0.0,1938.2260869568952,0.0038694840579704625,0.0065142985507258356,0.0,0,0,0,0,0 +230_200,two_200_300,25.0,intensive,100,2.995,1.865,0.0,0.0,0.0,0.0,1938.2260869568952,0.0038694840579704625,0.0065142985507258356,0.0,0,0,0,0,0 +230_1000,single_250,5.0,soft,100,0.0,1.035,0.51,0.8223001645049943,0.8294753086419746,0.8294753086419888,6546.921739131583,0.0,0.018404613043477867,0.010031135426731688,0,0,0,0,0 +230_1000,single_250,5.0,nominal,100,0.0,1.035,0.655,0.6623059998776091,0.6687242798354021,0.6687242798354021,6546.921739131583,0.0,0.018404613043477867,0.012342763123993643,0,0,0,0,0 +230_1000,single_250,5.0,intensive,100,0.0,1.035,0.76,0.5826735237163153,0.5883487654321016,0.5883487654321016,6546.921739131583,0.0,0.018404613043477867,0.013786482729468781,0,0,0,0,0 +230_1000,single_250,15.0,soft,100,0.0,1.035,0.155,5.046971004055289,5.381944444444457,5.381944444444457,6546.921739131583,0.0,0.018404613043477867,0.0029537632850248157,0,0,0,0,0 +230_1000,single_250,15.0,nominal,100,0.0,1.035,0.28,3.7761954423601787,3.935185185185219,3.935185185185219,6546.921739131583,0.0,0.018404613043477867,0.005433619484703018,0,0,0,0,0 +230_1000,single_250,15.0,intensive,100,0.0,1.035,0.405,3.0719853935142036,3.2118055555555998,3.2118055555555998,6546.921739131583,0.0,0.018404613043477867,0.007416253864735419,0,0,0,0,0 +230_1000,single_250,25.0,soft,100,0.0,1.035,0.04,12.206108524515997,13.792438271604954,13.792438271604965,6546.921739131583,0.0,0.018404613043477867,0.0008522938808378088,0,0,0,0,0 +230_1000,single_250,25.0,nominal,100,0.0,1.035,0.14,8.833932616374762,9.773662551440339,9.773662551440339,6546.921739131583,0.0,0.018404613043477867,0.0025385002683849934,0,0,0,0,0 +230_1000,single_250,25.0,intensive,100,0.0,1.035,0.215,7.0867966282555725,7.764274691358025,7.764274691358025,6546.921739131583,0.0,0.018404613043477867,0.0041265349033824525,0,0,0,0,0 +230_1000,two_100_200,5.0,soft,100,1.18,1.055,0.55,0.7132345191903162,0.7234336419753191,0.7234336419753191,6546.921739131583,0.0018668463768103565,0.01927247826086914,0.010741405072464415,0,0,0,0,0 +230_1000,two_100_200,5.0,nominal,100,1.18,1.055,0.725,0.5423399629289455,0.5496502057613242,0.5496502057613242,6546.921739131583,0.0018668463768103565,0.01927247826086914,0.013386441116478949,0,0,0,0,0 +230_1000,two_100_200,5.0,intensive,100,1.18,1.055,0.84,0.4518130433065305,0.46213348765432727,0.46213348765432727,6546.921739131583,0.0018668463768103565,0.01927247826086914,0.015036095571658826,0,0,0,0,0 +230_1000,two_100_200,15.0,soft,100,1.18,1.055,0.155,4.705471053143637,5.067569444444445,5.067569444444448,6546.921739131583,0.0018668463768103565,0.01927247826086914,0.0031850132850248136,0,0,0,0,0 +230_1000,two_100_200,15.0,nominal,100,1.18,1.055,0.305,3.436310577691097,3.5846296296296316,3.5846296296296316,6546.921739131583,0.0018668463768103565,0.01927247826086914,0.0058862206119172766,0,0,0,0,0 +230_1000,two_100_200,15.0,intensive,100,1.18,1.055,0.465,2.6603070995710585,2.84253472222224,2.84253472222224,6546.921739131583,0.0018668463768103565,0.01927247826086914,0.008118542874397353,0,0,0,0,0 +230_1000,two_100_200,25.0,soft,100,1.18,1.055,0.04,11.541212872342115,13.269729938271656,13.269729938271666,6546.921739131583,0.0018668463768103565,0.01927247826086914,0.000927293880837808,0,0,0,0,0 +230_1000,two_100_200,25.0,nominal,100,1.18,1.055,0.14,8.241037853319801,9.191625514403313,9.191625514403313,6546.921739131583,0.0018668463768103565,0.01927247826086914,0.0027635002683849916,0,0,0,0,0 +230_1000,two_100_200,25.0,intensive,100,1.18,1.055,0.235,6.3993184974972435,7.151948302469236,7.151948302469236,6546.921739131583,0.0018668463768103565,0.01927247826086914,0.004481657487923549,0,0,0,0,0 +230_1000,two_150_250,5.0,soft,100,1.11,1.035,0.515,0.7850142426362475,0.792878086419762,0.7928780864197762,6546.921739131583,0.0017734275362311883,0.018404613043477867,0.010257971578100444,0,0,0,0,0 +230_1000,two_150_250,5.0,nominal,100,1.11,1.035,0.695,0.6122226231449572,0.619094650205767,0.619094650205767,6546.921739131583,0.0017734275362311883,0.018404613043477867,0.012759076704240575,0,0,0,0,0 +230_1000,two_150_250,5.0,intensive,100,1.11,1.035,0.785,0.5250754956210629,0.5315779320987701,0.5315779320987701,6546.921739131583,0.0017734275362311883,0.018404613043477867,0.014309006803542855,0,0,0,0,0 +230_1000,two_150_250,15.0,soft,100,1.11,1.035,0.155,4.922163862867796,5.275902777777787,5.275902777777787,6546.921739131583,0.0017734275362311883,0.018404613043477867,0.00303917995169148,0,0,0,0,0 +230_1000,two_150_250,15.0,nominal,100,1.11,1.035,0.285,3.6331379355175906,3.7929629629629744,3.7929629629629744,6546.921739131583,0.0017734275362311883,0.018404613043477867,0.005610308212561334,0,0,0,0,0 +230_1000,two_150_250,15.0,intensive,100,1.11,1.035,0.425,2.917129852120053,3.0508680555555685,3.0508680555555685,6546.921739131583,0.0017734275362311883,0.018404613043477867,0.007706249758455248,0,0,0,0,0 +230_1000,two_150_250,25.0,soft,100,1.11,1.035,0.04,11.95134587354983,13.616952160493838,13.616952160493838,6546.921739131583,0.0017734275362311883,0.018404613043477867,0.0008814605475044744,0,0,0,0,0 +230_1000,two_150_250,25.0,nominal,100,1.11,1.035,0.14,8.586991691599083,9.538847736625598,9.538847736625598,6546.921739131583,0.0017734275362311883,0.018404613043477867,0.0026329447128294347,0,0,0,0,0 +230_1000,two_150_250,25.0,intensive,100,1.11,1.035,0.215,6.82599142715461,7.499170524691408,7.499170524691408,6546.921739131583,0.0017734275362311883,0.018404613043477867,0.004274451570049115,0,0,0,0,0 +230_1000,two_200_300,5.0,soft,100,1.055,1.005,0.505,0.854351648226411,0.8623225308642049,0.8623225308642049,6546.921739131583,0.0017156637681158893,0.017556814492753252,0.009819934057971614,0,0,0,0,0 +230_1000,two_200_300,5.0,nominal,100,1.055,1.005,0.645,0.6816776693066586,0.6885390946502099,0.6885390946502099,6546.921739131583,0.0017156637681158893,0.017556814492753252,0.01215700429414931,0,0,0,0,0 +230_1000,two_200_300,5.0,intensive,100,1.055,1.005,0.735,0.5949706237631145,0.601022376543213,0.601022376543213,6546.921739131583,0.0017156637681158893,0.017556814492753252,0.013612274959742517,0,0,0,0,0 +230_1000,two_200_300,15.0,soft,100,1.055,1.005,0.15,5.129177357974677,5.484236111111116,5.484236111111116,6546.921739131583,0.0017156637681158893,0.017556814492753252,0.002890074396135932,0,0,0,0,0 +230_1000,two_200_300,15.0,nominal,100,1.055,1.005,0.275,3.835264339438348,4.001296296296303,4.001296296296303,6546.921739131583,0.0017156637681158893,0.017556814492753252,0.005357093075685281,0,0,0,0,0 +230_1000,two_200_300,15.0,intensive,100,1.055,1.005,0.385,3.1083953483940356,3.2592013888889255,3.2592013888889255,6546.921739131583,0.0017156637681158893,0.017556814492753252,0.007321664492754724,0,0,0,0,0 +230_1000,two_200_300,25.0,soft,100,1.055,1.005,0.04,12.367416374757568,13.964174382716067,13.964174382716067,6546.921739131583,0.0017156637681158893,0.017556814492753252,0.000835627214171143,0,0,0,0,0 +230_1000,two_200_300,25.0,nominal,100,1.055,1.005,0.14,8.935386006068818,9.88606995884777,9.88606995884777,6546.921739131583,0.0017156637681158893,0.017556814492753252,0.002502389157273884,0,0,0,0,0 +230_1000,two_200_300,25.0,intensive,100,1.055,1.005,0.205,7.126910312191698,7.84639274691358,7.846392746913581,6546.921739131583,0.0017156637681158893,0.017556814492753252,0.004077339090177937,0,0,0,0,0 diff --git a/data/processed/lab039/lab039_tradeoff.png b/data/processed/lab039/lab039_tradeoff.png new file mode 100644 index 0000000000000000000000000000000000000000..3796ed660de22c4347e06686493c0a2fcd8d205b GIT binary patch literal 46301 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 literal 0 HcmV?d00001 diff --git a/data/processed/lab039/lab039_watchdog_metrics.csv b/data/processed/lab039/lab039_watchdog_metrics.csv new file mode 100644 index 0000000..0a8e233 --- /dev/null +++ b/data/processed/lab039/lab039_watchdog_metrics.csv @@ -0,0 +1,181 @@ +channel_condition,policy,initial_speed_kmh,deceleration_profile,repetitions,communication_gaps_mean,gaps_over_first_mean,gaps_over_second_mean,stage1_transitions_mean,stage2_transitions_mean,recovered_before_first_mean,recovered_between_thresholds_mean,recovered_after_second_mean,max_command_gap_ms,preliminary_reactions_per_minute,mandatory_brakings_per_minute,full_stops_per_minute,stage1_time_fraction,stage2_time_fraction,zero_speed_fraction,mean_short_speed_reduction_mps,mean_resume_time_seconds,short_outage_full_stops_mean +no_loss,single_250,5.0,soft,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,single_250,5.0,nominal,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,single_250,5.0,intensive,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,single_250,15.0,soft,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,single_250,15.0,nominal,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,single_250,15.0,intensive,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,single_250,25.0,soft,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,single_250,25.0,nominal,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,single_250,25.0,intensive,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_100_200,5.0,soft,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_100_200,5.0,nominal,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_100_200,5.0,intensive,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_100_200,15.0,soft,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_100_200,15.0,nominal,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_100_200,15.0,intensive,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_100_200,25.0,soft,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_100_200,25.0,nominal,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_100_200,25.0,intensive,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_150_250,5.0,soft,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_150_250,5.0,nominal,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_150_250,5.0,intensive,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_150_250,15.0,soft,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_150_250,15.0,nominal,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_150_250,15.0,intensive,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_150_250,25.0,soft,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_150_250,25.0,nominal,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_150_250,25.0,intensive,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_200_300,5.0,soft,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_200_300,5.0,nominal,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_200_300,5.0,intensive,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_200_300,15.0,soft,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_200_300,15.0,nominal,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_200_300,15.0,intensive,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_200_300,25.0,soft,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_200_300,25.0,nominal,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_loss,two_200_300,25.0,intensive,1,1031.0,0.0,0.0,0.0,0.0,1031.0,0.0,0.0,66.0800000000279,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +300_50,single_250,5.0,soft,100,1026.26,1.13,1.13,0.0,1.13,1025.11,0.0,1.13,597.5733333333295,0.0,0.565,0.0,0.0,0.0004549733611111169,0.0,0.0,0.06506555722222106,0.0 +300_50,single_250,5.0,nominal,100,1026.26,1.13,1.13,0.0,1.13,1025.11,0.0,1.13,597.5733333333295,0.0,0.565,0.0,0.0,0.0004549733611111169,0.0,0.0,0.09691380249999834,0.0 +300_50,single_250,5.0,intensive,100,1026.26,1.13,1.13,0.0,1.13,1025.11,0.0,1.13,597.5733333333295,0.0,0.565,0.005,0.0,0.0004549733611111169,5.471509259258702e-06,0.0,0.1301170699999978,0.0 +300_50,single_250,15.0,soft,100,1026.26,1.13,1.13,0.0,1.13,1025.11,0.0,1.13,597.5733333333295,0.0,0.565,0.0,0.0,0.0004549733611111169,0.0,0.0,0.06506555722222107,0.0 +300_50,single_250,15.0,nominal,100,1026.26,1.13,1.13,0.0,1.13,1025.11,0.0,1.13,597.5733333333295,0.0,0.565,0.0,0.0,0.0004549733611111169,0.0,0.0,0.09691380249999834,0.0 +300_50,single_250,15.0,intensive,100,1026.26,1.13,1.13,0.0,1.13,1025.11,0.0,1.13,597.5733333333295,0.0,0.565,0.0,0.0,0.0004549733611111169,0.0,0.0,0.13013111444444214,0.0 +300_50,single_250,25.0,soft,100,1026.26,1.13,1.13,0.0,1.13,1025.11,0.0,1.13,597.5733333333295,0.0,0.565,0.0,0.0,0.0004549733611111169,0.0,0.0,0.06506555722222107,0.0 +300_50,single_250,25.0,nominal,100,1026.26,1.13,1.13,0.0,1.13,1025.11,0.0,1.13,597.5733333333295,0.0,0.565,0.0,0.0,0.0004549733611111169,0.0,0.0,0.09691380249999834,0.0 +300_50,single_250,25.0,intensive,100,1026.26,1.13,1.13,0.0,1.13,1025.11,0.0,1.13,597.5733333333295,0.0,0.565,0.0,0.0,0.0004549733611111169,0.0,0.0,0.13013111444444214,0.0 +300_50,two_100_200,5.0,soft,100,1026.26,22.77,2.94,22.77,2.94,1003.47,19.83,2.94,597.5733333333295,11.385,1.47,0.0,0.0072607061111124895,0.0011692007499999651,0.0,0.014417271870243338,0.031096147997843583,0.0 +300_50,two_100_200,5.0,nominal,100,1026.26,22.77,2.94,22.77,2.94,1003.47,19.83,2.94,597.5733333333295,11.385,1.47,0.0,0.0072607061111124895,0.0011692007499999651,0.0,0.028652684193582724,0.05571917866378729,0.0 +300_50,two_100_200,5.0,intensive,100,1026.26,22.77,2.94,22.77,2.94,1003.47,19.83,2.94,597.5733333333295,11.385,1.47,0.005,0.0072607061111124895,0.0011692007499999651,1.2763175925925178e-05,0.04276099803769319,0.07963701855374762,0.0 +300_50,two_100_200,15.0,soft,100,1026.26,22.77,2.94,22.77,2.94,1003.47,19.83,2.94,597.5733333333295,11.385,1.47,0.0,0.0072607061111124895,0.0011692007499999651,0.0,0.014417271870243338,0.031096147997843594,0.0 +300_50,two_100_200,15.0,nominal,100,1026.26,22.77,2.94,22.77,2.94,1003.47,19.83,2.94,597.5733333333295,11.385,1.47,0.0,0.0072607061111124895,0.0011692007499999651,0.0,0.028652684193582724,0.05571917866378729,0.0 +300_50,two_100_200,15.0,intensive,100,1026.26,22.77,2.94,22.77,2.94,1003.47,19.83,2.94,597.5733333333295,11.385,1.47,0.0,0.0072607061111124895,0.0011692007499999651,0.0,0.04276099803769319,0.07978980309481042,0.0 +300_50,two_100_200,25.0,soft,100,1026.26,22.77,2.94,22.77,2.94,1003.47,19.83,2.94,597.5733333333295,11.385,1.47,0.0,0.0072607061111124895,0.0011692007499999651,0.0,0.014417271870243333,0.03109614799784359,0.0 +300_50,two_100_200,25.0,nominal,100,1026.26,22.77,2.94,22.77,2.94,1003.47,19.83,2.94,597.5733333333295,11.385,1.47,0.0,0.0072607061111124895,0.0011692007499999651,0.0,0.028652684193582724,0.05571917866378727,0.0 +300_50,two_100_200,25.0,intensive,100,1026.26,22.77,2.94,22.77,2.94,1003.47,19.83,2.94,597.5733333333295,11.385,1.47,0.0,0.0072607061111124895,0.0011692007499999651,0.0,0.04276099803769319,0.07978980309481042,0.0 +300_50,two_150_250,5.0,soft,100,1026.26,8.42,1.13,8.42,1.13,1017.82,7.29,1.13,597.5733333333295,4.21,0.565,0.0,0.0026701592222223226,0.0004549733611111169,0.0,0.014200534533562363,0.032104475073990765,0.0 +300_50,two_150_250,5.0,nominal,100,1026.26,8.42,1.13,8.42,1.13,1017.82,7.29,1.13,597.5733333333295,4.21,0.565,0.0,0.0026701592222223226,0.0004549733611111169,0.0,0.028363264195329852,0.05778611869118251,0.0 +300_50,two_150_250,5.0,intensive,100,1026.26,8.42,1.13,8.42,1.13,1017.82,7.29,1.13,597.5733333333295,4.21,0.565,0.005,0.0026701592222223226,0.0004549733611111169,8.596509259258746e-06,0.04233880094833935,0.0812690980872204,0.0 +300_50,two_150_250,15.0,soft,100,1026.26,8.42,1.13,8.42,1.13,1017.82,7.29,1.13,597.5733333333295,4.21,0.565,0.0,0.0026701592222223226,0.0004549733611111169,0.0,0.014200534533562369,0.032104475073990765,0.0 +300_50,two_150_250,15.0,nominal,100,1026.26,8.42,1.13,8.42,1.13,1017.82,7.29,1.13,597.5733333333295,4.21,0.565,0.0,0.0026701592222223226,0.0004549733611111169,0.0,0.02836326419532985,0.0577861186911825,0.0 +300_50,two_150_250,15.0,intensive,100,1026.26,8.42,1.13,8.42,1.13,1017.82,7.29,1.13,597.5733333333295,4.21,0.565,0.0,0.0026701592222223226,0.0004549733611111169,0.0,0.042338800948339333,0.08148539015071245,0.0 +300_50,two_150_250,25.0,soft,100,1026.26,8.42,1.13,8.42,1.13,1017.82,7.29,1.13,597.5733333333295,4.21,0.565,0.0,0.0026701592222223226,0.0004549733611111169,0.0,0.014200534533562363,0.03210447507399076,0.0 +300_50,two_150_250,25.0,nominal,100,1026.26,8.42,1.13,8.42,1.13,1017.82,7.29,1.13,597.5733333333295,4.21,0.565,0.0,0.0026701592222223226,0.0004549733611111169,0.0,0.02836326419532985,0.05778611869118252,0.0 +300_50,two_150_250,25.0,intensive,100,1026.26,8.42,1.13,8.42,1.13,1017.82,7.29,1.13,597.5733333333295,4.21,0.565,0.0,0.0026701592222223226,0.0004549733611111169,0.0,0.04233880094833935,0.08148539015071245,0.0 +300_50,two_200_300,5.0,soft,100,1026.26,2.94,0.41,2.94,0.41,1023.3,2.53,0.41,597.5733333333295,1.47,0.205,0.0,0.0009794275277777414,0.00018977322222222385,0.0,0.01440103622222236,0.03324268298412735,0.0 +300_50,two_200_300,5.0,nominal,100,1026.26,2.94,0.41,2.94,0.41,1023.3,2.53,0.41,597.5733333333295,1.47,0.205,0.0,0.0009794275277777414,0.00018977322222222385,0.0,0.028802072444444722,0.05966895562698424,0.0 +300_50,two_200_300,5.0,intensive,100,1026.26,2.94,0.41,2.94,0.41,1023.3,2.53,0.41,597.5733333333295,1.47,0.205,0.0,0.0009794275277777414,0.00018977322222222385,0.0,0.04318150666666711,0.08609522826984115,0.0 +300_50,two_200_300,15.0,soft,100,1026.26,2.94,0.41,2.94,0.41,1023.3,2.53,0.41,597.5733333333295,1.47,0.205,0.0,0.0009794275277777414,0.00018977322222222385,0.0,0.014401036222222368,0.03324268298412735,0.0 +300_50,two_200_300,15.0,nominal,100,1026.26,2.94,0.41,2.94,0.41,1023.3,2.53,0.41,597.5733333333295,1.47,0.205,0.0,0.0009794275277777414,0.00018977322222222385,0.0,0.02880207244444472,0.059668955626984245,0.0 +300_50,two_200_300,15.0,intensive,100,1026.26,2.94,0.41,2.94,0.41,1023.3,2.53,0.41,597.5733333333295,1.47,0.205,0.0,0.0009794275277777414,0.00018977322222222385,0.0,0.043181506666667105,0.08609522826984113,0.0 +300_50,two_200_300,25.0,soft,100,1026.26,2.94,0.41,2.94,0.41,1023.3,2.53,0.41,597.5733333333295,1.47,0.205,0.0,0.0009794275277777414,0.00018977322222222385,0.0,0.014401036222222354,0.03324268298412735,0.0 +300_50,two_200_300,25.0,nominal,100,1026.26,2.94,0.41,2.94,0.41,1023.3,2.53,0.41,597.5733333333295,1.47,0.205,0.0,0.0009794275277777414,0.00018977322222222385,0.0,0.02880207244444472,0.05966895562698423,0.0 +300_50,two_200_300,25.0,intensive,100,1026.26,2.94,0.41,2.94,0.41,1023.3,2.53,0.41,597.5733333333295,1.47,0.205,0.0,0.0009794275277777414,0.00018977322222222385,0.0,0.04318150666666712,0.08609522826984117,0.0 +260_200,single_250,5.0,soft,100,1192.61,4.68,4.68,0.0,4.68,1187.91,0.0,4.67,1553.3846153846298,0.0,2.34,0.11,0.0,0.008047035814101813,0.00045221060042689417,0.0,0.405186909137988,0.0 +260_200,single_250,5.0,nominal,100,1192.61,4.68,4.68,0.0,4.68,1187.91,0.0,4.67,1553.3846153846298,0.0,2.34,0.26,0.0,0.008047035814101813,0.0012010270933040664,0.0,0.5526797746222156,0.0 +260_200,single_250,5.0,intensive,100,1192.61,4.68,4.68,0.0,4.68,1187.91,0.0,4.67,1553.3846153846298,0.0,2.34,0.45,0.0,0.008047035814101813,0.0020279770498569305,0.0,0.6674171381769596,0.0 +260_200,single_250,15.0,soft,100,1192.61,4.68,4.68,0.0,4.68,1187.91,0.0,4.67,1553.3846153846298,0.0,2.34,0.0,0.0,0.008047035814101813,0.0,0.0,0.4282289967685457,0.0 +260_200,single_250,15.0,nominal,100,1192.61,4.68,4.68,0.0,4.68,1187.91,0.0,4.67,1553.3846153846298,0.0,2.34,0.0,0.0,0.008047035814101813,0.0,0.0,0.6429113600209527,0.0 +260_200,single_250,15.0,intensive,100,1192.61,4.68,4.68,0.0,4.68,1187.91,0.0,4.67,1553.3846153846298,0.0,2.34,0.015,0.0,0.008047035814101813,5.860833333324765e-05,0.0,0.8502538152839292,0.0 +260_200,single_250,25.0,soft,100,1192.61,4.68,4.68,0.0,4.68,1187.91,0.0,4.67,1553.3846153846298,0.0,2.34,0.0,0.0,0.008047035814101813,0.0,0.0,0.4282289967685457,0.0 +260_200,single_250,25.0,nominal,100,1192.61,4.68,4.68,0.0,4.68,1187.91,0.0,4.67,1553.3846153846298,0.0,2.34,0.0,0.0,0.008047035814101813,0.0,0.0,0.6429113600209527,0.0 +260_200,single_250,25.0,intensive,100,1192.61,4.68,4.68,0.0,4.68,1187.91,0.0,4.67,1553.3846153846298,0.0,2.34,0.0,0.0,0.008047035814101813,0.0,0.0,0.8552058010389076,0.0 +260_200,two_100_200,5.0,soft,100,1192.61,8.93,5.86,8.93,5.86,1183.68,3.06,5.84,1553.3846153846298,4.465,2.93,0.125,0.0061662966923077675,0.010199767410255816,0.0006257084636746991,0.024634807305857206,0.30130497486593477,0.0 +260_200,two_100_200,5.0,nominal,100,1192.61,8.93,5.86,8.93,5.86,1183.68,3.06,5.84,1553.3846153846298,4.465,2.93,0.4,0.0061662966923077675,0.010199767410255816,0.0017914852129624007,0.04926961461171441,0.43469018657387953,0.0 +260_200,two_100_200,5.0,intensive,100,1192.61,8.93,5.86,8.93,5.86,1183.68,3.06,5.84,1553.3846153846298,4.465,2.93,0.66,0.0061662966923077675,0.010199767410255816,0.0029912988725062117,0.07361396037911004,0.5402697089026393,0.0 +260_200,two_100_200,15.0,soft,100,1192.61,8.93,5.86,8.93,5.86,1183.68,3.06,5.84,1553.3846153846298,4.465,2.93,0.0,0.0061662966923077675,0.010199767410255816,0.0,0.0246348073058572,0.3123187025373716,0.0 +260_200,two_100_200,15.0,nominal,100,1192.61,8.93,5.86,8.93,5.86,1183.68,3.06,5.84,1553.3846153846298,4.465,2.93,0.0,0.0061662966923077675,0.010199767410255816,0.0,0.04886294794504953,0.49030457888916096,0.0 +260_200,two_100_200,15.0,intensive,100,1192.61,8.93,5.86,8.93,5.86,1183.68,3.06,5.84,1553.3846153846298,4.465,2.93,0.03,0.0061662966923077675,0.010199767410255816,0.00011300018589728251,0.07210748174665038,0.6633671090241648,0.0 +260_200,two_100_200,25.0,soft,100,1192.61,8.93,5.86,8.93,5.86,1183.68,3.06,5.84,1553.3846153846298,4.465,2.93,0.0,0.0061662966923077675,0.010199767410255816,0.0,0.02463480730585721,0.3123187025373716,0.0 +260_200,two_100_200,25.0,nominal,100,1192.61,8.93,5.86,8.93,5.86,1183.68,3.06,5.84,1553.3846153846298,4.465,2.93,0.0,0.0061662966923077675,0.010199767410255816,0.0,0.04886294794504952,0.49030457888916096,0.0 +260_200,two_100_200,25.0,intensive,100,1192.61,8.93,5.86,8.93,5.86,1183.68,3.06,5.84,1553.3846153846298,4.465,2.93,0.0,0.0061662966923077675,0.010199767410255816,0.0,0.07180303730218794,0.6633664679884888,0.0 +260_200,two_150_250,5.0,soft,100,1192.61,7.54,4.68,7.54,4.68,1185.07,2.84,4.67,1553.3846153846298,3.77,2.34,0.12,0.004874652275641122,0.008047035814101813,0.0005152519109681763,0.017900799763732943,0.28698517671815543,0.0 +260_200,two_150_250,5.0,nominal,100,1192.61,7.54,4.68,7.54,4.68,1185.07,2.84,4.67,1553.3846153846298,3.77,2.34,0.325,0.004874652275641122,0.008047035814101813,0.0014273649850418452,0.03580159952746589,0.4121410657265168,0.0 +260_200,two_150_250,5.0,intensive,100,1192.61,7.54,4.68,7.54,4.68,1185.07,2.84,4.67,1553.3846153846298,3.77,2.34,0.495,0.004874652275641122,0.008047035814101813,0.0023632394985747623,0.05370239929119883,0.5127262510379955,0.0 +260_200,two_150_250,15.0,soft,100,1192.61,7.54,4.68,7.54,4.68,1185.07,2.84,4.67,1553.3846153846298,3.77,2.34,0.0,0.004874652275641122,0.008047035814101813,0.0,0.017831799763732944,0.2963265958660866,0.0 +260_200,two_150_250,15.0,nominal,100,1192.61,7.54,4.68,7.54,4.68,1185.07,2.84,4.67,1553.3846153846298,3.77,2.34,0.0,0.004874652275641122,0.008047035814101813,0.0,0.03553964568131214,0.46284539445040485,0.0 +260_200,two_150_250,15.0,intensive,100,1192.61,7.54,4.68,7.54,4.68,1185.07,2.84,4.67,1553.3846153846298,3.77,2.34,0.02,0.004874652275641122,0.008047035814101813,7.686239316227155e-05,0.05313334886386748,0.628528777542409,0.0 +260_200,two_150_250,25.0,soft,100,1192.61,7.54,4.68,7.54,4.68,1185.07,2.84,4.67,1553.3846153846298,3.77,2.34,0.0,0.004874652275641122,0.008047035814101813,0.0,0.017831799763732944,0.2963265958660866,0.0 +260_200,two_150_250,25.0,nominal,100,1192.61,7.54,4.68,7.54,4.68,1185.07,2.84,4.67,1553.3846153846298,3.77,2.34,0.0,0.004874652275641122,0.008047035814101813,0.0,0.03553964568131214,0.46284539445040485,0.0 +260_200,two_150_250,25.0,intensive,100,1192.61,7.54,4.68,7.54,4.68,1185.07,2.84,4.67,1553.3846153846298,3.77,2.34,0.0,0.004874652275641122,0.008047035814101813,0.0,0.05292500698350795,0.626409350849427,0.0 +260_200,two_200_300,5.0,soft,100,1192.61,5.86,3.65,5.86,3.65,1186.74,2.19,3.65,1553.3846153846298,2.93,1.825,0.095,0.003856901653846757,0.006342865756409058,0.00039858852065484315,0.01920227653114614,0.29642266623185815,0.0 +260_200,two_200_300,5.0,nominal,100,1192.61,5.86,3.65,5.86,3.65,1186.74,2.19,3.65,1553.3846153846298,2.93,1.825,0.26,0.003856901653846757,0.006342865756409058,0.0011301937599707363,0.03832860767767682,0.4228827529073018,0.0 +260_200,two_200_300,5.0,intensive,100,1192.61,5.86,3.65,5.86,3.65,1186.74,2.19,3.65,1553.3846153846298,2.93,1.825,0.4,0.003856901653846757,0.006342865756409058,0.0019008925491447405,0.05749291151651522,0.522057118948683,0.0 +260_200,two_200_300,15.0,soft,100,1192.61,5.86,3.65,5.86,3.65,1186.74,2.19,3.65,1553.3846153846298,2.93,1.825,0.0,0.003856901653846757,0.006342865756409058,0.0,0.019189276531146156,0.30361203067391107,0.0 +260_200,two_200_300,15.0,nominal,100,1192.61,5.86,3.65,5.86,3.65,1186.74,2.19,3.65,1553.3846153846298,2.93,1.825,0.0,0.003856901653846757,0.006342865756409058,0.0,0.038302607677676834,0.4811089773983916,0.0 +260_200,two_200_300,15.0,intensive,100,1192.61,5.86,3.65,5.86,3.65,1186.74,2.19,3.65,1553.3846153846298,2.93,1.825,0.015,0.003856901653846757,0.006342865756409058,5.548333333324783e-05,0.05745391151651526,0.652519273597819,0.0 +260_200,two_200_300,25.0,soft,100,1192.61,5.86,3.65,5.86,3.65,1186.74,2.19,3.65,1553.3846153846298,2.93,1.825,0.0,0.003856901653846757,0.006342865756409058,0.0,0.01918927653114615,0.30361203067391107,0.0 +260_200,two_200_300,25.0,nominal,100,1192.61,5.86,3.65,5.86,3.65,1186.74,2.19,3.65,1553.3846153846298,2.93,1.825,0.0,0.003856901653846757,0.006342865756409058,0.0,0.03830260767767684,0.48110897739839165,0.0 +260_200,two_200_300,25.0,intensive,100,1192.61,5.86,3.65,5.86,3.65,1186.74,2.19,3.65,1553.3846153846298,2.93,1.825,0.0,0.003856901653846757,0.006342865756409058,0.0,0.05745391151651526,0.6560566129917526,0.0 +230_200,single_250,5.0,soft,100,750.6,4.63,4.63,0.0,4.63,745.94,0.0,4.63,1938.2260869568952,0.0,2.315,0.1,0.0,0.008226305797102696,0.000514733896940646,0.0,0.4058671258799739,0.0 +230_200,single_250,5.0,nominal,100,750.6,4.63,4.63,0.0,4.63,745.94,0.0,4.63,1938.2260869568952,0.0,2.315,0.26,0.0,0.008226305797102696,0.0012808948470213028,0.0,0.5623441785139918,0.0 +230_200,single_250,5.0,intensive,100,750.6,4.63,4.63,0.0,4.63,745.94,0.0,4.63,1938.2260869568952,0.0,2.315,0.46,0.0,0.008226305797102696,0.002076788405797635,0.0,0.6860111928227198,0.0 +230_200,single_250,15.0,soft,100,750.6,4.63,4.63,0.0,4.63,745.94,0.0,4.63,1938.2260869568952,0.0,2.315,0.0,0.0,0.008226305797102696,0.0,0.0,0.42339743892346277,0.0 +230_200,single_250,15.0,nominal,100,750.6,4.63,4.63,0.0,4.63,745.94,0.0,4.63,1938.2260869568952,0.0,2.315,0.01,0.0,0.008226305797102696,5.119388083742042e-05,0.0,0.6249763505867079,0.0 +230_200,single_250,15.0,intensive,100,750.6,4.63,4.63,0.0,4.63,745.94,0.0,4.63,1938.2260869568952,0.0,2.315,0.02,0.0,0.008226305797102696,0.0001472850241546552,0.0,0.8339532523120714,0.0 +230_200,single_250,25.0,soft,100,750.6,4.63,4.63,0.0,4.63,745.94,0.0,4.63,1938.2260869568952,0.0,2.315,0.0,0.0,0.008226305797102696,0.0,0.0,0.42339743892346277,0.0 +230_200,single_250,25.0,nominal,100,750.6,4.63,4.63,0.0,4.63,745.94,0.0,4.63,1938.2260869568952,0.0,2.315,0.0,0.0,0.008226305797102696,0.0,0.0,0.6275253747413009,0.0 +230_200,single_250,25.0,intensive,100,750.6,4.63,4.63,0.0,4.63,745.94,0.0,4.63,1938.2260869568952,0.0,2.315,0.0,0.0,0.008226305797102696,0.0,0.0,0.8442720349207719,0.0 +230_200,two_100_200,5.0,soft,100,750.6,9.62,5.99,9.62,5.99,740.96,3.63,5.98,1938.2260869568952,4.81,2.995,0.115,0.006404715942029555,0.010383782608696294,0.0006719713365541712,0.021344368184960293,0.28906947513658543,0.0 +230_200,two_100_200,5.0,nominal,100,750.6,9.62,5.99,9.62,5.99,740.96,3.63,5.98,1938.2260869568952,4.81,2.995,0.365,0.006404715942029555,0.010383782608696294,0.0018144038647347485,0.04144028378192868,0.41632392119614,0.0 +230_200,two_100_200,5.0,intensive,100,750.6,9.62,5.99,9.62,5.99,740.96,3.63,5.98,1938.2260869568952,4.81,2.995,0.655,0.006404715942029555,0.010383782608696294,0.0030680473027381683,0.06172692132506846,0.5218387776162401,0.04 +230_200,two_100_200,15.0,soft,100,750.6,9.62,5.99,9.62,5.99,740.96,3.63,5.98,1938.2260869568952,4.81,2.995,0.0,0.006404715942029555,0.010383782608696294,0.0,0.021344368184960286,0.29998906917508,0.0 +230_200,two_100_200,15.0,nominal,100,750.6,9.62,5.99,9.62,5.99,740.96,3.63,5.98,1938.2260869568952,4.81,2.995,0.015,0.006404715942029555,0.010383782608696294,7.693719806769252e-05,0.04144028378192868,0.4633225875050784,0.0 +230_200,two_100_200,15.0,intensive,100,750.6,9.62,5.99,9.62,5.99,740.96,3.63,5.98,1938.2260869568952,4.81,2.995,0.035,0.006404715942029555,0.010383782608696294,0.00019270567632860566,0.06169593098690283,0.6294164207747263,0.0 +230_200,two_100_200,25.0,soft,100,750.6,9.62,5.99,9.62,5.99,740.96,3.63,5.98,1938.2260869568952,4.81,2.995,0.0,0.006404715942029555,0.010383782608696294,0.0,0.021344368184960293,0.29998906917508,0.0 +230_200,two_100_200,25.0,nominal,100,750.6,9.62,5.99,9.62,5.99,740.96,3.63,5.98,1938.2260869568952,4.81,2.995,0.0,0.006404715942029555,0.010383782608696294,0.0,0.04144028378192868,0.4650197960839407,0.0 +230_200,two_100_200,25.0,intensive,100,750.6,9.62,5.99,9.62,5.99,740.96,3.63,5.98,1938.2260869568952,4.81,2.995,0.005,0.006404715942029555,0.010383782608696294,7.23747987120719e-06,0.061695930986902826,0.6316911802181836,0.0 +230_200,two_150_250,5.0,soft,100,750.6,7.71,4.63,7.71,4.63,742.87,3.07,4.63,1938.2260869568952,3.855,2.315,0.1,0.005001884057970516,0.008226305797102696,0.0005626505636073119,0.020918718288478595,0.28032244045139837,0.0 +230_200,two_150_250,5.0,nominal,100,750.6,7.71,4.63,7.71,4.63,742.87,3.07,4.63,1938.2260869568952,3.855,2.315,0.29,0.005001884057970516,0.008226305797102696,0.001466152012882828,0.041635349620435885,0.4057408181659914,0.0 +230_200,two_150_250,5.0,intensive,100,750.6,7.71,4.63,7.71,4.63,742.87,3.07,4.63,1938.2260869568952,3.855,2.315,0.505,0.005001884057970516,0.008226305797102696,0.0024288750000005677,0.061517836853014034,0.5056465925162827,0.0 +230_200,two_150_250,15.0,soft,100,750.6,7.71,4.63,7.71,4.63,742.87,3.07,4.63,1938.2260869568952,3.855,2.315,0.0,0.005001884057970516,0.008226305797102696,0.0,0.02091871828847859,0.29250437847832683,0.0 +230_200,two_150_250,15.0,nominal,100,750.6,7.71,4.63,7.71,4.63,742.87,3.07,4.63,1938.2260869568952,3.855,2.315,0.015,0.005001884057970516,0.008226305797102696,6.443719806769294e-05,0.04163534962043587,0.4515614131862308,0.0 +230_200,two_150_250,15.0,intensive,100,750.6,7.71,4.63,7.71,4.63,742.87,3.07,4.63,1938.2260869568952,3.855,2.315,0.025,0.005001884057970516,0.008226305797102696,0.0001631696859904028,0.06151783685301404,0.6129476596521051,0.0 +230_200,two_150_250,25.0,soft,100,750.6,7.71,4.63,7.71,4.63,742.87,3.07,4.63,1938.2260869568952,3.855,2.315,0.0,0.005001884057970516,0.008226305797102696,0.0,0.020918718288478598,0.2925043784783269,0.0 +230_200,two_150_250,25.0,nominal,100,750.6,7.71,4.63,7.71,4.63,742.87,3.07,4.63,1938.2260869568952,3.855,2.315,0.0,0.005001884057970516,0.008226305797102696,0.0,0.041635349620435885,0.45317598617910126,0.0 +230_200,two_150_250,25.0,intensive,100,750.6,7.71,4.63,7.71,4.63,742.87,3.07,4.63,1938.2260869568952,3.855,2.315,0.0,0.005001884057970516,0.008226305797102696,0.0,0.06110296728779641,0.6140984941701649,0.0 +230_200,two_200_300,5.0,soft,100,750.6,5.99,3.73,5.99,3.73,744.59,2.25,3.73,1938.2260869568952,2.995,1.865,0.085,0.0038694840579704625,0.0065142985507258356,0.0004640957326893967,0.018976081159426023,0.28449686514284583,0.0 +230_200,two_200_300,5.0,nominal,100,750.6,5.99,3.73,5.99,3.73,744.59,2.25,3.73,1938.2260869568952,2.995,1.865,0.255,0.0038694840579704625,0.0065142985507258356,0.0012076871712295588,0.037589814492765244,0.41182037397444454,0.0 +230_200,two_200_300,5.0,intensive,100,750.6,5.99,3.73,5.99,3.73,744.59,2.25,3.73,1938.2260869568952,2.995,1.865,0.395,0.0038694840579704625,0.0065142985507258356,0.0019341896135270343,0.05638472173914786,0.5149817125297816,0.0 +230_200,two_200_300,15.0,soft,100,750.6,5.99,3.73,5.99,3.73,744.59,2.25,3.73,1938.2260869568952,2.995,1.865,0.0,0.0038694840579704625,0.0065142985507258356,0.0,0.018976081159426023,0.2964985050631034,0.0 +230_200,two_200_300,15.0,nominal,100,750.6,5.99,3.73,5.99,3.73,744.59,2.25,3.73,1938.2260869568952,2.995,1.865,0.01,0.0038694840579704625,0.0065142985507258356,4.8416103059642795e-05,0.037589814492765244,0.45541800092024814,0.0 +230_200,two_200_300,15.0,intensive,100,750.6,5.99,3.73,5.99,3.73,744.59,2.25,3.73,1938.2260869568952,2.995,1.865,0.015,0.0038694840579704625,0.0065142985507258356,0.0001397844202899152,0.05618254782610439,0.6200797295607158,0.0 +230_200,two_200_300,25.0,soft,100,750.6,5.99,3.73,5.99,3.73,744.59,2.25,3.73,1938.2260869568952,2.995,1.865,0.0,0.0038694840579704625,0.0065142985507258356,0.0,0.018976081159426023,0.2964985050631034,0.0 +230_200,two_200_300,25.0,nominal,100,750.6,5.99,3.73,5.99,3.73,744.59,2.25,3.73,1938.2260869568952,2.995,1.865,0.0,0.0038694840579704625,0.0065142985507258356,0.0,0.037589814492765244,0.4571240186336163,0.0 +230_200,two_200_300,25.0,intensive,100,750.6,5.99,3.73,5.99,3.73,744.59,2.25,3.73,1938.2260869568952,2.995,1.865,0.0,0.0038694840579704625,0.0065142985507258356,0.0,0.05605889565219118,0.6220896579021029,0.0 +230_1000,single_250,5.0,soft,100,744.77,2.07,2.07,0.0,2.07,742.68,0.0,2.04,6546.921739131583,0.0,1.035,0.51,0.0,0.018404613043477867,0.010031135426731688,0.0,0.8957060731079274,0.0 +230_1000,single_250,5.0,nominal,100,744.77,2.07,2.07,0.0,2.07,742.68,0.0,2.04,6546.921739131583,0.0,1.035,0.655,0.0,0.018404613043477867,0.012342763123993643,0.0,1.0144163252818321,0.0 +230_1000,single_250,5.0,intensive,100,744.77,2.07,2.07,0.0,2.07,742.68,0.0,2.04,6546.921739131583,0.0,1.035,0.76,0.0,0.018404613043477867,0.013786482729468781,0.0,1.0761551423510674,0.0 +230_1000,single_250,15.0,soft,100,744.77,2.07,2.07,0.0,2.07,742.68,0.0,2.04,6546.921739131583,0.0,1.035,0.155,0.0,0.018404613043477867,0.0029537632850248157,0.0,1.5966444946860836,0.0 +230_1000,single_250,15.0,nominal,100,744.77,2.07,2.07,0.0,2.07,742.68,0.0,2.04,6546.921739131583,0.0,1.035,0.28,0.0,0.018404613043477867,0.005433619484703018,0.0,2.0011169777778726,0.0 +230_1000,single_250,15.0,intensive,100,744.77,2.07,2.07,0.0,2.07,742.68,0.0,2.04,6546.921739131583,0.0,1.035,0.405,0.0,0.018404613043477867,0.007416253864735419,0.0,2.28394553429962,0.0 +230_1000,single_250,25.0,soft,100,744.77,2.07,2.07,0.0,2.07,742.68,0.0,2.04,6546.921739131583,0.0,1.035,0.04,0.0,0.018404613043477867,0.0008522938808378088,0.0,1.730301442834255,0.0 +230_1000,single_250,25.0,nominal,100,744.77,2.07,2.07,0.0,2.07,742.68,0.0,2.04,6546.921739131583,0.0,1.035,0.14,0.0,0.018404613043477867,0.0025385002683849934,0.0,2.350818305958271,0.0 +230_1000,single_250,25.0,intensive,100,744.77,2.07,2.07,0.0,2.07,742.68,0.0,2.04,6546.921739131583,0.0,1.035,0.215,0.0,0.018404613043477867,0.0041265349033824525,0.0,2.8429446022545797,0.0 +230_1000,two_100_200,5.0,soft,100,744.77,2.36,2.11,2.36,2.11,742.41,0.23,2.08,6546.921739131583,1.18,1.055,0.55,0.0018668463768103565,0.01927247826086914,0.010741405072464415,0.004593391304349055,0.9027727916264401,0.0 +230_1000,two_100_200,5.0,nominal,100,744.77,2.36,2.11,2.36,2.11,742.41,0.23,2.08,6546.921739131583,1.18,1.055,0.725,0.0018668463768103565,0.01927247826086914,0.013386441116478949,0.00918678260869811,1.017165312721432,0.0 +230_1000,two_100_200,5.0,intensive,100,744.77,2.36,2.11,2.36,2.11,742.41,0.23,2.08,6546.921739131583,1.18,1.055,0.84,0.0018668463768103565,0.01927247826086914,0.015036095571658826,0.013780173913047165,1.0683309713365683,0.02 +230_1000,two_100_200,15.0,soft,100,744.77,2.36,2.11,2.36,2.11,742.41,0.23,2.08,6546.921739131583,1.18,1.055,0.155,0.0018668463768103565,0.01927247826086914,0.0031850132850248136,0.004593391304349055,1.622684428985595,0.0 +230_1000,two_100_200,15.0,nominal,100,744.77,2.36,2.11,2.36,2.11,742.41,0.23,2.08,6546.921739131583,1.18,1.055,0.305,0.0018668463768103565,0.01927247826086914,0.0058862206119172766,0.00918678260869811,2.0541545294686796,0.0 +230_1000,two_100_200,15.0,intensive,100,744.77,2.36,2.11,2.36,2.11,742.41,0.23,2.08,6546.921739131583,1.18,1.055,0.465,0.0018668463768103565,0.01927247826086914,0.008118542874397353,0.013780173913047165,2.350325549758532,0.02 +230_1000,two_100_200,25.0,soft,100,744.77,2.36,2.11,2.36,2.11,742.41,0.23,2.08,6546.921739131583,1.18,1.055,0.04,0.0018668463768103565,0.01927247826086914,0.000927293880837808,0.004593391304349055,1.7645571178745068,0.0 +230_1000,two_100_200,25.0,nominal,100,744.77,2.36,2.11,2.36,2.11,742.41,0.23,2.08,6546.921739131583,1.18,1.055,0.14,0.0018668463768103565,0.01927247826086914,0.0027635002683849916,0.00918678260869811,2.4189631742352375,0.0 +230_1000,two_100_200,25.0,intensive,100,744.77,2.36,2.11,2.36,2.11,742.41,0.23,2.08,6546.921739131583,1.18,1.055,0.235,0.0018668463768103565,0.01927247826086914,0.004481657487923549,0.013780173913047165,2.937029966505776,0.01 +230_1000,two_150_250,5.0,soft,100,744.77,2.22,2.07,2.22,2.07,742.54,0.14,2.04,6546.921739131583,1.11,1.035,0.515,0.0017734275362311883,0.018404613043477867,0.010257971578100444,0.0024442608695661107,0.882209267149793,0.0 +230_1000,two_150_250,5.0,nominal,100,744.77,2.22,2.07,2.22,2.07,742.54,0.14,2.04,6546.921739131583,1.11,1.035,0.695,0.0017734275362311883,0.018404613043477867,0.012759076704240575,0.004888521739132221,0.9986868933977697,0.0 +230_1000,two_150_250,5.0,intensive,100,744.77,2.22,2.07,2.22,2.07,742.54,0.14,2.04,6546.921739131583,1.11,1.035,0.785,0.0017734275362311883,0.018404613043477867,0.014309006803542855,0.007332782608698332,1.0576576520128982,0.0 +230_1000,two_150_250,15.0,soft,100,744.77,2.22,2.07,2.22,2.07,742.54,0.14,2.04,6546.921739131583,1.11,1.035,0.155,0.0017734275362311883,0.018404613043477867,0.00303917995169148,0.002444260869566115,1.5812438618358384,0.0 +230_1000,two_150_250,15.0,nominal,100,744.77,2.22,2.07,2.22,2.07,742.54,0.14,2.04,6546.921739131583,1.11,1.035,0.285,0.0017734275362311883,0.018404613043477867,0.005610308212561334,0.004888521739132221,1.99140453333342,0.0 +230_1000,two_150_250,15.0,intensive,100,744.77,2.22,2.07,2.22,2.07,742.54,0.14,2.04,6546.921739131583,1.11,1.035,0.425,0.0017734275362311883,0.018404613043477867,0.007706249758455248,0.007332782608698327,2.2934626850242505,0.0 +230_1000,two_150_250,25.0,soft,100,744.77,2.22,2.07,2.22,2.07,742.54,0.14,2.04,6546.921739131583,1.11,1.035,0.04,0.0017734275362311883,0.018404613043477867,0.0008814605475044744,0.002444260869566106,1.7165961803543803,0.0 +230_1000,two_150_250,25.0,nominal,100,744.77,2.22,2.07,2.22,2.07,742.54,0.14,2.04,6546.921739131583,1.11,1.035,0.14,0.0017734275362311883,0.018404613043477867,0.0026329447128294347,0.004888521739132221,2.342472927536366,0.0 +230_1000,two_150_250,25.0,intensive,100,744.77,2.22,2.07,2.22,2.07,742.54,0.14,2.04,6546.921739131583,1.11,1.035,0.215,0.0017734275362311883,0.018404613043477867,0.004274451570049115,0.007332782608698336,2.8563816524961214,0.0 +230_1000,two_200_300,5.0,soft,100,744.77,2.11,2.01,2.11,2.01,742.64,0.1,1.98,6546.921739131583,1.055,1.005,0.505,0.0017156637681158893,0.017556814492753252,0.009819934057971614,0.002439826086957564,0.8633734144927905,0.0 +230_1000,two_200_300,5.0,nominal,100,744.77,2.11,2.01,2.11,2.01,742.64,0.1,1.98,6546.921739131583,1.055,1.005,0.645,0.0017156637681158893,0.017556814492753252,0.01215700429414931,0.004879652173915128,0.9835612618357763,0.0 +230_1000,two_200_300,5.0,intensive,100,744.77,2.11,2.01,2.11,2.01,742.64,0.1,1.98,6546.921739131583,1.055,1.005,0.735,0.0017156637681158893,0.017556814492753252,0.013612274959742517,0.007319478260872691,1.0464980843800533,0.0 +230_1000,two_200_300,15.0,soft,100,744.77,2.11,2.01,2.11,2.01,742.64,0.1,1.98,6546.921739131583,1.055,1.005,0.15,0.0017156637681158893,0.017556814492753252,0.002890074396135932,0.0024398260869575683,1.550820280193329,0.0 +230_1000,two_200_300,15.0,nominal,100,744.77,2.11,2.01,2.11,2.01,742.64,0.1,1.98,6546.921739131583,1.055,1.005,0.275,0.0017156637681158893,0.017556814492753252,0.005357093075685281,0.004879652173915128,1.9471083980677353,0.0 +230_1000,two_200_300,15.0,intensive,100,744.77,2.11,2.01,2.11,2.01,742.64,0.1,1.98,6546.921739131583,1.055,1.005,0.385,0.0017156637681158893,0.017556814492753252,0.007321664492754724,0.007319478260872687,2.241636423188508,0.0 +230_1000,two_200_300,25.0,soft,100,744.77,2.11,2.01,2.11,2.01,742.64,0.1,1.98,6546.921739131583,1.055,1.005,0.04,0.0017156637681158893,0.017556814492753252,0.000835627214171143,0.0024398260869575596,1.6797259790661383,0.0 +230_1000,two_200_300,25.0,nominal,100,744.77,2.11,2.01,2.11,2.01,742.64,0.1,1.98,6546.921739131583,1.055,1.005,0.14,0.0017156637681158893,0.017556814492753252,0.002502389157273884,0.004879652173915128,2.291977262480009,0.0 +230_1000,two_200_300,25.0,intensive,100,744.77,2.11,2.01,2.11,2.01,742.64,0.1,1.98,6546.921739131583,1.055,1.005,0.205,0.0017156637681158893,0.017556814492753252,0.004077339090177937,0.007319478260872696,2.793908148148299,0.0 diff --git a/protocol/two_stage_failsafe.py b/protocol/two_stage_failsafe.py new file mode 100644 index 0000000..8429bea --- /dev/null +++ b/protocol/two_stage_failsafe.py @@ -0,0 +1,229 @@ +"""Event-driven two-stage longitudinal failsafe model for Lab039. + +The module is intentionally independent from motor hardware. It models an +explicit safety state machine and exact one-dimensional constant-acceleration +segments; measured rover braking parameters are still required before any +real-world use. +""" + +from __future__ import annotations + +from dataclasses import dataclass +from enum import Enum + + +class SafetyState(str, Enum): + NORMAL = "normal" + STAGE1_DECELERATION = "stage1_deceleration" + STAGE2_BRAKING = "stage2_braking" + EMERGENCY_LATCHED = "emergency_latched" + + +@dataclass(frozen=True) +class ThresholdPolicy: + name: str + stage1_seconds: float | None + stage2_seconds: float + + def __post_init__(self) -> None: + if self.stage2_seconds <= 0.0: + raise ValueError("stage2_seconds must be positive") + if self.stage1_seconds is not None: + if self.stage1_seconds <= 0.0: + raise ValueError("stage1_seconds must be positive") + if self.stage1_seconds >= self.stage2_seconds: + raise ValueError("stage1 threshold must precede stage2") + + +@dataclass(frozen=True) +class DecelerationProfile: + name: str + stage1_mps2: float + stage2_mps2: float + + def __post_init__(self) -> None: + if self.stage1_mps2 <= 0.0 or self.stage2_mps2 <= 0.0: + raise ValueError("decelerations must be positive") + + +@dataclass(frozen=True) +class KinematicStep: + final_speed_mps: float + distance_m: float + zero_after_seconds: float | None + target_after_seconds: float | None + + +@dataclass(frozen=True) +class ForcedStopResult: + speed_at_first_threshold_mps: float + speed_at_second_threshold_mps: float + distance_to_first_threshold_m: float + distance_between_thresholds_m: float + braking_distance_m: float + total_distance_m: float + stop_time_seconds: float + + +def integrate_kinematics( + speed_mps: float, + acceleration_mps2: float, + duration_seconds: float, + *, + target_speed_mps: float | None = None, +) -> KinematicStep: + """Integrate one constant-acceleration segment exactly. + + Braking is truncated at zero speed. Positive acceleration can optionally + be truncated at ``target_speed_mps``. Distance after either bound is + reached uses the corresponding constant bounded speed. + """ + + if speed_mps < 0.0: + raise ValueError("speed must not be negative") + if duration_seconds < 0.0: + raise ValueError("duration must not be negative") + if target_speed_mps is not None and target_speed_mps < 0.0: + raise ValueError("target speed must not be negative") + if duration_seconds == 0.0: + return KinematicStep(speed_mps, 0.0, None, None) + if acceleration_mps2 < 0.0: + if speed_mps == 0.0: + return KinematicStep(0.0, 0.0, 0.0, None) + stop_after = speed_mps / -acceleration_mps2 + moving_time = min(duration_seconds, stop_after) + distance = speed_mps * moving_time + 0.5 * acceleration_mps2 * moving_time * moving_time + if stop_after <= duration_seconds: + return KinematicStep(0.0, max(0.0, distance), stop_after, None) + final_speed = speed_mps + acceleration_mps2 * duration_seconds + return KinematicStep(max(0.0, final_speed), max(0.0, distance), None, None) + if acceleration_mps2 > 0.0 and target_speed_mps is not None: + if speed_mps > target_speed_mps + 1e-12: + raise ValueError("speed already exceeds target") + if speed_mps >= target_speed_mps - 1e-12: + return KinematicStep(target_speed_mps, target_speed_mps * duration_seconds, None, 0.0) + target_after = (target_speed_mps - speed_mps) / acceleration_mps2 + accelerating_time = min(duration_seconds, target_after) + distance = speed_mps * accelerating_time + 0.5 * acceleration_mps2 * accelerating_time * accelerating_time + if target_after <= duration_seconds: + distance += target_speed_mps * (duration_seconds - target_after) + return KinematicStep(target_speed_mps, distance, None, target_after) + return KinematicStep( + speed_mps + acceleration_mps2 * duration_seconds, + distance, + None, + None, + ) + final_speed = speed_mps + acceleration_mps2 * duration_seconds + if final_speed < -1e-12: + raise ValueError("unbounded integration produced negative speed") + distance = speed_mps * duration_seconds + 0.5 * acceleration_mps2 * duration_seconds * duration_seconds + return KinematicStep(max(0.0, final_speed), max(0.0, distance), None, None) + + +class TwoStageFailsafe: + """Sequence-aware watchdog FSM with a latched emergency state. + + At an equal timestamp the caller must pass a completely received fresh + command to :meth:`receive_command` before calling :meth:`apply_watchdog`. + The fresh command then updates the watchdog origin and prevents a stage-1 + or stage-2 transition based on the previous command. Lab039's event + scheduler implements and tests this receive-before-threshold rule. + """ + + def __init__( + self, + policy: ThresholdPolicy, + profile: DecelerationProfile, + *, + resume_acceleration_mps2: float = 1.0, + boot_time_seconds: float = 0.0, + ) -> None: + if resume_acceleration_mps2 <= 0.0: + raise ValueError("resume acceleration must be positive") + self.policy = policy + self.profile = profile + self.resume_acceleration_mps2 = resume_acceleration_mps2 + self.state = SafetyState.NORMAL + self.last_sequence = -1 + self.last_fresh_time_seconds = boot_time_seconds + self.emergency_actions = 0 + self.emergency_duplicates = 0 + self._emergency_keys: set[tuple[int, int]] = set() + + def receive_command(self, sequence_number: int, receive_time_seconds: float) -> bool: + if sequence_number <= self.last_sequence: + return False + if receive_time_seconds < self.last_fresh_time_seconds: + raise ValueError("receive time moved backwards") + self.last_sequence = sequence_number + self.last_fresh_time_seconds = receive_time_seconds + if self.state is not SafetyState.EMERGENCY_LATCHED: + self.state = SafetyState.NORMAL + return True + + def apply_watchdog(self, now_seconds: float) -> SafetyState: + if now_seconds < self.last_fresh_time_seconds: + raise ValueError("watchdog time moved backwards") + if self.state is SafetyState.EMERGENCY_LATCHED: + return self.state + age = now_seconds - self.last_fresh_time_seconds + if age >= self.policy.stage2_seconds - 1e-12: + self.state = SafetyState.STAGE2_BRAKING + elif self.policy.stage1_seconds is not None and age >= self.policy.stage1_seconds - 1e-12: + self.state = SafetyState.STAGE1_DECELERATION + return self.state + + def receive_emergency(self, stream_id: int, sequence_number: int) -> bool: + key = stream_id, sequence_number + if key in self._emergency_keys: + self.emergency_duplicates += 1 + return False + self._emergency_keys.add(key) + self.emergency_actions += 1 + self.state = SafetyState.EMERGENCY_LATCHED + return True + + def acceleration_mps2(self, speed_mps: float, target_speed_mps: float) -> float: + if speed_mps < 0.0 or target_speed_mps < 0.0: + raise ValueError("speeds must not be negative") + if self.state is SafetyState.NORMAL: + return self.resume_acceleration_mps2 if speed_mps < target_speed_mps - 1e-12 else 0.0 + if self.state is SafetyState.STAGE1_DECELERATION: + return -self.profile.stage1_mps2 if speed_mps > 0.0 else 0.0 + return -self.profile.stage2_mps2 if speed_mps > 0.0 else 0.0 + + +def forced_stop( + initial_speed_mps: float, + policy: ThresholdPolicy, + profile: DecelerationProfile, +) -> ForcedStopResult: + """Exact no-recovery stop after the last fresh command at time zero.""" + + if initial_speed_mps < 0.0: + raise ValueError("initial speed must not be negative") + first_threshold = policy.stage1_seconds if policy.stage1_seconds is not None else policy.stage2_seconds + distance_to_first = initial_speed_mps * first_threshold + speed_at_first = initial_speed_mps + if policy.stage1_seconds is None: + speed_at_second = initial_speed_mps + distance_between = 0.0 + else: + stage1_duration = policy.stage2_seconds - policy.stage1_seconds + stage1 = integrate_kinematics(initial_speed_mps, -profile.stage1_mps2, stage1_duration) + speed_at_second = stage1.final_speed_mps + distance_between = stage1.distance_m + braking = integrate_kinematics(speed_at_second, -profile.stage2_mps2, speed_at_second / profile.stage2_mps2 if speed_at_second else 0.0) + stop_time = policy.stage2_seconds + speed_at_second / profile.stage2_mps2 + if speed_at_second == 0.0 and policy.stage1_seconds is not None: + stop_time = policy.stage1_seconds + initial_speed_mps / profile.stage1_mps2 + return ForcedStopResult( + speed_at_first, + speed_at_second, + distance_to_first, + distance_between, + braking.distance_m, + distance_to_first + distance_between + braking.distance_m, + stop_time, + ) diff --git a/tests/lab039_two_stage_braking.py b/tests/lab039_two_stage_braking.py new file mode 100644 index 0000000..3c6f68e --- /dev/null +++ b/tests/lab039_two_stage_braking.py @@ -0,0 +1,1890 @@ +"""Lab039: two-stage failsafe and exact longitudinal stopping distance.""" + +from __future__ import annotations + +import csv +from dataclasses import asdict, dataclass +from pathlib import Path +from typing import Iterable + +import cv2 +import matplotlib +import numpy as np + +matplotlib.use("Agg") +import matplotlib.pyplot as plt + +from protocol.emergency_ack import EmergencyAckReceiver, build_emergency_ack +from protocol.link_packet import encode_link_packet +from protocol.two_stage_failsafe import ( + DecelerationProfile, + SafetyState, + ThresholdPolicy, + TwoStageFailsafe, + forced_stop, + integrate_kinematics, +) +from tests.lab033_priority_channel_scheduler import STREAM_EMERGENCY +from tests.lab037_lossy_full_link import bad_intervals +from tests.lab038_control_failsafe import ( + DURATION_SECONDS, + EMERGENCY_SPREAD_US, + MASTER_SEED, + Frame, + Unit, + Workload, + build_workload as build_lab038_workload, + packet_is_lost, +) + + +OUTPUT_DIRECTORY = Path("data/processed/lab039") +SUMMARY_CSV_PATH = OUTPUT_DIRECTORY / "lab039_summary.csv" +WATCHDOG_CSV_PATH = OUTPUT_DIRECTORY / "lab039_watchdog_metrics.csv" +DISTANCE_CSV_PATH = OUTPUT_DIRECTORY / "lab039_distance_metrics.csv" +EMERGENCY_CSV_PATH = OUTPUT_DIRECTORY / "lab039_emergency_stop_metrics.csv" +ANALYTIC_CSV_PATH = OUTPUT_DIRECTORY / "lab039_analytic_checks.csv" +REPORT_PATH = OUTPUT_DIRECTORY / "lab039_report.txt" +PATH_SPEED_PLOT = OUTPUT_DIRECTORY / "lab039_path_by_speed.png" +POLICY_PLOT = OUTPUT_DIRECTORY / "lab039_policy_comparison.png" +PROFILE_PLOT = OUTPUT_DIRECTORY / "lab039_deceleration_profiles.png" +REACTION_PLOT = OUTPUT_DIRECTORY / "lab039_reaction_rates.png" +STATE_TIME_PLOT = OUTPUT_DIRECTORY / "lab039_safety_state_time.png" +EMERGENCY_PATH_PLOT = OUTPUT_DIRECTORY / "lab039_emergency_path.png" +ANALYTIC_PLOT = OUTPUT_DIRECTORY / "lab039_analytic_vs_model.png" +TRADEOFF_PLOT = OUTPUT_DIRECTORY / "lab039_tradeoff.png" +PLOT_PATHS = ( + PATH_SPEED_PLOT, + POLICY_PLOT, + PROFILE_PLOT, + REACTION_PLOT, + STATE_TIME_PLOT, + EMERGENCY_PATH_PLOT, + ANALYTIC_PLOT, + TRADEOFF_PLOT, +) + +REPETITIONS = 100 +LAB039_SEED_OFFSET = 390_000_000 +RESUME_ACCELERATION_MPS2 = 1.0 +EMERGENCY_TIME_SECONDS = 60.0 +EPSILON = 1e-12 + +# Equal-time ordering is explicit and safety-oriented. A received emergency +# is handled first. A completely received fresh ordinary command is then +# handled before either watchdog threshold, so it resets the timer and cancels +# the transition based on the old command. Stage 2 precedes stage 1 only as a +# defensive ordering for coincident policy thresholds (valid policies do not +# configure them equally). +EVENT_PRIORITY = { + "emergency_formation": 0, + "emergency_receive": 0, + "receive": 1, + "stage2": 2, + "stage1": 3, + "end": 9, +} + + +@dataclass(frozen=True) +class ChannelCondition: + name: str + label: str + rate_kbps: float + mean_bad_ms: float | None + repetitions: int + + +CHANNEL_CONDITIONS = ( + ChannelCondition("no_loss", "Без потерь, 300 кбит/с", 300.0, None, 1), + ChannelCondition("300_50", "300 кбит/с, помеха 50 мс", 300.0, 50.0, REPETITIONS), + ChannelCondition("260_200", "260 кбит/с, помеха 200 мс", 260.0, 200.0, REPETITIONS), + ChannelCondition("230_200", "230 кбит/с, помеха 200 мс", 230.0, 200.0, REPETITIONS), + ChannelCondition("230_1000", "230 кбит/с, помеха 1000 мс", 230.0, 1000.0, REPETITIONS), +) + +POLICIES = ( + ThresholdPolicy("single_250", None, 0.250), + ThresholdPolicy("two_100_200", 0.100, 0.200), + ThresholdPolicy("two_150_250", 0.150, 0.250), + ThresholdPolicy("two_200_300", 0.200, 0.300), +) +POLICY_LABELS = { + "single_250": "Один порог 250 мс", + "two_100_200": "Два порога 100/200 мс", + "two_150_250": "Два порога 150/250 мс", + "two_200_300": "Два порога 200/300 мс", +} +PROFILES = ( + DecelerationProfile("soft", 0.5, 2.0), + DecelerationProfile("nominal", 1.0, 3.0), + DecelerationProfile("intensive", 1.5, 4.0), +) +PROFILE_LABELS = { + "soft": "Мягкий", + "nominal": "Номинальный", + "intensive": "Интенсивный", +} +SPEEDS_KMH = (5.0, 15.0, 25.0) + + +@dataclass(frozen=True) +class EmergencyTransport: + delivered: bool + first_receive_seconds: float | None + copies_transmitted: int + copies_lost: int + duplicate_copies: int + first_ack_seconds: float | None + acknowledgements_lost: int + acknowledgements_repeated: int + + +@dataclass(frozen=True) +class TransportTrace: + command_receives: tuple[tuple[float, int], ...] + emergency: EmergencyTransport | None + negative_time_order: int + + +@dataclass +class ActiveEvent: + last_fresh_time: float + last_fresh_speed: float + last_fresh_distance: float + first_time: float + first_speed: float + first_distance: float + second_time: float | None = None + second_speed: float | None = None + second_distance: float | None = None + min_speed: float = 0.0 + stop_time: float | None = None + stop_distance: float | None = None + + +@dataclass(frozen=True) +class ProtectionEvent: + gap_seconds: float + speed_last_fresh_mps: float + speed_first_threshold_mps: float + speed_second_threshold_mps: float + distance_to_first_threshold_m: float + distance_between_thresholds_m: float + braking_distance_m: float + total_distance_to_stop_m: float + time_to_stop_seconds: float + minimum_speed_mps: float + full_stop: bool + recovered_before_stop: bool + reached_stage2: bool + + +@dataclass(frozen=True) +class EmergencyMotion: + path_during_delivery_m: float + speed_at_receive_mps: float + braking_distance_m: float + total_path_m: float + time_to_stop_seconds: float + local_watchdog_stop: bool + + +@dataclass(frozen=True) +class MotionTrial: + communication_gaps: int + gaps_over_first: int + gaps_over_second: int + stage1_transitions: int + stage2_transitions: int + recovered_before_first: int + recovered_between_thresholds: int + recovered_after_second: int + max_command_gap_ms: float + events: tuple[ProtectionEvent, ...] + stage1_time_fraction: float + stage2_time_fraction: float + zero_speed_fraction: float + preliminary_reactions_per_minute: float + mandatory_brakings_per_minute: float + full_stops_per_minute: float + mean_short_speed_reduction_mps: float + mean_resume_time_seconds: float + short_outage_full_stops: int + negative_speed_cases: int + target_speed_exceeded_cases: int + missed_stage2_cases: int + stale_release_cases: int + ordinary_emergency_release_cases: int + emergency_motion: EmergencyMotion | None + + +@dataclass(frozen=True) +class SummaryMetrics: + channel_condition: str + policy: str + initial_speed_kmh: float + deceleration_profile: str + repetitions: int + preliminary_reactions_per_minute: float + mandatory_brakings_per_minute: float + full_stops_per_minute: float + mean_total_stop_path_m: float + p95_total_stop_path_m: float + max_total_stop_path_m: float + max_command_gap_ms: float + stage1_time_fraction: float + stage2_time_fraction: float + zero_speed_fraction: float + negative_speed_cases: int + target_speed_exceeded_cases: int + missed_stage2_cases: int + stale_command_release_cases: int + ordinary_command_emergency_release_cases: int + + +@dataclass(frozen=True) +class WatchdogMetrics: + channel_condition: str + policy: str + initial_speed_kmh: float + deceleration_profile: str + repetitions: int + communication_gaps_mean: float + gaps_over_first_mean: float + gaps_over_second_mean: float + stage1_transitions_mean: float + stage2_transitions_mean: float + recovered_before_first_mean: float + recovered_between_thresholds_mean: float + recovered_after_second_mean: float + max_command_gap_ms: float + preliminary_reactions_per_minute: float + mandatory_brakings_per_minute: float + full_stops_per_minute: float + stage1_time_fraction: float + stage2_time_fraction: float + zero_speed_fraction: float + mean_short_speed_reduction_mps: float + mean_resume_time_seconds: float + short_outage_full_stops_mean: float + + +@dataclass(frozen=True) +class DistanceMetrics: + channel_condition: str + policy: str + initial_speed_kmh: float + deceleration_profile: str + event_count: int + mean_speed_last_fresh_mps: float + p95_speed_last_fresh_mps: float + max_speed_last_fresh_mps: float + mean_speed_first_threshold_mps: float + p95_speed_first_threshold_mps: float + max_speed_first_threshold_mps: float + mean_speed_second_threshold_mps: float + p95_speed_second_threshold_mps: float + max_speed_second_threshold_mps: float + mean_distance_to_first_m: float + p95_distance_to_first_m: float + max_distance_to_first_m: float + mean_distance_between_m: float + p95_distance_between_m: float + max_distance_between_m: float + mean_distance_to_second_m: float + p95_distance_to_second_m: float + max_distance_to_second_m: float + mean_braking_distance_m: float + p95_braking_distance_m: float + max_braking_distance_m: float + mean_total_stop_path_m: float + p95_total_stop_path_m: float + max_total_stop_path_m: float + mean_time_to_stop_seconds: float + p95_time_to_stop_seconds: float + max_time_to_stop_seconds: float + mean_minimum_speed_mps: float + p95_minimum_speed_mps: float + max_minimum_speed_mps: float + full_stop_fraction: float + recovery_before_stop_fraction: float + + +@dataclass(frozen=True) +class EmergencyStopMetrics: + channel_condition: str + initial_speed_kmh: float + deceleration_profile: str + repetitions: int + delivered_fraction: float + mean_delivery_ms: float + p95_delivery_ms: float + max_delivery_ms: float + mean_path_during_delivery_m: float + mean_speed_at_receive_mps: float + mean_braking_distance_m: float + mean_total_path_m: float + p95_total_path_m: float + max_total_path_m: float + mean_time_to_stop_seconds: float + mean_copies_transmitted: float + mean_copies_lost: float + mean_ack_ms: float + acknowledgements_lost_mean: float + undelivered_by_500ms: int + local_watchdog_stage2_fraction_when_undelivered: float + local_watchdog_stop_fraction_when_undelivered: float + mean_local_watchdog_path_when_undelivered_m: float + mean_local_watchdog_stop_seconds_when_undelivered: float + + +@dataclass(frozen=True) +class AnalyticCheck: + initial_speed_kmh: float + deceleration_profile: str + single_reaction_path_m: float + single_braking_path_m: float + single_total_analytic_m: float + single_total_model_m: float + two_stage_reaction_path_m: float + two_stage_deceleration_path_m: float + two_stage_braking_path_m: float + two_stage_total_analytic_m: float + two_stage_total_model_m: float + two_stage_minus_single_m: float + maximum_absolute_error_m: float + + +@dataclass(frozen=True) +class FunctionalTestResult: + name: str + passed: bool + detail: str + + +def percentile(values: Iterable[float], q: float) -> float: + values = tuple(values) + return float(np.percentile(values, q)) if values else 0.0 + + +def _mean(values: Iterable[float]) -> float: + values = tuple(values) + return float(np.mean(values)) if values else 0.0 + + +def speed_kmh_to_mps(speed_kmh: float) -> float: + return speed_kmh / 3.6 + + +def build_static_units(workload: Workload, include_emergency: bool) -> tuple[Unit, ...]: + units: list[Unit] = list(workload.telemetry) + order = 60_000_000 + for packet in workload.controls: + units.append( + Unit( + packet, + encode_link_packet(packet), + packet.generation_time_us, + order, + 3, + "control", + ) + ) + order += 1 + if include_emergency: + packet = workload.emergencies[1] + for copy_index, offset in enumerate(EMERGENCY_SPREAD_US): + units.append( + Unit( + packet, + encode_link_packet(packet), + packet.generation_time_us + offset, + order, + 1, + "emergency", + copy_index=copy_index, + event_id=1, + ) + ) + order += 1 + return tuple(sorted(units, key=lambda item: (item.available_time_us, item.priority, item.order))) + + +def build_transport_trace( + workload: Workload, + rate_kbps: float, + bad_starts: np.ndarray, + bad_ends: np.ndarray, + *, + include_emergency: bool, +) -> TransportTrace: + static = build_static_units(workload, include_emergency) + ready: list[Unit] = [] + pending_frames: list[Frame] = [] + active: Frame | None = None + active_index = static_index = frame_index = 0 + cursor = 0.0 + dynamic_order = 70_000_000 + last_received_sequence = -1 + command_receives: list[tuple[float, int]] = [] + emergency_acknowledged = False + emergency_first: float | None = None + emergency_tx = emergency_lost = emergency_duplicates = 0 + ack_first: float | None = None + ack_lost = ack_generated = 0 + ack_sequence = 0 + ack_receiver = EmergencyAckReceiver() + negative_time_order = 0 + + def remove_ready(predicate) -> None: + ready[:] = [item for item in ready if not predicate(item)] + + def admit(now: float) -> None: + nonlocal static_index, frame_index + while static_index < len(static) and static[static_index].available_seconds <= now + EPSILON: + item = static[static_index] + static_index += 1 + if item.kind == "emergency" and emergency_acknowledged: + continue + if item.kind == "control": + sequence = item.packet.sequence_number + remove_ready(lambda old: old.kind == "control" and old.packet.sequence_number < sequence) + elif item.kind == "telemetry": + remove_ready(lambda old: old.kind == "telemetry") + ready.append(item) + while frame_index < len(workload.frames) and workload.frames[frame_index].generation_seconds <= now + EPSILON: + frame = workload.frames[frame_index] + frame_index += 1 + pending_frames[:] = [frame] + + previous_end = 0.0 + while static_index < len(static) or frame_index < len(workload.frames) or ready or pending_frames or active is not None: + if not ready and not pending_frames and active is None: + next_times = [] + if static_index < len(static): + next_times.append(static[static_index].available_seconds) + if frame_index < len(workload.frames): + next_times.append(workload.frames[frame_index].generation_seconds) + cursor = max(cursor, min(next_times)) + admit(cursor) + if ready: + unit = min(ready, key=lambda item: (item.priority, item.order)) + ready.remove(unit) + else: + if active is None and pending_frames: + active = pending_frames.pop(0) + active_index = 0 + if active is None: + continue + unit = active.packets[active_index] + start = max(cursor, unit.available_seconds) + end = start + unit.size * 8.0 / (rate_kbps * 1000.0) + if start < previous_end - EPSILON: + negative_time_order += 1 + previous_end = end + lost = packet_is_lost(start, end, bad_starts, bad_ends) + cursor = end + admit(cursor) + if unit.kind == "control" and not lost: + sequence = unit.packet.sequence_number + if sequence > last_received_sequence: + last_received_sequence = sequence + command_receives.append((end, sequence)) + elif unit.kind == "emergency": + emergency_tx += 1 + if lost: + emergency_lost += 1 + else: + if emergency_first is None: + emergency_first = end + else: + emergency_duplicates += 1 + ack_packet = build_emergency_ack(unit.packet, ack_sequence, int(round(end * 1_000_000.0))) + ack_sequence += 1 + ack_generated += 1 + ready.append( + Unit( + ack_packet, + encode_link_packet(ack_packet), + int(round(end * 1_000_000.0)), + dynamic_order, + 2, + "ack", + copy_index=ack_generated - 1, + event_id=1, + ) + ) + dynamic_order += 1 + elif unit.kind == "ack": + if lost: + ack_lost += 1 + elif ack_receiver.accept(unit.packet): + emergency_acknowledged = True + ack_first = end + remove_ready(lambda old: old.kind == "emergency") + elif unit.kind == "video": + active_index += 1 + if active is not None and active_index == len(active.packets): + active = None + active_index = 0 + emergency = None + if include_emergency: + emergency = EmergencyTransport( + emergency_first is not None, + emergency_first, + emergency_tx, + emergency_lost, + emergency_duplicates, + ack_first, + ack_lost, + max(0, ack_generated - 1), + ) + return TransportTrace(tuple(command_receives), emergency, negative_time_order) + + +def build_trace_sets(workload: Workload) -> tuple[dict[str, tuple[TransportTrace, ...]], dict[str, tuple[TransportTrace, ...]]]: + watchdog: dict[str, tuple[TransportTrace, ...]] = {} + emergency: dict[str, tuple[TransportTrace, ...]] = {} + for condition_index, condition in enumerate(CHANNEL_CONDITIONS): + watchdog_rows = [] + emergency_rows = [] + for repetition in range(condition.repetitions): + if condition.mean_bad_ms is None: + starts = ends = np.asarray([], dtype=float) + else: + seed = LAB039_SEED_OFFSET + MASTER_SEED + condition_index * 10_000 + repetition + starts, ends = bad_intervals(DURATION_SECONDS + 2.0, condition.mean_bad_ms, seed) + watchdog_rows.append( + build_transport_trace( + workload, + condition.rate_kbps, + starts, + ends, + include_emergency=False, + ) + ) + emergency_rows.append( + build_transport_trace( + workload, + condition.rate_kbps, + starts, + ends, + include_emergency=True, + ) + ) + watchdog[condition.name] = tuple(watchdog_rows) + emergency[condition.name] = tuple(emergency_rows) + print(f"traces={condition.name} repetitions={condition.repetitions}") + return watchdog, emergency + + +def simulate_motion( + trace: TransportTrace, + policy: ThresholdPolicy, + initial_speed_mps: float, + profile: DecelerationProfile, + *, + emergency_receive_seconds: float | None = None, + emergency_formation_seconds: float | None = None, +) -> MotionTrial: + fsm = TwoStageFailsafe( + policy, + profile, + resume_acceleration_mps2=RESUME_ACCELERATION_MPS2, + ) + receives = tuple((time, sequence) for time, sequence in trace.command_receives if time <= DURATION_SECONDS + EPSILON) + receive_index = 0 + current = 0.0 + speed = initial_speed_mps + distance = 0.0 + target_speed = initial_speed_mps + last_fresh_distance = 0.0 + last_fresh_speed = initial_speed_mps + active: ActiveEvent | None = None + protection_events: list[ProtectionEvent] = [] + state_time = {state: 0.0 for state in SafetyState} + zero_speed_time = 0.0 + stage1_transitions = stage2_transitions = full_stops = 0 + negative_speed_cases = target_exceeded_cases = 0 + resume_start: float | None = None + resume_durations: list[float] = [] + short_reductions: list[float] = [] + short_outage_full_stops = 0 + stale_release_cases = ordinary_emergency_release_cases = 0 + emergency_formation_done = emergency_receive_done = False + emergency_formation_distance = emergency_formation_speed = 0.0 + emergency_receive_distance = emergency_receive_speed = 0.0 + first_zero_after_formation_time: float | None = None + first_zero_after_formation_distance: float | None = None + + def finalize_active(end_time: float, recovered: bool) -> None: + nonlocal active, short_outage_full_stops + if active is None: + return + reached_stage2 = active.second_time is not None + second_speed = active.second_speed if active.second_speed is not None else speed + second_distance = active.second_distance if active.second_distance is not None else distance + full_stop = active.stop_time is not None and active.stop_distance is not None + braking_distance = ( + max(0.0, active.stop_distance - second_distance) + if full_stop and active.stop_distance is not None + else 0.0 + ) + total_stop_distance = ( + max(0.0, active.stop_distance - active.last_fresh_distance) + if full_stop and active.stop_distance is not None + else 0.0 + ) + time_to_stop = ( + active.stop_time - active.last_fresh_time + if full_stop and active.stop_time is not None + else 0.0 + ) + gap = max(0.0, end_time - active.last_fresh_time) + protection_events.append( + ProtectionEvent( + gap, + active.last_fresh_speed, + active.first_speed, + second_speed, + max(0.0, active.first_distance - active.last_fresh_distance), + max(0.0, second_distance - active.first_distance), + braking_distance, + total_stop_distance, + time_to_stop, + active.min_speed, + full_stop, + recovered and not full_stop, + reached_stage2, + ) + ) + if recovered and not reached_stage2: + short_reductions.append(max(0.0, active.last_fresh_speed - active.min_speed)) + if full_stop and gap < 0.5 - EPSILON: + short_outage_full_stops += 1 + active = None + + while current < DURATION_SECONDS - EPSILON: + candidates: list[tuple[float, int, str]] = [ + (DURATION_SECONDS, EVENT_PRIORITY["end"], "end") + ] + if receive_index < len(receives): + candidates.append( + (receives[receive_index][0], EVENT_PRIORITY["receive"], "receive") + ) + if emergency_formation_seconds is not None and not emergency_formation_done: + candidates.append( + ( + emergency_formation_seconds, + EVENT_PRIORITY["emergency_formation"], + "emergency_formation", + ) + ) + if emergency_receive_seconds is not None and not emergency_receive_done: + candidates.append( + ( + emergency_receive_seconds, + EVENT_PRIORITY["emergency_receive"], + "emergency_receive", + ) + ) + if fsm.state is SafetyState.NORMAL: + if policy.stage1_seconds is not None: + first_time = fsm.last_fresh_time_seconds + policy.stage1_seconds + if first_time > current + EPSILON: + candidates.append((first_time, EVENT_PRIORITY["stage1"], "stage1")) + second_time = fsm.last_fresh_time_seconds + policy.stage2_seconds + if second_time > current + EPSILON: + candidates.append((second_time, EVENT_PRIORITY["stage2"], "stage2")) + elif fsm.state is SafetyState.STAGE1_DECELERATION: + second_time = fsm.last_fresh_time_seconds + policy.stage2_seconds + if second_time > current + EPSILON: + candidates.append((second_time, EVENT_PRIORITY["stage2"], "stage2")) + next_time, _, event_type = min(candidates, key=lambda item: (item[0], item[1])) + if next_time < current - EPSILON: + raise AssertionError("motion event time moved backwards") + duration = max(0.0, next_time - current) + state_before = fsm.state + acceleration = fsm.acceleration_mps2(speed, target_speed) + step = integrate_kinematics( + speed, + acceleration, + duration, + target_speed_mps=target_speed if acceleration > 0.0 else None, + ) + state_time[state_before] += duration + if speed <= EPSILON: + zero_speed_time += duration + elif step.zero_after_seconds is not None: + zero_speed_time += max(0.0, duration - step.zero_after_seconds) + if active is not None: + active.min_speed = min(active.min_speed, step.final_speed_mps) + if step.zero_after_seconds is not None and active.stop_time is None: + active.stop_time = current + step.zero_after_seconds + active.stop_distance = distance + step.distance_m + full_stops += 1 + if emergency_formation_done and first_zero_after_formation_time is None: + if speed <= EPSILON: + first_zero_after_formation_time = current + first_zero_after_formation_distance = distance + elif step.zero_after_seconds is not None: + first_zero_after_formation_time = current + step.zero_after_seconds + first_zero_after_formation_distance = distance + step.distance_m + if resume_start is not None and step.target_after_seconds is not None: + resume_durations.append(current + step.target_after_seconds - resume_start) + resume_start = None + distance += step.distance_m + speed = step.final_speed_mps + current = next_time + negative_speed_cases += int(speed < -EPSILON) + target_exceeded_cases += int(speed > target_speed + 1e-9) + + if event_type == "end": + break + if event_type == "emergency_formation": + emergency_formation_done = True + emergency_formation_distance = distance + emergency_formation_speed = speed + continue + if event_type == "emergency_receive": + emergency_receive_done = True + finalize_active(current, False) + fsm.receive_emergency(STREAM_EMERGENCY, 1) + emergency_receive_distance = distance + emergency_receive_speed = speed + resume_start = None + continue + if event_type == "receive": + receive_time, sequence = receives[receive_index] + receive_index += 1 + if fsm.state is not SafetyState.EMERGENCY_LATCHED: + finalize_active(receive_time, True) + was_safe = fsm.state is not SafetyState.NORMAL + state_before_receive = fsm.state + accepted = fsm.receive_command(sequence, receive_time) + if not accepted and state_before_receive is not SafetyState.NORMAL and fsm.state is not state_before_receive: + stale_release_cases += 1 + if state_before_receive is SafetyState.EMERGENCY_LATCHED and fsm.state is not SafetyState.EMERGENCY_LATCHED: + ordinary_emergency_release_cases += 1 + if accepted: + last_fresh_distance = distance + last_fresh_speed = speed + if was_safe and fsm.state is SafetyState.NORMAL and speed < target_speed - EPSILON: + resume_start = current + continue + if event_type == "stage1": + fsm.apply_watchdog(current) + if fsm.state is not SafetyState.STAGE1_DECELERATION: + raise AssertionError("first threshold did not enter stage1") + stage1_transitions += 1 + resume_start = None + active = ActiveEvent( + fsm.last_fresh_time_seconds, + last_fresh_speed, + last_fresh_distance, + current, + speed, + distance, + min_speed=speed, + ) + continue + if event_type == "stage2": + fsm.apply_watchdog(current) + if fsm.state is not SafetyState.STAGE2_BRAKING: + raise AssertionError("second threshold did not enter braking") + stage2_transitions += 1 + resume_start = None + if active is None: + active = ActiveEvent( + fsm.last_fresh_time_seconds, + last_fresh_speed, + last_fresh_distance, + current, + speed, + distance, + min_speed=speed, + ) + active.second_time = current + active.second_speed = speed + active.second_distance = distance + + finalize_active(DURATION_SECONDS, False) + times = [0.0, *[time for time, _ in receives], DURATION_SECONDS] + gaps = [max(0.0, right - left) for left, right in zip(times, times[1:])] + first_threshold = policy.stage1_seconds if policy.stage1_seconds is not None else policy.stage2_seconds + communication_gaps = sum(gap > 0.050001 for gap in gaps) + # A fresh command received exactly on a threshold wins the event tie and + # prevents a watchdog transition. Therefore communication gaps are + # classified with strict threshold exceedance, matching the task wording. + gaps_over_first = sum(gap > first_threshold + EPSILON for gap in gaps) + gaps_over_second = sum(gap > policy.stage2_seconds + EPSILON for gap in gaps) + recovered_before_first = sum(0.050001 < gap <= first_threshold + EPSILON for gap in gaps[:-1]) + recovered_between = sum( + first_threshold + EPSILON < gap <= policy.stage2_seconds + EPSILON for gap in gaps[:-1] + ) + recovered_after = sum(gap > policy.stage2_seconds + EPSILON for gap in gaps[:-1]) + emergency_motion = None + if emergency_formation_seconds is not None: + zero_time = first_zero_after_formation_time + zero_distance = first_zero_after_formation_distance + delivered = emergency_receive_seconds is not None + path_delivery = ( + max(0.0, emergency_receive_distance - emergency_formation_distance) + if delivered + else 0.0 + ) + braking_distance = ( + max(0.0, zero_distance - emergency_receive_distance) + if delivered and zero_distance is not None + else 0.0 + ) + total_path = ( + max(0.0, zero_distance - emergency_formation_distance) + if zero_distance is not None + else 0.0 + ) + emergency_motion = EmergencyMotion( + path_delivery, + emergency_receive_speed if delivered else emergency_formation_speed, + braking_distance, + total_path, + zero_time - emergency_formation_seconds if zero_time is not None else 0.0, + not delivered and zero_time is not None, + ) + return MotionTrial( + communication_gaps, + gaps_over_first, + gaps_over_second, + stage1_transitions, + stage2_transitions, + recovered_before_first, + recovered_between, + recovered_after, + max(gaps, default=0.0) * 1000.0, + tuple(protection_events), + state_time[SafetyState.STAGE1_DECELERATION] / DURATION_SECONDS, + state_time[SafetyState.STAGE2_BRAKING] / DURATION_SECONDS, + zero_speed_time / DURATION_SECONDS, + stage1_transitions / (DURATION_SECONDS / 60.0), + stage2_transitions / (DURATION_SECONDS / 60.0), + full_stops / (DURATION_SECONDS / 60.0), + _mean(short_reductions), + _mean(resume_durations), + short_outage_full_stops, + negative_speed_cases, + target_exceeded_cases, + max(0, gaps_over_second - stage2_transitions), + stale_release_cases, + ordinary_emergency_release_cases, + emergency_motion, + ) + + +def aggregate_motion_combination( + condition: ChannelCondition, + policy: ThresholdPolicy, + speed_kmh: float, + profile: DecelerationProfile, + trials: tuple[MotionTrial, ...], +) -> tuple[SummaryMetrics, WatchdogMetrics, DistanceMetrics]: + events = tuple(event for trial in trials for event in trial.events) + stopped = tuple(event for event in events if event.full_stop) + total_paths = tuple(event.total_distance_to_stop_m for event in stopped) + first_paths = tuple(event.distance_to_first_threshold_m for event in events) + between_paths = tuple(event.distance_between_thresholds_m for event in events) + second_paths = tuple( + event.distance_to_first_threshold_m + event.distance_between_thresholds_m for event in events + ) + braking_paths = tuple(event.braking_distance_m for event in stopped) + stop_times = tuple(event.time_to_stop_seconds for event in stopped) + speeds_last = tuple(event.speed_last_fresh_mps for event in events) + speeds_first = tuple(event.speed_first_threshold_mps for event in events) + speeds_second = tuple(event.speed_second_threshold_mps for event in events) + minimum_speeds = tuple(event.minimum_speed_mps for event in events) + summary = SummaryMetrics( + condition.name, + policy.name, + speed_kmh, + profile.name, + len(trials), + _mean(trial.preliminary_reactions_per_minute for trial in trials), + _mean(trial.mandatory_brakings_per_minute for trial in trials), + _mean(trial.full_stops_per_minute for trial in trials), + _mean(total_paths), + percentile(total_paths, 95), + max(total_paths, default=0.0), + max(trial.max_command_gap_ms for trial in trials), + _mean(trial.stage1_time_fraction for trial in trials), + _mean(trial.stage2_time_fraction for trial in trials), + _mean(trial.zero_speed_fraction for trial in trials), + sum(trial.negative_speed_cases for trial in trials), + sum(trial.target_speed_exceeded_cases for trial in trials), + sum(trial.missed_stage2_cases for trial in trials), + sum(trial.stale_release_cases for trial in trials), + sum(trial.ordinary_emergency_release_cases for trial in trials), + ) + watchdog = WatchdogMetrics( + condition.name, + policy.name, + speed_kmh, + profile.name, + len(trials), + _mean(trial.communication_gaps for trial in trials), + _mean(trial.gaps_over_first for trial in trials), + _mean(trial.gaps_over_second for trial in trials), + _mean(trial.stage1_transitions for trial in trials), + _mean(trial.stage2_transitions for trial in trials), + _mean(trial.recovered_before_first for trial in trials), + _mean(trial.recovered_between_thresholds for trial in trials), + _mean(trial.recovered_after_second for trial in trials), + max(trial.max_command_gap_ms for trial in trials), + summary.preliminary_reactions_per_minute, + summary.mandatory_brakings_per_minute, + summary.full_stops_per_minute, + summary.stage1_time_fraction, + summary.stage2_time_fraction, + summary.zero_speed_fraction, + _mean(trial.mean_short_speed_reduction_mps for trial in trials), + _mean(trial.mean_resume_time_seconds for trial in trials), + _mean(trial.short_outage_full_stops for trial in trials), + ) + distance = DistanceMetrics( + channel_condition=condition.name, + policy=policy.name, + initial_speed_kmh=speed_kmh, + deceleration_profile=profile.name, + event_count=len(events), + mean_speed_last_fresh_mps=_mean(speeds_last), + p95_speed_last_fresh_mps=percentile(speeds_last, 95), + max_speed_last_fresh_mps=max(speeds_last, default=0.0), + mean_speed_first_threshold_mps=_mean(speeds_first), + p95_speed_first_threshold_mps=percentile(speeds_first, 95), + max_speed_first_threshold_mps=max(speeds_first, default=0.0), + mean_speed_second_threshold_mps=_mean(speeds_second), + p95_speed_second_threshold_mps=percentile(speeds_second, 95), + max_speed_second_threshold_mps=max(speeds_second, default=0.0), + mean_distance_to_first_m=_mean(first_paths), + p95_distance_to_first_m=percentile(first_paths, 95), + max_distance_to_first_m=max(first_paths, default=0.0), + mean_distance_between_m=_mean(between_paths), + p95_distance_between_m=percentile(between_paths, 95), + max_distance_between_m=max(between_paths, default=0.0), + mean_distance_to_second_m=_mean(second_paths), + p95_distance_to_second_m=percentile(second_paths, 95), + max_distance_to_second_m=max(second_paths, default=0.0), + mean_braking_distance_m=_mean(braking_paths), + p95_braking_distance_m=percentile(braking_paths, 95), + max_braking_distance_m=max(braking_paths, default=0.0), + mean_total_stop_path_m=_mean(total_paths), + p95_total_stop_path_m=percentile(total_paths, 95), + max_total_stop_path_m=max(total_paths, default=0.0), + mean_time_to_stop_seconds=_mean(stop_times), + p95_time_to_stop_seconds=percentile(stop_times, 95), + max_time_to_stop_seconds=max(stop_times, default=0.0), + mean_minimum_speed_mps=_mean(minimum_speeds), + p95_minimum_speed_mps=percentile(minimum_speeds, 95), + max_minimum_speed_mps=max(minimum_speeds, default=0.0), + full_stop_fraction=len(stopped) / len(events) if events else 0.0, + recovery_before_stop_fraction=( + sum(event.recovered_before_stop for event in events) / len(events) if events else 0.0 + ), + ) + return summary, watchdog, distance + + +def aggregate_emergency_combination( + condition: ChannelCondition, + speed_kmh: float, + profile: DecelerationProfile, + traces: tuple[TransportTrace, ...], +) -> EmergencyStopMetrics: + motion_trials = [] + for trace in traces: + assert trace.emergency is not None + motion_trials.append( + simulate_motion( + trace, + POLICIES[2], + speed_kmh_to_mps(speed_kmh), + profile, + emergency_receive_seconds=trace.emergency.first_receive_seconds, + emergency_formation_seconds=EMERGENCY_TIME_SECONDS, + ) + ) + motions = tuple(trial.emergency_motion for trial in motion_trials) + assert all(motion is not None for motion in motions) + typed_motions = tuple(motion for motion in motions if motion is not None) + delivered_indices = tuple(index for index, trace in enumerate(traces) if trace.emergency and trace.emergency.delivered) + delivery_delays = tuple( + (traces[index].emergency.first_receive_seconds - EMERGENCY_TIME_SECONDS) * 1000.0 + for index in delivered_indices + if traces[index].emergency and traces[index].emergency.first_receive_seconds is not None + ) + delivered_motions = tuple(typed_motions[index] for index in delivered_indices) + ack_delays = tuple( + (trace.emergency.first_ack_seconds - EMERGENCY_TIME_SECONDS) * 1000.0 + for trace in traces + if trace.emergency and trace.emergency.first_ack_seconds is not None + ) + undelivered = tuple(index for index in range(len(traces)) if index not in delivered_indices) + total_paths = tuple(motion.total_path_m for motion in delivered_motions) + return EmergencyStopMetrics( + condition.name, + speed_kmh, + profile.name, + len(traces), + len(delivered_indices) / len(traces), + _mean(delivery_delays), + percentile(delivery_delays, 95), + max(delivery_delays, default=0.0), + _mean(motion.path_during_delivery_m for motion in delivered_motions), + _mean(motion.speed_at_receive_mps for motion in delivered_motions), + _mean(motion.braking_distance_m for motion in delivered_motions), + _mean(total_paths), + percentile(total_paths, 95), + max(total_paths, default=0.0), + _mean(motion.time_to_stop_seconds for motion in delivered_motions), + _mean(trace.emergency.copies_transmitted for trace in traces if trace.emergency), + _mean(trace.emergency.copies_lost for trace in traces if trace.emergency), + _mean(ack_delays), + _mean(trace.emergency.acknowledgements_lost for trace in traces if trace.emergency), + len(undelivered), + ( + sum(motion_trials[index].stage2_transitions > 0 for index in undelivered) / len(undelivered) + if undelivered + else 0.0 + ), + ( + sum(typed_motions[index].local_watchdog_stop for index in undelivered) / len(undelivered) + if undelivered + else 0.0 + ), + _mean(typed_motions[index].total_path_m for index in undelivered if typed_motions[index].local_watchdog_stop), + _mean( + typed_motions[index].time_to_stop_seconds + for index in undelivered + if typed_motions[index].local_watchdog_stop + ), + ) + + +def analytic_checks() -> tuple[AnalyticCheck, ...]: + rows = [] + single_policy = POLICIES[0] + two_policy = POLICIES[2] + for speed_kmh in SPEEDS_KMH: + speed = speed_kmh_to_mps(speed_kmh) + for profile in PROFILES: + single_model = forced_stop(speed, single_policy, profile) + single_reaction = speed * single_policy.stage2_seconds + single_braking = speed * speed / (2.0 * profile.stage2_mps2) + single_total = single_reaction + single_braking + two_model = forced_stop(speed, two_policy, profile) + assert two_policy.stage1_seconds is not None + stage1_duration = two_policy.stage2_seconds - two_policy.stage1_seconds + time_to_stage1_stop = speed / profile.stage1_mps2 + moving_stage1 = min(stage1_duration, time_to_stage1_stop) + two_reaction = speed * two_policy.stage1_seconds + two_deceleration = speed * moving_stage1 - 0.5 * profile.stage1_mps2 * moving_stage1 * moving_stage1 + speed_at_second = max(0.0, speed - profile.stage1_mps2 * stage1_duration) + two_braking = speed_at_second * speed_at_second / (2.0 * profile.stage2_mps2) + two_total = two_reaction + two_deceleration + two_braking + error = max(abs(single_total - single_model.total_distance_m), abs(two_total - two_model.total_distance_m)) + rows.append( + AnalyticCheck( + speed_kmh, + profile.name, + single_reaction, + single_braking, + single_total, + single_model.total_distance_m, + two_reaction, + two_deceleration, + two_braking, + two_total, + two_model.total_distance_m, + two_total - single_total, + error, + ) + ) + return tuple(rows) + + +def run_experiment( + workload: Workload, +) -> tuple[ + tuple[SummaryMetrics, ...], + tuple[WatchdogMetrics, ...], + tuple[DistanceMetrics, ...], + tuple[EmergencyStopMetrics, ...], + tuple[AnalyticCheck, ...], + dict[str, tuple[TransportTrace, ...]], + dict[str, tuple[TransportTrace, ...]], +]: + watchdog_traces, emergency_traces = build_trace_sets(workload) + summaries: list[SummaryMetrics] = [] + watchdog_rows: list[WatchdogMetrics] = [] + distance_rows: list[DistanceMetrics] = [] + for condition in CHANNEL_CONDITIONS: + traces = watchdog_traces[condition.name] + for policy in POLICIES: + for speed_kmh in SPEEDS_KMH: + speed = speed_kmh_to_mps(speed_kmh) + for profile in PROFILES: + trials = tuple(simulate_motion(trace, policy, speed, profile) for trace in traces) + aggregate = aggregate_motion_combination(condition, policy, speed_kmh, profile, trials) + summaries.append(aggregate[0]) + watchdog_rows.append(aggregate[1]) + distance_rows.append(aggregate[2]) + print(f"motion={condition.name} combinations=36") + emergency_rows = [] + for condition in CHANNEL_CONDITIONS: + for speed_kmh in SPEEDS_KMH: + for profile in PROFILES: + emergency_rows.append( + aggregate_emergency_combination( + condition, + speed_kmh, + profile, + emergency_traces[condition.name], + ) + ) + print(f"emergency={condition.name} combinations=9") + return ( + tuple(summaries), + tuple(watchdog_rows), + tuple(distance_rows), + tuple(emergency_rows), + analytic_checks(), + watchdog_traces, + emergency_traces, + ) + + +def run_functional_tests( + workload: Workload, + watchdog_traces: dict[str, tuple[TransportTrace, ...]], + emergency_traces: dict[str, tuple[TransportTrace, ...]], +) -> tuple[FunctionalTestResult, ...]: + results: list[FunctionalTestResult] = [] + policy = POLICIES[2] + profile = PROFILES[1] + + def check(name: str, function) -> None: + try: + detail = function() or "ok" + results.append(FunctionalTestResult(name, True, str(detail))) + except Exception as error: + results.append(FunctionalTestResult(name, False, f"{type(error).__name__}: {error}")) + + def fresh_updates() -> str: + fsm = TwoStageFailsafe(policy, profile) + assert fsm.receive_command(1, 0.05) + assert fsm.last_fresh_time_seconds == 0.05 + return "fresh sequence updates timer" + + def old_does_not_update() -> str: + fsm = TwoStageFailsafe(policy, profile) + fsm.receive_command(2, 0.05) + assert not fsm.receive_command(1, 0.10) + assert fsm.last_fresh_time_seconds == 0.05 + return "old sequence ignored" + + def duplicate_does_not_update() -> str: + fsm = TwoStageFailsafe(policy, profile) + fsm.receive_command(2, 0.05) + assert not fsm.receive_command(2, 0.10) + assert fsm.last_fresh_time_seconds == 0.05 + return "equal sequence ignored" + + def first_enters_stage1() -> str: + fsm = TwoStageFailsafe(policy, profile) + assert fsm.apply_watchdog(0.15) is SafetyState.STAGE1_DECELERATION + return "150 ms enters preliminary deceleration" + + def second_enters_stage2() -> str: + fsm = TwoStageFailsafe(policy, profile) + assert fsm.apply_watchdog(0.25) is SafetyState.STAGE2_BRAKING + return "250 ms enters mandatory braking" + + def single_skips_stage1() -> str: + fsm = TwoStageFailsafe(POLICIES[0], profile) + assert fsm.apply_watchdog(0.249) is SafetyState.NORMAL + assert fsm.apply_watchdog(0.250) is SafetyState.STAGE2_BRAKING + return "single threshold goes directly to stage2" + + def stage1_forbids_acceleration() -> str: + fsm = TwoStageFailsafe(policy, profile) + fsm.apply_watchdog(0.15) + assert fsm.acceleration_mps2(3.0, 5.0) <= 0.0 + return "stage1 acceleration is non-positive" + + def stage2_targets_stop() -> str: + fsm = TwoStageFailsafe(policy, profile) + fsm.apply_watchdog(0.25) + assert fsm.state is SafetyState.STAGE2_BRAKING + assert fsm.acceleration_mps2(3.0, 5.0) == -profile.stage2_mps2 + return "stage2 applies mandatory braking to zero" + + def speed_never_negative() -> str: + step = integrate_kinematics(1.0, -4.0, 5.0) + assert step.final_speed_mps == 0.0 + return "braking is clipped at zero" + + def constant_acceleration_formula() -> str: + step = integrate_kinematics(2.0, 1.0, 3.0) + assert abs(step.final_speed_mps - 5.0) < 1e-12 + assert abs(step.distance_m - 10.5) < 1e-12 + return "v and s match analytic formula" + + def zero_inside_interval() -> str: + step = integrate_kinematics(2.0, -4.0, 3.0) + assert abs(step.distance_m - 0.5) < 1e-12 + assert abs(step.zero_after_seconds - 0.5) < 1e-12 + return "internal stop time integrated exactly" + + def new_releases_temporary() -> str: + fsm = TwoStageFailsafe(policy, profile) + fsm.apply_watchdog(0.15) + assert fsm.receive_command(1, 0.16) + assert fsm.state is SafetyState.NORMAL + return "fresh command releases temporary state" + + def old_does_not_release() -> str: + fsm = TwoStageFailsafe(policy, profile) + fsm.receive_command(2, 0.01) + fsm.apply_watchdog(0.16) + assert not fsm.receive_command(1, 0.17) + assert fsm.state is SafetyState.STAGE1_DECELERATION + return "old command cannot release stage1" + + def emergency_latches() -> str: + fsm = TwoStageFailsafe(policy, profile) + assert fsm.receive_emergency(STREAM_EMERGENCY, 1) + assert fsm.state is SafetyState.EMERGENCY_LATCHED + return "first emergency latches state" + + def normal_does_not_release_emergency() -> str: + fsm = TwoStageFailsafe(policy, profile) + fsm.receive_emergency(STREAM_EMERGENCY, 1) + fsm.receive_command(1, 0.1) + assert fsm.state is SafetyState.EMERGENCY_LATCHED + return "ordinary command cannot unlatch emergency" + + def ack_not_required_to_brake() -> str: + fsm = TwoStageFailsafe(policy, profile) + fsm.receive_emergency(STREAM_EMERGENCY, 1) + assert fsm.acceleration_mps2(2.0, 4.0) == -profile.stage2_mps2 + return "braking starts before any ACK" + + def lost_ack_continues() -> str: + bad_starts = np.asarray([60.0018]) + bad_ends = np.asarray([60.0100]) + + def controlled_trace() -> TransportTrace: + return build_transport_trace( + workload, + 300.0, + bad_starts, + bad_ends, + include_emergency=True, + ) + + controlled = controlled_trace() + assert controlled.emergency is not None + assert controlled.emergency.acknowledgements_lost == 1 + assert controlled.emergency.copies_transmitted == 2 + assert controlled.emergency.first_ack_seconds is not None + assert controlled == controlled_trace() + return "controlled first ACK loss deterministically causes exactly one later copy" + + def received_ack_stops() -> str: + events = [trace.emergency for traces in emergency_traces.values() for trace in traces if trace.emergency] + assert any(event.first_ack_seconds is not None and event.copies_transmitted < len(EMERGENCY_SPREAD_US) for event in events) + return "received ACK stops future copies" + + def stage2_not_missed() -> str: + trial = simulate_motion(TransportTrace((), None, 0), policy, speed_kmh_to_mps(25.0), profile) + assert trial.missed_stage2_cases == 0 and trial.stage2_transitions == 1 + return "second threshold always enters braking" + + def reproducible() -> str: + left = bad_intervals(122.0, 200.0, LAB039_SEED_OFFSET + MASTER_SEED) + right = bad_intervals(122.0, 200.0, LAB039_SEED_OFFSET + MASTER_SEED) + assert np.array_equal(left[0], right[0]) and np.array_equal(left[1], right[1]) + return "identical seed gives identical intervals" + + def fresh_at_first_threshold_wins() -> str: + assert policy.stage1_seconds is not None + assert EVENT_PRIORITY["receive"] < EVENT_PRIORITY["stage1"] + trial = simulate_motion( + TransportTrace(((policy.stage1_seconds, 1),), None, 0), + policy, + speed_kmh_to_mps(25.0), + profile, + ) + assert trial.stage1_transitions == 1 + assert trial.stage2_transitions == 1 + assert len(trial.events) == 1 + assert abs( + trial.events[0].distance_to_first_threshold_m + - speed_kmh_to_mps(25.0) * policy.stage1_seconds + ) < 1e-12 + return "fresh command at stage1 time is received before the threshold" + + def fresh_at_second_threshold_wins() -> str: + assert EVENT_PRIORITY["receive"] < EVENT_PRIORITY["stage2"] + trial = simulate_motion( + TransportTrace(((policy.stage2_seconds, 1),), None, 0), + policy, + speed_kmh_to_mps(25.0), + profile, + ) + assert trial.stage1_transitions == 2 + assert trial.stage2_transitions == 1 + assert len(trial.events) == 2 + first_event = trial.events[0] + assert abs(first_event.gap_seconds - policy.stage2_seconds) < 1e-12 + assert first_event.recovered_before_stop + assert not first_event.reached_stage2 + return "fresh command at stage2 time is received before mandatory braking" + + checks = ( + ("01_fresh_command_updates_watchdog", fresh_updates), + ("02_old_command_does_not_update_watchdog", old_does_not_update), + ("03_duplicate_does_not_update_watchdog", duplicate_does_not_update), + ("04_first_threshold_enters_stage1", first_enters_stage1), + ("05_second_threshold_enters_stage2", second_enters_stage2), + ("06_single_threshold_skips_stage1", single_skips_stage1), + ("07_stage1_forbids_positive_acceleration", stage1_forbids_acceleration), + ("08_stage2_commands_zero_speed", stage2_targets_stop), + ("09_speed_never_negative", speed_never_negative), + ("10_constant_acceleration_matches_formula", constant_acceleration_formula), + ("11_internal_zero_crossing_is_exact", zero_inside_interval), + ("12_new_command_releases_temporary_state", new_releases_temporary), + ("13_old_command_does_not_release_state", old_does_not_release), + ("14_emergency_enters_latched_state", emergency_latches), + ("15_normal_command_does_not_unlatch", normal_does_not_release_emergency), + ("16_ack_not_required_for_braking", ack_not_required_to_brake), + ("17_lost_ack_continues_repetition", lost_ack_continues), + ("18_received_ack_stops_future_copies", received_ack_stops), + ("19_stage2_threshold_never_missed", stage2_not_missed), + ("20_fixed_seed_reproducibility", reproducible), + ("21_fresh_command_wins_first_threshold_tie", fresh_at_first_threshold_wins), + ("22_fresh_command_wins_second_threshold_tie", fresh_at_second_threshold_wins), + ) + for name, function in checks: + check(name, function) + return tuple(results) + + +def _write_csv(path: Path, row_type: type, rows: Iterable[object]) -> None: + with path.open("w", newline="", encoding="utf-8") as file: + writer = csv.DictWriter(file, fieldnames=tuple(row_type.__dataclass_fields__)) + writer.writeheader() + writer.writerows(asdict(row) for row in rows) + + +def save_plots( + summaries: tuple[SummaryMetrics, ...], + watchdog: tuple[WatchdogMetrics, ...], + distances: tuple[DistanceMetrics, ...], + emergencies: tuple[EmergencyStopMetrics, ...], + analytics: tuple[AnalyticCheck, ...], +) -> None: + policy_colors = { + "single_250": "#777777", + "two_100_200": "#d95f02", + "two_150_250": "#1b9e77", + "two_200_300": "#2878b5", + } + profile_colors = {"soft": "#e67e22", "nominal": "#2878b5", "intensive": "#2a9d55"} + + figure, axis = plt.subplots(figsize=(8, 5)) + for profile in PROFILES: + rows = [row for row in analytics if row.deceleration_profile == profile.name] + axis.plot( + [row.initial_speed_kmh for row in rows], + [row.two_stage_total_model_m for row in rows], + marker="o", + color=profile_colors[profile.name], + label=PROFILE_LABELS[profile.name], + ) + axis.set_xlabel("Начальная скорость, км/ч") + axis.set_ylabel("Полный путь до остановки, м") + axis.set_title("Полный путь при политике 150/250 мс") + axis.grid(True, alpha=0.3) + axis.legend() + figure.tight_layout() + figure.savefig(PATH_SPEED_PLOT, dpi=150) + plt.close(figure) + + figure, axis = plt.subplots(figsize=(9, 5)) + selected = [ + row for row in summaries + if row.channel_condition == "230_1000" + and row.initial_speed_kmh == 25.0 + and row.deceleration_profile == "nominal" + ] + axis.bar( + [POLICY_LABELS[row.policy] for row in selected], + [row.max_total_stop_path_m for row in selected], + color=[policy_colors[row.policy] for row in selected], + ) + axis.set_ylabel("Максимальный путь до остановки, м") + axis.set_title("Сравнение политик: 230 кбит/с, помеха 1000 мс") + axis.tick_params(axis="x", rotation=15) + axis.grid(True, axis="y", alpha=0.3) + figure.tight_layout() + figure.savefig(POLICY_PLOT, dpi=150) + plt.close(figure) + + figure, axis = plt.subplots(figsize=(8, 5)) + rows = [row for row in analytics if row.initial_speed_kmh == 25.0] + x = np.arange(len(PROFILES)) + axis.bar( + x - 0.18, + [next(row.single_total_model_m for row in rows if row.deceleration_profile == profile.name) for profile in PROFILES], + width=0.36, + label="Один порог 250 мс", + ) + axis.bar( + x + 0.18, + [next(row.two_stage_total_model_m for row in rows if row.deceleration_profile == profile.name) for profile in PROFILES], + width=0.36, + label="Два порога 150/250 мс", + ) + axis.set_xticks(x, [PROFILE_LABELS[profile.name] for profile in PROFILES]) + axis.set_ylabel("Полный путь, м") + axis.set_title("Влияние доступного замедления при 25 км/ч") + axis.grid(True, axis="y", alpha=0.3) + axis.legend() + figure.tight_layout() + figure.savefig(PROFILE_PLOT, dpi=150) + plt.close(figure) + + figure, axis = plt.subplots(figsize=(9, 5)) + selected = [ + row for row in watchdog + if row.channel_condition == "260_200" + and row.initial_speed_kmh == 25.0 + and row.deceleration_profile == "nominal" + ] + x = np.arange(len(selected)) + axis.bar(x - 0.18, [row.preliminary_reactions_per_minute for row in selected], width=0.36, label="Предварительные реакции") + axis.bar(x + 0.18, [row.mandatory_brakings_per_minute for row in selected], width=0.36, label="Обязательные торможения") + axis.set_xticks(x, [POLICY_LABELS[row.policy] for row in selected], rotation=15) + axis.set_ylabel("Событий в минуту") + axis.set_title("Частота защитных реакций") + axis.grid(True, axis="y", alpha=0.3) + axis.legend() + figure.tight_layout() + figure.savefig(REACTION_PLOT, dpi=150) + plt.close(figure) + + figure, axis = plt.subplots(figsize=(9, 5)) + x = np.arange(len(selected)) + axis.bar(x, [row.stage1_time_fraction * 100.0 for row in selected], label="Предварительное замедление") + axis.bar( + x, + [row.stage2_time_fraction * 100.0 for row in selected], + bottom=[row.stage1_time_fraction * 100.0 for row in selected], + label="Обязательное торможение", + ) + axis.set_xticks(x, [POLICY_LABELS[row.policy] for row in selected], rotation=15) + axis.set_ylabel("Доля времени, %") + axis.set_title("Время в защитных состояниях") + axis.grid(True, axis="y", alpha=0.3) + axis.legend() + figure.tight_layout() + figure.savefig(STATE_TIME_PLOT, dpi=150) + plt.close(figure) + + figure, axis = plt.subplots(figsize=(8, 5)) + for profile in PROFILES: + rows = [ + row for row in emergencies + if row.channel_condition == "230_1000" and row.deceleration_profile == profile.name + ] + axis.plot( + [row.initial_speed_kmh for row in rows], + [row.mean_total_path_m for row in rows], + marker="o", + color=profile_colors[profile.name], + label=PROFILE_LABELS[profile.name], + ) + axis.set_xlabel("Начальная скорость, км/ч") + axis.set_ylabel("Средний путь от команды до остановки, м") + axis.set_title("Удалённая аварийная остановка: 230 кбит/с, 1000 мс") + axis.grid(True, alpha=0.3) + axis.legend() + figure.tight_layout() + figure.savefig(EMERGENCY_PATH_PLOT, dpi=150) + plt.close(figure) + + figure, axis = plt.subplots(figsize=(7, 6)) + analytic_values = [row.two_stage_total_analytic_m for row in analytics] + model_values = [row.two_stage_total_model_m for row in analytics] + axis.scatter(analytic_values, model_values, color="#2878b5") + limit = max(analytic_values + model_values + [1.0]) + axis.plot([0.0, limit], [0.0, limit], linestyle="--", color="black", label="Точное совпадение") + axis.set_xlabel("Аналитический путь, м") + axis.set_ylabel("Событийная модель, м") + axis.set_title("Проверка аналитической дистанции") + axis.grid(True, alpha=0.3) + axis.legend() + figure.tight_layout() + figure.savefig(ANALYTIC_PLOT, dpi=150) + plt.close(figure) + + figure, axis = plt.subplots(figsize=(8, 5)) + for policy in POLICIES: + rows = [row for row in summaries if row.policy == policy.name and row.initial_speed_kmh == 25.0] + axis.scatter( + _mean(row.preliminary_reactions_per_minute + row.mandatory_brakings_per_minute for row in rows), + max(row.max_total_stop_path_m for row in rows), + s=90, + color=policy_colors[policy.name], + label=POLICY_LABELS[policy.name], + ) + axis.set_xlabel("Средняя частота защитных переходов, 1/мин") + axis.set_ylabel("Максимальный полный путь, м") + axis.set_title("Компромисс: частота реакций и путь до остановки") + axis.grid(True, alpha=0.3) + axis.legend(fontsize=8) + figure.tight_layout() + figure.savefig(TRADEOFF_PLOT, dpi=150) + plt.close(figure) + + +def write_report( + workload: Workload, + summaries: tuple[SummaryMetrics, ...], + watchdog: tuple[WatchdogMetrics, ...], + distances: tuple[DistanceMetrics, ...], + emergencies: tuple[EmergencyStopMetrics, ...], + analytics: tuple[AnalyticCheck, ...], + tests: tuple[FunctionalTestResult, ...], +) -> None: + representative_emergencies = tuple( + row + for row in emergencies + if row.initial_speed_kmh == SPEEDS_KMH[0] and row.deceleration_profile == PROFILES[0].name + ) + lines = [ + "Lab039 — двухступенчатая безопасная реакция и оценка пути до остановки", + "", + "Состояние Git до реализации", + "- Корень: C:/Users/user/Desktop/projects/SDR_Rover", + "- Ветка: main", + "- HEAD: 23cfdf581b63d2674e7c48965aea45cc5afff2d7", + "- Перед окончательным повторным запуском рабочее дерево содержало только новые файлы Lab039; индекс был пуст.", + "- Неизвестных изменений не было; локально известный origin/main имел ahead/behind 0/0.", + "- Lab036–Lab038 присутствовали; Lab038 зафиксирована коммитом 23cfdf5.", + "- Fetch, pull и push не выполнялись.", + "", + "Конечный автомат", + "- NORMAL поддерживает заданную скорость и принимает только команды с новым sequence.", + "- STAGE1_DECELERATION запрещает положительное ускорение и применяет a_stage1.", + "- STAGE2_BRAKING задаёт нулевую скорость и применяет a_stage2 до точной остановки.", + "- EMERGENCY_LATCHED выполняет ту же обязательную остановку, фиксируется и не снимается обычной командой.", + "- Свежая команда снимает только временные защитные состояния; старая и повторная команды таймер не обновляют.", + "- Предварительная реакция уменьшает скорость с возможностью мягкого восстановления, а обязательное торможение требует полной остановки.", + "", + "Порядок совпадающих событий", + "- Полностью полученная emergency-команда обрабатывается первой и фиксирует аварийную остановку.", + "- Полностью полученная свежая обычная команда обрабатывается раньше первого и второго порогов watchdog при одинаковом времени.", + "- Такая команда обновляет время свежести и отменяет переход, рассчитанный от предыдущей команды; затем очередь событий строится заново.", + "- Далее обрабатывается второй порог, затем первый; равные пороги запрещены проверкой ThresholdPolicy.", + "- Правило receive-before-threshold отдельно проверяется для обоих порогов.", + "", + "Параметры движения и эксперимента", + f"- Длительность опыта: {DURATION_SECONDS:.0f} с; команды: 20 Гц; a_resume={RESUME_ACCELERATION_MPS2:.1f} м/с².", + f"- Основная матрица: {len(CHANNEL_CONDITIONS)} каналов × {len(POLICIES)} политики × {len(SPEEDS_KMH)} скорости × {len(PROFILES)} профиля = {len(summaries)} сочетаний.", + f"- Условия с потерями: {REPETITIONS} повторов; контроль без потерь: один детерминированный опыт.", + "- Скорости: 5, 15 и 25 км/ч; внутри модели используются м/с.", + "- Профили a_stage1/a_stage2: мягкий 0,5/2,0; номинальный 1,0/3,0; интенсивный 1,5/4,0 м/с².", + "- Интегрирование событийное и точное на каждом участке постоянного ускорения; крупный фиксированный шаг не используется.", + "- Ранее сформированный каталог результатов Lab039 удалён; все CSV, TXT и PNG получены заново одним полным запуском окончательного кода.", + f"- Проверенные при построении нагрузки пакеты CRC/FEC: {workload.crc_packets_checked}/{workload.fec_blocks_checked}.", + "", + "Компактная сводка 180 сочетаний", + "политика | реакции этапа 1, 1/мин (среднее) | торможения этапа 2, 1/мин (среднее) | полные остановки, 1/мин (среднее) | максимальный полный путь, м", + ] + for policy in POLICIES: + rows = [row for row in summaries if row.policy == policy.name] + lines.append( + f"{POLICY_LABELS[policy.name]} | " + f"{_mean(row.preliminary_reactions_per_minute for row in rows):.4f} | " + f"{_mean(row.mandatory_brakings_per_minute for row in rows):.4f} | " + f"{_mean(row.full_stops_per_minute for row in rows):.4f} | " + f"{max(row.max_total_stop_path_m for row in rows):.4f}" + ) + lines.extend( + [ + "", + "Расширенная сводка политик", + "политика | этап 1 ср/макс, 1/мин | этап 2 ср/макс, 1/мин | остановки ср/макс, 1/мин | путь ср/макс/P95макс, м | время этап 1/этап 2/ноль, % | потеря скорости, м/с | восстановление, с", + ] + ) + for policy in POLICIES: + summary_rows = [row for row in summaries if row.policy == policy.name] + watchdog_rows = [row for row in watchdog if row.policy == policy.name] + distance_rows = [row for row in distances if row.policy == policy.name] + lines.append( + f"{POLICY_LABELS[policy.name]} | " + f"{_mean(row.preliminary_reactions_per_minute for row in summary_rows):.4f}/" + f"{max(row.preliminary_reactions_per_minute for row in summary_rows):.4f} | " + f"{_mean(row.mandatory_brakings_per_minute for row in summary_rows):.4f}/" + f"{max(row.mandatory_brakings_per_minute for row in summary_rows):.4f} | " + f"{_mean(row.full_stops_per_minute for row in summary_rows):.4f}/" + f"{max(row.full_stops_per_minute for row in summary_rows):.4f} | " + f"{_mean(row.mean_total_stop_path_m for row in distance_rows):.4f}/" + f"{max(row.max_total_stop_path_m for row in distance_rows):.4f}/" + f"{max(row.p95_total_stop_path_m for row in distance_rows):.4f} | " + f"{_mean(row.stage1_time_fraction for row in summary_rows) * 100.0:.4f}/" + f"{_mean(row.stage2_time_fraction for row in summary_rows) * 100.0:.4f}/" + f"{_mean(row.zero_speed_fraction for row in summary_rows) * 100.0:.4f} | " + f"{_mean(row.mean_short_speed_reduction_mps for row in watchdog_rows):.4f} | " + f"{_mean(row.mean_resume_time_seconds for row in watchdog_rows):.4f}" + ) + lines.extend( + [ + "", + "Сравнение 100/200 и 150/250 мс по выбранным условиям", + "канал | скорость, км/ч | политика | этап 1/этап 2/остановки, 1/мин | путь ср/макс/P95макс, м | время этап 1/этап 2/ноль, % | потеря скорости, м/с | восстановление, с", + ] + ) + comparison_conditions = ("260_200", "230_200", "230_1000") + condition_labels = {condition.name: condition.label for condition in CHANNEL_CONDITIONS} + for condition_name in comparison_conditions: + for speed_kmh in SPEEDS_KMH: + for policy_name in ("two_100_200", "two_150_250"): + summary_rows = [ + row + for row in summaries + if row.channel_condition == condition_name + and row.initial_speed_kmh == speed_kmh + and row.policy == policy_name + ] + watchdog_rows = [ + row + for row in watchdog + if row.channel_condition == condition_name + and row.initial_speed_kmh == speed_kmh + and row.policy == policy_name + ] + distance_rows = [ + row + for row in distances + if row.channel_condition == condition_name + and row.initial_speed_kmh == speed_kmh + and row.policy == policy_name + ] + lines.append( + f"{condition_labels[condition_name]} | {speed_kmh:.0f} | {POLICY_LABELS[policy_name]} | " + f"{_mean(row.preliminary_reactions_per_minute for row in summary_rows):.4f}/" + f"{_mean(row.mandatory_brakings_per_minute for row in summary_rows):.4f}/" + f"{_mean(row.full_stops_per_minute for row in summary_rows):.4f} | " + f"{_mean(row.mean_total_stop_path_m for row in distance_rows):.4f}/" + f"{max(row.max_total_stop_path_m for row in distance_rows):.4f}/" + f"{max(row.p95_total_stop_path_m for row in distance_rows):.4f} | " + f"{_mean(row.stage1_time_fraction for row in summary_rows) * 100.0:.4f}/" + f"{_mean(row.stage2_time_fraction for row in summary_rows) * 100.0:.4f}/" + f"{_mean(row.zero_speed_fraction for row in summary_rows) * 100.0:.4f} | " + f"{_mean(row.mean_short_speed_reduction_mps for row in watchdog_rows):.4f} | " + f"{_mean(row.mean_resume_time_seconds for row in watchdog_rows):.4f}" + ) + lines.extend( + [ + "- Полные данные каждой комбинации находятся в lab039_summary.csv, lab039_watchdog_metrics.csv и lab039_distance_metrics.csv.", + "", + "Путь и защитные реакции", + f"- Максимальный наблюдавшийся промежуток без свежей команды: {max(row.max_command_gap_ms for row in summaries):.3f} мс.", + f"- Максимальное время применения устаревшей команды до обязательного торможения: {max(policy.stage2_seconds for policy in POLICIES) * 1000.0:.0f} мс.", + f"- Максимальный путь до первой реакции: {max(row.max_distance_to_first_m for row in distances):.4f} м.", + f"- Максимальный путь до второго порога: {max(row.max_distance_to_second_m for row in distances):.4f} м.", + f"- Максимальный тормозной путь после второго порога: {max(row.max_braking_distance_m for row in distances):.4f} м.", + f"- Максимальный полный путь после последней свежей команды: {max(row.max_total_stop_path_m for row in distances):.4f} м.", + f"- Частота предварительных реакций: {min(row.preliminary_reactions_per_minute for row in summaries):.4f}…{max(row.preliminary_reactions_per_minute for row in summaries):.4f} 1/мин.", + f"- Частота полных остановок: {min(row.full_stops_per_minute for row in summaries):.4f}…{max(row.full_stops_per_minute for row in summaries):.4f} 1/мин.", + "- Произведение v × timeout описывает только путь до порога; после него ровер сохраняет скорость и проходит дополнительный тормозной путь.", + "- Путь реакции растёт линейно со скоростью, а идеализированный тормозной путь v²/(2a) — квадратично, поэтому высокая начальная скорость особенно существенна.", + "- Короткий первый порог чаще пересекается обычными краткими помехами и вызывает лишние замедления.", + "- Длинный второй порог дольше сохраняет движение до обязательного торможения и увеличивает полный путь.", + "", + "Аналитические контрольные расчёты без восстановления связи", + "скорость, км/ч | профиль | один порог: реакция/торможение/итого, м | 150/250: реакция/замедление/торможение/итого, м | разница, м | ошибка модели, м", + ] + ) + for row in analytics: + lines.append( + f"{row.initial_speed_kmh:.0f} | {PROFILE_LABELS[row.deceleration_profile]} | " + f"{row.single_reaction_path_m:.4f}/{row.single_braking_path_m:.4f}/{row.single_total_analytic_m:.4f} | " + f"{row.two_stage_reaction_path_m:.4f}/{row.two_stage_deceleration_path_m:.4f}/" + f"{row.two_stage_braking_path_m:.4f}/{row.two_stage_total_analytic_m:.4f} | " + f"{row.two_stage_minus_single_m:+.4f} | {row.maximum_absolute_error_m:.3e}" + ) + lines.extend( + [ + f"- Максимальная абсолютная ошибка событийной модели: {max(row.maximum_absolute_error_m for row in analytics):.3e} м.", + "", + "Независимая аварийная остановка", + f"- Расчёт: {len(emergencies)} сочетаний; emergency сформирована на 60-й секунде; политика локального таймера 150/250 мс.", + f"- Итоговая доставка за окно 500 мс: {min(row.delivered_fraction for row in emergencies) * 100.0:.3f}…{max(row.delivered_fraction for row in emergencies) * 100.0:.3f}%.", + f"- Время первой доставки: среднее до {max(row.mean_delivery_ms for row in emergencies):.3f} мс, P95 до {max(row.p95_delivery_ms for row in emergencies):.3f} мс, максимум {max(row.max_delivery_ms for row in emergencies):.3f} мс.", + f"- Путь за время доставки: до {max(row.mean_path_during_delivery_m for row in emergencies):.4f} м в среднем по сочетанию.", + f"- Тормозной путь после получения: до {max(row.mean_braking_distance_m for row in emergencies):.4f} м в среднем по сочетанию.", + f"- Полный путь от формирования до остановки: среднее до {max(row.mean_total_path_m for row in emergencies):.4f} м; максимум {max(row.max_total_path_m for row in emergencies):.4f} м.", + f"- Недоставок за 500 мс: {max(row.undelivered_by_500ms for row in representative_emergencies)} в одном канальном условии, {sum(row.undelivered_by_500ms for row in representative_emergencies)} суммарно в независимых транспортных опытах.", + f"- При недоставке доля опытов с включением второго этапа локального таймера: до {max(row.local_watchdog_stage2_fraction_when_undelivered for row in emergencies) * 100.0:.3f}%.", + f"- При недоставке доля остановок локальным таймером: до {max(row.local_watchdog_stop_fraction_when_undelivered for row in emergencies) * 100.0:.3f}%.", + f"- Средний путь локальной остановки при недоставке: до {max(row.mean_local_watchdog_path_when_undelivered_m for row in emergencies):.4f} м; время — до {max(row.mean_local_watchdog_stop_seconds_when_undelivered for row in emergencies):.4f} с.", + "- Удалённая emergency не заменяет локальный сторожевой таймер: канал может быть физически недоступен, а локальная реакция не зависит от доставки.", + "- ACK лишь прекращает будущие копии и информирует отправителя; торможение начинается при первом корректном emergency до получения ACK.", + "", + "Инварианты безопасности", + f"- Отрицательная скорость: {sum(row.negative_speed_cases for row in summaries)} случаев.", + f"- Превышение заданной скорости: {sum(row.target_speed_exceeded_cases for row in summaries)} случаев.", + f"- Второй порог превышен без торможения: {sum(row.missed_stage2_cases for row in summaries)} случаев.", + f"- Снятие временного состояния старой командой: {sum(row.stale_command_release_cases for row in summaries)} случаев.", + f"- Снятие аварийной остановки обычной командой: {sum(row.ordinary_command_emergency_release_cases for row in summaries)} случаев.", + "", + "Интерпретация пары 150/250 мс", + ] + ) + candidate_rows = [row for row in summaries if row.policy == "two_150_250"] + short_rows = [row for row in summaries if row.policy == "two_100_200"] + long_rows = [row for row in summaries if row.policy == "two_200_300"] + lines.extend( + [ + f"- Для 150/250 мс средняя частота предварительных реакций по матрице: {_mean(row.preliminary_reactions_per_minute for row in candidate_rows):.4f} 1/мин; полных остановок: {_mean(row.full_stops_per_minute for row in candidate_rows):.4f} 1/мин.", + f"- Для 100/200 мс соответствующие значения: {_mean(row.preliminary_reactions_per_minute for row in short_rows):.4f} и {_mean(row.full_stops_per_minute for row in short_rows):.4f} 1/мин; для 200/300 мс: {_mean(row.preliminary_reactions_per_minute for row in long_rows):.4f} и {_mean(row.full_stops_per_minute for row in long_rows):.4f} 1/мин.", + f"- Максимальный полный путь 150/250 мс: {max(row.max_total_stop_path_m for row in candidate_rows):.4f} м; 100/200 мс: {max(row.max_total_stop_path_m for row in short_rows):.4f} м; 200/300 мс: {max(row.max_total_stop_path_m for row in long_rows):.4f} м.", + "- Эти результаты характеризуют компромисс, но не подтверждают окончательный выбор: пороги и замедления автоматически не назначаются.", + "", + "Ограничения модели", + "- a_stage1 и a_stage2 являются исследовательскими параметрами и должны быть измерены на реальном ровере.", + "- Не моделируются уклон, пробуксовка, задержка электромеханического тормоза, изменение сцепления и сопротивление воздуха.", + "- Не моделируются поперечная динамика, перенос массы, ABS и фактическое время нарастания тормозного момента.", + "- Это расчётная одномерная модель, а не окончательный алгоритм силовой части и не замена натурных испытаний.", + "", + "Функциональные проверки", + ] + ) + lines.extend(f"- {'PASS' if item.passed else 'FAIL'} {item.name}: {item.detail}" for item in tests) + created = ( + Path("protocol/two_stage_failsafe.py"), + Path("tests/lab039_two_stage_braking.py"), + SUMMARY_CSV_PATH, + WATCHDOG_CSV_PATH, + DISTANCE_CSV_PATH, + EMERGENCY_CSV_PATH, + ANALYTIC_CSV_PATH, + REPORT_PATH, + *PLOT_PATHS, + ) + lines.extend(["", "Созданные файлы", *[f"- {path.as_posix()}" for path in created]]) + lines.extend( + [ + "", + "Состояние результатов", + "- Lab039 оставлена вне индекса Git и не закоммичена.", + "- Lab028–Lab038 не изменялись.", + "- Сохранены только компактные агрегированные CSV, TXT и PNG; запрещённые артефакты не создавались.", + ] + ) + REPORT_PATH.write_text("\n".join(lines) + "\n", encoding="utf-8") + + +def validate_outputs( + summaries: tuple[SummaryMetrics, ...], + watchdog: tuple[WatchdogMetrics, ...], + distances: tuple[DistanceMetrics, ...], + emergencies: tuple[EmergencyStopMetrics, ...], + analytics: tuple[AnalyticCheck, ...], + tests: tuple[FunctionalTestResult, ...], + watchdog_traces: dict[str, tuple[TransportTrace, ...]], + emergency_traces: dict[str, tuple[TransportTrace, ...]], +) -> None: + assert len(summaries) == len(watchdog) == len(distances) == 180 + assert len(emergencies) == 45 + assert len(analytics) == 9 + assert len(tests) == 22 and all(item.passed for item in tests), [item for item in tests if not item.passed] + assert all(len(watchdog_traces[item.name]) == item.repetitions for item in CHANNEL_CONDITIONS) + assert all(len(emergency_traces[item.name]) == item.repetitions for item in CHANNEL_CONDITIONS) + assert all(trace.negative_time_order == 0 for traces in watchdog_traces.values() for trace in traces) + assert all(trace.negative_time_order == 0 for traces in emergency_traces.values() for trace in traces) + assert max(row.maximum_absolute_error_m for row in analytics) < 1e-9 + assert sum(row.negative_speed_cases for row in summaries) == 0 + assert sum(row.target_speed_exceeded_cases for row in summaries) == 0 + assert sum(row.missed_stage2_cases for row in summaries) == 0 + assert sum(row.stale_command_release_cases for row in summaries) == 0 + assert sum(row.ordinary_command_emergency_release_cases for row in summaries) == 0 + + csv_paths = ( + SUMMARY_CSV_PATH, + WATCHDOG_CSV_PATH, + DISTANCE_CSV_PATH, + EMERGENCY_CSV_PATH, + ANALYTIC_CSV_PATH, + ) + expected_counts = (180, 180, 180, 45, 9) + for path, expected_count in zip(csv_paths, expected_counts): + assert path.is_file() and path.stat().st_size > 0, path + path.read_text(encoding="utf-8") + with path.open(newline="", encoding="utf-8") as file: + assert sum(1 for _ in csv.DictReader(file)) == expected_count, path + assert REPORT_PATH.is_file() and REPORT_PATH.stat().st_size > 0 + REPORT_PATH.read_text(encoding="utf-8") + for path in PLOT_PATHS: + assert path.is_file() and path.stat().st_size > 0, path + image = cv2.imread(str(path), cv2.IMREAD_UNCHANGED) + assert image is not None and image.size > 0 and image.shape[0] > 100 and image.shape[1] > 100, path + + expected_files = {path.resolve() for path in (*csv_paths, REPORT_PATH, *PLOT_PATHS)} + actual_files = {path.resolve() for path in OUTPUT_DIRECTORY.rglob("*") if path.is_file()} + assert actual_files == expected_files, sorted(str(path) for path in actual_files ^ expected_files) + forbidden_suffixes = {".jpg", ".jpeg", ".pyc", ".pickle", ".pkl", ".bin", ".zip"} + assert not any(path.suffix.lower() in forbidden_suffixes for path in actual_files) + assert not any(path.name == "__pycache__" for path in OUTPUT_DIRECTORY.rglob("*")) + + +def main() -> None: + OUTPUT_DIRECTORY.mkdir(parents=True, exist_ok=True) + workload = build_lab038_workload() + ( + summaries, + watchdog, + distances, + emergencies, + analytics, + watchdog_traces, + emergency_traces, + ) = run_experiment(workload) + tests = run_functional_tests(workload, watchdog_traces, emergency_traces) + _write_csv(SUMMARY_CSV_PATH, SummaryMetrics, summaries) + _write_csv(WATCHDOG_CSV_PATH, WatchdogMetrics, watchdog) + _write_csv(DISTANCE_CSV_PATH, DistanceMetrics, distances) + _write_csv(EMERGENCY_CSV_PATH, EmergencyStopMetrics, emergencies) + _write_csv(ANALYTIC_CSV_PATH, AnalyticCheck, analytics) + save_plots(summaries, watchdog, distances, emergencies, analytics) + write_report(workload, summaries, watchdog, distances, emergencies, analytics, tests) + validate_outputs( + summaries, + watchdog, + distances, + emergencies, + analytics, + tests, + watchdog_traces, + emergency_traces, + ) + print(f"Lab039 complete: {len(summaries)} combinations, lossy repetitions={REPETITIONS}") + for item in tests: + print(f"{'PASS' if item.passed else 'FAIL'} {item.name}: {item.detail}") + + +if __name__ == "__main__": + main()