From 8355d97218cd74e0347fb738ac36258d965c4720 Mon Sep 17 00:00:00 2001
From: "Pier Francesco A. Bachini" <pierfrancesco.bachini@skywarder.eu>
Date: Thu, 20 Feb 2025 17:08:56 -0800
Subject: [PATCH] [ADA] Fixes to ada montecarlo simulation also with faults

---
 commonFunctions/sensors/acquisition_Sys.m                 | 2 +-
 .../initSensors2025_Orion_Portugal_October.m              | 8 ++++----
 simulator/configs/configFaults.m                          | 5 +++--
 simulator/src/std_run.m                                   | 1 +
 simulator/src/std_run_parts/std_setInitialParams.m        | 1 +
 5 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/commonFunctions/sensors/acquisition_Sys.m b/commonFunctions/sensors/acquisition_Sys.m
index 1f6890da..114b2f1e 100644
--- a/commonFunctions/sensors/acquisition_Sys.m
+++ b/commonFunctions/sensors/acquisition_Sys.m
@@ -27,7 +27,7 @@ OUTPUT:
 
 %% Baro Acquisition loop
 
-if ~contains(mission.name, '2023')
+if ~contains(mission.name, {'2023', '2024', '2025'})
     sensorSettings.barometer2 = sensorSettings.barometer1;
     sensorSettings.barometer3 = sensorSettings.barometer1;
 end
diff --git a/data/2025_Orion_Portugal_October/initSensors2025_Orion_Portugal_October.m b/data/2025_Orion_Portugal_October/initSensors2025_Orion_Portugal_October.m
index e3b79ac9..15395167 100644
--- a/data/2025_Orion_Portugal_October/initSensors2025_Orion_Portugal_October.m
+++ b/data/2025_Orion_Portugal_October/initSensors2025_Orion_Portugal_October.m
@@ -13,8 +13,8 @@ sensorSettings.barometer1 = SensorFault();
 sensorSettings.barometer1.maxMeasurementRange   =   1000;                   % 1100, 1300 in mbar
 sensorSettings.barometer1.minMeasurementRange   =   0;                      % 300, 10 in mbar
 sensorSettings.barometer1.bit                   =   24;                     % adc on rocket is 24 bits 
-sensorSettings.barometer1.fault_time = 9;           % if negative it will be generated at random between a max and a min value
-sensorSettings.barometer1.max_fault_time = 96;      % max seconds to wait before possible fault
+sensorSettings.barometer1.fault_time = -1;           % if negative it will be generated at random between a max and a min value
+sensorSettings.barometer1.max_fault_time = 60;      % max seconds to wait before possible fault
 sensorSettings.barometer1.min_fault_time = 6;       % min seconds to wait before possible fault
 
 % fault generation
@@ -42,7 +42,7 @@ sensorSettings.barometer2.maxMeasurementRange   =   1000;                   % 11
 sensorSettings.barometer2.minMeasurementRange   =   0;                      % 300, 10 in mbar
 sensorSettings.barometer2.bit                   =   24;                     % adc on rocket is 24 bits 
 sensorSettings.barometer2.fault_time = -1;          % if negative it will be generated at random between a max and a min value
-sensorSettings.barometer2.max_fault_time = 96;      % max seconds to wait before possible fault
+sensorSettings.barometer2.max_fault_time = 24;      % max seconds to wait before possible fault
 sensorSettings.barometer2.min_fault_time = 6;       % min seconds to wait before possible fault
 
 % fault generation
@@ -70,7 +70,7 @@ sensorSettings.barometer3.maxMeasurementRange   =   4060;                   % 11
 sensorSettings.barometer3.minMeasurementRange   =   260;                    % 300, 10 in mbar
 sensorSettings.barometer3.bit                   =   24; 
 sensorSettings.barometer3.fault_time = -1;          % if negative it will be generated at random between a max and a min value
-sensorSettings.barometer3.max_fault_time = 96;      % max seconds to wait before possible fault
+sensorSettings.barometer3.max_fault_time = 60;      % max seconds to wait before possible fault
 sensorSettings.barometer3.min_fault_time = 6;       % min seconds to wait before possible fault
 
 % fault generation
diff --git a/simulator/configs/configFaults.m b/simulator/configs/configFaults.m
index 607f2ae9..fbaf0a5e 100644
--- a/simulator/configs/configFaults.m
+++ b/simulator/configs/configFaults.m
@@ -8,10 +8,11 @@ sensor fault configuration script
 % how many faults do you want to simulate?
 settings.fault_sim.N_faulty_sensors = -1; % if set to -1 it will go to manual fault setting, otherwise it will generate random faults at a set of random sensors
 
+settings.fault_sim.fault_type = ["no fault", "no fault", "no fault"];
 
 if settings.fault_sim.N_faulty_sensors == -1
-    settings.fault_sim.selected_sensors = [];
-    settings.fault_sim.fault_type = ["no fault", "no fault", "no fault"];
+    settings.fault_sim.selected_sensors = [1];
+    settings.fault_sim.fault_type = ["freezing", "no fault", "no fault"];
 end
 
 % fault parameters
diff --git a/simulator/src/std_run.m b/simulator/src/std_run.m
index d7e01a61..b1685d21 100644
--- a/simulator/src/std_run.m
+++ b/simulator/src/std_run.m
@@ -613,6 +613,7 @@ struct_out.wind = wind;
 % sensors (ADA, NAS, MEA, SFD, and all sensor data are stored here)
 struct_out.sensors = sensorTot;
 struct_out.sensors.ada.t_apogee = settings.ada.t_ada;
+struct_out.sensors.ada.t_para = settings.ada.t_para;
 struct_out.sensors.nas.t_apogee = settings.nas.t_nas;
 if settings.scenario ~= "descent"
     struct_out.sensors.mea.mass_offset = settings.mass_offset;
diff --git a/simulator/src/std_run_parts/std_setInitialParams.m b/simulator/src/std_run_parts/std_setInitialParams.m
index 0bc1ff2d..c40afe99 100644
--- a/simulator/src/std_run_parts/std_setInitialParams.m
+++ b/simulator/src/std_run_parts/std_setInitialParams.m
@@ -162,6 +162,7 @@ if settings.flagADA
     if contSettings.run_old_ada
         sensorData.old_ada = sensorData.ada{1};
         sensorTot.old_ada.t_ada = -1;
+        sensorTot.old_ada.t_para = -1;
         sensorTot.old_ada.flagApogee = false;
         sensorTot.old_ada.flagOpenPara = false;
     end
-- 
GitLab